@provoly/dashboard 0.14.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ export const SearchActions = {
3
3
  search: createAction('[Search] search', props()),
4
4
  getDatasourceItems: createAction('[Search] (bus) search named', props()),
5
5
  // result Search
6
- searchSuccess: createAction('[Search Api] Search Success', props()),
7
- searchFailure: createAction('[Search Api] Search Failure', props())
6
+ searchSuccess: createAction('[Search Api] (bus) Search Success', props()),
7
+ searchFailure: createAction('[Search Api] (bus) Search Failure', props())
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLE1BQU0sRUFBRSxZQUFZLENBQ2xCLGlCQUFpQixFQUNqQixLQUFLLEVBQXNHLENBQzVHO0lBQ0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUV4RixnQkFBZ0I7SUFDaEIsYUFBYSxFQUFFLFlBQVksQ0FDekIsNkJBQTZCLEVBQzdCLEtBQUssRUFBMEQsQ0FDaEU7SUFDRCxhQUFhLEVBQUUsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBK0IsQ0FBQztDQUNqRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uLy4uL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbW9uby1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBGdWxsVGV4dFNlYXJjaFBheWxvYWQsIE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW11bHRpLWNsYXNzLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IFNlYXJjaEFjdGlvbnMgPSB7XG4gIHNlYXJjaDogY3JlYXRlQWN0aW9uKFxuICAgICdbU2VhcmNoXSBzZWFyY2gnLFxuICAgIHByb3BzPHsgcGF5bG9hZDogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkOyBpZD86IHN0cmluZyB9PigpXG4gICksXG4gIGdldERhdGFzb3VyY2VJdGVtczogY3JlYXRlQWN0aW9uKCdbU2VhcmNoXSAoYnVzKSBzZWFyY2ggbmFtZWQnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG5cbiAgLy8gcmVzdWx0IFNlYXJjaFxuICBzZWFyY2hTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tTZWFyY2ggQXBpXSBTZWFyY2ggU3VjY2VzcycsXG4gICAgcHJvcHM8eyByZXN1bHRTZXQ6IFJlc3VsdFNldDsgaWQ/OiBzdHJpbmc7IHBhcmFtcz86IHN0cmluZyB9PigpXG4gICksXG4gIHNlYXJjaEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW1NlYXJjaCBBcGldIFNlYXJjaCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55OyBpZD86IHN0cmluZyB9PigpKVxufTtcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLbEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLE1BQU0sRUFBRSxZQUFZLENBQ2xCLGlCQUFpQixFQUNqQixLQUFLLEVBQXNHLENBQzVHO0lBQ0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUV4RixnQkFBZ0I7SUFDaEIsYUFBYSxFQUFFLFlBQVksQ0FDekIsbUNBQW1DLEVBQ25DLEtBQUssRUFBMEQsQ0FDaEU7SUFDRCxhQUFhLEVBQUUsWUFBWSxDQUFDLG1DQUFtQyxFQUFFLEtBQUssRUFBK0IsQ0FBQztDQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uLy4uL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbW9uby1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBGdWxsVGV4dFNlYXJjaFBheWxvYWQsIE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW11bHRpLWNsYXNzLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IFNlYXJjaEFjdGlvbnMgPSB7XG4gIHNlYXJjaDogY3JlYXRlQWN0aW9uKFxuICAgICdbU2VhcmNoXSBzZWFyY2gnLFxuICAgIHByb3BzPHsgcGF5bG9hZDogTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB8IE11bHRpQ2xhc3NTZWFyY2hQYXlsb2FkIHwgRnVsbFRleHRTZWFyY2hQYXlsb2FkOyBpZD86IHN0cmluZyB9PigpXG4gICksXG4gIGdldERhdGFzb3VyY2VJdGVtczogY3JlYXRlQWN0aW9uKCdbU2VhcmNoXSAoYnVzKSBzZWFyY2ggbmFtZWQnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG5cbiAgLy8gcmVzdWx0IFNlYXJjaFxuICBzZWFyY2hTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tTZWFyY2ggQXBpXSAoYnVzKSBTZWFyY2ggU3VjY2VzcycsXG4gICAgcHJvcHM8eyByZXN1bHRTZXQ6IFJlc3VsdFNldDsgaWQ/OiBzdHJpbmc7IHBhcmFtcz86IHN0cmluZyB9PigpXG4gICksXG4gIHNlYXJjaEZhaWx1cmU6IGNyZWF0ZUFjdGlvbignW1NlYXJjaCBBcGldIChidXMpIFNlYXJjaCBGYWlsdXJlJywgcHJvcHM8eyBlcnJvcjogYW55OyBpZD86IHN0cmluZyB9PigpKVxufTtcbiJdfQ==
@@ -125,7 +125,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
125
125
  }), on(DashboardActions.updateWidgetManifest, (state, action) => {
126
126
  const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
127
127
  const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));
128
- newWindows[myRank].widgets[action.index] = action.manifest;
128
+ (newWindows[myRank] ?? { widgets: [] }).widgets[action.index] = action.manifest;
129
129
  return {
130
130
  ...state,
131
131
  manifests: {
@@ -620,4 +620,4 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
620
620
  export function dashboardReducer(state, action) {
621
621
  return internalReducer(state, action);
622
622
  }
623
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQWtDcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1CO0lBQ25ELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQjtRQUNELGNBQWMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxFQUFFLEVBQUU7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QUFLO1FBQ1IsU0FBUyxFQUFFO1lBQ1QsR0FBRyxLQUFLLENBQUMsU0FBUztZQUNsQixPQUFPLEVBQUUsSUFBSTtTQUNkO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDaEQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsT0FBTyxFQUFFLEtBQUs7U0FDZjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDMUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLE9BQU8sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQ3RGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBRUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQXFCLEVBQUUsTUFBYztJQUNwRSxPQUFPLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlUmVkdWNlciwgb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9ucywgZ2V0RGlzcGxheU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVsYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERFRkFVTFRfTkFNRURfUVVFUllfSUQsIEVYUExPUkVfTkFNRURfUVVFUllfSUQgfSBmcm9tICcuLi8uLi9jb3JlL3N0b3JlL3NlYXJjaC9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IHNvbHZlQ29sbGlzaW9ucyB9IGZyb20gJy4uL2NvbXBvbmVudHMvc29sdmUtY29sbGlzaW9ucy5mdW5jdGlvbic7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZW1lbnRVdGlscyB9IGZyb20gJy4uL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucywgRGFzaGJvYXJkQ2VsbFBhcmFtcywgVmlld01vZGUgfSBmcm9tICcuL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfQ09MVU1OU19OVU1CRVIsXG4gIERFRkFVTFRfR0FQX1BYLFxuICBERUZBVUxUX1JPV19IRUlHSFRfUFgsXG4gIERFRkFVTFRfUk9XU19OVU1CRVJcbn0gZnJvbSAnLi9kYXNoYm9hcmQuY29udGFudHMnO1xuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkRmVhdHVyZUtleSA9ICdAcHJ5L2Rhc2hib2FyZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkU3RhdGUge1xuICBtYW5pZmVzdHM6IHtcbiAgICBzZW5kZXI6IHN0cmluZztcbiAgICB0ZW5hbnRzOiBzdHJpbmdbXTtcbiAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbGlzdDogTWFuaWZlc3REZXNjcmlwdGlvbltdO1xuICAgIGN1cnJlbnRJZDogc3RyaW5nO1xuICAgIHN0YXRpY01hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICB9O1xuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHZpZXdNb2RlPzogVmlld01vZGU7XG4gICAgaW5pdGlhbDogR2xvYmFsTWFuaWZlc3QgfCB1bmRlZmluZWQ7XG4gIH07XG4gIHJlc3VsdHM6IHtcbiAgICByZXN1bHRTZXRzOiBSZXN1bHRTZXRzO1xuICAgIHJlc3VsdFNldHNQYXJhbXM6IHsgW2lkOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHREYXRhc291cmNlOiBzdHJpbmdbXTtcbiAgICBzZWxlY3RlZEl0ZW1zOiBzdHJpbmdbXTtcbiAgICBvYmplY3REZXRhaWxzOiB7IFtpZDogc3RyaW5nXTogSXRlbSB9O1xuICAgIHF1aWNrT3JkZXI6IHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCB9O1xuICB9O1xuICBkYXNoYm9hcmQ6IHtcbiAgICBwYXJhbXM6IERhc2hib2FyZENlbGxQYXJhbXM7XG4gICAgZWRpdGlvbk1vZGU6IGJvb2xlYW47XG4gIH07XG4gIHdtc0ZlYXR1cmVzOiBhbnlbXTtcbiAgZGlzcGxheT86IERpc3BsYXlPcHRpb25zO1xufVxuXG5leHBvcnQgY29uc3QgZGFzaGJvYXJkSW5pdGlhbFN0YXRlOiBEYXNoYm9hcmRTdGF0ZSA9IHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiAnJyxcbiAgICB0ZW5hbnRzOiBbXSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgd2luZG93czogW3sgd2lkZ2V0czogW10gfV1cbiAgICB9LFxuICAgIHN0YXRpY01hbmlmZXN0OiB7XG4gICAgICB3aW5kb3dzOiBbeyB3aWRnZXRzOiBbXSB9XVxuICAgIH0sXG4gICAgbGlzdDogW10sXG4gICAgY3VycmVudElkOiAnJyxcbiAgICBsb2FkaW5nOiBmYWxzZVxuICB9LFxuICBwcmVzZW50YXRpb246IHtcbiAgICBjdXJyZW50OiB1bmRlZmluZWQsXG4gICAgaW5pdGlhbDogdW5kZWZpbmVkXG4gIH0sXG4gIHJlc3VsdHM6IHtcbiAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IFtdLFxuICAgIHJlc3VsdFNldHM6IHtcbiAgICAgIFtERUZBVUxUX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfSxcbiAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXTogeyBpdGVtczoge30sIHJlbGF0aW9uczogW10gfVxuICAgIH0sXG4gICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgW0RFRkFVTFRfTkFNRURfUVVFUllfSURdOiB1bmRlZmluZWQsXG4gICAgICBbRVhQTE9SRV9OQU1FRF9RVUVSWV9JRF06IHVuZGVmaW5lZFxuICAgIH0sXG4gICAgZGVmYXVsdERhdGFzb3VyY2U6IFsnY3VycmVudCddLFxuICAgIHNlbGVjdGVkSXRlbXM6IFtdLFxuICAgIG9iamVjdERldGFpbHM6IHt9LFxuICAgIHF1aWNrT3JkZXI6IHt9XG4gIH0sXG4gIGRhc2hib2FyZDoge1xuICAgIHBhcmFtczoge1xuICAgICAgZ3JpZFdpZHRoOiAxLFxuICAgICAgZ3JpZEhlaWdodDogMSxcbiAgICAgIGdyaWRHYXA6IERFRkFVTFRfR0FQX1BYLFxuICAgICAgY29sdW1uczogREVGQVVMVF9DT0xVTU5TX05VTUJFUixcbiAgICAgIGNlbGxIZWlnaHQ6IERFRkFVTFRfUk9XX0hFSUdIVF9QWCxcbiAgICAgIHJvd3M6IERFRkFVTFRfUk9XU19OVU1CRVIsXG4gICAgICBjZWxsV2lkdGg6IDEsXG4gICAgICBvZmZzZXRMZWZ0OiAwLFxuICAgICAgb2Zmc2V0VG9wOiAwLFxuICAgICAgbW9iaWxlTW9kZTogZmFsc2VcbiAgICB9LFxuICAgIGVkaXRpb25Nb2RlOiBmYWxzZVxuICB9LFxuICB3bXNGZWF0dXJlczogW11cbn07XG5cbmNvbnN0IGludGVybmFsUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXI8RGFzaGJvYXJkU3RhdGU+KFxuICBkYXNoYm9hcmRJbml0aWFsU3RhdGUsXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuam9pbiwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICB0ZW5hbnRzOiBbLi4uc3RhdGUubWFuaWZlc3RzLnRlbmFudHMsIGFjdGlvbi5zZW5kZXJdXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZGVjbGFyZVNlbmRlcklkLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIHNlbmRlcjogYWN0aW9uLnNlbmRlcixcbiAgICAgIHRlbmFudHM6IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmxlbmd0aCA9PT0gMCA/IGFjdGlvbi50ZW5hbnRzIDogc3RhdGUubWFuaWZlc3RzLnRlbmFudHNcbiAgICB9XG4gIH0pKSxcbiAgb24oXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdCxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRKb2luLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudExlYXZlLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlckZldGNoLFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RBZnRlclJlc2l6ZSxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0V2l0aG91dEFjdGl2YXRpb24sXG4gICAgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICghIWFjdGlvbi5zZW5kZXIgJiYgIXN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmZpbmQoKHRlbmFudCkgPT4gdGVuYW50ID09PSBhY3Rpb24uc2VuZGVyKSAmJiAhYWN0aW9uLmpvaW5pbmcpIHtcbiAgICAgICAgLy8gaWdub3JlIG1hbmlmZXN0IHVwZGF0ZXMgZnJvbSB0ZW5hbnRzIHRoYXQgaGF2ZSBub3Qgam9pbmVkXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgICAgdGVuYW50czogYWN0aW9uLnRlbmFudHMgPz8gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMsXG4gICAgICAgICAgbWFuaWZlc3Q6IGFjdGlvbi5tYW5pZmVzdCxcbiAgICAgICAgICBjdXJyZW50SWQ6IGFjdGlvbi5tYW5pZmVzdElkID8/IHN0YXRlLm1hbmlmZXN0cy5jdXJyZW50SWRcbiAgICAgICAgfSxcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBwcmVzZW50YXRpb246IGFjdGlvbi5wcmVzZW50YXRpb24gPz8gc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBhY3Rpb24uc2VsZWN0ZWRJZHMsXG4gICAgICAgICAgcmVzdWx0U2V0czogISFhY3Rpb24ucmVzdWx0U2V0c1xuICAgICAgICAgICAgPyB7IC4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cywgLi4uYWN0aW9uLnJlc3VsdFNldHMgfVxuICAgICAgICAgICAgOiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlUm91dGVNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBzZW5kZXJSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihhY3Rpb24uc2VuZGVyID8/IHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuICAgIG5ld1dpbmRvd3Nbc2VuZGVyUmFua10gPSB7IC4uLm5ld1dpbmRvd3Nbc2VuZGVyUmFua10sIHJvdXRlOiBhY3Rpb24ucm91dGUgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c107XG4gICAgbmV3V2luZG93c1tteVJhbmtdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlV2lkZ2V0TWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzW2FjdGlvbi5pbmRleF0gPSBhY3Rpb24ubWFuaWZlc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVSZXN1bHRTZXQsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cyxcbiAgICAgICAgW2FjdGlvbi5pZF06IGFjdGlvbi5yZXN1bHRTZXRcbiAgICAgIH0sXG4gICAgICByZXN1bHRTZXRzUGFyYW1zOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1BhcmFtcyxcbiAgICAgICAgW2FjdGlvbi5pZF06IGFjdGlvbi5wYXJhbXNcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5tb3ZlV2lkZ2V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c107XG5cbiAgICAvLyBDcmVhdGluZyBuZXcgY3VycmVudCB3aW5kb3cgbWFuaWZlc3QsIHdpdGhvdXQgbW92ZWQgd2lkZ2V0XG4gICAgY29uc3QgbXlOZXdXaW5kb3cgPSB7XG4gICAgICAuLi5uZXdXaW5kb3dzW215UmFua10sXG4gICAgICB3aWRnZXRzOiBbLi4ubmV3V2luZG93c1tteVJhbmtdLndpZGdldHNdXG4gICAgfTtcbiAgICBjb25zdCB3aWRnZXQgPSBteU5ld1dpbmRvdy53aWRnZXRzLnNwbGljZShhY3Rpb24ud2lkZ2V0SW5kZXgsIDEpWzBdO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXSA9IG15TmV3V2luZG93O1xuXG4gICAgLy8gQ3JlYXRpbmcgZWl0aGVyIGEgbmV3IHdpbmRvdyBtYW5pZmVzdCBvciB1cGRhdGUgdGhlIHRhcmdldCBvbmVcbiAgICBjb25zdCB0YXJnZXRSYW5rID0gYWN0aW9uLnRhcmdldEluZGV4O1xuICAgIGlmICh0YXJnZXRSYW5rICE9PSAtMSkge1xuICAgICAgaWYgKCFuZXdXaW5kb3dzW3RhcmdldFJhbmtdKSB7XG4gICAgICAgIG5ld1dpbmRvd3NbdGFyZ2V0UmFua10gPSB7XG4gICAgICAgICAgLi4ubmV3V2luZG93c1tteVJhbmtdLFxuICAgICAgICAgIHdpZGdldHM6IFt3aWRnZXRdXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdXaW5kb3dzW3RhcmdldFJhbmtdID0ge1xuICAgICAgICAgIC4uLm5ld1dpbmRvd3NbdGFyZ2V0UmFua10sXG4gICAgICAgICAgd2lkZ2V0czogWy4uLihuZXdXaW5kb3dzW3RhcmdldFJhbmtdLndpZGdldHMgPz8gW10pLCB3aWRnZXRdXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGNyZWF0ZSBuZXcgd2luZG93IHRvIHdlbGNvbWUgdGhpcyB3aWRnZXRcbiAgICAgIG5ld1dpbmRvd3MucHVzaCh7XG4gICAgICAgIC4uLm5ld1dpbmRvd3NbbXlSYW5rXSxcbiAgICAgICAgd2lkZ2V0czogW3dpZGdldF1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLm1heGltaXplV2lkZ2V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0c1thY3Rpb24ud2lkZ2V0SW5kZXhdLmxheW91dCA9IHtcbiAgICAgIHg6IDEsXG4gICAgICB5OiAxLFxuICAgICAgd2lkdGg6IHN0YXRlLmRhc2hib2FyZC5wYXJhbXMuY29sdW1ucyxcbiAgICAgIGhlaWdodDogc3RhdGUuZGFzaGJvYXJkLnBhcmFtcy5yb3dzXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIGF2YWlsYWJsZURhdGFzb3VyY2VOYW1lczogYWN0aW9uLm5hbWVzLFxuICAgICAgZGVmYXVsdERhdGFzb3VyY2U6IHN0YXRlLnJlc3VsdHMuZGVmYXVsdERhdGFzb3VyY2UuZmlsdGVyKChyc05hbWUpID0+IGFjdGlvbi5uYW1lcy5pbmNsdWRlcyhyc05hbWUpKVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldERlZmF1bHREYXRhc291cmNlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgZGVmYXVsdERhdGFzb3VyY2U6IGFjdGlvbi5uYW1lc1xuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNvbHZlQ29sbGlzaW9ucywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIHdpbmRvd3M6IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgod2luZG93KSA9PiB7XG4gICAgICAgICAgY29uc3QgW2ZpcnN0LCAuLi5vdGhlcnNdID0gd2luZG93LndpZGdldHM7XG4gICAgICAgICAgcmV0dXJuIHNvbHZlQ29sbGlzaW9ucyhmaXJzdCwgb3RoZXJzLCB3aW5kb3cpO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZFBhcmFtcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGFzaGJvYXJkOiB7XG4gICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLnBhcmFtcyxcbiAgICAgICAgLi4uYWN0aW9uLnBhcmFtc1xuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnRvZ2dsZUVkaXRpb25Nb2RlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBkYXNoYm9hcmQ6IHtcbiAgICAgIC4uLnN0YXRlLmRhc2hib2FyZCxcbiAgICAgIGVkaXRpb25Nb2RlOiBhY3Rpb24uZm9yY2UgPz8gIXN0YXRlLmRhc2hib2FyZC5lZGl0aW9uTW9kZVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIHNlbGVjdGVkSXRlbXM6IFtcbiAgICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgICAhYWN0aW9uLmN1bXVsYXRpdmVcbiAgICAgICAgICAgID8gW2FjdGlvbi5pZF1cbiAgICAgICAgICAgIDogc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmZpbmQoKGlkKSA9PiBpZCA9PT0gYWN0aW9uLmlkKVxuICAgICAgICAgICAgPyBzdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChpZCkgPT4gaWQgIT09IGFjdGlvbi5pZClcbiAgICAgICAgICAgIDogWy4uLnN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcywgYWN0aW9uLmlkXVxuICAgICAgICApXG4gICAgICBdXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuaW52ZXJ0U2VsZWN0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGFsbEl0ZW1zID0gT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzKVxuICAgICAgLm1hcCgocnMpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1tyc10uaXRlbXMpXG4gICAgICAgICAgLm1hcCgoY2xhc3NJZCkgPT4gc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW3JzXS5pdGVtc1tjbGFzc0lkXSBhcyBJdGVtW10pXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAgIClcbiAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcblxuICAgIGNvbnN0IGludmVydGVkSXRlbXNJZCA9IGFsbEl0ZW1zLmZpbHRlcigoaXRlbUlkKSA9PiAhc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGl0ZW1JZCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4ubmV3IFNldChpbnZlcnRlZEl0ZW1zSWQpXVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdE1hbnksIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4ubmV3IFNldChhY3Rpb24uaWRzKV1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdHNMaXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIGxpc3Q6IGFjdGlvbi5tYW5pZmVzdHNcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVTdGF0aWNNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBzdGF0aWNNYW5pZmVzdDogYWN0aW9uLnN0YXRpY01hbmlmZXN0XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubG9hZEFuZEFjdGl2YXRlTWFuaWZlc3QsIERhc2hib2FyZEFjdGlvbnMubG9hZE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIHdpbmRvd3M6IFsuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cy5tYXAoKHdpbk1hbmlmZXN0KSA9PiAoeyAuLi53aW5NYW5pZmVzdCwgd2lkZ2V0czogW10gfSkpXVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNsZWFyTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKChwcmV2aW91cykgPT4gKHsgLi4ucHJldmlvdXMsIHdpZGdldHM6IFtdIH0pKV0sXG4gICAgICAgIGZpbHRlcnM6IFtdXG4gICAgICB9LFxuICAgICAgY3VycmVudElkOiAnJ1xuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU9iamVjdHNEZXRhaWxzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgb2JqZWN0RGV0YWlsczoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLm9iamVjdERldGFpbHMsXG4gICAgICAgIC4uLmFjdGlvbi5saXN0XG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZXhwbG9yZSwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKGtleSkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzW2tleV0uaXRlbXMpXG4gICAgICAgICAgLm1hcCgoa2V5Q2xhc3MpID0+IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zW2tleUNsYXNzXS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBhY3Rpb24uaWQpKVxuICAgICAgICAgIC5maW5kKChpdCkgPT4gISFpdClcbiAgICAgIClcbiAgICAgIC5maW5kKChpdCkgPT4gISFpdCkgYXMgSXRlbTtcblxuICAgIGNvbnN0IGFjdHVhbFdpbmRvd3MgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cztcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IGFjdHVhbFdpbmRvd3MuY29uY2F0KHtcbiAgICAgICAgICAgIHdpZGdldHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCB3aWR0aDogMTIsIGhlaWdodDogMTIgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZ3JhcGgnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHt9LFxuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2U6IEVYUExPUkVfTkFNRURfUVVFUllfSURcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHJlc3VsdFNldHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsXG4gICAgICAgICAgW0VYUExPUkVfTkFNRURfUVVFUllfSURdOiB7XG4gICAgICAgICAgICBpdGVtczogeyBbY3VycmVudEl0ZW0ub0NsYXNzXTogW2N1cnJlbnRJdGVtXSB9LFxuICAgICAgICAgICAgcmVsYXRpb25zOiBbXSBhcyBSZWxhdGlvbltdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0UmVmcmVzaFJhdGUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgcmVmcmVzaFJhdGVzOiB7IC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5yZWZyZXNoUmF0ZXMsIFthY3Rpb24uaWRdOiBhY3Rpb24ucmF0ZSB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRSZWxhdGlvbnNUb1Jlc3VsdFNldHMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZFJlc3VsdFNldHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cykpO1xuICAgIGFjdGlvbi5yZWxhdGlvbnMuZm9yRWFjaCgocmVsYXRpb24pID0+IHtcbiAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzKS5mb3JFYWNoKChyc0lkKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQ29uY2VybmVkID0gT2JqZWN0LmtleXModXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXMpLm1hcCgoY2xhc3NJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5pdGVtc1tjbGFzc0lkXS5tYXAoXG4gICAgICAgICAgICAoaXRlbTogSXRlbSkgPT4gaXRlbS5pZCA9PT0gcmVsYXRpb24uc291cmNlIHx8IGl0ZW0uaWQgPT09IHJlbGF0aW9uLmRlc3RpbmF0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpc0NvbmNlcm5lZCkge1xuICAgICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLnJlbGF0aW9ucy5wdXNoKHJlbGF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB1cGRhdGVkUmVzdWx0U2V0c1xuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmFkZEl0ZW1Ub1Jlc3VsdFNldHMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlZFJlc3VsdFNldHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cykpO1xuXG4gICAgaWYgKCEhYWN0aW9uLnJlc3VsdFNldCkge1xuICAgICAgaWYgKCF1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdKSB7XG4gICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10gPSBbYWN0aW9uLml0ZW1dO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXS5wdXNoKGFjdGlvbi5pdGVtKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHJlc3VsdFNldHM6IHVwZGF0ZWRSZXN1bHRTZXRzXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucXVpY2tPcmRlciwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICByZXN1bHRzOiB7XG4gICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgIHF1aWNrT3JkZXI6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnF1aWNrT3JkZXIsXG4gICAgICAgICAgW2FjdGlvbi5kYXRhc291cmNlSWRdOiBhY3Rpb24uYXNjID8geyBhdHRyaWJ1dGU6IGFjdGlvbi5hdHRyaWJ1dGUsIGFzYzogYWN0aW9uLmFzYyB9IDogdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgY3VycmVudDogYWN0aW9uLnByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IGFjdGlvbi52aWV3TW9kZSxcbiAgICAgICAgaW5pdGlhbDogYWN0aW9uLnByZXNlbnRhdGlvbiA/IHN0YXRlLnByZXNlbnRhdGlvbi5pbml0aWFsIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0SW5pdGlhbFByZXNlbnRhdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBwcmVzZW50YXRpb246IHtcbiAgICAgICAgLi4uc3RhdGUucHJlc2VudGF0aW9uLFxuICAgICAgICBpbml0aWFsOiBhY3Rpb24uaW5pdGlhbFxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEdyaWRMYXlvdXQsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgbXlSYW5rID0gc3RhdGUubWFuaWZlc3RzLnRlbmFudHMuaW5kZXhPZihzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cyA/PyBbXSkpO1xuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10gPSB7IHdpZGdldHM6IFtdIH07XG4gICAgfVxuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdLmdyaWQpIHtcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkID0ge307XG4gICAgfVxuICAgIGlmICghbmV3V2luZG93c1tteVJhbmtdLndpZGdldHMpIHtcbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzID0gW107XG4gICAgfVxuICAgIG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLmxheW91dCA9IGFjdGlvbi5sYXlvdXQ7XG4gICAgaWYgKGFjdGlvbi5sYXlvdXQgIT09IERhc2hib2FyZEdyaWRMYXlvdXQuTUFOVUFMKSB7XG4gICAgICAvLyBSZW9yZGVyIGxheW91dHNcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcm93czogbmV3V2luZG93c1tteVJhbmtdLmdyaWQucm93cyxcbiAgICAgICAgY29sdW1uczogbmV3V2luZG93c1tteVJhbmtdLmdyaWQuY29sdW1uc1xuICAgICAgfTtcbiAgICAgIGNvbnN0IHBsYWNlcyA9IFdpZGdldFBsYWNlbWVudFV0aWxzLnBsYWNlbWVudE9wdGlvbnMoe30gYXMgV2lkZ2V0TWFuaWZlc3QsIGFjdGlvbi5sYXlvdXQsIHBhcmFtcyk7XG5cbiAgICAgIG5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzLmZvckVhY2goKHdpZGdldDogV2lkZ2V0TWFuaWZlc3QsIGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXRMYXlvdXQgPSBwbGFjZXNbaWR4XT8ubGF5b3V0O1xuICAgICAgICBpZiAoIXRhcmdldExheW91dCkge1xuICAgICAgICAgIHRhcmdldExheW91dCA9IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9O1xuICAgICAgICAgIGNvbnNvbGUud2FybignSW5jb3JyZWN0IHBsYWNlbWVudCBjYWxjdWxhdGlvbicsIHBsYWNlcywgaWR4LCB3aWRnZXQsIGFjdGlvbi5sYXlvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHdpZGdldC5sYXlvdXQgPSB7IC4uLnRhcmdldExheW91dCB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuY3JlYXRlVGFiLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbXlMYXlvdXQgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93c1tteVJhbmtdLmdyaWQ/LmxheW91dCA/PyBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTDtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3MucHVzaCh7IGdyaWQ6IHsgbGF5b3V0OiBteUxheW91dCB9LCB3aWRnZXRzOiBbXSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZXN0b3JlSW5pdGlhbE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLnByZXNlbnRhdGlvbi5pbml0aWFsKSlcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5wcm9wYWdhdGVHcmlkTGF5b3V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgbmV3V2luZG93c1thY3Rpb24ucmFua10gPSBhY3Rpb24ubWFuaWZlc3Q7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRGaWx0ZXJzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogYWN0aW9uLmZpbHRlcnNcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGlzUHJlc2VudCA9IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5maW5kKChmaWx0ZXIpID0+IGZpbHRlci5pZCA9PT0gYWN0aW9uLmZpbHRlci5pZCk7XG4gICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICBpZiAoaXNQcmVzZW50KSB7XG4gICAgICBmaWx0ZXJzID1cbiAgICAgICAgc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnM/Lm1hcCgoZmlsdGVyKSA9PiAoZmlsdGVyLmlkID09PSBhY3Rpb24uZmlsdGVyLmlkID8gYWN0aW9uLmZpbHRlciA6IGZpbHRlcikpID8/XG4gICAgICAgIFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMpIHtcbiAgICAgICAgZmlsdGVycyA9IFsuLi4oc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMgYXMgRmlsdGVyW10pLCBhY3Rpb24uZmlsdGVyXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbHRlcnMgPSBbYWN0aW9uLmZpbHRlcl07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIGZpbHRlcnM6IGZpbHRlcnNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlciwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkICE9PSBhY3Rpb24uaWQpXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVtb3ZlRmlsdGVycywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZUZpbHRlclZhbHVlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzID8/IFtdKSkgYXMgRmlsdGVyW107XG5cbiAgICBjb25zdCBmaWx0ZXJUb1VwZGF0ZSA9IGZpbHRlcnMuZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IGFjdGlvbi5pZCk7XG4gICAgaWYgKGZpbHRlclRvVXBkYXRlKSB7XG4gICAgICBpZiAoIWFjdGlvbi52YWx1ZSkge1xuICAgICAgICBkZWxldGUgZmlsdGVyVG9VcGRhdGUudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWx0ZXJUb1VwZGF0ZS52YWx1ZSA9IGFjdGlvbi52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5nZXRXbXNGZWF0dXJlcywgRGFzaGJvYXJkQWN0aW9ucy5yZXNldFdtc0ZlYXR1cmVzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICB3bXNGZWF0dXJlczogW11cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmFkZFdtc0ZlYXR1cmVzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGFsbEZlYXR1cmVzID0gWy4uLnN0YXRlLndtc0ZlYXR1cmVzLCAuLi5hY3Rpb24uZmVhdHVyZXNdO1xuICAgIGNvbnN0IGRlRHVwZWRJZHMgPSBbLi4ubmV3IFNldChhbGxGZWF0dXJlcy5tYXAoKGZlYXQpID0+IGZlYXQuaWQpKV07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgd21zRmVhdHVyZXM6IGRlRHVwZWRJZHMubWFwKChpZCkgPT4gYWxsRmVhdHVyZXMuZmluZCgoZmVhdCkgPT4gZmVhdC5pZCA9PT0gaWQpKVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmZldGNoU3RhdGljTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbG9hZGluZzogdHJ1ZVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmVuZExvYWRpbmcsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbG9hZGluZzogZmFsc2VcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEaXNwbGF5T3B0aW9ucywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBkaXNwbGF5OiBhY3Rpb24uY3VzdG9tRGlzcGxheSA/IGFjdGlvbi5jdXN0b21EaXNwbGF5IDogZ2V0RGlzcGxheU9wdGlvbnMoYWN0aW9uLm1vZGUpXG4gICAgfTtcbiAgfSlcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXNoYm9hcmRSZWR1Y2VyKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pIHtcbiAgcmV0dXJuIGludGVybmFsUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbn1cbiJdfQ==
623
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnJlZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQucmVkdWNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRy9GLE9BQU8sRUFDTCxtQkFBbUIsRUFJcEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUk3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFFLGdCQUFnQixFQUFpQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDcEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQztBQWtDcEQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW1CO0lBQ25ELFNBQVMsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQjtRQUNELGNBQWMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxFQUFFLEVBQUU7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QUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFNBQVM7WUFDbEIsT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQ2hELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1NBQ2Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQ0YsRUFBRSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO0lBQzFELE9BQU87UUFDTCxHQUFHLEtBQUs7UUFDUixPQUFPLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztLQUN0RixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUVGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFxQixFQUFFLE1BQWM7SUFDcEUsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIGNyZWF0ZVJlZHVjZXIsIG9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGlzcGxheU9wdGlvbnMsIGdldERpc3BsYXlPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9kaXNwbGF5LW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBEYXNoYm9hcmRHcmlkTGF5b3V0LFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgTWFuaWZlc3REZXNjcmlwdGlvbixcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVsYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3JlbGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRPcmRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXRzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBFWFBMT1JFX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi4vLi4vY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBzb2x2ZUNvbGxpc2lvbnMgfSBmcm9tICcuLi9jb21wb25lbnRzL3NvbHZlLWNvbGxpc2lvbnMuZnVuY3Rpb24nO1xuaW1wb3J0IHsgV2lkZ2V0UGxhY2VtZW50VXRpbHMgfSBmcm9tICcuLi9jb21wb25lbnRzL3dpZGdldHMvd2lkZ2V0LXBsYWNlbWVudC93aWRnZXQtcGxhY2VtZW50LnV0aWxzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMsIERhc2hib2FyZENlbGxQYXJhbXMsIFZpZXdNb2RlIH0gZnJvbSAnLi9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQge1xuICBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLFxuICBERUZBVUxUX0dBUF9QWCxcbiAgREVGQVVMVF9ST1dfSEVJR0hUX1BYLFxuICBERUZBVUxUX1JPV1NfTlVNQkVSXG59IGZyb20gJy4vZGFzaGJvYXJkLmNvbnRhbnRzJztcblxuZXhwb3J0IGNvbnN0IGRhc2hib2FyZEZlYXR1cmVLZXkgPSAnQHByeS9kYXNoYm9hcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZFN0YXRlIHtcbiAgbWFuaWZlc3RzOiB7XG4gICAgc2VuZGVyOiBzdHJpbmc7XG4gICAgdGVuYW50czogc3RyaW5nW107XG4gICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgIGxpc3Q6IE1hbmlmZXN0RGVzY3JpcHRpb25bXTtcbiAgICBjdXJyZW50SWQ6IHN0cmluZztcbiAgICBzdGF0aWNNYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgbG9hZGluZzogYm9vbGVhbjtcbiAgfTtcbiAgcHJlc2VudGF0aW9uOiB7XG4gICAgY3VycmVudDogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB2aWV3TW9kZT86IFZpZXdNb2RlO1xuICAgIGluaXRpYWw6IEdsb2JhbE1hbmlmZXN0IHwgdW5kZWZpbmVkO1xuICB9O1xuICByZXN1bHRzOiB7XG4gICAgcmVzdWx0U2V0czogUmVzdWx0U2V0cztcbiAgICByZXN1bHRTZXRzUGFyYW1zOiB7IFtpZDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBzdHJpbmdbXTtcbiAgICBkZWZhdWx0RGF0YXNvdXJjZTogc3RyaW5nW107XG4gICAgc2VsZWN0ZWRJdGVtczogc3RyaW5nW107XG4gICAgb2JqZWN0RGV0YWlsczogeyBbaWQ6IHN0cmluZ106IEl0ZW0gfTtcbiAgICBxdWlja09yZGVyOiB7IFtpZDogc3RyaW5nXTogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQgfTtcbiAgfTtcbiAgZGFzaGJvYXJkOiB7XG4gICAgcGFyYW1zOiBEYXNoYm9hcmRDZWxsUGFyYW1zO1xuICAgIGVkaXRpb25Nb2RlOiBib29sZWFuO1xuICB9O1xuICB3bXNGZWF0dXJlczogYW55W107XG4gIGRpc3BsYXk/OiBEaXNwbGF5T3B0aW9ucztcbn1cblxuZXhwb3J0IGNvbnN0IGRhc2hib2FyZEluaXRpYWxTdGF0ZTogRGFzaGJvYXJkU3RhdGUgPSB7XG4gIG1hbmlmZXN0czoge1xuICAgIHNlbmRlcjogJycsXG4gICAgdGVuYW50czogW10sXG4gICAgbWFuaWZlc3Q6IHtcbiAgICAgIHdpbmRvd3M6IFt7IHdpZGdldHM6IFtdIH1dXG4gICAgfSxcbiAgICBzdGF0aWNNYW5pZmVzdDoge1xuICAgICAgd2luZG93czogW3sgd2lkZ2V0czogW10gfV1cbiAgICB9LFxuICAgIGxpc3Q6IFtdLFxuICAgIGN1cnJlbnRJZDogJycsXG4gICAgbG9hZGluZzogZmFsc2VcbiAgfSxcbiAgcHJlc2VudGF0aW9uOiB7XG4gICAgY3VycmVudDogdW5kZWZpbmVkLFxuICAgIGluaXRpYWw6IHVuZGVmaW5lZFxuICB9LFxuICByZXN1bHRzOiB7XG4gICAgYXZhaWxhYmxlRGF0YXNvdXJjZU5hbWVzOiBbXSxcbiAgICByZXN1bHRTZXRzOiB7XG4gICAgICBbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF06IHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0sXG4gICAgICBbRVhQTE9SRV9OQU1FRF9RVUVSWV9JRF06IHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH1cbiAgICB9LFxuICAgIHJlc3VsdFNldHNQYXJhbXM6IHtcbiAgICAgIFtERUZBVUxUX05BTUVEX1FVRVJZX0lEXTogdW5kZWZpbmVkLFxuICAgICAgW0VYUExPUkVfTkFNRURfUVVFUllfSURdOiB1bmRlZmluZWRcbiAgICB9LFxuICAgIGRlZmF1bHREYXRhc291cmNlOiBbJ2N1cnJlbnQnXSxcbiAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICBvYmplY3REZXRhaWxzOiB7fSxcbiAgICBxdWlja09yZGVyOiB7fVxuICB9LFxuICBkYXNoYm9hcmQ6IHtcbiAgICBwYXJhbXM6IHtcbiAgICAgIGdyaWRXaWR0aDogMSxcbiAgICAgIGdyaWRIZWlnaHQ6IDEsXG4gICAgICBncmlkR2FwOiBERUZBVUxUX0dBUF9QWCxcbiAgICAgIGNvbHVtbnM6IERFRkFVTFRfQ09MVU1OU19OVU1CRVIsXG4gICAgICBjZWxsSGVpZ2h0OiBERUZBVUxUX1JPV19IRUlHSFRfUFgsXG4gICAgICByb3dzOiBERUZBVUxUX1JPV1NfTlVNQkVSLFxuICAgICAgY2VsbFdpZHRoOiAxLFxuICAgICAgb2Zmc2V0TGVmdDogMCxcbiAgICAgIG9mZnNldFRvcDogMCxcbiAgICAgIG1vYmlsZU1vZGU6IGZhbHNlXG4gICAgfSxcbiAgICBlZGl0aW9uTW9kZTogZmFsc2VcbiAgfSxcbiAgd21zRmVhdHVyZXM6IFtdXG59O1xuXG5jb25zdCBpbnRlcm5hbFJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyPERhc2hib2FyZFN0YXRlPihcbiAgZGFzaGJvYXJkSW5pdGlhbFN0YXRlLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmpvaW4sIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgdGVuYW50czogWy4uLnN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLCBhY3Rpb24uc2VuZGVyXVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmRlY2xhcmVTZW5kZXJJZCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBzZW5kZXI6IGFjdGlvbi5zZW5kZXIsXG4gICAgICB0ZW5hbnRzOiBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5sZW5ndGggPT09IDAgPyBhY3Rpb24udGVuYW50cyA6IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzXG4gICAgfVxuICB9KSksXG4gIG9uKFxuICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3QsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdEFmdGVyVGVuYW50Sm9pbixcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRMZWF2ZSxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJGZXRjaCxcbiAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0QWZ0ZXJSZXNpemUsXG4gICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdFdpdGhvdXRBY3RpdmF0aW9uLFxuICAgIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAoISFhY3Rpb24uc2VuZGVyICYmICFzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5maW5kKCh0ZW5hbnQpID0+IHRlbmFudCA9PT0gYWN0aW9uLnNlbmRlcikgJiYgIWFjdGlvbi5qb2luaW5nKSB7XG4gICAgICAgIC8vIGlnbm9yZSBtYW5pZmVzdCB1cGRhdGVzIGZyb20gdGVuYW50cyB0aGF0IGhhdmUgbm90IGpvaW5lZFxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICAgIHRlbmFudHM6IGFjdGlvbi50ZW5hbnRzID8/IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLFxuICAgICAgICAgIG1hbmlmZXN0OiBhY3Rpb24ubWFuaWZlc3QsXG4gICAgICAgICAgY3VycmVudElkOiBhY3Rpb24ubWFuaWZlc3RJZCA/PyBzdGF0ZS5tYW5pZmVzdHMuY3VycmVudElkXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcHJlc2VudGF0aW9uOiBhY3Rpb24ucHJlc2VudGF0aW9uID8/IHN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtczogYWN0aW9uLnNlbGVjdGVkSWRzLFxuICAgICAgICAgIHJlc3VsdFNldHM6ICEhYWN0aW9uLnJlc3VsdFNldHNcbiAgICAgICAgICAgID8geyAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsIC4uLmFjdGlvbi5yZXN1bHRTZXRzIH1cbiAgICAgICAgICAgIDogc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICApLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJvdXRlTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3Qgc2VuZGVyUmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2YoYWN0aW9uLnNlbmRlciA/PyBzdGF0ZS5tYW5pZmVzdHMuc2VuZGVyKTtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzXTtcbiAgICBuZXdXaW5kb3dzW3NlbmRlclJhbmtdID0geyAuLi5uZXdXaW5kb3dzW3NlbmRlclJhbmtdLCByb3V0ZTogYWN0aW9uLnJvdXRlIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuICAgIG5ld1dpbmRvd3NbbXlSYW5rXSA9IGFjdGlvbi5tYW5pZmVzdDtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICAobmV3V2luZG93c1tteVJhbmtdID8/IHsgd2lkZ2V0czogW10gfSkud2lkZ2V0c1thY3Rpb24uaW5kZXhdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlUmVzdWx0U2V0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgcmVzdWx0U2V0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMsXG4gICAgICAgIFthY3Rpb24uaWRdOiBhY3Rpb24ucmVzdWx0U2V0XG4gICAgICB9LFxuICAgICAgcmVzdWx0U2V0c1BhcmFtczoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNQYXJhbXMsXG4gICAgICAgIFthY3Rpb24uaWRdOiBhY3Rpb24ucGFyYW1zXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMubW92ZVdpZGdldCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NdO1xuXG4gICAgLy8gQ3JlYXRpbmcgbmV3IGN1cnJlbnQgd2luZG93IG1hbmlmZXN0LCB3aXRob3V0IG1vdmVkIHdpZGdldFxuICAgIGNvbnN0IG15TmV3V2luZG93ID0ge1xuICAgICAgLi4ubmV3V2luZG93c1tteVJhbmtdLFxuICAgICAgd2lkZ2V0czogWy4uLm5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzXVxuICAgIH07XG4gICAgY29uc3Qgd2lkZ2V0ID0gbXlOZXdXaW5kb3cud2lkZ2V0cy5zcGxpY2UoYWN0aW9uLndpZGdldEluZGV4LCAxKVswXTtcbiAgICBuZXdXaW5kb3dzW215UmFua10gPSBteU5ld1dpbmRvdztcblxuICAgIC8vIENyZWF0aW5nIGVpdGhlciBhIG5ldyB3aW5kb3cgbWFuaWZlc3Qgb3IgdXBkYXRlIHRoZSB0YXJnZXQgb25lXG4gICAgY29uc3QgdGFyZ2V0UmFuayA9IGFjdGlvbi50YXJnZXRJbmRleDtcbiAgICBpZiAodGFyZ2V0UmFuayAhPT0gLTEpIHtcbiAgICAgIGlmICghbmV3V2luZG93c1t0YXJnZXRSYW5rXSkge1xuICAgICAgICBuZXdXaW5kb3dzW3RhcmdldFJhbmtdID0ge1xuICAgICAgICAgIC4uLm5ld1dpbmRvd3NbbXlSYW5rXSxcbiAgICAgICAgICB3aWRnZXRzOiBbd2lkZ2V0XVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3V2luZG93c1t0YXJnZXRSYW5rXSA9IHtcbiAgICAgICAgICAuLi5uZXdXaW5kb3dzW3RhcmdldFJhbmtdLFxuICAgICAgICAgIHdpZGdldHM6IFsuLi4obmV3V2luZG93c1t0YXJnZXRSYW5rXS53aWRnZXRzID8/IFtdKSwgd2lkZ2V0XVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjcmVhdGUgbmV3IHdpbmRvdyB0byB3ZWxjb21lIHRoaXMgd2lkZ2V0XG4gICAgICBuZXdXaW5kb3dzLnB1c2goe1xuICAgICAgICAuLi5uZXdXaW5kb3dzW215UmFua10sXG4gICAgICAgIHdpZGdldHM6IFt3aWRnZXRdXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5tYXhpbWl6ZVdpZGdldCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG5ld1dpbmRvd3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzKSk7XG4gICAgbmV3V2luZG93c1tteVJhbmtdLndpZGdldHNbYWN0aW9uLndpZGdldEluZGV4XS5sYXlvdXQgPSB7XG4gICAgICB4OiAxLFxuICAgICAgeTogMSxcbiAgICAgIHdpZHRoOiBzdGF0ZS5kYXNoYm9hcmQucGFyYW1zLmNvbHVtbnMsXG4gICAgICBoZWlnaHQ6IHN0YXRlLmRhc2hib2FyZC5wYXJhbXMucm93c1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBuZXdXaW5kb3dzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRBdmFpbGFibGVOYW1lZFF1ZXJpZXMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBhdmFpbGFibGVEYXRhc291cmNlTmFtZXM6IGFjdGlvbi5uYW1lcyxcbiAgICAgIGRlZmF1bHREYXRhc291cmNlOiBzdGF0ZS5yZXN1bHRzLmRlZmF1bHREYXRhc291cmNlLmZpbHRlcigocnNOYW1lKSA9PiBhY3Rpb24ubmFtZXMuaW5jbHVkZXMocnNOYW1lKSlcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXREZWZhdWx0RGF0YXNvdXJjZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIGRlZmF1bHREYXRhc291cmNlOiBhY3Rpb24ubmFtZXNcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zb2x2ZUNvbGxpc2lvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICB3aW5kb3dzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cy5tYXAoKHdpbmRvdykgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdCwgLi4ub3RoZXJzXSA9IHdpbmRvdy53aWRnZXRzO1xuICAgICAgICAgIHJldHVybiBzb2x2ZUNvbGxpc2lvbnMoZmlyc3QsIG90aGVycywgd2luZG93KTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRQYXJhbXMsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGRhc2hib2FyZDoge1xuICAgICAgLi4uc3RhdGUuZGFzaGJvYXJkLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIC4uLnN0YXRlLmRhc2hib2FyZC5wYXJhbXMsXG4gICAgICAgIC4uLmFjdGlvbi5wYXJhbXNcbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy50b2dnbGVFZGl0aW9uTW9kZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgZGFzaGJvYXJkOiB7XG4gICAgICAuLi5zdGF0ZS5kYXNoYm9hcmQsXG4gICAgICBlZGl0aW9uTW9kZTogYWN0aW9uLmZvcmNlID8/ICFzdGF0ZS5kYXNoYm9hcmQuZWRpdGlvbk1vZGVcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHJlc3VsdHM6IHtcbiAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBbXG4gICAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgICAgIWFjdGlvbi5jdW11bGF0aXZlXG4gICAgICAgICAgICA/IFthY3Rpb24uaWRdXG4gICAgICAgICAgICA6IHN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5maW5kKChpZCkgPT4gaWQgPT09IGFjdGlvbi5pZClcbiAgICAgICAgICAgID8gc3RhdGUucmVzdWx0cy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoaWQpID0+IGlkICE9PSBhY3Rpb24uaWQpXG4gICAgICAgICAgICA6IFsuLi5zdGF0ZS5yZXN1bHRzLnNlbGVjdGVkSXRlbXMsIGFjdGlvbi5pZF1cbiAgICAgICAgKVxuICAgICAgXVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmludmVydFNlbGVjdGlvbiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxJdGVtcyA9IE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAgIC5tYXAoKHJzKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNbcnNdLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1tyc10uaXRlbXNbY2xhc3NJZF0gYXMgSXRlbVtdKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCk7XG5cbiAgICBjb25zdCBpbnZlcnRlZEl0ZW1zSWQgPSBhbGxJdGVtcy5maWx0ZXIoKGl0ZW1JZCkgPT4gIXN0YXRlLnJlc3VsdHMuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtSWQpKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoaW52ZXJ0ZWRJdGVtc0lkKV1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RNYW55LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICByZXN1bHRzOiB7XG4gICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLm5ldyBTZXQoYWN0aW9uLmlkcyldXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlTWFuaWZlc3RzTGlzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBsaXN0OiBhY3Rpb24ubWFuaWZlc3RzXG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgc3RhdGljTWFuaWZlc3Q6IGFjdGlvbi5zdGF0aWNNYW5pZmVzdFxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmxvYWRBbmRBY3RpdmF0ZU1hbmlmZXN0LCBEYXNoYm9hcmRBY3Rpb25zLmxvYWRNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICB3aW5kb3dzOiBbLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MubWFwKCh3aW5NYW5pZmVzdCkgPT4gKHsgLi4ud2luTWFuaWZlc3QsIHdpZGdldHM6IFtdIH0pKV1cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5jbGVhck1hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgd2luZG93czogWy4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC53aW5kb3dzLm1hcCgocHJldmlvdXMpID0+ICh7IC4uLnByZXZpb3VzLCB3aWRnZXRzOiBbXSB9KSldLFxuICAgICAgICBmaWx0ZXJzOiBbXVxuICAgICAgfSxcbiAgICAgIGN1cnJlbnRJZDogJydcbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVPYmplY3RzRGV0YWlscywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgcmVzdWx0czoge1xuICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgIG9iamVjdERldGFpbHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5vYmplY3REZXRhaWxzLFxuICAgICAgICAuLi5hY3Rpb24ubGlzdFxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmV4cGxvcmUsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBPYmplY3Qua2V5cyhzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgICAubWFwKChrZXkpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKHN0YXRlLnJlc3VsdHMucmVzdWx0U2V0c1trZXldLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGtleUNsYXNzKSA9PiBzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHNba2V5XS5pdGVtc1trZXlDbGFzc10uZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gYWN0aW9uLmlkKSlcbiAgICAgICAgICAuZmluZCgoaXQpID0+ICEhaXQpXG4gICAgICApXG4gICAgICAuZmluZCgoaXQpID0+ICEhaXQpIGFzIEl0ZW07XG5cbiAgICBjb25zdCBhY3R1YWxXaW5kb3dzID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3M7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICB3aW5kb3dzOiBhY3R1YWxXaW5kb3dzLmNvbmNhdCh7XG4gICAgICAgICAgICB3aWRnZXRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEyLCBoZWlnaHQ6IDEyIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dyYXBoJyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB7fSxcbiAgICAgICAgICAgICAgICBkYXRhc291cmNlOiBFWFBMT1JFX05BTUVEX1FVRVJZX0lEXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5yZXN1bHRTZXRzLFxuICAgICAgICAgIFtFWFBMT1JFX05BTUVEX1FVRVJZX0lEXToge1xuICAgICAgICAgICAgaXRlbXM6IHsgW2N1cnJlbnRJdGVtLm9DbGFzc106IFtjdXJyZW50SXRlbV0gfSxcbiAgICAgICAgICAgIHJlbGF0aW9uczogW10gYXMgUmVsYXRpb25bXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldFJlZnJlc2hSYXRlLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHJlZnJlc2hSYXRlczogeyAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QucmVmcmVzaFJhdGVzLCBbYWN0aW9uLmlkXTogYWN0aW9uLnJhdGUgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuYWRkUmVsYXRpb25zVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcbiAgICBhY3Rpb24ucmVsYXRpb25zLmZvckVhY2goKHJlbGF0aW9uKSA9PiB7XG4gICAgICBPYmplY3Qua2V5cyh1cGRhdGVkUmVzdWx0U2V0cykuZm9yRWFjaCgocnNJZCkgPT4ge1xuICAgICAgICBjb25zdCBpc0NvbmNlcm5lZCA9IE9iamVjdC5rZXlzKHVwZGF0ZWRSZXN1bHRTZXRzW3JzSWRdLml0ZW1zKS5tYXAoKGNsYXNzSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFJlc3VsdFNldHNbcnNJZF0uaXRlbXNbY2xhc3NJZF0ubWFwKFxuICAgICAgICAgICAgKGl0ZW06IEl0ZW0pID0+IGl0ZW0uaWQgPT09IHJlbGF0aW9uLnNvdXJjZSB8fCBpdGVtLmlkID09PSByZWxhdGlvbi5kZXN0aW5hdGlvblxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaXNDb25jZXJuZWQpIHtcbiAgICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1tyc0lkXS5yZWxhdGlvbnMucHVzaChyZWxhdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgcmVzdWx0U2V0czogdXBkYXRlZFJlc3VsdFNldHNcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRJdGVtVG9SZXN1bHRTZXRzLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZWRSZXN1bHRTZXRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5yZXN1bHRzLnJlc3VsdFNldHMpKTtcblxuICAgIGlmICghIWFjdGlvbi5yZXN1bHRTZXQpIHtcbiAgICAgIGlmICghdXBkYXRlZFJlc3VsdFNldHNbYWN0aW9uLnJlc3VsdFNldF0uaXRlbXNbYWN0aW9uLml0ZW0ub0NsYXNzXSkge1xuICAgICAgICB1cGRhdGVkUmVzdWx0U2V0c1thY3Rpb24ucmVzdWx0U2V0XS5pdGVtc1thY3Rpb24uaXRlbS5vQ2xhc3NdID0gW2FjdGlvbi5pdGVtXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVwZGF0ZWRSZXN1bHRTZXRzW2FjdGlvbi5yZXN1bHRTZXRdLml0ZW1zW2FjdGlvbi5pdGVtLm9DbGFzc10ucHVzaChhY3Rpb24uaXRlbSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICByZXN1bHRTZXRzOiB1cGRhdGVkUmVzdWx0U2V0c1xuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnF1aWNrT3JkZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcmVzdWx0czoge1xuICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICBxdWlja09yZGVyOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5xdWlja09yZGVyLFxuICAgICAgICAgIFthY3Rpb24uZGF0YXNvdXJjZUlkXTogYWN0aW9uLmFzYyA/IHsgYXR0cmlidXRlOiBhY3Rpb24uYXR0cmlidXRlLCBhc2M6IGFjdGlvbi5hc2MgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHByZXNlbnRhdGlvbjoge1xuICAgICAgICAuLi5zdGF0ZS5wcmVzZW50YXRpb24sXG4gICAgICAgIGN1cnJlbnQ6IGFjdGlvbi5wcmVzZW50YXRpb24sXG4gICAgICAgIHZpZXdNb2RlOiBhY3Rpb24udmlld01vZGUsXG4gICAgICAgIGluaXRpYWw6IGFjdGlvbi5wcmVzZW50YXRpb24gPyBzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnNldEluaXRpYWxQcmVzZW50YXRpb24sIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcHJlc2VudGF0aW9uOiB7XG4gICAgICAgIC4uLnN0YXRlLnByZXNlbnRhdGlvbixcbiAgICAgICAgaW5pdGlhbDogYWN0aW9uLmluaXRpYWxcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5zZXRHcmlkTGF5b3V0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGNvbnN0IG15UmFuayA9IHN0YXRlLm1hbmlmZXN0cy50ZW5hbnRzLmluZGV4T2Yoc3RhdGUubWFuaWZlc3RzLnNlbmRlcik7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MgPz8gW10pKTtcbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXSkge1xuICAgICAgbmV3V2luZG93c1tteVJhbmtdID0geyB3aWRnZXRzOiBbXSB9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZCA9IHt9O1xuICAgIH1cbiAgICBpZiAoIW5ld1dpbmRvd3NbbXlSYW5rXS53aWRnZXRzKSB7XG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cyA9IFtdO1xuICAgIH1cbiAgICBuZXdXaW5kb3dzW215UmFua10uZ3JpZC5sYXlvdXQgPSBhY3Rpb24ubGF5b3V0O1xuICAgIGlmIChhY3Rpb24ubGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkge1xuICAgICAgLy8gUmVvcmRlciBsYXlvdXRzXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJvd3M6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLnJvd3MsXG4gICAgICAgIGNvbHVtbnM6IG5ld1dpbmRvd3NbbXlSYW5rXS5ncmlkLmNvbHVtbnNcbiAgICAgIH07XG4gICAgICBjb25zdCBwbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHt9IGFzIFdpZGdldE1hbmlmZXN0LCBhY3Rpb24ubGF5b3V0LCBwYXJhbXMpO1xuXG4gICAgICBuZXdXaW5kb3dzW215UmFua10ud2lkZ2V0cy5mb3JFYWNoKCh3aWRnZXQ6IFdpZGdldE1hbmlmZXN0LCBpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgdGFyZ2V0TGF5b3V0ID0gcGxhY2VzW2lkeF0/LmxheW91dDtcbiAgICAgICAgaWYgKCF0YXJnZXRMYXlvdXQpIHtcbiAgICAgICAgICB0YXJnZXRMYXlvdXQgPSB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfTtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0luY29ycmVjdCBwbGFjZW1lbnQgY2FsY3VsYXRpb24nLCBwbGFjZXMsIGlkeCwgd2lkZ2V0LCBhY3Rpb24ubGF5b3V0KTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXQubGF5b3V0ID0geyAuLi50YXJnZXRMYXlvdXQgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICAgIHdpbmRvd3M6IG5ld1dpbmRvd3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0pLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLmNyZWF0ZVRhYiwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBteVJhbmsgPSBzdGF0ZS5tYW5pZmVzdHMudGVuYW50cy5pbmRleE9mKHN0YXRlLm1hbmlmZXN0cy5zZW5kZXIpO1xuICAgIGNvbnN0IG15TGF5b3V0ID0gc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3NbbXlSYW5rXS5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gICAgY29uc3QgbmV3V2luZG93cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LndpbmRvd3MpKTtcbiAgICBuZXdXaW5kb3dzLnB1c2goeyBncmlkOiB7IGxheW91dDogbXlMYXlvdXQgfSwgd2lkZ2V0czogW10gfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucmVzdG9yZUluaXRpYWxNYW5pZmVzdCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDogSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5wcmVzZW50YXRpb24uaW5pdGlhbCkpXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMucHJvcGFnYXRlR3JpZExheW91dCwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBuZXdXaW5kb3dzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3Qud2luZG93cykpO1xuICAgIG5ld1dpbmRvd3NbYWN0aW9uLnJhbmtdID0gYWN0aW9uLm1hbmlmZXN0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgd2luZG93czogbmV3V2luZG93c1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuc2V0RmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFuaWZlc3RzOiB7XG4gICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgIGZpbHRlcnM6IGFjdGlvbi5maWx0ZXJzXG4gICAgICB9XG4gICAgfVxuICB9KSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRmlsdGVycywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBpc1ByZXNlbnQgPSBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmluZCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IGFjdGlvbi5maWx0ZXIuaWQpO1xuICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgaWYgKGlzUHJlc2VudCkge1xuICAgICAgZmlsdGVycyA9XG4gICAgICAgIHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzPy5tYXAoKGZpbHRlcikgPT4gKGZpbHRlci5pZCA9PT0gYWN0aW9uLmZpbHRlci5pZCA/IGFjdGlvbi5maWx0ZXIgOiBmaWx0ZXIpKSA/P1xuICAgICAgICBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzKSB7XG4gICAgICAgIGZpbHRlcnMgPSBbLi4uKHN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzIGFzIEZpbHRlcltdKSwgYWN0aW9uLmZpbHRlcl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaWx0ZXJzID0gW2FjdGlvbi5maWx0ZXJdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBtYW5pZmVzdHM6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5yZW1vdmVGaWx0ZXIsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG1hbmlmZXN0czoge1xuICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4uc3RhdGUubWFuaWZlc3RzLm1hbmlmZXN0LFxuICAgICAgICBmaWx0ZXJzOiBzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycz8uZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5pZCAhPT0gYWN0aW9uLmlkKVxuICAgICAgfVxuICAgIH1cbiAgfSkpLFxuICBvbihEYXNoYm9hcmRBY3Rpb25zLnJlbW92ZUZpbHRlcnMsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtYW5pZmVzdHM6IHtcbiAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cy5tYW5pZmVzdCxcbiAgICAgICAgZmlsdGVyczogW11cbiAgICAgIH1cbiAgICB9XG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVGaWx0ZXJWYWx1ZSwgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShzdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycyA/PyBbXSkpIGFzIEZpbHRlcltdO1xuXG4gICAgY29uc3QgZmlsdGVyVG9VcGRhdGUgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBhY3Rpb24uaWQpO1xuICAgIGlmIChmaWx0ZXJUb1VwZGF0ZSkge1xuICAgICAgaWYgKCFhY3Rpb24udmFsdWUpIHtcbiAgICAgICAgZGVsZXRlIGZpbHRlclRvVXBkYXRlLnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyVG9VcGRhdGUudmFsdWUgPSBhY3Rpb24udmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWFuaWZlc3RzOiB7XG4gICAgICAgIC4uLnN0YXRlLm1hbmlmZXN0cyxcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMubWFuaWZlc3QsXG4gICAgICAgICAgZmlsdGVyc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMuZ2V0V21zRmVhdHVyZXMsIERhc2hib2FyZEFjdGlvbnMucmVzZXRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgd21zRmVhdHVyZXM6IFtdXG4gIH0pKSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5hZGRXbXNGZWF0dXJlcywgKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAgICBjb25zdCBhbGxGZWF0dXJlcyA9IFsuLi5zdGF0ZS53bXNGZWF0dXJlcywgLi4uYWN0aW9uLmZlYXR1cmVzXTtcbiAgICBjb25zdCBkZUR1cGVkSWRzID0gWy4uLm5ldyBTZXQoYWxsRmVhdHVyZXMubWFwKChmZWF0KSA9PiBmZWF0LmlkKSldO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHdtc0ZlYXR1cmVzOiBkZUR1cGVkSWRzLm1hcCgoaWQpID0+IGFsbEZlYXR1cmVzLmZpbmQoKGZlYXQpID0+IGZlYXQuaWQgPT09IGlkKSlcbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5mZXRjaFN0YXRpY01hbmlmZXN0LCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9KSxcbiAgb24oRGFzaGJvYXJkQWN0aW9ucy5lbmRMb2FkaW5nLCAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1hbmlmZXN0czoge1xuICAgICAgICAuLi5zdGF0ZS5tYW5pZmVzdHMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlXG4gICAgICB9XG4gICAgfTtcbiAgfSksXG4gIG9uKERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGlzcGxheU9wdGlvbnMsIChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlzcGxheTogYWN0aW9uLmN1c3RvbURpc3BsYXkgPyBhY3Rpb24uY3VzdG9tRGlzcGxheSA6IGdldERpc3BsYXlPcHRpb25zKGFjdGlvbi5tb2RlKVxuICAgIH07XG4gIH0pXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZGFzaGJvYXJkUmVkdWNlcihzdGF0ZTogRGFzaGJvYXJkU3RhdGUsIGFjdGlvbjogQWN0aW9uKSB7XG4gIHJldHVybiBpbnRlcm5hbFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG59XG4iXX0=
@@ -3906,8 +3906,8 @@ const SearchActions = {
3906
3906
  search: createAction('[Search] search', props()),
3907
3907
  getDatasourceItems: createAction('[Search] (bus) search named', props()),
3908
3908
  // result Search
3909
- searchSuccess: createAction('[Search Api] Search Success', props()),
3910
- searchFailure: createAction('[Search Api] Search Failure', props())
3909
+ searchSuccess: createAction('[Search Api] (bus) Search Success', props()),
3910
+ searchFailure: createAction('[Search Api] (bus) Search Failure', props())
3911
3911
  };
3912
3912
 
3913
3913
  class SearchService {
@@ -10284,7 +10284,7 @@ const internalReducer = createReducer(dashboardInitialState, on(DashboardActions
10284
10284
  }), on(DashboardActions.updateWidgetManifest, (state, action) => {
10285
10285
  const myRank = state.manifests.tenants.indexOf(state.manifests.sender);
10286
10286
  const newWindows = JSON.parse(JSON.stringify(state.manifests.manifest.windows));
10287
- newWindows[myRank].widgets[action.index] = action.manifest;
10287
+ (newWindows[myRank] ?? { widgets: [] }).widgets[action.index] = action.manifest;
10288
10288
  return {
10289
10289
  ...state,
10290
10290
  manifests: {