@provoly/dashboard 1.4.24 → 1.4.26

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.
@@ -1,7 +1,6 @@
1
1
  import { HttpHeaders } from '@angular/common/http';
2
2
  import { Injectable } from '@angular/core';
3
- import { map, of } from 'rxjs';
4
- import { catchError } from 'rxjs';
3
+ import { catchError, map, of } from 'rxjs';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/common/http";
7
6
  export class WmsService {
@@ -42,8 +41,8 @@ export class WmsService {
42
41
  getWmsFeatures(url) {
43
42
  return this.httpClient.get(url).pipe(map((json) => json));
44
43
  }
45
- getWfsFeatures(wmsUrl, bbox) {
46
- const url = wfsUrlBuilder(wmsUrl, bbox);
44
+ getWfsFeatures(wmsUrl, bbox, geomPropName) {
45
+ const url = wfsUrlBuilder(wmsUrl, bbox, geomPropName);
47
46
  return this.httpClient.get(url).pipe(map((json) => json));
48
47
  }
49
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: WmsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -56,7 +55,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
56
55
  }]
57
56
  }], ctorParameters: () => [{ type: i1.HttpClient }] });
58
57
  const BBOX_ENHANCE_DISTANCE = 0.0001;
59
- const wfsUrlBuilder = (wmsUrl, bbox, params) => {
58
+ const wfsUrlBuilder = (wmsUrl, bbox, geomPropName, params) => {
60
59
  const enhancedBbox = [
61
60
  bbox[0] - BBOX_ENHANCE_DISTANCE,
62
61
  bbox[1] - BBOX_ENHANCE_DISTANCE,
@@ -75,9 +74,16 @@ const wfsUrlBuilder = (wmsUrl, bbox, params) => {
75
74
  };
76
75
  const base = wmsUrl.split('?')[0].replace('wms', 'wfs');
77
76
  const wmsUrlFragments = wmsUrl.split('&');
78
- wfsFragments['typeNames'] = wmsUrlFragments.find((param) => param.includes('LAYERS'))?.split('=')[1];
77
+ wfsFragments['typeNames'] = wmsUrlFragments.find((param) => param.toUpperCase().includes('LAYERS'))?.split('=')[1];
79
78
  wfsFragments['srsName'] = wmsUrlFragments.find((param) => param.toUpperCase().includes('CRS'))?.split('=')[1];
80
- wfsFragments['cql_filter'] = wmsUrlFragments.find((param) => param.includes('CQL_FILTER'))?.split('=')[1];
79
+ const cqlFilterFragment = wmsUrlFragments.find((param) => param.toUpperCase().includes('CQL_FILTER'));
80
+ if (cqlFilterFragment) {
81
+ const previousFragment = cqlFilterFragment.split('=')[1];
82
+ // cql_filter and bbox are mutually exclusive so we need to replace bbox with a cql filter on the bbox
83
+ wfsFragments['cql_filter'] =
84
+ previousFragment + ` AND BBOX(${geomPropName}, ${enhancedBbox.join(',')}, 'EPSG:4326')`;
85
+ wfsFragments['bbox'] = undefined;
86
+ }
81
87
  return (base +
82
88
  '?' +
83
89
  Object.entries(wfsFragments)
@@ -85,4 +91,4 @@ const wfsUrlBuilder = (wmsUrl, bbox, params) => {
85
91
  .filter((val) => !!val)
86
92
  .join('&'));
87
93
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL3dtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU9sQyxNQUFNLE9BQU8sVUFBVTtJQUdyQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRjFDLFdBQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBRW9CLENBQUM7SUFFOUMsZUFBZSxDQUFDLEdBQVc7UUFDekIsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BFLE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUN6RyxNQUFNLG1CQUFtQixHQUN2QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUVqSCxP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LENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxRyxPQUFPLENBQ0wsSUFBSTtRQUNKLEdBQUc7UUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM5RCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNiLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgPSB7IHVybDogc3RyaW5nOyBkb2M/OiBEb2N1bWVudCB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXbXNTZXJ2aWNlIHtcbiAgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBnZXRDYXBhYmlsaXRpZXModXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdldENhcGFiaWxpdGllc1Jlc3BvbnNlIHwgbnVsbD4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIGNvbnN0IGxheWVyVXJsV2l0aFFtYXJrID0gdXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyB1cmwgKyAnPycgOiB1cmw7XG4gICAgICBjb25zdCBsYXllclVybFdpdGhTZXJ2aWNlID1cbiAgICAgICAgbGF5ZXJVcmxXaXRoUW1hcmsuaW5kZXhPZignJlNFUlZJQ0U9JykgPT09IC0xID8gbGF5ZXJVcmxXaXRoUW1hcmsgKyAnJlNFUlZJQ0U9V01TJyA6IGxheWVyVXJsV2l0aFFtYXJrO1xuICAgICAgY29uc3QgbGF5ZXJVcmxXaXRoVmVyc2lvbiA9XG4gICAgICAgIGxheWVyVXJsV2l0aFNlcnZpY2UuaW5kZXhPZignJlZFUlNJT049JykgPT09IC0xID8gbGF5ZXJVcmxXaXRoU2VydmljZSArICcmVkVSU0lPTj0xLjMuMCcgOiBsYXllclVybFdpdGhTZXJ2aWNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoYCR7bGF5ZXJVcmxXaXRoVmVyc2lvbn0mUkVRVUVTVD1HZXRDYXBhYmlsaXRpZXNgLCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgIEFjY2VwdDogJ3RleHQvaHRtbCwgYXBwbGljYXRpb24veGh0bWwreG1sLCAqLyonLFxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG9jID0gdGhpcy5wYXJzZXIucGFyc2VGcm9tU3RyaW5nKHJlc3BvbnNlLCAnYXBwbGljYXRpb24veG1sJyk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck5vZGUgPSBkb2MucXVlcnlTZWxlY3RvcigncGFyc2VyZXJyb3InKTtcbiAgICAgICAgICAgIGlmIChlcnJvck5vZGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGdldENhcGFiaWxpdGllcyBmb3IgJHt1cmx9YCk7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgdXJsLCBkb2MgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBnZXRDYXBhYmlsaXRpZXMgZm9yICR7dXJsfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIGdldFdtc0ZlYXR1cmVzKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGZlYXR1cmVzOiBhbnlbXSB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsKS5waXBlKG1hcCgoanNvbjogYW55KSA9PiBqc29uKSk7XG4gIH1cblxuICBnZXRXZnNGZWF0dXJlcyh3bXNVcmw6IHN0cmluZywgYmJveDogbnVtYmVyW10pOiBPYnNlcnZhYmxlPHsgZmVhdHVyZXM6IGFueVtdIH0+IHtcbiAgICBjb25zdCB1cmwgPSB3ZnNVcmxCdWlsZGVyKHdtc1VybCwgYmJveCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsKS5waXBlKG1hcCgoanNvbjogYW55KSA9PiBqc29uKSk7XG4gIH1cbn1cblxuY29uc3QgQkJPWF9FTkhBTkNFX0RJU1RBTkNFID0gMC4wMDAxO1xuY29uc3Qgd2ZzVXJsQnVpbGRlciA9ICh3bXNVcmw6IHN0cmluZywgYmJveDogbnVtYmVyW10sIHBhcmFtcz86IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IGVuaGFuY2VkQmJveCA9IFtcbiAgICBiYm94WzBdIC0gQkJPWF9FTkhBTkNFX0RJU1RBTkNFLFxuICAgIGJib3hbMV0gLSBCQk9YX0VOSEFOQ0VfRElTVEFOQ0UsXG4gICAgYmJveFsyXSArIEJCT1hfRU5IQU5DRV9ESVNUQU5DRSxcbiAgICBiYm94WzNdICsgQkJPWF9FTkhBTkNFX0RJU1RBTkNFXG4gIF07XG4gIGNvbnN0IHdmc0ZyYWdtZW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcbiAgICBzZXJ2aWNlOiAnV0ZTJyxcbiAgICB2ZXJzaW9uOiAnMi4wLjAnLFxuICAgIHJlcXVlc3Q6ICdHZXRGZWF0dXJlJyxcbiAgICBvdXRwdXRGb3JtYXQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB0eXBlTmFtZXM6IHVuZGVmaW5lZCxcbiAgICBiYm94OiBgJHtlbmhhbmNlZEJib3guam9pbignLCcpfSxFUFNHOjQzMjZgLFxuICAgIHNyc05hbWU6IHVuZGVmaW5lZCxcbiAgICBwYXJhbXM6IHBhcmFtcyA/IGAmJHtwYXJhbXMuam9pbignJicpfWAgOiAnJ1xuICB9O1xuICBjb25zdCBiYXNlID0gd21zVXJsLnNwbGl0KCc/JylbMF0ucmVwbGFjZSgnd21zJywgJ3dmcycpO1xuICBjb25zdCB3bXNVcmxGcmFnbWVudHMgPSB3bXNVcmwuc3BsaXQoJyYnKTtcbiAgd2ZzRnJhZ21lbnRzWyd0eXBlTmFtZXMnXSA9IHdtc1VybEZyYWdtZW50cy5maW5kKChwYXJhbSkgPT4gcGFyYW0uaW5jbHVkZXMoJ0xBWUVSUycpKT8uc3BsaXQoJz0nKVsxXTtcbiAgd2ZzRnJhZ21lbnRzWydzcnNOYW1lJ10gPSB3bXNVcmxGcmFnbWVudHMuZmluZCgocGFyYW0pID0+IHBhcmFtLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ0NSUycpKT8uc3BsaXQoJz0nKVsxXTtcbiAgd2ZzRnJhZ21lbnRzWydjcWxfZmlsdGVyJ10gPSB3bXNVcmxGcmFnbWVudHMuZmluZCgocGFyYW0pID0+IHBhcmFtLmluY2x1ZGVzKCdDUUxfRklMVEVSJykpPy5zcGxpdCgnPScpWzFdO1xuXG4gIHJldHVybiAoXG4gICAgYmFzZSArXG4gICAgJz8nICtcbiAgICBPYmplY3QuZW50cmllcyh3ZnNGcmFnbWVudHMpXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+ICh2YWx1ZSA/IGAke2tleX09JHt2YWx1ZX1gIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoKHZhbCkgPT4gISF2YWwpXG4gICAgICAuam9pbignJicpXG4gICk7XG59O1xuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL3dtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBT3ZELE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGMUMsV0FBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7SUFFb0IsQ0FBQztJQUU5QyxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDcEUsTUFBTSxtQkFBbUIsR0FDdkIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1lBQ3pHLE1BQU0sbUJBQW1CLEdBQ3ZCLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBRWpILE9BQU8sSUFBSSxDQUFDLFVBQVU7aUJBQ25CLEdBQUcs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QztJQUVELE9BQU8sQ0FDTCxJQUFJO1FBQ0osR0FBRztRQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzlELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQ2IsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSA9IHsgdXJsOiBzdHJpbmc7IGRvYz86IERvY3VtZW50IH07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdtc1NlcnZpY2Uge1xuICBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldENhcGFiaWxpdGllcyh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8R2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgaWYgKHVybCkge1xuICAgICAgY29uc3QgbGF5ZXJVcmxXaXRoUW1hcmsgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/IHVybCArICc/JyA6IHVybDtcbiAgICAgIGNvbnN0IGxheWVyVXJsV2l0aFNlcnZpY2UgPVxuICAgICAgICBsYXllclVybFdpdGhRbWFyay5pbmRleE9mKCcmU0VSVklDRT0nKSA9PT0gLTEgPyBsYXllclVybFdpdGhRbWFyayArICcmU0VSVklDRT1XTVMnIDogbGF5ZXJVcmxXaXRoUW1hcms7XG4gICAgICBjb25zdCBsYXllclVybFdpdGhWZXJzaW9uID1cbiAgICAgICAgbGF5ZXJVcmxXaXRoU2VydmljZS5pbmRleE9mKCcmVkVSU0lPTj0nKSA9PT0gLTEgPyBsYXllclVybFdpdGhTZXJ2aWNlICsgJyZWRVJTSU9OPTEuMy4wJyA6IGxheWVyVXJsV2l0aFNlcnZpY2U7XG5cbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldChgJHtsYXllclVybFdpdGhWZXJzaW9ufSZSRVFVRVNUPUdldENhcGFiaWxpdGllc2AsIHtcbiAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgQWNjZXB0OiAndGV4dC9odG1sLCBhcHBsaWNhdGlvbi94aHRtbCt4bWwsICovKicsXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbiAgICAgICAgICB9KSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzLnBhcnNlci5wYXJzZUZyb21TdHJpbmcocmVzcG9uc2UsICdhcHBsaWNhdGlvbi94bWwnKTtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTm9kZSA9IGRvYy5xdWVyeVNlbGVjdG9yKCdwYXJzZXJlcnJvcicpO1xuICAgICAgICAgICAgaWYgKGVycm9yTm9kZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgZ2V0Q2FwYWJpbGl0aWVzIGZvciAke3VybH1gKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4geyB1cmwsIGRvYyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGdldENhcGFiaWxpdGllcyBmb3IgJHt1cmx9YCk7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKG51bGwpO1xuICB9XG5cbiAgZ2V0V21zRmVhdHVyZXModXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgZmVhdHVyZXM6IGFueVtdIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnBpcGUobWFwKChqc29uOiBhbnkpID0+IGpzb24pKTtcbiAgfVxuXG4gIGdldFdmc0ZlYXR1cmVzKHdtc1VybDogc3RyaW5nLCBiYm94OiBudW1iZXJbXSwgZ2VvbVByb3BOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgZmVhdHVyZXM6IGFueVtdIH0+IHtcbiAgICBjb25zdCB1cmwgPSB3ZnNVcmxCdWlsZGVyKHdtc1VybCwgYmJveCwgZ2VvbVByb3BOYW1lKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnBpcGUobWFwKChqc29uOiBhbnkpID0+IGpzb24pKTtcbiAgfVxufVxuXG5jb25zdCBCQk9YX0VOSEFOQ0VfRElTVEFOQ0UgPSAwLjAwMDE7XG5jb25zdCB3ZnNVcmxCdWlsZGVyID0gKHdtc1VybDogc3RyaW5nLCBiYm94OiBudW1iZXJbXSwgZ2VvbVByb3BOYW1lOiBzdHJpbmcsIHBhcmFtcz86IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IGVuaGFuY2VkQmJveCA9IFtcbiAgICBiYm94WzBdIC0gQkJPWF9FTkhBTkNFX0RJU1RBTkNFLFxuICAgIGJib3hbMV0gLSBCQk9YX0VOSEFOQ0VfRElTVEFOQ0UsXG4gICAgYmJveFsyXSArIEJCT1hfRU5IQU5DRV9ESVNUQU5DRSxcbiAgICBiYm94WzNdICsgQkJPWF9FTkhBTkNFX0RJU1RBTkNFXG4gIF07XG4gIGNvbnN0IHdmc0ZyYWdtZW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHtcbiAgICBzZXJ2aWNlOiAnV0ZTJyxcbiAgICB2ZXJzaW9uOiAnMi4wLjAnLFxuICAgIHJlcXVlc3Q6ICdHZXRGZWF0dXJlJyxcbiAgICBvdXRwdXRGb3JtYXQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICB0eXBlTmFtZXM6IHVuZGVmaW5lZCxcbiAgICBiYm94OiBgJHtlbmhhbmNlZEJib3guam9pbignLCcpfSxFUFNHOjQzMjZgLFxuICAgIHNyc05hbWU6IHVuZGVmaW5lZCxcbiAgICBwYXJhbXM6IHBhcmFtcyA/IGAmJHtwYXJhbXMuam9pbignJicpfWAgOiAnJ1xuICB9O1xuICBjb25zdCBiYXNlID0gd21zVXJsLnNwbGl0KCc/JylbMF0ucmVwbGFjZSgnd21zJywgJ3dmcycpO1xuICBjb25zdCB3bXNVcmxGcmFnbWVudHMgPSB3bXNVcmwuc3BsaXQoJyYnKTtcbiAgd2ZzRnJhZ21lbnRzWyd0eXBlTmFtZXMnXSA9IHdtc1VybEZyYWdtZW50cy5maW5kKChwYXJhbSkgPT4gcGFyYW0udG9VcHBlckNhc2UoKS5pbmNsdWRlcygnTEFZRVJTJykpPy5zcGxpdCgnPScpWzFdO1xuICB3ZnNGcmFnbWVudHNbJ3Nyc05hbWUnXSA9IHdtc1VybEZyYWdtZW50cy5maW5kKChwYXJhbSkgPT4gcGFyYW0udG9VcHBlckNhc2UoKS5pbmNsdWRlcygnQ1JTJykpPy5zcGxpdCgnPScpWzFdO1xuXG4gIGNvbnN0IGNxbEZpbHRlckZyYWdtZW50ID0gd21zVXJsRnJhZ21lbnRzLmZpbmQoKHBhcmFtKSA9PiBwYXJhbS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKCdDUUxfRklMVEVSJykpO1xuICBpZiAoY3FsRmlsdGVyRnJhZ21lbnQpIHtcbiAgICBjb25zdCBwcmV2aW91c0ZyYWdtZW50ID0gY3FsRmlsdGVyRnJhZ21lbnQuc3BsaXQoJz0nKVsxXTtcbiAgICAvLyBjcWxfZmlsdGVyIGFuZCBiYm94IGFyZSBtdXR1YWxseSBleGNsdXNpdmUgc28gd2UgbmVlZCB0byByZXBsYWNlIGJib3ggd2l0aCBhIGNxbCBmaWx0ZXIgb24gdGhlIGJib3hcbiAgICB3ZnNGcmFnbWVudHNbJ2NxbF9maWx0ZXInXSA9XG4gICAgICBwcmV2aW91c0ZyYWdtZW50ICsgYCBBTkQgQkJPWCgke2dlb21Qcm9wTmFtZX0sICR7ZW5oYW5jZWRCYm94LmpvaW4oJywnKX0sICdFUFNHOjQzMjYnKWA7XG4gICAgd2ZzRnJhZ21lbnRzWydiYm94J10gPSB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIGJhc2UgK1xuICAgICc/JyArXG4gICAgT2JqZWN0LmVudHJpZXMod2ZzRnJhZ21lbnRzKVxuICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAodmFsdWUgPyBgJHtrZXl9PSR7dmFsdWV9YCA6IHVuZGVmaW5lZCkpXG4gICAgICAuZmlsdGVyKCh2YWwpID0+ICEhdmFsKVxuICAgICAgLmpvaW4oJyYnKVxuICApO1xufTtcbiJdfQ==
@@ -231,7 +231,7 @@ export class WidgetMapLayerService {
231
231
  impl.set('title', layer.title);
232
232
  impl.set('oClass', layer.oClass);
233
233
  impl.set('datasourceId', layer.datasourceId);
234
- impl.set('geomPropName', layer.geomPropName ?? 'geom');
234
+ impl.set('geomPropName', layer.geomPropName);
235
235
  return impl;
236
236
  },
237
237
  featurelayer: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
@@ -369,4 +369,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
369
369
  providedIn: 'root'
370
370
  }]
371
371
  }] });
372
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1hcC1sYXllci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2NvbXBvbmVudC93aWRnZXQtbWFwLWxheWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFlVixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQU8sTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxlQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sWUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdELE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFB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QUFJLENBQUM7WUFDNUUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLDZCQUE2QixDQUFDLE9BQWU7UUFDbEQsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNsQixPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFNBQVMsQ0FBQyxJQUFJO2dCQUNqQixPQUFPLE1BQU0sQ0FBQztZQUNoQixLQUFLLFNBQVMsQ0FBQyxPQUFPO2dCQUNwQixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFNBQVMsQ0FBQyxTQUFTO2dCQUN0QixPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLFNBQVMsQ0FBQyxZQUFZO2dCQUN6QixPQUFPLGVBQWUsQ0FBQztZQUN6QjtnQkFDRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUN2RCxPQUFPLFFBQVEsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQzs4R0FwbEJVLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIEZpZWxkVHlwZSxcbiAgSXRlbVV0aWxzLFxuICBNYXBBdXRvTGF5ZXJPcHRpb25zLFxuICBNYXBGZWF0dXJlTGF5ZXJPcHRpb25zLFxuICBNYXBHZW9TZXJ2ZXJMYXllck9wdGlvbnMsXG4gIE1hcFJhc3RlclRpbGVMYXllck9wdGlvbnMsXG4gIE1hcFZlY3RvclRpbGVMYXllck9wdGlvbnMsXG4gIE1hcFdpZGdldEJ1YmJsZUxheWVyT3B0aW9ucyxcbiAgTWFwV2lkZ2V0SGVhdE1hcExheWVyT3B0aW9ucyxcbiAgTWFwV2lkZ2V0TGF5ZXJPcHRpb25zLFxuICBNYXBXaWRnZXRNYXJrZXJMYXllck9wdGlvbnMsXG4gIE1hcFdpZGdldFJlbGF0aW9uTGF5ZXJPcHRpb25zLFxuICBNYXBXTVNMYXllckxheWVyT3B0aW9ucyxcbiAgTWFwV01UU0xheWVyTGF5ZXJPcHRpb25zLFxuICBQcnlHZW9BdXRoU2VydmljZSxcbiAgUmVzdWx0U2V0XG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBGZWF0dXJlLCBNYXAgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBnZXRUb3BMZWZ0LCBnZXRXaWR0aCB9IGZyb20gJ29sL2V4dGVudCc7XG5pbXBvcnQgeyBHZW9KU09OLCBNVlQgfSBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCB7IEhlYXRtYXAsIFRpbGUgfSBmcm9tICdvbC9sYXllcic7XG5pbXBvcnQgQmFzZUxheWVyIGZyb20gJ29sL2xheWVyL0Jhc2UnO1xuaW1wb3J0IFZlY3RvckxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XG5pbXBvcnQgVmVjdG9yVGlsZUxheWVyIGZyb20gJ29sL2xheWVyL1ZlY3RvclRpbGUnO1xuaW1wb3J0IHsgQ2x1c3RlciwgSW1hZ2VXTVMsIFRpbGVXTVMsIFZlY3RvciwgV01UUywgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCBWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgVmVjdG9yVGlsZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yVGlsZSc7XG5pbXBvcnQgeyBDaXJjbGUsIEZpbGwsIFN0cm9rZSwgU3R5bGUsIFRleHQgfSBmcm9tICdvbC9zdHlsZSc7XG5pbXBvcnQgQ2lyY2xlU3R5bGUgZnJvbSAnb2wvc3R5bGUvQ2lyY2xlJztcbmltcG9ydCBXTVRTVGlsZUdyaWQgZnJvbSAnb2wvdGlsZWdyaWQvV01UUyc7XG5pbXBvcnQgeyBQcm9qZWN0aW9uTGlrZSB9IGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IHsgV2lkZ2V0TWFwVXRpbHMgfSBmcm9tICcuLi91dGlscy93aWRnZXQtbWFwLnV0aWxzJztcbmltcG9ydCBJbWFnZUxheWVyIGZyb20gJ29sL2xheWVyL0ltYWdlJztcblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlc0ZvckNsYXNzID0ge1xuICBba2V5OiBzdHJpbmddOiB7XG4gICAgaW50ZW5zaXR5QXR0cmlidXRlOiBBdHRyaWJ1dGU7XG4gICAgbG9jYXRpb25BdHRyaWJ1dGU6IEF0dHJpYnV0ZTtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIEl0ZW1TdHlsZXMgPSB7IFtpZDogc3RyaW5nXTogeyBjbGFzc2ljOiBTdHlsZTsgYm9yZGVyZWQ6IFN0eWxlIH0gfTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0TWFwTGF5ZXJTZXJ2aWNlIHtcbiAgc3R5bGVDYWNoZTogYW55ID0ge307XG5cbiAgY2lyY2xlU3R5bGUgPSBuZXcgU3R5bGUoe1xuICAgIGZpbGw6IG5ldyBGaWxsKHtcbiAgICAgIGNvbG9yOiAncmdiYSgzNyw4OSwxNjMsMC4yNCknXG4gICAgfSksXG4gICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHtcbiAgICAgIGNvbG9yOiAncmdiKDM3LDg5LDE2MyknLFxuICAgICAgd2lkdGg6IDJcbiAgICB9KVxuICB9KTtcbiAgc2VsZWN0ZWRDaXJjbGVTdHlsZSA9IG5ldyBTdHlsZSh7XG4gICAgZmlsbDogbmV3IEZpbGwoe1xuICAgICAgY29sb3I6ICdyZ2JhKDM3LDE2Myw1OCwwLjI0KSdcbiAgICB9KSxcbiAgICBzdHJva2U6IG5ldyBTdHJva2Uoe1xuICAgICAgY29sb3I6ICdyZ2IoMzcsMTYzLDU4KScsXG4gICAgICB3aWR0aDogMlxuICAgIH0pXG4gIH0pO1xuXG4gIHBvaW50U3R5bGUgPSBuZXcgU3R5bGUoe1xuICAgIGltYWdlOiBuZXcgQ2lyY2xlKHtcbiAgICAgIGZpbGw6IG5ldyBGaWxsKHsgY29sb3I6ICdyZ2JhKDM3LDg5LDE2MywwLjI0KScgfSksXG4gICAgICBzdHJva2U6IG5ldyBTdHJva2UoeyBjb2xvcjogJ3JnYigzNyw4OSwxNjMpJywgd2lkdGg6IDIgfSksXG4gICAgICByYWRpdXM6IDEwXG4gICAgfSlcbiAgfSk7XG4gIHNlbGVjdGVkUG9pbnRTdHlsZSA9IG5ldyBTdHlsZSh7XG4gICAgaW1hZ2U6IG5ldyBDaXJjbGUoe1xuICAgICAgZmlsbDogbmV3IEZpbGwoeyBjb2xvcjogJ3JnYmEoMzcsMTYzLDU4LDAuMjQpJyB9KSxcbiAgICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7IGNvbG9yOiAncmdiKDM3LDE2Myw1OCknLCB3aWR0aDogMiB9KSxcbiAgICAgIHJhZGl1czogMTBcbiAgICB9KVxuICB9KTtcbiAgZ2VvQXV0aFNlcnZpY2U/OiBQcnlHZW9BdXRoU2VydmljZTtcblxuICB3aXRoR2VvQXV0aChnZW9BdXRoU2VydmljZTogUHJ5R2VvQXV0aFNlcnZpY2UpIHtcbiAgICB0aGlzLmdlb0F1dGhTZXJ2aWNlID0gZ2VvQXV0aFNlcnZpY2U7XG4gIH1cblxuICBnZXQgaW1wbGVtZW50YXRpb25MaXN0KCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmxheWVyc0ltcGxlbWVudGF0aW9uKS5maWx0ZXIoKGltcGxlbWVudGF0aW9uKSA9PiBpbXBsZW1lbnRhdGlvbiAhPT0gJ2dlb3NlcnZlcicpO1xuICB9XG5cbiAgZG9udE5lZWRMb2NhdGlvbiA9IFsncmVsYXRpb24nLCAnd21zJywgJ3dtdHMnLCAnZ2Vvc2VydmVyJywgJ2ZlYXR1cmVsYXllcicsICd2ZWN0b3J0aWxlJywgJ3Jhc3RlcnRpbGUnXTtcbiAgZG9udE5lZWRJbnRlbnNpdHkgPSBbXG4gICAgLi4udGhpcy5kb250TmVlZExvY2F0aW9uLFxuICAgICdtYXJrZXInLFxuICAgICdwb2ludCcsXG4gICAgJ2xpbmUnLFxuICAgICdwb2x5Z29uJyxcbiAgICAnbXVsdGktbGluZScsXG4gICAgJ211bHRpLXBvbHlnb24nLFxuICAgICdhdXRvJ1xuICBdO1xuXG4gIGxheWVyc0ltcGxlbWVudGF0aW9uID0ge1xuICAgIGF1dG86IChcbiAgICAgIGxheWVyOiBNYXBBdXRvTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sYXllcnNJbXBsZW1lbnRhdGlvbltXaWRnZXRNYXBMYXllclNlcnZpY2UudHJhbnNsYXRlRmllbGRUeXBlVG9MYXllclR5cGUobGF5ZXIuc3ViVHlwZSldKFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGxheWVyLFxuICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIHJhbmdlLFxuICAgICAgICBpdGVtU3R5bGVzLFxuICAgICAgICBtYXBcbiAgICAgICkgYXMgQmFzZUxheWVyO1xuICAgIH0sXG4gICAgaGVhdG1hcDogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldEhlYXRNYXBMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGhlYXRtYXAgPSBuZXcgSGVhdG1hcCh7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3IoeyBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10gfSksXG4gICAgICAgIGJsdXI6IChsYXllci5yYWRpdXMgPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9IRUFUTUFQX1JBRElVUykgLyAyLFxuICAgICAgICByYWRpdXM6IGxheWVyLnJhZGl1cyA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX0hFQVRNQVBfUkFESVVTLFxuICAgICAgICB3ZWlnaHQ6IChmZWF0dXJlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoXG4gICAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2ZlYXR1cmUuZ2V0KCdvQ2xhc3MnKSBhcyBzdHJpbmddLmludGVuc2l0eUF0dHJpYnV0ZVxuICAgICAgICAgICkgYXMgbnVtYmVyO1xuICAgICAgICAgIGNvbnN0IGF0U2NhbGUgPSAodmFsdWUgLSByYW5nZS5taW4pIC8gKHJhbmdlLm1heCAtIHJhbmdlLm1pbik7XG4gICAgICAgICAgcmV0dXJuIGxheWVyLmludGVuc2l0eUFzYyA/IGF0U2NhbGUgOiAxIC0gYXRTY2FsZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGxheWVyQ2xhc3Nlc0lkLmZvckVhY2goKGNsYXNzSWQpID0+IHtcbiAgICAgICAgKHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXSB8fCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IFdpZGdldE1hcFV0aWxzLnJlYWRHZW9tZXRyeShcbiAgICAgICAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICdwb2ludCcsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tjbGFzc0lkXS5sb2NhdGlvbkF0dHJpYnV0ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAhIWxvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGhlYXRtYXBcbiAgICAgICAgICAgICAgLmdldFNvdXJjZSgpXG4gICAgICAgICAgICAgID8uYWRkRmVhdHVyZShcbiAgICAgICAgICAgICAgICBXaWRnZXRNYXBVdGlscy5nZXRGZWF0dXJlRnJvbUl0ZW0oXG4gICAgICAgICAgICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgICAnaGVhdHBvaW50JyxcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10ubG9jYXRpb25BdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGhlYXRtYXAgYXMgQmFzZUxheWVyO1xuICAgIH0sXG4gICAgbWFya2VyOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCB2ZWN0b3JMYXllciA9IG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2UoeyBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10gfSlcbiAgICAgIH0pO1xuXG4gICAgICBsYXllckNsYXNzZXNJZC5mb3JFYWNoKChjbGFzc0lkKSA9PiB7XG4gICAgICAgIChyZXN1bHRTZXQuaXRlbXNbY2xhc3NJZF0gfHwgW10pXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBXaWRnZXRNYXBVdGlscy5yZWFkR2VvbWV0cnkoXG4gICAgICAgICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAncG9pbnQnLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3NbaXRlbS5vQ2xhc3NdLmxvY2F0aW9uQXR0cmlidXRlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuICEhbG9jYXRpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZm9yRWFjaChhc3luYyAoaXRlbSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbUZlYXR1cmUgPSBXaWRnZXRNYXBVdGlscy5nZXRGZWF0dXJlRnJvbUl0ZW0oXG4gICAgICAgICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAnbWFya2VyJyxcbiAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2l0ZW0ub0NsYXNzXS5sb2NhdGlvbkF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgaXRlbVN0eWxlc1tpdGVtLmlkXT8uY2xhc3NpYyxcbiAgICAgICAgICAgICAgaXRlbVN0eWxlc1tpdGVtLmlkXT8uYm9yZGVyZWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpdGVtRmVhdHVyZS5zZXRTdHlsZShpdGVtRmVhdHVyZS5nZXQoJ2NsYXNzaWNTdHlsZScpKTtcbiAgICAgICAgICAgIHZlY3RvckxheWVyLmdldFNvdXJjZSgpPy5hZGRGZWF0dXJlKGl0ZW1GZWF0dXJlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5tYWtlQ2x1c3RlcmVkKHZlY3RvckxheWVyLCBsYXllcik7XG4gICAgfSxcbiAgICBwb2ludDogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubGF5ZXJGcm9tR2VvSnNvbkdlb21ldHJ5KFxuICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgICAgJ3BvaW50J1xuICAgICAgKTtcbiAgICB9LFxuICAgIGxpbmU6IChcbiAgICAgIGxheWVyOiBNYXBXaWRnZXRNYXJrZXJMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmxheWVyRnJvbUdlb0pzb25HZW9tZXRyeShcbiAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgIGxheWVyLFxuICAgICAgICBsYXllckNsYXNzZXNJZCxcbiAgICAgICAgcmVzdWx0U2V0LFxuICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICAgICdsaW5lJ1xuICAgICAgKTtcbiAgICB9LFxuICAgICdtdWx0aS1saW5lJzogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubGF5ZXJGcm9tR2VvSnNvbkdlb21ldHJ5KFxuICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgICAgJ211bHRpLWxpbmUnXG4gICAgICApO1xuICAgIH0sXG4gICAgcG9seWdvbjogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubGF5ZXJGcm9tR2VvSnNvbkdlb21ldHJ5KFxuICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgICAgJ3BvbHlnb24nXG4gICAgICApO1xuICAgIH0sXG4gICAgJ211bHRpLXBvbHlnb24nOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sYXllckZyb21HZW9Kc29uR2VvbWV0cnkoXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJDbGFzc2VzSWQsXG4gICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgICAnbXVsdGktcG9seWdvbidcbiAgICAgICk7XG4gICAgfSxcbiAgICBidWJibGU6IChcbiAgICAgIGxheWVyOiBNYXBXaWRnZXRCdWJibGVMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGJ1YmJsZUxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7IGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSB9KVxuICAgICAgfSk7XG5cbiAgICAgIGxheWVyQ2xhc3Nlc0lkLmZvckVhY2goKGNsYXNzSWQpID0+IHtcbiAgICAgICAgKHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXSB8fCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IFdpZGdldE1hcFV0aWxzLnJlYWRHZW9tZXRyeShcbiAgICAgICAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICdwb2ludCcsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10ubG9jYXRpb25BdHRyaWJ1dGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gISFsb2NhdGlvbjtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVDYWxjdWxhdGVkVmFsdWUoXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10uaW50ZW5zaXR5QXR0cmlidXRlXG4gICAgICAgICAgICApIGFzIG51bWJlcjtcbiAgICAgICAgICAgIGNvbnN0IGF0U2NhbGUgPSAodmFsdWUgLSByYW5nZS5taW4pIC8gKHJhbmdlLm1heCAtIHJhbmdlLm1pbik7XG4gICAgICAgICAgICBjb25zdCBpdGVtRmVhdHVyZSA9IFdpZGdldE1hcFV0aWxzLmdldENpcmNsZUZlYXR1cmVGcm9tSXRlbShcbiAgICAgICAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10ubG9jYXRpb25BdHRyaWJ1dGUsXG4gICAgICAgICAgICAgIChsYXllci5pbnRlbnNpdHlBc2MgPyBhdFNjYWxlIDogMSAtIGF0U2NhbGUpICpcbiAgICAgICAgICAgICAgICAobGF5ZXIucmFkaXVzRmFjdG9yID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfUkFESVVTX0lOVEVOU0lUWV9GQUNUT1IpLFxuICAgICAgICAgICAgICB0aGlzLmNpcmNsZVN0eWxlLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2lyY2xlU3R5bGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpdGVtRmVhdHVyZS5zZXRTdHlsZShpdGVtRmVhdHVyZS5nZXQoJ2NsYXNzaWNTdHlsZScpKTtcbiAgICAgICAgICAgIGJ1YmJsZUxheWVyLmdldFNvdXJjZSgpPy5hZGRGZWF0dXJlKGl0ZW1GZWF0dXJlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYnViYmxlTGF5ZXI7XG4gICAgfSxcbiAgICByZWxhdGlvbjogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldFJlbGF0aW9uTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7IGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSB9KVxuICAgICAgfSk7XG4gICAgfSxcbiAgICB3bXM6IChcbiAgICAgIGxheWVyOiBNYXBXTVNMYXllckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW1wbCA9XG4gICAgICAgIGxheWVyLnBhcmFtVGlsZWQgPT09IHVuZGVmaW5lZCB8fCBsYXllci5wYXJhbVRpbGVkXG4gICAgICAgICAgPyBuZXcgVGlsZSh7XG4gICAgICAgICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBUaWxlV01TKHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10sXG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46ICdhbm9ueW1vdXMnLFxuICAgICAgICAgICAgICAgIHVybDogbGF5ZXIudXJsLFxuICAgICAgICAgICAgICAgIHRpbGVMb2FkRnVuY3Rpb246ICh0aWxlOiBhbnksIHN0cjogc3RyaW5nKSA9PiB0aGlzLmdlb0F1dGhTZXJ2aWNlPy5jdXN0b21Mb2FkZXIodGlsZSwgc3RyKSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgTEFZRVJTOiBsYXllci5wYXJhbUxheWVyLCBUSUxFRDogbGF5ZXIucGFyYW1UaWxlZCwgLi4uKGxheWVyLmFkZGl0aW9uYWxQYXJhbWV0ZXJzID8/IHt9KSB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogbmV3IEltYWdlTGF5ZXIoe1xuICAgICAgICAgICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICAgICAgICAgIG1heFpvb206IGxheWVyLm1heFpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01BWCxcbiAgICAgICAgICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgICAgICAgICAgc291cmNlOiBuZXcgSW1hZ2VXTVMoe1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogJ2Fub255bW91cycsXG4gICAgICAgICAgICAgICAgdXJsOiBsYXllci51cmwsXG4gICAgICAgICAgICAgICAgaW1hZ2VMb2FkRnVuY3Rpb246ICh0aWxlOiBhbnksIHN0cjogc3RyaW5nKSA9PiB0aGlzLmdlb0F1dGhTZXJ2aWNlPy5jdXN0b21Mb2FkZXIodGlsZSwgc3RyKSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgTEFZRVJTOiBsYXllci5wYXJhbUxheWVyLCBUSUxFRDogbGF5ZXIucGFyYW1UaWxlZCwgLi4uKGxheWVyLmFkZGl0aW9uYWxQYXJhbWV0ZXJzID8/IHt9KSB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KTtcbiAgICAgIGltcGwuc2V0KCd1cmwnLCBsYXllci51cmwpO1xuICAgICAgaW1wbC5zZXQoJ3BhcmFtTGF5ZXInLCBsYXllci5wYXJhbUxheWVyKTtcbiAgICAgIGltcGwuc2V0KCdvQ2xhc3MnLCBsYXllci5vQ2xhc3MpO1xuICAgICAgaW1wbC5zZXQoJ2dldEZlYXR1cmVJbmZvQWRkaXRpb25hbFBhcmFtZXRlcnMnLCBsYXllci5nZXRGZWF0dXJlSW5mb0FkZGl0aW9uYWxQYXJhbWV0ZXJzID8/IHt9KTtcbiAgICAgIHJldHVybiBpbXBsO1xuICAgIH0sXG4gICAgd210czogKFxuICAgICAgbGF5ZXI6IE1hcFdNVFNMYXllckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgcHJvamVjdGlvbiA9IG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xuICAgICAgY29uc3QgcHJvamVjdGlvbkV4dGVudCA9IHByb2plY3Rpb24uZ2V0RXh0ZW50KCk7XG4gICAgICBjb25zdCBzaXplID0gZ2V0V2lkdGgocHJvamVjdGlvbkV4dGVudCkgLyAyNTY7XG4gICAgICBjb25zdCByZXNvbHV0aW9ucyA9IG5ldyBBcnJheSgxOSk7XG4gICAgICBjb25zdCBtYXRyaXhJZHMgPSBuZXcgQXJyYXkoMTkpO1xuICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCAxOTsgKyt6KSB7XG4gICAgICAgIC8vIGdlbmVyYXRlIHJlc29sdXRpb25zIGFuZCBtYXRyaXhJZHMgYXJyYXlzIGZvciB0aGlzIFdNVFNcbiAgICAgICAgcmVzb2x1dGlvbnNbel0gPSBzaXplIC8gTWF0aC5wb3coMiwgeik7XG4gICAgICAgIG1hdHJpeElkc1t6XSA9IHo7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFRpbGUoe1xuICAgICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICAgIG1heFpvb206IGxheWVyLm1heFpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01BWCxcbiAgICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgICAgc291cmNlOiBuZXcgV01UUyh7XG4gICAgICAgICAgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddLFxuICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJyxcbiAgICAgICAgICB1cmw6IGxheWVyLnVybCxcbiAgICAgICAgICBsYXllcjogbGF5ZXIucGFyYW1MYXllcixcbiAgICAgICAgICBtYXRyaXhTZXQ6IGxheWVyLm1hdHJpeFNldCxcbiAgICAgICAgICBwcm9qZWN0aW9uLFxuICAgICAgICAgIHRpbGVHcmlkOiBuZXcgV01UU1RpbGVHcmlkKHtcbiAgICAgICAgICAgIG9yaWdpbjogZ2V0VG9wTGVmdChwcm9qZWN0aW9uRXh0ZW50KSxcbiAgICAgICAgICAgIHJlc29sdXRpb25zOiByZXNvbHV0aW9ucyxcbiAgICAgICAgICAgIG1hdHJpeElkczogbWF0cml4SWRzXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3R5bGU6IGxheWVyLnN0eWxlXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGdlb3NlcnZlcjogKFxuICAgICAgbGF5ZXI6IE1hcEdlb1NlcnZlckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW1wbCA9IHRoaXMubGF5ZXJzSW1wbGVtZW50YXRpb25bJ3dtcyddKFxuICAgICAgICB7IC4uLmxheWVyLCB0eXBlOiAnd21zJywgb0NsYXNzOiBsYXllci5vQ2xhc3MgfSxcbiAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgICBsYXllckNsYXNzZXNJZCxcbiAgICAgICAgcmVzdWx0U2V0LFxuICAgICAgICByYW5nZSxcbiAgICAgICAgaXRlbVN0eWxlcyxcbiAgICAgICAgbWFwXG4gICAgICApO1xuICAgICAgaW1wbC5zZXQoJ3RpdGxlJywgbGF5ZXIudGl0bGUpO1xuICAgICAgaW1wbC5zZXQoJ29DbGFzcycsIGxheWVyLm9DbGFzcyk7XG4gICAgICBpbXBsLnNldCgnZGF0YXNvdXJjZUlkJywgbGF5ZXIuZGF0YXNvdXJjZUlkKTtcbiAgICAgIGltcGwuc2V0KCdnZW9tUHJvcE5hbWUnLCBsYXllci5nZW9tUHJvcE5hbWUgPz8gJ2dlb20nKTtcbiAgICAgIHJldHVybiBpbXBsO1xuICAgIH0sXG4gICAgZmVhdHVyZWxheWVyOiAoXG4gICAgICBsYXllcjogTWFwRmVhdHVyZUxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBWZWN0b3JMYXllcih7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JTb3VyY2Uoe1xuICAgICAgICAgIGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSxcbiAgICAgICAgICBmb3JtYXQ6IG5ldyBHZW9KU09OKCksXG4gICAgICAgICAgdXJsOiBsYXllci51cmxcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdmVjdG9ydGlsZTogKFxuICAgICAgbGF5ZXI6IE1hcFZlY3RvclRpbGVMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiBuZXcgVmVjdG9yVGlsZUxheWVyKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclRpbGUoe1xuICAgICAgICAgIGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSxcbiAgICAgICAgICBmb3JtYXQ6IG5ldyBNVlQoKSxcbiAgICAgICAgICB1cmw6IGxheWVyLnVybFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfSxcbiAgICByYXN0ZXJ0aWxlOiAoXG4gICAgICBsYXllcjogTWFwUmFzdGVyVGlsZUxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBUaWxlKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFhZWih7XG4gICAgICAgICAgdXJsOiBsYXllci51cmwsXG4gICAgICAgICAgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBsYXllckZyb21HZW9Kc29uR2VvbWV0cnkoXG4gICAgcHJvamVjdGlvbjogUHJvamVjdGlvbkxpa2UsXG4gICAgbGF5ZXI6IE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgdHlwZTogJ3BvaW50JyB8ICdsaW5lJyB8ICdtdWx0aS1saW5lJyB8ICdwb2x5Z29uJyB8ICdtdWx0aS1wb2x5Z29uJ1xuICApIHtcbiAgICBjb25zdCB2ZWN0b3JMYXllciA9IG5ldyBWZWN0b3JMYXllcih7XG4gICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHsgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddIH0pXG4gICAgfSk7XG5cbiAgICBsYXllckNsYXNzZXNJZC5mb3JFYWNoKChjbGFzc0lkKSA9PiB7XG4gICAgICAocmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdIHx8IFtdKVxuICAgICAgICAubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgbG9jYXRpb246IFdpZGdldE1hcFV0aWxzLnJlYWRHZW9tZXRyeShcbiAgICAgICAgICAgIHByb2plY3Rpb24sXG4gICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10ubG9jYXRpb25BdHRyaWJ1dGVcbiAgICAgICAgICApXG4gICAgICAgIH0pKVxuICAgICAgICAuZmlsdGVyKCh7IGxvY2F0aW9uIH0pID0+ICEhbG9jYXRpb24pXG4gICAgICAgIC5mb3JFYWNoKGFzeW5jIChzdWJJdGVtKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbUZlYXR1cmUgPSBuZXcgRmVhdHVyZSh7XG4gICAgICAgICAgICAuLi5zdWJJdGVtLml0ZW0sXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgZ2VvbWV0cnk6IHN1Ykl0ZW0ubG9jYXRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2xhc3NpY1N0eWxlOiB0eXBlID09PSAncG9pbnQnID8gdGhpcy5wb2ludFN0eWxlIDogdGhpcy5jaXJjbGVTdHlsZSxcbiAgICAgICAgICAgIHNlbGVjdGVkU3R5bGU6IHR5cGUgPT09ICdwb2ludCcgPyB0aGlzLnNlbGVjdGVkUG9pbnRTdHlsZSA6IHRoaXMuc2VsZWN0ZWRDaXJjbGVTdHlsZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGl0ZW1GZWF0dXJlLnNldFN0eWxlKGl0ZW1GZWF0dXJlLmdldCgnY2xhc3NpY1N0eWxlJykpO1xuICAgICAgICAgIHZlY3RvckxheWVyLmdldFNvdXJjZSgpPy5hZGRGZWF0dXJlKGl0ZW1GZWF0dXJlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5tYWtlQ2x1c3RlcmVkKHZlY3RvckxheWVyLCBsYXllcik7XG4gIH1cblxuICBwcml2YXRlIG1ha2VDbHVzdGVyZWQobGF5ZXI6IEJhc2VMYXllciwgbGF5ZXJPcHRpb25zOiBNYXBXaWRnZXRMYXllck9wdGlvbnMpIHtcbiAgICBpZiAoIVsnbWFya2VyJywgJ2J1YmJsZSddLmluY2x1ZGVzKGxheWVyT3B0aW9ucy50eXBlKSB8fCAhKCdjbHVzdGVyZWQnIGluIGxheWVyT3B0aW9ucyAmJiBsYXllck9wdGlvbnMuY2x1c3RlcmVkKSkge1xuICAgICAgcmV0dXJuIGxheWVyO1xuICAgIH1cbiAgICAvLyBDbHVzdGVyaW5nIHNvdXJjZVxuICAgIGNvbnN0IHZlY3RvckxheWVyID0gbGF5ZXIgYXMgVmVjdG9yTGF5ZXI8VmVjdG9yU291cmNlPEdlb21ldHJ5Pj47XG4gICAgdmVjdG9yTGF5ZXIuc2V0U291cmNlKFxuICAgICAgbmV3IENsdXN0ZXIoe1xuICAgICAgICBkaXN0YW5jZTogbGF5ZXJPcHRpb25zLmNsdXN0ZXJEaXN0YW5jZSxcbiAgICAgICAgbWluRGlzdGFuY2U6IDEwLFxuICAgICAgICBzb3VyY2U6IHZlY3RvckxheWVyLmdldFNvdXJjZSgpIGFzIFZlY3RvclNvdXJjZVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdmVjdG9yTGF5ZXIuc2V0U3R5bGUoKGZlYXR1cmUpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBmZWF0dXJlLmdldCgnZmVhdHVyZXMnKS5sZW5ndGg7XG4gICAgICBpZiAoc2l6ZSA+IDEpIHtcbiAgICAgICAgbGV0IHN0eWxlID0gdGhpcy5zdHlsZUNhY2hlW3NpemVdO1xuICAgICAgICBpZiAoIXN0eWxlKSB7XG4gICAgICAgICAgc3R5bGUgPSBuZXcgU3R5bGUoe1xuICAgICAgICAgICAgaW1hZ2U6IG5ldyBDaXJjbGVTdHlsZSh7XG4gICAgICAgICAgICAgIHJhZGl1czogMTAsXG4gICAgICAgICAgICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7XG4gICAgICAgICAgICAgICAgY29sb3I6ICcjZmZmJ1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsbDogbmV3IEZpbGwoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnIzMzOTlDQydcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGV4dDogbmV3IFRleHQoeyB0ZXh0OiBgJHtzaXplfWAgfSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnN0eWxlQ2FjaGVbc2l6ZV0gPSBzdHlsZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2l6ZSA9PT0gMSA/IGZlYXR1cmUuZ2V0KCdmZWF0dXJlcycpWzBdLmdldCgnY2xhc3NpY1N0eWxlJykgOiBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxheWVyO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zbGF0ZUZpZWxkVHlwZVRvTGF5ZXJUeXBlKHN1YlR5cGU6IHN0cmluZykge1xuICAgIHN3aXRjaCAoc3ViVHlwZSkge1xuICAgICAgY2FzZSBGaWVsZFR5cGUuUE9JTlQ6XG4gICAgICAgIHJldHVybiAnbWFya2VyJztcbiAgICAgIGNhc2UgRmllbGRUeXBlLkxJTkU6XG4gICAgICAgIHJldHVybiAnbGluZSc7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5QT0xZR09OOlxuICAgICAgICByZXR1cm4gJ3BvbHlnb24nO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuTVVMVElMSU5FOlxuICAgICAgICByZXR1cm4gJ211bHRpLWxpbmUnO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuTVVMVElQT0xZR09OOlxuICAgICAgICByZXR1cm4gJ211bHRpLXBvbHlnb24nO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS53YXJuKGB3cm9uZyB0eXBlICR7c3ViVHlwZX0gZm9yIGF1dG8gb3B0aW9uc2ApO1xuICAgICAgICByZXR1cm4gJ21hcmtlcic7XG4gICAgfVxuICB9XG59XG4iXX0=
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1hcC1sYXllci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2NvbXBvbmVudC93aWRnZXQtbWFwLWxheWVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFlVixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQU8sTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxlQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sWUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdELE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFB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QUM1RSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsNkJBQTZCLENBQUMsT0FBZTtRQUNsRCxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssU0FBUyxDQUFDLFNBQVM7Z0JBQ3RCLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssU0FBUyxDQUFDLFlBQVk7Z0JBQ3pCLE9BQU8sZUFBZSxDQUFDO1lBQ3pCO2dCQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxPQUFPLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3ZELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDOzhHQXBsQlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgRmllbGRUeXBlLFxuICBJdGVtVXRpbHMsXG4gIE1hcEF1dG9MYXllck9wdGlvbnMsXG4gIE1hcEZlYXR1cmVMYXllck9wdGlvbnMsXG4gIE1hcEdlb1NlcnZlckxheWVyT3B0aW9ucyxcbiAgTWFwUmFzdGVyVGlsZUxheWVyT3B0aW9ucyxcbiAgTWFwVmVjdG9yVGlsZUxheWVyT3B0aW9ucyxcbiAgTWFwV2lkZ2V0QnViYmxlTGF5ZXJPcHRpb25zLFxuICBNYXBXaWRnZXRIZWF0TWFwTGF5ZXJPcHRpb25zLFxuICBNYXBXaWRnZXRMYXllck9wdGlvbnMsXG4gIE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgTWFwV2lkZ2V0UmVsYXRpb25MYXllck9wdGlvbnMsXG4gIE1hcFdNU0xheWVyTGF5ZXJPcHRpb25zLFxuICBNYXBXTVRTTGF5ZXJMYXllck9wdGlvbnMsXG4gIFByeUdlb0F1dGhTZXJ2aWNlLFxuICBSZXN1bHRTZXRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEZlYXR1cmUsIE1hcCB9IGZyb20gJ29sJztcbmltcG9ydCB7IGdldFRvcExlZnQsIGdldFdpZHRoIH0gZnJvbSAnb2wvZXh0ZW50JztcbmltcG9ydCB7IEdlb0pTT04sIE1WVCB9IGZyb20gJ29sL2Zvcm1hdCc7XG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20nO1xuaW1wb3J0IHsgSGVhdG1hcCwgVGlsZSB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCBCYXNlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvQmFzZSc7XG5pbXBvcnQgVmVjdG9yTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yJztcbmltcG9ydCBWZWN0b3JUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVmVjdG9yVGlsZSc7XG5pbXBvcnQgeyBDbHVzdGVyLCBJbWFnZVdNUywgVGlsZVdNUywgVmVjdG9yLCBXTVRTLCBYWVogfSBmcm9tICdvbC9zb3VyY2UnO1xuaW1wb3J0IFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcbmltcG9ydCBWZWN0b3JUaWxlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3JUaWxlJztcbmltcG9ydCB7IENpcmNsZSwgRmlsbCwgU3Ryb2tlLCBTdHlsZSwgVGV4dCB9IGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCBDaXJjbGVTdHlsZSBmcm9tICdvbC9zdHlsZS9DaXJjbGUnO1xuaW1wb3J0IFdNVFNUaWxlR3JpZCBmcm9tICdvbC90aWxlZ3JpZC9XTVRTJztcbmltcG9ydCB7IFByb2plY3Rpb25MaWtlIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgeyBXaWRnZXRNYXBVdGlscyB9IGZyb20gJy4uL3V0aWxzL3dpZGdldC1tYXAudXRpbHMnO1xuaW1wb3J0IEltYWdlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvSW1hZ2UnO1xuXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVzRm9yQ2xhc3MgPSB7XG4gIFtrZXk6IHN0cmluZ106IHtcbiAgICBpbnRlbnNpdHlBdHRyaWJ1dGU6IEF0dHJpYnV0ZTtcbiAgICBsb2NhdGlvbkF0dHJpYnV0ZTogQXR0cmlidXRlO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgSXRlbVN0eWxlcyA9IHsgW2lkOiBzdHJpbmddOiB7IGNsYXNzaWM6IFN0eWxlOyBib3JkZXJlZDogU3R5bGUgfSB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRNYXBMYXllclNlcnZpY2Uge1xuICBzdHlsZUNhY2hlOiBhbnkgPSB7fTtcblxuICBjaXJjbGVTdHlsZSA9IG5ldyBTdHlsZSh7XG4gICAgZmlsbDogbmV3IEZpbGwoe1xuICAgICAgY29sb3I6ICdyZ2JhKDM3LDg5LDE2MywwLjI0KSdcbiAgICB9KSxcbiAgICBzdHJva2U6IG5ldyBTdHJva2Uoe1xuICAgICAgY29sb3I6ICdyZ2IoMzcsODksMTYzKScsXG4gICAgICB3aWR0aDogMlxuICAgIH0pXG4gIH0pO1xuICBzZWxlY3RlZENpcmNsZVN0eWxlID0gbmV3IFN0eWxlKHtcbiAgICBmaWxsOiBuZXcgRmlsbCh7XG4gICAgICBjb2xvcjogJ3JnYmEoMzcsMTYzLDU4LDAuMjQpJ1xuICAgIH0pLFxuICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7XG4gICAgICBjb2xvcjogJ3JnYigzNywxNjMsNTgpJyxcbiAgICAgIHdpZHRoOiAyXG4gICAgfSlcbiAgfSk7XG5cbiAgcG9pbnRTdHlsZSA9IG5ldyBTdHlsZSh7XG4gICAgaW1hZ2U6IG5ldyBDaXJjbGUoe1xuICAgICAgZmlsbDogbmV3IEZpbGwoeyBjb2xvcjogJ3JnYmEoMzcsODksMTYzLDAuMjQpJyB9KSxcbiAgICAgIHN0cm9rZTogbmV3IFN0cm9rZSh7IGNvbG9yOiAncmdiKDM3LDg5LDE2MyknLCB3aWR0aDogMiB9KSxcbiAgICAgIHJhZGl1czogMTBcbiAgICB9KVxuICB9KTtcbiAgc2VsZWN0ZWRQb2ludFN0eWxlID0gbmV3IFN0eWxlKHtcbiAgICBpbWFnZTogbmV3IENpcmNsZSh7XG4gICAgICBmaWxsOiBuZXcgRmlsbCh7IGNvbG9yOiAncmdiYSgzNywxNjMsNTgsMC4yNCknIH0pLFxuICAgICAgc3Ryb2tlOiBuZXcgU3Ryb2tlKHsgY29sb3I6ICdyZ2IoMzcsMTYzLDU4KScsIHdpZHRoOiAyIH0pLFxuICAgICAgcmFkaXVzOiAxMFxuICAgIH0pXG4gIH0pO1xuICBnZW9BdXRoU2VydmljZT86IFByeUdlb0F1dGhTZXJ2aWNlO1xuXG4gIHdpdGhHZW9BdXRoKGdlb0F1dGhTZXJ2aWNlOiBQcnlHZW9BdXRoU2VydmljZSkge1xuICAgIHRoaXMuZ2VvQXV0aFNlcnZpY2UgPSBnZW9BdXRoU2VydmljZTtcbiAgfVxuXG4gIGdldCBpbXBsZW1lbnRhdGlvbkxpc3QoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMubGF5ZXJzSW1wbGVtZW50YXRpb24pLmZpbHRlcigoaW1wbGVtZW50YXRpb24pID0+IGltcGxlbWVudGF0aW9uICE9PSAnZ2Vvc2VydmVyJyk7XG4gIH1cblxuICBkb250TmVlZExvY2F0aW9uID0gWydyZWxhdGlvbicsICd3bXMnLCAnd210cycsICdnZW9zZXJ2ZXInLCAnZmVhdHVyZWxheWVyJywgJ3ZlY3RvcnRpbGUnLCAncmFzdGVydGlsZSddO1xuICBkb250TmVlZEludGVuc2l0eSA9IFtcbiAgICAuLi50aGlzLmRvbnROZWVkTG9jYXRpb24sXG4gICAgJ21hcmtlcicsXG4gICAgJ3BvaW50JyxcbiAgICAnbGluZScsXG4gICAgJ3BvbHlnb24nLFxuICAgICdtdWx0aS1saW5lJyxcbiAgICAnbXVsdGktcG9seWdvbicsXG4gICAgJ2F1dG8nXG4gIF07XG5cbiAgbGF5ZXJzSW1wbGVtZW50YXRpb24gPSB7XG4gICAgYXV0bzogKFxuICAgICAgbGF5ZXI6IE1hcEF1dG9MYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmxheWVyc0ltcGxlbWVudGF0aW9uW1dpZGdldE1hcExheWVyU2VydmljZS50cmFuc2xhdGVGaWVsZFR5cGVUb0xheWVyVHlwZShsYXllci5zdWJUeXBlKV0oXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgICAgbGF5ZXJDbGFzc2VzSWQsXG4gICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgcmFuZ2UsXG4gICAgICAgIGl0ZW1TdHlsZXMsXG4gICAgICAgIG1hcFxuICAgICAgKSBhcyBCYXNlTGF5ZXI7XG4gICAgfSxcbiAgICBoZWF0bWFwOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0SGVhdE1hcExheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaGVhdG1hcCA9IG5ldyBIZWF0bWFwKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFZlY3Rvcih7IGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSB9KSxcbiAgICAgICAgYmx1cjogKGxheWVyLnJhZGl1cyA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX0hFQVRNQVBfUkFESVVTKSAvIDIsXG4gICAgICAgIHJhZGl1czogbGF5ZXIucmFkaXVzID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfSEVBVE1BUF9SQURJVVMsXG4gICAgICAgIHdlaWdodDogKGZlYXR1cmU6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShcbiAgICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3NbZmVhdHVyZS5nZXQoJ29DbGFzcycpIGFzIHN0cmluZ10uaW50ZW5zaXR5QXR0cmlidXRlXG4gICAgICAgICAgKSBhcyBudW1iZXI7XG4gICAgICAgICAgY29uc3QgYXRTY2FsZSA9ICh2YWx1ZSAtIHJhbmdlLm1pbikgLyAocmFuZ2UubWF4IC0gcmFuZ2UubWluKTtcbiAgICAgICAgICByZXR1cm4gbGF5ZXIuaW50ZW5zaXR5QXNjID8gYXRTY2FsZSA6IDEgLSBhdFNjYWxlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGF5ZXJDbGFzc2VzSWQuZm9yRWFjaCgoY2xhc3NJZCkgPT4ge1xuICAgICAgICAocmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdIHx8IFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gV2lkZ2V0TWFwVXRpbHMucmVhZEdlb21ldHJ5KFxuICAgICAgICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgJ3BvaW50JyxcbiAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2NsYXNzSWRdLmxvY2F0aW9uQXR0cmlidXRlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuICEhbG9jYXRpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaGVhdG1hcFxuICAgICAgICAgICAgICAuZ2V0U291cmNlKClcbiAgICAgICAgICAgICAgPy5hZGRGZWF0dXJlKFxuICAgICAgICAgICAgICAgIFdpZGdldE1hcFV0aWxzLmdldEZlYXR1cmVGcm9tSXRlbShcbiAgICAgICAgICAgICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICAgICdoZWF0cG9pbnQnLFxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2l0ZW0ub0NsYXNzXS5sb2NhdGlvbkF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gaGVhdG1hcCBhcyBCYXNlTGF5ZXI7XG4gICAgfSxcbiAgICBtYXJrZXI6IChcbiAgICAgIGxheWVyOiBNYXBXaWRnZXRNYXJrZXJMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IHZlY3RvckxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7IGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSB9KVxuICAgICAgfSk7XG5cbiAgICAgIGxheWVyQ2xhc3Nlc0lkLmZvckVhY2goKGNsYXNzSWQpID0+IHtcbiAgICAgICAgKHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXSB8fCBbXSlcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IFdpZGdldE1hcFV0aWxzLnJlYWRHZW9tZXRyeShcbiAgICAgICAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICdwb2ludCcsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzc1tpdGVtLm9DbGFzc10ubG9jYXRpb25BdHRyaWJ1dGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gISFsb2NhdGlvbjtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5mb3JFYWNoKGFzeW5jIChpdGVtKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtRmVhdHVyZSA9IFdpZGdldE1hcFV0aWxzLmdldEZlYXR1cmVGcm9tSXRlbShcbiAgICAgICAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICdtYXJrZXInLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3NbaXRlbS5vQ2xhc3NdLmxvY2F0aW9uQXR0cmlidXRlLFxuICAgICAgICAgICAgICBpdGVtU3R5bGVzW2l0ZW0uaWRdPy5jbGFzc2ljLFxuICAgICAgICAgICAgICBpdGVtU3R5bGVzW2l0ZW0uaWRdPy5ib3JkZXJlZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGl0ZW1GZWF0dXJlLnNldFN0eWxlKGl0ZW1GZWF0dXJlLmdldCgnY2xhc3NpY1N0eWxlJykpO1xuICAgICAgICAgICAgdmVjdG9yTGF5ZXIuZ2V0U291cmNlKCk/LmFkZEZlYXR1cmUoaXRlbUZlYXR1cmUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB0aGlzLm1ha2VDbHVzdGVyZWQodmVjdG9yTGF5ZXIsIGxheWVyKTtcbiAgICB9LFxuICAgIHBvaW50OiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sYXllckZyb21HZW9Kc29uR2VvbWV0cnkoXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJDbGFzc2VzSWQsXG4gICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgICAncG9pbnQnXG4gICAgICApO1xuICAgIH0sXG4gICAgbGluZTogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldE1hcmtlckxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubGF5ZXJGcm9tR2VvSnNvbkdlb21ldHJ5KFxuICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgbGF5ZXIsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgICAgJ2xpbmUnXG4gICAgICApO1xuICAgIH0sXG4gICAgJ211bHRpLWxpbmUnOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sYXllckZyb21HZW9Kc29uR2VvbWV0cnkoXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJDbGFzc2VzSWQsXG4gICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgICAnbXVsdGktbGluZSdcbiAgICAgICk7XG4gICAgfSxcbiAgICBwb2x5Z29uOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0TWFya2VyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5sYXllckZyb21HZW9Kc29uR2VvbWV0cnkoXG4gICAgICAgIG1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLFxuICAgICAgICBsYXllcixcbiAgICAgICAgbGF5ZXJDbGFzc2VzSWQsXG4gICAgICAgIHJlc3VsdFNldCxcbiAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgICAncG9seWdvbidcbiAgICAgICk7XG4gICAgfSxcbiAgICAnbXVsdGktcG9seWdvbic6IChcbiAgICAgIGxheWVyOiBNYXBXaWRnZXRNYXJrZXJMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmxheWVyRnJvbUdlb0pzb25HZW9tZXRyeShcbiAgICAgICAgbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksXG4gICAgICAgIGxheWVyLFxuICAgICAgICBsYXllckNsYXNzZXNJZCxcbiAgICAgICAgcmVzdWx0U2V0LFxuICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICAgICdtdWx0aS1wb2x5Z29uJ1xuICAgICAgKTtcbiAgICB9LFxuICAgIGJ1YmJsZTogKFxuICAgICAgbGF5ZXI6IE1hcFdpZGdldEJ1YmJsZUxheWVyT3B0aW9ucyxcbiAgICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgICAgcmVzdWx0U2V0OiBSZXN1bHRTZXQsXG4gICAgICByYW5nZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfSxcbiAgICAgIGl0ZW1TdHlsZXM6IEl0ZW1TdHlsZXMsXG4gICAgICBtYXA6IE1hcFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgYnViYmxlTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICAgIG1heFpvb206IGxheWVyLm1heFpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01BWCxcbiAgICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHsgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddIH0pXG4gICAgICB9KTtcblxuICAgICAgbGF5ZXJDbGFzc2VzSWQuZm9yRWFjaCgoY2xhc3NJZCkgPT4ge1xuICAgICAgICAocmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdIHx8IFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gV2lkZ2V0TWFwVXRpbHMucmVhZEdlb21ldHJ5KFxuICAgICAgICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgJ3BvaW50JyxcbiAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2l0ZW0ub0NsYXNzXS5sb2NhdGlvbkF0dHJpYnV0ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiAhIWxvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShcbiAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2l0ZW0ub0NsYXNzXS5pbnRlbnNpdHlBdHRyaWJ1dGVcbiAgICAgICAgICAgICkgYXMgbnVtYmVyO1xuICAgICAgICAgICAgY29uc3QgYXRTY2FsZSA9ICh2YWx1ZSAtIHJhbmdlLm1pbikgLyAocmFuZ2UubWF4IC0gcmFuZ2UubWluKTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1GZWF0dXJlID0gV2lkZ2V0TWFwVXRpbHMuZ2V0Q2lyY2xlRmVhdHVyZUZyb21JdGVtKFxuICAgICAgICAgICAgICBtYXAuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKSxcbiAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlc0ZvckNsYXNzW2l0ZW0ub0NsYXNzXS5sb2NhdGlvbkF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgKGxheWVyLmludGVuc2l0eUFzYyA/IGF0U2NhbGUgOiAxIC0gYXRTY2FsZSkgKlxuICAgICAgICAgICAgICAgIChsYXllci5yYWRpdXNGYWN0b3IgPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9SQURJVVNfSU5URU5TSVRZX0ZBQ1RPUiksXG4gICAgICAgICAgICAgIHRoaXMuY2lyY2xlU3R5bGUsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDaXJjbGVTdHlsZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGl0ZW1GZWF0dXJlLnNldFN0eWxlKGl0ZW1GZWF0dXJlLmdldCgnY2xhc3NpY1N0eWxlJykpO1xuICAgICAgICAgICAgYnViYmxlTGF5ZXIuZ2V0U291cmNlKCk/LmFkZEZlYXR1cmUoaXRlbUZlYXR1cmUpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBidWJibGVMYXllcjtcbiAgICB9LFxuICAgIHJlbGF0aW9uOiAoXG4gICAgICBsYXllcjogTWFwV2lkZ2V0UmVsYXRpb25MYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICAgIG1heFpvb206IGxheWVyLm1heFpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01BWCxcbiAgICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHsgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddIH0pXG4gICAgICB9KTtcbiAgICB9LFxuICAgIHdtczogKFxuICAgICAgbGF5ZXI6IE1hcFdNU0xheWVyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbXBsID1cbiAgICAgICAgbGF5ZXIucGFyYW1UaWxlZCA9PT0gdW5kZWZpbmVkIHx8IGxheWVyLnBhcmFtVGlsZWRcbiAgICAgICAgICA/IG5ldyBUaWxlKHtcbiAgICAgICAgICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgICAgICAgICBtYXhab29tOiBsYXllci5tYXhab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NQVgsXG4gICAgICAgICAgICAgIG9wYWNpdHk6IChsYXllci5vcGFjaXR5ID8/IDEwMCkgLyAxMDAsXG4gICAgICAgICAgICAgIHNvdXJjZTogbmV3IFRpbGVXTVMoe1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSxcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogJ2Fub255bW91cycsXG4gICAgICAgICAgICAgICAgdXJsOiBsYXllci51cmwsXG4gICAgICAgICAgICAgICAgdGlsZUxvYWRGdW5jdGlvbjogKHRpbGU6IGFueSwgc3RyOiBzdHJpbmcpID0+IHRoaXMuZ2VvQXV0aFNlcnZpY2U/LmN1c3RvbUxvYWRlcih0aWxlLCBzdHIpLFxuICAgICAgICAgICAgICAgIHBhcmFtczogeyBMQVlFUlM6IGxheWVyLnBhcmFtTGF5ZXIsIFRJTEVEOiBsYXllci5wYXJhbVRpbGVkLCAuLi4obGF5ZXIuYWRkaXRpb25hbFBhcmFtZXRlcnMgPz8ge30pIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBuZXcgSW1hZ2VMYXllcih7XG4gICAgICAgICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICAgICAgICBzb3VyY2U6IG5ldyBJbWFnZVdNUyh7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRpb25zOiBbbGF5ZXIuYXR0cmlidXRpb24gPz8gJyddLFxuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAnYW5vbnltb3VzJyxcbiAgICAgICAgICAgICAgICB1cmw6IGxheWVyLnVybCxcbiAgICAgICAgICAgICAgICBpbWFnZUxvYWRGdW5jdGlvbjogKHRpbGU6IGFueSwgc3RyOiBzdHJpbmcpID0+IHRoaXMuZ2VvQXV0aFNlcnZpY2U/LmN1c3RvbUxvYWRlcih0aWxlLCBzdHIpLFxuICAgICAgICAgICAgICAgIHBhcmFtczogeyBMQVlFUlM6IGxheWVyLnBhcmFtTGF5ZXIsIFRJTEVEOiBsYXllci5wYXJhbVRpbGVkLCAuLi4obGF5ZXIuYWRkaXRpb25hbFBhcmFtZXRlcnMgPz8ge30pIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgaW1wbC5zZXQoJ3VybCcsIGxheWVyLnVybCk7XG4gICAgICBpbXBsLnNldCgncGFyYW1MYXllcicsIGxheWVyLnBhcmFtTGF5ZXIpO1xuICAgICAgaW1wbC5zZXQoJ29DbGFzcycsIGxheWVyLm9DbGFzcyk7XG4gICAgICBpbXBsLnNldCgnZ2V0RmVhdHVyZUluZm9BZGRpdGlvbmFsUGFyYW1ldGVycycsIGxheWVyLmdldEZlYXR1cmVJbmZvQWRkaXRpb25hbFBhcmFtZXRlcnMgPz8ge30pO1xuICAgICAgcmV0dXJuIGltcGw7XG4gICAgfSxcbiAgICB3bXRzOiAoXG4gICAgICBsYXllcjogTWFwV01UU0xheWVyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBwcm9qZWN0aW9uID0gbWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCk7XG4gICAgICBjb25zdCBwcm9qZWN0aW9uRXh0ZW50ID0gcHJvamVjdGlvbi5nZXRFeHRlbnQoKTtcbiAgICAgIGNvbnN0IHNpemUgPSBnZXRXaWR0aChwcm9qZWN0aW9uRXh0ZW50KSAvIDI1NjtcbiAgICAgIGNvbnN0IHJlc29sdXRpb25zID0gbmV3IEFycmF5KDE5KTtcbiAgICAgIGNvbnN0IG1hdHJpeElkcyA9IG5ldyBBcnJheSgxOSk7XG4gICAgICBmb3IgKGxldCB6ID0gMDsgeiA8IDE5OyArK3opIHtcbiAgICAgICAgLy8gZ2VuZXJhdGUgcmVzb2x1dGlvbnMgYW5kIG1hdHJpeElkcyBhcnJheXMgZm9yIHRoaXMgV01UU1xuICAgICAgICByZXNvbHV0aW9uc1t6XSA9IHNpemUgLyBNYXRoLnBvdygyLCB6KTtcbiAgICAgICAgbWF0cml4SWRzW3pdID0gejtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgVGlsZSh7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBXTVRTKHtcbiAgICAgICAgICBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10sXG4gICAgICAgICAgY3Jvc3NPcmlnaW46ICdhbm9ueW1vdXMnLFxuICAgICAgICAgIHVybDogbGF5ZXIudXJsLFxuICAgICAgICAgIGxheWVyOiBsYXllci5wYXJhbUxheWVyLFxuICAgICAgICAgIG1hdHJpeFNldDogbGF5ZXIubWF0cml4U2V0LFxuICAgICAgICAgIHByb2plY3Rpb24sXG4gICAgICAgICAgdGlsZUdyaWQ6IG5ldyBXTVRTVGlsZUdyaWQoe1xuICAgICAgICAgICAgb3JpZ2luOiBnZXRUb3BMZWZ0KHByb2plY3Rpb25FeHRlbnQpLFxuICAgICAgICAgICAgcmVzb2x1dGlvbnM6IHJlc29sdXRpb25zLFxuICAgICAgICAgICAgbWF0cml4SWRzOiBtYXRyaXhJZHNcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdHlsZTogbGF5ZXIuc3R5bGVcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZ2Vvc2VydmVyOiAoXG4gICAgICBsYXllcjogTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbXBsID0gdGhpcy5sYXllcnNJbXBsZW1lbnRhdGlvblsnd21zJ10oXG4gICAgICAgIHsgLi4ubGF5ZXIsIHR5cGU6ICd3bXMnLCBvQ2xhc3M6IGxheWVyLm9DbGFzcyB9LFxuICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICAgIGxheWVyQ2xhc3Nlc0lkLFxuICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgIHJhbmdlLFxuICAgICAgICBpdGVtU3R5bGVzLFxuICAgICAgICBtYXBcbiAgICAgICk7XG4gICAgICBpbXBsLnNldCgndGl0bGUnLCBsYXllci50aXRsZSk7XG4gICAgICBpbXBsLnNldCgnb0NsYXNzJywgbGF5ZXIub0NsYXNzKTtcbiAgICAgIGltcGwuc2V0KCdkYXRhc291cmNlSWQnLCBsYXllci5kYXRhc291cmNlSWQpO1xuICAgICAgaW1wbC5zZXQoJ2dlb21Qcm9wTmFtZScsIGxheWVyLmdlb21Qcm9wTmFtZSk7XG4gICAgICByZXR1cm4gaW1wbDtcbiAgICB9LFxuICAgIGZlYXR1cmVsYXllcjogKFxuICAgICAgbGF5ZXI6IE1hcEZlYXR1cmVMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgICBtaW5ab29tOiBsYXllci5taW5ab29tID8/IFdpZGdldE1hcFV0aWxzLkRFRkFVTFRfWk9PTV9NSU4sXG4gICAgICAgIG1heFpvb206IGxheWVyLm1heFpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01BWCxcbiAgICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgICAgc291cmNlOiBuZXcgVmVjdG9yU291cmNlKHtcbiAgICAgICAgICBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10sXG4gICAgICAgICAgZm9ybWF0OiBuZXcgR2VvSlNPTigpLFxuICAgICAgICAgIHVybDogbGF5ZXIudXJsXG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9LFxuICAgIHZlY3RvcnRpbGU6IChcbiAgICAgIGxheWVyOiBNYXBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zLFxuICAgICAgYXR0cmlidXRlc0ZvckNsYXNzOiBBdHRyaWJ1dGVzRm9yQ2xhc3MsXG4gICAgICBsYXllckNsYXNzZXNJZDogc3RyaW5nW10sXG4gICAgICByZXN1bHRTZXQ6IFJlc3VsdFNldCxcbiAgICAgIHJhbmdlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9LFxuICAgICAgaXRlbVN0eWxlczogSXRlbVN0eWxlcyxcbiAgICAgIG1hcDogTWFwXG4gICAgKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFZlY3RvclRpbGVMYXllcih7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBWZWN0b3JUaWxlKHtcbiAgICAgICAgICBhdHRyaWJ1dGlvbnM6IFtsYXllci5hdHRyaWJ1dGlvbiA/PyAnJ10sXG4gICAgICAgICAgZm9ybWF0OiBuZXcgTVZUKCksXG4gICAgICAgICAgdXJsOiBsYXllci51cmxcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcmFzdGVydGlsZTogKFxuICAgICAgbGF5ZXI6IE1hcFJhc3RlclRpbGVMYXllck9wdGlvbnMsXG4gICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3M6IEF0dHJpYnV0ZXNGb3JDbGFzcyxcbiAgICAgIGxheWVyQ2xhc3Nlc0lkOiBzdHJpbmdbXSxcbiAgICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgICAgcmFuZ2U6IHsgbWluOiBudW1iZXI7IG1heDogbnVtYmVyIH0sXG4gICAgICBpdGVtU3R5bGVzOiBJdGVtU3R5bGVzLFxuICAgICAgbWFwOiBNYXBcbiAgICApID0+IHtcbiAgICAgIHJldHVybiBuZXcgVGlsZSh7XG4gICAgICAgIG1pblpvb206IGxheWVyLm1pblpvb20gPz8gV2lkZ2V0TWFwVXRpbHMuREVGQVVMVF9aT09NX01JTixcbiAgICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgICBvcGFjaXR5OiAobGF5ZXIub3BhY2l0eSA/PyAxMDApIC8gMTAwLFxuICAgICAgICBzb3VyY2U6IG5ldyBYWVooe1xuICAgICAgICAgIHVybDogbGF5ZXIudXJsLFxuICAgICAgICAgIGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgbGF5ZXJGcm9tR2VvSnNvbkdlb21ldHJ5KFxuICAgIHByb2plY3Rpb246IFByb2plY3Rpb25MaWtlLFxuICAgIGxheWVyOiBNYXBXaWRnZXRNYXJrZXJMYXllck9wdGlvbnMsXG4gICAgbGF5ZXJDbGFzc2VzSWQ6IHN0cmluZ1tdLFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGF0dHJpYnV0ZXNGb3JDbGFzczogQXR0cmlidXRlc0ZvckNsYXNzLFxuICAgIHR5cGU6ICdwb2ludCcgfCAnbGluZScgfCAnbXVsdGktbGluZScgfCAncG9seWdvbicgfCAnbXVsdGktcG9seWdvbidcbiAgKSB7XG4gICAgY29uc3QgdmVjdG9yTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgbWluWm9vbTogbGF5ZXIubWluWm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUlOLFxuICAgICAgbWF4Wm9vbTogbGF5ZXIubWF4Wm9vbSA/PyBXaWRnZXRNYXBVdGlscy5ERUZBVUxUX1pPT01fTUFYLFxuICAgICAgb3BhY2l0eTogKGxheWVyLm9wYWNpdHkgPz8gMTAwKSAvIDEwMCxcbiAgICAgIHNvdXJjZTogbmV3IFZlY3RvclNvdXJjZSh7IGF0dHJpYnV0aW9uczogW2xheWVyLmF0dHJpYnV0aW9uID8/ICcnXSB9KVxuICAgIH0pO1xuXG4gICAgbGF5ZXJDbGFzc2VzSWQuZm9yRWFjaCgoY2xhc3NJZCkgPT4ge1xuICAgICAgKHJlc3VsdFNldC5pdGVtc1tjbGFzc0lkXSB8fCBbXSlcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBpdGVtLFxuICAgICAgICAgIGxvY2F0aW9uOiBXaWRnZXRNYXBVdGlscy5yZWFkR2VvbWV0cnkoXG4gICAgICAgICAgICBwcm9qZWN0aW9uLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBhdHRyaWJ1dGVzRm9yQ2xhc3NbaXRlbS5vQ2xhc3NdLmxvY2F0aW9uQXR0cmlidXRlXG4gICAgICAgICAgKVxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoeyBsb2NhdGlvbiB9KSA9PiAhIWxvY2F0aW9uKVxuICAgICAgICAuZm9yRWFjaChhc3luYyAoc3ViSXRlbSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW1GZWF0dXJlID0gbmV3IEZlYXR1cmUoe1xuICAgICAgICAgICAgLi4uc3ViSXRlbS5pdGVtLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIGdlb21ldHJ5OiBzdWJJdGVtLmxvY2F0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNsYXNzaWNTdHlsZTogdHlwZSA9PT0gJ3BvaW50JyA/IHRoaXMucG9pbnRTdHlsZSA6IHRoaXMuY2lyY2xlU3R5bGUsXG4gICAgICAgICAgICBzZWxlY3RlZFN0eWxlOiB0eXBlID09PSAncG9pbnQnID8gdGhpcy5zZWxlY3RlZFBvaW50U3R5bGUgOiB0aGlzLnNlbGVjdGVkQ2lyY2xlU3R5bGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpdGVtRmVhdHVyZS5zZXRTdHlsZShpdGVtRmVhdHVyZS5nZXQoJ2NsYXNzaWNTdHlsZScpKTtcbiAgICAgICAgICB2ZWN0b3JMYXllci5nZXRTb3VyY2UoKT8uYWRkRmVhdHVyZShpdGVtRmVhdHVyZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMubWFrZUNsdXN0ZXJlZCh2ZWN0b3JMYXllciwgbGF5ZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlQ2x1c3RlcmVkKGxheWVyOiBCYXNlTGF5ZXIsIGxheWVyT3B0aW9uczogTWFwV2lkZ2V0TGF5ZXJPcHRpb25zKSB7XG4gICAgaWYgKCFbJ21hcmtlcicsICdidWJibGUnXS5pbmNsdWRlcyhsYXllck9wdGlvbnMudHlwZSkgfHwgISgnY2x1c3RlcmVkJyBpbiBsYXllck9wdGlvbnMgJiYgbGF5ZXJPcHRpb25zLmNsdXN0ZXJlZCkpIHtcbiAgICAgIHJldHVybiBsYXllcjtcbiAgICB9XG4gICAgLy8gQ2x1c3RlcmluZyBzb3VyY2VcbiAgICBjb25zdCB2ZWN0b3JMYXllciA9IGxheWVyIGFzIFZlY3RvckxheWVyPFZlY3RvclNvdXJjZTxHZW9tZXRyeT4+O1xuICAgIHZlY3RvckxheWVyLnNldFNvdXJjZShcbiAgICAgIG5ldyBDbHVzdGVyKHtcbiAgICAgICAgZGlzdGFuY2U6IGxheWVyT3B0aW9ucy5jbHVzdGVyRGlzdGFuY2UsXG4gICAgICAgIG1pbkRpc3RhbmNlOiAxMCxcbiAgICAgICAgc291cmNlOiB2ZWN0b3JMYXllci5nZXRTb3VyY2UoKSBhcyBWZWN0b3JTb3VyY2VcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHZlY3RvckxheWVyLnNldFN0eWxlKChmZWF0dXJlKSA9PiB7XG4gICAgICBjb25zdCBzaXplID0gZmVhdHVyZS5nZXQoJ2ZlYXR1cmVzJykubGVuZ3RoO1xuICAgICAgaWYgKHNpemUgPiAxKSB7XG4gICAgICAgIGxldCBzdHlsZSA9IHRoaXMuc3R5bGVDYWNoZVtzaXplXTtcbiAgICAgICAgaWYgKCFzdHlsZSkge1xuICAgICAgICAgIHN0eWxlID0gbmV3IFN0eWxlKHtcbiAgICAgICAgICAgIGltYWdlOiBuZXcgQ2lyY2xlU3R5bGUoe1xuICAgICAgICAgICAgICByYWRpdXM6IDEwLFxuICAgICAgICAgICAgICBzdHJva2U6IG5ldyBTdHJva2Uoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmZidcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZpbGw6IG5ldyBGaWxsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJyMzMzk5Q0MnXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRleHQ6IG5ldyBUZXh0KHsgdGV4dDogYCR7c2l6ZX1gIH0pXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zdHlsZUNhY2hlW3NpemVdID0gc3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNpemUgPT09IDEgPyBmZWF0dXJlLmdldCgnZmVhdHVyZXMnKVswXS5nZXQoJ2NsYXNzaWNTdHlsZScpIDogbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYXllcjtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2xhdGVGaWVsZFR5cGVUb0xheWVyVHlwZShzdWJUeXBlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHN1YlR5cGUpIHtcbiAgICAgIGNhc2UgRmllbGRUeXBlLlBPSU5UOlxuICAgICAgICByZXR1cm4gJ21hcmtlcic7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5MSU5FOlxuICAgICAgICByZXR1cm4gJ2xpbmUnO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuUE9MWUdPTjpcbiAgICAgICAgcmV0dXJuICdwb2x5Z29uJztcbiAgICAgIGNhc2UgRmllbGRUeXBlLk1VTFRJTElORTpcbiAgICAgICAgcmV0dXJuICdtdWx0aS1saW5lJztcbiAgICAgIGNhc2UgRmllbGRUeXBlLk1VTFRJUE9MWUdPTjpcbiAgICAgICAgcmV0dXJuICdtdWx0aS1wb2x5Z29uJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUud2Fybihgd3JvbmcgdHlwZSAke3N1YlR5cGV9IGZvciBhdXRvIG9wdGlvbnNgKTtcbiAgICAgICAgcmV0dXJuICdtYXJrZXInO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -149,7 +149,8 @@ export class TooltipManager {
149
149
  .getFeatureInfoUrl(pixel, this.map.getView().getResolution(), this.map.getView().getProjection(), {
150
150
  INFO_FORMAT: 'application/json',
151
151
  FEATURE_COUNT: 10,
152
- ...layer.getProperties()['getFeatureInfoAdditionalParameters']
152
+ ...layer.getProperties()['getFeatureInfoAdditionalParameters'],
153
+ cql_filter: layer.getSource().getParams()['cql_filter']
153
154
  });
154
155
  if (this.parent.optionsCopy.layers?.find((l) => {
155
156
  return l.title === layer.getProperties()['title'];
@@ -158,7 +159,8 @@ export class TooltipManager {
158
159
  url,
159
160
  oClass: layer.getProperties()['oClass'] ?? '',
160
161
  coordinates: pixel,
161
- componentId: this.parent.id
162
+ componentId: this.parent.id,
163
+ geomPropName: layer.getProperties()['geomPropName']
162
164
  }));
163
165
  }
164
166
  else {
@@ -179,4 +181,4 @@ export class TooltipManager {
179
181
  this.previousTooltip?.destroy();
180
182
  }
181
183
  }
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1tYW5hZ2VyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2ludGVyYWN0aW9uL3Rvb2x0aXAtbWFuYWdlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUlsQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUE0QixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUcsT0FBTyxFQUFFLE9BQU8sRUFBd0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sbUNBQW1DLENBQUM7QUFLeEYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFLRSxxQkFBZ0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLMUQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFPekIsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFzTmxELENBQUM7SUFuTkMsSUFBSSxDQUNGLHFCQUE0QyxFQUM1QyxRQUFrQixFQUNsQixLQUFZLEVBQ1osYUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsY0FBOEQsRUFDOUQsR0FBUSxFQUNSLEtBQWlCLEVBQ2pCLFlBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxNQUEwQjtRQUUxQixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENB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QUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUYsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzdCLE1BQU0sRUFDSixLQUFLLFlBQVksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFD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LEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpeGVsIH0gZnJvbSAnb2wvcGl4ZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBJbmplY3RvciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZVRvb2x0aXBDb21wb25lbnQsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zLFxuICBTaXplLFxuICBUb29sdGlwRmFjdG9yeVNlcnZpY2UsXG4gIFRvb2x0aXBNb2RlLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZlYXR1cmUsIE1hcCwgTWFwQnJvd3NlckV2ZW50LCBPdmVybGF5IH0gZnJvbSAnb2wnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBUT09MVElQX1BBRERJTkcsIFdpZGdldE1hcENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudC93aWRnZXQtbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvbk1hbmFnZXIgfSBmcm9tICcuL2ludGVyYWN0aW9uLW1hbmFnZXIuY2xhc3MnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICdvbC9sYXllcic7XG5pbXBvcnQgeyBDb29yZGluYXRlIH0gZnJvbSAnb2wvY29vcmRpbmF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBUb29sdGlwTWFuYWdlciB7XG4gIHByaXZhdGUgdG9vbHRpcEZhY3RvcnlTZXJ2aWNlITogVG9vbHRpcEZhY3RvcnlTZXJ2aWNlO1xuICBwcml2YXRlIGluamVjdG9yITogSW5qZWN0b3I7XG4gIHByaXZhdGUgc3RvcmUhOiBTdG9yZTtcbiAgd21zRmVhdHVyZXMkITogT2JzZXJ2YWJsZTxhbnlbXT47XG4gIGNsYXNzaWNGZWF0dXJlcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG4gIHBvcHVwT3ZlcmxheT86IE92ZXJsYXk7XG4gIG1hcCE6IE1hcDtcbiAgcG9wdXAhOiBFbGVtZW50UmVmO1xuICBwb3B1cENvbnRlbnQhOiBWaWV3Q29udGFpbmVyUmVmO1xuICBwdWJsaWMgdG9vbHRpcE51bWJlciA9IDA7XG4gIGludGVyYWN0aW9uTWFuYWdlciE6IEludGVyYWN0aW9uTWFuYWdlcjtcbiAgcHJldmlvdXNUb29sdGlwPzogQ29tcG9uZW50UmVmPEJhc2VUb29sdGlwQ29tcG9uZW50PjtcbiAgcHJldmlvdXNUb29sdGlwU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdG9vbHRpcEV2ZW50PzogTWFwQnJvd3NlckV2ZW50PE1vdXNlRXZlbnQ+O1xuICBwYXJlbnQhOiBXaWRnZXRNYXBDb21wb25lbnQ7XG4gIGludGVyYWN0aW9uUG9wdXBPdmVybGF5ITogT3ZlcmxheTtcbiAgdG9vbHRpcERpc3BsYXllZEluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIHByaXZhdGUgY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbj86IENvb3JkaW5hdGU7XG5cbiAgaW5pdChcbiAgICB0b29sdGlwRmFjdG9yeVNlcnZpY2U6IFRvb2x0aXBGYWN0b3J5U2VydmljZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbixcbiAgICB3aWRnZXRTaXplJDogT2JzZXJ2YWJsZTxTaXplPixcbiAgICBkaXNwbGF5SGVhZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgeyBbcDogc3RyaW5nXTogYm9vbGVhbiB9PixcbiAgICBtYXA6IE1hcCxcbiAgICBwb3B1cDogRWxlbWVudFJlZixcbiAgICBwb3B1cENvbnRlbnQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgaW50ZXJhY3Rpb25NYW5hZ2VyOiBJbnRlcmFjdGlvbk1hbmFnZXIsXG4gICAgcGFyZW50OiBXaWRnZXRNYXBDb21wb25lbnRcbiAgKSB7XG4gICAgdGhpcy50b29sdGlwRmFjdG9yeVNlcnZpY2UgPSB0b29sdGlwRmFjdG9yeVNlcnZpY2U7XG4gICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgIHRoaXMuc3RvcmUgPSBzdG9yZTtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICB0aGlzLnBvcHVwQ29udGVudCA9IHBvcHVwQ29udGVudDtcbiAgICB0aGlzLnBvcHVwID0gcG9wdXA7XG4gICAgdGhpcy5pbnRlcmFjdGlvbk1hbmFnZXIgPSBpbnRlcmFjdGlvbk1hbmFnZXI7XG4gICAgdGhpcy53bXNGZWF0dXJlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud21zRmVhdHVyZXModGhpcy5wYXJlbnQuaWQpKTtcblxuICAgIHN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy53bXNGZWF0dXJlcyQsIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJCwgdGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkXSlcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgd2l0aExhdGVzdEZyb20od2lkZ2V0U2l6ZSQsIGRpc3BsYXlIZWFkZXIkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW1t3bXNGZWF0dXJlcywgY2xhc3NpY0ZlYXR1cmVzLCB0b29sdGlwSW5kZXhdLCBzaXplLCBoZWFkZXJdKSA9PiB7XG4gICAgICAgICAgaWYgKG1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucG9wdXBPdmVybGF5ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2xlYXJUb29sdGlwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBvcHVwT3ZlcmxheSA9IG5ldyBPdmVybGF5KHtcbiAgICAgICAgICAgICAgZWxlbWVudDogcG9wdXAubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgb2Zmc2V0OiBbOSwgOV1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tYXAuYWRkT3ZlcmxheSh0aGlzLnBvcHVwT3ZlcmxheSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGFsbFRvb2x0aXBWYWx1ZXMgPSBbLi4ud21zRmVhdHVyZXMsIC4uLmNsYXNzaWNGZWF0dXJlcy5tYXAoKGNmOiBhbnkpID0+IGNmLnZhbHVlcyldO1xuXG4gICAgICAgICAgICBpZiAoYWxsVG9vbHRpcFZhbHVlc1t0b29sdGlwSW5kZXhdKSB7XG4gICAgICAgICAgICAgIHRoaXMucG9wdXBDb250ZW50LmNsZWFyKCk7XG5cbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVRvb2x0aXAoYWxsVG9vbHRpcFZhbHVlc1t0b29sdGlwSW5kZXhdKS50aGVuKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXBOdW1iZXIgPSBhbGxUb29sdGlwVmFsdWVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgcG9wdXAubmF0aXZlRWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5wb3B1cE92ZXJsYXk/LnNldFBvc2l0aW9uKFstOTk5OTk5OTk5OSwgLTk5OTk5OTk5OTldKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcG9wdXAubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBnbyBvdXRzaWRlIHRoZSBtYXBcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjAwICsgKGhlYWRlciA/IFdJREdFVF9IRUFERVJfSEVJR0hULnZhbHVlIDogMCkgKyBUT09MVElQX1BBRERJTkcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAgKyBUT09MVElQX1BBRERJTkdcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGl4ZWwgPSB0aGlzLnRvb2x0aXBFdmVudD8ucGl4ZWw7XG4gICAgICAgICAgICAgICAgICAgIGlmICghIXBpeGVsICYmIHBpeGVsWzBdICsgcmVjdC53aWR0aCA+IHNpemUud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBwaXhlbFswXSA9IHNpemUud2lkdGggLSByZWN0LndpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghIXBpeGVsICYmIHBpeGVsWzFdICsgcmVjdC5oZWlnaHQgPiBzaXplLmhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgIHBpeGVsWzFdID0gc2l6ZS5oZWlnaHQgLSByZWN0LmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24gPSB0aGlzLm1hcC5nZXRDb29yZGluYXRlRnJvbVBpeGVsKHBpeGVsID8/IFswLCAwXSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwT3ZlcmxheT8uc2V0UG9zaXRpb24odGhpcy5jYWxjdWxhdGVkVG9vbHRpcFBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvcmNlQ2xvc2VNYXBUb29sdGlwJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbGVhclRvb2x0aXAoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkT3ZlcmxheU9uSW50ZXJhY3Rpb24oKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRPdmVybGF5T25JbnRlcmFjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkpIHtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkgPSBuZXcgT3ZlcmxheSh7XG4gICAgICAgIGVsZW1lbnQ6IHRoaXMucG9wdXAubmF0aXZlRWxlbWVudCxcbiAgICAgICAgb2Zmc2V0OiBbOSwgOV1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5tYXAuYWRkT3ZlcmxheSh0aGlzLmludGVyYWN0aW9uUG9wdXBPdmVybGF5KTtcbiAgICB9XG5cbiAgICBjb25zdCBwb3B1cExpc3RlbmVyID0gKGV2ZW50OiBNYXBCcm93c2VyRXZlbnQ8TW91c2VFdmVudD4pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubWFwLmdldEZlYXR1cmVzQXRQaXhlbChldmVudC5waXhlbCwgeyBoaXRUb2xlcmFuY2U6IDUgfSk7XG4gICAgICBjb25zdCB2YWx1ZXNUb0Rpc3BsYXkgPSBbLi4ubmV3IFNldCh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gdmFsdWUuZ2V0KCdpZCcpKS5maWx0ZXIoKGlkKSA9PiAhIWlkKSldXG4gICAgICAgIC5tYXAoKGlkKSA9PiB2YWx1ZXMuZmluZCgodmFsdWUpID0+IHZhbHVlLmdldCgnaWQnKSA9PT0gaWQpKVxuICAgICAgICAubWFwKCh2YWx1ZSkgPT4gKHtcbiAgICAgICAgICBvQ2xhc3M6IHZhbHVlPy5nZXQoJ29DbGFzcycpLFxuICAgICAgICAgIGNvb3JkaW5hdGVzOiBldmVudC5jb29yZGluYXRlLFxuICAgICAgICAgIHZhbHVlczpcbiAgICAgICAgICAgIHZhbHVlIGluc3RhbmNlb2YgRmVhdHVyZSA/IHZhbHVlLmdldEtleXMoKS5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIFtjXTogdmFsdWU/LmdldChjKSB9KSwge30pIDogdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUub0NsYXNzKTtcbiAgICAgIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJC5uZXh0KHZhbHVlc1RvRGlzcGxheSk7XG4gICAgICBjb25zdCB3bXNMYXllcnMgPSB0aGlzLnBhcmVudC5nZXRXTVNMYXllcnMoKTtcbiAgICAgIGlmICh3bXNMYXllcnMpIHtcbiAgICAgICAgdGhpcy5nZXRGZWF0dXJlRnJvbVNlcnZlcih3bXNMYXllcnMsIGV2ZW50LmNvb3JkaW5hdGUpO1xuICAgICAgfVxuICAgICAgdGhpcy50b29sdGlwRXZlbnQgPSBldmVudDtcbiAgICAgIHRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5uZXh0KDApO1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5wYXJlbnQub3B0aW9uc0NvcHkudG9vbHRpcE1vZGUgIT09IFRvb2x0aXBNb2RlLk5PTkUpIHtcbiAgICAgIHRoaXMucGFyZW50Lm1hcC51bignc2luZ2xlY2xpY2snLCBwb3B1cExpc3RlbmVyKTtcbiAgICAgIHRoaXMucGFyZW50Lm1hcC5vbignc2luZ2xlY2xpY2snLCBwb3B1cExpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZVRvb2x0aXAodmFsdWU6IHtcbiAgICBvQ2xhc3M6IHN0cmluZztcbiAgICBjb29yZGluYXRlczogUGl4ZWw7XG4gICAgdmFsdWVzOiBhbnk7XG4gIH0pOiBQcm9taXNlPENvbXBvbmVudFJlZjxCYXNlVG9vbHRpcENvbXBvbmVudD4gfCBudWxsPiB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50JCA9IHRoaXMudG9vbHRpcEZhY3RvcnlTZXJ2aWNlLmdlbmVyYXRlVG9vbHRpcCh2YWx1ZS5vQ2xhc3MsIHRoaXMuaW5qZWN0b3IsIHRoaXMucG9wdXBDb250ZW50KTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMucHJldmlvdXNUb29sdGlwU3ViID0gY29tcG9uZW50JC5zdWJzY3JpYmUoKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByZXZpb3VzVG9vbHRpcCkge1xuICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzVG9vbHRpcC5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YS5pdGVtID0gdmFsdWU7XG4gICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UucG9wdXAgPSB0aGlzLnBvcHVwO1xuICAgICAgICAgICAgcmVzb2x2ZShjb21wb25lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhclRvb2x0aXAoZW1wdHkgPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLnBvcHVwT3ZlcmxheSkgdGhpcy5tYXA/LnJlbW92ZU92ZXJsYXkodGhpcy5wb3B1cE92ZXJsYXkpO1xuICAgIHRoaXMucG9wdXBDb250ZW50Py5jbGVhcigpO1xuICAgIHRoaXMucHJldmlvdXNUb29sdGlwPy5kZXN0cm95KCk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgaWYgKGVtcHR5KSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcyh7IGNvbXBvbmVudElkOiB0aGlzLnBhcmVudC5pZCB9KSk7XG4gICAgICB0aGlzLmNsYXNzaWNGZWF0dXJlcyQubmV4dChbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvb2x0aXBNb3ZlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMudG9vbHRpcENhbk1vdmUobnVtYmVyKSkge1xuICAgICAgdGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkLm5leHQodGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkLmdldFZhbHVlKCkgKyBudW1iZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b29sdGlwQ2FuTW92ZShudW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlciA+PSAwICYmXG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlciA8IHRoaXMudG9vbHRpcE51bWJlclxuICAgICk7XG4gIH1cblxuICBnZXRGZWF0dXJlRnJvbVNlcnZlcih3bXNMYXllcnM6IExheWVyPGFueT5bXSwgcGl4ZWw6IFBpeGVsKSB7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiB3bXNMYXllcnMpIHtcbiAgICAgIGxldCB1cmwgPSBsYXllclxuICAgICAgICAuZ2V0U291cmNlKClcbiAgICAgICAgLmdldEZlYXR1cmVJbmZvVXJsKHBpeGVsLCB0aGlzLm1hcC5nZXRWaWV3KCkuZ2V0UmVzb2x1dGlvbigpLCB0aGlzLm1hcC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpLCB7XG4gICAgICAgICAgSU5GT19GT1JNQVQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICBGRUFUVVJFX0NPVU5UOiAxMCxcbiAgICAgICAgICAuLi5sYXllci5nZXRQcm9wZXJ0aWVzKClbJ2dldEZlYXR1cmVJbmZvQWRkaXRpb25hbFBhcmFtZXRlcnMnXVxuICAgICAgICB9KTtcbiAgICAgIGlmIChcbiAgICAgICAgKFxuICAgICAgICAgIHRoaXMucGFyZW50Lm9wdGlvbnNDb3B5LmxheWVycz8uZmluZCgobCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGwudGl0bGUgPT09IGxheWVyLmdldFByb3BlcnRpZXMoKVsndGl0bGUnXTtcbiAgICAgICAgICB9KSBhcyBNYXBHZW9TZXJ2ZXJMYXllck9wdGlvbnNcbiAgICAgICAgKT8uZ2V0V2ZzRmVhdHVyZXNGb3JUb29sdGlwc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5nZXRXZnNGZWF0dXJlc0ZvclBvaW50U3RhY2tUb29sdGlwcyh7XG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBvQ2xhc3M6IGxheWVyLmdldFByb3BlcnRpZXMoKVsnb0NsYXNzJ10gPz8gJycsXG4gICAgICAgICAgICBjb29yZGluYXRlczogcGl4ZWwsXG4gICAgICAgICAgICBjb21wb25lbnRJZDogdGhpcy5wYXJlbnQuaWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHVybCAmJiB1cmwuaW5kZXhPZignST0tMScpID09PSAtMSAmJiB1cmwuaW5kZXhPZignSj0tMScpID09PSAtMSkge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmdldFdtc0ZlYXR1cmVzKHtcbiAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICBvQ2xhc3M6IGxheWVyLmdldFByb3BlcnRpZXMoKVsnb0NsYXNzJ10gPz8gJycsXG4gICAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBwaXhlbCxcbiAgICAgICAgICAgICAgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzKHsgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkIH0pKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcD8uZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1tYW5hZ2VyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtbWFwL2ludGVyYWN0aW9uL3Rvb2x0aXAtbWFuYWdlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUlsQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUE0QixjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUcsT0FBTyxFQUFFLE9BQU8sRUFBd0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTVELE9BQU8sRUFBRSxlQUFlLEVBQXNCLE1BQU0sbUNBQW1DLENBQUM7QUFLeEYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFLRSxxQkFBZ0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFLMUQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFPekIsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUF3TmxELENBQUM7SUFyTkMsSUFBSSxDQUNGLHFCQUE0QyxFQUM1QyxRQUFrQixFQUNsQixLQUFZLEVBQ1osYUFBMkIsRUFDM0IsV0FBNkIsRUFDN0IsY0FBOEQsRUFDOUQsR0FBUSxFQUNSLEtBQWlCLEVBQ2pCLFlBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxNQUEwQjtRQUUxQixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRGLGFBQWEsQ0FBQyxHQUFHLENBQ2YsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ25FLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQzFFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE9BQU8sQ0FBQztvQkFDOUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUM1QixNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRXZDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUUxRixJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRTFCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTt3QkFDdEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7d0JBQzdDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzs0QkFDZixLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7NEJBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUM3RCxDQUFDOzZCQUFNLENBQUM7NEJBQ04sS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDOzRCQUNuQyw0QkFBNEI7NEJBQzVCLE1BQU0sSUFBSSxHQUFHO2dDQUNYLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZTtnQ0FDekUsS0FBSyxFQUFFLEdBQUcsR0FBRyxlQUFlOzZCQUM3QixDQUFDOzRCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztnQ0FDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUM7Z0NBQ3JDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0NBQ2xELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0NBQ3JDLENBQUM7Z0NBQ0QsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQ0FDcEQsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQ0FDdkMsQ0FBQztnQ0FDRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDcEYsQ0FBQzs0QkFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQzt3QkFDakUsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFRixNQUFNLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRS9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksT0FBTyxDQUFDO2dCQUN6QyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2dCQUNqQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBa0MsRUFBRSxFQUFFO1lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDOUYsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUM1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzdCLE1BQU0sRUFDSixLQUFLLFlBQVksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFD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QUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGl4ZWwgfSBmcm9tICdvbC9waXhlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlVG9vbHRpcENvbXBvbmVudCxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBNYXBHZW9TZXJ2ZXJMYXllck9wdGlvbnMsXG4gIFNpemUsXG4gIFRvb2x0aXBGYWN0b3J5U2VydmljZSxcbiAgVG9vbHRpcE1vZGUsXG4gIFdJREdFVF9IRUFERVJfSEVJR0hUXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmVhdHVyZSwgTWFwLCBNYXBCcm93c2VyRXZlbnQsIE92ZXJsYXkgfSBmcm9tICdvbCc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFRPT0xUSVBfUEFERElORywgV2lkZ2V0TWFwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50L3dpZGdldC1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEludGVyYWN0aW9uTWFuYWdlciB9IGZyb20gJy4vaW50ZXJhY3Rpb24tbWFuYWdlci5jbGFzcyc7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJ29sL2xheWVyJztcbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICdvbC9jb29yZGluYXRlJztcblxuZXhwb3J0IGNsYXNzIFRvb2x0aXBNYW5hZ2VyIHtcbiAgcHJpdmF0ZSB0b29sdGlwRmFjdG9yeVNlcnZpY2UhOiBUb29sdGlwRmFjdG9yeVNlcnZpY2U7XG4gIHByaXZhdGUgaW5qZWN0b3IhOiBJbmplY3RvcjtcbiAgcHJpdmF0ZSBzdG9yZSE6IFN0b3JlO1xuICB3bXNGZWF0dXJlcyQhOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgY2xhc3NpY0ZlYXR1cmVzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgcG9wdXBPdmVybGF5PzogT3ZlcmxheTtcbiAgbWFwITogTWFwO1xuICBwb3B1cCE6IEVsZW1lbnRSZWY7XG4gIHBvcHVwQ29udGVudCE6IFZpZXdDb250YWluZXJSZWY7XG4gIHB1YmxpYyB0b29sdGlwTnVtYmVyID0gMDtcbiAgaW50ZXJhY3Rpb25NYW5hZ2VyITogSW50ZXJhY3Rpb25NYW5hZ2VyO1xuICBwcmV2aW91c1Rvb2x0aXA/OiBDb21wb25lbnRSZWY8QmFzZVRvb2x0aXBDb21wb25lbnQ+O1xuICBwcmV2aW91c1Rvb2x0aXBTdWI/OiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyB0b29sdGlwRXZlbnQ/OiBNYXBCcm93c2VyRXZlbnQ8TW91c2VFdmVudD47XG4gIHBhcmVudCE6IFdpZGdldE1hcENvbXBvbmVudDtcbiAgaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkhOiBPdmVybGF5O1xuICB0b29sdGlwRGlzcGxheWVkSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgcHJpdmF0ZSBjYWxjdWxhdGVkVG9vbHRpcFBvc2l0aW9uPzogQ29vcmRpbmF0ZTtcblxuICBpbml0KFxuICAgIHRvb2x0aXBGYWN0b3J5U2VydmljZTogVG9vbHRpcEZhY3RvcnlTZXJ2aWNlLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBzdG9yZTogU3RvcmUsXG4gICAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uLFxuICAgIHdpZGdldFNpemUkOiBPYnNlcnZhYmxlPFNpemU+LFxuICAgIGRpc3BsYXlIZWFkZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCB7IFtwOiBzdHJpbmddOiBib29sZWFuIH0+LFxuICAgIG1hcDogTWFwLFxuICAgIHBvcHVwOiBFbGVtZW50UmVmLFxuICAgIHBvcHVwQ29udGVudDogVmlld0NvbnRhaW5lclJlZixcbiAgICBpbnRlcmFjdGlvbk1hbmFnZXI6IEludGVyYWN0aW9uTWFuYWdlcixcbiAgICBwYXJlbnQ6IFdpZGdldE1hcENvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLnRvb2x0aXBGYWN0b3J5U2VydmljZSA9IHRvb2x0aXBGYWN0b3J5U2VydmljZTtcbiAgICB0aGlzLmluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgdGhpcy5zdG9yZSA9IHN0b3JlO1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMubWFwID0gbWFwO1xuICAgIHRoaXMucG9wdXBDb250ZW50ID0gcG9wdXBDb250ZW50O1xuICAgIHRoaXMucG9wdXAgPSBwb3B1cDtcbiAgICB0aGlzLmludGVyYWN0aW9uTWFuYWdlciA9IGludGVyYWN0aW9uTWFuYWdlcjtcbiAgICB0aGlzLndtc0ZlYXR1cmVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy53bXNGZWF0dXJlcyh0aGlzLnBhcmVudC5pZCkpO1xuXG4gICAgc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndtc0ZlYXR1cmVzJCwgdGhpcy5jbGFzc2ljRmVhdHVyZXMkLCB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCRdKVxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB3aXRoTGF0ZXN0RnJvbSh3aWRnZXRTaXplJCwgZGlzcGxheUhlYWRlciQpKVxuICAgICAgICAuc3Vic2NyaWJlKChbW3dtc0ZlYXR1cmVzLCBjbGFzc2ljRmVhdHVyZXMsIHRvb2x0aXBJbmRleF0sIHNpemUsIGhlYWRlcl0pID0+IHtcbiAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wb3B1cE92ZXJsYXkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhpcy5jbGVhclRvb2x0aXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9wdXBPdmVybGF5ID0gbmV3IE92ZXJsYXkoe1xuICAgICAgICAgICAgICBlbGVtZW50OiBwb3B1cC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICBvZmZzZXQ6IFs5LCA5XVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1hcC5hZGRPdmVybGF5KHRoaXMucG9wdXBPdmVybGF5KTtcblxuICAgICAgICAgICAgY29uc3QgYWxsVG9vbHRpcFZhbHVlcyA9IFsuLi53bXNGZWF0dXJlcywgLi4uY2xhc3NpY0ZlYXR1cmVzLm1hcCgoY2Y6IGFueSkgPT4gY2YudmFsdWVzKV07XG5cbiAgICAgICAgICAgIGlmIChhbGxUb29sdGlwVmFsdWVzW3Rvb2x0aXBJbmRleF0pIHtcbiAgICAgICAgICAgICAgdGhpcy5wb3B1cENvbnRlbnQuY2xlYXIoKTtcblxuICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlVG9vbHRpcChhbGxUb29sdGlwVmFsdWVzW3Rvb2x0aXBJbmRleF0pLnRoZW4oKGNvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcE51bWJlciA9IGFsbFRvb2x0aXBWYWx1ZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgICBwb3B1cC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcHVwT3ZlcmxheT8uc2V0UG9zaXRpb24oWy05OTk5OTk5OTk5LCAtOTk5OTk5OTk5OV0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBwb3B1cC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGdvIG91dHNpZGUgdGhlIG1hcFxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDAgKyAoaGVhZGVyID8gV0lER0VUX0hFQURFUl9IRUlHSFQudmFsdWUgOiAwKSArIFRPT0xUSVBfUEFERElORyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMCArIFRPT0xUSVBfUEFERElOR1xuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYWxjdWxhdGVkVG9vbHRpcFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwaXhlbCA9IHRoaXMudG9vbHRpcEV2ZW50Py5waXhlbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEhcGl4ZWwgJiYgcGl4ZWxbMF0gKyByZWN0LndpZHRoID4gc2l6ZS53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgIHBpeGVsWzBdID0gc2l6ZS53aWR0aCAtIHJlY3Qud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEhcGl4ZWwgJiYgcGl4ZWxbMV0gKyByZWN0LmhlaWdodCA+IHNpemUuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcGl4ZWxbMV0gPSBzaXplLmhlaWdodCAtIHJlY3QuaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlZFRvb2x0aXBQb3NpdGlvbiA9IHRoaXMubWFwLmdldENvb3JkaW5hdGVGcm9tUGl4ZWwocGl4ZWwgPz8gWzAsIDBdKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wdXBPdmVybGF5Py5zZXRQb3NpdGlvbih0aGlzLmNhbGN1bGF0ZWRUb29sdGlwUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9yY2VDbG9zZU1hcFRvb2x0aXAnLCAoKSA9PiB7XG4gICAgICB0aGlzLmNsZWFyVG9vbHRpcCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRPdmVybGF5T25JbnRlcmFjdGlvbigpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcml2YXRlIGFkZE92ZXJsYXlPbkludGVyYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5pbnRlcmFjdGlvblBvcHVwT3ZlcmxheSkge1xuICAgICAgdGhpcy5pbnRlcmFjdGlvblBvcHVwT3ZlcmxheSA9IG5ldyBPdmVybGF5KHtcbiAgICAgICAgZWxlbWVudDogdGhpcy5wb3B1cC5uYXRpdmVFbGVtZW50LFxuICAgICAgICBvZmZzZXQ6IFs5LCA5XVxuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcC5hZGRPdmVybGF5KHRoaXMuaW50ZXJhY3Rpb25Qb3B1cE92ZXJsYXkpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcHVwTGlzdGVuZXIgPSAoZXZlbnQ6IE1hcEJyb3dzZXJFdmVudDxNb3VzZUV2ZW50PikgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5tYXAuZ2V0RmVhdHVyZXNBdFBpeGVsKGV2ZW50LnBpeGVsLCB7IGhpdFRvbGVyYW5jZTogNSB9KTtcbiAgICAgIGNvbnN0IHZhbHVlc1RvRGlzcGxheSA9IFsuLi5uZXcgU2V0KHZhbHVlcy5tYXAoKHZhbHVlKSA9PiB2YWx1ZS5nZXQoJ2lkJykpLmZpbHRlcigoaWQpID0+ICEhaWQpKV1cbiAgICAgICAgLm1hcCgoaWQpID0+IHZhbHVlcy5maW5kKCh2YWx1ZSkgPT4gdmFsdWUuZ2V0KCdpZCcpID09PSBpZCkpXG4gICAgICAgIC5tYXAoKHZhbHVlKSA9PiAoe1xuICAgICAgICAgIG9DbGFzczogdmFsdWU/LmdldCgnb0NsYXNzJyksXG4gICAgICAgICAgY29vcmRpbmF0ZXM6IGV2ZW50LmNvb3JkaW5hdGUsXG4gICAgICAgICAgdmFsdWVzOlxuICAgICAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBGZWF0dXJlID8gdmFsdWUuZ2V0S2V5cygpLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgW2NdOiB2YWx1ZT8uZ2V0KGMpIH0pLCB7fSkgOiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZS5vQ2xhc3MpO1xuICAgICAgdGhpcy5jbGFzc2ljRmVhdHVyZXMkLm5leHQodmFsdWVzVG9EaXNwbGF5KTtcbiAgICAgIGNvbnN0IHdtc0xheWVycyA9IHRoaXMucGFyZW50LmdldFdNU0xheWVycygpO1xuICAgICAgaWYgKHdtc0xheWVycykge1xuICAgICAgICB0aGlzLmdldEZlYXR1cmVGcm9tU2VydmVyKHdtc0xheWVycywgZXZlbnQuY29vcmRpbmF0ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvb2x0aXBFdmVudCA9IGV2ZW50O1xuICAgICAgdGhpcy5jYWxjdWxhdGVkVG9vbHRpcFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy50b29sdGlwRGlzcGxheWVkSW5kZXgkLm5leHQoMCk7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLnBhcmVudC5vcHRpb25zQ29weS50b29sdGlwTW9kZSAhPT0gVG9vbHRpcE1vZGUuTk9ORSkge1xuICAgICAgdGhpcy5wYXJlbnQubWFwLnVuKCdzaW5nbGVjbGljaycsIHBvcHVwTGlzdGVuZXIpO1xuICAgICAgdGhpcy5wYXJlbnQubWFwLm9uKCdzaW5nbGVjbGljaycsIHBvcHVwTGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdlbmVyYXRlVG9vbHRpcCh2YWx1ZToge1xuICAgIG9DbGFzczogc3RyaW5nO1xuICAgIGNvb3JkaW5hdGVzOiBQaXhlbDtcbiAgICB2YWx1ZXM6IGFueTtcbiAgfSk6IFByb21pc2U8Q29tcG9uZW50UmVmPEJhc2VUb29sdGlwQ29tcG9uZW50PiB8IG51bGw+IHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQkID0gdGhpcy50b29sdGlwRmFjdG9yeVNlcnZpY2UuZ2VuZXJhdGVUb29sdGlwKHZhbHVlLm9DbGFzcywgdGhpcy5pbmplY3RvciwgdGhpcy5wb3B1cENvbnRlbnQpO1xuICAgICAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWIgPSBjb21wb25lbnQkLnN1YnNjcmliZSgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJldmlvdXNUb29sdGlwKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJldmlvdXNUb29sdGlwLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5kYXRhLml0ZW0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5wb3B1cCA9IHRoaXMucG9wdXA7XG4gICAgICAgICAgICByZXNvbHZlKGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyVG9vbHRpcChlbXB0eSA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMucG9wdXBPdmVybGF5KSB0aGlzLm1hcD8ucmVtb3ZlT3ZlcmxheSh0aGlzLnBvcHVwT3ZlcmxheSk7XG4gICAgdGhpcy5wb3B1cENvbnRlbnQ/LmNsZWFyKCk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXA/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnByZXZpb3VzVG9vbHRpcFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzKHsgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkIH0pKTtcbiAgICAgIHRoaXMuY2xhc3NpY0ZlYXR1cmVzJC5uZXh0KFtdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9vbHRpcE1vdmUobnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy50b29sdGlwQ2FuTW92ZShudW1iZXIpKSB7XG4gICAgICB0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQubmV4dCh0aGlzLnRvb2x0aXBEaXNwbGF5ZWRJbmRleCQuZ2V0VmFsdWUoKSArIG51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvb2x0aXBDYW5Nb3ZlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5nZXRWYWx1ZSgpICsgbnVtYmVyID49IDAgJiZcbiAgICAgIHRoaXMudG9vbHRpcERpc3BsYXllZEluZGV4JC5nZXRWYWx1ZSgpICsgbnVtYmVyIDwgdGhpcy50b29sdGlwTnVtYmVyXG4gICAgKTtcbiAgfVxuXG4gIGdldEZlYXR1cmVGcm9tU2VydmVyKHdtc0xheWVyczogTGF5ZXI8YW55PltdLCBwaXhlbDogUGl4ZWwpIHtcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIHdtc0xheWVycykge1xuICAgICAgbGV0IHVybCA9IGxheWVyXG4gICAgICAgIC5nZXRTb3VyY2UoKVxuICAgICAgICAuZ2V0RmVhdHVyZUluZm9VcmwocGl4ZWwsIHRoaXMubWFwLmdldFZpZXcoKS5nZXRSZXNvbHV0aW9uKCksIHRoaXMubWFwLmdldFZpZXcoKS5nZXRQcm9qZWN0aW9uKCksIHtcbiAgICAgICAgICBJTkZPX0ZPUk1BVDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIEZFQVRVUkVfQ09VTlQ6IDEwLFxuICAgICAgICAgIC4uLmxheWVyLmdldFByb3BlcnRpZXMoKVsnZ2V0RmVhdHVyZUluZm9BZGRpdGlvbmFsUGFyYW1ldGVycyddLFxuICAgICAgICAgIGNxbF9maWx0ZXI6IGxheWVyLmdldFNvdXJjZSgpLmdldFBhcmFtcygpWydjcWxfZmlsdGVyJ11cbiAgICAgICAgfSk7XG4gICAgICBpZiAoXG4gICAgICAgIChcbiAgICAgICAgICB0aGlzLnBhcmVudC5vcHRpb25zQ29weS5sYXllcnM/LmZpbmQoKGwpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBsLnRpdGxlID09PSBsYXllci5nZXRQcm9wZXJ0aWVzKClbJ3RpdGxlJ107XG4gICAgICAgICAgfSkgYXMgTWFwR2VvU2VydmVyTGF5ZXJPcHRpb25zXG4gICAgICAgICk/LmdldFdmc0ZlYXR1cmVzRm9yVG9vbHRpcHNcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMuZ2V0V2ZzRmVhdHVyZXNGb3JQb2ludFN0YWNrVG9vbHRpcHMoe1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgb0NsYXNzOiBsYXllci5nZXRQcm9wZXJ0aWVzKClbJ29DbGFzcyddID8/ICcnLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHBpeGVsLFxuICAgICAgICAgICAgY29tcG9uZW50SWQ6IHRoaXMucGFyZW50LmlkLFxuICAgICAgICAgICAgZ2VvbVByb3BOYW1lOiBsYXllci5nZXRQcm9wZXJ0aWVzKClbJ2dlb21Qcm9wTmFtZSddXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh1cmwgJiYgdXJsLmluZGV4T2YoJ0k9LTEnKSA9PT0gLTEgJiYgdXJsLmluZGV4T2YoJ0o9LTEnKSA9PT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5nZXRXbXNGZWF0dXJlcyh7XG4gICAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgICAgb0NsYXNzOiBsYXllci5nZXRQcm9wZXJ0aWVzKClbJ29DbGFzcyddID8/ICcnLFxuICAgICAgICAgICAgICBjb29yZGluYXRlczogcGl4ZWwsXG4gICAgICAgICAgICAgIGNvbXBvbmVudElkOiB0aGlzLnBhcmVudC5pZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcyh7IGNvbXBvbmVudElkOiB0aGlzLnBhcmVudC5pZCB9KSk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5wcmV2aW91c1Rvb2x0aXA/LmRlc3Ryb3koKTtcbiAgfVxufVxuIl19
@@ -673,7 +673,7 @@ class WidgetMapLayerService {
673
673
  impl.set('title', layer.title);
674
674
  impl.set('oClass', layer.oClass);
675
675
  impl.set('datasourceId', layer.datasourceId);
676
- impl.set('geomPropName', layer.geomPropName ?? 'geom');
676
+ impl.set('geomPropName', layer.geomPropName);
677
677
  return impl;
678
678
  },
679
679
  featurelayer: (layer, attributesForClass, layerClassesId, resultSet, range, itemStyles, map) => {
@@ -1313,7 +1313,8 @@ class TooltipManager {
1313
1313
  .getFeatureInfoUrl(pixel, this.map.getView().getResolution(), this.map.getView().getProjection(), {
1314
1314
  INFO_FORMAT: 'application/json',
1315
1315
  FEATURE_COUNT: 10,
1316
- ...layer.getProperties()['getFeatureInfoAdditionalParameters']
1316
+ ...layer.getProperties()['getFeatureInfoAdditionalParameters'],
1317
+ cql_filter: layer.getSource().getParams()['cql_filter']
1317
1318
  });
1318
1319
  if (this.parent.optionsCopy.layers?.find((l) => {
1319
1320
  return l.title === layer.getProperties()['title'];
@@ -1322,7 +1323,8 @@ class TooltipManager {
1322
1323
  url,
1323
1324
  oClass: layer.getProperties()['oClass'] ?? '',
1324
1325
  coordinates: pixel,
1325
- componentId: this.parent.id
1326
+ componentId: this.parent.id,
1327
+ geomPropName: layer.getProperties()['geomPropName']
1326
1328
  }));
1327
1329
  }
1328
1330
  else {