@ieeesa-npm/events-and-meetings 0.3.3 → 0.3.4

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.
@@ -143,6 +143,12 @@ export class EventsAndMeetingsComponent {
143
143
  console.log('APIBaseURL', this.apiBaseURL);
144
144
  this.activatedRoute.data.subscribe((response) => {
145
145
  console.log('Response', response);
146
+ response['apiBaseURL']?.subscribe((apiBaseURL) => {
147
+ console.log('apiBaseURL', apiBaseURL);
148
+ });
149
+ response['userPermissions']?.subscribe((userPermissions) => {
150
+ console.log('userPermissions', userPermissions);
151
+ });
146
152
  });
147
153
  if (this.deleteButton)
148
154
  this.deleteButton.disabled = true;
@@ -711,4 +717,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
711
717
  }], routePaths: [{
712
718
  type: Input
713
719
  }] } });
714
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1NZWV0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUUzSSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsMEhBQTBIO0FBQzFILE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUtMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFFVixxQkFBcUIsRUFDckIsU0FBUyxFQUNULDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHdCQUF3QixFQUV4QixrQkFBa0IsR0FFbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBC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O1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0F2dEJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHlMQ3pHdkMsd3JLQWdJQSx3MmREckNJLFlBQVksd1lBRVosa0JBQWtCLCtrQ0FDbEIscUJBQXFCLG9JQUNyQixtQkFBbUIsc0lBQ25CLGVBQWUsd05BQ2YsZUFBZSwwTUFDZixlQUFlLHVRQUNmLFFBQVE7OzRGQU1DLDBCQUEwQjtrQkFsQnRDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1DQUFtQzt3QkFDbkMsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsUUFBUTtxQkFDVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2tTQVE1QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBeUVHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVhdGVNb2RpZnlFdmVudE9yTWVldGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtbW9kaWZ5LWV2ZW50LW9yLW1lZXRpbmcvY3JlYXRlLW1vZGlmeS1ldmVudC1vci1tZWV0aW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnRzLWFuZC1tZWV0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gVG9EbzogY29uc3RhbnRzLmpzb24gdG8gYmUgbWFpbnRhaW5lZCBhdCBsaWJyYXJ5IHNpZGUgYXMgYSBmYWxsYmFjayBpZiBub3QgZm91bmQgYXBwbGljYXRpb24gc3BlY2lmaWMgZnJvbSBzZXJ2ZXIgc2lkZS5cclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHtcclxuICBQYWdpbmF0b3JDb25maWcsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIFRvZ2dsZUJ1dHRvbixcclxuICBJY29uQnV0dG9uLFxyXG4gIEZpbHRlckNvbXBvbmVudCxcclxuICBDaGlwT3B0aW9uLFxyXG4gIENoaXBzVHlwZSxcclxuICBTZWFyY2hDb21wb25lbnQsXHJcbiAgU2VhcmNoVHlwZSxcclxuICBNZW51LFxyXG4gIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbiAgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBMZWdlbmQsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBFdmVudHNBbmRNZWV0aW5ncyxcclxuICBHZXRFdmVudHNBbmRNZWV0aW5nc1BheWxvYWQsXHJcbn0gZnJvbSAnLi9tb2RlbHMvZXZlbnRzLWFuZC1tZWV0aW5ncy1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuL2Fzc2V0cy9kYXRlLWZvcm1hdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0VHlwZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgU2FmZVBpcGUsXHJcbiAgU2FmZVR5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBWaWV3RWRpdEFjdGlvbiB9IGZyb20gJy4vbW9kZWxzL3ZpZXctZWRpdC1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlIH0gZnJvbSAnLi9tb2RlbHMvbGlzdC1jYWxlbmRhci12aWV3LWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL2V2ZW50LW1lZXRpbmctZnVuY3Rpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIE1lZXRpbmdQZXJtaXNzaW9ucyxcclxuICBVc2VyUGVybWlzc2lvbixcclxufSBmcm9tICcuL21vZGVscy9tZWV0aW5nLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nUm91dGVDb25maWcgfSBmcm9tICcuL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEdldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZCxcclxuICBNZWV0aW5nLFxyXG59IGZyb20gJy4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgRXZlbnRBY3Rpb24sXHJcbiAgTWVldGluZ0FjdGlvbixcclxufSBmcm9tICcuL21vZGVscy9ldmVudC1vci1tZWV0aW5nLW1lbnUtYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5jb25zdCBDT0xVTU5fREVGID0ge1xyXG4gIG5hbWU6ICduYW1lJyxcclxuICBzdGFydERhdGVUaW1lOiAnc3RhcnQtZGF0ZS10aW1lJyxcclxuICBlbmREYXRlVGltZTogJ2VuZC1kYXRlLXRpbWUnLFxyXG4gIHRpbWVab25lOiAndGltZS16b25lJyxcclxuICBncm91cDogJ3JlbGF0ZWQtZ3JvdXAnLFxyXG4gIGxvY2F0aW9uOiAnbG9jYXRpb24nLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIGV2ZW50IGFuZCBtZWV0aW5nIGZlYXR1cmVzXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkRlc3Ryb3l9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ3JlYXRlTW9kaWZ5RXZlbnRPck1lZXRpbmdDb21wb25lbnQsXHJcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2FmZVBpcGUsXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0ITogc3RyaW5nO1xyXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG4gIGlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgZXZlbnREYXRhITogRXZlbnRzQW5kTWVldGluZ3M7XHJcbiAgbWVldGluZ0RhdGEhOiBFdmVudHNBbmRNZWV0aW5ncztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlbGVjdGVkRGF0YSE6IGFueTtcclxuICBtZW51RGF0YSE6IE1lbnU7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgZGVmYXVsdFNvcnRlZENvbHVtbiA9ICdzdGFydERhdGVUaW1lJztcclxuICBuZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPSAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogRmlsdGVyVHlwZS5HUk9VUF9OQU1FLFxyXG4gICAgICBuYW1lOiBGaWx0ZXJUeXBlLkdST1VQX05BTUUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiBGaWx0ZXJUeXBlLlNUQVRVUyxcclxuICAgICAgbmFtZTogRmlsdGVyVHlwZS5TVEFUVVMsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHNjcmVlblRleHRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdFdmVudHNBbmRNZWV0aW5ncztcclxuICBwYWdpbmF0b3JDb25maWc6IFBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgIHJlY29yZHNQZXJQYWdlOiB0aGlzLnNjcmVlblRleHRzPy5wYWdlU2l6ZU9wdGlvbnM/LlsxXSxcclxuICAgIHBhZ2VTaXplT3B0aW9uczogdGhpcy5zY3JlZW5UZXh0cy5wYWdlU2l6ZU9wdGlvbnMsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgfTtcclxuICBuZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzFdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzLnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG4gIGVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnkgPSB0aGlzLnNjcmVlblRleHRzPy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5O1xyXG4gIGNvbHVtbkhlYWRpbmcgPSB0aGlzLnNjcmVlblRleHRzPy5jb2x1bW5TY2hlbWE/LmNvbHVtbkhlYWRpbmc7XHJcbiAgdmlld0FsbE1lZXRpbmdzVGV4dCA9IHRoaXMuc2NyZWVuVGV4dHM/LnZpZXdBbGxNZWV0aW5ncztcclxuICBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIG5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICBldmVudHNBbmRNZWV0aW5nc0FjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzU2VhcmNoTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRmlsdGVyTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzQWRkTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRGVsZXRlTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRWRpdE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBldmVudEFuZE1lZXRpbmdMZWdlbmRzOiBMZWdlbmRbXSA9IHRoaXMuY29uc3RhbnRzPy5ldmVudE9yTWVldGluZ0xlZ2VuZHM7XHJcbiAgbGlzdE9yQ2FsZW5kYXJWaWV3czogVG9nZ2xlQnV0dG9uW10gPSB0aGlzLnNjcmVlblRleHRzPy50b2dnbGVCdXR0b25zO1xyXG4gIGRlbGV0ZUJ1dHRvbjogSWNvbkJ1dHRvbiA9IHRoaXMuc2NyZWVuVGV4dHM/LmJ1dHRvbnM/LlsxXTtcclxuICBjcmVhdGVCdXR0b246IEljb25CdXR0b24gPSB0aGlzLnNjcmVlblRleHRzPy5idXR0b25zPy5bMF07XHJcbiAgZXZlbnRBbmRNZWV0aW5nVmlld1R5cGUgPSBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlO1xyXG4gIHNlbGVjdGVkVmlld1R5cGU6IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUgPVxyXG4gICAgRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVc7XHJcbiAgZXZlbnRzQW5kTWVldGluZ3NMaXN0OiBFdmVudHNBbmRNZWV0aW5nc1tdID0gW107XHJcbiAgdXNlck1lZXRpbmdQZXJtaXNzaW9ucyE6IE1lZXRpbmdQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgc3VwcG9ydE1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgbWluQ2hhcmFjdGVyVG9TZWFyY2ggPSAzO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgc2VhcmNoUmVzdWx0TWVzc2FnZSE6IHN0cmluZztcclxuICBldmVudHNPck1lZXRpbmdzSW5mbyE6IEV2ZW50c0FuZE1lZXRpbmdzW107XHJcbiAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkczogc3RyaW5nW10gPSBbXTtcclxuICBpc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBpc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZDogc3RyaW5nW10gPSBbXTtcclxuICAvLyBUb0RvIGVtaXQgdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGV2ZW50cyBvZiBDUkVBVEUsIFZJRVcsIEVESVQgZXZlbnRzIGFuZCBtZWV0aW5ncyB1c2luZyBAT3V0cHV0IGFzIHdlIGRpc2N1c3NlZCB0aGUgY29uc3VtZXIgYXBwbGljYXRpb24gbWF5IGxvYWQgdGhlIG1lZXRpbmcgYW5kIGV2ZW50cyBjb21wb25lbnRzIGludG8gdGhlIHRhYmJlZCB2aWV3IG9yIG90aGVyIHdheSBpbnN0ZWFkIG9mIHJvdXRpbmdcclxuICBASW5wdXQoKSByb3V0ZVBhdGhzITogRXZlbnRzQW5kTWVldGluZ1JvdXRlQ29uZmlnO1xyXG4gIG1lZXRpbmdzOiBNZWV0aW5nW10gPSBbXTtcclxuICBzYWZlVHlwZTogU2FmZVR5cGUgPSBTYWZlVHlwZS5IVE1MO1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnQuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U6IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHVzZXJQZXJtaXNzaW9uU2VydmljZTogVXNlclBlcm1pc3Npb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyU2VydmljZVxyXG4gICAgICAuZ2V0QnJlYWtwb2ludCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoZSBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudC5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdVc2VyUGVybWlzc2lvbnMnLCB0aGlzLnVzZXJQZXJtaXNzaW9ucyk7XHJcbiAgICBjb25zb2xlLmxvZygnQVBJQmFzZVVSTCcsIHRoaXMuYXBpQmFzZVVSTCk7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmVzcG9uc2UnLCByZXNwb25zZSk7XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLmRlbGV0ZUJ1dHRvbikgdGhpcy5kZWxldGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zdXBwb3J0TWVzc2FnZSA9XHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1pbkNoYXJSZXF1aXJlZFRvU2VhcmNoMSArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMubWluQ2hhcmFjdGVyVG9TZWFyY2ggK1xyXG4gICAgICAnICcgK1xyXG4gICAgICB0aGlzLnNjcmVlblRleHRzPy5taW5DaGFyUmVxdWlyZWRUb1NlYXJjaDI7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0U2VsZWN0ZWRFdmVudERhdGEobnVsbCk7XHJcbiAgICB0aGlzLnJvdXRlUGF0aHMgPSB0aGlzLnJvdXRlUGF0aHMgPz8gdGhpcy5jb25zdGFudHM/LnJvdXRlQ29uZmlnUGF0aDtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRSb3V0ZVBhdGhzKHRoaXMucm91dGVQYXRocyk7XHJcbiAgICB0aGlzLnVzZXJNZWV0aW5nUGVybWlzc2lvbnMgPVxyXG4gICAgICB0aGlzLnVzZXJQZXJtaXNzaW9uU2VydmljZS5maWx0ZXJVc2VyTWVldGluZ1Blcm1pc3Npb25zKFxyXG4gICAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZT8uc2V0QXBwQ29uZmlnKFxyXG4gICAgICB0aGlzLmFwaUJhc2VVUkwsXHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0VXNlck1lZXRpbmdQZXJtaXNzaW9ucyhcclxuICAgICAgdGhpcy51c2VyTWVldGluZ1Blcm1pc3Npb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0R3JvdXBzKCkuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmlzQ3JlYXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZCA9XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnZhbGlkYXRlQWNjZXNzKFBlcm1pc3Npb25UeXBlLkNSRUFURV9FVkVOVCk7XHJcbiAgICB0aGlzLmZpbHRlckV2ZW50QW5kTWVldGluZ0FjdGlvbnMoKTtcclxuICAgIHRoaXMuaXNEZWxldGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkID1cclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3MoXHJcbiAgICAgICAgUGVybWlzc2lvblR5cGUuREVMRVRFX0VWRU5UXHJcbiAgICAgICkgJiZcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3MoXHJcbiAgICAgICAgUGVybWlzc2lvblR5cGUuREVMRVRFX01FRVRJTkdcclxuICAgICAgKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiBudWxsLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIHRoZSBldmVudCBhbmQgbWVldGluZyBhY3Rpb25zIGJhc2VkIG9uIGV2ZW50IGFuZCBtZWV0aW5nIHBlcm1pc3Npb25zLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZpbHRlckV2ZW50QW5kTWVldGluZ0FjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zY3JlZW5UZXh0cz8uZXZlbnRBY3Rpb25zKVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzLmV2ZW50QWN0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0RmlsdGVyZWRFdmVudEFjdGlvbnMoXHJcbiAgICAgICAgICB0aGlzLnNjcmVlblRleHRzLmV2ZW50QWN0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICBpZiAodGhpcy5zY3JlZW5UZXh0cz8ubWVldGluZ0FjdGlvbnMpXHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHMubWVldGluZ0FjdGlvbnMgPVxyXG4gICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEZpbHRlcmVkTWVldGluZ0FjdGlvbnMoXHJcbiAgICAgICAgICB0aGlzLnNjcmVlblRleHRzLm1lZXRpbmdBY3Rpb25zXHJcbiAgICAgICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGFibGUgY29sdW1uIHNjaGVtYSB0byBkaXNwbGF5IHRoZSBtZWV0aW5nIGFuZCBldmVudCBkZXRhaWxzIGluIHRhYnVsYXIgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGluaXRpYWxpemVDb2x1bW5TY2hlbWEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLlNFTEVDVCxcclxuICAgICAgICBoZWFkaW5nOiAnJyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQuc2VsZWN0fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5ORVNURURfVEFCTEUsXHJcbiAgICAgICAgaGVhZGluZzogJycsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLk5FU1RFRF9UQUJMRSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Lmhhc0NoaWxkcmVuLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5uYW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubmFtZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTElOSyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm5hbWV9YCxcclxuICAgICAgICBpc0NvbnRlbnRVbmRlckxpbms6IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uc3RhcnREYXRlVGltZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LnN0YXJ0RGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgICFlbGVtZW50LmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgICAgID8gYCR7bW9tZW50KGVsZW1lbnQuc3RhcnREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQuc3RhcnREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9YFxyXG4gICAgICAgICAgICA6IGAke21vbWVudChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5lbmREYXRlVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgIWVsZW1lbnQuaXNNZWV0aW5nRXZlbnRcclxuICAgICAgICAgICAgPyBgJHttb21lbnQoZWxlbWVudC5lbmREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQuZW5kRGF0ZVRpbWUpLmZvcm1hdChcclxuICAgICAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICAgICApfWBcclxuICAgICAgICAgICAgOiBgJHttb21lbnQoZWxlbWVudC5lbmREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA2LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8udGltZVpvbmUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy50aW1lWm9uZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC50aW1lWm9uZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA3LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZ3JvdXAsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5ncm91cCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5ncm91cE5hbWUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogOCxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LmxvY2F0aW9uLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8ubG9jYXRpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQubWVldGluZ0xvY2F0aW9uID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDksXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFjdGlvbnMsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5tZW51QWN0aW9ufWAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBldmVudHMgYW5kIG1lZXRpbmdzIGxpc3QgZnJvbSB0aGUgc2VydmVyLlxyXG4gICAqIEBwYXJhbSB7R2V0RXZlbnRzQW5kTWVldGluZ3NQYXlsb2FkfSBwYXlsb2FkXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0RXZlbnRzQW5kTWVldGluZ3MocGF5bG9hZDogR2V0RXZlbnRzQW5kTWVldGluZ3NQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0RXZlbnRzQW5kTWVldGluZ3MocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0ID0gW107XHJcbiAgICAgICAgICByZXNwb25zZT8uYm9keT8uZXZlbnRNZWV0aW5nTGlzdD8uZm9yRWFjaCgoZXZlbnRNZWV0aW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gZXZlbnRNZWV0aW5nLmlzTWVldGluZ0V2ZW50XHJcbiAgICAgICAgICAgICAgPyB0aGlzLnNjcmVlblRleHRzPy5ldmVudFxyXG4gICAgICAgICAgICAgIDogdGhpcy5zY3JlZW5UZXh0cz8ubWVldGluZztcclxuICAgICAgICAgICAgZXZlbnRNZWV0aW5nLnRvb2xUaXBUZXh0ID0gZXZlbnRNZWV0aW5nLm5hbWUgKyAnICcgKyB0aXRsZTtcclxuICAgICAgICAgICAgZXZlbnRNZWV0aW5nLmNvbnRlbnRVbmRlckxpbmsgPSBldmVudE1lZXRpbmcuc3RhdHVzO1xyXG4gICAgICAgICAgICBldmVudE1lZXRpbmcubGVnZW5kQ29sb3IgPVxyXG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmdldEV2ZW50T3JNZWV0aW5nTGVnZW5kQ29sb3IoXHJcbiAgICAgICAgICAgICAgICBldmVudE1lZXRpbmc/LnN0YXR1c1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0LnB1c2goZXZlbnRNZWV0aW5nKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcudG90YWxSZWNvcmRzID1cclxuICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LnRvdGFsUmVjb3JkcyA/PyB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdCA9IHRoaXMubWFwTWVudUFjdGlvblRvTGlzdChcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3RcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdCA9IFsuLi50aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdF07XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZyA9IHsgLi4udGhpcy5wYWdpbmF0b3JDb25maWcgfTtcclxuICAgICAgICAgIGlmICh0aGlzLmlzU2VhcmNoQWN0aXZlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFJlc3VsdE1lc3NhZ2UgPSBgPGRpdj4ke3RoaXMuc2NyZWVuVGV4dHM/LnNlYXJjaFJlc3VsdE1zZ1BhcnQxfSAke3RoaXMucGFnaW5hdG9yQ29uZmlnPy50b3RhbFJlY29yZHN9XHJcbiAgICAgICAgJHt0aGlzLnNjcmVlblRleHRzPy5zZWFyY2hSZXN1bHRNc2dQYXJ0Mn0gXCI8c3Ryb25nPiR7dGhpcy50cmltbWVkU2VhcmNoVGVybX08L3N0cm9uZz5cIjwvZGl2PmA7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGFibGUgcm93IGFjdGlvbnMgZm9yIGVhY2ggcm93IG9mIGV2ZW50cyBhbmQgbWVldGluZ3MgdGFibGUgdGhlbiByZXR1cm5zIEV2ZW5zQW5kTWVldGluZ3MuXHJcbiAgICogQHBhcmFtIHtFdmVudHNBbmRNZWV0aW5nc1tdfVxyXG4gICAqICogQHJldHVybiB7RXZlbnRzQW5kTWVldGluZ3NbXX0gLUl0IHJldHVybnMgZXZlbnRzQW5kTWVldGluZ3NMaXN0IHdpdGggbWVudSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGVhY2ggcm93LlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG1hcE1lbnVBY3Rpb25Ub0xpc3QoXHJcbiAgICBldmVudHNBbmRNZWV0aW5nc0xpc3Q6IEV2ZW50c0FuZE1lZXRpbmdzW11cclxuICApOiBFdmVudHNBbmRNZWV0aW5nc1tdIHtcclxuICAgIGV2ZW50c0FuZE1lZXRpbmdzTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0ubWVudUFjdGlvbiA9IGl0ZW0uaXNNZWV0aW5nRXZlbnRcclxuICAgICAgICA/IHRoaXMuc2NyZWVuVGV4dHM/LmV2ZW50QWN0aW9uc1xyXG4gICAgICAgIDogdGhpcy5zY3JlZW5UZXh0cz8ubWVldGluZ0FjdGlvbnM7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBldmVudHNBbmRNZWV0aW5nc0xpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBtZWV0aW5ncyBhbmQgZXZlbnRzIGxpc3QgZGV0YWlscyBvbiBjaGFuZ2Ugb2YgdGFibGUgcGFnaW5hdGlvbi5cclxuICAgKiBAcGFyYW0ge3tQYWdlRXZlbnR9fSBwYWdlRXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvbkV2ZW50c0FuZE1lZXRpbmdzVGFibGVQYWdlQ2hhbmdlKHBhZ2VFdmVudDogUGFnZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6ICcnLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbixcclxuICAgICAgICBwYWdlOiBwYWdlRXZlbnQucGFnZUluZGV4ICsgMSxcclxuICAgICAgICBzaXplOiBwYWdlRXZlbnQucGFnZVNpemUsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIGNsaWNrIGV2ZW50IG5hdmlnYXRlIHRvIHZpZXcgbWVldGluZyBvciBldmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgbmF2aWdhdGVUb1ZpZXdEZXRhaWxzUGFnZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyh0cnVlKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPSBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgIGlmIChldmVudD8ucm93Py5pc01lZXRpbmdFdmVudCkge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPSBldmVudD8ucm93Py5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdEV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkTWVldGluZ0lkID0gZXZlbnQ/LnJvdz8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRNZWV0aW5nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hdmlnYXRlcyB0byBjcmVhdGUgbWVldGluZyBvciBldmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5hdmlnYXRlVG9DcmVhdGVFdmVudE1lZXRpbmdGb3JtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5DUkVBVEU7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPSAnJztcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkTWVldGluZ0lkID0gJyc7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5jcmVhdGVFdmVudE1lZXRpbmcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlcyBiZXR3ZWVuIHRoZSBMaXN0IHZpZXcgb3IgQ2FsZW5kYXIgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlQnV0dG9uQ2hhbmdlKHRvZ2dsZUJ1dHRvbjogVG9nZ2xlQnV0dG9uKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmlld1R5cGUgPVxyXG4gICAgICB0b2dnbGVCdXR0b24/LmlkID09PSBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlLkxJU1RfVklFV1xyXG4gICAgICAgID8gRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVdcclxuICAgICAgICA6IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUuQ0FMRU5EQVJfVklFVztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3dzIHRoZSBzZWFyY2ggZmllbGQgb24gY2xpY2sgb2Ygc2VhcmNoIGljb24gaW4gY2FzZSBvZiBtb2JpbGUgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRXZlbnRNZWV0aW5nU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1NlYXJjaEFjdGl2ZSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCYXNlZCBvbiBjbGljayBtZW51IGl0ZW1zIG5hdmlnYXRlIHRvIGVkaXQgbWVldGluZyBvciBldmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgaGFuZGxlRWRpdEFjdGlvbnMocm93OiBhbnkpIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKHRydWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSByb3c7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGE/LmxhYmVsID09PSBWaWV3RWRpdEFjdGlvbi5WSUVXX0VESVRfRVZFTlRfREVUQUlMUykge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gdGhpcy5ldmVudERhdGE/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0RXZlbnQpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGE/LmxhYmVsID09PSBWaWV3RWRpdEFjdGlvbi5WSUVXX0VESVRfTUVFVElOR19ERVRBSUxTXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9XHJcbiAgICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkVESVQ7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkTWVldGluZ0lkID0gdGhpcy5ldmVudERhdGE/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0TWVldGluZyk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YT8uaWQgPT09IEV2ZW50QWN0aW9uLkRFTEVURV9FVkVOVCB8fFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YT8uaWQgPT09IE1lZXRpbmdBY3Rpb24uREVMRVRFX01FRVRJTkdcclxuICAgICkge1xyXG4gICAgICB0aGlzLm9wZW5EZWxldGVDb25maXJtYXRpb25Nb2RhbCh0cnVlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGE/LmlkID09PSBFdmVudEFjdGlvbi5DUkVBVEVfTUVFVElORykge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuQ1JFQVRFO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRTdGFuZGFsb25lTWVldGluZ1N0YXR1cyhmYWxzZSk7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA9IHRoaXMuZXZlbnREYXRhPy5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQmFzZWQgb24gY2xpY2sgZXZlbnQgbmF2aWdhdGUgdG8gZWRpdCBtZWV0aW5nIG9yIGV2ZW50IHBhZ2UuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICogQHBhcmFtIHsqfSBldmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZWRpdEV2ZW50TWVldGluZyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmV2ZW50RGF0YSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWQgPSBbXTtcclxuICAgIGlmIChldmVudD8uaWQpIHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkLnB1c2goZXZlbnQ/LmlkKTtcclxuICAgIGVsc2UgaWYgKGV2ZW50Py5tZWV0aW5nSWQpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkLnB1c2goZXZlbnQ/Lm1lZXRpbmdJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgaWRzIG9mIGFsbCB0aGUgc2VsZWN0ZWQgZXZlbnRzIGFuZCBtZWV0aW5ncyB0byBiZSBkZWxldGVkLlxyXG4gICAqIEBwYXJhbSB7Kn0gc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc1xyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkTWVldGluZ3NBbmRFdmVudHNUb0RlbGV0ZShcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICBzZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzOiBhbnlcclxuICApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcyA9IFtdO1xyXG4gICAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5ncz8uZm9yRWFjaCgoZXZlbnRPck1lZXRpbmc6IEV2ZW50c0FuZE1lZXRpbmdzKSA9PiB7XHJcbiAgICAgIGlmIChldmVudE9yTWVldGluZz8uaWQpXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzLnB1c2goZXZlbnRPck1lZXRpbmcuaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcy5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIGV2ZW50cyBhbmQgbWVldGluZ3MgZGVsZXRlIGNvbmZpcm1hdGlvbiBtb2RhbCBhbmQgY2FsbHMgZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyBtZXRob2Qgb24gY29uZmlybWF0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9wZW5EZWxldGVDb25maXJtYXRpb25Nb2RhbChpc1NpbmdsZURlbGV0ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1hdGlvbkluZm8gPVxyXG4gICAgICB0aGlzLnNjcmVlblRleHRzPy5kZWxldGVFdmVudHNPck1lZXRpbmdzPy5jb25maXJtYXRpb25JbmZvO1xyXG4gICAgY29uc3QgZGVsZXRlTW9kYWxPcHRpb25zID0ge1xyXG4gICAgICBsZWZ0QnV0dG9uTGFiZWw6IGNvbmZpcm1hdGlvbkluZm8/LmxlZnRCdXR0b25MYWJlbCxcclxuICAgICAgcmlnaHRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ucmlnaHRCdXR0b25MYWJlbCxcclxuICAgICAgcHJvbXB0TWVzc2FnZTogY29uZmlybWF0aW9uSW5mbz8ucHJvbXB0TWVzc2FnZSxcclxuICAgICAgYWN0aW9uQnV0dG9uQWxpZ246IEFsaWduVHlwZT8uTUlERExFLFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2c/Lm9wZW4oTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsIHtcclxuICAgICAgZGF0YTogZGVsZXRlTW9kYWxPcHRpb25zLFxyXG4gICAgICBhdXRvRm9jdXM6ICdkaWFsb2cnLFxyXG4gICAgICBhcmlhTGFiZWw6IHRoaXMuY29uc3RhbnRzPy5hcmlhTGFiZWw/LmFsZXJ0LFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1kZWxldGUtZXZlbnRzLW1lZXRpbmdzLW1vZGFsJ10sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5kZWxldGVFdmVudHNPck1lZXRpbmdzKGlzU2luZ2xlRGVsZXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZW5kcyBBUEkgUmVxdWVzdCB0byBkZWxldGUgdGhlIHNlbGVjdGVkIGV2ZW50cyBhbmQgbWVldGluZ3MgYW5kIGhhbmRsZXMgdGhlIHN1Y2Nlc3MgYW5kIGVycm9yIHJlc3BvbnNlIG9mIHRoZSBodHRwIHJlcXVlc3QuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlRXZlbnRzT3JNZWV0aW5ncyhpc1NpbmdsZURlbGV0ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvdW50ID0gaXNTaW5nbGVEZWxldGVcclxuICAgICAgPyB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZD8ubGVuZ3RoXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzLmxlbmd0aDtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5kZWxldGVFdmVudHNPck1lZXRpbmdzKHtcclxuICAgICAgICBwYXlsb2FkOiBpc1NpbmdsZURlbGV0ZVxyXG4gICAgICAgICAgPyB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZFxyXG4gICAgICAgICAgOiB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICAgICAgICBldmVudElkOiBudWxsLFxyXG4gICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcGFnZTogMSxcclxuICAgICAgICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6XHJcbiAgICAgICAgICAgICAgY291bnQgK1xyXG4gICAgICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmRlbGV0ZUV2ZW50c09yTWVldGluZ3M/Lm1lc3NhZ2U/LnN1Y2Nlc3NcclxuICAgICAgICAgICAgICAgID8uZGVsZXRpb24sXHJcbiAgICAgICAgICAgIGFsZXJ0VHlwZTogQWxlcnRUeXBlLlNVQ0NFU1MsXHJcbiAgICAgICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBtZWV0aW5ncyBjcmVhdGVkIGZvciB0aGUgc2VsZWN0ZWQgZXZlbnQgZnJvbSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtHZXRNZWV0aW5nc0J5RXZlbnRJZFBheWxvYWR9IHBheWxvYWRcclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldE1lZXRpbmdzQnlFdmVudElkKHBheWxvYWQ6IEdldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZCk6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmdldE1lZXRpbmdzQnlFdmVudElkKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lZXRpbmdzID0gW107XHJcbiAgICAgICAgICB0aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMubWVldGluZ3MgPVxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5tYXBNZWV0aW5nc0luZm9Ub0RhdGFUYWJsZShcclxuICAgICAgICAgICAgICByZXNwb25zZT8uYm9keT8ubWVldGluZ3NcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWcudG90YWxSZWNvcmRzID1cclxuICAgICAgICAgICAgcmVzcG9uc2U/LmJvZHk/LnRvdGFsUmVjb3JkcyA/PyB0aGlzLm1lZXRpbmdzPy5sZW5ndGg7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgdGFibGUgY29sdW1uIHNjaGVtYSBhbmQgZ2V0cyBtZWV0aW5ncyBvZiB0aGUgc2VsZWN0ZWQgZXZlbnQgdXNpbmcgZXZlbnQgaWQgZnJvbSBzZXJ2ZXIgdG8gZGlzcGxheSB0aGUgbWVldGluZ3MgaW4gdGhlIG5lc3RlZCB0YWJ1bGFyIHZpZXcuXHJcbiAgICogQG1lbWJlcm9mIENyZWF0ZU9yTW9kaWZ5RXZlbnRDb21wb25lbnRcclxuICAgKiBAcGFyYW0ge0V2ZW50c0FuZE1lZXRpbmdzfSBldmVudERldGFpbFxyXG4gICAqL1xyXG4gIGdldEV2ZW50TWVldGluZ3NPblJvd0V4cGFuZChldmVudERldGFpbDogRXZlbnRzQW5kTWVldGluZ3MpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZU5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hKCk7XHJcbiAgICB0aGlzLmdldE1lZXRpbmdzQnlFdmVudElkKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IGV2ZW50RGV0YWlsPy5pZCxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLm5lc3RlZFRhYmxlRGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbixcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMubmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0YWJsZSBjb2x1bW4gc2NoZW1hIHRvIGRpc3BsYXkgdGhlIG1lZXRpbmdzIHVuZGVyIGFuIGV2ZW50IGluIHRhYnVsYXIgdmlld1xyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGluaXRpYWxpemVOZXN0ZWRUYWJsZUNvbHVtblNjaGVtYSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmVzdGVkVGFibGVDb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lm5hbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5uYW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5MSU5LLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubWVldGluZ1RpdGxlfWAsXHJcbiAgICAgICAgaXNDb250ZW50VW5kZXJMaW5rOiB0cnVlLFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnN0YXJ0RGF0ZVRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHttb21lbnQoZWxlbWVudC5tZWV0aW5nU3REYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQubWVldGluZ1N0RGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uZW5kRGF0ZVRpbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5lbmREYXRlVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7bW9tZW50KGVsZW1lbnQubWVldGluZ0VkRGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICApfTxicj4ke21vbWVudChlbGVtZW50Lm1lZXRpbmdFZERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy50aW1lWm9uZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LnRpbWVab25lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LnRpbWVab25lID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDUsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5ncm91cCxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lmdyb3VwLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50Lmdyb3VwTmFtZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA2LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubG9jYXRpb24sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5sb2NhdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5tZWV0aW5nTG9jYXRpb24gPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNyxcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5BQ1RJT05TLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uYWN0aW9ucyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFjdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGV2ZW50cyBvciBtZWV0aW5ncyBiYXNlZCBvbiB0aGUgY29sdW1uIG5hbWUgYW5kIHNvcnQgZGlyZWN0aW9uLlxyXG4gICAqIEBwYXJhbSB7U29ydH0gc29ydFxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG5cclxuICBvblNvcnRNZWV0aW5nT3JFdmVudChzb3J0OiBTb3J0KTogdm9pZCB7XHJcbiAgICB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4gPVxyXG4gICAgICBzb3J0LmFjdGl2ZSA9PT0gJ3N0YXJ0LWRhdGUtdGltZScgPyAnc3RhcnREYXRlVGltZScgOiBzb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMubmVzdGVkVGFibGVEZWZhdWx0U29ydGVkQ29sdW1uID0gc29ydC5hY3RpdmU7XHJcbiAgICB0aGlzLm5lc3RlZFRhYmxlRGVmYXVsdFNvcnRlZENvbHVtbiA9XHJcbiAgICAgIHNvcnQuYWN0aXZlID09PSBDT0xVTU5fREVGLm5hbWUgPyAnbWVldGluZ1RpdGxlJyA6ICdtZWV0aW5nU3REYXRlJztcclxuICAgIHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24gPVxyXG4gICAgICBzb3J0LmRpcmVjdGlvbiA9PT0gVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLkFTQ0VORElORztcclxuICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgc2VhcmNoVGVybTogdGhpcy50cmltbWVkU2VhcmNoVGVybSA/PyBudWxsLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGlzU2VhcmNoQWN0aXZlIHRvIHRydWUgYW5kIGxvYWRzIHRoZSBldmVudHMgb3IgbWVldGluZ3MgLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXJtXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FdmVudHNPck1lZXRpbmdzU2VhcmNoQ2xpY2soc2VhcmNoVGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoc2VhcmNoVGVybSkge1xyXG4gICAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gc2VhcmNoVGVybS50cmltKCk7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMudHJpbW1lZFNlYXJjaFRlcm0pIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TWVzc2FnZSA9ICcnO1xyXG4gICAgICB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogbnVsbCxcclxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLmRlZmF1bHRTb3J0ZWRDb2x1bW4sXHJcbiAgICAgICAgYXNjZW5kaW5nT3JkZXI6IGZhbHNlLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5wYWdpbmF0b3JDb25maWc/LnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNlYXJjaFRlcm06IHNlYXJjaFRlcm0gPyB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtIDogbnVsbCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBOZ09uRGVzdHJveSBwZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdcIlxyXG4gIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nLS1tb2JpbGUtdmlldyBwLTAnIDogJydcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHBiLTNcIlxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXItLW1vYmlsZS12aWV3JyA6ICcnXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxwXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdpZWVlc2EtdGl0bGUtbGctMjQnIDogJ2llZWVzYS1oZWFkbGluZS1sZy0zNCdcIlxyXG4gICAgPlxyXG4gICAgICB7eyBzY3JlZW5UZXh0cz8udGl0bGUgfX1cclxuICAgIDwvcD5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgZ2FwLWxnLTMgZ2FwLW1kLTMgZ2FwLXNtLTMgZ2FwLTMgY29sLW1kLTUgY29sLWxnLTQganVzdGlmeS1jb250ZW50LWVuZCBwcy0wXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVZpZXdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VhcmNoRmllbGRcIj4gPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19jcmVhdGUtYnV0dG9uIGQtbm9uZSBkLXNtLW5vbmUgZC1tZC1ibG9jayBkLWxnLWJsb2NrIGQteGwtYmxvY2sgY29sLWxnLTMgcGItMFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9DcmVhdGVFdmVudE1lZXRpbmdGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXJfX2NyZWF0ZS1idXR0b25fX2ljb24gbWUtMlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cImNyZWF0ZUJ1dHRvbj8uaWNvblVSTFwiPjwvdXNlPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19faGVhZGVyX19jcmVhdGUtYnV0dG9uX19sYWJlbFwiPnt7XHJcbiAgICAgICAgICBjcmVhdGVCdXR0b24/LmxhYmVsXHJcbiAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGQtc20tZmxleCBkLW1kLW5vbmUgZC1sZy1ub25lIGQteGwtbm9uZSBpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXJfX21vYmlsZS1pY29ucyBnYXAtMlwiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzY3JlZW5UZXh0cz8uc2VhcmNoUGxhY2Vob2xkZXJUZXh0XCJcclxuICAgICAgICAoY2xpY2spPVwib25FdmVudE1lZXRpbmdTZWFyY2goKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLW1hZ25pZnlpbmctZ2xhc3Mgc2VhcmNoLWV2ZW50cy1tZWV0aW5ncy1pY29uXCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiaXNDcmVhdGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJjcmVhdGVCdXR0b25cIlxyXG4gICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwibmF2aWdhdGVUb0NyZWF0ZUV2ZW50TWVldGluZ0Zvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctdGVtcGxhdGUgI3NlYXJjaEZpZWxkPlxyXG4gICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgW3BsYWNlaG9sZGVyTGFiZWxdPVwic2NyZWVuVGV4dHM/LnNlYXJjaFBsYWNlaG9sZGVyVGV4dFwiXHJcbiAgICAgIFtzZWFyY2hUeXBlXT1cInNlYXJjaFR5cGVcIlxyXG4gICAgICAoc2VhcmNoVmFsdWUpPVwib25FdmVudHNPck1lZXRpbmdzU2VhcmNoQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgIFtzZWFyY2hUZXJtXT1cInRyaW1tZWRTZWFyY2hUZXJtXCJcclxuICAgICAgW21pbkNoYXJhY3RlclRvU2VhcmNoXT1cIm1pbkNoYXJhY3RlclRvU2VhcmNoXCJcclxuICAgICAgW3N1cHBvcnRNZXNzYWdlXT1cInN1cHBvcnRNZXNzYWdlXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19zZWFyY2gtd3JhcHBlclwiXHJcbiAgICA+PC9pZWVlc2Etc2VhcmNoPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19maWx0ZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHBiLTNcIlxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19maWx0ZXItLW1vYmlsZS12aWV3JyA6ICcnXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxpZWVlc2EtZmlsdGVyIFtmaWx0ZXJzXT1cImZpbHRlcnNcIj48L2llZWVzYS1maWx0ZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX192aWV3XCJcclxuICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICBpc01vYmlsZVZpZXcgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdmlldy0tbW9iaWxlLXZpZXcgcC0wJyA6ICcnXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX190YWItYWN0aW9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICBpc01vYmlsZVZpZXdcclxuICAgICAgICAgID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3RhYi1hY3Rpb24tLW1vYmlsZS12aWV3IHBiLTMnXHJcbiAgICAgICAgICA6ICcnXHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtdG9nZ2xlLWJ1dHRvblxyXG4gICAgICAgIFtzZWxlY3RlZExhYmVsXT1cImxpc3RPckNhbGVuZGFyVmlld3NbMF0/LmxhYmVsID8/ICcnXCJcclxuICAgICAgICBbYnV0dG9uc109XCJsaXN0T3JDYWxlbmRhclZpZXdzXCJcclxuICAgICAgICAodG9nZ2xlU2VsZWN0ZWQpPVwib25Ub2dnbGVCdXR0b25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS10b2dnbGUtYnV0dG9uPlxyXG4gICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiZGVsZXRlQnV0dG9uXCJcclxuICAgICAgICAqbmdJZj1cImlzRGVsZXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZFwiXHJcbiAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvcGVuRGVsZXRlQ29uZmlybWF0aW9uTW9kYWwoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19kZWxldGUtYnV0dG9uXCJcclxuICAgICAgPjwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8cFxyXG4gICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3RhYi1hY3Rpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgICpuZ0lmPVwidHJpbW1lZFNlYXJjaFRlcm1cIlxyXG4gICAgICBbaW5uZXJIVE1MXT1cInNlYXJjaFJlc3VsdE1lc3NhZ2UgfCBzYWZlIDogc2FmZVR5cGVcIlxyXG4gICAgPjwvcD5cclxuICAgIDxpZWVlc2EtZGF0YS10YWJsZVxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkVmlld1R5cGUgPT09IGV2ZW50QW5kTWVldGluZ1ZpZXdUeXBlLkxJU1RfVklFV1wiXHJcbiAgICAgIFt0YWJsZURhdGFJbmZvXT1cImV2ZW50c0FuZE1lZXRpbmdzTGlzdFwiXHJcbiAgICAgIFtuZXN0ZWRUYWJsZURhdGFJbmZvXT1cIm1lZXRpbmdzXCJcclxuICAgICAgW2NvbHVtblNjaGVtYUluZm9dPVwiY29sdW1uU2NoZW1hXCJcclxuICAgICAgW25lc3RlZFRhYmxlQ29sdW1uU2NoZW1hSW5mb109XCJuZXN0ZWRUYWJsZUNvbHVtblNjaGVtYVwiXHJcbiAgICAgIFtwYWdpbmF0b3JDb25maWddPVwicGFnaW5hdG9yQ29uZmlnXCJcclxuICAgICAgW25lc3RlZFBhZ2luYXRvckNvbmZpZ109XCJuZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICAgIFt2aWV3QWxsXT1cInZpZXdBbGxNZWV0aW5nc1RleHRcIlxyXG4gICAgICBbdGFibGVBY3Rpb25zXT1cImV2ZW50c0FuZE1lZXRpbmdzQWN0aW9uc1wiXHJcbiAgICAgIFtuZXN0ZWRUYWJsZVJvd0FjdGlvbnNdPVwic2NyZWVuVGV4dHM/Lm1lZXRpbmdBY3Rpb25zXCJcclxuICAgICAgW2NsYXNzTmFtZV09XCInaWVlZXNhLXZpZXctZXZlbnRzLWFuZC1tZWV0aW5ncydcIlxyXG4gICAgICBbbGVnZW5kc109XCJldmVudEFuZE1lZXRpbmdMZWdlbmRzXCJcclxuICAgICAgKGNvbHVtbkRhdGFPblJvd0xpbmtDbGljayk9XCJuYXZpZ2F0ZVRvVmlld0RldGFpbHNQYWdlKCRldmVudClcIlxyXG4gICAgICAobWVudUFjdGlvbkNsaWNrKT1cImVkaXRFdmVudE1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgIChyb3dFeHBhbnNpb25DbGljayk9XCJnZXRFdmVudE1lZXRpbmdzT25Sb3dFeHBhbmQoJGV2ZW50KVwiXHJcbiAgICAgIChzZWxlY3RBY3Rpb25NZW51KT1cImhhbmRsZUVkaXRBY3Rpb25zKCRldmVudClcIlxyXG4gICAgICAocGFnaW5hdGlvbkNoYW5nZSk9XCJvbkV2ZW50c0FuZE1lZXRpbmdzVGFibGVQYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoc29ydENoYW5nZSk9XCJvblNvcnRNZWV0aW5nT3JFdmVudCgkZXZlbnQpXCJcclxuICAgICAgKHNlbGVjdGVkUm93c0luZm8pPVwiZ2V0U2VsZWN0ZWRNZWV0aW5nc0FuZEV2ZW50c1RvRGVsZXRlKCRldmVudClcIlxyXG4gICAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
720
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1tZWV0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ldmVudHMtYW5kLW1lZXRpbmdzL3NyYy9saWIvZXZlbnRzLWFuZC1NZWV0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUUzSSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsMEhBQTBIO0FBQzFILE9BQU8sS0FBSyxTQUFTLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUtMLGVBQWUsRUFFZixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFFVixxQkFBcUIsRUFDckIsU0FBUyxFQUNULDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLHdCQUF3QixFQUV4QixrQkFBa0IsR0FFbkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBC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Q0FBQyxtQkFBbUI7Z0JBQ3BDLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjO2dCQUMxQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDdkQ7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzsrR0EvdEJVLDBCQUEwQjttR0FBMUIsMEJBQTBCLHlMQ3pHdkMsd3JLQWdJQSx3MmREckNJLFlBQVksd1lBRVosa0JBQWtCLCtrQ0FDbEIscUJBQXFCLG9JQUNyQixtQkFBbUIsc0lBQ25CLGVBQWUsd05BQ2YsZUFBZSwwTUFDZixlQUFlLHVRQUNmLFFBQVE7OzRGQU1DLDBCQUEwQjtrQkFsQnRDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1DQUFtQzt3QkFDbkMsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsUUFBUTtxQkFDVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJO2tTQVE1QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBeUVHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVhdGVNb2RpZnlFdmVudE9yTWVldGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtbW9kaWZ5LWV2ZW50LW9yLW1lZXRpbmcvY3JlYXRlLW1vZGlmeS1ldmVudC1vci1tZWV0aW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZXZlbnRzLWFuZC1tZWV0aW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gVG9EbzogY29uc3RhbnRzLmpzb24gdG8gYmUgbWFpbnRhaW5lZCBhdCBsaWJyYXJ5IHNpZGUgYXMgYSBmYWxsYmFjayBpZiBub3QgZm91bmQgYXBwbGljYXRpb24gc3BlY2lmaWMgZnJvbSBzZXJ2ZXIgc2lkZS5cclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHtcclxuICBQYWdpbmF0b3JDb25maWcsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIFRvZ2dsZUJ1dHRvbixcclxuICBJY29uQnV0dG9uLFxyXG4gIEZpbHRlckNvbXBvbmVudCxcclxuICBDaGlwT3B0aW9uLFxyXG4gIENoaXBzVHlwZSxcclxuICBTZWFyY2hDb21wb25lbnQsXHJcbiAgU2VhcmNoVHlwZSxcclxuICBNZW51LFxyXG4gIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCxcclxuICBBbGlnblR5cGUsXHJcbiAgTW9kYWxDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbiAgVGFibGVDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBMZWdlbmQsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBFdmVudHNBbmRNZWV0aW5ncyxcclxuICBHZXRFdmVudHNBbmRNZWV0aW5nc1BheWxvYWQsXHJcbn0gZnJvbSAnLi9tb2RlbHMvZXZlbnRzLWFuZC1tZWV0aW5ncy1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlci10eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tICcuL2Fzc2V0cy9kYXRlLWZvcm1hdHMnO1xyXG5pbXBvcnQge1xyXG4gIEFsZXJ0VHlwZSxcclxuICBBbGVydHNTZXJ2aWNlLFxyXG4gIEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgU2FmZVBpcGUsXHJcbiAgU2FmZVR5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBWaWV3RWRpdEFjdGlvbiB9IGZyb20gJy4vbW9kZWxzL3ZpZXctZWRpdC1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlIH0gZnJvbSAnLi9tb2RlbHMvbGlzdC1jYWxlbmRhci12aWV3LWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZSB9IGZyb20gJy4vbW9kZWxzL2V2ZW50LW1lZXRpbmctZnVuY3Rpb24tdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIE1lZXRpbmdQZXJtaXNzaW9ucyxcclxuICBVc2VyUGVybWlzc2lvbixcclxufSBmcm9tICcuL21vZGVscy9tZWV0aW5nLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblR5cGUgfSBmcm9tICcuL21vZGVscy9wZXJtaXNzaW9uLXR5cGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBFdmVudHNBbmRNZWV0aW5nUm91dGVDb25maWcgfSBmcm9tICcuL21vZGVscy9yb3V0ZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEdldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZCxcclxuICBNZWV0aW5nLFxyXG59IGZyb20gJy4vbW9kZWxzL21lZXRpbmdzLXVuZGVyLWV2ZW50cy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgRXZlbnRBY3Rpb24sXHJcbiAgTWVldGluZ0FjdGlvbixcclxufSBmcm9tICcuL21vZGVscy9ldmVudC1vci1tZWV0aW5nLW1lbnUtYWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5jb25zdCBDT0xVTU5fREVGID0ge1xyXG4gIG5hbWU6ICduYW1lJyxcclxuICBzdGFydERhdGVUaW1lOiAnc3RhcnQtZGF0ZS10aW1lJyxcclxuICBlbmREYXRlVGltZTogJ2VuZC1kYXRlLXRpbWUnLFxyXG4gIHRpbWVab25lOiAndGltZS16b25lJyxcclxuICBncm91cDogJ3JlbGF0ZWQtZ3JvdXAnLFxyXG4gIGxvY2F0aW9uOiAnbG9jYXRpb24nLFxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIGV2ZW50IGFuZCBtZWV0aW5nIGZlYXR1cmVzXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkRlc3Ryb3l9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQ3JlYXRlTW9kaWZ5RXZlbnRPck1lZXRpbmdDb21wb25lbnQsXHJcbiAgICBEYXRhVGFibGVDb21wb25lbnQsXHJcbiAgICBUb2dnbGVCdXR0b25Db21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgU2FmZVBpcGUsXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ldmVudHMtYW5kLU1lZXRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBkaWFsb2dSZWY6IGFueTtcclxuICBASW5wdXQoKSBhcGlCYXNlVVJMITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHVzZXJQZXJtaXNzaW9ucyE6IFVzZXJQZXJtaXNzaW9uW107XHJcbiAgc2VhcmNoUGxhY2Vob2xkZXJUZXh0ITogc3RyaW5nO1xyXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG4gIGlzU2VhcmNoQWN0aXZlID0gZmFsc2U7XHJcbiAgZXZlbnREYXRhITogRXZlbnRzQW5kTWVldGluZ3M7XHJcbiAgbWVldGluZ0RhdGEhOiBFdmVudHNBbmRNZWV0aW5ncztcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlbGVjdGVkRGF0YSE6IGFueTtcclxuICBtZW51RGF0YSE6IE1lbnU7XHJcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZSA9IFNlYXJjaFR5cGUuT05fQ0xJQ0s7XHJcbiAgZGVmYXVsdFNvcnRlZENvbHVtbiA9ICdzdGFydERhdGVUaW1lJztcclxuICBuZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPSAnbWVldGluZ1N0RGF0ZSc7XHJcbiAgZmlsdGVyczogQ2hpcE9wdGlvbltdID0gW1xyXG4gICAge1xyXG4gICAgICBpZDogRmlsdGVyVHlwZS5HUk9VUF9OQU1FLFxyXG4gICAgICBuYW1lOiBGaWx0ZXJUeXBlLkdST1VQX05BTUUsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiBGaWx0ZXJUeXBlLlNUQVRVUyxcclxuICAgICAgbmFtZTogRmlsdGVyVHlwZS5TVEFUVVMsXHJcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICBjaGlwVHlwZTogQ2hpcHNUeXBlLlRPR0dMRSxcclxuICAgIH0sXHJcbiAgXTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHNjcmVlblRleHRzID0gdGhpcy5jb25zdGFudHM/LnZpZXdFdmVudHNBbmRNZWV0aW5ncztcclxuICBwYWdpbmF0b3JDb25maWc6IFBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgIHJlY29yZHNQZXJQYWdlOiB0aGlzLnNjcmVlblRleHRzPy5wYWdlU2l6ZU9wdGlvbnM/LlsxXSxcclxuICAgIHBhZ2VTaXplT3B0aW9uczogdGhpcy5zY3JlZW5UZXh0cy5wYWdlU2l6ZU9wdGlvbnMsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgfTtcclxuICBuZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMuc2NyZWVuVGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzFdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnNjcmVlblRleHRzLnBhZ2VTaXplT3B0aW9ucyxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICB9O1xyXG4gIGVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnkgPSB0aGlzLnNjcmVlblRleHRzPy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5O1xyXG4gIGNvbHVtbkhlYWRpbmcgPSB0aGlzLnNjcmVlblRleHRzPy5jb2x1bW5TY2hlbWE/LmNvbHVtbkhlYWRpbmc7XHJcbiAgdmlld0FsbE1lZXRpbmdzVGV4dCA9IHRoaXMuc2NyZWVuVGV4dHM/LnZpZXdBbGxNZWV0aW5ncztcclxuICBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIG5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hITogVGFibGVDb2x1bW5TY2hlbWFbXTtcclxuICBldmVudHNBbmRNZWV0aW5nc0FjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzU2VhcmNoTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRmlsdGVyTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzQWRkTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRGVsZXRlTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRWRpdE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgfTtcclxuICBldmVudEFuZE1lZXRpbmdMZWdlbmRzOiBMZWdlbmRbXSA9IHRoaXMuY29uc3RhbnRzPy5ldmVudE9yTWVldGluZ0xlZ2VuZHM7XHJcbiAgbGlzdE9yQ2FsZW5kYXJWaWV3czogVG9nZ2xlQnV0dG9uW10gPSB0aGlzLnNjcmVlblRleHRzPy50b2dnbGVCdXR0b25zO1xyXG4gIGRlbGV0ZUJ1dHRvbjogSWNvbkJ1dHRvbiA9IHRoaXMuc2NyZWVuVGV4dHM/LmJ1dHRvbnM/LlsxXTtcclxuICBjcmVhdGVCdXR0b246IEljb25CdXR0b24gPSB0aGlzLnNjcmVlblRleHRzPy5idXR0b25zPy5bMF07XHJcbiAgZXZlbnRBbmRNZWV0aW5nVmlld1R5cGUgPSBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlO1xyXG4gIHNlbGVjdGVkVmlld1R5cGU6IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUgPVxyXG4gICAgRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5MSVNUX1ZJRVc7XHJcbiAgZXZlbnRzQW5kTWVldGluZ3NMaXN0OiBFdmVudHNBbmRNZWV0aW5nc1tdID0gW107XHJcbiAgdXNlck1lZXRpbmdQZXJtaXNzaW9ucyE6IE1lZXRpbmdQZXJtaXNzaW9uc1tdO1xyXG4gIHBlcm1pc3Npb25UeXBlID0gUGVybWlzc2lvblR5cGU7XHJcbiAgc3VwcG9ydE1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgbWluQ2hhcmFjdGVyVG9TZWFyY2ggPSAzO1xyXG4gIHRyaW1tZWRTZWFyY2hUZXJtID0gJyc7XHJcbiAgc2VhcmNoUmVzdWx0TWVzc2FnZSE6IHN0cmluZztcclxuICBldmVudHNPck1lZXRpbmdzSW5mbyE6IEV2ZW50c0FuZE1lZXRpbmdzW107XHJcbiAgc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkczogc3RyaW5nW10gPSBbXTtcclxuICBpc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBpc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPSBmYWxzZTtcclxuICBkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZDogc3RyaW5nW10gPSBbXTtcclxuICAvLyBUb0RvIGVtaXQgdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGV2ZW50cyBvZiBDUkVBVEUsIFZJRVcsIEVESVQgZXZlbnRzIGFuZCBtZWV0aW5ncyB1c2luZyBAT3V0cHV0IGFzIHdlIGRpc2N1c3NlZCB0aGUgY29uc3VtZXIgYXBwbGljYXRpb24gbWF5IGxvYWQgdGhlIG1lZXRpbmcgYW5kIGV2ZW50cyBjb21wb25lbnRzIGludG8gdGhlIHRhYmJlZCB2aWV3IG9yIG90aGVyIHdheSBpbnN0ZWFkIG9mIHJvdXRpbmdcclxuICBASW5wdXQoKSByb3V0ZVBhdGhzITogRXZlbnRzQW5kTWVldGluZ1JvdXRlQ29uZmlnO1xyXG4gIG1lZXRpbmdzOiBNZWV0aW5nW10gPSBbXTtcclxuICBzYWZlVHlwZTogU2FmZVR5cGUgPSBTYWZlVHlwZS5IVE1MO1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnQuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGFsZXJ0U2VydmljZTogQWxlcnRzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U6IEV2ZW50c0FuZE1lZXRpbmdzU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHVzZXJQZXJtaXNzaW9uU2VydmljZTogVXNlclBlcm1pc3Npb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICApIHtcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyU2VydmljZVxyXG4gICAgICAuZ2V0QnJlYWtwb2ludCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHJlc3VsdC5tYXRjaGVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoZSBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudC5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdVc2VyUGVybWlzc2lvbnMnLCB0aGlzLnVzZXJQZXJtaXNzaW9ucyk7XHJcbiAgICBjb25zb2xlLmxvZygnQVBJQmFzZVVSTCcsIHRoaXMuYXBpQmFzZVVSTCk7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnUmVzcG9uc2UnLCByZXNwb25zZSk7XHJcbiAgICAgIHJlc3BvbnNlWydhcGlCYXNlVVJMJ10/LnN1YnNjcmliZSgoYXBpQmFzZVVSTDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ2FwaUJhc2VVUkwnLCBhcGlCYXNlVVJMKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJlc3BvbnNlWyd1c2VyUGVybWlzc2lvbnMnXT8uc3Vic2NyaWJlKFxyXG4gICAgICAgICh1c2VyUGVybWlzc2lvbnM6IFVzZXJQZXJtaXNzaW9uW10pID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd1c2VyUGVybWlzc2lvbnMnLCB1c2VyUGVybWlzc2lvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZGVsZXRlQnV0dG9uKSB0aGlzLmRlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLnN1cHBvcnRNZXNzYWdlID1cclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8ubWluQ2hhclJlcXVpcmVkVG9TZWFyY2gxICtcclxuICAgICAgJyAnICtcclxuICAgICAgdGhpcy5taW5DaGFyYWN0ZXJUb1NlYXJjaCArXHJcbiAgICAgICcgJyArXHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHM/Lm1pbkNoYXJSZXF1aXJlZFRvU2VhcmNoMjtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRTZWxlY3RlZEV2ZW50RGF0YShudWxsKTtcclxuICAgIHRoaXMucm91dGVQYXRocyA9IHRoaXMucm91dGVQYXRocyA/PyB0aGlzLmNvbnN0YW50cz8ucm91dGVDb25maWdQYXRoO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2U/LnNldFJvdXRlUGF0aHModGhpcy5yb3V0ZVBhdGhzKTtcclxuICAgIHRoaXMudXNlck1lZXRpbmdQZXJtaXNzaW9ucyA9XHJcbiAgICAgIHRoaXMudXNlclBlcm1pc3Npb25TZXJ2aWNlLmZpbHRlclVzZXJNZWV0aW5nUGVybWlzc2lvbnMoXHJcbiAgICAgICAgdGhpcy51c2VyUGVybWlzc2lvbnNcclxuICAgICAgKTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlPy5zZXRBcHBDb25maWcoXHJcbiAgICAgIHRoaXMuYXBpQmFzZVVSTCxcclxuICAgICAgdGhpcy51c2VyUGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZXRVc2VyTWVldGluZ1Blcm1pc3Npb25zKFxyXG4gICAgICB0aGlzLnVzZXJNZWV0aW5nUGVybWlzc2lvbnNcclxuICAgICk7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRHcm91cHMoKS5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuaXNDcmVhdGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkID1cclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UudmFsaWRhdGVBY2Nlc3MoUGVybWlzc2lvblR5cGUuQ1JFQVRFX0VWRU5UKTtcclxuICAgIHRoaXMuZmlsdGVyRXZlbnRBbmRNZWV0aW5nQWN0aW9ucygpO1xyXG4gICAgdGhpcy5pc0RlbGV0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWQgPVxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgICBQZXJtaXNzaW9uVHlwZS5ERUxFVEVfRVZFTlRcclxuICAgICAgKSAmJlxyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS52YWxpZGF0ZUFjY2VzcyhcclxuICAgICAgICBQZXJtaXNzaW9uVHlwZS5ERUxFVEVfTUVFVElOR1xyXG4gICAgICApO1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ29sdW1uU2NoZW1hKCk7XHJcbiAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGaWx0ZXIgdGhlIGV2ZW50IGFuZCBtZWV0aW5nIGFjdGlvbnMgYmFzZWQgb24gZXZlbnQgYW5kIG1lZXRpbmcgcGVybWlzc2lvbnMuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZmlsdGVyRXZlbnRBbmRNZWV0aW5nQWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNjcmVlblRleHRzPy5ldmVudEFjdGlvbnMpXHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHMuZXZlbnRBY3Rpb25zID1cclxuICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5nZXRGaWx0ZXJlZEV2ZW50QWN0aW9ucyhcclxuICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHMuZXZlbnRBY3Rpb25zXHJcbiAgICAgICAgKTtcclxuICAgIGlmICh0aGlzLnNjcmVlblRleHRzPy5tZWV0aW5nQWN0aW9ucylcclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cy5tZWV0aW5nQWN0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0RmlsdGVyZWRNZWV0aW5nQWN0aW9ucyhcclxuICAgICAgICAgIHRoaXMuc2NyZWVuVGV4dHMubWVldGluZ0FjdGlvbnNcclxuICAgICAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0YWJsZSBjb2x1bW4gc2NoZW1hIHRvIGRpc3BsYXkgdGhlIG1lZXRpbmcgYW5kIGV2ZW50IGRldGFpbHMgaW4gdGFidWxhciB2aWV3XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZUNvbHVtblNjaGVtYSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sdW1uU2NoZW1hID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgY29sdW1uRGVmOiBUYWJsZUNvbHVtblR5cGUuU0VMRUNULFxyXG4gICAgICAgIGhlYWRpbmc6ICcnLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5zZWxlY3R9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAyLFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLk5FU1RFRF9UQUJMRSxcclxuICAgICAgICBoZWFkaW5nOiAnJyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuTkVTVEVEX1RBQkxFLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQuaGFzQ2hpbGRyZW4sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMyxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lm5hbWUsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5uYW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5MSU5LLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubmFtZX1gLFxyXG4gICAgICAgIGlzQ29udGVudFVuZGVyTGluazogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5zdGFydERhdGVUaW1lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uc3RhcnREYXRlVGltZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgIWVsZW1lbnQuaXNNZWV0aW5nRXZlbnRcclxuICAgICAgICAgICAgPyBgJHttb21lbnQoZWxlbWVudC5zdGFydERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5zdGFydERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgICAgIDogYCR7bW9tZW50KGVsZW1lbnQuc3RhcnREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDUsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5lbmREYXRlVGltZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICAhZWxlbWVudC5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgICAgICA/IGAke21vbWVudChlbGVtZW50LmVuZERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5lbmREYXRlVGltZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgRGF0ZUZvcm1hdHMudGltZUZvcm1hdFxyXG4gICAgICAgICAgICAgICl9YFxyXG4gICAgICAgICAgICA6IGAke21vbWVudChlbGVtZW50LmVuZERhdGVUaW1lKS5mb3JtYXQoXHJcbiAgICAgICAgICAgICAgICBEYXRlRm9ybWF0cy5kaXNwbGF5Rm9ybWF0XHJcbiAgICAgICAgICAgICAgKX1gLFxyXG4gICAgICAgIGlzSFRNTENlbGxEYXRhOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDYsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy50aW1lWm9uZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LnRpbWVab25lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50LnRpbWVab25lID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDcsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5ncm91cCxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lmdyb3VwLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50Lmdyb3VwTmFtZSA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA4LFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubG9jYXRpb24sXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5sb2NhdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgYCR7ZWxlbWVudC5tZWV0aW5nTG9jYXRpb24gPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogOSxcclxuICAgICAgICBjb2x1bW5EZWY6IFRhYmxlQ29sdW1uVHlwZS5BQ1RJT05TLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uYWN0aW9ucyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm1lbnVBY3Rpb259YCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGV2ZW50cyBhbmQgbWVldGluZ3MgbGlzdCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICogQHBhcmFtIHtHZXRFdmVudHNBbmRNZWV0aW5nc1BheWxvYWR9IHBheWxvYWRcclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRFdmVudHNBbmRNZWV0aW5ncyhwYXlsb2FkOiBHZXRFdmVudHNBbmRNZWV0aW5nc1BheWxvYWQpOiB2b2lkIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlXHJcbiAgICAgIC5nZXRFdmVudHNBbmRNZWV0aW5ncyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QgPSBbXTtcclxuICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5ldmVudE1lZXRpbmdMaXN0Py5mb3JFYWNoKChldmVudE1lZXRpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBldmVudE1lZXRpbmcuaXNNZWV0aW5nRXZlbnRcclxuICAgICAgICAgICAgICA/IHRoaXMuc2NyZWVuVGV4dHM/LmV2ZW50XHJcbiAgICAgICAgICAgICAgOiB0aGlzLnNjcmVlblRleHRzPy5tZWV0aW5nO1xyXG4gICAgICAgICAgICBldmVudE1lZXRpbmcudG9vbFRpcFRleHQgPSBldmVudE1lZXRpbmcubmFtZSArICcgJyArIHRpdGxlO1xyXG4gICAgICAgICAgICBldmVudE1lZXRpbmcuY29udGVudFVuZGVyTGluayA9IGV2ZW50TWVldGluZy5zdGF0dXM7XHJcbiAgICAgICAgICAgIGV2ZW50TWVldGluZy5sZWdlbmRDb2xvciA9XHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuZ2V0RXZlbnRPck1lZXRpbmdMZWdlbmRDb2xvcihcclxuICAgICAgICAgICAgICAgIGV2ZW50TWVldGluZz8uc3RhdHVzXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc0xpc3QucHVzaChldmVudE1lZXRpbmcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZy50b3RhbFJlY29yZHMgPVxyXG4gICAgICAgICAgICByZXNwb25zZT8uYm9keT8udG90YWxSZWNvcmRzID8/IHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0Lmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0ID0gdGhpcy5tYXBNZW51QWN0aW9uVG9MaXN0KFxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzTGlzdFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0ID0gWy4uLnRoaXMuZXZlbnRzQW5kTWVldGluZ3NMaXN0XTtcclxuICAgICAgICAgIHRoaXMucGFnaW5hdG9yQ29uZmlnID0geyAuLi50aGlzLnBhZ2luYXRvckNvbmZpZyB9O1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXNTZWFyY2hBY3RpdmUpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0TWVzc2FnZSA9IGA8ZGl2PiR7dGhpcy5zY3JlZW5UZXh0cz8uc2VhcmNoUmVzdWx0TXNnUGFydDF9ICR7dGhpcy5wYWdpbmF0b3JDb25maWc/LnRvdGFsUmVjb3Jkc31cclxuICAgICAgICAke3RoaXMuc2NyZWVuVGV4dHM/LnNlYXJjaFJlc3VsdE1zZ1BhcnQyfSBcIjxzdHJvbmc+JHt0aGlzLnRyaW1tZWRTZWFyY2hUZXJtfTwvc3Ryb25nPlwiPC9kaXY+YDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0YWJsZSByb3cgYWN0aW9ucyBmb3IgZWFjaCByb3cgb2YgZXZlbnRzIGFuZCBtZWV0aW5ncyB0YWJsZSB0aGVuIHJldHVybnMgRXZlbnNBbmRNZWV0aW5ncy5cclxuICAgKiBAcGFyYW0ge0V2ZW50c0FuZE1lZXRpbmdzW119XHJcbiAgICogKiBAcmV0dXJuIHtFdmVudHNBbmRNZWV0aW5nc1tdfSAtSXQgcmV0dXJucyBldmVudHNBbmRNZWV0aW5nc0xpc3Qgd2l0aCBtZW51IGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggZWFjaCByb3cuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbWFwTWVudUFjdGlvblRvTGlzdChcclxuICAgIGV2ZW50c0FuZE1lZXRpbmdzTGlzdDogRXZlbnRzQW5kTWVldGluZ3NbXVxyXG4gICk6IEV2ZW50c0FuZE1lZXRpbmdzW10ge1xyXG4gICAgZXZlbnRzQW5kTWVldGluZ3NMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS5tZW51QWN0aW9uID0gaXRlbS5pc01lZXRpbmdFdmVudFxyXG4gICAgICAgID8gdGhpcy5zY3JlZW5UZXh0cz8uZXZlbnRBY3Rpb25zXHJcbiAgICAgICAgOiB0aGlzLnNjcmVlblRleHRzPy5tZWV0aW5nQWN0aW9ucztcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGV2ZW50c0FuZE1lZXRpbmdzTGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG1lZXRpbmdzIGFuZCBldmVudHMgbGlzdCBkZXRhaWxzIG9uIGNoYW5nZSBvZiB0YWJsZSBwYWdpbmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7e1BhZ2VFdmVudH19IHBhZ2VFdmVudFxyXG4gICAqIEBtZW1iZXJvZiBFdmVudHNBbmRNZWV0aW5nc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRXZlbnRzQW5kTWVldGluZ3NUYWJsZVBhZ2VDaGFuZ2UocGFnZUV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RXZlbnRzQW5kTWVldGluZ3Moe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogJycsXHJcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IHBhZ2VFdmVudC5wYWdlSW5kZXggKyAxLFxyXG4gICAgICAgIHNpemU6IHBhZ2VFdmVudC5wYWdlU2l6ZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmFzZWQgb24gY2xpY2sgZXZlbnQgbmF2aWdhdGUgdG8gdmlldyBtZWV0aW5nIG9yIGV2ZW50IHBhZ2UuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBuYXZpZ2F0ZVRvVmlld0RldGFpbHNQYWdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKHRydWUpO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuYWN0aW9uVHlwZSA9IEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgaWYgKGV2ZW50Py5yb3c/LmlzTWVldGluZ0V2ZW50KSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA9IGV2ZW50Py5yb3c/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0RXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRNZWV0aW5nSWQgPSBldmVudD8ucm93Py5pZDtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJvdXRlUGF0aHMuZWRpdE1lZXRpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTmF2aWdhdGVzIHRvIGNyZWF0ZSBtZWV0aW5nIG9yIGV2ZW50IHBhZ2UuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmF2aWdhdGVUb0NyZWF0ZUV2ZW50TWVldGluZ0Zvcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID1cclxuICAgICAgRXZlbnRBbmRNZWV0aW5nRnVuY3Rpb25UeXBlLkNSRUFURTtcclxuICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNlbGVjdGVkRXZlbnRJZCA9ICcnO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRNZWV0aW5nSWQgPSAnJztcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmNyZWF0ZUV2ZW50TWVldGluZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGVzIGJldHdlZW4gdGhlIExpc3QgdmlldyBvciBDYWxlbmRhciB2aWV3XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ub2dnbGVCdXR0b25DaGFuZ2UodG9nZ2xlQnV0dG9uOiBUb2dnbGVCdXR0b24pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWaWV3VHlwZSA9XHJcbiAgICAgIHRvZ2dsZUJ1dHRvbj8uaWQgPT09IEV2ZW50c0FuZE1lZXRpbmdzVmlld1R5cGUuTElTVF9WSUVXXHJcbiAgICAgICAgPyBFdmVudHNBbmRNZWV0aW5nc1ZpZXdUeXBlLkxJU1RfVklFV1xyXG4gICAgICAgIDogRXZlbnRzQW5kTWVldGluZ3NWaWV3VHlwZS5DQUxFTkRBUl9WSUVXO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvd3MgdGhlIHNlYXJjaCBmaWVsZCBvbiBjbGljayBvZiBzZWFyY2ggaWNvbiBpbiBjYXNlIG9mIG1vYmlsZSB2aWV3XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25FdmVudE1lZXRpbmdTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJhc2VkIG9uIGNsaWNrIG1lbnUgaXRlbXMgbmF2aWdhdGUgdG8gZWRpdCBtZWV0aW5nIG9yIGV2ZW50IHBhZ2UuXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBoYW5kbGVFZGl0QWN0aW9ucyhyb3c6IGFueSkge1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2V0U3RhbmRhbG9uZU1lZXRpbmdTdGF0dXModHJ1ZSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IHJvdztcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0YT8ubGFiZWwgPT09IFZpZXdFZGl0QWN0aW9uLlZJRVdfRURJVF9FVkVOVF9ERVRBSUxTKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5FRElUO1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5zZWxlY3RlZEV2ZW50SWQgPSB0aGlzLmV2ZW50RGF0YT8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRFdmVudCk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YT8ubGFiZWwgPT09IFZpZXdFZGl0QWN0aW9uLlZJRVdfRURJVF9NRUVUSU5HX0RFVEFJTFNcclxuICAgICkge1xyXG4gICAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZS5hY3Rpb25UeXBlID1cclxuICAgICAgICBFdmVudEFuZE1lZXRpbmdGdW5jdGlvblR5cGUuRURJVDtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRNZWV0aW5nSWQgPSB0aGlzLmV2ZW50RGF0YT8uaWQ7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yb3V0ZVBhdGhzLmVkaXRNZWV0aW5nKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhPy5pZCA9PT0gRXZlbnRBY3Rpb24uREVMRVRFX0VWRU5UIHx8XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhPy5pZCA9PT0gTWVldGluZ0FjdGlvbi5ERUxFVEVfTUVFVElOR1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMub3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKHRydWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRGF0YT8uaWQgPT09IEV2ZW50QWN0aW9uLkNSRUFURV9NRUVUSU5HKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmFjdGlvblR5cGUgPVxyXG4gICAgICAgIEV2ZW50QW5kTWVldGluZ0Z1bmN0aW9uVHlwZS5DUkVBVEU7XHJcbiAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLnNldFN0YW5kYWxvbmVNZWV0aW5nU3RhdHVzKGZhbHNlKTtcclxuICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2Uuc2VsZWN0ZWRFdmVudElkID0gdGhpcy5ldmVudERhdGE/LmlkO1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucm91dGVQYXRocy5lZGl0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBCYXNlZCBvbiBjbGljayBldmVudCBuYXZpZ2F0ZSB0byBlZGl0IG1lZXRpbmcgb3IgZXZlbnQgcGFnZS5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKiBAcGFyYW0geyp9IGV2ZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBlZGl0RXZlbnRNZWV0aW5nKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZXZlbnREYXRhID0gZXZlbnQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXZlbnRPck1lZXRpbmdJZCA9IFtdO1xyXG4gICAgaWYgKGV2ZW50Py5pZCkgdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWQucHVzaChldmVudD8uaWQpO1xyXG4gICAgZWxzZSBpZiAoZXZlbnQ/Lm1lZXRpbmdJZClcclxuICAgICAgdGhpcy5zZWxlY3RlZEV2ZW50T3JNZWV0aW5nSWQucHVzaChldmVudD8ubWVldGluZ0lkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2V0cyBpZHMgb2YgYWxsIHRoZSBzZWxlY3RlZCBldmVudHMgYW5kIG1lZXRpbmdzIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHBhcmFtIHsqfSBzZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRNZWV0aW5nc0FuZEV2ZW50c1RvRGVsZXRlKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgIHNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3M6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzID0gW107XHJcbiAgICBzZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzPy5mb3JFYWNoKChldmVudE9yTWVldGluZzogRXZlbnRzQW5kTWVldGluZ3MpID0+IHtcclxuICAgICAgaWYgKGV2ZW50T3JNZWV0aW5nPy5pZClcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMucHVzaChldmVudE9yTWVldGluZy5pZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGVsZXRlQnV0dG9uLmRpc2FibGVkID0gdGhpcy5zZWxlY3RlZEV2ZW50c0FuZE1lZXRpbmdzSWRzLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT3BlbnMgZXZlbnRzIGFuZCBtZWV0aW5ncyBkZWxldGUgY29uZmlybWF0aW9uIG1vZGFsIGFuZCBjYWxscyBkZWxldGVFdmVudHNPck1lZXRpbmdzIG1ldGhvZCBvbiBjb25maXJtYXRpb24uXHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb3BlbkRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsKGlzU2luZ2xlRGVsZXRlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlybWF0aW9uSW5mbyA9XHJcbiAgICAgIHRoaXMuc2NyZWVuVGV4dHM/LmRlbGV0ZUV2ZW50c09yTWVldGluZ3M/LmNvbmZpcm1hdGlvbkluZm87XHJcbiAgICBjb25zdCBkZWxldGVNb2RhbE9wdGlvbnMgPSB7XHJcbiAgICAgIGxlZnRCdXR0b25MYWJlbDogY29uZmlybWF0aW9uSW5mbz8ubGVmdEJ1dHRvbkxhYmVsLFxyXG4gICAgICByaWdodEJ1dHRvbkxhYmVsOiBjb25maXJtYXRpb25JbmZvPy5yaWdodEJ1dHRvbkxhYmVsLFxyXG4gICAgICBwcm9tcHRNZXNzYWdlOiBjb25maXJtYXRpb25JbmZvPy5wcm9tcHRNZXNzYWdlLFxyXG4gICAgICBhY3Rpb25CdXR0b25BbGlnbjogQWxpZ25UeXBlPy5NSURETEUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZz8ub3BlbihNb2RhbENvbmZpcm1hdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkZWxldGVNb2RhbE9wdGlvbnMsXHJcbiAgICAgIGF1dG9Gb2N1czogJ2RpYWxvZycsXHJcbiAgICAgIGFyaWFMYWJlbDogdGhpcy5jb25zdGFudHM/LmFyaWFMYWJlbD8uYWxlcnQsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLWRlbGV0ZS1ldmVudHMtbWVldGluZ3MtbW9kYWwnXSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZUV2ZW50c09yTWVldGluZ3MoaXNTaW5nbGVEZWxldGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIEFQSSBSZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgZXZlbnRzIGFuZCBtZWV0aW5ncyBhbmQgaGFuZGxlcyB0aGUgc3VjY2VzcyBhbmQgZXJyb3IgcmVzcG9uc2Ugb2YgdGhlIGh0dHAgcmVxdWVzdC5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBkZWxldGVFdmVudHNPck1lZXRpbmdzKGlzU2luZ2xlRGVsZXRlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgY291bnQgPSBpc1NpbmdsZURlbGV0ZVxyXG4gICAgICA/IHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkPy5sZW5ndGhcclxuICAgICAgOiB0aGlzLnNlbGVjdGVkRXZlbnRzQW5kTWVldGluZ3NJZHMubGVuZ3RoO1xyXG4gICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2VcclxuICAgICAgLmRlbGV0ZUV2ZW50c09yTWVldGluZ3Moe1xyXG4gICAgICAgIHBheWxvYWQ6IGlzU2luZ2xlRGVsZXRlXHJcbiAgICAgICAgICA/IHRoaXMuc2VsZWN0ZWRFdmVudE9yTWVldGluZ0lkXHJcbiAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRFdmVudHNBbmRNZWV0aW5nc0lkcyxcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdldEV2ZW50c0FuZE1lZXRpbmdzKHtcclxuICAgICAgICAgICAgcGF5bG9hZDoge1xyXG4gICAgICAgICAgICAgIGV2ZW50SWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgc29ydENvbHVtbjogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgICAgICAgIGFzY2VuZGluZ09yZGVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgbWVzc2FnZTpcclxuICAgICAgICAgICAgICBjb3VudCArXHJcbiAgICAgICAgICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uZGVsZXRlRXZlbnRzT3JNZWV0aW5ncz8ubWVzc2FnZT8uc3VjY2Vzc1xyXG4gICAgICAgICAgICAgICAgPy5kZWxldGlvbixcclxuICAgICAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGUuU1VDQ0VTUyxcclxuICAgICAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ldmVudHNBbmRNZWV0aW5nc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG1lZXRpbmdzIGNyZWF0ZWQgZm9yIHRoZSBzZWxlY3RlZCBldmVudCBmcm9tIHNlcnZlci5cclxuICAgKiBAcGFyYW0ge0dldE1lZXRpbmdzQnlFdmVudElkUGF5bG9hZH0gcGF5bG9hZFxyXG4gICAqIEBtZW1iZXJvZiBDcmVhdGVPck1vZGlmeUV2ZW50Q29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0TWVldGluZ3NCeUV2ZW50SWQocGF5bG9hZDogR2V0TWVldGluZ3NCeUV2ZW50SWRQYXlsb2FkKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2ZW50c0FuZE1lZXRpbmdzU2VydmljZVxyXG4gICAgICAuZ2V0TWVldGluZ3NCeUV2ZW50SWQocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubWVldGluZ3MgPSBbXTtcclxuICAgICAgICAgIHRoaXMubmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMubmVzdGVkVGFibGVQYWdpbmF0b3JDb25maWcsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5tZWV0aW5ncyA9XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLm1hcE1lZXRpbmdzSW5mb1RvRGF0YVRhYmxlKFxyXG4gICAgICAgICAgICAgIHJlc3BvbnNlPy5ib2R5Py5tZWV0aW5nc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZy50b3RhbFJlY29yZHMgPVxyXG4gICAgICAgICAgICByZXNwb25zZT8uYm9keT8udG90YWxSZWNvcmRzID8/IHRoaXMubWVldGluZ3M/Lmxlbmd0aDtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuZXZlbnRzQW5kTWVldGluZ3NTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoZSB0YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBnZXRzIG1lZXRpbmdzIG9mIHRoZSBzZWxlY3RlZCBldmVudCB1c2luZyBldmVudCBpZCBmcm9tIHNlcnZlciB0byBkaXNwbGF5IHRoZSBtZWV0aW5ncyBpbiB0aGUgbmVzdGVkIHRhYnVsYXIgdmlldy5cclxuICAgKiBAbWVtYmVyb2YgQ3JlYXRlT3JNb2RpZnlFdmVudENvbXBvbmVudFxyXG4gICAqIEBwYXJhbSB7RXZlbnRzQW5kTWVldGluZ3N9IGV2ZW50RGV0YWlsXHJcbiAgICovXHJcbiAgZ2V0RXZlbnRNZWV0aW5nc09uUm93RXhwYW5kKGV2ZW50RGV0YWlsOiBFdmVudHNBbmRNZWV0aW5ncyk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0aWFsaXplTmVzdGVkVGFibGVDb2x1bW5TY2hlbWEoKTtcclxuICAgIHRoaXMuZ2V0TWVldGluZ3NCeUV2ZW50SWQoe1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZXZlbnRJZDogZXZlbnREZXRhaWw/LmlkLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMubmVzdGVkVGFibGVEZWZhdWx0U29ydGVkQ29sdW1uLFxyXG4gICAgICAgIGFzY2VuZGluZ09yZGVyOiB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgc2l6ZTogdGhpcy5uZXN0ZWRUYWJsZVBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRhYmxlIGNvbHVtbiBzY2hlbWEgdG8gZGlzcGxheSB0aGUgbWVldGluZ3MgdW5kZXIgYW4gZXZlbnQgaW4gdGFidWxhciB2aWV3XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZU5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy5uZXN0ZWRUYWJsZUNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8ubmFtZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/Lm5hbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5tZWV0aW5nVGl0bGV9YCxcclxuICAgICAgICBpc0NvbnRlbnRVbmRlckxpbms6IHRydWUsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAyLFxyXG4gICAgICAgIGNvbHVtbkRlZjogQ09MVU1OX0RFRj8uc3RhcnREYXRlVGltZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LnN0YXJ0RGF0ZVRpbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke21vbWVudChlbGVtZW50Lm1lZXRpbmdTdERhdGUpLmZvcm1hdChcclxuICAgICAgICAgICAgRGF0ZUZvcm1hdHMuZGlzcGxheUZvcm1hdFxyXG4gICAgICAgICAgKX08YnI+JHttb21lbnQoZWxlbWVudC5tZWV0aW5nU3REYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLnRpbWVGb3JtYXRcclxuICAgICAgICAgICl9YCxcclxuICAgICAgICBpc0hUTUxDZWxsRGF0YTogdHJ1ZSxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5lbmREYXRlVGltZSxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmVuZERhdGVUaW1lLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHttb21lbnQoZWxlbWVudC5tZWV0aW5nRWREYXRlKS5mb3JtYXQoXHJcbiAgICAgICAgICAgIERhdGVGb3JtYXRzLmRpc3BsYXlGb3JtYXRcclxuICAgICAgICAgICl9PGJyPiR7bW9tZW50KGVsZW1lbnQubWVldGluZ0VkRGF0ZSkuZm9ybWF0KFxyXG4gICAgICAgICAgICBEYXRlRm9ybWF0cy50aW1lRm9ybWF0XHJcbiAgICAgICAgICApfWAsXHJcbiAgICAgICAgaXNIVE1MQ2VsbERhdGE6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNCxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/LnRpbWVab25lLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8udGltZVpvbmUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQudGltZVpvbmUgPz8gdGhpcy5lbXB0eUZpZWxkVmFsdWVSZXBsYWNlZEJ5fWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6IENPTFVNTl9ERUY/Lmdyb3VwLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZ3JvdXAsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICAgIGAke2VsZW1lbnQuZ3JvdXBOYW1lID8/IHRoaXMuZW1wdHlGaWVsZFZhbHVlUmVwbGFjZWRCeX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDYsXHJcbiAgICAgICAgY29sdW1uRGVmOiBDT0xVTU5fREVGPy5sb2NhdGlvbixcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmxvY2F0aW9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+XHJcbiAgICAgICAgICBgJHtlbGVtZW50Lm1lZXRpbmdMb2NhdGlvbiA/PyB0aGlzLmVtcHR5RmllbGRWYWx1ZVJlcGxhY2VkQnl9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA3LFxyXG4gICAgICAgIGNvbHVtbkRlZjogVGFibGVDb2x1bW5UeXBlLkFDVElPTlMsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5hY3Rpb25zLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5BQ1RJT05TLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQuYWN0aW9ufWAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZXZlbnRzIG9yIG1lZXRpbmdzIGJhc2VkIG9uIHRoZSBjb2x1bW4gbmFtZSBhbmQgc29ydCBkaXJlY3Rpb24uXHJcbiAgICogQHBhcmFtIHtTb3J0fSBzb3J0XHJcbiAgICogQG1lbWJlcm9mIEV2ZW50c0FuZE1lZXRpbmdzQ29tcG9uZW50XHJcbiAgICovXHJcblxyXG4gIG9uU29ydE1lZXRpbmdPckV2ZW50KHNvcnQ6IFNvcnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbiA9XHJcbiAgICAgIHNvcnQuYWN0aXZlID09PSAnc3RhcnQtZGF0ZS10aW1lJyA/ICdzdGFydERhdGVUaW1lJyA6IHNvcnQuYWN0aXZlO1xyXG4gICAgdGhpcy5uZXN0ZWRUYWJsZURlZmF1bHRTb3J0ZWRDb2x1bW4gPSBzb3J0LmFjdGl2ZTtcclxuICAgIHRoaXMubmVzdGVkVGFibGVEZWZhdWx0U29ydGVkQ29sdW1uID1cclxuICAgICAgc29ydC5hY3RpdmUgPT09IENPTFVNTl9ERUYubmFtZSA/ICdtZWV0aW5nVGl0bGUnIDogJ21lZXRpbmdTdERhdGUnO1xyXG4gICAgdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbiA9XHJcbiAgICAgIHNvcnQuZGlyZWN0aW9uID09PSBUYWJsZUNvbHVtblNvcnREaXJlY3Rpb24uQVNDRU5ESU5HO1xyXG4gICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiBudWxsLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogdGhpcy5kZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbixcclxuICAgICAgICBwYWdlOiAxLFxyXG4gICAgICAgIHNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnRyaW1tZWRTZWFyY2hUZXJtID8/IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgaXNTZWFyY2hBY3RpdmUgdG8gdHJ1ZSBhbmQgbG9hZHMgdGhlIGV2ZW50cyBvciBtZWV0aW5ncyAuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlYXJjaFRlcm1cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBvbkV2ZW50c09yTWVldGluZ3NTZWFyY2hDbGljayhzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChzZWFyY2hUZXJtKSB7XHJcbiAgICAgIHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtLnRyaW0oKTtcclxuICAgICAgdGhpcy5pc1NlYXJjaEFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIGlmICghdGhpcy50cmltbWVkU2VhcmNoVGVybSkgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRNZXNzYWdlID0gJyc7XHJcbiAgICAgIHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gPSAnJztcclxuICAgICAgdGhpcy5pc1NlYXJjaEFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRFdmVudHNBbmRNZWV0aW5ncyh7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBldmVudElkOiBudWxsLFxyXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbixcclxuICAgICAgICBhc2NlbmRpbmdPcmRlcjogZmFsc2UsXHJcbiAgICAgICAgcGFnZTogMSxcclxuICAgICAgICBzaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZz8ucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgc2VhcmNoVGVybTogc2VhcmNoVGVybSA/IHRoaXMudHJpbW1lZFNlYXJjaFRlcm0gOiBudWxsLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRXZlbnRzQW5kTWVldGluZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ1wiXHJcbiAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmctLW1vYmlsZS12aWV3IHAtMCcgOiAnJ1wiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItM1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlci0tbW9iaWxlLXZpZXcnIDogJydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPHBcclxuICAgICAgW25nQ2xhc3NdPVwiaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS10aXRsZS1sZy0yNCcgOiAnaWVlZXNhLWhlYWRsaW5lLWxnLTM0J1wiXHJcbiAgICA+XHJcbiAgICAgIHt7IHNjcmVlblRleHRzPy50aXRsZSB9fVxyXG4gICAgPC9wPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBnYXAtbGctMyBnYXAtbWQtMyBnYXAtc20tMyBnYXAtMyBjb2wtbWQtNSBjb2wtbGctNCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHBzLTBcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTW9iaWxlVmlld1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hGaWVsZFwiPiA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImlzQ3JlYXRlRXZlbnRBbmRNZWV0aW5nQWxsb3dlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXJfX2NyZWF0ZS1idXR0b24gZC1ub25lIGQtc20tbm9uZSBkLW1kLWJsb2NrIGQtbGctYmxvY2sgZC14bC1ibG9jayBjb2wtbGctMyBwYi0wXCJcclxuICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb0NyZWF0ZUV2ZW50TWVldGluZ0Zvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3ZnXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fY3JlYXRlLWJ1dHRvbl9faWNvbiBtZS0yXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwiY3JlYXRlQnV0dG9uPy5pY29uVVJMXCI+PC91c2U+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX19oZWFkZXJfX2NyZWF0ZS1idXR0b25fX2xhYmVsXCI+e3tcclxuICAgICAgICAgIGNyZWF0ZUJ1dHRvbj8ubGFiZWxcclxuICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1zbS1mbGV4IGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lIGllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2hlYWRlcl9fbW9iaWxlLWljb25zIGdhcC0yXCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcmVlblRleHRzPy5zZWFyY2hQbGFjZWhvbGRlclRleHRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkV2ZW50TWVldGluZ1NlYXJjaCgpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtbWFnbmlmeWluZy1nbGFzcyBzZWFyY2gtZXZlbnRzLW1lZXRpbmdzLWljb25cIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0NyZWF0ZUV2ZW50QW5kTWVldGluZ0FsbG93ZWRcIlxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cImNyZWF0ZUJ1dHRvblwiXHJcbiAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJuYXZpZ2F0ZVRvQ3JlYXRlRXZlbnRNZWV0aW5nRm9ybSgpXCJcclxuICAgICAgPlxyXG4gICAgICA8L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGQ+XHJcbiAgICA8aWVlZXNhLXNlYXJjaFxyXG4gICAgICBbcGxhY2Vob2xkZXJMYWJlbF09XCJzY3JlZW5UZXh0cz8uc2VhcmNoUGxhY2Vob2xkZXJUZXh0XCJcclxuICAgICAgW3NlYXJjaFR5cGVdPVwic2VhcmNoVHlwZVwiXHJcbiAgICAgIChzZWFyY2hWYWx1ZSk9XCJvbkV2ZW50c09yTWVldGluZ3NTZWFyY2hDbGljaygkZXZlbnQpXCJcclxuICAgICAgW3NlYXJjaFRlcm1dPVwidHJpbW1lZFNlYXJjaFRlcm1cIlxyXG4gICAgICBbbWluQ2hhcmFjdGVyVG9TZWFyY2hdPVwibWluQ2hhcmFjdGVyVG9TZWFyY2hcIlxyXG4gICAgICBbc3VwcG9ydE1lc3NhZ2VdPVwic3VwcG9ydE1lc3NhZ2VcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3NlYXJjaC13cmFwcGVyXCJcclxuICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2ZpbHRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gcGItM1wiXHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgaXNNb2JpbGVWaWV3ID8gJ2llZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2ZpbHRlci0tbW9iaWxlLXZpZXcnIDogJydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGllZWVzYS1maWx0ZXIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiPjwvaWVlZXNhLWZpbHRlcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3ZpZXdcIlxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZXZlbnRzLWFuZC1tZWV0aW5nX192aWV3LS1tb2JpbGUtdmlldyBwLTAnIDogJydcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX3RhYi1hY3Rpb24gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgIGlzTW9iaWxlVmlld1xyXG4gICAgICAgICAgPyAnaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdGFiLWFjdGlvbi0tbW9iaWxlLXZpZXcgcGItMydcclxuICAgICAgICAgIDogJydcclxuICAgICAgXCJcclxuICAgID5cclxuICAgICAgPGllZWVzYS10b2dnbGUtYnV0dG9uXHJcbiAgICAgICAgW3NlbGVjdGVkTGFiZWxdPVwibGlzdE9yQ2FsZW5kYXJWaWV3c1swXT8ubGFiZWwgPz8gJydcIlxyXG4gICAgICAgIFtidXR0b25zXT1cImxpc3RPckNhbGVuZGFyVmlld3NcIlxyXG4gICAgICAgICh0b2dnbGVTZWxlY3RlZCk9XCJvblRvZ2dsZUJ1dHRvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLXRvZ2dsZS1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJkZWxldGVCdXR0b25cIlxyXG4gICAgICAgICpuZ0lmPVwiaXNEZWxldGVFdmVudEFuZE1lZXRpbmdBbGxvd2VkXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9wZW5EZWxldGVDb25maXJtYXRpb25Nb2RhbCgpXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1ldmVudHMtYW5kLW1lZXRpbmdfX2RlbGV0ZS1idXR0b25cIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxwXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWV2ZW50cy1hbmQtbWVldGluZ19fdGFiLWFjdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgKm5nSWY9XCJ0cmltbWVkU2VhcmNoVGVybVwiXHJcbiAgICAgIFtpbm5lckhUTUxdPVwic2VhcmNoUmVzdWx0TWVzc2FnZSB8IHNhZmUgOiBzYWZlVHlwZVwiXHJcbiAgICA+PC9wPlxyXG4gICAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRWaWV3VHlwZSA9PT0gZXZlbnRBbmRNZWV0aW5nVmlld1R5cGUuTElTVF9WSUVXXCJcclxuICAgICAgW3RhYmxlRGF0YUluZm9dPVwiZXZlbnRzQW5kTWVldGluZ3NMaXN0XCJcclxuICAgICAgW25lc3RlZFRhYmxlRGF0YUluZm9dPVwibWVldGluZ3NcIlxyXG4gICAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgICBbbmVzdGVkVGFibGVDb2x1bW5TY2hlbWFJbmZvXT1cIm5lc3RlZFRhYmxlQ29sdW1uU2NoZW1hXCJcclxuICAgICAgW3BhZ2luYXRvckNvbmZpZ109XCJwYWdpbmF0b3JDb25maWdcIlxyXG4gICAgICBbbmVzdGVkUGFnaW5hdG9yQ29uZmlnXT1cIm5lc3RlZFRhYmxlUGFnaW5hdG9yQ29uZmlnXCJcclxuICAgICAgW3ZpZXdBbGxdPVwidmlld0FsbE1lZXRpbmdzVGV4dFwiXHJcbiAgICAgIFt0YWJsZUFjdGlvbnNdPVwiZXZlbnRzQW5kTWVldGluZ3NBY3Rpb25zXCJcclxuICAgICAgW25lc3RlZFRhYmxlUm93QWN0aW9uc109XCJzY3JlZW5UZXh0cz8ubWVldGluZ0FjdGlvbnNcIlxyXG4gICAgICBbY2xhc3NOYW1lXT1cIidpZWVlc2Etdmlldy1ldmVudHMtYW5kLW1lZXRpbmdzJ1wiXHJcbiAgICAgIFtsZWdlbmRzXT1cImV2ZW50QW5kTWVldGluZ0xlZ2VuZHNcIlxyXG4gICAgICAoY29sdW1uRGF0YU9uUm93TGlua0NsaWNrKT1cIm5hdmlnYXRlVG9WaWV3RGV0YWlsc1BhZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChtZW51QWN0aW9uQ2xpY2spPVwiZWRpdEV2ZW50TWVldGluZygkZXZlbnQpXCJcclxuICAgICAgKHJvd0V4cGFuc2lvbkNsaWNrKT1cImdldEV2ZW50TWVldGluZ3NPblJvd0V4cGFuZCgkZXZlbnQpXCJcclxuICAgICAgKHNlbGVjdEFjdGlvbk1lbnUpPVwiaGFuZGxlRWRpdEFjdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgIChwYWdpbmF0aW9uQ2hhbmdlKT1cIm9uRXZlbnRzQW5kTWVldGluZ3NUYWJsZVBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChzb3J0Q2hhbmdlKT1cIm9uU29ydE1lZXRpbmdPckV2ZW50KCRldmVudClcIlxyXG4gICAgICAoc2VsZWN0ZWRSb3dzSW5mbyk9XCJnZXRTZWxlY3RlZE1lZXRpbmdzQW5kRXZlbnRzVG9EZWxldGUoJGV2ZW50KVwiXHJcbiAgICA+PC9pZWVlc2EtZGF0YS10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -4157,6 +4157,12 @@ class EventsAndMeetingsComponent {
4157
4157
  console.log('APIBaseURL', this.apiBaseURL);
4158
4158
  this.activatedRoute.data.subscribe((response) => {
4159
4159
  console.log('Response', response);
4160
+ response['apiBaseURL']?.subscribe((apiBaseURL) => {
4161
+ console.log('apiBaseURL', apiBaseURL);
4162
+ });
4163
+ response['userPermissions']?.subscribe((userPermissions) => {
4164
+ console.log('userPermissions', userPermissions);
4165
+ });
4160
4166
  });
4161
4167
  if (this.deleteButton)
4162
4168
  this.deleteButton.disabled = true;