@provoly/dashboard 0.19.0 → 0.19.1

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.
Files changed (54) hide show
  1. package/README.md +1 -1
  2. package/assets/svgs/code-box.svg +1 -0
  3. package/esm2022/filters/autocomplete/autocomplete.component.mjs +41 -0
  4. package/esm2022/filters/autocomplete/autocomplete.module.mjs +24 -0
  5. package/esm2022/filters/autocomplete/provoly-dashboard-filters-autocomplete.mjs +5 -0
  6. package/esm2022/filters/autocomplete/public-api.mjs +4 -0
  7. package/esm2022/filters/autocomplete/style/css.component.mjs +11 -0
  8. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  9. package/esm2022/lib/core/components/select/select.component.mjs +4 -8
  10. package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
  11. package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
  12. package/esm2022/lib/core/model/widget-aggregated-chart-manifest.interface.mjs +1 -1
  13. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  14. package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +2 -2
  15. package/esm2022/lib/core/store/search/search.service.mjs +8 -2
  16. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +3 -2
  17. package/esm2022/lib/dashboard/store/wms.service.mjs +1 -1
  18. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -1
  19. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +30 -37
  20. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +10 -1
  21. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +10 -1
  22. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +95 -115
  23. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +35 -2
  24. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +15 -13
  25. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +75 -0
  26. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -0
  27. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -0
  28. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  29. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +47 -36
  30. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  31. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +138 -125
  32. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  33. package/fesm2022/provoly-dashboard.mjs +17 -12
  34. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  35. package/filters/autocomplete/autocomplete.component.d.ts +16 -0
  36. package/filters/autocomplete/autocomplete.module.d.ts +14 -0
  37. package/filters/autocomplete/index.d.ts +5 -0
  38. package/filters/autocomplete/public-api.d.ts +3 -0
  39. package/filters/autocomplete/style/_m-autocomplete.scss +7 -0
  40. package/filters/autocomplete/style/css.component.d.ts +5 -0
  41. package/lib/core/components/select/select.component.d.ts +0 -1
  42. package/lib/core/i18n/en.translations.d.ts +1 -0
  43. package/lib/core/i18n/fr.translations.d.ts +1 -0
  44. package/lib/core/model/widget-aggregated-chart-manifest.interface.d.ts +1 -1
  45. package/lib/core/model/widget-map-manifest.interface.d.ts +1 -1
  46. package/lib/core/store/search/search.service.d.ts +6 -0
  47. package/lib/dashboard/store/wms.service.d.ts +1 -1
  48. package/package.json +14 -8
  49. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +8 -6
  50. package/widgets/widget-aggregated-chart/i18n/en.translations.d.ts +9 -0
  51. package/widgets/widget-aggregated-chart/i18n/fr.translations.d.ts +9 -0
  52. package/widgets/widget-map/component/widget-map.component.d.ts +5 -7
  53. package/widgets/widget-map/utils/widget-map.utils.d.ts +7 -1
  54. package/widgets/widget-map/utils/xml-utils.class.d.ts +1 -1
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
51
51
  providedIn: 'root'
52
52
  }]
53
53
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL3dtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzVDLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGMUMsV0FBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7SUFFb0IsQ0FBQztJQUU5QyxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLEdBQUcsRUFBRTtZQUNQLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BFLE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUN6RyxNQUFNLG1CQUFtQixHQUN2QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUVqSCxPQUFPLElBQUksQ0FBQyxVQUFVO2lCQUNuQixHQUFHLENBQUMsR0FBRyxtQkFBbUIsMEJBQTBCLEVBQUU7Z0JBQ3JELE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztvQkFDdkIsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsY0FBYyxFQUFFLG1DQUFtQztpQkFDcEQsQ0FBQztnQkFDRixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDO2lCQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFDckUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsT0FBTyxJQUFJLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDTDtRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0EzQ1UsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIEdldENhcGFiaWxpdGllc1Jlc3BvbnNlID0geyB1cmw6IHN0cmluZzsgZG9jOiBEb2N1bWVudCB9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXbXNTZXJ2aWNlIHtcbiAgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCkge31cblxuICBnZXRDYXBhYmlsaXRpZXModXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEdldENhcGFiaWxpdGllc1Jlc3BvbnNlIHwgbnVsbD4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIGNvbnN0IGxheWVyVXJsV2l0aFFtYXJrID0gdXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyB1cmwgKyAnPycgOiB1cmw7XG4gICAgICBjb25zdCBsYXllclVybFdpdGhTZXJ2aWNlID1cbiAgICAgICAgbGF5ZXJVcmxXaXRoUW1hcmsuaW5kZXhPZignJlNFUlZJQ0U9JykgPT09IC0xID8gbGF5ZXJVcmxXaXRoUW1hcmsgKyAnJlNFUlZJQ0U9V01TJyA6IGxheWVyVXJsV2l0aFFtYXJrO1xuICAgICAgY29uc3QgbGF5ZXJVcmxXaXRoVmVyc2lvbiA9XG4gICAgICAgIGxheWVyVXJsV2l0aFNlcnZpY2UuaW5kZXhPZignJlZFUlNJT049JykgPT09IC0xID8gbGF5ZXJVcmxXaXRoU2VydmljZSArICcmVkVSU0lPTj0xLjMuMCcgOiBsYXllclVybFdpdGhTZXJ2aWNlO1xuXG4gICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoYCR7bGF5ZXJVcmxXaXRoVmVyc2lvbn0mUkVRVUVTVD1HZXRDYXBhYmlsaXRpZXNgLCB7XG4gICAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgICAgIEFjY2VwdDogJ3RleHQvaHRtbCwgYXBwbGljYXRpb24veGh0bWwreG1sLCAqLyonLFxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZG9jID0gdGhpcy5wYXJzZXIucGFyc2VGcm9tU3RyaW5nKHJlc3BvbnNlLCAnYXBwbGljYXRpb24veG1sJyk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck5vZGUgPSBkb2MucXVlcnlTZWxlY3RvcigncGFyc2VyZXJyb3InKTtcbiAgICAgICAgICAgIGlmIChlcnJvck5vZGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGdldENhcGFiaWxpdGllcyBmb3IgJHt1cmx9YCk7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgdXJsLCBkb2MgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBnZXRDYXBhYmlsaXRpZXMgZm9yICR7dXJsfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIGdldFdtc0ZlYXR1cmVzKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGZlYXR1cmVzOiBhbnlbXSB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodXJsKS5waXBlKG1hcCgoanNvbjogYW55KSA9PiBqc29uKSk7XG4gIH1cbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL3dtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTzVDLE1BQU0sT0FBTyxVQUFVO0lBR3JCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGMUMsV0FBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7SUFFb0IsQ0FBQztJQUU5QyxlQUFlLENBQUMsR0FBVztRQUN6QixJQUFJLEdBQUcsRUFBRTtZQUNQLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BFLE1BQU0sbUJBQW1CLEdBQ3ZCLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUN6RyxNQUFNLG1CQUFtQixHQUN2QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUVqSCxPQUFPLElBQUksQ0FBQyxVQUFVO2lCQUNuQixHQUFHLENBQUMsR0FBRyxtQkFBbUIsMEJBQTBCLEVBQUU7Z0JBQ3JELE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztvQkFDdkIsTUFBTSxFQUFFLHVDQUF1QztvQkFDL0MsY0FBYyxFQUFFLG1DQUFtQztpQkFDcEQsQ0FBQztnQkFDRixZQUFZLEVBQUUsTUFBTTthQUNyQixDQUFDO2lCQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFDckUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsT0FBTyxJQUFJLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDckI7WUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDTDtRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0EzQ1UsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIEdldENhcGFiaWxpdGllc1Jlc3BvbnNlID0geyB1cmw6IHN0cmluZzsgZG9jPzogRG9jdW1lbnQgfTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV21zU2VydmljZSB7XG4gIHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0Q2FwYWJpbGl0aWVzKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB8IG51bGw+IHtcbiAgICBpZiAodXJsKSB7XG4gICAgICBjb25zdCBsYXllclVybFdpdGhRbWFyayA9IHVybC5pbmRleE9mKCc/JykgPT09IC0xID8gdXJsICsgJz8nIDogdXJsO1xuICAgICAgY29uc3QgbGF5ZXJVcmxXaXRoU2VydmljZSA9XG4gICAgICAgIGxheWVyVXJsV2l0aFFtYXJrLmluZGV4T2YoJyZTRVJWSUNFPScpID09PSAtMSA/IGxheWVyVXJsV2l0aFFtYXJrICsgJyZTRVJWSUNFPVdNUycgOiBsYXllclVybFdpdGhRbWFyaztcbiAgICAgIGNvbnN0IGxheWVyVXJsV2l0aFZlcnNpb24gPVxuICAgICAgICBsYXllclVybFdpdGhTZXJ2aWNlLmluZGV4T2YoJyZWRVJTSU9OPScpID09PSAtMSA/IGxheWVyVXJsV2l0aFNlcnZpY2UgKyAnJlZFUlNJT049MS4zLjAnIDogbGF5ZXJVcmxXaXRoU2VydmljZTtcblxuICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAuZ2V0KGAke2xheWVyVXJsV2l0aFZlcnNpb259JlJFUVVFU1Q9R2V0Q2FwYWJpbGl0aWVzYCwge1xuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICBBY2NlcHQ6ICd0ZXh0L2h0bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgKi8qJyxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvYyA9IHRoaXMucGFyc2VyLnBhcnNlRnJvbVN0cmluZyhyZXNwb25zZSwgJ2FwcGxpY2F0aW9uL3htbCcpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JOb2RlID0gZG9jLnF1ZXJ5U2VsZWN0b3IoJ3BhcnNlcmVycm9yJyk7XG4gICAgICAgICAgICBpZiAoZXJyb3JOb2RlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYENhbm5vdCBnZXRDYXBhYmlsaXRpZXMgZm9yICR7dXJsfWApO1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IHVybCwgZG9jIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgZ2V0Q2FwYWJpbGl0aWVzIGZvciAke3VybH1gKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cblxuICBnZXRXbXNGZWF0dXJlcyh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8eyBmZWF0dXJlczogYW55W10gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCkucGlwZShtYXAoKGpzb246IGFueSkgPT4ganNvbikpO1xuICB9XG59XG4iXX0=
@@ -213,6 +213,8 @@ export class PryFilterSettingsComponent extends ToolboxActionComponent {
213
213
  return ['EQUALS', 'NOT_EQUALS', 'GREATER_THAN', 'LOWER_THAN'].includes(operator.value);
214
214
  case 'text':
215
215
  return ['CONTAINS', 'EQUALS', 'NOT_EQUALS', 'START_WITH', 'END_WITH'].includes(operator.value);
216
+ case 'autocomplete':
217
+ return ['EQUALS'].includes(operator.value);
216
218
  default:
217
219
  return operator;
218
220
  }
@@ -233,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
233
235
  type: ViewChild,
234
236
  args: ['container', { read: ViewContainerRef }]
235
237
  }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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K0JBQ0UscUJBQXFCOzJNQUl0QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ3dDLGdCQUFnQjtzQkFBN0QsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQStCUSxTQUFTO3NCQUE1RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBGaWVsZFR5cGUsXG4gIEZpbHRlcixcbiAgRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkLFxuICBOYW1lZFF1ZXJ5VHlwZXNcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdPjtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4odGhpcy5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmaWx0ZXJGYWN0b3J5U2VydmljZTogRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMubWFuaWZlc3QkID0gc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5nbG9iYWxNYW5pZmVzdCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMubWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gbWFuaWZlc3QuZmlsdGVycyA/IFsuLi5tYW5pZmVzdC5maWx0ZXJzXSA6IFtdO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhc291cmNlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm5hbWVkUXVlcmllc1VzZXMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFTb3VyY2VzLCBkYXRhU291cmNlc1VzZWRdKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhU291cmNlc1VzZWQpLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGRhdGFTb3VyY2VzLmZpbmQoKGRhdGFTb3VyY2UpID0+IGRhdGFTb3VyY2UuaWQgPT09IGlkKT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogaWRcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS50eXBlcyQucGlwZShcbiAgICAgIG1hcCgodHlwZXMpID0+XG4gICAgICAgIHR5cGVzLm1hcCgodHlwZSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogJ0BwcnkuZmlsdGVycy50eXBlcy4nICsgdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dCh0aGlzLmdldE9wZXJhdG9ycygpKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYXR0cmlidXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyksXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJFxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbShzdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKSksXG4gICAgICBtYXAoKFtbZGF0YVNvdXJjZXMsIGN1cnJlbnREYXRhU291cmNlcywgY2xhc3NlcywgY29tcG9uZW50VHlwZV0sIGZpZWxkc10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFTb3VyY2VzSW5QcmVzID0gZGF0YVNvdXJjZXMuZmlsdGVyKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnREYXRhU291cmNlcykuaW5jbHVkZXMoZGF0YVNvdXJjZS5pZCkgPyBkYXRhU291cmNlIDogZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcbiAgICAgICAgZGF0YVNvdXJjZXNJblByZXMuZm9yRWFjaCgoZGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNsYXp6ID0gdGhpcy5nZXREYXRhc291cmNlQ2xhc3MoZGF0YVNvdXJjZSwgY2xhc3Nlcyk7XG4gICAgICAgICAgY2xheno/LmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGF0dHIuaWQsXG4gICAgICAgICAgICAgIG5hbWU6IGF0dHIubmFtZSxcbiAgICAgICAgICAgICAgbGFiZWw6IFthdHRyLm5hbWUsIGRhdGFTb3VyY2UubmFtZSwgY2xhenoubmFtZV0uam9pbignIC8gJyksXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IGRhdGFTb3VyY2UuaWQsXG4gICAgICAgICAgICAgIHR5cGU6IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IGF0dHIuZmllbGQpPy50eXBlID8/IEZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQXR0cmlidXRlcyhjb21wb25lbnRUeXBlLCBhdHRyaWJ1dGVzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlOiBEYXRhU291cmNlLCBjbGFzc2VzOiBDbGFzc1tdKTogQ2xhc3MgfCB1bmRlZmluZWQge1xuICAgIGxldCBjbGF6ejogQ2xhc3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSBkYXRhU291cmNlLm9DbGFzcyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ25hbWVkUXVlcnknICYmXG4gICAgICBkYXRhU291cmNlLnJlcXVlc3QgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdC50eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTU1xuICAgICkge1xuICAgICAgY2xhenogPSBjbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gKGRhdGFTb3VyY2UucmVxdWVzdCBhcyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkKS5vQ2xhc3MpO1xuICAgIH1cbiAgICByZXR1cm4gY2xheno7XG4gIH1cblxuICBmaWx0ZXJBdHRyaWJ1dGVzKGNvbXBvbmVudFR5cGU6IHN0cmluZywgYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBBdHRyaWJ1dGVbXSB7XG4gICAgc3dpdGNoIChjb21wb25lbnRUeXBlKSB7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBhdHRyLnR5cGUgPT09IEZpZWxkVHlwZS5JTlNUQU5UKTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5JTlRFR0VSLCBGaWVsZFR5cGUuREVDSU1BTCwgRmllbGRUeXBlLkxPTkddLmluY2x1ZGVzKGF0dHIudHlwZSkpO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5TVFJJTkcsIEZpZWxkVHlwZS5LRVlXT1JEXS5pbmNsdWRlcyhhdHRyLnR5cGUpKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZXMuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSQudmFsdWVbMF0pPy50eXBlO1xuICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gYXR0ci50eXBlID09PSBhdHRyaWJ1dGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxGaWx0ZXJbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5maWx0ZXJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgdG9nZ2xlU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5nc09wZW5lZCA9ICF0aGlzLnNldHRpbmdzT3BlbmVkO1xuICAgIGlmICh0aGlzLnNldHRpbmdzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncz8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycyh7IGZpbHRlcnM6IHRoaXMuZmlsdGVycyB9KSk7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZXR0aW5ncygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlcicsICdvLXNlbGVjdC1ncmlkLWxheW91dC1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLnRvZ2dsZVNldHRpbmdzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlU2V0dGluZ3MsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSAkZXZlbnQ7XG4gICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAkZXZlbnQgPT09ICdsaXN0JyA/ICdFUVVBTFMnIDogdGhpcy5maWx0ZXIub3BlcmF0b3I7XG4gICAgaWYgKHRoaXMuZmlsdGVyLnR5cGUgIT09ICcnICYmIHRoaXMuY29udGFpbmVyKSB7XG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS5nZW5lcmF0ZUZpbHRlcih0aGlzLmZpbHRlci50eXBlLCB0aGlzLmluamVjdG9yLCB0aGlzLmNvbnRhaW5lcik7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBjb21wb25lbnQuc3Vic2NyaWJlKChjb21wb25lbnRSZWYpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KGNvbXBvbmVudFJlZi5pbnN0YW5jZS50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RmlsdGVyQXR0cmlidXRlcyhmaWx0ZXI6IEZpbHRlciwgYXR0ckNvdW50OiBudW1iZXIpIHtcbiAgICBhdHRyQ291bnQgPSBhdHRyQ291bnQgPD0gZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoID8gYXR0ckNvdW50IDogZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgIHJldHVybiBmaWx0ZXIuYXR0cmlidXRlc1xuICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICAgLnNsaWNlKDAsIGF0dHJDb3VudClcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgYXR0cmlidXRlczogW11cbiAgICB9O1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5MSVNUO1xuICB9XG5cbiAgZ29Ub0VkaXRpb24oZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICB0aGlzLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBnb1RvQ3JlYXRpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dCgnJyk7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlcnMoeyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0pKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgc2VsZWN0QXR0cmlidXRlKCRldmVudDogQXR0cmlidXRlW10pIHtcbiAgICB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzID0gJGV2ZW50O1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUkLm5leHQoJGV2ZW50Lm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICB9XG5cbiAgZGVsZXRlRmlsdGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVyKHsgaWQgfSkpO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3JzKCk6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG9wZXJhdG9yKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5oYXNEYXRlUmFuZ2VcbiAgICAgICAgICAgID8gWydJTlNJREUnLCAnT1VUU0lERSddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKVxuICAgICAgICAgICAgOiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgIHJldHVybiBbJ0NPTlRBSU5TJywgJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ1NUQVJUX1dJVEgnLCAnRU5EX1dJVEgnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG9wZXJhdG9yO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEZpbHRlclN0ZXBzID0gRmlsdGVyU3RlcHM7XG59XG4iLCI8cHJ5LXRvb2xib3gtY3NzPjwvcHJ5LXRvb2xib3gtY3NzPlxuPGRpdlxuICBjbGFzcz1cInNhdmUtbWFuaWZlc3QtY29udGFpbmVyIGEtdG9vbHRpcFwiXG4gIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS5maWx0ZXJzLmxhYmVsJyB8IGkxOG5cIlxuICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIlxuPlxuICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjY29udGFpbmVyPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC1zaXplLW1kXCJcbiAgICBbZGlzYWJsZWRdPVwiKGF0dHJpYnV0ZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDBcIlxuICAgIChjbGljayk9XCJ0b2dnbGVTZXR0aW5ncygpXCJcbiAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMubGFiZWwnIHwgaTE4biB9fTwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NldHRpbmdzPlxuICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19faGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgICAgPGgyPlBhcmFtw6l0cmVyIGxlcyBmaWx0cmVzPC9oMj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLXJvdyAtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29CYWNrKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJiYWNrLWJ1dHRvblwiPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGV2cm9uX3JpZ2h0XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8aDI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAoY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkNSRUFUSU9OID8gJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5jcmVhdGUnIDogJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi51cGRhdGUnKVxuICAgICAgICAgICAgICAgIHwgaTE4blxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU2V0dGluZ3MoKVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkxJU1RcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2NvbnRlbnRcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihhdHRyaWJ1dGVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwOyBlbHNlIGF0dHJpYnV0ZXNFeGlzdHNcIiBjbGFzcz1cImEtdGFibGUtd3JhcHBlclwiPjwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2F0dHJpYnV0ZXNFeGlzdHM+XG4gICAgICAgICAgPHRhYmxlICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPiAwOyBlbHNlIG5vRmlsdGVyc1wiIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgICAgICAgPHRib2R5IGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiZmlsdGVyc1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNcIiBjbGFzcz1cIm8tZmlsdGVyc19fZmlsdGVyXCIgY2RrRHJhZz5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldEZpbHRlckF0dHJpYnV0ZXMoZmlsdGVyLCAzKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiZGVsZXRlRmlsdGVyKGZpbHRlci5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmRlbGV0ZScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoY2xpY2spPVwiZ29Ub0VkaXRpb24oZmlsdGVyKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5maWx0ZXJzLmxpc3QubW9kaWZ5JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNka0RyYWdIYW5kbGU+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImRyYWdfaW5kaWNhdG9yXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9GaWx0ZXJzPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvLWZpbHRlcnNfX25vLWZpbHRlcnNcIj57eyAnQHByeS5maWx0ZXJzLm5vRmlsdGVycycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29Ub0NyZWF0aW9uKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+e3sgJ0BwcnkuZmlsdGVycy5saXN0LmFkZCcgfCBpMThuIH19PC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkNSRUFUSU9OIHx8IGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5FRElUSU9OXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24ubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWx0ZXJOYW1lXCIgY2xhc3M9XCJhLWZvcm0tZmllbGRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZmlsdGVyLm5hbWVcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWx0ZXJUeXBlXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi50eXBlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cImZpbHRlclR5cGVcIlxuICAgICAgICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi50eXBlJyB8IGkxOG5cIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInR5cGVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnR5cGVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdkYXRlJ1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIHUtZGlzcGxheS1mbGV4IC1yb3dcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZS1yYW5nZVwiIGNsYXNzPVwiYS1sYWJlbFwiPlBsYWdlIGRlIGRhdGVzPC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICBpZD1cImRhdGUtcmFuZ2VcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIuaGFzRGF0ZVJhbmdlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dChnZXRPcGVyYXRvcnMoKSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCIgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zc2libGVWYWx1ZXNcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLnZhbHVlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwicG9zc2libGVWYWx1ZXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIucG9zc2libGVWYWx1ZXNcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ2YWxldXIxLCB2YWxldXIyLCB2YWxldXIzXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhdHRyaWJ1dGVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi5hdHRyaWJ1dGVzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICBpZD1cImF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImF0dHJpYnV0ZXMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZmlsdGVyLmF0dHJpYnV0ZXNcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0QXR0cmlidXRlKCRldmVudClcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwib3BlcmF0aW9uc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJvcGVyYXRpb25zXCJcbiAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cImN1cnJlbnRPcGVyYXRvcnMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXIub3BlcmF0b3JcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuYXR0cmlidXRlcy5vcGVyYXRvcicgfCBpMThuXCJcbiAgICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnbGlzdCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZpbHRlcigpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIShmaWx0ZXIubmFtZSAmJiBmaWx0ZXIudHlwZSAmJiBmaWx0ZXIuYXR0cmlidXRlcy5sZW5ndGggIT09IDAgJiYgZmlsdGVyLm9wZXJhdG9yKVwiXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3Rvb2xib3gvY29tcG9uZW50cy9maWx0ZXItc2V0dGluZ3MvZmlsdGVyLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUVMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLFNBQVMsRUFLVCxlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBRXBGLE1BQU0sQ0FBTixJQUFZLFdBSVg7QUFKRCxXQUFZ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QjtrR0FBMUIsMEJBQTBCLGdMQUVOLFdBQVcsaUdBK0JWLGdCQUFnQixvREM3RWxELHV3TkFrS0E7OzJGRHRIYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UscUJBQXFCOzJNQUl0QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ3dDLGdCQUFnQjtzQkFBN0QsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQStCUSxTQUFTO3NCQUE1RCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIEZpZWxkU2VsZWN0b3JzLFxuICBGaWVsZFR5cGUsXG4gIEZpbHRlcixcbiAgRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkLFxuICBOYW1lZFF1ZXJ5VHlwZXNcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBUb29sYm94QWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbGJveC1hY3Rpb24vdG9vbGJveC1hY3Rpb24uY29tcG9uZW50JztcblxuZXhwb3J0IGVudW0gRmlsdGVyU3RlcHMge1xuICBMSVNUID0gJ2xpc3QnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgdHlwZTogRmllbGRUeXBlO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZmlsdGVyLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgZXh0ZW5kcyBUb29sYm94QWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwgPSB0cnVlO1xuICBAVmlld0NoaWxkKCdzZXR0aW5ncycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVTZXR0aW5ncyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIG92ZXJsYXlSZWZTZXR0aW5ncz86IE92ZXJsYXlSZWY7XG4gIHNldHRpbmdzT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG4gIG1hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIGZpbHRlcnM6IEZpbHRlcltdID0gW107XG4gIHR5cGVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdPjtcbiAgY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIGN1cnJlbnRTdGVwOiBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzLkxJU1Q7XG4gIHN0ZXBzID0gRmlsdGVyU3RlcHM7XG4gIGZpbHRlcjogRmlsdGVyID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIG5hbWU6ICcnLFxuICAgIHR5cGU6ICcnLFxuICAgIGF0dHJpYnV0ZXM6IFtdXG4gIH07XG4gIGRhdGFzb3VyY2UkOiBPYnNlcnZhYmxlPGFueT47XG4gIG9wZXJhdG9ycyA9IFtcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuZXF1YWxzU3RyaW5nJywgdmFsdWU6ICdFUVVBTFMnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLm5vdEVxdWFsc1N0cmluZycsIHZhbHVlOiAnTk9UX0VRVUFMUycgfSxcbiAgICB7IGxhYmVsOiAnQHByeS5zZWFyY2gub3BlcmF0b3IuY29udGFpbnMnLCB2YWx1ZTogJ0NPTlRBSU5TJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5zdGFydFdpdGgnLCB2YWx1ZTogJ1NUQVJUX1dJVEgnIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmVuZFdpdGgnLCB2YWx1ZTogJ0VORF9XSVRIJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5ncmVhdGVyVGhhbk51bWJlcicsIHZhbHVlOiAnR1JFQVRFUl9USEFOJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5sb3dlclRoYW5OdW1iZXInLCB2YWx1ZTogJ0xPV0VSX1RIQU4nIH0sXG4gICAgeyBsYWJlbDogJ0Bwcnkuc2VhcmNoLm9wZXJhdG9yLmlubmVyQm91bmRzRGF0ZScsIHZhbHVlOiAnSU5TSURFJyB9LFxuICAgIHsgbGFiZWw6ICdAcHJ5LnNlYXJjaC5vcGVyYXRvci5vdXRlckJvdW5kc0RhdGUnLCB2YWx1ZTogJ09VVFNJREUnIH1cbiAgXTtcbiAgY3VycmVudE9wZXJhdG9ycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMub3BlcmF0b3JzKTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuICBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgZGF0YXNvdXJjZTogc3RyaW5nOyB0eXBlOiBzdHJpbmcgfVtdPjtcbiAgc2VsZWN0ZWRBdHRyaWJ1dGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4odGhpcy5maWx0ZXIuYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIuaWQpKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBmaWx0ZXJGYWN0b3J5U2VydmljZTogRmlsdGVyRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMubWFuaWZlc3QkID0gc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5nbG9iYWxNYW5pZmVzdCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMubWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gbWFuaWZlc3QuZmlsdGVycyA/IFsuLi5tYW5pZmVzdC5maWx0ZXJzXSA6IFtdO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhc291cmNlJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm5hbWVkUXVlcmllc1VzZXMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RhdGFTb3VyY2VzLCBkYXRhU291cmNlc1VzZWRdKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhU291cmNlc1VzZWQpLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IGRhdGFTb3VyY2VzLmZpbmQoKGRhdGFTb3VyY2UpID0+IGRhdGFTb3VyY2UuaWQgPT09IGlkKT8ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogaWRcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudHlwZXMkID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS50eXBlcyQucGlwZShcbiAgICAgIG1hcCgodHlwZXMpID0+XG4gICAgICAgIHR5cGVzLm1hcCgodHlwZSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogJ0BwcnkuZmlsdGVycy50eXBlcy4nICsgdHlwZSxcbiAgICAgICAgICB2YWx1ZTogdHlwZVxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE9wZXJhdG9ycyQubmV4dCh0aGlzLmdldE9wZXJhdG9ycygpKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuYXR0cmlidXRlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKSxcbiAgICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMubmFtZWRRdWVyaWVzVXNlcyksXG4gICAgICBzdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3NlcyksXG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJFxuICAgIF0pLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbShzdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKSksXG4gICAgICBtYXAoKFtbZGF0YVNvdXJjZXMsIGN1cnJlbnREYXRhU291cmNlcywgY2xhc3NlcywgY29tcG9uZW50VHlwZV0sIGZpZWxkc10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFTb3VyY2VzSW5QcmVzID0gZGF0YVNvdXJjZXMuZmlsdGVyKChkYXRhU291cmNlKSA9PlxuICAgICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnREYXRhU291cmNlcykuaW5jbHVkZXMoZGF0YVNvdXJjZS5pZCkgPyBkYXRhU291cmNlIDogZmFsc2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlW10gPSBbXTtcbiAgICAgICAgZGF0YVNvdXJjZXNJblByZXMuZm9yRWFjaCgoZGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNsYXp6ID0gdGhpcy5nZXREYXRhc291cmNlQ2xhc3MoZGF0YVNvdXJjZSwgY2xhc3Nlcyk7XG4gICAgICAgICAgY2xheno/LmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IGF0dHIuaWQsXG4gICAgICAgICAgICAgIG5hbWU6IGF0dHIubmFtZSxcbiAgICAgICAgICAgICAgbGFiZWw6IFthdHRyLm5hbWUsIGRhdGFTb3VyY2UubmFtZSwgY2xhenoubmFtZV0uam9pbignIC8gJyksXG4gICAgICAgICAgICAgIGRhdGFzb3VyY2U6IGRhdGFTb3VyY2UuaWQsXG4gICAgICAgICAgICAgIHR5cGU6IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IGF0dHIuZmllbGQpPy50eXBlID8/IEZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQXR0cmlidXRlcyhjb21wb25lbnRUeXBlLCBhdHRyaWJ1dGVzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERhdGFzb3VyY2VDbGFzcyhkYXRhU291cmNlOiBEYXRhU291cmNlLCBjbGFzc2VzOiBDbGFzc1tdKTogQ2xhc3MgfCB1bmRlZmluZWQge1xuICAgIGxldCBjbGF6ejogQ2xhc3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICBjbGF6eiA9IGNsYXNzZXMuZmluZCgoY2xhenopID0+IGNsYXp6LmlkID09PSBkYXRhU291cmNlLm9DbGFzcyk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGRhdGFTb3VyY2Uuc291cmNlVHlwZSA9PT0gJ25hbWVkUXVlcnknICYmXG4gICAgICBkYXRhU291cmNlLnJlcXVlc3QgJiZcbiAgICAgIGRhdGFTb3VyY2UucmVxdWVzdC50eXBlID09PSBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTU1xuICAgICkge1xuICAgICAgY2xhenogPSBjbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gKGRhdGFTb3VyY2UucmVxdWVzdCBhcyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkKS5vQ2xhc3MpO1xuICAgIH1cbiAgICByZXR1cm4gY2xheno7XG4gIH1cblxuICBmaWx0ZXJBdHRyaWJ1dGVzKGNvbXBvbmVudFR5cGU6IHN0cmluZywgYXR0cmlidXRlczogQXR0cmlidXRlW10pOiBBdHRyaWJ1dGVbXSB7XG4gICAgc3dpdGNoIChjb21wb25lbnRUeXBlKSB7XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZmlsdGVyKChhdHRyKSA9PiBhdHRyLnR5cGUgPT09IEZpZWxkVHlwZS5JTlNUQU5UKTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5JTlRFR0VSLCBGaWVsZFR5cGUuREVDSU1BTCwgRmllbGRUeXBlLkxPTkddLmluY2x1ZGVzKGF0dHIudHlwZSkpO1xuICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gW0ZpZWxkVHlwZS5TVFJJTkcsIEZpZWxkVHlwZS5LRVlXT1JEXS5pbmNsdWRlcyhhdHRyLnR5cGUpKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0cmlidXRlJC52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IGF0dHJpYnV0ZXMuZmluZCgoYXR0cikgPT4gYXR0ci5pZCA9PT0gdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSQudmFsdWVbMF0pPy50eXBlO1xuICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmZpbHRlcigoYXR0cikgPT4gYXR0ci50eXBlID09PSBhdHRyaWJ1dGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxGaWx0ZXJbXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5maWx0ZXJzLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgdG9nZ2xlU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5nc09wZW5lZCA9ICF0aGlzLnNldHRpbmdzT3BlbmVkO1xuICAgIGlmICh0aGlzLnNldHRpbmdzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW5TZXR0aW5ncygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncz8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycyh7IGZpbHRlcnM6IHRoaXMuZmlsdGVycyB9KSk7XG4gICAgICB0aGlzLmdvQmFjaygpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TZXR0aW5ncygpIHtcbiAgICB0aGlzLm92ZXJsYXlSZWZTZXR0aW5ncyA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlcicsICdvLXNlbGVjdC1ncmlkLWxheW91dC1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMub3ZlcmxheVJlZlNldHRpbmdzLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgICB0aGlzLnRvZ2dsZVNldHRpbmdzKCk7XG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmU2V0dGluZ3MuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlU2V0dGluZ3MsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyVHlwZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyLnR5cGUgPSAkZXZlbnQ7XG4gICAgdGhpcy5maWx0ZXIub3BlcmF0b3IgPSAkZXZlbnQgPT09ICdsaXN0JyA/ICdFUVVBTFMnIDogdGhpcy5maWx0ZXIub3BlcmF0b3I7XG4gICAgaWYgKHRoaXMuZmlsdGVyLnR5cGUgIT09ICcnICYmIHRoaXMuY29udGFpbmVyKSB7XG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5maWx0ZXJGYWN0b3J5U2VydmljZS5nZW5lcmF0ZUZpbHRlcih0aGlzLmZpbHRlci50eXBlLCB0aGlzLmluamVjdG9yLCB0aGlzLmNvbnRhaW5lcik7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICBjb21wb25lbnQuc3Vic2NyaWJlKChjb21wb25lbnRSZWYpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJC5uZXh0KGNvbXBvbmVudFJlZi5pbnN0YW5jZS50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RmlsdGVyQXR0cmlidXRlcyhmaWx0ZXI6IEZpbHRlciwgYXR0ckNvdW50OiBudW1iZXIpIHtcbiAgICBhdHRyQ291bnQgPSBhdHRyQ291bnQgPD0gZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoID8gYXR0ckNvdW50IDogZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoO1xuICAgIHJldHVybiBmaWx0ZXIuYXR0cmlidXRlc1xuICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICAgLnNsaWNlKDAsIGF0dHJDb3VudClcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuZmlsdGVyID0ge1xuICAgICAgaWQ6IHY0KCksXG4gICAgICBuYW1lOiAnJyxcbiAgICAgIHR5cGU6ICcnLFxuICAgICAgYXR0cmlidXRlczogW11cbiAgICB9O1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBGaWx0ZXJTdGVwcy5MSVNUO1xuICB9XG5cbiAgZ29Ub0VkaXRpb24oZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICB0aGlzLmZpbHRlciA9IHsgLi4uZmlsdGVyIH07XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBnb1RvQ3JlYXRpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQubmV4dCgnJyk7XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IEZpbHRlclN0ZXBzLkVESVRJT047XG4gIH1cblxuICBzdWJtaXRGaWx0ZXIoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlcnMoeyBmaWx0ZXI6IHRoaXMuZmlsdGVyIH0pKTtcbiAgICB0aGlzLmdvQmFjaygpO1xuICB9XG5cbiAgc2VsZWN0QXR0cmlidXRlKCRldmVudDogQXR0cmlidXRlW10pIHtcbiAgICB0aGlzLmZpbHRlci5hdHRyaWJ1dGVzID0gJGV2ZW50O1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUkLm5leHQoJGV2ZW50Lm1hcCgoYXR0cikgPT4gYXR0ci5pZCkpO1xuICB9XG5cbiAgZGVsZXRlRmlsdGVyKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVyKHsgaWQgfSkpO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3JzKCk6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG9wZXJhdG9yKSA9PiB7XG4gICAgICBzd2l0Y2ggKHRoaXMuY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlci5oYXNEYXRlUmFuZ2VcbiAgICAgICAgICAgID8gWydJTlNJREUnLCAnT1VUU0lERSddLmluY2x1ZGVzKG9wZXJhdG9yLnZhbHVlKVxuICAgICAgICAgICAgOiBbJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ0dSRUFURVJfVEhBTicsICdMT1dFUl9USEFOJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBjYXNlICdsaXN0JzpcbiAgICAgICAgICByZXR1cm4gWydFUVVBTFMnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJywgJ05PVF9FUVVBTFMnLCAnR1JFQVRFUl9USEFOJywgJ0xPV0VSX1RIQU4nXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgIHJldHVybiBbJ0NPTlRBSU5TJywgJ0VRVUFMUycsICdOT1RfRVFVQUxTJywgJ1NUQVJUX1dJVEgnLCAnRU5EX1dJVEgnXS5pbmNsdWRlcyhvcGVyYXRvci52YWx1ZSk7XG4gICAgICAgIGNhc2UgJ2F1dG9jb21wbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIFsnRVFVQUxTJ10uaW5jbHVkZXMob3BlcmF0b3IudmFsdWUpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBvcGVyYXRvcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBGaWx0ZXJTdGVwcyA9IEZpbHRlclN0ZXBzO1xufVxuIiwiPHByeS10b29sYm94LWNzcz48L3ByeS10b29sYm94LWNzcz5cbjxkaXZcbiAgY2xhc3M9XCJzYXZlLW1hbmlmZXN0LWNvbnRhaW5lciBhLXRvb2x0aXBcIlxuICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkuZmlsdGVycy5sYWJlbCcgfCBpMThuXCJcbiAgZGF0YS10b29sdGlwLXBvc2l0aW9uPVwiYm90dG9tXCJcbj5cbiAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtc2l6ZS1tZFwiXG4gICAgW2Rpc2FibGVkXT1cIihhdHRyaWJ1dGVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlU2V0dGluZ3MoKVwiXG4gICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmxhYmVsJyB8IGkxOG4gfX08L25nLWNvbnRhaW5lcj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZXR0aW5ncz5cbiAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbHRlcnNfX2hlYWRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICAgIDxoMj5QYXJhbcOpdHJlciBsZXMgZmlsdHJlczwvaDI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuQ1JFQVRJT04gfHwgY3VycmVudFN0ZXAgPT09IEZpbHRlclN0ZXBzLkVESVRJT05cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1yb3cgLWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvQmFjaygpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYmFjay1idXR0b25cIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hldnJvbl9yaWdodFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKGN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiA/ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uY3JlYXRlJyA6ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udXBkYXRlJylcbiAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNldHRpbmdzKClcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5MSVNUXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1maWx0ZXJzX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMDsgZWxzZSBhdHRyaWJ1dGVzRXhpc3RzXCIgY2xhc3M9XCJhLXRhYmxlLXdyYXBwZXJcIj48L2Rpdj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdHRyaWJ1dGVzRXhpc3RzPlxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cImZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBub0ZpbHRlcnNcIiBjbGFzcz1cImEtdGFibGVcIj5cbiAgICAgICAgICAgIDx0Ym9keSBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImZpbHRlcnNcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgY2xhc3M9XCJvLWZpbHRlcnNfX2ZpbHRlclwiIGNka0RyYWc+XG4gICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZmlsdGVyLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRGaWx0ZXJBdHRyaWJ1dGVzKGZpbHRlciwgMykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihmaWx0ZXIuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImdvVG9FZGl0aW9uKGZpbHRlcilcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuZmlsdGVycy5saXN0Lm1vZGlmeScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkcmFnX2luZGljYXRvclwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRmlsdGVycz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby1maWx0ZXJzX19uby1maWx0ZXJzXCI+e3sgJ0BwcnkuZmlsdGVycy5ub0ZpbHRlcnMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9DcmVhdGlvbigpXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPnt7ICdAcHJ5LmZpbHRlcnMubGlzdC5hZGQnIHwgaTE4biB9fTwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBGaWx0ZXJTdGVwcy5DUkVBVElPTiB8fCBjdXJyZW50U3RlcCA9PT0gRmlsdGVyU3RlcHMuRURJVElPTlwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsdGVyc19fY29udGVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpbHRlck5hbWVcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmNyZWF0aW9uLm5hbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0IGlkPVwiZmlsdGVyTmFtZVwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImZpbHRlci5uYW1lXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsdGVyVHlwZVwiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJmaWx0ZXJUeXBlXCJcbiAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAcHJ5LmZpbHRlcnMuY3JlYXRpb24udHlwZScgfCBpMThuXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJ0eXBlcyQgfCBhc3luY1wiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlci50eXBlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUZpbHRlclR5cGUoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIoY3VycmVudEZpbHRlckNvbXBvbmVudFR5cGUkIHwgYXN5bmMpID09PSAnZGF0ZSdcIiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCB1LWRpc3BsYXktZmxleCAtcm93XCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImRhdGUtcmFuZ2VcIiBjbGFzcz1cImEtbGFiZWxcIj5QbGFnZSBkZSBkYXRlczwvbGFiZWw+XG4gICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgaWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLmhhc0RhdGVSYW5nZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ0aGlzLmN1cnJlbnRPcGVyYXRvcnMkLm5leHQoZ2V0T3BlcmF0b3JzKCkpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihjdXJyZW50RmlsdGVyQ29tcG9uZW50VHlwZSQgfCBhc3luYykgPT09ICdsaXN0J1wiIGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInBvc3NpYmxlVmFsdWVzXCIgY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkuZmlsdGVycy5jcmVhdGlvbi52YWx1ZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD1cInBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLnBvc3NpYmxlVmFsdWVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwidmFsZXVyMSwgdmFsZXVyMiwgdmFsZXVyM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYXR0cmlidXRlc1wiIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LmZpbHRlcnMuY3JlYXRpb24uYXR0cmlidXRlcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJhdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJhdHRyaWJ1dGVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImZpbHRlci5hdHRyaWJ1dGVzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdEF0dHJpYnV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmNyZWF0aW9uLmF0dHJpYnV0ZXMnIHwgaTE4blwiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cInRydWVcIlxuICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cIm9wZXJhdGlvbnNcIiBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIGlkPVwib3BlcmF0aW9uc1wiXG4gICAgICAgICAgICBbbGFiZWxUcmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJjdXJyZW50T3BlcmF0b3JzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyLm9wZXJhdG9yXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHByeS5maWx0ZXJzLmF0dHJpYnV0ZXMub3BlcmF0b3InIHwgaTE4blwiXG4gICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICBiaW5kVmFsdWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGN1cnJlbnRGaWx0ZXJDb21wb25lbnRUeXBlJCB8IGFzeW5jKSA9PT0gJ2xpc3QnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGaWx0ZXIoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiEoZmlsdGVyLm5hbWUgJiYgZmlsdGVyLnR5cGUgJiYgZmlsdGVyLmF0dHJpYnV0ZXMubGVuZ3RoICE9PSAwICYmIGZpbHRlci5vcGVyYXRvcilcIlxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==