@alfresco/adf-process-services-cloud 8.1.0-15047165133 → 8.1.0-15049533230

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 (96) hide show
  1. package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +4 -4
  2. package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +4 -4
  3. package/esm2022/lib/app/services/apps-process-cloud.service.mjs +4 -4
  4. package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +4 -4
  5. package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +4 -4
  6. package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +4 -4
  7. package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +4 -4
  8. package/esm2022/lib/form/components/form-cloud.component.mjs +7 -14
  9. package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +4 -4
  10. package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +4 -4
  11. package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +4 -4
  12. package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +4 -4
  13. package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -4
  14. package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +4 -4
  15. package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +4 -4
  16. package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +4 -4
  17. package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +4 -4
  18. package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -4
  19. package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +4 -4
  20. package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +4 -4
  21. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +4 -4
  22. package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -4
  23. package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +4 -4
  24. package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +4 -4
  25. package/esm2022/lib/form/form-cloud.module.mjs +5 -5
  26. package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +4 -4
  27. package/esm2022/lib/form/services/display-mode.service.mjs +4 -4
  28. package/esm2022/lib/form/services/form-cloud.service.mjs +4 -4
  29. package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +4 -4
  30. package/esm2022/lib/form/services/form-utils.service.mjs +4 -4
  31. package/esm2022/lib/form/services/process-cloud-content.service.mjs +4 -4
  32. package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +4 -4
  33. package/esm2022/lib/group/components/group-cloud.component.mjs +4 -4
  34. package/esm2022/lib/group/group-cloud.module.mjs +5 -5
  35. package/esm2022/lib/group/services/identity-group.service.mjs +4 -4
  36. package/esm2022/lib/people/components/people-cloud.component.mjs +4 -4
  37. package/esm2022/lib/people/people-cloud.module.mjs +5 -5
  38. package/esm2022/lib/people/services/identity-user.service.mjs +4 -4
  39. package/esm2022/lib/process/process-cloud.module.mjs +5 -5
  40. package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +4 -4
  41. package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +4 -4
  42. package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +4 -4
  43. package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +5 -5
  44. package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +4 -4
  45. package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +4 -4
  46. package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +5 -5
  47. package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +4 -4
  48. package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +5 -5
  49. package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +4 -4
  50. package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +4 -4
  51. package/esm2022/lib/process/services/process-cloud.service.mjs +4 -4
  52. package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +4 -4
  53. package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +4 -4
  54. package/esm2022/lib/process-services-cloud.module.mjs +5 -5
  55. package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +4 -4
  56. package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +5 -5
  57. package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +4 -4
  58. package/esm2022/lib/services/base-cloud.service.mjs +4 -4
  59. package/esm2022/lib/services/local-preference-cloud.service.mjs +4 -4
  60. package/esm2022/lib/services/notification-cloud.service.mjs +6 -10
  61. package/esm2022/lib/services/screen-rendering.service.mjs +4 -4
  62. package/esm2022/lib/services/user-preference-cloud.service.mjs +4 -4
  63. package/esm2022/lib/services/variable-mapper.sevice.mjs +4 -4
  64. package/esm2022/lib/services/web-socket.service.mjs +4 -4
  65. package/esm2022/lib/task/services/task-cloud.service.mjs +4 -4
  66. package/esm2022/lib/task/task-cloud.module.mjs +5 -5
  67. package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +4 -4
  68. package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +4 -4
  69. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +4 -4
  70. package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +5 -7
  71. package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +4 -4
  72. package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +4 -4
  73. package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +4 -4
  74. package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +4 -4
  75. package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +4 -4
  76. package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +4 -4
  77. package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +5 -5
  78. package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +4 -4
  79. package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +4 -4
  80. package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +4 -4
  81. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +4 -4
  82. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +4 -4
  83. package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +4 -4
  84. package/esm2022/lib/task/task-form/task-form.module.mjs +5 -5
  85. package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +4 -4
  86. package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +5 -5
  87. package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +4 -4
  88. package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +4 -4
  89. package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +4 -4
  90. package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +4 -4
  91. package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +4 -4
  92. package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +5 -5
  93. package/fesm2022/adf-process-services-cloud.mjs +301 -314
  94. package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
  95. package/lib/common/date-range-filter/date-range-filter.service.d.ts +1 -1
  96. package/package.json +4 -4
@@ -99,11 +99,11 @@ export class ProcessTaskListCloudService extends BaseCloudService {
99
99
  }
100
100
  return encodeURI(finalSorting);
101
101
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessTaskListCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
103
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessTaskListCloudService, providedIn: 'root' }); }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessTaskListCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
103
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessTaskListCloudService, providedIn: 'root' }); }
104
104
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessTaskListCloudService, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessTaskListCloudService, decorators: [{
106
106
  type: Injectable,
107
107
  args: [{ providedIn: 'root' }]
108
108
  }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy10YXNrLWxpc3QtY2xvdWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcHJvY2Vzcy9wcm9jZXNzLWxpc3Qvc2VydmljZXMvcHJvY2Vzcy10YXNrLWxpc3QtY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBd0IsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLdEcsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQUM3RDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxXQUF1QyxFQUFFLFFBQWlCO1FBQ3ZFLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BELFFBQVEsR0FBRyxRQUFRLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsK0JBQStCLFdBQVcsQ0FBQyxpQkFBaUIsUUFBUSxDQUFDO1lBQ3BJLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLFdBQVcsQ0FBQyxN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RUFBRSxDQUFDO2dCQUN2RCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osWUFBWSxHQUFHLEdBQUcsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2RSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQXpGUSwyQkFBMkI7a0hBQTNCLDJCQUEyQixjQURkLE1BQU07OzJGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhc2tMaXN0UmVxdWVzdE1vZGVsLCBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQtbW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkTm9kZVBhZ2luZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1saXN0LXNvcnRpbmcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NUYXNrTGlzdENsb3VkU2VydmljZSBleHRlbmRzIEJhc2VDbG91ZFNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgdGFzayB1c2luZyBhbiBvYmplY3Qgd2l0aCBvcHRpb25hbCBxdWVyeSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3ROb2RlIFF1ZXJ5IG9iamVjdFxuICAgICAqIEBwYXJhbSBxdWVyeVVybCBRdWVyeSB1cmxcbiAgICAgKiBAcmV0dXJucyBUYXNrIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0VGFza0J5UmVxdWVzdChyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwsIHF1ZXJ5VXJsPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHJlcXVlc3ROb2RlLmFwcE5hbWUgfHwgcmVxdWVzdE5vZGUuYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHF1ZXJ5VXJsID0gcXVlcnlVcmwgfHwgYCR7dGhpcy5nZXRCYXNlUGF0aChyZXF1ZXN0Tm9kZS5hcHBOYW1lKX0vcXVlcnkvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtyZXF1ZXN0Tm9kZS5wcm9jZXNzSW5zdGFuY2VJZH0vdGFza3NgO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLmJ1aWxkUXVlcnlQYXJhbXMocmVxdWVzdE5vZGUpO1xuICAgICAgICAgICAgY29uc3Qgc29ydGluZ1BhcmFtcyA9IHRoaXMuYnVpbGRTb3J0aW5nUGFyYW0ocmVxdWVzdE5vZGUuc29ydGluZyk7XG4gICAgICAgICAgICBpZiAoc29ydGluZ1BhcmFtcykge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydzb3J0J10gPSBzb3J0aW5nUGFyYW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PFRhc2tDbG91ZE5vZGVQYWdpbmc+KHF1ZXJ5VXJsLCBxdWVyeVBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSByZXNwb25zZS5saXN0Py5lbnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGhpcyBpcyBhIGhhY2sgb2YgdGhlIG1vZGVsIGFuZCBzaG91bGQgYmUgcmV2aXNpdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5saXN0LmVudHJpZXMgPSBlbnRyaWVzLm1hcCgoZW50cnlEYXRhOiBhbnkpID0+IGVudHJ5RGF0YS5lbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcG5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdGFza3MgdXNpbmcgYW4gb2JqZWN0IHdpdGggb3B0aW9uYWwgcXVlcnkgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0Tm9kZSBRdWVyeSBvYmplY3RcbiAgICAgKiBAcGFyYW0gcXVlcnlVcmwgUXVlcnkgdXJsXG4gICAgICogQHJldHVybnMgTGlzdCBvZiB0YXNrc1xuICAgICAqL1xuICAgIGZldGNoVGFza0xpc3QocmVxdWVzdE5vZGU6IFRhc2tMaXN0UmVxdWVzdE1vZGVsLCBxdWVyeVVybD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tCeVJlcXVlc3QoXG4gICAgICAgICAgICBuZXcgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwoe1xuICAgICAgICAgICAgICAgIGFwcE5hbWU6IHJlcXVlc3ROb2RlLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHJlcXVlc3ROb2RlLnByb2Nlc3NJbnN0YW5jZUlkXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHF1ZXJ5VXJsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0VGFza0xpc3RDb3VudGVyKHJlcXVlc3ROb2RlOiBUYXNrTGlzdFJlcXVlc3RNb2RlbCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmICghcmVxdWVzdE5vZGUuYXBwTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdBcHBuYW1lIG5vdCBjb25maWd1cmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoVGFza0xpc3QocmVxdWVzdE5vZGUpLnBpcGUobWFwKCh0YXNrcykgPT4gdGFza3MubGlzdC5wYWdpbmF0aW9uLnRvdGFsSXRlbXMpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYnVpbGRRdWVyeVBhcmFtcyhyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwpOiBhbnkge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtOiBhbnkgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiByZXF1ZXN0Tm9kZSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXF1ZXN0Tm9kZSwgcHJvcGVydHkpICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuaXNFeGNsdWRlZEZpZWxkKHByb3BlcnR5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9wZXJ0eVZhbHVlVmFsaWQocmVxdWVzdE5vZGUsIHByb3BlcnR5KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbVtwcm9wZXJ0eV0gPSByZXF1ZXN0Tm9kZVtwcm9wZXJ0eV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzRXhjbHVkZWRGaWVsZChwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0eSA9PT0gJ2FwcE5hbWUnIHx8IHByb3BlcnR5ID09PSAnc29ydGluZyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzUHJvcGVydHlWYWx1ZVZhbGlkKHJlcXVlc3ROb2RlOiBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCwgcHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdE5vZGVbcHJvcGVydHldICE9PSAnJyAmJiByZXF1ZXN0Tm9kZVtwcm9wZXJ0eV0gIT09IG51bGwgJiYgcmVxdWVzdE5vZGVbcHJvcGVydHldICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGJ1aWxkU29ydGluZ1BhcmFtKG1vZGVsczogVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbFtdKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZpbmFsU29ydGluZzogc3RyaW5nID0gJyc7XG4gICAgICAgIGlmIChtb2RlbHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc29ydCBvZiBtb2RlbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbmFsU29ydGluZykge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFNvcnRpbmcgPSBgJHtzb3J0Lm9yZGVyQnl9LCR7c29ydC5kaXJlY3Rpb259YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFNvcnRpbmcgPSBgJHtmaW5hbFNvcnRpbmd9JiR7c29ydC5vcmRlckJ5fSwke3NvcnQuZGlyZWN0aW9ufWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbmNvZGVVUkkoZmluYWxTb3J0aW5nKTtcbiAgICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy10YXNrLWxpc3QtY2xvdWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcHJvY2Vzcy9wcm9jZXNzLWxpc3Qvc2VydmljZXMvcHJvY2Vzcy10YXNrLWxpc3QtY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBd0IsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLdEcsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGdCQUFnQjtJQUM3RDs7Ozs7O09BTUc7SUFDSCxnQkFBZ0IsQ0FBQyxXQUF1QyxFQUFFLFFBQWlCO1FBQ3ZFLElBQUksV0FBVyxDQUFDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BELFFBQVEsR0FBRyxRQUFRLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsK0JBQStCLFdBQVcsQ0FBQyxpQkFBaUIsUUFBUSxDQUFDO1lBQ3BJLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLFdBQVcsQ0FBQyxN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RUFBRSxDQUFDO2dCQUN2RCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osWUFBWSxHQUFHLEdBQUcsWUFBWSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2RSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXpGUSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQURkLE1BQU07OzRGQUNuQiwyQkFBMkI7a0JBRHZDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhc2tMaXN0UmVxdWVzdE1vZGVsLCBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQtbW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkTm9kZVBhZ2luZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1saXN0LXNvcnRpbmcubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3NUYXNrTGlzdENsb3VkU2VydmljZSBleHRlbmRzIEJhc2VDbG91ZFNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEZpbmRzIGEgdGFzayB1c2luZyBhbiBvYmplY3Qgd2l0aCBvcHRpb25hbCBxdWVyeSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlcXVlc3ROb2RlIFF1ZXJ5IG9iamVjdFxuICAgICAqIEBwYXJhbSBxdWVyeVVybCBRdWVyeSB1cmxcbiAgICAgKiBAcmV0dXJucyBUYXNrIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgZ2V0VGFza0J5UmVxdWVzdChyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwsIHF1ZXJ5VXJsPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKHJlcXVlc3ROb2RlLmFwcE5hbWUgfHwgcmVxdWVzdE5vZGUuYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHF1ZXJ5VXJsID0gcXVlcnlVcmwgfHwgYCR7dGhpcy5nZXRCYXNlUGF0aChyZXF1ZXN0Tm9kZS5hcHBOYW1lKX0vcXVlcnkvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtyZXF1ZXN0Tm9kZS5wcm9jZXNzSW5zdGFuY2VJZH0vdGFza3NgO1xuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLmJ1aWxkUXVlcnlQYXJhbXMocmVxdWVzdE5vZGUpO1xuICAgICAgICAgICAgY29uc3Qgc29ydGluZ1BhcmFtcyA9IHRoaXMuYnVpbGRTb3J0aW5nUGFyYW0ocmVxdWVzdE5vZGUuc29ydGluZyk7XG4gICAgICAgICAgICBpZiAoc29ydGluZ1BhcmFtcykge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zWydzb3J0J10gPSBzb3J0aW5nUGFyYW1zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0PFRhc2tDbG91ZE5vZGVQYWdpbmc+KHF1ZXJ5VXJsLCBxdWVyeVBhcmFtcykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSByZXNwb25zZS5saXN0Py5lbnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cmllcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogdGhpcyBpcyBhIGhhY2sgb2YgdGhlIG1vZGVsIGFuZCBzaG91bGQgYmUgcmV2aXNpdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5saXN0LmVudHJpZXMgPSBlbnRyaWVzLm1hcCgoZW50cnlEYXRhOiBhbnkpID0+IGVudHJ5RGF0YS5lbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcG5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdGFza3MgdXNpbmcgYW4gb2JqZWN0IHdpdGggb3B0aW9uYWwgcXVlcnkgcHJvcGVydGllcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXF1ZXN0Tm9kZSBRdWVyeSBvYmplY3RcbiAgICAgKiBAcGFyYW0gcXVlcnlVcmwgUXVlcnkgdXJsXG4gICAgICogQHJldHVybnMgTGlzdCBvZiB0YXNrc1xuICAgICAqL1xuICAgIGZldGNoVGFza0xpc3QocmVxdWVzdE5vZGU6IFRhc2tMaXN0UmVxdWVzdE1vZGVsLCBxdWVyeVVybD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tCeVJlcXVlc3QoXG4gICAgICAgICAgICBuZXcgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwoe1xuICAgICAgICAgICAgICAgIGFwcE5hbWU6IHJlcXVlc3ROb2RlLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHJlcXVlc3ROb2RlLnByb2Nlc3NJbnN0YW5jZUlkXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHF1ZXJ5VXJsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0VGFza0xpc3RDb3VudGVyKHJlcXVlc3ROb2RlOiBUYXNrTGlzdFJlcXVlc3RNb2RlbCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmICghcmVxdWVzdE5vZGUuYXBwTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdBcHBuYW1lIG5vdCBjb25maWd1cmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoVGFza0xpc3QocmVxdWVzdE5vZGUpLnBpcGUobWFwKCh0YXNrcykgPT4gdGFza3MubGlzdC5wYWdpbmF0aW9uLnRvdGFsSXRlbXMpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYnVpbGRRdWVyeVBhcmFtcyhyZXF1ZXN0Tm9kZTogVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwpOiBhbnkge1xuICAgICAgICBjb25zdCBxdWVyeVBhcmFtOiBhbnkgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiByZXF1ZXN0Tm9kZSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXF1ZXN0Tm9kZSwgcHJvcGVydHkpICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuaXNFeGNsdWRlZEZpZWxkKHByb3BlcnR5KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9wZXJ0eVZhbHVlVmFsaWQocmVxdWVzdE5vZGUsIHByb3BlcnR5KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbVtwcm9wZXJ0eV0gPSByZXF1ZXN0Tm9kZVtwcm9wZXJ0eV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzRXhjbHVkZWRGaWVsZChwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwcm9wZXJ0eSA9PT0gJ2FwcE5hbWUnIHx8IHByb3BlcnR5ID09PSAnc29ydGluZyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzUHJvcGVydHlWYWx1ZVZhbGlkKHJlcXVlc3ROb2RlOiBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCwgcHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gcmVxdWVzdE5vZGVbcHJvcGVydHldICE9PSAnJyAmJiByZXF1ZXN0Tm9kZVtwcm9wZXJ0eV0gIT09IG51bGwgJiYgcmVxdWVzdE5vZGVbcHJvcGVydHldICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGJ1aWxkU29ydGluZ1BhcmFtKG1vZGVsczogVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbFtdKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGZpbmFsU29ydGluZzogc3RyaW5nID0gJyc7XG4gICAgICAgIGlmIChtb2RlbHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc29ydCBvZiBtb2RlbHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbmFsU29ydGluZykge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFNvcnRpbmcgPSBgJHtzb3J0Lm9yZGVyQnl9LCR7c29ydC5kaXJlY3Rpb259YDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFNvcnRpbmcgPSBgJHtmaW5hbFNvcnRpbmd9JiR7c29ydC5vcmRlckJ5fSwke3NvcnQuZGlyZWN0aW9ufWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbmNvZGVVUkkoZmluYWxTb3J0aW5nKTtcbiAgICB9XG59XG4iXX0=
@@ -93,13 +93,13 @@ export class ProcessCloudService extends BaseCloudService {
93
93
  return throwError('App name and process id not configured');
94
94
  }
95
95
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
97
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessCloudService, providedIn: 'root' }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
97
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudService, providedIn: 'root' }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ProcessCloudService, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudService, decorators: [{
100
100
  type: Injectable,
101
101
  args: [{
102
102
  providedIn: 'root'
103
103
  }]
104
104
  }] });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3NlcnZpY2VzL3Byb2Nlc3MtY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFNckYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUh6RDs7UUFJSSx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztLQTRFN0Q7SUExRUc7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQUMsT0FBZSxFQUFFLGlCQUF5QjtRQUM3RCxJQUFJLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsK0JBQStCLGlCQUFpQixFQUFFLENBQUM7WUFFM0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFrQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxVQUFVLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUMsT0FBZTtRQUNqQyxJQUFJLE9BQU8sSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztZQUVyRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2SSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLE9BQWU7UUFDbEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7WUFFakUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUE0QyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLE9BQWUsRUFBRSxpQkFBeUI7UUFDcEQsSUFBSSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDRCQUE0QixpQkFBaUIsRUFBRSxDQUFDO1lBQzdGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxVQUFVLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQzs4R0E1RVEsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvY2Vzc0luc3RhbmNlQ2xvdWQgfSBmcm9tICcuLi9zdGFydC1wcm9jZXNzL21vZGVscy9wcm9jZXNzLWluc3RhbmNlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IEJhc2VDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9iYXNlLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25WZXJzaW9uTW9kZWwsIEFwcGxpY2F0aW9uVmVyc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdmVyc2lvbi5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0Nsb3VkU2VydmljZSBleHRlbmRzIEJhc2VDbG91ZFNlcnZpY2Uge1xuICAgIGRhdGFDaGFuZ2VzRGV0ZWN0ZWQgPSBuZXcgU3ViamVjdDxQcm9jZXNzSW5zdGFuY2VDbG91ZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgZGV0YWlscyBvZiBhIHByb2Nlc3MgaW5zdGFuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0luc3RhbmNlSWQgSUQgb2YgdGhlIHByb2Nlc3MgaW5zdGFuY2Ugd2hvc2UgZGV0YWlscyB5b3Ugd2FudFxuICAgICAqIEByZXR1cm5zIFByb2Nlc3MgaW5zdGFuY2UgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFByb2Nlc3NJbnN0YW5jZUJ5SWQoYXBwTmFtZTogc3RyaW5nLCBwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzSW5zdGFuY2VDbG91ZD4ge1xuICAgICAgICBpZiAoYXBwTmFtZSAmJiBwcm9jZXNzSW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQ8eyBlbnRyeTogUHJvY2Vzc0luc3RhbmNlQ2xvdWQgfT4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZXNEZXRlY3RlZC5uZXh0KHJlcy5lbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuZW50cnk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9Qcm9jZXNzSW5zdGFuY2VJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvY2VzcyBkZWZpbml0aW9ucyBhc3NvY2lhdGVkIHdpdGggYW4gYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIHByb2Nlc3MgZGVmaW5pdGlvbnNcbiAgICAgKi9cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgfHwgYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQodXJsKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5saXN0LmVudHJpZXMubWFwKChwcm9jZXNzRGVmcykgPT4gbmV3IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQocHJvY2Vzc0RlZnMuZW50cnkpKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcGxpY2F0aW9uIHZlcnNpb25zIGFzc29jaWF0ZWQgd2l0aCBhbiBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgQXBwbGljYXRpb24gVmVyc2lvbiBNb2RlbHNcbiAgICAgKi9cbiAgICBnZXRBcHBsaWNhdGlvblZlcnNpb25zKGFwcE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QXBwbGljYXRpb25WZXJzaW9uTW9kZWxbXT4ge1xuICAgICAgICBpZiAoYXBwTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvYXBwbGljYXRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHVybCkucGlwZShtYXAoKGFwcEVudGl0aWVzOiBBcHBsaWNhdGlvblZlcnNpb25SZXNwb25zZU1vZGVsKSA9PiBhcHBFbnRpdGllcy5saXN0LmVudHJpZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYW5jZWxzIGEgcHJvY2Vzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSBwcm9jZXNzSW5zdGFuY2VJZCBJZCBvZiB0aGUgcHJvY2VzcyB0byBjYW5jZWxcbiAgICAgKiBAcmV0dXJucyBPcGVyYXRpb24gSW5mb3JtYXRpb25cbiAgICAgKi9cbiAgICBjYW5jZWxQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgcHJvY2Vzc0luc3RhbmNlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKHF1ZXJ5VXJsKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlc0RldGVjdGVkLm5leHQocmVzLmVudHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5lbnRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHAgbmFtZSBhbmQgcHJvY2VzcyBpZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3NlcnZpY2VzL3Byb2Nlc3MtY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFNckYsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUh6RDs7UUFJSSx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztLQTRFN0Q7SUExRUc7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQUMsT0FBZSxFQUFFLGlCQUF5QjtRQUM3RCxJQUFJLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsK0JBQStCLGlCQUFpQixFQUFFLENBQUM7WUFFM0YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFrQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxVQUFVLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUNsRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUMsT0FBZTtRQUNqQyxJQUFJLE9BQU8sSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztZQUVyRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2SSxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLE9BQWU7UUFDbEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUM7WUFFakUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUE0QyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLE9BQWUsRUFBRSxpQkFBeUI7UUFDcEQsSUFBSSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUMvQixNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDRCQUE0QixpQkFBaUIsRUFBRSxDQUFDO1lBQzdGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxVQUFVLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQzsrR0E1RVEsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7NEZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvY2Vzc0luc3RhbmNlQ2xvdWQgfSBmcm9tICcuLi9zdGFydC1wcm9jZXNzL21vZGVscy9wcm9jZXNzLWluc3RhbmNlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IEJhc2VDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9iYXNlLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25WZXJzaW9uTW9kZWwsIEFwcGxpY2F0aW9uVmVyc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBwbGljYXRpb24tdmVyc2lvbi5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0Nsb3VkU2VydmljZSBleHRlbmRzIEJhc2VDbG91ZFNlcnZpY2Uge1xuICAgIGRhdGFDaGFuZ2VzRGV0ZWN0ZWQgPSBuZXcgU3ViamVjdDxQcm9jZXNzSW5zdGFuY2VDbG91ZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgZGV0YWlscyBvZiBhIHByb2Nlc3MgaW5zdGFuY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0luc3RhbmNlSWQgSUQgb2YgdGhlIHByb2Nlc3MgaW5zdGFuY2Ugd2hvc2UgZGV0YWlscyB5b3Ugd2FudFxuICAgICAqIEByZXR1cm5zIFByb2Nlc3MgaW5zdGFuY2UgZGV0YWlsc1xuICAgICAqL1xuICAgIGdldFByb2Nlc3NJbnN0YW5jZUJ5SWQoYXBwTmFtZTogc3RyaW5nLCBwcm9jZXNzSW5zdGFuY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzSW5zdGFuY2VDbG91ZD4ge1xuICAgICAgICBpZiAoYXBwTmFtZSAmJiBwcm9jZXNzSW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQ8eyBlbnRyeTogUHJvY2Vzc0luc3RhbmNlQ2xvdWQgfT4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZXNEZXRlY3RlZC5uZXh0KHJlcy5lbnRyeSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuZW50cnk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwTmFtZS9Qcm9jZXNzSW5zdGFuY2VJZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvY2VzcyBkZWZpbml0aW9ucyBhc3NvY2lhdGVkIHdpdGggYW4gYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIHByb2Nlc3MgZGVmaW5pdGlvbnNcbiAgICAgKi9cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvbnMoYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgfHwgYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQodXJsKS5waXBlKG1hcCgocmVzOiBhbnkpID0+IHJlcy5saXN0LmVudHJpZXMubWFwKChwcm9jZXNzRGVmcykgPT4gbmV3IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQocHJvY2Vzc0RlZnMuZW50cnkpKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0FwcE5hbWUgbm90IGNvbmZpZ3VyZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcGxpY2F0aW9uIHZlcnNpb25zIGFzc29jaWF0ZWQgd2l0aCBhbiBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgQXBwbGljYXRpb24gVmVyc2lvbiBNb2RlbHNcbiAgICAgKi9cbiAgICBnZXRBcHBsaWNhdGlvblZlcnNpb25zKGFwcE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8QXBwbGljYXRpb25WZXJzaW9uTW9kZWxbXT4ge1xuICAgICAgICBpZiAoYXBwTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcXVlcnkvdjEvYXBwbGljYXRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHVybCkucGlwZShtYXAoKGFwcEVudGl0aWVzOiBBcHBsaWNhdGlvblZlcnNpb25SZXNwb25zZU1vZGVsKSA9PiBhcHBFbnRpdGllcy5saXN0LmVudHJpZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYW5jZWxzIGEgcHJvY2Vzcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSBwcm9jZXNzSW5zdGFuY2VJZCBJZCBvZiB0aGUgcHJvY2VzcyB0byBjYW5jZWxcbiAgICAgKiBAcmV0dXJucyBPcGVyYXRpb24gSW5mb3JtYXRpb25cbiAgICAgKi9cbiAgICBjYW5jZWxQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgaWYgKGFwcE5hbWUgJiYgcHJvY2Vzc0luc3RhbmNlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5VXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKHF1ZXJ5VXJsKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlc0RldGVjdGVkLm5leHQocmVzLmVudHJ5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5lbnRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHAgbmFtZSBhbmQgcHJvY2VzcyBpZCBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -410,10 +410,10 @@ export class StartProcessCloudComponent {
410
410
  onNextTaskCheckboxCheckedChanged(event) {
411
411
  this.nextTaskCheckboxCheckedChanged.emit(event);
412
412
  }
413
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartProcessCloudComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
414
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: StartProcessCloudComponent, isStandalone: true, selector: "adf-cloud-start-process", inputs: { appName: "appName", maxNameLength: "maxNameLength", name: "name", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", showSelectProcessDropdown: "showSelectProcessDropdown", showTitle: "showTitle", showCancelButton: "showCancelButton", displayModeConfigurations: "displayModeConfigurations", showNextTaskCheckbox: "showNextTaskCheckbox", isNextTaskCheckboxChecked: "isNextTaskCheckboxChecked" }, outputs: { success: "success", cancel: "cancel", error: "error", formContentClicked: "formContentClicked", processDefinitionSelection: "processDefinitionSelection", nextTaskCheckboxCheckedChanged: "nextTaskCheckboxCheckedChanged" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [LocalizedDatePipe], viewQueries: [{ propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "startForm", first: true, predicate: ["startForm"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"adf-start-process\" *ngIf=\"processDefinitionLoaded; else spinner\">\n\n <mat-card-content>\n <mat-card-title\n *ngIf=\"showTitle\"\n class=\"adf-title\">\n {{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate}}\n </mat-card-title>\n\n <mat-card-subtitle id=\"error-message\" *ngIf=\"errorMessageId\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n\n <div *ngIf=\"!isProcessDefinitionsEmpty; else emptyProcessDefinitionsList\">\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n *ngIf=\"showSelectProcessDropdown\"\n data-automation-id=\"adf-select-cloud-process-dropdown\">\n <mat-label class=\"adf-start-process-input-label\">{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate }}</mat-label>\n <input\n matInput\n formControlName=\"processDefinition\"\n [matAutocomplete]=\"auto\"\n id=\"processDefinitionName\">\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\" >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\">\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate}}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n </div>\n <mat-error\n *ngIf=\"processDefinition.hasError('required')\"\n class=\"adf-error-pb\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n </mat-form-field>\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate}}\n </ng-container>\n\n <ng-container error>\n <span *ngIf=\"processInstanceName.hasError('required')\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n <span *ngIf=\"processInstanceName.hasError('maxlength')\" id=\"adf-start-process-maxlength-error\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxNameLength } }}\n </span>\n <span *ngIf=\"processInstanceName.hasError('pattern')\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n <ng-container *ngIf=\"hasForm else taskFormCloudButtons\">\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [showSaveButton]=\"false\"\n [showCompleteButton]=\"false\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event.outcome.name)\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n </ng-container>\n </div>\n\n </mat-card-content>\n\n</mat-card>\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n <button\n *ngIf=\"showCancelButton\"\n mat-button\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\"\n >\n {{ cancelButtonLabel }}\n </button>\n <button\n *ngIf=\"showStartProcessButton$ | async\"\n color=\"primary\"\n mat-raised-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #emptyProcessDefinitionsList>\n <mat-card-content *ngIf=\"processDefinitionLoaded\">\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase}}\n </mat-card-subtitle>\n </mat-card-content>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"adf-loading-container\">\n <mat-progress-spinner\n class=\"adf-loading\"\n color=\"primary\"\n mode=\"indeterminate\" />\n </div>\n</ng-template>\n", styles: [".adf-start-process .adf-start-process-input-label{color:var(--adf-theme-mat-grey-color-a200-dark)}.adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: InplaceFormInputComponent, selector: "adf-inplace-form-input", inputs: ["control"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i11.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i11.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i12.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showNextTaskCheckbox", "isNextTaskCheckboxChecked", "showCompleteButton"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "formContentClicked", "displayModeOn", "displayModeOff", "nextTaskCheckboxCheckedChanged"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }], encapsulation: i0.ViewEncapsulation.None }); }
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartProcessCloudComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
414
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StartProcessCloudComponent, isStandalone: true, selector: "adf-cloud-start-process", inputs: { appName: "appName", maxNameLength: "maxNameLength", name: "name", processDefinitionName: "processDefinitionName", variables: "variables", values: "values", showSelectProcessDropdown: "showSelectProcessDropdown", showTitle: "showTitle", showCancelButton: "showCancelButton", displayModeConfigurations: "displayModeConfigurations", showNextTaskCheckbox: "showNextTaskCheckbox", isNextTaskCheckboxChecked: "isNextTaskCheckboxChecked" }, outputs: { success: "success", cancel: "cancel", error: "error", formContentClicked: "formContentClicked", processDefinitionSelection: "processDefinitionSelection", nextTaskCheckboxCheckedChanged: "nextTaskCheckboxCheckedChanged" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, providers: [LocalizedDatePipe], viewQueries: [{ propertyName: "inputAutocomplete", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "startForm", first: true, predicate: ["startForm"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-card appearance=\"outlined\" class=\"adf-start-process\" *ngIf=\"processDefinitionLoaded; else spinner\">\n\n <mat-card-content>\n <mat-card-title\n *ngIf=\"showTitle\"\n class=\"adf-title\">\n {{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.TITLE' | translate}}\n </mat-card-title>\n\n <mat-card-subtitle id=\"error-message\" *ngIf=\"errorMessageId\">\n {{ errorMessageId | translate }}\n </mat-card-subtitle>\n\n <div *ngIf=\"!isProcessDefinitionsEmpty; else emptyProcessDefinitionsList\">\n <form [formGroup]=\"processForm\" class=\"adf-select-process-form\">\n <mat-form-field\n class=\"adf-process-input-container\"\n floatLabel=\"always\"\n *ngIf=\"showSelectProcessDropdown\"\n data-automation-id=\"adf-select-cloud-process-dropdown\">\n <mat-label class=\"adf-start-process-input-label\">{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.TYPE' | translate }}</mat-label>\n <input\n matInput\n formControlName=\"processDefinition\"\n [matAutocomplete]=\"auto\"\n id=\"processDefinitionName\">\n <div class=\"adf-process-input-autocomplete\">\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n id=\"processDefinitionOptions\"\n [displayWith]=\"displayProcessNameOnDropdown\"\n (optionSelected)=\"setProcessDefinitionOnForm($event.option.value)\" >\n <mat-option\n *ngFor=\"let processDef of filteredProcesses\"\n [value]=\"getProcessDefinitionValue(processDef)\"\n (click)=\"processDefinitionSelectionChanged(processDef)\">\n {{ getProcessDefinitionValue(processDef) }}\n </mat-option>\n </mat-autocomplete>\n <button\n id=\"adf-select-process-dropdown\"\n title=\"{{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.SELECT_PROCESS_DROPDOWN' | translate}}\"\n mat-icon-button\n (click)=\"displayDropdown($event)\">\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n </div>\n <mat-error\n *ngIf=\"processDefinition.hasError('required')\"\n class=\"adf-error-pb\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_DEFINITION_REQUIRED' | translate }}\n </mat-error>\n </mat-form-field>\n\n <adf-inplace-form-input [control]=\"processInstanceName\">\n <ng-container label>\n {{'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.FORM.LABEL.NAME' | translate}}\n </ng-container>\n\n <ng-container error>\n <span *ngIf=\"processInstanceName.hasError('required')\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.PROCESS_NAME_REQUIRED' | translate }}\n </span>\n <span *ngIf=\"processInstanceName.hasError('maxlength')\" id=\"adf-start-process-maxlength-error\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxNameLength } }}\n </span>\n <span *ngIf=\"processInstanceName.hasError('pattern')\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}\n </span>\n </ng-container>\n </adf-inplace-form-input>\n </form>\n\n <ng-container *ngIf=\"hasForm else taskFormCloudButtons\">\n <adf-cloud-form\n #startForm\n [appName]=\"appName\"\n [appVersion]=\"processDefinitionCurrent.appVersion\"\n [data]=\"resolvedValues\"\n [formId]=\"processDefinitionCurrent.formKey\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n [showSaveButton]=\"false\"\n [showCompleteButton]=\"false\"\n [showRefreshButton]=\"false\"\n [showValidationIcon]=\"false\"\n [showTitle]=\"false\"\n [showNextTaskCheckbox]=\"showNextTaskCheckbox\"\n [isNextTaskCheckboxChecked]=\"isNextTaskCheckboxChecked\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (formLoaded)=\"onFormLoaded($event)\"\n (executeOutcome)=\"onCustomOutcomeClicked($event.outcome.name)\"\n (nextTaskCheckboxCheckedChanged)=\"onNextTaskCheckboxCheckedChanged($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <ng-template [ngTemplateOutlet]=\"taskFormCloudButtons\" />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n </ng-container>\n </div>\n\n </mat-card-content>\n\n</mat-card>\n\n<ng-template #taskFormCloudButtons>\n <div class=\"adf-start-process-cloud-actions\">\n <button\n *ngIf=\"showCancelButton\"\n mat-button\n (click)=\"cancelStartProcess()\"\n id=\"cancel_process\"\n >\n {{ cancelButtonLabel }}\n </button>\n <button\n *ngIf=\"showStartProcessButton$ | async\"\n color=\"primary\"\n mat-raised-button\n [disabled]=\"disableStartButton || !isProcessFormValid\"\n (click)=\"startProcess()\"\n data-automation-id=\"btn-start\"\n id=\"button-start\"\n class=\"adf-btn-start\"\n >\n {{ startProcessButtonLabel }}\n </button>\n </div>\n</ng-template>\n\n<ng-template #emptyProcessDefinitionsList>\n <mat-card-content *ngIf=\"processDefinitionLoaded\">\n <mat-card-subtitle class=\"error-message\" id=\"no-process-message\">\n {{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.NO_PROCESS_DEFINITIONS' | translate | uppercase}}\n </mat-card-subtitle>\n </mat-card-content>\n</ng-template>\n\n<ng-template #spinner>\n <div class=\"adf-loading-container\">\n <mat-progress-spinner\n class=\"adf-loading\"\n color=\"primary\"\n mode=\"indeterminate\" />\n </div>\n</ng-template>\n", styles: [".adf-start-process .adf-start-process-input-label{color:var(--adf-theme-mat-grey-color-a200-dark)}.adf-start-process-cloud-actions{display:flex;justify-content:flex-end}.adf-select-process-form{display:flex;flex-direction:column}.adf-title{padding-bottom:1.25em}.adf-process-input-container{margin:0 7px}.adf-process-input-autocomplete{display:flex}.adf-process-input-autocomplete button{position:absolute;right:-14px;top:0}.adf-form-container .adf-form-container-card:has(.adf-form-container-card-content){box-shadow:none;padding:0}.adf-start-form-actions{text-align:right}.adf-loading{margin:auto}.adf-loading-container{min-height:300px;display:flex;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i5.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: InplaceFormInputComponent, selector: "adf-inplace-form-input", inputs: ["control"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i11.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i11.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i12.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations", "showNextTaskCheckbox", "isNextTaskCheckboxChecked", "showCompleteButton"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "formContentClicked", "displayModeOn", "displayModeOff", "nextTaskCheckboxCheckedChanged"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }], encapsulation: i0.ViewEncapsulation.None }); }
415
415
  }
416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartProcessCloudComponent, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartProcessCloudComponent, decorators: [{
417
417
  type: Component,
418
418
  args: [{ selector: 'adf-cloud-start-process', standalone: true, imports: [
419
419
  CommonModule,
@@ -476,4 +476,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
476
476
  type: HostListener,
477
477
  args: ['keydown', ['$event']]
478
478
  }] } });
479
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtcHJvY2Vzcy1jbG91ZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Byb2Nlc3Mvc3RhcnQtcHJvY2Vzcy9jb21wb25lbnRzL3N0YXJ0LXByb2Nlc3MtY2xvdWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3N0YXJ0LXByb2Nlc3MvY29tcG9uZW50cy9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFB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RDdCLE1BQU07Z0JBMkdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXG4gICAgQ29udGVudExpbmtNb2RlbCxcbiAgICBGb3JtTW9kZWwsXG4gICAgSW5wbGFjZUZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBMb2NhbGl6ZWREYXRlUGlwZSxcbiAgICBUcmFuc2xhdGlvblNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9jZXNzSW5zdGFuY2VDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLWluc3RhbmNlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFByb2Nlc3NQYXlsb2FkQ2xvdWQgfSBmcm9tICcuLi9tb2RlbHMvcHJvY2Vzcy1wYXlsb2FkLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFByb2Nlc3NXaXRoRm9ybVBheWxvYWRDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLXdpdGgtZm9ybS1wYXlsb2FkLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0YXJ0LXByb2Nlc3MtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9mb3JtL21vZGVscy90YXNrLXZhcmlhYmxlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZ2V0VGltZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvZm9ybS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUN1c3RvbU91dGNvbWVzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZm9ybS9jb21wb25lbnRzL2Zvcm0tY2xvdWQtY3VzdG9tLW91dGNvbWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmNvbnN0IE1BWF9OQU1FX0xFTkdUSDogbnVtYmVyID0gMjU1O1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX0RFQk9VTkNFOiBudW1iZXIgPSAzMDA7XG5jb25zdCBEQVRFX1RJTUVfSURFTlRJRklFUl9SRUdfRVhQID0gbmV3IFJlZ0V4cCgnJXtkYXRldGltZX0nLCAnaScpO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX0lERU5USUZJRVJfUkVHX0VYUCA9IG5ldyBSZWdFeHAoJyV7cHJvY2Vzc2RlZmluaXRpb259JywgJ2knKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtc3RhcnQtcHJvY2VzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgSW5wbGFjZUZvcm1JbnB1dENvbXBvbmVudCxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGb3JtQ2xvdWRDb21wb25lbnQsXG4gICAgICAgIEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbTG9jYWxpemVkRGF0ZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdGFydFByb2Nlc3NDbG91ZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXG4gICAgaW5wdXRBdXRvY29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG5cbiAgICBAVmlld0NoaWxkKCdzdGFydEZvcm0nKSBzdGFydEZvcm06IEZvcm1DbG91ZENvbXBvbmVudDtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBwcm9jZXNzIG5hbWUuICovXG4gICAgQElucHV0KClcbiAgICBtYXhOYW1lTGVuZ3RoOiBudW1iZXIgPSBNQVhfTkFNRV9MRU5HVEg7XG5cbiAgICAvKiogTmFtZSBvZiB0aGUgcHJvY2Vzcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIHByb2Nlc3MgZGVmaW5pdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFZhcmlhYmxlcyB0byBhdHRhY2ggdG8gdGhlIHBheWxvYWQuICovXG4gICAgQElucHV0KClcbiAgICB2YXJpYWJsZXM6IGFueTtcblxuICAgIC8qKiBQYXJhbWV0ZXIgdG8gcGFzcyBmb3JtIGZpZWxkIHZhbHVlcyBpbiB0aGUgc3RhcnQgZm9ybSBpZiBvbmUgaXMgYXNzb2NpYXRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlczogVGFza1ZhcmlhYmxlQ2xvdWRbXTtcblxuICAgIC8qKiBTaG93L2hpZGUgdGhlIHByb2Nlc3MgZHJvcGRvd24gbGlzdC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dTZWxlY3RQcm9jZXNzRHJvcGRvd246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNob3cvaGlkZSB0aXRsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUaXRsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogU2hvdy9oaWRlIGNhbmNlbCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdmFpbGFibGUgZGlzcGxheSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGZvcm0uXG4gICAgICogKHN0YXJ0IHByb2Nlc3MgZXZlbnQgY2FuIGhhdmUgYXNzaWduZWQgZm9ybSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnM6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3guICovXG4gICAgQElucHV0KClcbiAgICBzaG93TmV4dFRhc2tDaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3ggaXMgY2hlY2tlZCBieSBkZWZhdWx0IG9yIG5vdC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTmV4dFRhc2tDaGVja2JveENoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHByb2Nlc3MgaXMgc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzdGFydGluZyBwcm9jZXNzIGlzIGNhbmNlbGxlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBmb3JtIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDb250ZW50TGlua01vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gcHJvY2VzcyBkZWZpbml0aW9uIHNlbGVjdGlvbiBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8UHJvY2Vzc0RlZmluaXRpb25DbG91ZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBgT3BlbiBuZXh0IHRhc2tgIGNoZWNrYm94IHdhcyB0b2dnbGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0Q2hlY2tib3hDaGFuZ2U+KCk7XG5cbiAgICBwcm9jZXNzRGVmaW5pdGlvbkxpc3Q6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWRbXSA9IFtdO1xuICAgIHByb2Nlc3NEZWZpbml0aW9uQ3VycmVudD86IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ7XG4gICAgZXJyb3JNZXNzYWdlSWQ6IHN0cmluZyA9ICcnO1xuICAgIHByb2Nlc3NQYXlsb2FkQ2xvdWQgPSBuZXcgUHJvY2Vzc1BheWxvYWRDbG91ZCgpO1xuICAgIGZpbHRlcmVkUHJvY2Vzc2VzOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10gPSBbXTtcbiAgICBzdGF0aWNNYXBwaW5nczogVGFza1ZhcmlhYmxlQ2xvdWRbXSA9IFtdO1xuICAgIHJlc29sdmVkVmFsdWVzPzogVGFza1ZhcmlhYmxlQ2xvdWRbXTtcbiAgICBjdXN0b21PdXRjb21lOiBzdHJpbmc7XG5cbiAgICBpc1Byb2Nlc3NTdGFydGluZyA9IGZhbHNlO1xuICAgIGlzRm9ybUNsb3VkTG9hZGVkID0gZmFsc2U7XG4gICAgaXNGb3JtQ2xvdWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJvY2Vzc0RlZmluaXRpb25Mb2FkZWQgPSBmYWxzZTtcblxuICAgIHNob3dTdGFydFByb2Nlc3NCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHN0YXJ0UHJvY2Vzc0J1dHRvbkxhYmVsOiBzdHJpbmc7XG4gICAgY2FuY2VsQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICAgIGZvcm1DbG91ZD86IEZvcm1Nb2RlbDtcbiAgICBwcm9jZXNzRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwcm9jZXNzSW5zdGFuY2VOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmdldE1heE5hbWVMZW5ndGgoKSksXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bXlxcXFxzXSsoXFxcXHMrW15cXFxcc10rKSokJylcbiAgICAgICAgXSksXG4gICAgICAgIHByb2Nlc3NEZWZpbml0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZVZhbGlkYXRvcigpXSlcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChTdGFydFByb2Nlc3NDbG91ZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemVkRGF0ZVBpcGUgPSBpbmplY3QoTG9jYWxpemVkRGF0ZVBpcGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVN0YXJ0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc1Zpc2libGVPdXRjb21lc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuXG4gICAgZ2V0IGlzUHJvY2Vzc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzRm9ybSAmJiB0aGlzLmlzRm9ybUNsb3VkTG9hZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZm9ybUNsb3VkID8gIU9iamVjdC5rZXlzKHRoaXMuZm9ybUNsb3VkLnZhbHVlcykubGVuZ3RoIDogZmFsc2UpIHx8IHRoaXMuZm9ybUNsb3VkPy5pc1ZhbGlkIHx8IHRoaXMuaXNQcm9jZXNzU3RhcnRpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRm9ybS52YWxpZCB8fCB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVTdGFydEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmFwcE5hbWUgfHwgIXRoaXMucHJvY2Vzc0RlZmluaXRpb24udmFsaWQgfHwgdGhpcy5pc1Byb2Nlc3NTdGFydGluZyB8fCB0aGlzLmlzRm9ybUNsb3VkTG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgaXNQcm9jZXNzRGVmaW5pdGlvbnNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IHByb2Nlc3NJbnN0YW5jZU5hbWUoKTogRm9ybUNvbnRyb2w8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NGb3JtLmNvbnRyb2xzLnByb2Nlc3NJbnN0YW5jZU5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IHByb2Nlc3NEZWZpbml0aW9uKCk6IEZvcm1Db250cm9sPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRm9ybS5jb250cm9scy5wcm9jZXNzRGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgaGFzRm9ybSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQ/LmZvcm1LZXk7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRk9STS5BQ1RJT04uU1RBUlQnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0Q2FuY2VsUHJvY2Vzc0J1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLkFDVElPTi5DQU5DRUwnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgPSB0aGlzLmRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25MYWJlbCA9IHRoaXMuZGVmYXVsdENhbmNlbFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb24udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoUFJPQ0VTU19ERUZJTklUSU9OX0RFQk9VTkNFKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25OYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RQcm9jZXNzRGVmaW5pdGlvbkJ5UHJvY2Vzc0RlZmluaXRpb25OYW1lKHByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRQcm9jZXNzQnV0dG9uJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGlzcGxheVN0YXJ0U3ViamVjdCwgdGhpcy5oYXNWaXNpYmxlT3V0Y29tZXNTdWJqZWN0XSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Rpc3BsYXlTdGFydCwgaGFzVmlzaWJsZU91dGNvbWVzXSkgPT4gKGRpc3BsYXlTdGFydCAhPT0gbnVsbCA/IGRpc3BsYXlTdGFydCA9PT0gJ3RydWUnIDogIWhhc1Zpc2libGVPdXRjb21lcykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snYXBwTmFtZSddICYmIGNoYW5nZXNbJ2FwcE5hbWUnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2FwcE5hbWUnXS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmFwcE5hbWUgPSBjaGFuZ2VzWydhcHBOYW1lJ10uY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hcHBOYW1lIHx8IHRoaXMuYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWyd2YWx1ZXMnXSAmJiBjaGFuZ2VzWyd2YWx1ZXMnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZhbHVlcyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRWYWx1ZXMgPSB0aGlzLnN0YXRpY01hcHBpbmdzLmNvbmNhdCh0aGlzLnZhbHVlcyB8fCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25Gb3JtTG9hZGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmlzRm9ybUNsb3VkTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb3JtQ2xvdWQgPSBmb3JtO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0Rm9ybSkge1xuICAgICAgICAgICAgdGhpcy5oYXNWaXNpYmxlT3V0Y29tZXNTdWJqZWN0Lm5leHQodGhpcy5zdGFydEZvcm0uaGFzVmlzaWJsZU91dGNvbWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF4TmFtZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhOYW1lTGVuZ3RoID4gTUFYX05BTUVfTEVOR1RIID8gTUFYX05BTUVfTEVOR1RIIDogdGhpcy5tYXhOYW1lTGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0UHJvY2Vzc0RlZmluaXRpb25CeVByb2Nlc3NEZWZpbml0aW9uTmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzID0gdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbkxpc3RCeU5hbWVPcktleShwcm9jZXNzRGVmaW5pdGlvbk5hbWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc0Zvcm1WYWxpZCAmJiB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzICYmIHRoaXMuZmlsdGVyZWRQcm9jZXNzZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKHRoaXMuZmlsdGVyZWRQcm9jZXNzZXNbMF0ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQcm9jZXNzRGVmaW5pdGlvbk9uRm9ybShzZWxlY3RlZFByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaXNGb3JtQ2xvdWRMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc0RlZmluaXRpb25DdXJyZW50ID0gdGhpcy5maWx0ZXJlZFByb2Nlc3Nlcy5maW5kKFxuICAgICAgICAgICAgKHByb2Nlc3M6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpID0+IHByb2Nlc3MubmFtZSA9PT0gc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUgfHwgcHJvY2Vzcy5rZXkgPT09IHNlbGVjdGVkUHJvY2Vzc0RlZmluaXRpb25OYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9ya0pvaW4oW1xuICAgICAgICAgICAgdGhpcy5zdGFydFByb2Nlc3NDbG91ZFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0U3RhcnRFdmVudEZvcm1TdGF0aWNWYWx1ZXNNYXBwaW5nKHRoaXMuYXBwTmFtZSwgcHJvY2Vzc0RlZmluaXRpb25DdXJyZW50LmlkKVxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgVGFza1ZhcmlhYmxlQ2xvdWRbXSkpKSxcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQ2xvdWRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFN0YXJ0RXZlbnRDb25zdGFudHModGhpcy5hcHBOYW1lLCBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQuaWQpXG4gICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihbXSBhcyBUYXNrVmFyaWFibGVDbG91ZFtdKSkpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3N0YXRpY01hcHBpbmdzLCBjb25zdGFudHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRpY01hcHBpbmdzID0gc3RhdGljTWFwcGluZ3M7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkVmFsdWVzID0gdGhpcy5zdGF0aWNNYXBwaW5ncy5jb25jYXQodGhpcy52YWx1ZXMgfHwgW10pO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQgPSBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQ7XG4gICAgICAgICAgICB0aGlzLmlzRm9ybUNsb3VkTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U3RhcnQgPSBjb25zdGFudHM/LmZpbmQoKGNvbnN0YW50KSA9PiBjb25zdGFudC5uYW1lID09PSAnc3RhcnRFbmFibGVkJyk7XG4gICAgICAgICAgICBjb25zdCBzdGFydExhYmVsID0gY29uc3RhbnRzPy5maW5kKChjb25zdGFudCkgPT4gY29uc3RhbnQubmFtZSA9PT0gJ3N0YXJ0TGFiZWwnKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUNhbmNlbCA9IGNvbnN0YW50cz8uZmluZCgoY29uc3RhbnQpID0+IGNvbnN0YW50Lm5hbWUgPT09ICdjYW5jZWxFbmFibGVkJyk7XG4gICAgICAgICAgICBjb25zdCBjYW5jZWxMYWJlbCA9IGNvbnN0YW50cz8uZmluZCgoY29uc3RhbnQpID0+IGNvbnN0YW50Lm5hbWUgPT09ICdjYW5jZWxMYWJlbCcpO1xuXG4gICAgICAgICAgICBpZiAoZGlzcGxheVN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5U3RhcnRTdWJqZWN0Lm5leHQoZGlzcGxheVN0YXJ0Py52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhcnRMYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgPSBzdGFydExhYmVsPy52YWx1ZT8udHJpbSgpPy5sZW5ndGggPiAwID8gc3RhcnRMYWJlbC52YWx1ZS50cmltKCkgOiB0aGlzLmRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlDYW5jZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dDYW5jZWxCdXR0b24gPSBkaXNwbGF5Q2FuY2VsPy52YWx1ZSA9PT0gJ3RydWUnICYmIHRoaXMuc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxMYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQnV0dG9uTGFiZWwgPSBjYW5jZWxMYWJlbD8udmFsdWU/LnRyaW0oKT8ubGVuZ3RoID4gMCA/IGNhbmNlbExhYmVsLnZhbHVlLnRyaW0oKSA6IHRoaXMuZGVmYXVsdENhbmNlbFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pc0Zvcm1DbG91ZExvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQua2V5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc0RlZmluaXRpb25MaXN0QnlOYW1lT3JLZXkocHJvY2Vzc0RlZmluaXRpb25OYW1lOiBzdHJpbmcpOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QuZmlsdGVyKFxuICAgICAgICAgICAgKHByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpID0+ICFwcm9jZXNzRGVmaW5pdGlvbk5hbWUgfHwgdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbihwcm9jZXNzRGVmaW5pdGlvbkNsb3VkLCBwcm9jZXNzRGVmaW5pdGlvbk5hbWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzSWZFeGlzdHMocHJvY2Vzc0RlZmluaXRpb246IHN0cmluZyk6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQge1xuICAgICAgICBsZXQgbWF0Y2hlZFByb2Nlc3MgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdC5maW5kKChvcHRpb24pID0+IHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb24ob3B0aW9uLCBwcm9jZXNzRGVmaW5pdGlvbikpO1xuICAgICAgICBpZiAoIW1hdGNoZWRQcm9jZXNzKSB7XG4gICAgICAgICAgICBtYXRjaGVkUHJvY2VzcyA9IG5ldyBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZFByb2Nlc3M7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzRGVmaW5pdGlvbkJ5TmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQge1xuICAgICAgICBjb25zdCBtYXRjaGVkUHJvY2VzcyA9IHByb2Nlc3NEZWZpbml0aW9uTmFtZSA/IHRoaXMuZ2V0UHJvY2Vzc0lmRXhpc3RzKHByb2Nlc3NEZWZpbml0aW9uTmFtZSkgOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdFswXTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRQcm9jZXNzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0RGVmYXVsdFByb2Nlc3NEZWZpbml0aW9uKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2Nlc3MgPSB0aGlzLmdldFByb2Nlc3NEZWZpbml0aW9uQnlOYW1lKHRoaXMucHJvY2Vzc0RlZmluaXRpb25OYW1lKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZShzZWxlY3RlZFByb2Nlc3MubmFtZSk7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uQ2hhbmdlZChzZWxlY3RlZFByb2Nlc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvbnMoKSB7XG4gICAgICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2UoKTtcblxuICAgICAgICB0aGlzLnN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZVxuICAgICAgICAgICAgLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHByb2Nlc3NEZWZpbml0aW9uUmVwcmVzZW50YXRpb25zOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QgPSBwcm9jZXNzRGVmaW5pdGlvblJlcHJlc2VudGF0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NEZWZpbml0aW9uUmVwcmVzZW50YXRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REZWZhdWx0UHJvY2Vzc0RlZmluaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NEZWZpbml0aW9uID0gdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QuZmluZCgocHJvY2VzcykgPT4gcHJvY2Vzcy5uYW1lID09PSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzID0gdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbkxpc3RCeU5hbWVPcktleShwcm9jZXNzRGVmaW5pdGlvbi5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKHByb2Nlc3NEZWZpbml0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25TZWxlY3Rpb25DaGFuZ2VkKHByb2Nlc3NEZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25Mb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZUlkID0gJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuTE9BRF9QUk9DRVNTX0RFRlMnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhbmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQsIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5pc1ZhbGlkTmFtZShwcm9jZXNzRGVmaW5pdGlvbkNsb3VkLm5hbWUpICYmXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25DbG91ZC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocHJvY2Vzc0RlZmluaXRpb25OYW1lLnRvTG93ZXJDYXNlKCkpKSB8fFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25DbG91ZC5rZXk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocHJvY2Vzc0RlZmluaXRpb25OYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYnVpbGRQcm9jZXNzQ2xvdWRQYXlsb2FkKCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQubmFtZSA9IHRoaXMucHJvY2Vzc0luc3RhbmNlTmFtZS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVzKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzID0gdGhpcy52YXJpYWJsZXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oYXNGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzID0gT2JqZWN0LmFzc2lnbih0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzLCB0aGlzLmZvcm1DbG91ZC52YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DdXN0b21PdXRjb21lQ2xpY2tlZChvdXRjb21lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21PdXRjb21lID0gb3V0Y29tZTtcbiAgICAgICAgdGhpcy5zdGFydFByb2Nlc3MoKTtcbiAgICB9XG5cbiAgICBzdGFydFByb2Nlc3NXaXRob3V0Q29uZmlybWF0aW9uKCkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmhhc0Zvcm1cbiAgICAgICAgICAgID8gdGhpcy5zdGFydFByb2Nlc3NDbG91ZFNlcnZpY2Uuc3RhcnRQcm9jZXNzV2l0aEZvcm0oXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5mb3JtS2V5LFxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQudmVyc2lvbixcbiAgICAgICAgICAgICAgICAgIG5ldyBQcm9jZXNzV2l0aEZvcm1QYXlsb2FkQ2xvdWQoe1xuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NOYW1lOiB0aGlzLnByb2Nlc3NJbnN0YW5jZU5hbWUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHRoaXMucHJvY2Vzc1BheWxvYWRDbG91ZC5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHRoaXMudmFyaWFibGVzID8/IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogdGhpcy5mb3JtQ2xvdWQudmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgIG91dGNvbWU6IHRoaXMuY3VzdG9tT3V0Y29tZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB0aGlzLnN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZS5zdGFydFByb2Nlc3MoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgICBuZXcgUHJvY2Vzc1BheWxvYWRDbG91ZCh7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5wcm9jZXNzSW5zdGFuY2VOYW1lLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5OiB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB0aGlzLnZhcmlhYmxlcyA/PyB7fVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICBhY3Rpb24uc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdChyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzU3RhcnRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlSWQgPSAnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5FUlJPUi5TVEFSVCc7XG4gICAgICAgICAgICAgICAgdGhpcy51bmlmeUVycm9yUmVzcG9uc2UoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXJ0UHJvY2VzcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1DbG91ZD8uY29uZmlybU1lc3NhZ2U/LnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzV2l0aG91dENvbmZpcm1hdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLmZvcm1DbG91ZC5jb25maXJtTWVzc2FnZS5tZXNzYWdlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzQ1MHB4J1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UHJvY2Vzc1dpdGhvdXRDb25maXJtYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5pZnlFcnJvclJlc3BvbnNlKGVycjogYW55KSB7XG4gICAgICAgIGlmICghZXJyPy5yZXNwb25zZT8uYm9keT8uZW50cnkgJiYgZXJyPy5yZXNwb25zZT8uYm9keT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgZXJyLnJlc3BvbnNlLmJvZHkgPSB7XG4gICAgICAgICAgICAgICAgZW50cnk6IEpTT04ucGFyc2UoZXJyLnJlc3BvbnNlLmJvZHkubWVzc2FnZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWxTdGFydFByb2Nlc3MoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZUlkID0gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFByb2Nlc3NEZWZpbml0aW9uTGlzdCgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRQcm9jZXNzZXMgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdDtcbiAgICB9XG5cbiAgICBkaXNwbGF5UHJvY2Vzc05hbWVPbkRyb3Bkb3duKHByb2Nlc3M6IGFueSkge1xuICAgICAgICBpZiAocHJvY2Vzcykge1xuICAgICAgICAgICAgbGV0IHByb2Nlc3NOYW1lID0gcHJvY2VzcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzTmFtZSA9IHByb2Nlc3MubmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9jZXNzTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3BsYXlEcm9wZG93bihldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0QXV0b2NvbXBsZXRlLnBhbmVsT3Blbikge1xuICAgICAgICAgICAgdGhpcy5yZXNldFByb2Nlc3NEZWZpbml0aW9uTGlzdCgpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEF1dG9jb21wbGV0ZS5vcGVuUGFuZWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRBdXRvY29tcGxldGUuY2xvc2VQYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbkZpZWxkVmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICAgICAgbGV0IHByb2Nlc3NEZWZpbml0aW9uTmFtZUVycm9yID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzRGVmaW5pdGlvbkZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbiA9IHRoaXMuZ2V0UHJvY2Vzc0lmRXhpc3RzKHByb2Nlc3NEZWZpbml0aW9uRmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzRGVmaW5pdGlvbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NEZWZpbml0aW9uTmFtZUVycm9yID8geyAnaW52YWxpZCBuYW1lJzogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvblZhbHVlKHByb2Nlc3M6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5uYW1lID8gcHJvY2Vzcy5uYW1lIDogcHJvY2Vzcy5rZXk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29udGVudENsaWNrZWQoY29udGVudDogQ29udGVudExpbmtNb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1Db250ZW50Q2xpY2tlZC5lbWl0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIHByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uQ2hhbmdlZChwcm9jZXNzRGVmaW5pdGlvbjogUHJvY2Vzc0RlZmluaXRpb25DbG91ZCkge1xuICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFByb2Nlc3NOYW1lKHByb2Nlc3NEZWZpbml0aW9uLm5hbWUpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblNlbGVjdGlvbi5lbWl0KHByb2Nlc3NEZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERlZmF1bHRQcm9jZXNzTmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9jZXNzSW5zdGFuY2VEZXRhaWxzOiBQcm9jZXNzSW5zdGFuY2VDbG91ZCA9IHsgcHJvY2Vzc0RlZmluaXRpb25OYW1lIH07XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcm9jZXNzTmFtZSA9IHRoaXMuZ2V0RGVmYXVsdFByb2Nlc3NOYW1lKHRoaXMubmFtZSwgcHJvY2Vzc0luc3RhbmNlRGV0YWlscyk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0luc3RhbmNlTmFtZS5zZXRWYWx1ZShkZWZhdWx0UHJvY2Vzc05hbWUpO1xuICAgICAgICB0aGlzLnByb2Nlc3NJbnN0YW5jZU5hbWUubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5zdGFuY2VOYW1lLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXREZWZhdWx0UHJvY2Vzc05hbWUocHJvY2Vzc05hbWVGb3JtYXQ6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlPzogUHJvY2Vzc0luc3RhbmNlQ2xvdWQpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcHJvY2Vzc05hbWUgPSBwcm9jZXNzTmFtZUZvcm1hdDtcbiAgICAgICAgaWYgKHByb2Nlc3NOYW1lLm1hdGNoKERBVEVfVElNRV9JREVOVElGSUVSX1JFR19FWFApKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVzZW50RGF0ZVRpbWUgPSBnZXRUaW1lKG5ldyBEYXRlKCkpO1xuICAgICAgICAgICAgcHJvY2Vzc05hbWUgPSBwcm9jZXNzTmFtZS5yZXBsYWNlKERBVEVfVElNRV9JREVOVElGSUVSX1JFR19FWFAsIHRoaXMubG9jYWxpemVkRGF0ZVBpcGUudHJhbnNmb3JtKHByZXNlbnREYXRlVGltZSwgJ21lZGl1bScpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9jZXNzTmFtZS5tYXRjaChQUk9DRVNTX0RFRklOSVRJT05fSURFTlRJRklFUl9SRUdfRVhQKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUgPSBwcm9jZXNzSW5zdGFuY2UgPyBwcm9jZXNzSW5zdGFuY2UucHJvY2Vzc0RlZmluaXRpb25OYW1lIDogJyc7XG4gICAgICAgICAgICBwcm9jZXNzTmFtZSA9IHByb2Nlc3NOYW1lLnJlcGxhY2UoUFJPQ0VTU19ERUZJTklUSU9OX0lERU5USUZJRVJfUkVHX0VYUCwgc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9jZXNzTmFtZTtcbiAgICB9XG5cbiAgICBvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5uZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYWRmLXN0YXJ0LXByb2Nlc3NcIiAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uTG9hZGVkOyBlbHNlIHNwaW5uZXJcIj5cblxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bWF0LWNhcmQtdGl0bGVcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd1RpdGxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3snQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLlRJVExFJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlIGlkPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlSWRcIj5cbiAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZUlkIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Byb2Nlc3NEZWZpbml0aW9uc0VtcHR5OyBlbHNlIGVtcHR5UHJvY2Vzc0RlZmluaXRpb25zTGlzdFwiPlxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwcm9jZXNzRm9ybVwiIGNsYXNzPVwiYWRmLXNlbGVjdC1wcm9jZXNzLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvY2Vzcy1pbnB1dC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2VsZWN0UHJvY2Vzc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNlbGVjdC1jbG91ZC1wcm9jZXNzLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLXN0YXJ0LXByb2Nlc3MtaW5wdXQtbGFiZWxcIj57eyAnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLkxBQkVMLlRZUEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2Nlc3NEZWZpbml0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJvY2Vzc0RlZmluaXRpb25OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXByb2Nlc3MtaW5wdXQtYXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInByb2Nlc3NEZWZpbml0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5UHJvY2Vzc05hbWVPbkRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKCRldmVudC5vcHRpb24udmFsdWUpXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RlZiBvZiBmaWx0ZXJlZFByb2Nlc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFByb2Nlc3NEZWZpbml0aW9uVmFsdWUocHJvY2Vzc0RlZilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcm9jZXNzRGVmaW5pdGlvblNlbGVjdGlvbkNoYW5nZWQocHJvY2Vzc0RlZilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0UHJvY2Vzc0RlZmluaXRpb25WYWx1ZShwcm9jZXNzRGVmKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLXNlbGVjdC1wcm9jZXNzLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eydBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkZPUk0uU0VMRUNUX1BST0NFU1NfRFJPUERPV04nIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlEcm9wZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0RlZmluaXRpb24uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWVycm9yLXBiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkVSUk9SLlBST0NFU1NfREVGSU5JVElPTl9SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8YWRmLWlucGxhY2UtZm9ybS1pbnB1dCBbY29udHJvbF09XCJwcm9jZXNzSW5zdGFuY2VOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkZPUk0uTEFCRUwuTkFNRScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcm9jZXNzSW5zdGFuY2VOYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuUFJPQ0VTU19OQU1FX1JFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcm9jZXNzSW5zdGFuY2VOYW1lLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiIGlkPVwiYWRmLXN0YXJ0LXByb2Nlc3MtbWF4bGVuZ3RoLWVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuTUFYSU1VTV9MRU5HVEgnIHwgdHJhbnNsYXRlIDogeyBjaGFyYWN0ZXJzIDogbWF4TmFtZUxlbmd0aCB9IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2Nlc3NJbnN0YW5jZU5hbWUuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkVSUk9SLlNQQUNFX1ZBTElEQVRPUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9hZGYtaW5wbGFjZS1mb3JtLWlucHV0PlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRm9ybSBlbHNlIHRhc2tGb3JtQ2xvdWRCdXR0b25zXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1jbG91ZC1mb3JtXG4gICAgICAgICAgICAgICAgICAgICNzdGFydEZvcm1cbiAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBWZXJzaW9uXT1cInByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5hcHBWZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicmVzb2x2ZWRWYWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUlkXT1cInByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5mb3JtS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnNdPVwiZGlzcGxheU1vZGVDb25maWd1cmF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93U2F2ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q29tcGxldGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1JlZnJlc2hCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93TmV4dFRhc2tDaGVja2JveF09XCJzaG93TmV4dFRhc2tDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkXT1cImlzTmV4dFRhc2tDaGVja2JveENoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAoZm9ybUNvbnRlbnRDbGlja2VkKT1cIm9uRm9ybUNvbnRlbnRDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoZm9ybUxvYWRlZCk9XCJvbkZvcm1Mb2FkZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChleGVjdXRlT3V0Y29tZSk9XCJvbkN1c3RvbU91dGNvbWVDbGlja2VkKCRldmVudC5vdXRjb21lLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCk9XCJvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YXNrRm9ybUNsb3VkQnV0dG9uc1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FkZi1jbG91ZC1mb3JtLWN1c3RvbS1vdXRjb21lcz5cbiAgICAgICAgICAgICAgICA8L2FkZi1jbG91ZC1mb3JtPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG48L21hdC1jYXJkPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tGb3JtQ2xvdWRCdXR0b25zPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtc3RhcnQtcHJvY2Vzcy1jbG91ZC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU3RhcnRQcm9jZXNzKClcIlxuICAgICAgICAgICAgaWQ9XCJjYW5jZWxfcHJvY2Vzc1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGNhbmNlbEJ1dHRvbkxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInNob3dTdGFydFByb2Nlc3NCdXR0b24kIHwgYXN5bmNcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVN0YXJ0QnV0dG9uIHx8ICFpc1Byb2Nlc3NGb3JtVmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0UHJvY2VzcygpXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImJ0bi1zdGFydFwiXG4gICAgICAgICAgICBpZD1cImJ1dHRvbi1zdGFydFwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1idG4tc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UHJvY2Vzc0RlZmluaXRpb25zTGlzdD5cbiAgICA8bWF0LWNhcmQtY29udGVudCAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uTG9hZGVkXCI+XG4gICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiBpZD1cIm5vLXByb2Nlc3MtbWVzc2FnZVwiPlxuICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuTk9fUFJPQ0VTU19ERUZJTklUSU9OUycgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2V9fVxuICAgICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3Bpbm5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtbG9hZGluZ1wiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtcHJvY2Vzcy1jbG91ZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Byb2Nlc3Mvc3RhcnQtcHJvY2Vzcy9jb21wb25lbnRzL3N0YXJ0LXByb2Nlc3MtY2xvdWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3N0YXJ0LXByb2Nlc3MvY29tcG9uZW50cy9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsc0JBQXNCLEVBR3RCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFB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RDdCLE1BQU07Z0JBMkdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXG4gICAgQ29udGVudExpbmtNb2RlbCxcbiAgICBGb3JtTW9kZWwsXG4gICAgSW5wbGFjZUZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBMb2NhbGl6ZWREYXRlUGlwZSxcbiAgICBUcmFuc2xhdGlvblNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQcm9jZXNzSW5zdGFuY2VDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLWluc3RhbmNlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFByb2Nlc3NQYXlsb2FkQ2xvdWQgfSBmcm9tICcuLi9tb2RlbHMvcHJvY2Vzcy1wYXlsb2FkLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFByb2Nlc3NXaXRoRm9ybVBheWxvYWRDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLXdpdGgtZm9ybS1wYXlsb2FkLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0YXJ0LXByb2Nlc3MtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza1ZhcmlhYmxlQ2xvdWQgfSBmcm9tICcuLi8uLi8uLi9mb3JtL21vZGVscy90YXNrLXZhcmlhYmxlLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGRzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZ2V0VGltZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvZm9ybS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUN1c3RvbU91dGNvbWVzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZm9ybS9jb21wb25lbnRzL2Zvcm0tY2xvdWQtY3VzdG9tLW91dGNvbWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmNvbnN0IE1BWF9OQU1FX0xFTkdUSDogbnVtYmVyID0gMjU1O1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX0RFQk9VTkNFOiBudW1iZXIgPSAzMDA7XG5jb25zdCBEQVRFX1RJTUVfSURFTlRJRklFUl9SRUdfRVhQID0gbmV3IFJlZ0V4cCgnJXtkYXRldGltZX0nLCAnaScpO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX0lERU5USUZJRVJfUkVHX0VYUCA9IG5ldyBSZWdFeHAoJyV7cHJvY2Vzc2RlZmluaXRpb259JywgJ2knKTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY2xvdWQtc3RhcnQtcHJvY2VzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgSW5wbGFjZUZvcm1JbnB1dENvbXBvbmVudCxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGb3JtQ2xvdWRDb21wb25lbnQsXG4gICAgICAgIEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbTG9jYWxpemVkRGF0ZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdGFydFByb2Nlc3NDbG91ZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXG4gICAgaW5wdXRBdXRvY29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG5cbiAgICBAVmlld0NoaWxkKCdzdGFydEZvcm0nKSBzdGFydEZvcm06IEZvcm1DbG91ZENvbXBvbmVudDtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBwcm9jZXNzIG5hbWUuICovXG4gICAgQElucHV0KClcbiAgICBtYXhOYW1lTGVuZ3RoOiBudW1iZXIgPSBNQVhfTkFNRV9MRU5HVEg7XG5cbiAgICAvKiogTmFtZSBvZiB0aGUgcHJvY2Vzcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIE5hbWUgb2YgdGhlIHByb2Nlc3MgZGVmaW5pdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFZhcmlhYmxlcyB0byBhdHRhY2ggdG8gdGhlIHBheWxvYWQuICovXG4gICAgQElucHV0KClcbiAgICB2YXJpYWJsZXM6IGFueTtcblxuICAgIC8qKiBQYXJhbWV0ZXIgdG8gcGFzcyBmb3JtIGZpZWxkIHZhbHVlcyBpbiB0aGUgc3RhcnQgZm9ybSBpZiBvbmUgaXMgYXNzb2NpYXRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlczogVGFza1ZhcmlhYmxlQ2xvdWRbXTtcblxuICAgIC8qKiBTaG93L2hpZGUgdGhlIHByb2Nlc3MgZHJvcGRvd24gbGlzdC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dTZWxlY3RQcm9jZXNzRHJvcGRvd246IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqIFNob3cvaGlkZSB0aXRsZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUaXRsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogU2hvdy9oaWRlIGNhbmNlbCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdmFpbGFibGUgZGlzcGxheSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGZvcm0uXG4gICAgICogKHN0YXJ0IHByb2Nlc3MgZXZlbnQgY2FuIGhhdmUgYXNzaWduZWQgZm9ybSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnM6IEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbltdO1xuXG4gICAgLyoqIFRvZ2dsZSByZW5kZXJpbmcgb2YgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3guICovXG4gICAgQElucHV0KClcbiAgICBzaG93TmV4dFRhc2tDaGVja2JveCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGBPcGVuIG5leHQgdGFza2AgY2hlY2tib3ggaXMgY2hlY2tlZCBieSBkZWZhdWx0IG9yIG5vdC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTmV4dFRhc2tDaGVja2JveENoZWNrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHByb2Nlc3MgaXMgc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBzdGFydGluZyBwcm9jZXNzIGlzIGNhbmNlbGxlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBmb3JtIGNvbnRlbnQgaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29udGVudENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDb250ZW50TGlua01vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gcHJvY2VzcyBkZWZpbml0aW9uIHNlbGVjdGlvbiBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8UHJvY2Vzc0RlZmluaXRpb25DbG91ZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBgT3BlbiBuZXh0IHRhc2tgIGNoZWNrYm94IHdhcyB0b2dnbGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0Q2hlY2tib3hDaGFuZ2U+KCk7XG5cbiAgICBwcm9jZXNzRGVmaW5pdGlvbkxpc3Q6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWRbXSA9IFtdO1xuICAgIHByb2Nlc3NEZWZpbml0aW9uQ3VycmVudD86IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ7XG4gICAgZXJyb3JNZXNzYWdlSWQ6IHN0cmluZyA9ICcnO1xuICAgIHByb2Nlc3NQYXlsb2FkQ2xvdWQgPSBuZXcgUHJvY2Vzc1BheWxvYWRDbG91ZCgpO1xuICAgIGZpbHRlcmVkUHJvY2Vzc2VzOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10gPSBbXTtcbiAgICBzdGF0aWNNYXBwaW5nczogVGFza1ZhcmlhYmxlQ2xvdWRbXSA9IFtdO1xuICAgIHJlc29sdmVkVmFsdWVzPzogVGFza1ZhcmlhYmxlQ2xvdWRbXTtcbiAgICBjdXN0b21PdXRjb21lOiBzdHJpbmc7XG5cbiAgICBpc1Byb2Nlc3NTdGFydGluZyA9IGZhbHNlO1xuICAgIGlzRm9ybUNsb3VkTG9hZGVkID0gZmFsc2U7XG4gICAgaXNGb3JtQ2xvdWRMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJvY2Vzc0RlZmluaXRpb25Mb2FkZWQgPSBmYWxzZTtcblxuICAgIHNob3dTdGFydFByb2Nlc3NCdXR0b24kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHN0YXJ0UHJvY2Vzc0J1dHRvbkxhYmVsOiBzdHJpbmc7XG4gICAgY2FuY2VsQnV0dG9uTGFiZWw6IHN0cmluZztcblxuICAgIGZvcm1DbG91ZD86IEZvcm1Nb2RlbDtcbiAgICBwcm9jZXNzRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBwcm9jZXNzSW5zdGFuY2VOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmdldE1heE5hbWVMZW5ndGgoKSksXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bXlxcXFxzXSsoXFxcXHMrW15cXFxcc10rKSokJylcbiAgICAgICAgXSksXG4gICAgICAgIHByb2Nlc3NEZWZpbml0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZVZhbGlkYXRvcigpXSlcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChTdGFydFByb2Nlc3NDbG91ZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxpemVkRGF0ZVBpcGUgPSBpbmplY3QoTG9jYWxpemVkRGF0ZVBpcGUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVN0YXJ0U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhc1Zpc2libGVPdXRjb21lc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuXG4gICAgZ2V0IGlzUHJvY2Vzc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzRm9ybSAmJiB0aGlzLmlzRm9ybUNsb3VkTG9hZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuZm9ybUNsb3VkID8gIU9iamVjdC5rZXlzKHRoaXMuZm9ybUNsb3VkLnZhbHVlcykubGVuZ3RoIDogZmFsc2UpIHx8IHRoaXMuZm9ybUNsb3VkPy5pc1ZhbGlkIHx8IHRoaXMuaXNQcm9jZXNzU3RhcnRpbmc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRm9ybS52YWxpZCB8fCB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVTdGFydEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmFwcE5hbWUgfHwgIXRoaXMucHJvY2Vzc0RlZmluaXRpb24udmFsaWQgfHwgdGhpcy5pc1Byb2Nlc3NTdGFydGluZyB8fCB0aGlzLmlzRm9ybUNsb3VkTG9hZGluZztcbiAgICB9XG5cbiAgICBnZXQgaXNQcm9jZXNzRGVmaW5pdGlvbnNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0IHByb2Nlc3NJbnN0YW5jZU5hbWUoKTogRm9ybUNvbnRyb2w8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NGb3JtLmNvbnRyb2xzLnByb2Nlc3NJbnN0YW5jZU5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IHByb2Nlc3NEZWZpbml0aW9uKCk6IEZvcm1Db250cm9sPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRm9ybS5jb250cm9scy5wcm9jZXNzRGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgaGFzRm9ybSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQ/LmZvcm1LZXk7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRk9STS5BQ1RJT04uU1RBUlQnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGdldCBkZWZhdWx0Q2FuY2VsUHJvY2Vzc0J1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLkFDVElPTi5DQU5DRUwnKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgPSB0aGlzLmRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25MYWJlbCA9IHRoaXMuZGVmYXVsdENhbmNlbFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb24udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoUFJPQ0VTU19ERUZJTklUSU9OX0RFQk9VTkNFKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25OYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RQcm9jZXNzRGVmaW5pdGlvbkJ5UHJvY2Vzc0RlZmluaXRpb25OYW1lKHByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRQcm9jZXNzQnV0dG9uJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGlzcGxheVN0YXJ0U3ViamVjdCwgdGhpcy5oYXNWaXNpYmxlT3V0Y29tZXNTdWJqZWN0XSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Rpc3BsYXlTdGFydCwgaGFzVmlzaWJsZU91dGNvbWVzXSkgPT4gKGRpc3BsYXlTdGFydCAhPT0gbnVsbCA/IGRpc3BsYXlTdGFydCA9PT0gJ3RydWUnIDogIWhhc1Zpc2libGVPdXRjb21lcykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snYXBwTmFtZSddICYmIGNoYW5nZXNbJ2FwcE5hbWUnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2FwcE5hbWUnXS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmFwcE5hbWUgPSBjaGFuZ2VzWydhcHBOYW1lJ10uY3VycmVudFZhbHVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hcHBOYW1lIHx8IHRoaXMuYXBwTmFtZSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRQcm9jZXNzRGVmaW5pdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzWyd2YWx1ZXMnXSAmJiBjaGFuZ2VzWyd2YWx1ZXMnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZhbHVlcyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRWYWx1ZXMgPSB0aGlzLnN0YXRpY01hcHBpbmdzLmNvbmNhdCh0aGlzLnZhbHVlcyB8fCBbXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgb25Gb3JtTG9hZGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmlzRm9ybUNsb3VkTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb3JtQ2xvdWQgPSBmb3JtO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0Rm9ybSkge1xuICAgICAgICAgICAgdGhpcy5oYXNWaXNpYmxlT3V0Y29tZXNTdWJqZWN0Lm5leHQodGhpcy5zdGFydEZvcm0uaGFzVmlzaWJsZU91dGNvbWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF4TmFtZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXhOYW1lTGVuZ3RoID4gTUFYX05BTUVfTEVOR1RIID8gTUFYX05BTUVfTEVOR1RIIDogdGhpcy5tYXhOYW1lTGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0UHJvY2Vzc0RlZmluaXRpb25CeVByb2Nlc3NEZWZpbml0aW9uTmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzID0gdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbkxpc3RCeU5hbWVPcktleShwcm9jZXNzRGVmaW5pdGlvbk5hbWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc0Zvcm1WYWxpZCAmJiB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzICYmIHRoaXMuZmlsdGVyZWRQcm9jZXNzZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKHRoaXMuZmlsdGVyZWRQcm9jZXNzZXNbMF0ubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQcm9jZXNzRGVmaW5pdGlvbk9uRm9ybShzZWxlY3RlZFByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaXNGb3JtQ2xvdWRMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcHJvY2Vzc0RlZmluaXRpb25DdXJyZW50ID0gdGhpcy5maWx0ZXJlZFByb2Nlc3Nlcy5maW5kKFxuICAgICAgICAgICAgKHByb2Nlc3M6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpID0+IHByb2Nlc3MubmFtZSA9PT0gc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUgfHwgcHJvY2Vzcy5rZXkgPT09IHNlbGVjdGVkUHJvY2Vzc0RlZmluaXRpb25OYW1lXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9ya0pvaW4oW1xuICAgICAgICAgICAgdGhpcy5zdGFydFByb2Nlc3NDbG91ZFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0U3RhcnRFdmVudEZvcm1TdGF0aWNWYWx1ZXNNYXBwaW5nKHRoaXMuYXBwTmFtZSwgcHJvY2Vzc0RlZmluaXRpb25DdXJyZW50LmlkKVxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgVGFza1ZhcmlhYmxlQ2xvdWRbXSkpKSxcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQ2xvdWRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFN0YXJ0RXZlbnRDb25zdGFudHModGhpcy5hcHBOYW1lLCBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQuaWQpXG4gICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihbXSBhcyBUYXNrVmFyaWFibGVDbG91ZFtdKSkpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3N0YXRpY01hcHBpbmdzLCBjb25zdGFudHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRpY01hcHBpbmdzID0gc3RhdGljTWFwcGluZ3M7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkVmFsdWVzID0gdGhpcy5zdGF0aWNNYXBwaW5ncy5jb25jYXQodGhpcy52YWx1ZXMgfHwgW10pO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQgPSBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQ7XG4gICAgICAgICAgICB0aGlzLmlzRm9ybUNsb3VkTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5U3RhcnQgPSBjb25zdGFudHM/LmZpbmQoKGNvbnN0YW50KSA9PiBjb25zdGFudC5uYW1lID09PSAnc3RhcnRFbmFibGVkJyk7XG4gICAgICAgICAgICBjb25zdCBzdGFydExhYmVsID0gY29uc3RhbnRzPy5maW5kKChjb25zdGFudCkgPT4gY29uc3RhbnQubmFtZSA9PT0gJ3N0YXJ0TGFiZWwnKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUNhbmNlbCA9IGNvbnN0YW50cz8uZmluZCgoY29uc3RhbnQpID0+IGNvbnN0YW50Lm5hbWUgPT09ICdjYW5jZWxFbmFibGVkJyk7XG4gICAgICAgICAgICBjb25zdCBjYW5jZWxMYWJlbCA9IGNvbnN0YW50cz8uZmluZCgoY29uc3RhbnQpID0+IGNvbnN0YW50Lm5hbWUgPT09ICdjYW5jZWxMYWJlbCcpO1xuXG4gICAgICAgICAgICBpZiAoZGlzcGxheVN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5U3RhcnRTdWJqZWN0Lm5leHQoZGlzcGxheVN0YXJ0Py52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RhcnRMYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgPSBzdGFydExhYmVsPy52YWx1ZT8udHJpbSgpPy5sZW5ndGggPiAwID8gc3RhcnRMYWJlbC52YWx1ZS50cmltKCkgOiB0aGlzLmRlZmF1bHRTdGFydFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRpc3BsYXlDYW5jZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dDYW5jZWxCdXR0b24gPSBkaXNwbGF5Q2FuY2VsPy52YWx1ZSA9PT0gJ3RydWUnICYmIHRoaXMuc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5jZWxMYWJlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQnV0dG9uTGFiZWwgPSBjYW5jZWxMYWJlbD8udmFsdWU/LnRyaW0oKT8ubGVuZ3RoID4gMCA/IGNhbmNlbExhYmVsLnZhbHVlLnRyaW0oKSA6IHRoaXMuZGVmYXVsdENhbmNlbFByb2Nlc3NCdXR0b25MYWJlbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pc0Zvcm1DbG91ZExvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQucHJvY2Vzc0RlZmluaXRpb25LZXkgPSBwcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQua2V5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc0RlZmluaXRpb25MaXN0QnlOYW1lT3JLZXkocHJvY2Vzc0RlZmluaXRpb25OYW1lOiBzdHJpbmcpOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QuZmlsdGVyKFxuICAgICAgICAgICAgKHByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpID0+ICFwcm9jZXNzRGVmaW5pdGlvbk5hbWUgfHwgdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbihwcm9jZXNzRGVmaW5pdGlvbkNsb3VkLCBwcm9jZXNzRGVmaW5pdGlvbk5hbWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzSWZFeGlzdHMocHJvY2Vzc0RlZmluaXRpb246IHN0cmluZyk6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQge1xuICAgICAgICBsZXQgbWF0Y2hlZFByb2Nlc3MgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdC5maW5kKChvcHRpb24pID0+IHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb24ob3B0aW9uLCBwcm9jZXNzRGVmaW5pdGlvbikpO1xuICAgICAgICBpZiAoIW1hdGNoZWRQcm9jZXNzKSB7XG4gICAgICAgICAgICBtYXRjaGVkUHJvY2VzcyA9IG5ldyBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZFByb2Nlc3M7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9jZXNzRGVmaW5pdGlvbkJ5TmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQge1xuICAgICAgICBjb25zdCBtYXRjaGVkUHJvY2VzcyA9IHByb2Nlc3NEZWZpbml0aW9uTmFtZSA/IHRoaXMuZ2V0UHJvY2Vzc0lmRXhpc3RzKHByb2Nlc3NEZWZpbml0aW9uTmFtZSkgOiB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdFswXTtcbiAgICAgICAgcmV0dXJuIG1hdGNoZWRQcm9jZXNzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0RGVmYXVsdFByb2Nlc3NEZWZpbml0aW9uKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFByb2Nlc3MgPSB0aGlzLmdldFByb2Nlc3NEZWZpbml0aW9uQnlOYW1lKHRoaXMucHJvY2Vzc0RlZmluaXRpb25OYW1lKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkUHJvY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZShzZWxlY3RlZFByb2Nlc3MubmFtZSk7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uQ2hhbmdlZChzZWxlY3RlZFByb2Nlc3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRQcm9jZXNzRGVmaW5pdGlvbnMoKSB7XG4gICAgICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2UoKTtcblxuICAgICAgICB0aGlzLnN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZVxuICAgICAgICAgICAgLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHByb2Nlc3NEZWZpbml0aW9uUmVwcmVzZW50YXRpb25zOiBQcm9jZXNzRGVmaW5pdGlvbkNsb3VkW10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QgPSBwcm9jZXNzRGVmaW5pdGlvblJlcHJlc2VudGF0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NEZWZpbml0aW9uUmVwcmVzZW50YXRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3REZWZhdWx0UHJvY2Vzc0RlZmluaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSh0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NEZWZpbml0aW9uID0gdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkxpc3QuZmluZCgocHJvY2VzcykgPT4gcHJvY2Vzcy5uYW1lID09PSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkUHJvY2Vzc2VzID0gdGhpcy5nZXRQcm9jZXNzRGVmaW5pdGlvbkxpc3RCeU5hbWVPcktleShwcm9jZXNzRGVmaW5pdGlvbi5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKHByb2Nlc3NEZWZpbml0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25TZWxlY3Rpb25DaGFuZ2VkKHByb2Nlc3NEZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0RlZmluaXRpb25Mb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZUlkID0gJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuTE9BRF9QUk9DRVNTX0RFRlMnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhbmFtZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NEZWZpbml0aW9uKHByb2Nlc3NEZWZpbml0aW9uQ2xvdWQ6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQsIHByb2Nlc3NEZWZpbml0aW9uTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAodGhpcy5pc1ZhbGlkTmFtZShwcm9jZXNzRGVmaW5pdGlvbkNsb3VkLm5hbWUpICYmXG4gICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25DbG91ZC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocHJvY2Vzc0RlZmluaXRpb25OYW1lLnRvTG93ZXJDYXNlKCkpKSB8fFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25DbG91ZC5rZXk/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocHJvY2Vzc0RlZmluaXRpb25OYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYnVpbGRQcm9jZXNzQ2xvdWRQYXlsb2FkKCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQubmFtZSA9IHRoaXMucHJvY2Vzc0luc3RhbmNlTmFtZS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVzKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzID0gdGhpcy52YXJpYWJsZXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oYXNGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzID0gT2JqZWN0LmFzc2lnbih0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQudmFyaWFibGVzLCB0aGlzLmZvcm1DbG91ZC52YWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DdXN0b21PdXRjb21lQ2xpY2tlZChvdXRjb21lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXN0b21PdXRjb21lID0gb3V0Y29tZTtcbiAgICAgICAgdGhpcy5zdGFydFByb2Nlc3MoKTtcbiAgICB9XG5cbiAgICBzdGFydFByb2Nlc3NXaXRob3V0Q29uZmlybWF0aW9uKCkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmhhc0Zvcm1cbiAgICAgICAgICAgID8gdGhpcy5zdGFydFByb2Nlc3NDbG91ZFNlcnZpY2Uuc3RhcnRQcm9jZXNzV2l0aEZvcm0oXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5mb3JtS2V5LFxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbkN1cnJlbnQudmVyc2lvbixcbiAgICAgICAgICAgICAgICAgIG5ldyBQcm9jZXNzV2l0aEZvcm1QYXlsb2FkQ2xvdWQoe1xuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NOYW1lOiB0aGlzLnByb2Nlc3NJbnN0YW5jZU5hbWUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25LZXk6IHRoaXMucHJvY2Vzc1BheWxvYWRDbG91ZC5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHRoaXMudmFyaWFibGVzID8/IHt9LFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogdGhpcy5mb3JtQ2xvdWQudmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgIG91dGNvbWU6IHRoaXMuY3VzdG9tT3V0Y29tZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB0aGlzLnN0YXJ0UHJvY2Vzc0Nsb3VkU2VydmljZS5zdGFydFByb2Nlc3MoXG4gICAgICAgICAgICAgICAgICB0aGlzLmFwcE5hbWUsXG4gICAgICAgICAgICAgICAgICBuZXcgUHJvY2Vzc1BheWxvYWRDbG91ZCh7XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5wcm9jZXNzSW5zdGFuY2VOYW1lLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5OiB0aGlzLnByb2Nlc3NQYXlsb2FkQ2xvdWQucHJvY2Vzc0RlZmluaXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzOiB0aGlzLnZhcmlhYmxlcyA/PyB7fVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICBhY3Rpb24uc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdChyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzU3RhcnRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlSWQgPSAnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5FUlJPUi5TVEFSVCc7XG4gICAgICAgICAgICAgICAgdGhpcy51bmlmeUVycm9yUmVzcG9uc2UoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzUHJvY2Vzc1N0YXJ0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXJ0UHJvY2VzcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1DbG91ZD8uY29uZmlybU1lc3NhZ2U/LnNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRQcm9jZXNzV2l0aG91dENvbmZpcm1hdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLmZvcm1DbG91ZC5jb25maXJtTWVzc2FnZS5tZXNzYWdlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzQ1MHB4J1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UHJvY2Vzc1dpdGhvdXRDb25maXJtYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5pZnlFcnJvclJlc3BvbnNlKGVycjogYW55KSB7XG4gICAgICAgIGlmICghZXJyPy5yZXNwb25zZT8uYm9keT8uZW50cnkgJiYgZXJyPy5yZXNwb25zZT8uYm9keT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgZXJyLnJlc3BvbnNlLmJvZHkgPSB7XG4gICAgICAgICAgICAgICAgZW50cnk6IEpTT04ucGFyc2UoZXJyLnJlc3BvbnNlLmJvZHkubWVzc2FnZSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYW5jZWxTdGFydFByb2Nlc3MoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0RXJyb3JNZXNzYWdlKCkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZUlkID0gJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldFByb2Nlc3NEZWZpbml0aW9uTGlzdCgpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbi5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRQcm9jZXNzZXMgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTGlzdDtcbiAgICB9XG5cbiAgICBkaXNwbGF5UHJvY2Vzc05hbWVPbkRyb3Bkb3duKHByb2Nlc3M6IGFueSkge1xuICAgICAgICBpZiAocHJvY2Vzcykge1xuICAgICAgICAgICAgbGV0IHByb2Nlc3NOYW1lID0gcHJvY2VzcztcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzTmFtZSA9IHByb2Nlc3MubmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9jZXNzTmFtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc3BsYXlEcm9wZG93bihldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0QXV0b2NvbXBsZXRlLnBhbmVsT3Blbikge1xuICAgICAgICAgICAgdGhpcy5yZXNldFByb2Nlc3NEZWZpbml0aW9uTGlzdCgpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEF1dG9jb21wbGV0ZS5vcGVuUGFuZWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRBdXRvY29tcGxldGUuY2xvc2VQYW5lbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbkZpZWxkVmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgICAgICAgICAgbGV0IHByb2Nlc3NEZWZpbml0aW9uTmFtZUVycm9yID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzRGVmaW5pdGlvbkZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzRGVmaW5pdGlvbiA9IHRoaXMuZ2V0UHJvY2Vzc0lmRXhpc3RzKHByb2Nlc3NEZWZpbml0aW9uRmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9jZXNzRGVmaW5pdGlvbi5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25OYW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NEZWZpbml0aW9uTmFtZUVycm9yID8geyAnaW52YWxpZCBuYW1lJzogdHJ1ZSB9IDogbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRQcm9jZXNzRGVmaW5pdGlvblZhbHVlKHByb2Nlc3M6IFByb2Nlc3NEZWZpbml0aW9uQ2xvdWQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvY2Vzcy5uYW1lID8gcHJvY2Vzcy5uYW1lIDogcHJvY2Vzcy5rZXk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29udGVudENsaWNrZWQoY29udGVudDogQ29udGVudExpbmtNb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1Db250ZW50Q2xpY2tlZC5lbWl0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIHByb2Nlc3NEZWZpbml0aW9uU2VsZWN0aW9uQ2hhbmdlZChwcm9jZXNzRGVmaW5pdGlvbjogUHJvY2Vzc0RlZmluaXRpb25DbG91ZCkge1xuICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdFByb2Nlc3NOYW1lKHByb2Nlc3NEZWZpbml0aW9uLm5hbWUpO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvblNlbGVjdGlvbi5lbWl0KHByb2Nlc3NEZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERlZmF1bHRQcm9jZXNzTmFtZShwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm9jZXNzSW5zdGFuY2VEZXRhaWxzOiBQcm9jZXNzSW5zdGFuY2VDbG91ZCA9IHsgcHJvY2Vzc0RlZmluaXRpb25OYW1lIH07XG4gICAgICAgIGNvbnN0IGRlZmF1bHRQcm9jZXNzTmFtZSA9IHRoaXMuZ2V0RGVmYXVsdFByb2Nlc3NOYW1lKHRoaXMubmFtZSwgcHJvY2Vzc0luc3RhbmNlRGV0YWlscyk7XG4gICAgICAgIHRoaXMucHJvY2Vzc0luc3RhbmNlTmFtZS5zZXRWYWx1ZShkZWZhdWx0UHJvY2Vzc05hbWUpO1xuICAgICAgICB0aGlzLnByb2Nlc3NJbnN0YW5jZU5hbWUubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5zdGFuY2VOYW1lLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXREZWZhdWx0UHJvY2Vzc05hbWUocHJvY2Vzc05hbWVGb3JtYXQ6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlPzogUHJvY2Vzc0luc3RhbmNlQ2xvdWQpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcHJvY2Vzc05hbWUgPSBwcm9jZXNzTmFtZUZvcm1hdDtcbiAgICAgICAgaWYgKHByb2Nlc3NOYW1lLm1hdGNoKERBVEVfVElNRV9JREVOVElGSUVSX1JFR19FWFApKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVzZW50RGF0ZVRpbWUgPSBnZXRUaW1lKG5ldyBEYXRlKCkpO1xuICAgICAgICAgICAgcHJvY2Vzc05hbWUgPSBwcm9jZXNzTmFtZS5yZXBsYWNlKERBVEVfVElNRV9JREVOVElGSUVSX1JFR19FWFAsIHRoaXMubG9jYWxpemVkRGF0ZVBpcGUudHJhbnNmb3JtKHByZXNlbnREYXRlVGltZSwgJ21lZGl1bScpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9jZXNzTmFtZS5tYXRjaChQUk9DRVNTX0RFRklOSVRJT05fSURFTlRJRklFUl9SRUdfRVhQKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUgPSBwcm9jZXNzSW5zdGFuY2UgPyBwcm9jZXNzSW5zdGFuY2UucHJvY2Vzc0RlZmluaXRpb25OYW1lIDogJyc7XG4gICAgICAgICAgICBwcm9jZXNzTmFtZSA9IHByb2Nlc3NOYW1lLnJlcGxhY2UoUFJPQ0VTU19ERUZJTklUSU9OX0lERU5USUZJRVJfUkVHX0VYUCwgc2VsZWN0ZWRQcm9jZXNzRGVmaW5pdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9jZXNzTmFtZTtcbiAgICB9XG5cbiAgICBvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZChldmVudDogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5uZXh0VGFza0NoZWNrYm94Q2hlY2tlZENoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxufVxuIiwiPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYWRmLXN0YXJ0LXByb2Nlc3NcIiAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uTG9hZGVkOyBlbHNlIHNwaW5uZXJcIj5cblxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8bWF0LWNhcmQtdGl0bGVcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd1RpdGxlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3snQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLlRJVExFJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlIGlkPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlSWRcIj5cbiAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZUlkIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Byb2Nlc3NEZWZpbml0aW9uc0VtcHR5OyBlbHNlIGVtcHR5UHJvY2Vzc0RlZmluaXRpb25zTGlzdFwiPlxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJwcm9jZXNzRm9ybVwiIGNsYXNzPVwiYWRmLXNlbGVjdC1wcm9jZXNzLWZvcm1cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtcHJvY2Vzcy1pbnB1dC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBmbG9hdExhYmVsPVwiYWx3YXlzXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2VsZWN0UHJvY2Vzc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXNlbGVjdC1jbG91ZC1wcm9jZXNzLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLXN0YXJ0LXByb2Nlc3MtaW5wdXQtbGFiZWxcIj57eyAnQURGX0NMT1VEX1BST0NFU1NfTElTVC5BREZfQ0xPVURfU1RBUlRfUFJPQ0VTUy5GT1JNLkxBQkVMLlRZUEUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb2Nlc3NEZWZpbml0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicHJvY2Vzc0RlZmluaXRpb25OYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXByb2Nlc3MtaW5wdXQtYXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInByb2Nlc3NEZWZpbml0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5UHJvY2Vzc05hbWVPbkRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInNldFByb2Nlc3NEZWZpbml0aW9uT25Gb3JtKCRldmVudC5vcHRpb24udmFsdWUpXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcHJvY2Vzc0RlZiBvZiBmaWx0ZXJlZFByb2Nlc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFByb2Nlc3NEZWZpbml0aW9uVmFsdWUocHJvY2Vzc0RlZilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcm9jZXNzRGVmaW5pdGlvblNlbGVjdGlvbkNoYW5nZWQocHJvY2Vzc0RlZilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0UHJvY2Vzc0RlZmluaXRpb25WYWx1ZShwcm9jZXNzRGVmKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWRmLXNlbGVjdC1wcm9jZXNzLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eydBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkZPUk0uU0VMRUNUX1BST0NFU1NfRFJPUERPV04nIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlEcm9wZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvY2Vzc0RlZmluaXRpb24uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWVycm9yLXBiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkVSUk9SLlBST0NFU1NfREVGSU5JVElPTl9SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8YWRmLWlucGxhY2UtZm9ybS1pbnB1dCBbY29udHJvbF09XCJwcm9jZXNzSW5zdGFuY2VOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eydBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkZPUk0uTEFCRUwuTkFNRScgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcm9jZXNzSW5zdGFuY2VOYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuUFJPQ0VTU19OQU1FX1JFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcm9jZXNzSW5zdGFuY2VOYW1lLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiIGlkPVwiYWRmLXN0YXJ0LXByb2Nlc3MtbWF4bGVuZ3RoLWVycm9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuRVJST1IuTUFYSU1VTV9MRU5HVEgnIHwgdHJhbnNsYXRlIDogeyBjaGFyYWN0ZXJzIDogbWF4TmFtZUxlbmd0aCB9IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByb2Nlc3NJbnN0YW5jZU5hbWUuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdBREZfQ0xPVURfUFJPQ0VTU19MSVNULkFERl9DTE9VRF9TVEFSVF9QUk9DRVNTLkVSUk9SLlNQQUNFX1ZBTElEQVRPUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9hZGYtaW5wbGFjZS1mb3JtLWlucHV0PlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRm9ybSBlbHNlIHRhc2tGb3JtQ2xvdWRCdXR0b25zXCI+XG4gICAgICAgICAgICAgICAgPGFkZi1jbG91ZC1mb3JtXG4gICAgICAgICAgICAgICAgICAgICNzdGFydEZvcm1cbiAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcHBWZXJzaW9uXT1cInByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5hcHBWZXJzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicmVzb2x2ZWRWYWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUlkXT1cInByb2Nlc3NEZWZpbml0aW9uQ3VycmVudC5mb3JtS2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc3BsYXlNb2RlQ29uZmlndXJhdGlvbnNdPVwiZGlzcGxheU1vZGVDb25maWd1cmF0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93U2F2ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Q29tcGxldGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1JlZnJlc2hCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dUaXRsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaG93TmV4dFRhc2tDaGVja2JveF09XCJzaG93TmV4dFRhc2tDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc05leHRUYXNrQ2hlY2tib3hDaGVja2VkXT1cImlzTmV4dFRhc2tDaGVja2JveENoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAoZm9ybUNvbnRlbnRDbGlja2VkKT1cIm9uRm9ybUNvbnRlbnRDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoZm9ybUxvYWRlZCk9XCJvbkZvcm1Mb2FkZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChleGVjdXRlT3V0Y29tZSk9XCJvbkN1c3RvbU91dGNvbWVDbGlja2VkKCRldmVudC5vdXRjb21lLm5hbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKG5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCk9XCJvbk5leHRUYXNrQ2hlY2tib3hDaGVja2VkQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YXNrRm9ybUNsb3VkQnV0dG9uc1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FkZi1jbG91ZC1mb3JtLWN1c3RvbS1vdXRjb21lcz5cbiAgICAgICAgICAgICAgICA8L2FkZi1jbG91ZC1mb3JtPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuXG48L21hdC1jYXJkPlxuXG48bmctdGVtcGxhdGUgI3Rhc2tGb3JtQ2xvdWRCdXR0b25zPlxuICAgIDxkaXYgY2xhc3M9XCJhZGYtc3RhcnQtcHJvY2Vzcy1jbG91ZC1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU3RhcnRQcm9jZXNzKClcIlxuICAgICAgICAgICAgaWQ9XCJjYW5jZWxfcHJvY2Vzc1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IGNhbmNlbEJ1dHRvbkxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInNob3dTdGFydFByb2Nlc3NCdXR0b24kIHwgYXN5bmNcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVN0YXJ0QnV0dG9uIHx8ICFpc1Byb2Nlc3NGb3JtVmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0UHJvY2VzcygpXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImJ0bi1zdGFydFwiXG4gICAgICAgICAgICBpZD1cImJ1dHRvbi1zdGFydFwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1idG4tc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgc3RhcnRQcm9jZXNzQnV0dG9uTGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UHJvY2Vzc0RlZmluaXRpb25zTGlzdD5cbiAgICA8bWF0LWNhcmQtY29udGVudCAqbmdJZj1cInByb2Nlc3NEZWZpbml0aW9uTG9hZGVkXCI+XG4gICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiBpZD1cIm5vLXByb2Nlc3MtbWVzc2FnZVwiPlxuICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QUk9DRVNTX0xJU1QuQURGX0NMT1VEX1NUQVJUX1BST0NFU1MuTk9fUFJPQ0VTU19ERUZJTklUSU9OUycgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2V9fVxuICAgICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3Bpbm5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lclxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtbG9hZGluZ1wiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAvPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -113,13 +113,13 @@ export class StartProcessCloudService extends BaseCloudService {
113
113
  return result;
114
114
  }));
115
115
  }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartProcessCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartProcessCloudService, providedIn: 'root' }); }
116
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartProcessCloudService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
117
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartProcessCloudService, providedIn: 'root' }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StartProcessCloudService, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StartProcessCloudService, decorators: [{
120
120
  type: Injectable,
121
121
  args: [{
122
122
  providedIn: 'root'
123
123
  }]
124
124
  }] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtcHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3N0YXJ0LXByb2Nlc3Mvc2VydmljZXMvc3RhcnQtcHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBU25GLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDMUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUMsT0FBZSxFQUFFLFdBQXlCO1FBQzVELElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDO1lBRXJFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLENB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QUE4QixtQkFBbUIsa0JBQWtCLENBQUM7UUFDL0csT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLENBQUMsR0FBMkIsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQy9GLENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OEdBN0dRLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzJGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByb2Nlc3NJbnN0YW5jZUNsb3VkIH0gZnJvbSAnLi4vbW9kZWxzL3Byb2Nlc3MtaW5zdGFuY2UtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgUHJvY2Vzc1BheWxvYWRDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLXBheWxvYWQtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrVmFyaWFibGVDbG91ZCB9IGZyb20gJy4uLy4uLy4uL2Zvcm0vbW9kZWxzL3Rhc2stdmFyaWFibGUtY2xvdWQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UGFyYW1zIHtcbiAgICBpbmNsdWRlOiAndmFyaWFibGVzJztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGFydFByb2Nlc3NDbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwcm9jZXNzIGRlZmluaXRpb25zIGFzc29jaWF0ZWQgd2l0aCBhbiBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBwcm9jZXNzIGRlZmluaXRpb25zXG4gICAgICovXG4gICAgZ2V0UHJvY2Vzc0RlZmluaXRpb25zKGFwcE5hbWU6IHN0cmluZywgcXVlcnlQYXJhbXM/OiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UHJvY2Vzc0RlZmluaXRpb25DbG91ZFtdPiB7XG4gICAgICAgIGlmIChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWRlZmluaXRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHVybCwgcXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLmxpc3QuZW50cmllcy5tYXAoKHByb2Nlc3NEZWZzKSA9PiBuZXcgUHJvY2Vzc0RlZmluaXRpb25DbG91ZChwcm9jZXNzRGVmcy5lbnRyeSkpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydHMgYSBwcm9jZXNzIGJhc2VkIG9uIGEgcHJvY2VzcyBkZWZpbml0aW9uLCBuYW1lLCBmb3JtIHZhbHVlcyBvciB2YXJpYWJsZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBuYW1lIG9mIHRoZSBBcHBsaWNhdGlvblxuICAgICAqIEBwYXJhbSBwYXlsb2FkIERldGFpbHMgb2YgdGhlIHByb2Nlc3MgKGRlZmluaXRpb24ga2V5LCBuYW1lLCB2YXJpYWJsZXMsIGV0YylcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBwcm9jZXNzIGluc3RhbmNlIGp1c3Qgc3RhcnRlZFxuICAgICAqL1xuICAgIHN0YXJ0UHJvY2VzcyhhcHBOYW1lOiBzdHJpbmcsIHBheWxvYWQ6IFByb2Nlc3NQYXlsb2FkQ2xvdWQpOiBPYnNlcnZhYmxlPFByb2Nlc3NJbnN0YW5jZUNsb3VkPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtaW5zdGFuY2VzYDtcbiAgICAgICAgcGF5bG9hZC5wYXlsb2FkVHlwZSA9ICdTdGFydFByb2Nlc3NQYXlsb2FkJztcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0KHVybCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHQuZW50cnkpKTtcbiAgICB9XG5cbiAgICBzdGFydFByb2Nlc3NXaXRoRm9ybShhcHBOYW1lOiBzdHJpbmcsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vZm9ybS92MS9mb3Jtcy8ke2Zvcm1JZH0vc3VibWl0L3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgICAgICBwYXlsb2FkLnBheWxvYWRUeXBlID0gJ1N0YXJ0UHJvY2Vzc1BheWxvYWQnO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBvc3QodXJsLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYW4gZXhpc3RpbmcgcHJvY2VzcyBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgbmFtZSBvZiB0aGUgQXBwbGljYXRpb25cbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0luc3RhbmNlSWQgcHJvY2VzcyBpbnN0YW5jZSB0byB1cGRhdGVcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBEZXRhaWxzIG9mIHRoZSBwcm9jZXNzIChkZWZpbml0aW9uIGtleSwgbmFtZSwgdmFyaWFibGVzLCBldGMpXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgcHJvY2VzcyBpbnN0YW5jZSBqdXN0IHN0YXJ0ZWRcbiAgICAgKi9cbiAgICB1cGRhdGVQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZywgcGF5bG9hZDogUHJvY2Vzc1BheWxvYWRDbG91ZCk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuICAgICAgICBwYXlsb2FkLnBheWxvYWRUeXBlID0gJ1VwZGF0ZVByb2Nlc3NQYXlsb2FkJztcblxuICAgICAgICByZXR1cm4gdGhpcy5wdXQodXJsLCBwYXlsb2FkKS5waXBlKG1hcCgocHJvY2Vzc0luc3RhbmNlOiBhbnkpID0+IHByb2Nlc3NJbnN0YW5jZS5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBleGlzdGluZyBwcm9jZXNzIGluc3RhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBBcHBsaWNhdGlvbiBuYW1lXG4gICAgICogQHBhcmFtIHByb2Nlc3NJbnN0YW5jZUlkIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9jZXNzIGluc3RhbmNlIHRvIHVwZGF0ZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8dm9pZD5cbiAgICAgKi9cbiAgICBkZWxldGVQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWluc3RhbmNlcy8ke3Byb2Nlc3NJbnN0YW5jZUlkfWA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3RhdGljIHZhbHVlcyBtYXBwZWQgdG8gdGhlIHN0YXJ0IGZvcm0gb2YgYSBwcm9jZXNzIGRlZmluaXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0RlZmluaXRpb25JZCBJRCBvZiB0aGUgdGFyZ2V0IHByb2Nlc3MgZGVmaW5pdGlvblxuICAgICAqIEByZXR1cm5zIFN0YXRpYyBtYXBwaW5ncyBmb3IgdGhlIHN0YXJ0IGV2ZW50XG4gICAgICovXG4gICAgZ2V0U3RhcnRFdmVudEZvcm1TdGF0aWNWYWx1ZXNNYXBwaW5nKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrVmFyaWFibGVDbG91ZFtdPiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnMvJHtwcm9jZXNzRGVmaW5pdGlvbklkfS9zdGF0aWMtdmFsdWVzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGFwaVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXMpLmZvckVhY2goKG1hcHBpbmcpID0+IHJlc3VsdC5wdXNoKG5ldyBUYXNrVmFyaWFibGVDbG91ZCh7IG5hbWU6IG1hcHBpbmcsIHZhbHVlOiByZXNbbWFwcGluZ10gfSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY29uc3RhbnRzIG1hcHBlZCB0byB0aGUgc3RhcnQgZm9ybSBvZiBhIHByb2Nlc3MgZGVmaW5pdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSBwcm9jZXNzRGVmaW5pdGlvbklkIElEIG9mIHRoZSB0YXJnZXQgcHJvY2VzcyBkZWZpbml0aW9uXG4gICAgICogQHJldHVybnMgQ29uc3RhbnRzIHZhbHVlcyBmb3IgdGhlIHN0YXJ0IGV2ZW50XG4gICAgICovXG4gICAgZ2V0U3RhcnRFdmVudENvbnN0YW50cyhhcHBOYW1lOiBzdHJpbmcsIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1ZhcmlhYmxlQ2xvdWRbXT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWRlZmluaXRpb25zLyR7cHJvY2Vzc0RlZmluaXRpb25JZH0vY29uc3RhbnQtdmFsdWVzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGFwaVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXMpLmZvckVhY2goKGNvbnN0YW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFRhc2tWYXJpYWJsZUNsb3VkKHsgbmFtZTogY29uc3RhbnQsIHZhbHVlOiByZXNbY29uc3RhbnRdLCB0eXBlOiAnc3RyaW5nJyB9KSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtcHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wcm9jZXNzL3N0YXJ0LXByb2Nlc3Mvc2VydmljZXMvc3RhcnQtcHJvY2Vzcy1jbG91ZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBU25GLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDMUQ7Ozs7OztPQU1HO0lBQ0gscUJBQXFCLENBQUMsT0FBZSxFQUFFLFdBQXlCO1FBQzVELElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDO1lBRXJFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxzQkFBc0IsQ0FBQyxXQUFXLENB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QUE4QixtQkFBbUIsa0JBQWtCLENBQUM7UUFDL0csT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDeEIsR0FBRyxDQUFDLENBQUMsR0FBMkIsRUFBRSxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQy9GLENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7K0dBN0dRLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07OzRGQUVULHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByb2Nlc3NJbnN0YW5jZUNsb3VkIH0gZnJvbSAnLi4vbW9kZWxzL3Byb2Nlc3MtaW5zdGFuY2UtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgUHJvY2Vzc1BheWxvYWRDbG91ZCB9IGZyb20gJy4uL21vZGVscy9wcm9jZXNzLXBheWxvYWQtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgUHJvY2Vzc0RlZmluaXRpb25DbG91ZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm9jZXNzLWRlZmluaXRpb24tY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrVmFyaWFibGVDbG91ZCB9IGZyb20gJy4uLy4uLy4uL2Zvcm0vbW9kZWxzL3Rhc2stdmFyaWFibGUtY2xvdWQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UGFyYW1zIHtcbiAgICBpbmNsdWRlOiAndmFyaWFibGVzJztcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdGFydFByb2Nlc3NDbG91ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2xvdWRTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwcm9jZXNzIGRlZmluaXRpb25zIGFzc29jaWF0ZWQgd2l0aCBhbiBhcHAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIG9wdGlvbmFsIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBwcm9jZXNzIGRlZmluaXRpb25zXG4gICAgICovXG4gICAgZ2V0UHJvY2Vzc0RlZmluaXRpb25zKGFwcE5hbWU6IHN0cmluZywgcXVlcnlQYXJhbXM/OiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UHJvY2Vzc0RlZmluaXRpb25DbG91ZFtdPiB7XG4gICAgICAgIGlmIChhcHBOYW1lIHx8IGFwcE5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWRlZmluaXRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHVybCwgcXVlcnlQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzLmxpc3QuZW50cmllcy5tYXAoKHByb2Nlc3NEZWZzKSA9PiBuZXcgUHJvY2Vzc0RlZmluaXRpb25DbG91ZChwcm9jZXNzRGVmcy5lbnRyeSkpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdBcHBOYW1lIG5vdCBjb25maWd1cmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydHMgYSBwcm9jZXNzIGJhc2VkIG9uIGEgcHJvY2VzcyBkZWZpbml0aW9uLCBuYW1lLCBmb3JtIHZhbHVlcyBvciB2YXJpYWJsZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBuYW1lIG9mIHRoZSBBcHBsaWNhdGlvblxuICAgICAqIEBwYXJhbSBwYXlsb2FkIERldGFpbHMgb2YgdGhlIHByb2Nlc3MgKGRlZmluaXRpb24ga2V5LCBuYW1lLCB2YXJpYWJsZXMsIGV0YylcbiAgICAgKiBAcmV0dXJucyBEZXRhaWxzIG9mIHRoZSBwcm9jZXNzIGluc3RhbmNlIGp1c3Qgc3RhcnRlZFxuICAgICAqL1xuICAgIHN0YXJ0UHJvY2VzcyhhcHBOYW1lOiBzdHJpbmcsIHBheWxvYWQ6IFByb2Nlc3NQYXlsb2FkQ2xvdWQpOiBPYnNlcnZhYmxlPFByb2Nlc3NJbnN0YW5jZUNsb3VkPiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtaW5zdGFuY2VzYDtcbiAgICAgICAgcGF5bG9hZC5wYXlsb2FkVHlwZSA9ICdTdGFydFByb2Nlc3NQYXlsb2FkJztcblxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0KHVybCwgcGF5bG9hZCkucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiByZXN1bHQuZW50cnkpKTtcbiAgICB9XG5cbiAgICBzdGFydFByb2Nlc3NXaXRoRm9ybShhcHBOYW1lOiBzdHJpbmcsIGZvcm1JZDogc3RyaW5nLCB2ZXJzaW9uOiBudW1iZXIsIHBheWxvYWQ6IGFueSk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vZm9ybS92MS9mb3Jtcy8ke2Zvcm1JZH0vc3VibWl0L3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgICAgICBwYXlsb2FkLnBheWxvYWRUeXBlID0gJ1N0YXJ0UHJvY2Vzc1BheWxvYWQnO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnBvc3QodXJsLCBwYXlsb2FkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgYW4gZXhpc3RpbmcgcHJvY2VzcyBpbnN0YW5jZVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgbmFtZSBvZiB0aGUgQXBwbGljYXRpb25cbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0luc3RhbmNlSWQgcHJvY2VzcyBpbnN0YW5jZSB0byB1cGRhdGVcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBEZXRhaWxzIG9mIHRoZSBwcm9jZXNzIChkZWZpbml0aW9uIGtleSwgbmFtZSwgdmFyaWFibGVzLCBldGMpXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgcHJvY2VzcyBpbnN0YW5jZSBqdXN0IHN0YXJ0ZWRcbiAgICAgKi9cbiAgICB1cGRhdGVQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZywgcGF5bG9hZDogUHJvY2Vzc1BheWxvYWRDbG91ZCk6IE9ic2VydmFibGU8UHJvY2Vzc0luc3RhbmNlQ2xvdWQ+IHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5nZXRCYXNlUGF0aChhcHBOYW1lKX0vcmIvdjEvcHJvY2Vzcy1pbnN0YW5jZXMvJHtwcm9jZXNzSW5zdGFuY2VJZH1gO1xuICAgICAgICBwYXlsb2FkLnBheWxvYWRUeXBlID0gJ1VwZGF0ZVByb2Nlc3NQYXlsb2FkJztcblxuICAgICAgICByZXR1cm4gdGhpcy5wdXQodXJsLCBwYXlsb2FkKS5waXBlKG1hcCgocHJvY2Vzc0luc3RhbmNlOiBhbnkpID0+IHByb2Nlc3NJbnN0YW5jZS5lbnRyeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhbiBleGlzdGluZyBwcm9jZXNzIGluc3RhbmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBBcHBsaWNhdGlvbiBuYW1lXG4gICAgICogQHBhcmFtIHByb2Nlc3NJbnN0YW5jZUlkIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBwcm9jZXNzIGluc3RhbmNlIHRvIHVwZGF0ZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8dm9pZD5cbiAgICAgKi9cbiAgICBkZWxldGVQcm9jZXNzKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWluc3RhbmNlcy8ke3Byb2Nlc3NJbnN0YW5jZUlkfWA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlKHVybCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3RhdGljIHZhbHVlcyBtYXBwZWQgdG8gdGhlIHN0YXJ0IGZvcm0gb2YgYSBwcm9jZXNzIGRlZmluaXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSBhcHBcbiAgICAgKiBAcGFyYW0gcHJvY2Vzc0RlZmluaXRpb25JZCBJRCBvZiB0aGUgdGFyZ2V0IHByb2Nlc3MgZGVmaW5pdGlvblxuICAgICAqIEByZXR1cm5zIFN0YXRpYyBtYXBwaW5ncyBmb3IgdGhlIHN0YXJ0IGV2ZW50XG4gICAgICovXG4gICAgZ2V0U3RhcnRFdmVudEZvcm1TdGF0aWNWYWx1ZXNNYXBwaW5nKGFwcE5hbWU6IHN0cmluZywgcHJvY2Vzc0RlZmluaXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrVmFyaWFibGVDbG91ZFtdPiB7XG4gICAgICAgIGNvbnN0IGFwaVVybCA9IGAke3RoaXMuZ2V0QmFzZVBhdGgoYXBwTmFtZSl9L3JiL3YxL3Byb2Nlc3MtZGVmaW5pdGlvbnMvJHtwcm9jZXNzRGVmaW5pdGlvbklkfS9zdGF0aWMtdmFsdWVzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGFwaVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXMpLmZvckVhY2goKG1hcHBpbmcpID0+IHJlc3VsdC5wdXNoKG5ldyBUYXNrVmFyaWFibGVDbG91ZCh7IG5hbWU6IG1hcHBpbmcsIHZhbHVlOiByZXNbbWFwcGluZ10gfSkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY29uc3RhbnRzIG1hcHBlZCB0byB0aGUgc3RhcnQgZm9ybSBvZiBhIHByb2Nlc3MgZGVmaW5pdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIGFwcFxuICAgICAqIEBwYXJhbSBwcm9jZXNzRGVmaW5pdGlvbklkIElEIG9mIHRoZSB0YXJnZXQgcHJvY2VzcyBkZWZpbml0aW9uXG4gICAgICogQHJldHVybnMgQ29uc3RhbnRzIHZhbHVlcyBmb3IgdGhlIHN0YXJ0IGV2ZW50XG4gICAgICovXG4gICAgZ2V0U3RhcnRFdmVudENvbnN0YW50cyhhcHBOYW1lOiBzdHJpbmcsIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGFza1ZhcmlhYmxlQ2xvdWRbXT4ge1xuICAgICAgICBjb25zdCBhcGlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKGFwcE5hbWUpfS9yYi92MS9wcm9jZXNzLWRlZmluaXRpb25zLyR7cHJvY2Vzc0RlZmluaXRpb25JZH0vY29uc3RhbnQtdmFsdWVzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGFwaVVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhyZXMpLmZvckVhY2goKGNvbnN0YW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFRhc2tWYXJpYWJsZUNsb3VkKHsgbmFtZTogY29uc3RhbnQsIHZhbHVlOiByZXNbY29uc3RhbnRdLCB0eXBlOiAnc3RyaW5nJyB9KSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19