@eo-sdk/client 10.7.0-rc.3 → 10.7.0-rc.5

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 (55) hide show
  1. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +3 -2
  2. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +59 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +1 -0
  6. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
  7. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +6 -1
  8. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
  9. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +4 -0
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
  11. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  12. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  13. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +2 -1
  14. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  15. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  16. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  17. package/app/eo-framework/quick-search/quick-search/quick-search.component.d.ts.map +1 -1
  18. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  19. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts.map +1 -1
  20. package/assets/_default/i18n/de.json +10 -3
  21. package/assets/_default/i18n/en.json +11 -4
  22. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  23. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +2 -2
  24. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +65 -48
  25. package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +44 -11
  26. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +17 -4
  27. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +38 -6
  28. package/esm2020/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  29. package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +17 -21
  30. package/esm2020/app/eo-client/process-state/process-state.component.mjs +1 -2
  31. package/esm2020/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  32. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +4 -4
  33. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +23 -8
  34. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +7 -3
  35. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +9 -3
  36. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +2 -2
  37. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +2 -2
  38. package/esm2020/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -1
  39. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +16 -3
  40. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  41. package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +4 -2
  42. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +3 -4
  43. package/esm2020/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.mjs +1 -1
  44. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +1 -3
  45. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  46. package/fesm2015/eo-sdk-client.mjs +240 -113
  47. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  48. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +1 -3
  49. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  50. package/fesm2020/eo-sdk-client.mjs +241 -111
  51. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  52. package/package.json +3 -3
  53. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
  54. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts +0 -4
  55. package/projects/eo-sdk/core/lib/service/auth/gateway-info.interface.d.ts.map +1 -1
@@ -158,7 +158,7 @@ let DashboardComponent = class DashboardComponent {
158
158
  setupComponent: ChartsSetupComponent,
159
159
  widgetComponent: ChartsWidgetComponent,
160
160
  }
161
- ]);
161
+ ].sort(Utils.sortValues('label')));
162
162
  }
163
163
  selectStoredQuery(q) {
164
164
  this.selectedQuery = q;
@@ -302,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
302
302
  type: HostListener,
303
303
  args: ['window:keyup', ['$event']]
304
304
  }] } });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFVTCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUl6QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFdEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDcEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFDLFlBQVks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QUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwSjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFlO1FBQ2pDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3REO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7U0FDbkQ7SUFDSCxDQUFDOzsrR0F4UlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNE5DeEQvQixncEJBYUEscXdGRHVDYztRQUNWLGFBQWE7S0FDZDtBQUVVLGtCQUFrQjtJQVQ5QixZQUFZLEVBQUU7R0FTRixrQkFBa0IsQ0F5UjlCO1NBelJZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLGNBQWMsY0FHWjt3QkFDVixhQUFhO3FCQUNkOytZQXlCeUIsYUFBYTtzQkFBdEMsU0FBUzt1QkFBQyxhQUFhO2dCQUd4QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENhcGFiaWxpdGllcyxcbiAgQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgQ29uZmlnLFxuICBFb1VzZXIsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICBTdG9yZWRRdWVyeSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVXNlclNlcnZpY2UsXG4gIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1xuICBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICBQaWN0dXJlV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gIFRvZG9XaWRnZXRDb21wb25lbnQsXG4gIFRvZG9XaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnLFxuICBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9uc1xufSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2UsIFBlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtsaXN0QW5pbWF0aW9ufSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7UXVpY2tTZWFyY2hDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yayc7XG5pbXBvcnQge1NlYXJjaFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL3NlYXJjaC13aWRnZXQvc2VhcmNoLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7SWZyYW1lU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS1zZXR1cC9pZnJhbWUtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7TGFzdEVkaXRlZEFuZENyZWF0ZWRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9sYXN0LWVkaXRlZC13aWRnZXQvbGFzdC1lZGl0ZWQtYW5kLWNyZWF0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7SWZyYW1lV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaWZyYW1lLXdpZGdldC9pZnJhbWUtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWludHJheS13aWRnZXQvaW5mby1pbnRyYXktd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS1zZXR1cC9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW5ib3gtd2lkZ2V0L2luZm8taW5ib3gtc2V0dXAvaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtIaXRsaXN0U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9oaXRsaXN0LXdpZGdldC9oaXRsaXN0LXNldHVwL2hpdGxpc3Qtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7SGl0bGlzdFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2hpdGxpc3Qtd2lkZ2V0L2hpdGxpc3Qtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0FmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydHNXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q2hhcnRzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY291bnQtb2JqZWN0cy13aWRnZXQvY291bnQtb2JqZWN0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jb3VudC1vYmplY3RzLXdpZGdldC9jb3VudC1vYmplY3RzLXNldHVwL2NvdW50LW9iamVjdHMtc2V0dXAuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBsaXN0QW5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICB3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gIHdvcmtzcGFjZU9wdGlvbnM6IFdpZGdldEdyaWRXb3Jrc3BhY2VPcHRpb25zID0ge1xuICAgIGdyaWRDb25maWc6IHtcbiAgICAgIHJvd3M6IDMwLFxuICAgICAgbmV3SXRlbVdpZHRoOiAyLFxuICAgICAgbmV3SXRlbUhlaWdodDogNVxuICAgIH1cbiAgfTtcbiAgYmFja2dyb3VuZEltYWdlOiBzdHJpbmc7XG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWlja1NlYXJjaFJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQ7XG4gIHRyZWUgPSB7fTtcbiAgU1RPUkFHRV9LRVkgPSAnZW8uY2xpZW50LmRhc2hib2FyZC5jdXJyZW50V29ya3NwYWNlJztcbiAgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XG4gIHRvb2xiYXJJY29uU3JjOiBzdHJpbmc7XG4gIHRvb2xiYXJJY29uVG9vbHRpcDogc3RyaW5nO1xuICBwZW5kaW5nVGFza0lEID0gJyc7XG5cbiAgdXNlcjogRW9Vc2VyO1xuICBAVmlld0NoaWxkKCdxdWlja1NlYXJjaCcpIHF1aWNrU2VhcmNoRWw6IFF1aWNrU2VhcmNoQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R3JpZFJlZ2lzdHJ5OiBXaWRnZXRHcmlkUmVnaXN0cnksXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcbiAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2UucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uV29ya3NwYWNlc0NvbmZpZ0NoYW5nZShjOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSB7XG4gICAgdGhpcy5zYXZlV29ya3NwYWNlc0NvbmZpZyhjKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkZ2V0R3JpZExhYmVscygpIHtcbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS51cGRhdGVSZWdpc3RlcmVkV2lkZ2V0c0xhYmVscyh7XG4gICAgICBcInl1di53aWRnZXQucGljdHVyZVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC50b2RvXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuTGFzdEVkaXRlZFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0Lmxhc3RFZGl0ZWRPckxhc3RDcmVhdGVkLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaWZyYW1lXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaWZyYW1lLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaW5mb0ludHJheVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5pbmZvSW5ib3hcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5xdWlja1NlYXJjaFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnF1aWNrc2VhcmNoLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaGl0bGlzdFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmhpdGxpc3QubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5jb3VudE9iamVjdHNcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5jb3VudE9iamVjdC5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmNoYXJ0XCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnQubGFiZWwnKSxcbiAgICB9KTtcblxuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnVwZGF0ZVdpZGdldEdyaWRMYWJlbHMoe1xuICAgICAgd2lkZ2V0UGlja2VyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFBpY2tlclRpdGxlJyksXG4gICAgICBhZGRXb3Jrc3BhY2VUb29sdGlwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGRXb3Jrc3BhY2UnKSxcbiAgICAgIG5vb3BXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubm9vcFdpZGdldExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VzRW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VzRW1wdHlNZXNzYWdlJyksXG4gICAgICBuZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlTGFiZWxQbGFjZWhvbGRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubmV3V29ya3NwYWNlRGVmYXVsdExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VSZW1vdmVDb25maXJtTWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2UnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXREb25lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VFZGl0RG9uZScpLFxuICAgICAgd29ya3NwYWNlRWRpdENhbmNlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY2FuY2VsJyksXG4gICAgICBzYXZlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5zYXZlJyksXG4gICAgICBjYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgY29uZmlybTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY29uZmlybScpLFxuICAgICAgd2lkZ2V0VG9kb0hlYWRsaW5lTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICB3aWRnZXRUb2RvVGFza1RpdGxlTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRpdGxlTGFiZWwnKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlcldpZGdldHMoKSB7XG5cbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS5yZWdpc3RlckdyaWRXaWRnZXRzKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucGljdHVyZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQudG9kbycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogVG9kb1dpZGdldFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFRvZG9XaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5MYXN0RWRpdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQubGFzdEVkaXRlZE9yTGFzdENyZWF0ZWQubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmlmcmFtZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IElmcmFtZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IElmcmFtZVNldHVwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0ludHJheScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0ludHJheVNldHVwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pbmZvSW5ib3gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW5ib3hXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJbmZvSW5ib3hTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucXVpY2tTZWFyY2gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFNlYXJjaFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmhpdGxpc3QnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5oaXRsaXN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBIaXRsaXN0U2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogSGl0bGlzdFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmNvdW50T2JqZWN0cycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNvdW50T2JqZWN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDb3VudE9iamVjdHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDb3VudE9iamVjdHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5jaGFydCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDaGFydHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDaGFydHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9XG4gICAgXSk7XG4gIH1cblxuICBzZWxlY3RTdG9yZWRRdWVyeShxOiBTdG9yZWRRdWVyeSkge1xuICAgIHRoaXMuc2VsZWN0ZWRRdWVyeSA9IHE7XG4gIH1cblxuICAvLyB1c2VyIGNoYW5nZWQgaW5wdXQgb2YgcXVpY2tTZWFyY2ggY29tcG9uZW50XG4gIG9uUXVpY2tTZWFyY2hJbnB1dENoYW5nZSh0ZXJtKSB7XG4gICAgdGhpcy5xdWlja1NlYXJjaFJlc3VsdCA9IG51bGw7XG4gIH1cblxuICAvLyBxdWlja1NlYXJjaCBjb21wb25lbnQgaXMgcmV0dXJuaW5nIHJlc3VsdHNcbiAgb25RdWlja1NlYXJjaFJlc3VsdChyZXN1bHQ6IFF1aWNrU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5xdWlja1NlYXJjaFJlc3VsdCA9IHJlc3VsdDtcbiAgICBPYmplY3Qua2V5cyh0aGlzLnF1aWNrU2VhcmNoUmVzdWx0Lmdyb3VwcykubWFwKGtleSA9PiAodGhpcy50cmVlW2tleV0gPSB0aGlzLmdldFRyZWVOb2RlcyhrZXkpKSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5TG9hZGVkKCkge1xuICAgIHRoaXMuc2VsZWN0U3RvcmVkUXVlcnkobnVsbCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlFeGVjdXRlKGV2dCkge1xuICAgIHRoaXMuc2VsZWN0U3RvcmVkUXVlcnkobnVsbCk7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxuICBnZXRUcmVlTm9kZXMoa2V5KTogVHJlZU5vZGVbXSB7XG4gICAgcmV0dXJuIHRoaXMucXVpY2tTZWFyY2hSZXN1bHQuZ3JvdXBzW2tleV0ubWFwKGdyb3VwID0+ICh7XG4gICAgICBpZDogZ3JvdXAuZGF0YS5pZCxcbiAgICAgIG5hbWU6IGdyb3VwLmxhYmVsLFxuICAgICAgc2VsZWN0YWJsZTogdHJ1ZSxcbiAgICAgIGRhdGE6IGdyb3VwLmRhdGEsXG4gICAgICBiYWRnZXM6IFt7dmFsdWU6IGdyb3VwLmNvdW50fV1cbiAgICB9KSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRXb3Jrc3BhY2VzQ29uZmlnKCk7XG4gICAgdGhpcy5yZWdpc3RlcldpZGdldHMoKTtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG4gICAgaWYgKHRoaXMuY2FwYWJpbGl0aWVzLnN0b3JlZHF1ZXJpZXMpIHtcbiAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZShxdWVyaWVzU3Vic2NyaXB0aW9uID0+IHRoaXMuc3RvcmVkUXVlcmllcyA9IHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcy5maWx0ZXIocSA9PiBxLmZhdm9yaXRlKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ25hbWUnKSkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50b29sYmFyVmlzaWJsZSA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3MudG9vbGJhclZpc2liaWxpdHk7XG4gICAgICBjb25zdCB0b29sYmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnRvb2xiYXJWaXNpYmxlID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmhpZGVUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93VG9vbGJhcih0b29sYmFyKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNob3dEYXNoYm9hcmRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGFzaGJvYXJkQnV0dG9uJyk7XG4gICAgICBzaG93RGFzaGJvYXJkQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVPclNob3dPbkNsaWNrKHRvb2xiYXIpO1xuICAgICAgfSk7XG4gICAgfSwgMjAwKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBoaWRlVG9vbGJhcih0b29sYmFyOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMudG9vbGJhckljb25TcmMgPSAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd191cC5zdmcnO1xuICAgIHRoaXMudG9vbGJhckljb25Ub29sdGlwID0gJ2VvLmRhc2hib2FyZC5idXR0b24uc2hvdy5mb290ZXIudG9vbHRpcCc7XG4gICAgdG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIHRoaXMudG9vbGJhclZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1Rvb2xiYXIodG9vbGJhcjogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnRvb2xiYXJJY29uU3JjID0gJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnO1xuICAgIHRoaXMudG9vbGJhckljb25Ub29sdGlwID0gJ2VvLmRhc2hib2FyZC5idXR0b24uaGlkZS5mb290ZXIudG9vbHRpcCc7XG4gICAgdG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIHRoaXMudG9vbGJhclZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlT3JTaG93T25DbGljayh0b29sYmFyOiBIVE1MRWxlbWVudCkge1xuICAgIGlmICh0aGlzLnRvb2xiYXJWaXNpYmxlKSB7XG4gICAgICB0aGlzLmhpZGVUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zYXZlVG9vbGJhclN0YXRlKHRoaXMudG9vbGJhclZpc2libGUpLnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zYXZlVG9vbGJhclN0YXRlKHRoaXMudG9vbGJhclZpc2libGUpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFdvcmtzcGFjZXNDb25maWcoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgfHwgdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy53b3Jrc3BhY2VPcHRpb25zLndvcmtzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KCdhc3NldHMvZGFzaGJvYXJkLmpzb24nKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSA9PiB7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcgPSByZXM7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5sYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5sYWJlbCk7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5ncmlkLmZvckVhY2goZ3JpZCA9PiB7XG4gICAgICAgICAgICBpZiAoZ3JpZC53aWRnZXRDb25maWcpIHtcbiAgICAgICAgICAgICAgZ3JpZC53aWRnZXRDb25maWcudGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGdyaWQud2lkZ2V0Q29uZmlnLnRpdGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAvLyBubyBjb25maWcgZmlsZSBmb3VuZFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnM7XG4gICAgICBjb25zdCBjdXJyZW50V29ya3NwYWNlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKGN1cnJlbnRXb3Jrc3BhY2UgJiYgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlcy5tYXAoKHcpID0+IHcuaWQpLmluY2x1ZGVzKGN1cnJlbnRXb3Jrc3BhY2UpKSB7XG4gICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLmN1cnJlbnRXb3Jrc3BhY2UgPSBjdXJyZW50V29ya3NwYWNlO1xuICAgICAgfSBlbHNlIGlmICghIXRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLmN1cnJlbnRXb3Jrc3BhY2UgPSB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmlkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVdvcmtzcGFjZXNDb25maWcoYzogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykge1xuICAgIC8vIHRoZSBzZWxlY3RlZCB3b3Jrc3BhY2UgaXMgc2F2ZWQgb24gdGhlIGRldmljZSB3aGlsZSB0aGUgd29ya3NwYWNlcyB0aGVtc2VsdmVzIGFyZSBzdG9yZWQgb24gdGhlIHVzZXIgc2VydmljZVxuICAgIGlmIChjKSB7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVDaGFuZ2VXb3Jrc3BhY2UoYykucGlwZShzd2l0Y2hNYXAoYXN5bmMgKCkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVksIGMuY3VycmVudFdvcmtzcGFjZSkpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvbldvcmtzcGFjZUVkaXRNb2RlKG9uRWRpdDogYm9vbGVhbikge1xuICAgIGlmIChvbkVkaXQpIHtcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJRCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSUQpXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmFkZVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvblwiIGVvUnRsQXdhcmU9XCJmdWxsXCI+XG4gICAgICA8ZW8taWNvbiBpZD1cImRhc2hib2FyZEJ1dHRvblwiIFtpY29uU3JjXT1cInRvb2xiYXJJY29uU3JjXCIgW2ljb25UaXRsZV09XCJ0b29sYmFySWNvblRvb2x0aXAgfCB0cmFuc2xhdGVcIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG4gICAgPHl1di13aWRnZXQtZ3JpZC13b3Jrc3BhY2VzICpuZ0lmPVwid29ya3NwYWNlQ29uZmlnXCJcbiAgICBbd29ya3NwYWNlTGFiZWxNYXhMZW5ndGhdPVwiNTBcIlxuICAgIFt3b3Jrc3BhY2VDb25maWddPVwid29ya3NwYWNlQ29uZmlnXCJcbiAgICAgIChjb25maWdDaGFuZ2UpPVwib25Xb3Jrc3BhY2VzQ29uZmlnQ2hhbmdlKCRldmVudClcIiAoZWRpdE1vZGVDaGFuZ2UpPVwib25Xb3Jrc3BhY2VFZGl0TW9kZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwid29ya3NwYWNlT3B0aW9uc1wiPlxuICAgIDwveXV2LXdpZGdldC1ncmlkLXdvcmtzcGFjZXM+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFVTCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUl6QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFdEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDcEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFDLFlBQVks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QU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwSjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFlO1FBQ2pDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3REO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7U0FDbkQ7SUFDSCxDQUFDOzsrR0F4UlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNE5DeEQvQixncEJBYUEscXdGRHVDYztRQUNWLGFBQWE7S0FDZDtBQUVVLGtCQUFrQjtJQVQ5QixZQUFZLEVBQUU7R0FTRixrQkFBa0IsQ0F5UjlCO1NBelJZLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLGNBQWMsY0FHWjt3QkFDVixhQUFhO3FCQUNkOytZQXlCeUIsYUFBYTtzQkFBdEMsU0FBUzt1QkFBQyxhQUFhO2dCQUd4QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0NvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENhcGFiaWxpdGllcyxcbiAgQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgQ29uZmlnLFxuICBFb1VzZXIsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICBTdG9yZWRRdWVyeSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVXNlclNlcnZpY2UsXG4gIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1xuICBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICBQaWN0dXJlV2lkZ2V0U2V0dXBDb21wb25lbnQsXG4gIFRvZG9XaWRnZXRDb21wb25lbnQsXG4gIFRvZG9XaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnLFxuICBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9uc1xufSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2UsIFBlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtsaXN0QW5pbWF0aW9ufSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtRdWlja1NlYXJjaFJlc3VsdH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7UXVpY2tTZWFyY2hDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yayc7XG5pbXBvcnQge1NlYXJjaFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL3NlYXJjaC13aWRnZXQvc2VhcmNoLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmVlTm9kZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7SWZyYW1lU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS1zZXR1cC9pZnJhbWUtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7TGFzdEVkaXRlZEFuZENyZWF0ZWRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9sYXN0LWVkaXRlZC13aWRnZXQvbGFzdC1lZGl0ZWQtYW5kLWNyZWF0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7SWZyYW1lV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaWZyYW1lLXdpZGdldC9pZnJhbWUtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWludHJheS13aWRnZXQvaW5mby1pbnRyYXktd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS1zZXR1cC9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW5ib3gtd2lkZ2V0L2luZm8taW5ib3gtc2V0dXAvaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtIaXRsaXN0U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9oaXRsaXN0LXdpZGdldC9oaXRsaXN0LXNldHVwL2hpdGxpc3Qtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7SGl0bGlzdFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2hpdGxpc3Qtd2lkZ2V0L2hpdGxpc3Qtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0FmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydHNXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q2hhcnRzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY291bnQtb2JqZWN0cy13aWRnZXQvY291bnQtb2JqZWN0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jb3VudC1vYmplY3RzLXdpZGdldC9jb3VudC1vYmplY3RzLXNldHVwL2NvdW50LW9iamVjdHMtc2V0dXAuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBsaXN0QW5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICB3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gIHdvcmtzcGFjZU9wdGlvbnM6IFdpZGdldEdyaWRXb3Jrc3BhY2VPcHRpb25zID0ge1xuICAgIGdyaWRDb25maWc6IHtcbiAgICAgIHJvd3M6IDMwLFxuICAgICAgbmV3SXRlbVdpZHRoOiAyLFxuICAgICAgbmV3SXRlbUhlaWdodDogNVxuICAgIH1cbiAgfTtcbiAgYmFja2dyb3VuZEltYWdlOiBzdHJpbmc7XG4gIGNhcGFiaWxpdGllczogQ2FwYWJpbGl0aWVzO1xuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBxdWlja1NlYXJjaFJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQ7XG4gIHRyZWUgPSB7fTtcbiAgU1RPUkFHRV9LRVkgPSAnZW8uY2xpZW50LmRhc2hib2FyZC5jdXJyZW50V29ya3NwYWNlJztcbiAgdG9vbGJhclZpc2libGU6IGJvb2xlYW47XG4gIHRvb2xiYXJJY29uU3JjOiBzdHJpbmc7XG4gIHRvb2xiYXJJY29uVG9vbHRpcDogc3RyaW5nO1xuICBwZW5kaW5nVGFza0lEID0gJyc7XG5cbiAgdXNlcjogRW9Vc2VyO1xuICBAVmlld0NoaWxkKCdxdWlja1NlYXJjaCcpIHF1aWNrU2VhcmNoRWw6IFF1aWNrU2VhcmNoQ29tcG9uZW50O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5KGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LndoaWNoID09PSAyNykge1xuICAgICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2lkZ2V0R3JpZFJlZ2lzdHJ5OiBXaWRnZXRHcmlkUmVnaXN0cnksXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcbiAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2UucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uV29ya3NwYWNlc0NvbmZpZ0NoYW5nZShjOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSB7XG4gICAgdGhpcy5zYXZlV29ya3NwYWNlc0NvbmZpZyhjKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkZ2V0R3JpZExhYmVscygpIHtcbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS51cGRhdGVSZWdpc3RlcmVkV2lkZ2V0c0xhYmVscyh7XG4gICAgICBcInl1di53aWRnZXQucGljdHVyZVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC50b2RvXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuTGFzdEVkaXRlZFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0Lmxhc3RFZGl0ZWRPckxhc3RDcmVhdGVkLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaWZyYW1lXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaWZyYW1lLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaW5mb0ludHJheVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5pbmZvSW5ib3hcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5xdWlja1NlYXJjaFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnF1aWNrc2VhcmNoLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaGl0bGlzdFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmhpdGxpc3QubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5jb3VudE9iamVjdHNcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5jb3VudE9iamVjdC5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmNoYXJ0XCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnQubGFiZWwnKSxcbiAgICB9KTtcblxuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnVwZGF0ZVdpZGdldEdyaWRMYWJlbHMoe1xuICAgICAgd2lkZ2V0UGlja2VyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFBpY2tlclRpdGxlJyksXG4gICAgICBhZGRXb3Jrc3BhY2VUb29sdGlwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGRXb3Jrc3BhY2UnKSxcbiAgICAgIG5vb3BXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubm9vcFdpZGdldExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VzRW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VzRW1wdHlNZXNzYWdlJyksXG4gICAgICBuZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlTGFiZWxQbGFjZWhvbGRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubmV3V29ya3NwYWNlRGVmYXVsdExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VSZW1vdmVDb25maXJtTWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2UnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXREb25lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VFZGl0RG9uZScpLFxuICAgICAgd29ya3NwYWNlRWRpdENhbmNlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY2FuY2VsJyksXG4gICAgICBzYXZlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5zYXZlJyksXG4gICAgICBjYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgY29uZmlybTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY29uZmlybScpLFxuICAgICAgd2lkZ2V0VG9kb0hlYWRsaW5lTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICB3aWRnZXRUb2RvVGFza1RpdGxlTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRpdGxlTGFiZWwnKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlcldpZGdldHMoKSB7XG5cbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS5yZWdpc3RlckdyaWRXaWRnZXRzKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucGljdHVyZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQudG9kbycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogVG9kb1dpZGdldFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFRvZG9XaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5MYXN0RWRpdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQubGFzdEVkaXRlZE9yTGFzdENyZWF0ZWQubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmlmcmFtZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IElmcmFtZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IElmcmFtZVNldHVwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0ludHJheScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0ludHJheVNldHVwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pbmZvSW5ib3gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW5ib3hXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJbmZvSW5ib3hTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucXVpY2tTZWFyY2gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFNlYXJjaFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmhpdGxpc3QnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5oaXRsaXN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBIaXRsaXN0U2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogSGl0bGlzdFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmNvdW50T2JqZWN0cycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNvdW50T2JqZWN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDb3VudE9iamVjdHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDb3VudE9iamVjdHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5jaGFydCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDaGFydHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDaGFydHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9XG4gICAgXS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpKTtcbiAgfVxuXG4gIHNlbGVjdFN0b3JlZFF1ZXJ5KHE6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3RlZFF1ZXJ5ID0gcTtcbiAgfVxuXG4gIC8vIHVzZXIgY2hhbmdlZCBpbnB1dCBvZiBxdWlja1NlYXJjaCBjb21wb25lbnRcbiAgb25RdWlja1NlYXJjaElucHV0Q2hhbmdlKHRlcm0pIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gbnVsbDtcbiAgfVxuXG4gIC8vIHF1aWNrU2VhcmNoIGNvbXBvbmVudCBpcyByZXR1cm5pbmcgcmVzdWx0c1xuICBvblF1aWNrU2VhcmNoUmVzdWx0KHJlc3VsdDogUXVpY2tTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnF1aWNrU2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgIE9iamVjdC5rZXlzKHRoaXMucXVpY2tTZWFyY2hSZXN1bHQuZ3JvdXBzKS5tYXAoa2V5ID0+ICh0aGlzLnRyZWVba2V5XSA9IHRoaXMuZ2V0VHJlZU5vZGVzKGtleSkpKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zZWxlY3RTdG9yZWRRdWVyeShudWxsKTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG4gIGdldFRyZWVOb2RlcyhrZXkpOiBUcmVlTm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5xdWlja1NlYXJjaFJlc3VsdC5ncm91cHNba2V5XS5tYXAoZ3JvdXAgPT4gKHtcbiAgICAgIGlkOiBncm91cC5kYXRhLmlkLFxuICAgICAgbmFtZTogZ3JvdXAubGFiZWwsXG4gICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgZGF0YTogZ3JvdXAuZGF0YSxcbiAgICAgIGJhZGdlczogW3t2YWx1ZTogZ3JvdXAuY291bnR9XVxuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFdvcmtzcGFjZXNDb25maWcoKTtcbiAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0cygpO1xuICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gdGhpcy5jYXBhYmlsaXR5U2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcbiAgICBpZiAodGhpcy5jYXBhYmlsaXRpZXMuc3RvcmVkcXVlcmllcykge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyaWVzJCgpXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4gdGhpcy5zdG9yZWRRdWVyaWVzID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEuZmF2b3JpdGUpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbmFtZScpKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRvb2xiYXJWaXNpYmxlID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eTtcbiAgICAgIGNvbnN0IHRvb2xiYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKHRoaXMudG9vbGJhclZpc2libGUgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuaGlkZVRvb2xiYXIodG9vbGJhcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2hvd0Rhc2hib2FyZEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXNoYm9hcmRCdXR0b24nKTtcbiAgICAgIHNob3dEYXNoYm9hcmRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZU9yU2hvd09uQ2xpY2sodG9vbGJhcik7XG4gICAgICB9KTtcbiAgICB9LCAyMDApO1xuXG4gIH1cblxuICBwcml2YXRlIGhpZGVUb29sYmFyKHRvb2xiYXI6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy50b29sYmFySWNvblNyYyA9ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X3VwLnN2Zyc7XG4gICAgdGhpcy50b29sYmFySWNvblRvb2x0aXAgPSAnZW8uZGFzaGJvYXJkLmJ1dHRvbi5zaG93LmZvb3Rlci50b29sdGlwJztcbiAgICB0b29sYmFyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgdGhpcy50b29sYmFyVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93VG9vbGJhcih0b29sYmFyOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMudG9vbGJhckljb25TcmMgPSAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2Zyc7XG4gICAgdGhpcy50b29sYmFySWNvblRvb2x0aXAgPSAnZW8uZGFzaGJvYXJkLmJ1dHRvbi5oaWRlLmZvb3Rlci50b29sdGlwJztcbiAgICB0b29sYmFyLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgdGhpcy50b29sYmFyVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGhpZGVPclNob3dPbkNsaWNrKHRvb2xiYXI6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMudG9vbGJhclZpc2libGUpIHtcbiAgICAgIHRoaXMuaGlkZVRvb2xiYXIodG9vbGJhcik7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVUb29sYmFyU3RhdGUodGhpcy50b29sYmFyVmlzaWJsZSkuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd1Rvb2xiYXIodG9vbGJhcik7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVUb29sYmFyU3RhdGUodGhpcy50b29sYmFyVmlzaWJsZSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkV29ya3NwYWNlc0NvbmZpZygpIHtcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucyB8fCB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMud29ya3NwYWNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuaHR0cC5nZXQoJ2Fzc2V0cy9kYXNoYm9hcmQuanNvbicpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpID0+IHtcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZyA9IHJlcztcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmxhYmVsKTtcbiAgICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmdyaWQuZm9yRWFjaChncmlkID0+IHtcbiAgICAgICAgICAgIGlmIChncmlkLndpZGdldENvbmZpZykge1xuICAgICAgICAgICAgICBncmlkLndpZGdldENvbmZpZy50aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZ3JpZC53aWRnZXRDb25maWcudGl0bGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIC8vIG5vIGNvbmZpZyBmaWxlIGZvdW5kXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZyA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucztcbiAgICAgIGNvbnN0IGN1cnJlbnRXb3Jrc3BhY2UgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoY3VycmVudFdvcmtzcGFjZSAmJiB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzLm1hcCgodykgPT4gdy5pZCkuaW5jbHVkZXMoY3VycmVudFdvcmtzcGFjZSkpIHtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcuY3VycmVudFdvcmtzcGFjZSA9IGN1cnJlbnRXb3Jrc3BhY2U7XG4gICAgICB9IGVsc2UgaWYgKCEhdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcuY3VycmVudFdvcmtzcGFjZSA9IHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXNbMF0uaWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlV29ya3NwYWNlc0NvbmZpZyhjOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSB7XG4gICAgLy8gdGhlIHNlbGVjdGVkIHdvcmtzcGFjZSBpcyBzYXZlZCBvbiB0aGUgZGV2aWNlIHdoaWxlIHRoZSB3b3Jrc3BhY2VzIHRoZW1zZWx2ZXMgYXJlIHN0b3JlZCBvbiB0aGUgdXNlciBzZXJ2aWNlXG4gICAgaWYgKGMpIHtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2F2ZUNoYW5nZVdvcmtzcGFjZShjKS5waXBlKHN3aXRjaE1hcChhc3luYyAoKSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSwgYy5jdXJyZW50V29ya3NwYWNlKSkpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uV29ya3NwYWNlRWRpdE1vZGUob25FZGl0OiBib29sZWFuKSB7XG4gICAgaWYgKG9uRWRpdCkge1xuICAgICAgdGhpcy5wZW5kaW5nVGFza0lEID0gdGhpcy5wZW5kaW5nQ2hhbmdlcy5zdGFydFRhc2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy5maW5pc2hUYXNrKHRoaXMucGVuZGluZ1Rhc2tJRClcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmYWRlXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmRcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJiYWNrZ3JvdW5kSW1hZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyQnV0dG9uXCIgZW9SdGxBd2FyZT1cImZ1bGxcIj5cbiAgICAgIDxlby1pY29uIGlkPVwiZGFzaGJvYXJkQnV0dG9uXCIgW2ljb25TcmNdPVwidG9vbGJhckljb25TcmNcIiBbaWNvblRpdGxlXT1cInRvb2xiYXJJY29uVG9vbHRpcCB8IHRyYW5zbGF0ZVwiPjwvZW8taWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8eXV2LXdpZGdldC1ncmlkLXdvcmtzcGFjZXMgKm5nSWY9XCJ3b3Jrc3BhY2VDb25maWdcIlxuICAgIFt3b3Jrc3BhY2VMYWJlbE1heExlbmd0aF09XCI1MFwiXG4gICAgW3dvcmtzcGFjZUNvbmZpZ109XCJ3b3Jrc3BhY2VDb25maWdcIlxuICAgICAgKGNvbmZpZ0NoYW5nZSk9XCJvbldvcmtzcGFjZXNDb25maWdDaGFuZ2UoJGV2ZW50KVwiIChlZGl0TW9kZUNoYW5nZSk9XCJvbldvcmtzcGFjZUVkaXRNb2RlKCRldmVudClcIiBbb3B0aW9uc109XCJ3b3Jrc3BhY2VPcHRpb25zXCI+XG4gICAgPC95dXYtd2lkZ2V0LWdyaWQtd29ya3NwYWNlcz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -17,6 +17,7 @@ import * as i9 from "../charts-widget.component";
17
17
  let ChartsSetupComponent = class ChartsSetupComponent {
18
18
  set widgetConfig(wc) {
19
19
  this._widgetConfig = wc;
20
+ this.updateField();
20
21
  }
21
22
  get widgetConfig() {
22
23
  return this._widgetConfig;
@@ -56,10 +57,10 @@ let ChartsSetupComponent = class ChartsSetupComponent {
56
57
  this.setWidgetConfig();
57
58
  });
58
59
  this.getStoredQuerys();
59
- this.getChartFiled();
60
- this.getHistogramFiled();
60
+ this.getChartField();
61
61
  }
62
62
  setWidgetConfig() {
63
+ this.histogramTypePicker.codesystem = null;
63
64
  if (this.setupForm.valid && this.storedQueries) {
64
65
  this.storedQuery = this.storedQueries.find((sq) => sq.name === this.setupForm.get('storedQuery').value);
65
66
  this.widgetConfig = {
@@ -70,18 +71,12 @@ let ChartsSetupComponent = class ChartsSetupComponent {
70
71
  if (this.setupForm.get('storedQuery').value !== this.selectedSavedSearchName) {
71
72
  if (this.storedQuery) {
72
73
  setTimeout(() => {
73
- this.aggregationPicker.codesystem = null;
74
74
  if (this.selectedSavedSearchName !== '') {
75
75
  this.setupForm.patchValue({
76
76
  aggregation: 'sysobject.created',
77
77
  });
78
78
  }
79
- if (this.storedQuery.types.length !== 1) {
80
- this.getAggregationField('sysdocument');
81
- }
82
- else {
83
- this.getAggregationField(this.storedQuery.types[0].qname);
84
- }
79
+ this.updateField();
85
80
  this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;
86
81
  this.isDateTimeType = this.widgetConfig?.formValue.aggregation === 'sysobject.created' || this.widgetConfig?.aggregationType === 'DATETIME';
87
82
  }, 100);
@@ -113,14 +108,28 @@ let ChartsSetupComponent = class ChartsSetupComponent {
113
108
  this.storedQuery = storedQuery;
114
109
  }));
115
110
  }
111
+ updateField() {
112
+ this.getHistogramField();
113
+ if (this.storedQuery?.types?.length !== 1) {
114
+ this.getAggregationField('sysdocument');
115
+ }
116
+ else {
117
+ this.getAggregationField(this.storedQuery?.types[0]?.qname);
118
+ }
119
+ }
116
120
  getAggregationField(type) {
121
+ this.aggregationPicker.codesystem = null;
117
122
  return this.userService.getFieldDefinition(type).pipe(untilDestroyed(this)).subscribe(definition => {
118
123
  let exclude = new Set(['filename', 'mimetype', 'modifiertitle', 'version', 'creatortitle', 'title', 'description']);
119
124
  if (type !== 'sysdocument') {
120
125
  exclude.add('type');
121
126
  }
127
+ let filteredFields = definition.elements.filter(field => !exclude.has(field.hitname));
128
+ if (this.widgetConfig?.formValue?.chartType === 'lineCurve' || this.widgetConfig?.formValue?.chartType === 'lineStraight') {
129
+ filteredFields = filteredFields.filter(field => field.type === 'DATETIME');
130
+ }
122
131
  this.aggregationPicker.codesystem = {
123
- entries: definition.elements.filter(field => !exclude.has(field.hitname)).map(field => ({
132
+ entries: filteredFields.map(field => ({
124
133
  id: field.label,
125
134
  defaultrepresentation: field.label,
126
135
  data: field.qname,
@@ -129,7 +138,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
129
138
  };
130
139
  });
131
140
  }
132
- getChartFiled() {
141
+ getChartField() {
133
142
  return this.chartTypePicker.codesystem = {
134
143
  entries: [
135
144
  {
@@ -150,6 +159,18 @@ let ChartsSetupComponent = class ChartsSetupComponent {
150
159
  label: this.translate.instant('eo.workspace.widget.charts.type.donut'),
151
160
  value: 'donut',
152
161
  },
162
+ {
163
+ id: 'lineStraight',
164
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.type.lineStraight'),
165
+ label: this.translate.instant('eo.workspace.widget.charts.type.lineStraight'),
166
+ value: 'lineStraight',
167
+ },
168
+ {
169
+ id: 'lineCurve',
170
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.type.lineCurve'),
171
+ label: this.translate.instant('eo.workspace.widget.charts.type.lineCurve'),
172
+ value: 'lineCurve',
173
+ }
153
174
  ].map((res) => ({
154
175
  id: res.id,
155
176
  label: res.label,
@@ -158,40 +179,36 @@ let ChartsSetupComponent = class ChartsSetupComponent {
158
179
  })).sort(Utils.sortValues('defaultrepresentation')),
159
180
  };
160
181
  }
161
- getHistogramFiled() {
182
+ getHistogramField() {
183
+ this.histogramTypePicker.codesystem = null;
184
+ let entries = [
185
+ {
186
+ id: 'daily',
187
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.daily'),
188
+ label: this.translate.instant('eo.workspace.widget.charts.histogram.daily'),
189
+ value: 'daily'
190
+ },
191
+ {
192
+ id: 'weekly',
193
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.weekly'),
194
+ label: this.translate.instant('eo.workspace.widget.charts.histogram.weekly'),
195
+ value: 'weekly'
196
+ },
197
+ {
198
+ id: 'monthly',
199
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.monthly'),
200
+ label: this.translate.instant('eo.workspace.widget.charts.histogram.monthly'),
201
+ value: 'monthly'
202
+ },
203
+ {
204
+ id: 'yearly',
205
+ defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.yearly'),
206
+ label: this.translate.instant('eo.workspace.widget.charts.histogram.yearly'),
207
+ value: 'yearly'
208
+ }
209
+ ];
162
210
  return this.histogramTypePicker.codesystem = {
163
- entries: [
164
- {
165
- id: 'standard',
166
- defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.standard'),
167
- label: this.translate.instant('eo.workspace.widget.charts.histogram.standard'),
168
- value: 'standard',
169
- },
170
- {
171
- id: 'daily',
172
- defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.daily'),
173
- label: this.translate.instant('eo.workspace.widget.charts.histogram.daily'),
174
- value: 'daily'
175
- },
176
- {
177
- id: 'weekly',
178
- defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.weekly'),
179
- label: this.translate.instant('eo.workspace.widget.charts.histogram.weekly'),
180
- value: 'weekly'
181
- },
182
- {
183
- id: 'monthly',
184
- defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.monthly'),
185
- label: this.translate.instant('eo.workspace.widget.charts.histogram.monthly'),
186
- value: 'monthly'
187
- },
188
- {
189
- id: 'yearly',
190
- defaultrepresentation: this.translate.instant('eo.workspace.widget.charts.histogram.yearly'),
191
- label: this.translate.instant('eo.workspace.widget.charts.histogram.yearly'),
192
- value: 'yearly'
193
- }
194
- ].map((res) => ({
211
+ entries: entries.map((res) => ({
195
212
  id: res.id,
196
213
  label: res.label,
197
214
  defaultrepresentation: res.defaultrepresentation,
@@ -207,7 +224,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
207
224
  chartType: this._widgetConfig ? this._widgetConfig?.formValue?.chartType : 'pie',
208
225
  size: this._widgetConfig?.formValue?.size,
209
226
  aggregation: this._widgetConfig ? this._widgetConfig.formValue.aggregation : 'sysobject.created',
210
- histogramType: this._widgetConfig && this._widgetConfig?.formValue?.histogramType ? this._widgetConfig?.formValue?.histogramType : 'standard',
227
+ histogramType: this._widgetConfig && this._widgetConfig?.formValue?.histogramType ? this._widgetConfig?.formValue?.histogramType : 'monthly',
211
228
  });
212
229
  if (this.storedQuery) {
213
230
  this.selectedSavedSearchName = this.setupForm.get('storedQuery').value;
@@ -231,7 +248,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
231
248
  this.setupForm.patchValue({
232
249
  chartType: 'pie',
233
250
  aggregation: this._widgetConfig ? this._widgetConfig.formValue.aggregation : 'sysobject.created',
234
- histogramType: 'standard',
251
+ histogramType: 'monthly',
235
252
  size: '',
236
253
  });
237
254
  return EMPTY;
@@ -242,7 +259,7 @@ let ChartsSetupComponent = class ChartsSetupComponent {
242
259
  this.setupForm.patchValue({
243
260
  chartType: this._widgetConfig ? this._widgetConfig?.formValue?.chartType : 'pie',
244
261
  aggregation: this._widgetConfig ? this._widgetConfig.formValue.aggregation : 'sysobject.created',
245
- histogramType: this._widgetConfig && this._widgetConfig?.formValue?.histogramType ? this._widgetConfig?.formValue?.histogramType : 'standard',
262
+ histogramType: this._widgetConfig && this._widgetConfig?.formValue?.histogramType ? this._widgetConfig?.formValue?.histogramType : 'monthly',
246
263
  size: this._widgetConfig?.formValue?.size,
247
264
  });
248
265
  }
@@ -268,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
268
285
  }], widgetConfig: [{
269
286
  type: Input
270
287
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvY2hhcnRzLXNldHVwL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBdUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFtRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDckcsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBUy9CLElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO0lBdUMvQixJQUFhLFlBQVksQ0FBQyxFQUFXO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQ1UsRUFBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLFNBQTJCLEVBQzNCLFdBQXdCO1FBSHhCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLHlCQUFvQixHQUFwQixv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aEcsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVU7Z0JBQzdJLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJO2FBQzFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7aUhBelJVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFZQ2ZqQywwZ0dBb0RBO0FEckNhLG9CQUFvQjtJQU5oQyxZQUFZLEVBQUU7R0FNRixvQkFBb0IsQ0EwUmhDO1NBMVJZLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjtxTUFNakIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQWtDNkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFDQSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUVuQixZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29tcG9uZW50fSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7SWNoYXJ0c30gZnJvbSAnLi4vaWNoYXJ0cyc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RU1QVFksIHNraXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvZGVzeXN0ZW1Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yayc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tY2hhcnRzLXNldHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0c1NldHVwQ29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCwgT25Jbml0IHtcbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJY2hhcnRzO1xuICBAT3V0cHV0KCkgd2lkZ2V0Q29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJY2hhcnRzPigpO1xuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdO1xuICBzZXR1cEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzdG9yZWRRdWVyeTogW251bGxdLFxuICAgIGNoYXJ0VHlwZTogW10sXG4gICAgc2l6ZTogWycnLCBbVmFsaWRhdG9ycy5tYXgoMTAwKSwgVmFsaWRhdG9ycy5taW4oMyldXSxcbiAgICBhZ2dyZWdhdGlvbjogW10sXG4gICAgaGlzdG9ncmFtVHlwZTogW10sXG4gIH0pO1xuXG4gIHN0b3JlZFF1ZXJpZXNQaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC50aXRsZS5zdG9yZWRxdWVyaWVzJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBhZ2dyZWdhdGlvblBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmFnZ3JlZ2F0aW9uRmllbGQnKSxcbiAgICBjb2Rlc3lzdGVtOiBudWxsLFxuICB9O1xuXG4gIGNoYXJ0VHlwZVBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0VHlwZUZpZWxkJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBoaXN0b2dyYW1UeXBlUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBpc0RhdGVUaW1lVHlwZSA9IGZhbHNlO1xuICBzZWxlY3RlZFNhdmVkU2VhcmNoTmFtZSA9ICcnO1xuICBzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnk7XG5cbiAgQFZpZXdDaGlsZCgnYWdncmVnYXRpb25Db2Rlc3lzdGVtJykgYWdncmVnYXRpb25Db2Rlc3lzdGVtOiBDb2Rlc3lzdGVtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdoaXN0b2dyYW1Db2Rlc3lzdGVtJykgaGlzdG9ncmFtQ29kZXN5c3RlbTogQ29kZXN5c3RlbUNvbXBvbmVudDtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKHdjOiBJY2hhcnRzKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gd2M7XG4gIH1cblxuICBnZXQgd2lkZ2V0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZShza2lwKDEpLCB1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldENvbmZpZygpO1xuICAgIH0pO1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnlzKCk7XG4gICAgdGhpcy5nZXRDaGFydEZpbGVkKCk7XG4gICAgdGhpcy5nZXRIaXN0b2dyYW1GaWxlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgaWYgKHRoaXMuc2V0dXBGb3JtLnZhbGlkICYmIHRoaXMuc3RvcmVkUXVlcmllcykge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcmllcy5maW5kKChzcSkgPT4gc3EubmFtZSA9PT0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlKTtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnID0ge1xuICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeT8uaWQsXG4gICAgICAgIGZvcm1WYWx1ZTogdGhpcy5zZXR1cEZvcm0udmFsdWUsXG4gICAgICAgIGFnZ3JlZ2F0aW9uVHlwZTogJydcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlICE9PSB0aGlzLnNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5KSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9uUGlja2VyLmNvZGVzeXN0ZW0gPSBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uOiAnc3lzb2JqZWN0LmNyZWF0ZWQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQoJ3N5c2RvY3VtZW50Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQodGhpcy5zdG9yZWRRdWVyeS50eXBlc1swXS5xbmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lID0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pc0RhdGVUaW1lVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QuY3JlYXRlZCcgfHwgdGhpcy53aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSA9PT0gJ0RBVEVUSU1FJztcbiAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLndpZGdldENvbmZpZy5hZ2dyZWdhdGlvblR5cGUgPSB0aGlzLmFnZ3JlZ2F0aW9uQ29kZXN5c3RlbT8uc2VsZWN0ZWROb2Rlcz8uZGF0YT8udHlwZTtcbiAgICAgICAgdGhpcy5pc0RhdGVUaW1lVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdEQVRFVElNRSc7XG4gICAgICB9XG4gICAgICB0aGlzLndpZGdldENvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuX3dpZGdldENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVkUXVlcnlzKCkge1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2VcbiAgICAgIC5mZXRjaFN0b3JlZFF1ZXJpZXMoKS5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICkuc3Vic2NyaWJlKHN0b3JlZFF1ZXJpZXMgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXMgPSBzdG9yZWRRdWVyaWVzO1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNQaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgICAgICBlbnRyaWVzOiB0aGlzLnN0b3JlZFF1ZXJpZXMubWFwKHN0b3JlZFF1ZXJ5ID0+ICh7XG4gICAgICAgICAgICBpZDogc3RvcmVkUXVlcnkuaWQsXG4gICAgICAgICAgICBsYWJlbDogc3RvcmVkUXVlcnkubmFtZSxcbiAgICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogc3RvcmVkUXVlcnkubmFtZSxcbiAgICAgICAgICAgIGRhdGE6IHN0b3JlZFF1ZXJ5Lm5hbWVcbiAgICAgICAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0U3RvcmVkUXVlcnkoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLmdldFN0b3JlZFF1ZXJ5KGlkKS5waXBlKFxuICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICB0YXAoc3RvcmVkUXVlcnkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gc3RvcmVkUXVlcnk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRBZ2dyZWdhdGlvbkZpZWxkKHR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRGaWVsZERlZmluaXRpb24odHlwZSkucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKGRlZmluaXRpb24gPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGUgPSBuZXcgU2V0KFsnZmlsZW5hbWUnLCAnbWltZXR5cGUnLCAnbW9kaWZpZXJ0aXRsZScsICd2ZXJzaW9uJywgJ2NyZWF0b3J0aXRsZScsICd0aXRsZScsICdkZXNjcmlwdGlvbiddKTtcbiAgICAgIGlmICh0eXBlICE9PSAnc3lzZG9jdW1lbnQnKSB7XG4gICAgICAgIGV4Y2x1ZGUuYWRkKCd0eXBlJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IGRlZmluaXRpb24uZWxlbWVudHMuZmlsdGVyKGZpZWxkID0+ICFleGNsdWRlLmhhcyhmaWVsZC5oaXRuYW1lKSkubWFwKGZpZWxkID0+ICh7XG4gICAgICAgICAgaWQ6IGZpZWxkLmxhYmVsLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogZmllbGQubGFiZWwsXG4gICAgICAgICAgZGF0YTogZmllbGQucW5hbWUsXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZVxuICAgICAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2hhcnRGaWxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydFR5cGVQaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgIGVudHJpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnYmFyJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5iYXInKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmJhcidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAncGllJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5waWUnKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLnBpZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAncGllJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZG9udXQnLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmRvbnV0J1xuICAgICAgICAgICksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5kb251dCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnZG9udXQnLFxuICAgICAgICB9LFxuICAgICAgXS5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2RlZmF1bHRyZXByZXNlbnRhdGlvbicpKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0SGlzdG9ncmFtRmlsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9ncmFtVHlwZVBpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdzdGFuZGFyZCcsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5zdGFuZGFyZCcpLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5zdGFuZGFyZCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnc3RhbmRhcmQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdkYWlseScsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnZGFpbHknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ3dlZWtseScsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS53ZWVrbHknXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ud2Vla2x5J1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICd3ZWVrbHknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ21vbnRobHknLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ubW9udGhseScpLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5tb250aGx5J1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICdtb250aGx5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICd5ZWFybHknLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ueWVhcmx5JyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuaGlzdG9ncmFtLnllYXJseSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAneWVhcmx5J1xuICAgICAgICB9XG4gICAgICBdLm1hcCgocmVzKSA9PiAoe1xuICAgICAgICBpZDogcmVzLmlkLFxuICAgICAgICBsYWJlbDogcmVzLmxhYmVsLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHJlcy5kZWZhdWx0cmVwcmVzZW50YXRpb24sXG4gICAgICAgIGRhdGE6IHJlcy52YWx1ZVxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkge1xuICAgICAgdGhpcy5nZXRTdG9yZWRRdWVyeSh0aGlzLl93aWRnZXRDb25maWc/LnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeSA/IHRoaXMuc3RvcmVkUXVlcnkubmFtZSA6ICcnLFxuICAgICAgICAgIGNoYXJ0VHlwZTogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA6ICdwaWUnLFxuICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWcgPyB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLmFnZ3JlZ2F0aW9uIDogJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgICAgICBoaXN0b2dyYW1UeXBlOiB0aGlzLl93aWRnZXRDb25maWcgJiYgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUgPyB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaGlzdG9ncmFtVHlwZSA6ICdzdGFuZGFyZCcsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5zdG9yZWRRdWVyeSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWU7XG4gICAgICAgICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQoJ3N5c2RvY3VtZW50Jyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0QWdncmVnYXRpb25GaWVsZCh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzWzBdLnFuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgYWdncmVnYXRpb246IHRoaXMuX3dpZGdldENvbmZpZyA/IHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuYWdncmVnYXRpb24gOiAnc3lzb2JqZWN0LmNyZWF0ZWQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5jcmVhdGVkJyB8fCB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnREFURVRJTUUnO1xuICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5hZ2dyZWdhdGlvblR5cGUgPSBudWxsO1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGNoYXJ0VHlwZTogJ3BpZScsXG4gICAgICAgICAgICBhZ2dyZWdhdGlvbjogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA6ICdzeXNvYmplY3QuY3JlYXRlZCcsXG4gICAgICAgICAgICBoaXN0b2dyYW1UeXBlOiAnc3RhbmRhcmQnLFxuICAgICAgICAgICAgc2l6ZTogJycsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGNoYXJ0VHlwZTogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA6ICdwaWUnLFxuICAgICAgICBhZ2dyZWdhdGlvbjogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA6ICdzeXNvYmplY3QuY3JlYXRlZCcsXG4gICAgICAgIGhpc3RvZ3JhbVR5cGU6IHRoaXMuX3dpZGdldENvbmZpZyAmJiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaGlzdG9ncmFtVHlwZSA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlIDogJ3N0YW5kYXJkJyxcbiAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZXR1cFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2V0dXBGb3JtXCI+XG4gICAgICAgIDxlby1mb3JtLWlucHV0IFtyZXF1aXJlZF09XCJ0cnVlXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5jaGFydFR5cGVGaWVsZCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImNoYXJ0VHlwZVwiIFtwaWNrZXJUaXRsZV09XCJjaGFydFR5cGVQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cImNoYXJ0VHlwZVBpY2tlci5jb2Rlc3lzdGVtXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG5cbiAgICAgICAgPGVvLWZvcm0taW5wdXQgW3JlcXVpcmVkXT1cInRydWVcIiBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgKm5nSWY9XCJzdG9yZWRRdWVyaWVzUGlja2VyPy5jb2Rlc3lzdGVtPy5lbnRyaWVzXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZW8uc2VhcmNoLnRpdGxlLnN0b3JlZHF1ZXJpZXMnIHwgdHJhbnNsYXRlXCIgW2Rlc2NyaXB0aW9uXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LnN0b3JlZC5xdWVyaWVzLmRlc2NyaXB0aW9uJ1wiPlxuICAgICAgICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwic3RvcmVkUXVlcnlcIiBbcGlja2VyVGl0bGVdPVwic3RvcmVkUXVlcmllc1BpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwic3RvcmVkUXVlcmllc1BpY2tlci5jb2Rlc3lzdGVtXCJcbiAgICAgICAgICAgICAgICBbZW1wdHlNZXNzYWdlXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LnN0b3JlZC5xdWVyaWVzLmxpc3Qubm90QXZhaWxhYmxlJ1wiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICAgIDxlby1mb3JtLWlucHV0IFtyZXF1aXJlZF09XCJ0cnVlXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImFnZ3JlZ2F0aW9uUGlja2VyPy5jb2Rlc3lzdGVtPy5lbnRyaWVzICYmIHRoaXMuc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS52YWx1ZVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5hZ2dyZWdhdGlvbkZpZWxkJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWNvZGVzeXN0ZW0gI2FnZ3JlZ2F0aW9uQ29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJhZ2dyZWdhdGlvblwiIFtwaWNrZXJUaXRsZV09XCJhZ2dyZWdhdGlvblBpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICAgIDxlby1mb3JtLWlucHV0IFtyZXF1aXJlZF09XCJ0cnVlXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cImlzRGF0ZVRpbWVUeXBlXCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwiaGlzdG9ncmFtVHlwZVwiIFtwaWNrZXJUaXRsZV09XCJoaXN0b2dyYW1UeXBlUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICBbY29kZXN5c3RlbV09XCJoaXN0b2dyYW1UeXBlUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgKm5nSWY9XCJ0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlICE9PSAnc3RhbmRhcmQnXCIgW2Rlc2NyaXB0aW9uXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0LmZvcm0ubGFiZWwuZGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLnBhcnRpYWxWYWx1ZScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1udW1iZXIgW3NjYWxlXT1cIjBcIiBmb3JtQ29udHJvbE5hbWU9XCJzaXplXCI+PC9lby1udW1iZXI+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwic2V0dXBGb3JtLmdldCgnc2l6ZScpLmhhc0Vycm9yKCdtYXgnKSB8fCBzZXR1cEZvcm0uZ2V0KCdzaXplJykuaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICAgICAgICA8ZGl2IHRyYW5zbGF0ZT5cbiAgICAgICAgICAgICAgICBlby5mb3JtLnByb3BlcnR5LnN0cmluZy5lcnJvci5jbGFzc2lmaWNhdGlvbi5wYXJ0aWFsVmFsdWUgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgPC9mb3JtPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwcmV2aWV3XCJcbiAgICAqbmdJZj1cInNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykudmFsdWUgJiYgc2V0dXBGb3JtLmdldCgnY2hhcnRUeXBlJykudmFsdWUgJiYgc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS52YWx1ZSAmJiAoaXNEYXRlVGltZVR5cGUgJiYgc2V0dXBGb3JtLmdldCgnaGlzdG9ncmFtVHlwZScpLnZhbHVlIHx8ICFpc0RhdGVUaW1lVHlwZSk7IGVsc2UgdHBsRW1wdHlcIj5cbiAgICA8ZW8tY2hhcnRzLXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiIFtlZGl0TW9kZV09XCJ0cnVlXCI+PC9lby1jaGFydHMtd2lkZ2V0PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdHBsRW1wdHk+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3NhdmVkX3NlYXJjaC5zdmcnLCB0ZXh0OiAnZW8ud29ya3NwYWNlLndpZGdldC5jb25maWd1cmF0aW9uLm5vdE9rJ31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvY2hhcnRzLXNldHVwL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBdUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFtRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDckcsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBUy9CLElBQU0sb0JBQW9CLEdBQTFCLE1BQU0sb0JBQW9CO0lBdUMvQixJQUFhLFlBQVksQ0FBQyxFQUFXO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNVLEVBQXNCLEVBQ3RCLG9CQUEwQyxFQUMxQyxTQUEyQixFQUMzQixXQUF3QjtRQUh4QixPQUFFLEdBQUYs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LEVBQUU7R0FNRixvQkFBb0IsQ0FtVGhDO1NBblRZLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjtxTUFNakIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQWtDNkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFDQSxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUVuQixZQUFZO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29tcG9uZW50fSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7SWNoYXJ0c30gZnJvbSAnLi4vaWNoYXJ0cyc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RU1QVFksIHNraXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvZGVzeXN0ZW1Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yayc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tY2hhcnRzLXNldHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0c1NldHVwQ29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCwgT25Jbml0IHtcbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJY2hhcnRzO1xuICBAT3V0cHV0KCkgd2lkZ2V0Q29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJY2hhcnRzPigpO1xuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdO1xuICBzZXR1cEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzdG9yZWRRdWVyeTogW251bGxdLFxuICAgIGNoYXJ0VHlwZTogW10sXG4gICAgc2l6ZTogWycnLCBbVmFsaWRhdG9ycy5tYXgoMTAwKSwgVmFsaWRhdG9ycy5taW4oMyldXSxcbiAgICBhZ2dyZWdhdGlvbjogW10sXG4gICAgaGlzdG9ncmFtVHlwZTogW10sXG4gIH0pO1xuXG4gIHN0b3JlZFF1ZXJpZXNQaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC50aXRsZS5zdG9yZWRxdWVyaWVzJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBhZ2dyZWdhdGlvblBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmFnZ3JlZ2F0aW9uRmllbGQnKSxcbiAgICBjb2Rlc3lzdGVtOiBudWxsLFxuICB9O1xuXG4gIGNoYXJ0VHlwZVBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0VHlwZUZpZWxkJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBoaXN0b2dyYW1UeXBlUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBpc0RhdGVUaW1lVHlwZSA9IGZhbHNlO1xuICBzZWxlY3RlZFNhdmVkU2VhcmNoTmFtZSA9ICcnO1xuICBzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnk7XG5cbiAgQFZpZXdDaGlsZCgnYWdncmVnYXRpb25Db2Rlc3lzdGVtJykgYWdncmVnYXRpb25Db2Rlc3lzdGVtOiBDb2Rlc3lzdGVtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdoaXN0b2dyYW1Db2Rlc3lzdGVtJykgaGlzdG9ncmFtQ29kZXN5c3RlbTogQ29kZXN5c3RlbUNvbXBvbmVudDtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKHdjOiBJY2hhcnRzKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gd2M7XG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xuICB9XG5cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5zZXR1cEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoc2tpcCgxKSwgdW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5zZXRXaWRnZXRDb25maWcoKTtcbiAgICB9KTtcbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5cygpO1xuICAgIHRoaXMuZ2V0Q2hhcnRGaWVsZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgdGhpcy5oaXN0b2dyYW1UeXBlUGlja2VyLmNvZGVzeXN0ZW0gPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuc2V0dXBGb3JtLnZhbGlkICYmIHRoaXMuc3RvcmVkUXVlcmllcykge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcmllcy5maW5kKChzcSkgPT4gc3EubmFtZSA9PT0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlKTtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnID0ge1xuICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeT8uaWQsXG4gICAgICAgIGZvcm1WYWx1ZTogdGhpcy5zZXR1cEZvcm0udmFsdWUsXG4gICAgICAgIGFnZ3JlZ2F0aW9uVHlwZTogJydcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlICE9PSB0aGlzLnNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lKSB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5KSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFNhdmVkU2VhcmNoTmFtZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgYWdncmVnYXRpb246ICdzeXNvYmplY3QuY3JlYXRlZCcsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNhdmVkU2VhcmNoTmFtZSA9IHRoaXMuc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRlVGltZVR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LmNyZWF0ZWQnIHx8IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdEQVRFVElNRSc7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53aWRnZXRDb25maWcuYWdncmVnYXRpb25UeXBlID0gdGhpcy5hZ2dyZWdhdGlvbkNvZGVzeXN0ZW0/LnNlbGVjdGVkTm9kZXM/LmRhdGE/LnR5cGU7XG4gICAgICAgIHRoaXMuaXNEYXRlVGltZVR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnREFURVRJTUUnO1xuICAgICAgfVxuICAgICAgdGhpcy53aWRnZXRDb25maWdDaGFuZ2UuZW1pdCh0aGlzLl93aWRnZXRDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5cygpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAuZmV0Y2hTdG9yZWRRdWVyaWVzKCkucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICApLnN1YnNjcmliZShzdG9yZWRRdWVyaWVzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzID0gc3RvcmVkUXVlcmllcztcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICAgICAgZW50cmllczogdGhpcy5zdG9yZWRRdWVyaWVzLm1hcChzdG9yZWRRdWVyeSA9PiAoe1xuICAgICAgICAgICAgaWQ6IHN0b3JlZFF1ZXJ5LmlkLFxuICAgICAgICAgICAgbGFiZWw6IHN0b3JlZFF1ZXJ5Lm5hbWUsXG4gICAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHN0b3JlZFF1ZXJ5Lm5hbWUsXG4gICAgICAgICAgICBkYXRhOiBzdG9yZWRRdWVyeS5uYW1lXG4gICAgICAgICAgfSkpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyeShpZCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgdGFwKHN0b3JlZFF1ZXJ5ID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHN0b3JlZFF1ZXJ5O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlRmllbGQoKSB7XG4gICAgdGhpcy5nZXRIaXN0b2dyYW1GaWVsZCgpO1xuICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5Py50eXBlcz8ubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQoJ3N5c2RvY3VtZW50Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0QWdncmVnYXRpb25GaWVsZCh0aGlzLnN0b3JlZFF1ZXJ5Py50eXBlc1swXT8ucW5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFnZ3JlZ2F0aW9uRmllbGQodHlwZSkge1xuICAgIHRoaXMuYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbSA9IG51bGw7XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuZ2V0RmllbGREZWZpbml0aW9uKHR5cGUpLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZShkZWZpbml0aW9uID0+IHtcbiAgICAgIGxldCBleGNsdWRlID0gbmV3IFNldChbJ2ZpbGVuYW1lJywgJ21pbWV0eXBlJywgJ21vZGlmaWVydGl0bGUnLCAndmVyc2lvbicsICdjcmVhdG9ydGl0bGUnLCAndGl0bGUnLCAnZGVzY3JpcHRpb24nXSk7XG4gICAgICBpZiAodHlwZSAhPT0gJ3N5c2RvY3VtZW50Jykge1xuICAgICAgICBleGNsdWRlLmFkZCgndHlwZScpO1xuICAgICAgfVxuICAgICAgbGV0IGZpbHRlcmVkRmllbGRzID0gZGVmaW5pdGlvbi5lbGVtZW50cy5maWx0ZXIoZmllbGQgPT4gIWV4Y2x1ZGUuaGFzKGZpZWxkLmhpdG5hbWUpKTtcbiAgICAgIGlmICh0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgPT09ICdsaW5lQ3VydmUnIHx8IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVTdHJhaWdodCcpIHtcbiAgICAgICAgZmlsdGVyZWRGaWVsZHMgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ0RBVEVUSU1FJyk7XG5cbiAgICAgIH1cbiAgICAgIHRoaXMuYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogZmlsdGVyZWRGaWVsZHMubWFwKGZpZWxkID0+ICh7XG4gICAgICAgICAgaWQ6IGZpZWxkLmxhYmVsLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogZmllbGQubGFiZWwsXG4gICAgICAgICAgZGF0YTogZmllbGQucW5hbWUsXG4gICAgICAgICAgdHlwZTogZmllbGQudHlwZVxuICAgICAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2hhcnRGaWVsZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydFR5cGVQaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgIGVudHJpZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnYmFyJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5iYXInKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmJhcidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnYmFyJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAncGllJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5waWUnKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLnBpZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAncGllJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnZG9udXQnLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmRvbnV0J1xuICAgICAgICAgICksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5kb251dCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnZG9udXQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdsaW5lU3RyYWlnaHQnLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVTdHJhaWdodCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUubGluZVN0cmFpZ2h0J1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICdsaW5lU3RyYWlnaHQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdsaW5lQ3VydmUnLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVDdXJ2ZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUubGluZUN1cnZlJ1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICdsaW5lQ3VydmUnLFxuICAgICAgICB9XG4gICAgICBdLm1hcCgocmVzKSA9PiAoe1xuICAgICAgICBpZDogcmVzLmlkLFxuICAgICAgICBsYWJlbDogcmVzLmxhYmVsLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHJlcy5kZWZhdWx0cmVwcmVzZW50YXRpb24sXG4gICAgICAgIGRhdGE6IHJlcy52YWx1ZVxuICAgICAgfSkpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnZGVmYXVsdHJlcHJlc2VudGF0aW9uJykpLFxuICAgIH07XG4gIH1cblxuICBnZXRIaXN0b2dyYW1GaWVsZCgpIHtcbiAgICB0aGlzLmhpc3RvZ3JhbVR5cGVQaWNrZXIuY29kZXN5c3RlbSA9IG51bGw7XG4gICAgbGV0IGVudHJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZGFpbHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdkYWlseSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnd2Vla2x5JyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ud2Vla2x5J1xuICAgICAgICApLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuaGlzdG9ncmFtLndlZWtseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd3ZWVrbHknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ21vbnRobHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5tb250aGx5JyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ubW9udGhseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdtb250aGx5J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd5ZWFybHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAneWVhcmx5J1xuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9ncmFtVHlwZVBpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogZW50cmllcy5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uc3RvcmVkUXVlcnkpIHtcbiAgICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgc3RvcmVkUXVlcnk6IHRoaXMuc3RvcmVkUXVlcnkgPyB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWUgOiAnJyxcbiAgICAgICAgICBjaGFydFR5cGU6IHRoaXMuX3dpZGdldENvbmZpZyA/IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgOiAncGllJyxcbiAgICAgICAgICBzaXplOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSxcbiAgICAgICAgICBhZ2dyZWdhdGlvbjogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA6ICdzeXNvYmplY3QuY3JlYXRlZCcsXG4gICAgICAgICAgaGlzdG9ncmFtVHlwZTogdGhpcy5fd2lkZ2V0Q29uZmlnICYmIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUgOiAnbW9udGhseScsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5zdG9yZWRRdWVyeSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWU7XG4gICAgICAgICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkudHlwZXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQoJ3N5c2RvY3VtZW50Jyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0QWdncmVnYXRpb25GaWVsZCh0aGlzLnN0b3JlZFF1ZXJ5LnR5cGVzWzBdLnFuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgYWdncmVnYXRpb246IHRoaXMuX3dpZGdldENvbmZpZyA/IHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuYWdncmVnYXRpb24gOiAnc3lzb2JqZWN0LmNyZWF0ZWQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5jcmVhdGVkJyB8fCB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnREFURVRJTUUnO1xuICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5hZ2dyZWdhdGlvblR5cGUgPSBudWxsO1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGNoYXJ0VHlwZTogJ3BpZScsXG4gICAgICAgICAgICBhZ2dyZWdhdGlvbjogdGhpcy5fd2lkZ2V0Q29uZmlnID8gdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA6ICdzeXNvYmplY3QuY3JlYXRlZCcsXG4gICAgICAgICAgICBoaXN0b2dyYW1UeXBlOiAnbW9udGhseScsXG4gICAgICAgICAgICBzaXplOiAnJyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgY2hhcnRUeXBlOiB0aGlzLl93aWRnZXRDb25maWcgPyB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlIDogJ3BpZScsXG4gICAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWcgPyB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLmFnZ3JlZ2F0aW9uIDogJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgICAgaGlzdG9ncmFtVHlwZTogdGhpcy5fd2lkZ2V0Q29uZmlnICYmIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lmhpc3RvZ3JhbVR5cGUgOiAnbW9udGhseScsXG4gICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2V0dXBcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNldHVwRm9ybVwiPlxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuY2hhcnRUeXBlRmllbGQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJjaGFydFR5cGVcIiBbcGlja2VyVGl0bGVdPVwiY2hhcnRUeXBlUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICBbY29kZXN5c3RlbV09XCJjaGFydFR5cGVQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICAgIDxlby1mb3JtLWlucHV0IFtyZXF1aXJlZF09XCJ0cnVlXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiICpuZ0lmPVwic3RvcmVkUXVlcmllc1BpY2tlcj8uY29kZXN5c3RlbT8uZW50cmllc1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLnNlYXJjaC50aXRsZS5zdG9yZWRxdWVyaWVzJyB8IHRyYW5zbGF0ZVwiIFtkZXNjcmlwdGlvbl09XCInZW8ud29ya3NwYWNlLndpZGdldC5zdG9yZWQucXVlcmllcy5kZXNjcmlwdGlvbidcIj5cbiAgICAgICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cInN0b3JlZFF1ZXJ5XCIgW3BpY2tlclRpdGxlXT1cInN0b3JlZFF1ZXJpZXNQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cInN0b3JlZFF1ZXJpZXNQaWNrZXIuY29kZXN5c3RlbVwiXG4gICAgICAgICAgICAgICAgW2VtcHR5TWVzc2FnZV09XCInZW8ud29ya3NwYWNlLndpZGdldC5zdG9yZWQucXVlcmllcy5saXN0Lm5vdEF2YWlsYWJsZSdcIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJhZ2dyZWdhdGlvblBpY2tlcj8uY29kZXN5c3RlbT8uZW50cmllcyAmJiB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWVcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuYWdncmVnYXRpb25GaWVsZCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jb2Rlc3lzdGVtICNhZ2dyZWdhdGlvbkNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwiYWdncmVnYXRpb25cIiBbcGlja2VyVGl0bGVdPVwiYWdncmVnYXRpb25QaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cImFnZ3JlZ2F0aW9uUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc0RhdGVUaW1lVHlwZVwiIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmhpc3RvZ3JhbScgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImhpc3RvZ3JhbVR5cGVcIiBbcGlja2VyVGl0bGVdPVwiaGlzdG9ncmFtVHlwZVBpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiaGlzdG9ncmFtVHlwZVBpY2tlci5jb2Rlc3lzdGVtXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG5cbiAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiICpuZ0lmPVwidGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaGlzdG9ncmFtVHlwZSAhPT0gJ3N0YW5kYXJkJ1wiIFtkZXNjcmlwdGlvbl09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydC5mb3JtLmxhYmVsLmRlc2NyaXB0aW9uJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5wYXJ0aWFsVmFsdWUnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tbnVtYmVyIFtzY2FsZV09XCIwXCIgZm9ybUNvbnRyb2xOYW1lPVwic2l6ZVwiPjwvZW8tbnVtYmVyPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInNldHVwRm9ybS5nZXQoJ3NpemUnKS5oYXNFcnJvcignbWF4JykgfHwgc2V0dXBGb3JtLmdldCgnc2l6ZScpLmhhc0Vycm9yKCdtaW4nKVwiPlxuICAgICAgICAgICAgPGRpdiB0cmFuc2xhdGU+XG4gICAgICAgICAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24ucGFydGlhbFZhbHVlIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvZm9ybT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicHJldmlld1wiXG4gICAgKm5nSWY9XCJzZXR1cEZvcm0uZ2V0KCdhZ2dyZWdhdGlvbicpLnZhbHVlICYmIHNldHVwRm9ybS5nZXQoJ2NoYXJ0VHlwZScpLnZhbHVlICYmIHNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWUgJiYgKGlzRGF0ZVRpbWVUeXBlICYmIHNldHVwRm9ybS5nZXQoJ2hpc3RvZ3JhbVR5cGUnKS52YWx1ZSB8fCAhaXNEYXRlVGltZVR5cGUpOyBlbHNlIHRwbEVtcHR5XCI+XG4gICAgPGVvLWNoYXJ0cy13aWRnZXQgW3dpZGdldENvbmZpZ109XCJ3aWRnZXRDb25maWdcIiBbZWRpdE1vZGVdPVwidHJ1ZVwiPjwvZW8tY2hhcnRzLXdpZGdldD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3RwbEVtcHR5PlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==