ngx-wapp-components 1.3.2 → 1.3.3

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.
@@ -109,8 +109,6 @@ export class WFilterPanelComponent {
109
109
  };
110
110
  this.setEntity(queries);
111
111
  queries = this.initializeOperators(queries);
112
- queries = this.deleteFieldsWithoutValue(queries);
113
- queries = this.handleEmptyFieldsQuery(queries);
114
112
  let storedQuery = {
115
113
  id: this.filterId,
116
114
  basicQueryValue: queries.basic,
@@ -118,6 +116,8 @@ export class WFilterPanelComponent {
118
116
  groupedQueryValue: queries.grouped
119
117
  };
120
118
  this.localStorage.setLastFilterPanelQuery(storedQuery);
119
+ queries = this.deleteFieldsWithoutValue(queries);
120
+ queries = this.handleEmptyFieldsQuery(queries);
121
121
  this.searchClicked.emit(queries);
122
122
  }
123
123
  onClearClicked() {
@@ -405,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
405
405
  type: Output,
406
406
  args: ['clearClicked']
407
407
  }] } });
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1maWx0ZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWlzYy93LWZpbHRlci1wYW5lbC93LWZpbHRlci1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YXBwLWNvbXBvbmVudHMvc3JjL2xpYi9taXNjL3ctZmlsdGVyLXBhbmVsL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSWpFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZckcsTUFBTSxPQUFPLHFCQUFxQjtJQWdGaEMsWUFDVSxXQUF3QixFQUN4QixVQUFzQixFQUN0QixZQUFpQztRQUZqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQS9FcEMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBRWxELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRzVDLGVBQVUsR0FBUTtZQUNoQixTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFDRixpQkFBWSxHQUFRO1lBQ2xCLFNBQVMsRUFBRSxLQUFLO1lBQ2hC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LE9BQU87Z0JBQ1ksZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0wsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNtQix5QkFBeUI7c0JBQTVELEtBQUs7dUJBQUMsMkJBQTJCO2dCQUVMLGtCQUFrQjtzQkFBOUMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBcUNGLGFBQWE7c0JBQXJDLE1BQU07dUJBQUMsZUFBZTtnQkFDQyxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFFCRGF0YVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9lbnVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFFiUGFuZWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9xYi1wYW5lbC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eU1hcCwgRmllbGQsIEZpZWxkTWFwLCBRdWVyeUJ1aWxkZXJDb25maWcsIFJ1bGUsIFJ1bGVTZXQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlclBhbmVsVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLXRyYW5zbGF0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0VHlwZSwgUXVlcnlSZXN1bHRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcXVlcnktcmVzdWx0cy5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLWZpZWxkLm1vZGVscyc7XHJcbmltcG9ydCB7IFFiRmlsdGVyRW50aXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcWItZmlsdGVyLWVudGl0eS5tb2RlbCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZS9hcGkvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3N0b3JlZC1maWx0ZXItcGFuZWwtcXVlcnkubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93LWZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXRmlsdGVyUGFuZWxDb21wb25lbnQge1xyXG4gIHB1YmxpYyBxdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgYWR2YW5jZWRRdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgZ3JvdXBlZFF1ZXJ5Q3RybCE6IEZvcm1Db250cm9sO1xyXG4gIHB1YmxpYyBwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgcXVlcnlDb25maWdSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQWR2YW5jZWRTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxYkRhdGFUeXBlRW51bSA9IFFCRGF0YVR5cGVFbnVtO1xyXG4gIHFiRGF0YUVudW1zID0gT2JqZWN0LnZhbHVlcyhRQkRhdGFUeXBlRW51bSk7XHJcbiAgYmFzaWNRdWVyeUNvbmZpZyE6IGFueTtcclxuICBhZHZhbmNlZFF1ZXJ5Q29uZmlnITogYW55O1xyXG4gIGJhc2ljUXVlcnk6IGFueSA9IHtcclxuICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICBydWxlczogW11cclxuICB9O1xyXG4gIGdyb3VwZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgYWR2YW5jZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgZmlsdGVyUGFuZWxPYmplY3QhOiBRYlBhbmVsRmlsdGVyO1xyXG4gIGVudGl0eUNvbmZpZ0dyb3VwZWQ6IFF1ZXJ5QnVpbGRlckNvbmZpZyA9IHsgZmllbGRzOiB7fSB9O1xyXG4gIGVudGl0aWVzOiBhbnlbXSA9IFtdO1xyXG4gIGRlZmF1bHRWYWx1ZXM6IGFueVtdID0gW107XHJcbiAgZGVmYXVsdE9wZXJhdG9yczogYW55W10gPSBbXTtcclxuICBzdG9yZWRRdWVyeTogU3RvcmVkRmlsdGVyUGFuZWxRdWVyeSA9IHRoaXMubG9jYWxTdG9yYWdlLmdldExhc3RGaWx0ZXJQYW5lbFF1ZXJ5KCk7XHJcblxyXG4gIEBJbnB1dCgnYXBpVXJsJykgYXV0aG9yaXphdGlvbkFwaVVybCE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFBcGlVcmwnKSBjb21tb25EYXRhQXBpVXJsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgndG9rZW4nKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFUb2tlbicpIGNvbW1vbkRhdGFUb2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2ZpbHRlcklkJykgZmlsdGVySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkYXRhSXNMb2FkaW5nU2VhcmNoQnV0dG9uJykgZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoJ3RyYW5zbGF0aW9uc09iamVjdCcpIHRyYW5zbGF0aW9uc09iamVjdDogRmlsdGVyUGFuZWxUcmFuc2xhdGlvbnMgPSB7XHJcbiAgICBiYXNpY1NlYXJjaFRhYkxhYmVsOiAnQmFzaWMgc2VhcmNoJyxcclxuICAgIGFkdmFuY2VkU2VhcmNoVGFiTGFiZWw6ICdBZHZhbmNlZCBzZWFyY2gnLFxyXG4gICAgZ3JvdXBlZEZpbHRlclRpdGxlOiAnR3JvdXBlZCBmaWx0ZXInLFxyXG4gICAgYWR2YW5jZWRTZWFyY2g6IHtcclxuICAgICAgYW5kQnV0dG9uTGFiZWw6ICdBbmQnLFxyXG4gICAgICBvckJ1dHRvbkxhYmVsOiAnT3InLFxyXG4gICAgICBhZGRSdWxlQnV0dG9uTGFiZWw6ICdBZGQgZmlsdGVyJyxcclxuICAgICAgYWRkUnVsZVNldEJ1dHRvbkxhYmVsOiAnQWRkIGZpbHRlciBzZXQnLFxyXG4gICAgICByZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWw6ICdSZW1vdmUgcnVsZSBzZXQnXHJcbiAgICB9LFxyXG4gICAgbm9SdWxlc0xhYmVsOiAnQWRkIGZpbHRlciBvciBmaWx0ZXIgc2V0IHRvIHN0YXJ0JyxcclxuICAgIHNlYXJjaEJ1dHRvbkxhYmVsOiAnQ2xlYXInLFxyXG4gICAgY2xlYXJCdXR0b25MYWJlbDogJ0NsZWFyJyxcclxuICAgIGZpZWxkc1BsYWNlaG9sZGVyczoge1xyXG4gICAgICBib29sZWFuOiB7XHJcbiAgICAgICAgICB0cnVlOiAnVHJ1ZScsXHJcbiAgICAgICAgICBmYWxzZTogJ0ZhbHNlJ1xyXG4gICAgICB9LFxyXG4gICAgICBkZWNpbWFsOiAnSW5zZXJ0IGRlY2ltYWwgbnVtYmVyJyxcclxuICAgICAgbGlzdDogJ1NlbGVjdCBhbiBvcHRpb24nLFxyXG4gICAgICBudW1iZXI6ICdJbnNlcnQgYSBudW1iZXInLFxyXG4gICAgICB0ZXh0OiAnSW5zZXJ0IHRleHQnLFxyXG4gICAgICBkYXRldGltZTogJ1NlbGVjdCBhIGRhdGUnXHJcbiAgICB9LFxyXG4gICAgb3BlcmF0b3JzOiB7XHJcbiAgICAgIGNvbnRhaW5zOidjb250YWlucydcclxuICAgIH0sXHJcbiAgICBmaWVsZHM6IHtcclxuICAgICAgSWRsZURlYWRsaW5lOiAnSWQnLFxyXG4gICAgICBuYW1lOiAnTmFtZScsXHJcbiAgICAgIGNvZGU6ICdDb2RlJyxcclxuICAgICAgZGVsZXRlOiAnRGVsZXRlZCcsXHJcbiAgICAgIGNvdW50cnk6ICdDb3VudHJ5J1xyXG4gICAgfVxyXG4gIH07XHJcbiAgXHJcbiAgQE91dHB1dCgnc2VhcmNoQ2xpY2tlZCcpIHNlYXJjaENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXJ5UmVzdWx0cz4oKTtcclxuICBAT3V0cHV0KCdjbGVhckNsaWNrZWQnKSBjbGVhckNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgXHJcbiAgc3RhdGVPcHRpb25zOiBhbnlbXSA9IFt7IGxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hbmRCdXR0b25MYWJlbCwgdmFsdWU6ICdhbmQnIH0sIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLm9yQnV0dG9uTGFiZWwsIHZhbHVlOiAnb3InIH1dO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0UXVlcnlCdWlsZGVyRmlsdGVyUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGluaXRRdWVyeUJ1aWxkZXJDb250cm9scygpIHtcclxuICAgIHRoaXMucXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYmFzaWNRdWVyeSk7XHJcbiAgICB0aGlzLmFkdmFuY2VkUXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYWR2YW5jZWRRdWVyeSk7XHJcbiAgICBpZih0aGlzLmZpbHRlclBhbmVsT2JqZWN0LmFsbG93R3JvdXBlZCkge1xyXG4gICAgICB0aGlzLmdyb3VwZWRRdWVyeUN0cmwgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodGhpcy5ncm91cGVkUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2VhcmNoVHlwZSgpIHtcclxuICAgIHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA9ICF0aGlzLmlzQWR2YW5jZWRTZWFyY2g7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENsaWNrZWQoKSB7XHJcbiAgICBsZXQgcXVlcmllczogUXVlcnlSZXN1bHRzID0ge1xyXG4gICAgICB0eXBlOiB0aGlzLmdldFF1ZXJ5VHlwZSgpLFxyXG4gICAgICBiYXNpYzogdGhpcy5pc0FkdmFuY2VkU2VhcmNoID8gbnVsbCA6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucXVlcnlDdHJsLnZhbHVlKSxcclxuICAgICAgYWR2YW5jZWQ6IHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYWR2YW5jZWRRdWVyeUN0cmwudmFsdWUpIDogbnVsbCxcclxuICAgICAgZ3JvdXBlZDogdGhpcy5pc0FkdmFuY2VkU2VhcmNoICYmIHRoaXMuZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cGVkUXVlcnlDdHJsLnZhbHVlKSA6IG51bGxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEVudGl0eShxdWVyaWVzKTtcclxuXHJcbiAgICBxdWVyaWVzID0gdGhpcy5pbml0aWFsaXplT3BlcmF0b3JzKHF1ZXJpZXMpO1xyXG4gICAgcXVlcmllcyA9IHRoaXMuZGVsZXRlRmllbGRzV2l0aG91dFZhbHVlKHF1ZXJpZXMpO1xyXG4gICAgcXVlcmllcyA9IHRoaXMuaGFuZGxlRW1wdHlGaWVsZHNRdWVyeShxdWVyaWVzKTtcclxuXHJcbiAgICBsZXQgc3RvcmVkUXVlcnk6IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmZpbHRlcklkLFxyXG4gICAgICBiYXNpY1F1ZXJ5VmFsdWU6IHF1ZXJpZXMuYmFzaWMsXHJcbiAgICAgIGFkdmFuY2VkUXVlcnlWYWx1ZTogcXVlcmllcy5hZHZhbmNlZCxcclxuICAgICAgZ3JvdXBlZFF1ZXJ5VmFsdWU6IHF1ZXJpZXMuZ3JvdXBlZFxyXG4gICAgfVxyXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0TGFzdEZpbHRlclBhbmVsUXVlcnkoc3RvcmVkUXVlcnkpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoQ2xpY2tlZC5lbWl0KHF1ZXJpZXMpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhckNsaWNrZWQoKSB7XHJcbiAgICB0aGlzLnJlc2V0QmFzaWNRdWVyeVZhbHVlcygpO1xyXG4gICAgdGhpcy5hZHZhbmNlZFF1ZXJ5LnJ1bGVzID0gW107XHJcbiAgICB0aGlzLmdyb3VwZWRRdWVyeS5ydWxlcyA9IFtdO1xyXG4gICAgdGhpcy5jbGVhckNsaWNrZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVtcHR5RmllbGRzUXVlcnkocXVlcmllczogUXVlcnlSZXN1bHRzKTogUXVlcnlSZXN1bHRzIHtcclxuICAgIGlmKHF1ZXJpZXMuYWR2YW5jZWQgIT0gbnVsbCAmJiBxdWVyaWVzLmFkdmFuY2VkPy5ydWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBxdWVyaWVzLnR5cGUgPSAwXHJcbiAgICB9XHJcbiAgICBpZihxdWVyaWVzLmJhc2ljICE9IG51bGwgJiYgcXVlcmllcy5iYXNpYz8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgaWYocXVlcmllcy5ncm91cGVkICE9IG51bGwgJiYgcXVlcmllcy5ncm91cGVkPy5ydWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBxdWVyaWVzLnR5cGUgPSAwXHJcbiAgICB9XHJcbiAgICByZXR1cm4gcXVlcmllcztcclxuICB9XHJcblxyXG4gIGdldFF1ZXJ5VHlwZSgpOiBRdWVyeVJlc3VsdFR5cGUge1xyXG4gICAgaWYoIXRoaXMuaXNBZHZhbmNlZFNlYXJjaCkge1xyXG4gICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkJhc2ljO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYodGhpcy5pc0FkdmFuY2VkU2VhcmNoICYmIHRoaXMuZ3JvdXBlZFF1ZXJ5Q3RybD8udmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkdyb3VwZWRcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUXVlcnlSZXN1bHRUeXBlLkFkdmFuY2VkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFbnRpdHkocXVlcmllczogUXVlcnlSZXN1bHRzKSB7XHJcbiAgICBpZih0aGlzLmdldFF1ZXJ5VHlwZSgpID09IFF1ZXJ5UmVzdWx0VHlwZS5CYXNpYykge1xyXG4gICAgICBxdWVyaWVzLmJhc2ljIS5ydWxlcyA9IHF1ZXJpZXMuYmFzaWMhLnJ1bGVzLm1hcCgocjphbnkpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGQ6IHIuZmllbGQsXHJcbiAgICAgICAgICBvcGVyYXRvcjogci5vcGVyYXRvcixcclxuICAgICAgICAgIHZhbHVlOiByLnZhbHVlLFxyXG4gICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0aWVzLmZpbmQoZSA9PiBlLmZpZWxkSnNvbk5hbWUgPT0gci5maWVsZCkuZW50aXR5XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UXVlcnlCdWlsZGVyRmlsdGVyUGFuZWwoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0RmlsdGVyUGFuZWwodGhpcy5hdXRob3JpemF0aW9uQXBpVXJsLCB0aGlzLnRva2VuLCB0aGlzLmNvbW1vbkRhdGFBcGlVcmwsIHRoaXMuY29tbW9uRGF0YVRva2VuLCB0aGlzLmZpbHRlcklkKVxyXG4gICAgICAuc3Vic2NyaWJlKChxYlBhbmVsRmlsdGVyOiBRYlBhbmVsRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQYW5lbE9iamVjdCA9IHFiUGFuZWxGaWx0ZXI7XHJcbiAgICAgICAgbGV0IGJhc2ljRmlsdGVySWRzOiBudW1iZXJbXSA9IHFiUGFuZWxGaWx0ZXIucWJwYW5lbFRvRmllbGRzLmZpbHRlcihwYW5lbFRvRmllbGQgPT4gcGFuZWxUb0ZpZWxkLmJhc2ljKS5tYXAocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQpO1xyXG4gICAgICAgIGxldCBhZHZhbmNlZEZpbHRlcklkczogbnVtYmVyW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5maWx0ZXIocGFuZWxUb0ZpZWxkID0+ICFwYW5lbFRvRmllbGQuYmFzaWMpLm1hcChwYW5lbFRvRmllbGQgPT4gcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGRJZCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWVzID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBxYmZpbHRlckZpZWxkSWQ6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQsXHJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogcGFuZWxUb0ZpZWxkLmRlZmF1bHRWYWx1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0T3BlcmF0b3JzID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBxYmZpbHRlckZpZWxkSWQ6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQsXHJcbiAgICAgICAgICAgIHFiZGVmYXVsdE9wZXJhdG9yOiBwYW5lbFRvRmllbGQucWJkZWZhdWx0T3BlcmF0b3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIGxldCBmaWx0ZXJFbnRpdHk6IFFiRmlsdGVyRW50aXR5W10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocGFuZWxUb0ZpZWxkID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZC5xYmZpbHRlckVudGl0eS5pZCwgXHJcbiAgICAgICAgICAgIGJhc2ljOiBwYW5lbFRvRmllbGQuYmFzaWMsXHJcbiAgICAgICAgICAgIG5hbWU6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkLnFiZmlsdGVyRW50aXR5Lm5hbWUsIFxyXG4gICAgICAgICAgICBqc29uTmFtZTogcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGQucWJmaWx0ZXJFbnRpdHkuanNvbk5hbWUsIFxyXG4gICAgICAgICAgICBmaWVsZHM6IFtdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBmaWx0ZXJGaWVsZHM6IEZpbHRlckZpZWxkW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5tYXAocCA9PiBwLnFiZmlsdGVyRmllbGQpO1xyXG4gICAgICAgIGZpbHRlckVudGl0eS5mb3JFYWNoKChlbnRpdHk6IFFiRmlsdGVyRW50aXR5LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgbGV0IGZpZWxkcyA9IGZpbHRlckZpZWxkcy5maWx0ZXIoZSA9PiBlLnFiZmlsdGVyRW50aXR5LmlkID09IGVudGl0eS5pZCk7XHJcbiAgICAgICAgICAgZmlsdGVyRW50aXR5W2luZGV4XS5maWVsZHMgPSBmaWVsZHMgO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5pbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0eSk7XHJcbiAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnID0gdGhpcy5maWx0ZXJGaWVsZHNCeUlkKHRoaXMuYmFzaWNRdWVyeUNvbmZpZywgYmFzaWNGaWx0ZXJJZHMpO1xyXG4gICAgICAgIHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMgPSB0aGlzLnRyYW5zbGF0ZUZpZWxkcyh0aGlzLmJhc2ljUXVlcnlDb25maWcuZmllbGRzKTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmluaXRRdWVyeUJ1aWxkZXIoZmlsdGVyRW50aXR5KTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcgPSB0aGlzLmZpbHRlckZpZWxkc0J5SWQodGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLCBhZHZhbmNlZEZpbHRlcklkcyk7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnLmZpZWxkcyA9IHRoaXMudHJhbnNsYXRlRmllbGRzKHRoaXMuYWR2YW5jZWRRdWVyeUNvbmZpZy5maWVsZHMpO1xyXG4gICAgICAgIGxldCBydWxlcyA9IE9iamVjdC5rZXlzKHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHMpXHJcbiAgICAgICAgICAubWFwKGZpZWxkS2V5ID0+IHsgXHJcbiAgICAgICAgICAgIGxldCBkZWZhdWx0T3BlcmF0b3IgPSB0aGlzLmRlZmF1bHRPcGVyYXRvcnMuZmluZChvcGVyYXRvciA9PiBvcGVyYXRvci5xYmZpbHRlckZpZWxkSWQgPT0gdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uaWQgJiYgb3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3IgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGZpZWxkS2V5LCBcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkc1tmaWVsZEtleV0uZGVmYXVsdFZhbHVlISxcclxuICAgICAgICAgICAgICBvcGVyYXRvcjogZGVmYXVsdE9wZXJhdG9yID8gZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yLnN5bWJvbCA6IG51bGxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgaWYodGhpcy5zdG9yZWRRdWVyeSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5pZCA9PSB0aGlzLmZpbHRlcklkICYmIHRoaXMuc3RvcmVkUXVlcnk/LmJhc2ljUXVlcnlWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2ljUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5LmJhc2ljUXVlcnlWYWx1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzaWNRdWVyeSA9IHtcclxuICAgICAgICAgICAgICBjb25kaXRpb246ICdhbmQnLFxyXG4gICAgICAgICAgICAgIHJ1bGVzOiBydWxlc1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYodGhpcy5zdG9yZWRRdWVyeSAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5pZCA9PSB0aGlzLmZpbHRlcklkICYmIHRoaXMuc3RvcmVkUXVlcnk/LmFkdmFuY2VkUXVlcnlWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5LmFkdmFuY2VkUXVlcnlWYWx1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRRdWVyeSA9IHtcclxuICAgICAgICAgICAgICBjb25kaXRpb246ICdhbmQnLFxyXG4gICAgICAgICAgICAgIHJ1bGVzOiBbXVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnF1ZXJ5Q29uZmlnUmVhZHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaW5pdFF1ZXJ5QnVpbGRlckNvbnRyb2xzKCk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBpbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0aWVzOiBRYkZpbHRlckVudGl0eVtdKSB7XHJcbiAgICBsZXQgZW50aXR5Q29uZmlnQXV4OiBRdWVyeUJ1aWxkZXJDb25maWcgPSB7IGZpZWxkczoge30gfTtcclxuICAgIGxldCBlbnRpdGllc0FycmF5OiBFbnRpdHlNYXBbXSA9IFtdO1xyXG4gICAgZmlsdGVyRW50aXRpZXMubWFwKChlLCBpbmRleCkgPT4ge1xyXG4gICAgICBsZXQgZW50aXR5OiBFbnRpdHkgPSB7IG5hbWU6IGUuanNvbk5hbWUgfTtcclxuICAgICAgcmV0dXJuIGVudGl0aWVzQXJyYXlbaW5kZXhdID0geyBbZS5qc29uTmFtZV06IGVudGl0eSB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGVudGl0aWVzTWFwOiBFbnRpdHlNYXAgPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllc0FycmF5KSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhlbnRpdHkpO1xyXG5cclxuICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgZW50aXRpZXNNYXBba2V5XSA9IGVudGl0eVtrZXldXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZW50aXR5Q29uZmlnQXV4LmVudGl0aWVzID0gZW50aXRpZXNNYXA7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpZWxkczogRmllbGRNYXBbXSA9IFtdO1xyXG4gICAgZmlsdGVyRW50aXRpZXMuZm9yRWFjaCgoZmlsdGVyRW50aXR5KSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWx0ZXJFbnRpdHkuZmllbGRzLmZpbHRlcigoZmlsdGVyRmllbGQ6IEZpbHRlckZpZWxkKSA9PiB7XHJcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBmaWVsZHMubGVuZ3RoID8/IDA7XHJcbiAgICAgICAgbGV0IG9wZXJhdG9yc0ZsYXRBcnJheSA9IGZpbHRlckZpZWxkLm9wZXJhdG9ycy5tYXAoKG86YW55KSA9PiBvLnN5bWJvbCk7XHJcbiAgICAgICAgbGV0IGRlZmF1bHRPcGVyYXRvciA9IHRoaXMuZGVmYXVsdE9wZXJhdG9ycy5maW5kKG9wZXJhdG9yID0+IG9wZXJhdG9yLnFiZmlsdGVyRmllbGRJZCA9PSBmaWx0ZXJGaWVsZC5pZCk7XHJcbiAgICAgICAgbGV0IGZpZWxkOiBGaWVsZCA9IHtcclxuICAgICAgICAgIGlkOiBmaWx0ZXJGaWVsZC5pZCxcclxuICAgICAgICAgIG5hbWU6IGZpbHRlckZpZWxkLm5hbWUsXHJcbiAgICAgICAgICBvcGVyYXRvcnM6IGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvcj8uc3ltYm9sID8gdGhpcy5tb3ZlRWxlbWVudFRvRmlyc3RQbGFjZShvcGVyYXRvcnNGbGF0QXJyYXksIGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvcj8uc3ltYm9sKSA6IG9wZXJhdG9yc0ZsYXRBcnJheSxcclxuICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0RGF0YVR5cGUoZmlsdGVyRmllbGQuZGF0YVR5cGUpLFxyXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZvcm1hdERlZmF1bHRWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZXMuZmluZCh2YWx1ZSA9PiB2YWx1ZS5xYmZpbHRlckZpZWxkSWQgPT0gZmlsdGVyRmllbGQuaWQpLmRlZmF1bHRWYWx1ZSwgZmlsdGVyRmllbGQuZGF0YVR5cGUpLFxyXG4gICAgICAgICAgZGVmYXVsdE9wZXJhdG9yOiBkZWZhdWx0T3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3I/LnN5bWJvbCxcclxuICAgICAgICAgIGVudGl0eTogZmlsdGVyRW50aXR5Lmpzb25OYW1lLFxyXG4gICAgICAgICAgb3B0aW9uczogZmlsdGVyRmllbGQubGlzdE9mVmFsdWVzLFxyXG4gICAgICAgICAgdmFsaWRhdG9yOiAocnVsZTogUnVsZSwgcGFyZW50OiBSdWxlU2V0KTogYW55IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChydWxlLm9wZXJhdG9yICE9PSBcImlzIG51bGxcIiAmJiBydWxlLm9wZXJhdG9yICE9PSBcImlzIG5vdCBudWxsXCIpIHtcclxuICAgICAgICAgICAgICBpZiAocnVsZS52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHJ1bGUudmFsdWUgPT09IG51bGwgfHwgcnVsZS52YWx1ZSA9PT0gJycgfHwgcnVsZS52YWx1ZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6ICdlbXB0eSBmaWVsZCcgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZW50aXRpZXMucHVzaCh7ZmllbGRKc29uTmFtZTogZmlsdGVyRmllbGQuanNvbk5hbWUsIGVudGl0eTogZmllbGQuZW50aXR5fSk7XHJcbiAgICAgICAgZmllbGRzW2luZGV4XSA9IHsgW2ZpbHRlckZpZWxkLmpzb25OYW1lXTogZmllbGQgfTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgZmllbGRzTWFwOiBGaWVsZE1hcCA9IHt9O1xyXG5cclxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaWVsZCk7XHJcbiAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGZpZWxkc01hcFtrZXldID0gZmllbGRba2V5XTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBlbnRpdHlDb25maWdBdXguZmllbGRzID0gZmllbGRzTWFwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVudGl0eUNvbmZpZ0F1eDtcclxuICB9XHJcblxyXG4gIGZpbHRlckZpZWxkc0J5SWQoZmllbGRzT2JqOiBhbnksIGlkQXJyYXk6IG51bWJlcltdKTogYW55IHtcclxuICAgIGNvbnN0IGZpbHRlcmVkRmllbGRzOiBhbnkgPSB7fTtcclxuICAgIFxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzT2JqLmZpZWxkcykge1xyXG4gICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc09iai5maWVsZHNba2V5XTtcclxuICAgICAgaWYgKGlkQXJyYXkuaW5jbHVkZXMoZmllbGQuaWQpKSB7XHJcbiAgICAgICAgZmlsdGVyZWRGaWVsZHNba2V5XSA9IGZpZWxkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmZpZWxkc09iaixcclxuICAgICAgZmllbGRzOiBmaWx0ZXJlZEZpZWxkcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVGaWVsZHMoZmllbGRzOiBGaWVsZE1hcCkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmllbGRzKSB7XHJcbiAgICAgIGlmIChmaWVsZHMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGZpZWxkc1trZXldLmZpZWxkID0ga2V5O1xyXG4gICAgICAgIGZpZWxkc1trZXldLm5hbWUgPSB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkcztcclxuICB9XHJcblxyXG4gIG1vdmVFbGVtZW50VG9GaXJzdFBsYWNlKGFycmF5OiBhbnlbXSwgZWxlbWVudFRvRmlyc3RQbGFjZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IGFycmF5LmluZGV4T2YoZWxlbWVudFRvRmlyc3RQbGFjZSk7XHJcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgIGFycmF5LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGFycmF5LnVuc2hpZnQoZWxlbWVudFRvRmlyc3RQbGFjZSk7IFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGVmYXVsdFZhbHVlKHZhbHVlOiBhbnksIHR5cGU6IFFCRGF0YVR5cGVFbnVtKSB7XHJcbiAgICBpZih2YWx1ZSkge1xyXG4gICAgICBpZih0eXBlID09IFFCRGF0YVR5cGVFbnVtLkJvb2xlYW4pIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5OdW1iZXIgfHwgdHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLkRlY2ltYWwgfHwgdHlwZSA9PSB0aGlzLnFiRGF0YVR5cGVFbnVtLkxpc3Qpe1xyXG4gICAgICAgIHJldHVybiBOdW1iZXIodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YVR5cGUoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMucWJEYXRhRW51bXMuZmluZCh2YWx1ZSA9PiB2YWx1ZSA9PT0gaWQpPy50b1N0cmluZygpID8/IFwiXCI7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWVsZHNXaXRob3V0VmFsdWUoanNvbjogYW55KSB7XHJcbiAgICBpZiAoanNvbi5iYXNpYyAmJiBqc29uLmJhc2ljLnJ1bGVzKSB7XHJcbiAgICAgIGpzb24uYmFzaWMucnVsZXMgPSBqc29uLmJhc2ljLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnZhbHVlICE9IG51bGwpO1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzID0ganNvbi5iYXNpYy5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS52YWx1ZSAhPSB1bmRlZmluZWQpO1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzID0ganNvbi5iYXNpYy5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS52YWx1ZSAhPT0gXCJcIik7XHJcbiAgICB9XHJcbiAgICBpZihqc29uLmFkdmFuY2VkICYmIGpzb24uYWR2YW5jZWQucnVsZXM/Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIGpzb24uYWR2YW5jZWQucnVsZXMgPSBqc29uLmFkdmFuY2VkLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnJ1bGVzPy5sZW5ndGggIT0gMCk7XHJcbiAgICB9XHJcbiAgICBpZihqc29uLmdyb3VwZWQgJiYganNvbi5ncm91cGVkPy5ydWxlcy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBqc29uLmdyb3VwZWQucnVsZXMgPSBqc29uLmdyb3VwZWQucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUucnVsZXM/Lmxlbmd0aCAhPSAwKTtcclxuICAgIH1cclxuICAgIGlmKGpzb24uZ3JvdXBlZCAmJiBqc29uLmdyb3VwZWQ/LnJ1bGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIGpzb24uZ3JvdXBlZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ganNvbjtcclxuICB9XHJcbiAgXHJcbiAgaW5pdGlhbGl6ZU9wZXJhdG9ycyhqc29uOiBhbnkpIHtcclxuICAgIGlmIChqc29uLmJhc2ljICYmIGpzb24uYmFzaWMucnVsZXMpIHtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcy5mb3JFYWNoKChydWxlOmFueSkgPT4ge1xyXG4gICAgICAgIGlmKCFydWxlLm9wZXJhdG9yKSB7XHJcbiAgICAgICAgICBydWxlLm9wZXJhdG9yID0gXCI9XCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBqc29uO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRCYXNpY1F1ZXJ5VmFsdWVzKCkge1xyXG4gICAgdGhpcy5iYXNpY1F1ZXJ5LnJ1bGVzLmZvckVhY2goKHJ1bGU6IFJ1bGUpID0+IHtcclxuICAgICAgaWYocnVsZS52YWx1ZSB8fCBydWxlLnZhbHVlID09IDApe1xyXG4gICAgICAgIHJ1bGUudmFsdWUgPSBudWxsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UXVlcnlGaWVsZE5hbWUoZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkczogRmllbGRNYXApIHtcclxuICAgIGNvbnN0IGZpZWxkRW50cnkgPSBPYmplY3Qua2V5cyhmaWVsZHMpLmZpbmQoa2V5ID0+IGZpZWxkc1trZXldLmZpZWxkID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIHJldHVybiBmaWVsZEVudHJ5ICYmIGZpZWxkc1tmaWVsZEVudHJ5XS5uYW1lID8gZmllbGRzW2ZpZWxkRW50cnldLm5hbWUgOiBmaWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICBmaWVsZElzQm9vbGVhbihmaWVsZE5hbWU6IHN0cmluZywgZmllbGRzOiBGaWVsZE1hcCkge1xyXG4gICAgY29uc3QgZmllbGRFbnRyeSA9IE9iamVjdC5rZXlzKGZpZWxkcykuZmluZChrZXkgPT4gZmllbGRzW2tleV0uZmllbGQgPT09IGZpZWxkTmFtZSk7XHJcblxyXG4gICAgcmV0dXJuIGZpZWxkc1tmaWVsZEVudHJ5IV0udHlwZSA9PSBRQkRhdGFUeXBlRW51bS5Cb29sZWFuLnRvU3RyaW5nKCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8IS0tIFRPRE86IEludGVudGFyIG90cmEgdmV6IHBhc2FyIGxvcyBjb21wb25lbnRlcyBhIGxvcyBkZSB3LSBwb3JxdWUgbm8gc2UgYWxpbmVuYSB5IGVsIHctZWRpdC1zZWxlY3Qgbm8gdmEgYmllbiBlbiBmaWVsZC4gXHJcbiAgQWhvcmEgc2UgY29uc2VydmFuIGxvcyBkZSBwLXcgY29uIGVzdGlsb3MuIC0tPlxyXG48ZGl2ICpuZ0lmPVwicXVlcnlDb25maWdSZWFkeVwiIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtc3R5bGVzXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWZpbHRlclBhbmVsT2JqZWN0LmFsbG93QWR2YW5jZWRTZWFyY2g7IGVsc2UgYmFpc2NBbmRBZHZhbmNlZFwiPlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ3ctZmlsdGVyLXBhbmVsLWNvbnRhaW5lci1hZHZhbmNlZCcgOiBpc0FkdmFuY2VkU2VhcmNoLCAndy1maWx0ZXItcGFuZWwtY29udGFpbmVyLWJhc2ljJyA6ICFpc0FkdmFuY2VkU2VhcmNoIH1cIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYmFzaWNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGJ1dHRvbi1nYXBcIj5cclxuICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmNsZWFyQnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJvbkNsZWFyQ2xpY2tlZCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LnNlYXJjaEJ1dHRvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjYmFpc2NBbmRBZHZhbmNlZD5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYWR2YW5jZWQnIDogaXNBZHZhbmNlZFNlYXJjaCwgJ3ctZmlsdGVyLXBhbmVsLWNvbnRhaW5lci1iYXNpYycgOiAhaXNBZHZhbmNlZFNlYXJjaCB9XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzQWR2YW5jZWRTZWFyY2g7IGVsc2UgYWR2YW5jZWRWaWV3XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNpY1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2FkdmFuY2VkVmlldz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFkdmFuY2VkXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYnV0dG9uLWdhcFwiIFtjbGFzcy5wdC0zXT1cImlzQWR2YW5jZWRTZWFyY2hcIj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuY2xlYXJCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uQ2xlYXJDbGlja2VkKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5zZWFyY2hCdXR0b25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCIgW2xvYWRpbmddPVwiZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvblwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2Jhc2ljPlxyXG4gICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93QWR2YW5jZWRTZWFyY2hcIiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2hUYWJMYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgKG9uQ2xpY2spPVwidXBkYXRlU2VhcmNoVHlwZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljIHF1ZXJ5LWJ1aWxkZXItc3R5bGUgZmFkZWluIGFuaW1hdGlvbi1kdXJhdGlvbi01MDBcIj5cclxuICAgICAgPHF1ZXJ5LWJ1aWxkZXIgW2Zvcm1Db250cm9sXT0ncXVlcnlDdHJsJyBbY29uZmlnXT0nYmFzaWNRdWVyeUNvbmZpZycgW2FsbG93UnVsZXNldF09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldCcgW2FsbG93UnVsZXNldF09XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBbcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZV09J3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2UnPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QnV0dG9uR3JvdXA9XCJsZXQgcnVsZXNldDtcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlSZW1vdmVCdXR0b249XCJsZXQgcnVsZTsgbGV0IHJlbW92ZVJ1bGU9cmVtb3ZlUnVsZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVN3aXRjaEdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUVudGl0eT1cImxldCBydWxlOyBsZXQgZW50aXRpZXM9ZW50aXRpZXM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPHAtZHJvcGRvd24gW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cIiB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgKm5nSWY9XCJmYWxzZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImVudGl0aWVzXCIgWyhuZ01vZGVsKV09XCJydWxlLmVudGl0eVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUZpZWxkPVwibGV0IHJ1bGU7IGxldCBmaWVsZHM9ZmllbGRzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2U7IGxldCBnZXRGaWVsZHMgPSBnZXRGaWVsZHM7IGxldCB2YWx1ZT12YWx1ZTsgbGV0IG5hbWU9bmFtZTsgbGV0IGluZGV4PWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gYXBwZW5kVG89XCJib2R5XCIgY2xhc3M9XCJ3LTQgdGV4dC1sZWZ0IHctZmlsdGVyLXBhbmVsLWlucHV0LXRleHQtbGFiZWxcIiBbY2xhc3Mudy1maWx0ZXItcGFuZWwtYm9vbGVhbi1sYWJlbC13aWR0aF09XCJmaWVsZElzQm9vbGVhbihydWxlLmZpZWxkLCBnZXRGaWVsZHMocnVsZS5lbnRpdHkpKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj57eyBnZXRRdWVyeUZpZWxkTmFtZShydWxlLmZpZWxkLCBnZXRGaWVsZHMocnVsZS5lbnRpdHkpKX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeU9wZXJhdG9yPVwibGV0IHJ1bGU7IGxldCBvcGVyYXRvcnM9b3BlcmF0b3JzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLW9wZXJhdG9yLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCIgdy1lZGl0LXNlbGVjdC1zbWFsbFwiICpuZ0lmPVwiaXNBZHZhbmNlZFNlYXJjaFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICA8dy10b2dnbGUtYnV0dG9uIHNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIG9uTGFiZWw9XCJUcnVlXCIgb2ZmTGFiZWw9XCJGYWxzZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIj48L3ctdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EYXRldGltZS50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHctZWRpdC1jYWxlbmRhciBhcHBlbmRUbz1cImJvZHlcIiBzaXplPVwic21hbGxcIiBbc2hvd0ljb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAob25DaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kYXRldGltZVwiIFtkaXNwbGF5SW5saW5lQmxvY2tdPVwidHJ1ZVwiPjwvdy1lZGl0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EZWNpbWFsLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiIHctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgbW9kZT1cImRlY2ltYWxcIiBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCI1XCIgW21pbl09XCIwXCIgW21heF09XCIxMDBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGVjaW1hbFwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5MaXN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cIiB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVtYmVyLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCIgdy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBbbWluXT1cIjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubnVtYmVyXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLlRleHQudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCIgdy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCB3LWVkaXQtaW5wdXQtdGV4dC1zbWFsbC1oZWlnaHQgdy1lZGl0LWlucHV0LXRleHQtc21hbGxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLnRleHRcIi8+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3QgW2FwcGVuZFRvXT1cIidib2R5J1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIGRpc3BsYXk9XCJjaGlwXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3F1ZXJ5LWJ1aWxkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQWR2YW5jZWRTZWFyY2ggJiYgYmFzaWNRdWVyeS5ydWxlcy5sZW5ndGg9PTBcIiA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1F1ZXJ5RGF0YVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWR2YW5jZWQ+XHJcbiAgICA8ZGl2IFtjbGFzcy5xdWVyeS1idWlsZGVyLXN0eWxlXT1cIiFmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXRcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLWNvbnRhaW5lciBmYWRlaW4gYW5pbWF0aW9uLWR1cmF0aW9uLTUwMFwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwibWItMlwiIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYmFzaWNTZWFyY2hUYWJMYWJlbFwiIHR5cGU9XCJ0ZXh0XCIgKG9uQ2xpY2spPVwidXBkYXRlU2VhcmNoVHlwZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxxdWVyeS1idWlsZGVyIFtmb3JtQ29udHJvbF09J2FkdmFuY2VkUXVlcnlDdHJsJyBbY29uZmlnXT0nYWR2YW5jZWRRdWVyeUNvbmZpZycgW2FsbG93UnVsZXNldF09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldCcgW2FsbG93Q29sbGFwc2VdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0NvbGFwc2UnIFthbGxvd1J1bGVzZXRdPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgW3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2VdPSdwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlJz5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQ7IGVsc2Ugbm9SdWxlU2V0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QnV0dG9uR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IGFkZFJ1bGU9YWRkUnVsZTsgbGV0IGFkZFJ1bGVTZXQ9YWRkUnVsZVNldDsgbGV0IHJlbW92ZVJ1bGVTZXQ9cmVtb3ZlUnVsZVNldFwiPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwibXItMlwiIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZUJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cImFkZFJ1bGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gY2xhc3M9XCJtci0yXCIgW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpIHBpLXBsdXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cImFkZFJ1bGVTZXRcIiAob25DbGljayk9XCJhZGRSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwibXItMlwiIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2gucmVtb3ZlUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgaWNvbj1cInBpIHBpLW1pbnVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJyZW1vdmVSdWxlU2V0XCIgKG9uQ2xpY2spPVwicmVtb3ZlUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI25vUnVsZVNldD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlCdXR0b25Hcm91cD1cImxldCBydWxlc2V0OyBsZXQgYWRkUnVsZT1hZGRSdWxlOyBsZXQgYWRkUnVsZVNldD1hZGRSdWxlU2V0OyBsZXQgcmVtb3ZlUnVsZVNldD1yZW1vdmVSdWxlU2V0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmJhc2ljU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZhbmNlZC1xdWVyeS1idXR0b24tZ3JvdXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJhZGRSdWxlKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIGljb249XCJwaSBwaS1wbHVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJhZGRSdWxlU2V0XCIgKG9uQ2xpY2spPVwiYWRkUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLnJlbW92ZVJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS1taW51c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwicmVtb3ZlUnVsZVNldFwiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUFycm93SWNvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1hbmdsZS1yaWdodFwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0XCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVJlbW92ZUJ1dHRvbj1cImxldCBydWxlOyBsZXQgcmVtb3ZlUnVsZT1yZW1vdmVSdWxlXCI+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIlwiIGxhYmVsPVwiXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInRlcnRpYXJ5XCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgKG9uQ2xpY2spPVwicmVtb3ZlUnVsZShydWxlKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVN3aXRjaEdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicnVsZXNldFwiIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtc3dpdGNoLWdyb3VwLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICA8dy1zZWxlY3QtYnV0dG9uICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dMb2dpY2FsUnVsZVwiIFtzdGF0ZU9wdGlvbnNdPVwiW3tsYWJlbDogJ0FuZCcsIHZhbHVlOiAnYW5kJ30sIHtsYWJlbDogJ09yJywgdmFsdWU6ICdvcid9XVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJ1bGVzZXQuY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIidzbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlKT1cInJ1bGVzZXQuY29uZGl0aW9uID0gJGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgPC93LXNlbGVjdC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlFbnRpdHk9XCJsZXQgcnVsZTsgbGV0IGVudGl0aWVzPWVudGl0aWVzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmVuaXR5TW9kZVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJlbnRpdGllc1wiIFsobmdNb2RlbCldPVwicnVsZS5lbnRpdHlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RmllbGQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkcz1maWVsZHM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZTsgbGV0IGdldEZpZWxkcyA9IGdldEZpZWxkc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItZmllbGQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZ2V0RmllbGRzKHJ1bGUuZW50aXR5KVwiIFsobmdNb2RlbCldPVwicnVsZS5maWVsZFwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeU9wZXJhdG9yPVwibGV0IHJ1bGU7IGxldCBvcGVyYXRvcnM9b3BlcmF0b3JzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLW9wZXJhdG9yLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDx3LXRvZ2dsZS1idXR0b24gY2xhc3M9XCJmaWVsZC1nYXAgdG9nZ2xlLWJ1dHRvbi1hbGlnblwiIHNpemU9XCJzbWFsbFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIG9uTGFiZWw9XCJUcnVlXCIgb2ZmTGFiZWw9XCJGYWxzZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIj48L3ctdG9nZ2xlLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGF0ZXRpbWUudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDx3LWVkaXQtY2FsZW5kYXIgY2xhc3M9XCJmaWVsZC1nYXBcIiBhcHBlbmRUbz1cImJvZHlcIiBzaXplPVwic21hbGxcIiBbc2hvd0ljb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAob25DaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtzaG93VGltZV09XCJ0cnVlXCIgW3Nob3dTZWNvbmRzXT1cInRydWVcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kYXRldGltZVwiIFtkaXNwbGF5SW5saW5lQmxvY2tdPVwidHJ1ZVwiPjwvdy1lZGl0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGVjaW1hbC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBtb2RlPVwiZGVjaW1hbFwiIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjVcIiBbbWluXT1cIjBcIiBbbWF4XT1cIjEwMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5kZWNpbWFsXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5MaXN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgb3B0aW9ucz1vcHRpb25zOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5MaXN0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggZmllbGQtZ2FwXCI+XHJcbiAgICAgICAgICAgICAgPHctbGlzdC1maWVsZCBbb3B0aW9uc109XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgW29wZXJhdG9yXT1cInJ1bGUub3BlcmF0b3JcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvdy1saXN0LWZpZWxkPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVtYmVyLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIFttaW5dPVwiMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5udW1iZXJcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uVGV4dC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZmllbGQtZ2FwIHF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggdy1lZGl0LWlucHV0LXRleHQtc21hbGwtaGVpZ2h0IHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvcXVlcnktYnVpbGRlcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FkdmFuY2VkU2VhcmNoICYmIGFkdmFuY2VkUXVlcnkucnVsZXMubGVuZ3RoPT0wXCIgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1F1ZXJ5RGF0YVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDwhLS0gR3JvdXBlZCBmaWx0ZXIgLS0+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0dyb3VwZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHktNVwiPlxyXG4gICAgICAgICAgPHctdmlldy1jYXJkLXRpdGxlLXRleHQgW2NhcmRUaXRsZV09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZ3JvdXBlZEZpbHRlclRpdGxlXCI+PC93LXZpZXctY2FyZC10aXRsZS10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8cXVlcnktYnVpbGRlciBbZm9ybUNvbnRyb2xdPSdncm91cGVkUXVlcnlDdHJsJyBbY29uZmlnXT0nYWR2YW5jZWRRdWVyeUNvbmZpZycgW2FsbG93UnVsZXNldF09J2ZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldCcgW2FsbG93Q29sbGFwc2VdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0NvbGFwc2UnIFthbGxvd1J1bGVzZXRdPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgW3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2VdPSdwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlJz5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QnV0dG9uR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IGFkZFJ1bGU9YWRkUnVsZTsgbGV0IGFkZFJ1bGVTZXQ9YWRkUnVsZVNldDsgbGV0IHJlbW92ZVJ1bGVTZXQ9cmVtb3ZlUnVsZVNldFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMyBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZUJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cImFkZFJ1bGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIGljb249XCJwaSBwaS1wbHVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJhZGRSdWxlU2V0XCIgKG9uQ2xpY2spPVwiYWRkUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5yZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktbWludXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cInJlbW92ZVJ1bGVTZXRcIiAob25DbGljayk9XCJyZW1vdmVSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QXJyb3dJY29uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWFuZ2xlLXJpZ2h0XCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLXRleHRcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5UmVtb3ZlQnV0dG9uPVwibGV0IHJ1bGU7IGxldCByZW1vdmVSdWxlPXJlbW92ZVJ1bGVcIj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwiXCIgbGFiZWw9XCJcIiBzaXplPVwic21hbGxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktdGltZXNcIiAob25DbGljayk9XCJyZW1vdmVSdWxlKHJ1bGUpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5U3dpdGNoR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJydWxlc2V0XCI+XHJcbiAgICAgICAgICAgICAgPHctc2VsZWN0LWJ1dHRvbiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93TG9naWNhbFJ1bGVcIiBbc3RhdGVPcHRpb25zXT1cIlt7bGFiZWw6ICdBbmQnLCB2YWx1ZTogJ2FuZCd9LCB7bGFiZWw6ICdPcicsIHZhbHVlOiAnb3InfV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlc2V0LmNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSk9XCJydWxlc2V0LmNvbmRpdGlvbiA9ICRldmVudFwiPlxyXG4gICAgICAgICAgICAgIDwvdy1zZWxlY3QtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RW50aXR5PVwibGV0IHJ1bGU7IGxldCBlbnRpdGllcz1lbnRpdGllczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwibXItMyB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5lbml0eU1vZGVcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJlbnRpdGllc1wiIFsobmdNb2RlbCldPVwicnVsZS5lbnRpdHlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RmllbGQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkcz1maWVsZHM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZTsgbGV0IGdldEZpZWxkcyA9IGdldEZpZWxkc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItZmllbGQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cIm1yLTMgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldEZpZWxkcyhydWxlLmVudGl0eSlcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZmllbGRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwibXItMyB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJydWxlLm9wZXJhdG9yXCIgW29wdGlvbnNdPVwib3BlcmF0b3JzXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UocnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHctdG9nZ2xlLWJ1dHRvbiBjbGFzcz1cIm1yLTNcIiBzaXplPVwic21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBvbkxhYmVsPVwiVHJ1ZVwiIG9mZkxhYmVsPVwiRmFsc2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCI+PC93LXRvZ2dsZS1idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRhdGV0aW1lLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dy1lZGl0LWNhbGVuZGFyIGNsYXNzPVwiZmllbGQtZ2FwXCIgYXBwZW5kVG89XCJib2R5XCIgc2l6ZT1cInNtYWxsXCIgW3Nob3dJY29uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGF0ZXRpbWVcIiBbZGlzcGxheUlubGluZUJsb2NrXT1cInRydWVcIj48L3ctZWRpdC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRlY2ltYWwudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGNsYXNzPVwibXItM1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgbW9kZT1cImRlY2ltYWxcIiBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCI1XCIgW21pbl09XCIwXCIgW21heF09XCIxMDBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGVjaW1hbFwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHctbGlzdC1maWVsZCBbb3B0aW9uc109XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgW29wZXJhdG9yXT1cInJ1bGUub3BlcmF0b3JcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubGlzdFwiPjwvdy1saXN0LWZpZWxkPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uTnVtYmVyLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIFttaW5dPVwiMFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy5udW1iZXJcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uVGV4dC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwibXItMyBxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsLWhlaWdodCB3YXBwLWlucHV0XCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvcXVlcnktYnVpbGRlcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWR2YW5jZWRTZWFyY2ggJiYgZ3JvdXBlZFF1ZXJ5LnJ1bGVzLmxlbmd0aD09MFwiID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub1F1ZXJ5RGF0YVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9RdWVyeURhdGE+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtd3JhcCBjYXJkLWNvbnRhaW5lciBzdXJmYWNlLTUwIG1iLTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy1mdWxsIGgtNHJlbSB0ZXh0LWdyYXktOTAwIGJvcmRlci1yb3VuZCBtLTJcIj5cclxuICAgICAgICB7e3RyYW5zbGF0aW9uc09iamVjdC5ub1J1bGVzTGFiZWx9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1maWx0ZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWlzYy93LWZpbHRlci1wYW5lbC93LWZpbHRlci1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93YXBwLWNvbXBvbmVudHMvc3JjL2xpYi9taXNjL3ctZmlsdGVyLXBhbmVsL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSWpFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZckcsTUFBTSxPQUFPLHFCQUFxQjtJQWdGaEMsWUFDVSxXQUF3QixFQUN4QixVQUFzQixFQUN0QixZQUFpQztRQUZqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQS9FcEMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBRWxELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRzVDLGVBQVUsR0FBUTtZQUNoQixTQUFTLEVBQUUsS0FBSztZQUNoQixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFDRixpQkFBWSxHQUFRO1lBQ2xCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztRQUNGLGtCQUFhLEdBQVE7WUFDbkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO1FBRUYsd0JBQW1CLEdBQXVCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3pELGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIscUJBQWdCLEdBQVUsRUFBRSxDQUFDO1FBQzdCLGdCQUFXLEdBQTJCLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQU85Qyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFFbEQsdUJBQWtCLEdBQTRCO1lBQ3pFLG1CQUFtQixFQUFFLGNBQWM7WUFDbkMsc0JBQXNCLEVBQUUsaUJBQWlCO1lBQ3pDLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxjQUFjLEVBQUU7Z0JBQ2QsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixrQkFBa0IsRUFBRSxZQUFZO2dCQUNoQyxxQkFBcUIsRUFBRSxnQkFBZ0I7Z0JBQ3ZDLHdCQUF3QixFQUFFLGlCQUFpQjthQUM1QztZQUNELFlBQVksRUFBRSxtQ0FBbUM7WUFDakQsaUJBQWlCLEVBQUUsT0FBTztZQUMxQixnQkFBZ0IsRUFBRSxPQUFPO1lBQ3pCLGtCQUFrQixFQUFFO2dCQUNsQixPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLE1BQU07b0JBQ1osS0FBSyxFQUFFLE9BQU87aUJBQ2pCO2dCQUNELE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLElBQUksRUFBRSxhQUFhO2dCQUNuQixRQUFRLEVBQUUsZUFBZTthQUMxQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUMsVUFBVTthQUNwQjtZQUNELE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLE9BQU8sRUFBRSxTQUFTO2FBQ25CO1NBQ0YsQ0FBQztRQUV1QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQ2xELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVuRSxpQkFBWSxHQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBTWpMLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRTtZQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksT0FBTyxHQUFpQjtZQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQzdFLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUN4RixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUM5SCxDQUFBO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QixPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLElBQUksV0FBVyxHQUEyQjtZQUN4QyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDakIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQzlCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxRQUFRO1lBQ3BDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPO1NBQ25DLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXZELE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUcvQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQXFCO1FBQzFDLElBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsRSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtTQUNqQjtRQUNELElBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUM1RCxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtTQUNqQjtRQUNELElBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNoRSxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQTtTQUNqQjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUM7U0FDOUI7YUFBTTtZQUNMLElBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUU7Z0JBQ3hELE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQTthQUMvQjtpQkFBTTtnQkFDTCxPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUM7YUFDakM7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsT0FBcUI7UUFDN0IsSUFBRyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRTtZQUMvQyxPQUFPLENBQUMsS0FBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFLLEVBQUUsRUFBRTtnQkFDeEQsT0FBTztvQkFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO29CQUNwQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7b0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTtpQkFDbkUsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDN0gsU0FBUyxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUM7WUFDdkMsSUFBSSxjQUFjLEdBQWEsYUFBYSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzFKLElBQUksaUJBQWlCLEdBQWEsYUFBYSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDOUosSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDcEUsT0FBTztvQkFDTCxlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWU7b0JBQzdDLFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWTtpQkFDeEMsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUN2RSxPQUFPO29CQUNMLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZTtvQkFDN0MsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLGlCQUFpQjtpQkFDbEQsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxZQUFZLEdBQXFCLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUNwRixPQUFPO29CQUNMLEVBQUUsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFO29CQUNoRCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7b0JBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJO29CQUNwRCxRQUFRLEVBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsUUFBUTtvQkFDNUQsTUFBTSxFQUFFLEVBQUU7aUJBQ1gsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxZQUFZLEdBQWtCLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFGLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFzQixFQUFFLEtBQWEsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBRTtZQUN4QyxDQUFDLENBQUMsQ0FBQTtZQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7aUJBQ2xELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDZCxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQzFLLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBYTtvQkFDM0QsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSTtpQkFDNUUsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUU7Z0JBQ2pHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7YUFDcEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRztvQkFDaEIsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLEtBQUssRUFBRSxLQUFLO2lCQUNiLENBQUM7YUFDSDtZQUNELElBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQ3BHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQzthQUMxRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxHQUFHO29CQUNuQixTQUFTLEVBQUUsS0FBSztvQkFDaEIsS0FBSyxFQUFFLEVBQUU7aUJBQ1YsQ0FBQzthQUNIO1lBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxjQUFnQztRQUMvQyxJQUFJLGVBQWUsR0FBdUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDekQsSUFBSSxhQUFhLEdBQWdCLEVBQUUsQ0FBQztRQUNwQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxHQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLEdBQWMsRUFBRSxDQUFDO1FBRWhDLEtBQUssTUFBTSxNQUFNLElBQUksYUFBYSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDakIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUVILGVBQWUsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxNQUFNLEdBQWUsRUFBRSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN0QyxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO2dCQUM3RCxJQUFJLEtBQUssR0FBVyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pHLElBQUksS0FBSyxHQUFVO29CQUNqQixFQUFFLEVBQUUsV0FBVyxDQUFDLEVBQUU7b0JBQ2xCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtvQkFDdEIsU0FBUyxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtvQkFDdkssSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztvQkFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDO29CQUNuSixlQUFlLEVBQUUsZUFBZSxDQUFDLGlCQUFpQixFQUFFLE1BQU07b0JBQzFELE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUTtvQkFDN0IsT0FBTyxFQUFFLFdBQVcsQ0FBQyxZQUFZO29CQUNqQyxTQUFTLEVBQUUsQ0FBQyxJQUFVLEVBQUUsTUFBZSxFQUFjLEVBQUU7d0JBQ3JELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxhQUFhLEVBQUU7NEJBQ2xFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dDQUNsRyxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDOzZCQUNwQzt5QkFDRjt3QkFDRCxPQUFPLElBQUksQ0FBQztvQkFDZCxDQUFDO2lCQUNGLENBQUE7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7Z0JBQ2hGLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsR0FBYSxFQUFFLENBQUM7UUFFN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNqQixTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1lBRUgsZUFBZSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDcEM7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBYyxFQUFFLE9BQWlCO1FBQ2hELE1BQU0sY0FBYyxHQUFRLEVBQUUsQ0FBQztRQUUvQixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUM5QixjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzdCO1NBQ0Y7UUFFRCxPQUFPO1lBQ0wsR0FBRyxTQUFTO1lBQ1osTUFBTSxFQUFFLGNBQWM7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBZ0I7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBWSxFQUFFLG1CQUEyQjtRQUMvRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakQsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVSxFQUFFLElBQW9CO1FBQ2pELElBQUcsS0FBSyxFQUFFO1lBQ1IsSUFBRyxJQUFJLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtnQkFDakMsT0FBTyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDO2FBQ3ZDO1lBQ0QsSUFBRyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBQztnQkFDL0csT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEI7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFTO1FBQ2hDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztTQUM5RTtRQUNELElBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUY7UUFDRCxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsSUFBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFTO1FBQzNCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtnQkFDcEMsSUFBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO2lCQUNyQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7WUFDM0MsSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsTUFBZ0I7UUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRixDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsTUFBZ0I7UUFDaEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RixDQUFDOztrSEF0WlUscUJBQXFCO3NHQUFyQixxQkFBcUIsdVpDbEJsQyx1NnZCQWlUQTsyRkQvUmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs2SkFtQ1QsbUJBQW1CO3NCQUFuQyxLQUFLO3VCQUFDLFFBQVE7Z0JBQ1ksZ0JBQWdCO3NCQUExQyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDVCxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1ksZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0wsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNtQix5QkFBeUI7c0JBQTVELEtBQUs7dUJBQUMsMkJBQTJCO2dCQUVMLGtCQUFrQjtzQkFBOUMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBcUNGLGFBQWE7c0JBQXJDLE1BQU07dUJBQUMsZUFBZTtnQkFDQyxZQUFZO3NCQUFuQyxNQUFNO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFFCRGF0YVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9lbnVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFFiUGFuZWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9xYi1wYW5lbC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eU1hcCwgRmllbGQsIEZpZWxkTWFwLCBRdWVyeUJ1aWxkZXJDb25maWcsIFJ1bGUsIFJ1bGVTZXQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2ZpbHRlci1wYW5lbC9maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlclBhbmVsVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLXRyYW5zbGF0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFF1ZXJ5UmVzdWx0VHlwZSwgUXVlcnlSZXN1bHRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcXVlcnktcmVzdWx0cy5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvZmlsdGVyLWZpZWxkLm1vZGVscyc7XHJcbmltcG9ydCB7IFFiRmlsdGVyRW50aXR5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9maWx0ZXItcGFuZWwvcWItZmlsdGVyLWVudGl0eS5tb2RlbCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZS9hcGkvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3N0b3JlZC1maWx0ZXItcGFuZWwtcXVlcnkubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ctZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93LWZpbHRlci1wYW5lbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXRmlsdGVyUGFuZWxDb21wb25lbnQge1xyXG4gIHB1YmxpYyBxdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgYWR2YW5jZWRRdWVyeUN0cmwhOiBGb3JtQ29udHJvbDtcclxuICBwdWJsaWMgZ3JvdXBlZFF1ZXJ5Q3RybCE6IEZvcm1Db250cm9sO1xyXG4gIHB1YmxpYyBwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgcXVlcnlDb25maWdSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQWR2YW5jZWRTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxYkRhdGFUeXBlRW51bSA9IFFCRGF0YVR5cGVFbnVtO1xyXG4gIHFiRGF0YUVudW1zID0gT2JqZWN0LnZhbHVlcyhRQkRhdGFUeXBlRW51bSk7XHJcbiAgYmFzaWNRdWVyeUNvbmZpZyE6IGFueTtcclxuICBhZHZhbmNlZFF1ZXJ5Q29uZmlnITogYW55O1xyXG4gIGJhc2ljUXVlcnk6IGFueSA9IHtcclxuICAgIGNvbmRpdGlvbjogJ2FuZCcsXHJcbiAgICBydWxlczogW11cclxuICB9O1xyXG4gIGdyb3VwZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgYWR2YW5jZWRRdWVyeTogYW55ID0ge1xyXG4gICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgIHJ1bGVzOiBbXVxyXG4gIH07XHJcbiAgZmlsdGVyUGFuZWxPYmplY3QhOiBRYlBhbmVsRmlsdGVyO1xyXG4gIGVudGl0eUNvbmZpZ0dyb3VwZWQ6IFF1ZXJ5QnVpbGRlckNvbmZpZyA9IHsgZmllbGRzOiB7fSB9O1xyXG4gIGVudGl0aWVzOiBhbnlbXSA9IFtdO1xyXG4gIGRlZmF1bHRWYWx1ZXM6IGFueVtdID0gW107XHJcbiAgZGVmYXVsdE9wZXJhdG9yczogYW55W10gPSBbXTtcclxuICBzdG9yZWRRdWVyeTogU3RvcmVkRmlsdGVyUGFuZWxRdWVyeSA9IHRoaXMubG9jYWxTdG9yYWdlLmdldExhc3RGaWx0ZXJQYW5lbFF1ZXJ5KCk7XHJcblxyXG4gIEBJbnB1dCgnYXBpVXJsJykgYXV0aG9yaXphdGlvbkFwaVVybCE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFBcGlVcmwnKSBjb21tb25EYXRhQXBpVXJsITogc3RyaW5nO1xyXG4gIEBJbnB1dCgndG9rZW4nKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2NvbW1vbkRhdGFUb2tlbicpIGNvbW1vbkRhdGFUb2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoJ2ZpbHRlcklkJykgZmlsdGVySWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCdkYXRhSXNMb2FkaW5nU2VhcmNoQnV0dG9uJykgZGF0YUlzTG9hZGluZ1NlYXJjaEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoJ3RyYW5zbGF0aW9uc09iamVjdCcpIHRyYW5zbGF0aW9uc09iamVjdDogRmlsdGVyUGFuZWxUcmFuc2xhdGlvbnMgPSB7XHJcbiAgICBiYXNpY1NlYXJjaFRhYkxhYmVsOiAnQmFzaWMgc2VhcmNoJyxcclxuICAgIGFkdmFuY2VkU2VhcmNoVGFiTGFiZWw6ICdBZHZhbmNlZCBzZWFyY2gnLFxyXG4gICAgZ3JvdXBlZEZpbHRlclRpdGxlOiAnR3JvdXBlZCBmaWx0ZXInLFxyXG4gICAgYWR2YW5jZWRTZWFyY2g6IHtcclxuICAgICAgYW5kQnV0dG9uTGFiZWw6ICdBbmQnLFxyXG4gICAgICBvckJ1dHRvbkxhYmVsOiAnT3InLFxyXG4gICAgICBhZGRSdWxlQnV0dG9uTGFiZWw6ICdBZGQgZmlsdGVyJyxcclxuICAgICAgYWRkUnVsZVNldEJ1dHRvbkxhYmVsOiAnQWRkIGZpbHRlciBzZXQnLFxyXG4gICAgICByZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWw6ICdSZW1vdmUgcnVsZSBzZXQnXHJcbiAgICB9LFxyXG4gICAgbm9SdWxlc0xhYmVsOiAnQWRkIGZpbHRlciBvciBmaWx0ZXIgc2V0IHRvIHN0YXJ0JyxcclxuICAgIHNlYXJjaEJ1dHRvbkxhYmVsOiAnQ2xlYXInLFxyXG4gICAgY2xlYXJCdXR0b25MYWJlbDogJ0NsZWFyJyxcclxuICAgIGZpZWxkc1BsYWNlaG9sZGVyczoge1xyXG4gICAgICBib29sZWFuOiB7XHJcbiAgICAgICAgICB0cnVlOiAnVHJ1ZScsXHJcbiAgICAgICAgICBmYWxzZTogJ0ZhbHNlJ1xyXG4gICAgICB9LFxyXG4gICAgICBkZWNpbWFsOiAnSW5zZXJ0IGRlY2ltYWwgbnVtYmVyJyxcclxuICAgICAgbGlzdDogJ1NlbGVjdCBhbiBvcHRpb24nLFxyXG4gICAgICBudW1iZXI6ICdJbnNlcnQgYSBudW1iZXInLFxyXG4gICAgICB0ZXh0OiAnSW5zZXJ0IHRleHQnLFxyXG4gICAgICBkYXRldGltZTogJ1NlbGVjdCBhIGRhdGUnXHJcbiAgICB9LFxyXG4gICAgb3BlcmF0b3JzOiB7XHJcbiAgICAgIGNvbnRhaW5zOidjb250YWlucydcclxuICAgIH0sXHJcbiAgICBmaWVsZHM6IHtcclxuICAgICAgSWRsZURlYWRsaW5lOiAnSWQnLFxyXG4gICAgICBuYW1lOiAnTmFtZScsXHJcbiAgICAgIGNvZGU6ICdDb2RlJyxcclxuICAgICAgZGVsZXRlOiAnRGVsZXRlZCcsXHJcbiAgICAgIGNvdW50cnk6ICdDb3VudHJ5J1xyXG4gICAgfVxyXG4gIH07XHJcbiAgXHJcbiAgQE91dHB1dCgnc2VhcmNoQ2xpY2tlZCcpIHNlYXJjaENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXJ5UmVzdWx0cz4oKTtcclxuICBAT3V0cHV0KCdjbGVhckNsaWNrZWQnKSBjbGVhckNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgXHJcbiAgc3RhdGVPcHRpb25zOiBhbnlbXSA9IFt7IGxhYmVsOiB0aGlzLnRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hbmRCdXR0b25MYWJlbCwgdmFsdWU6ICdhbmQnIH0sIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLm9yQnV0dG9uTGFiZWwsIHZhbHVlOiAnb3InIH1dO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0UXVlcnlCdWlsZGVyRmlsdGVyUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGluaXRRdWVyeUJ1aWxkZXJDb250cm9scygpIHtcclxuICAgIHRoaXMucXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYmFzaWNRdWVyeSk7XHJcbiAgICB0aGlzLmFkdmFuY2VkUXVlcnlDdHJsID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuYWR2YW5jZWRRdWVyeSk7XHJcbiAgICBpZih0aGlzLmZpbHRlclBhbmVsT2JqZWN0LmFsbG93R3JvdXBlZCkge1xyXG4gICAgICB0aGlzLmdyb3VwZWRRdWVyeUN0cmwgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodGhpcy5ncm91cGVkUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2VhcmNoVHlwZSgpIHtcclxuICAgIHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA9ICF0aGlzLmlzQWR2YW5jZWRTZWFyY2g7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENsaWNrZWQoKSB7XHJcbiAgICBsZXQgcXVlcmllczogUXVlcnlSZXN1bHRzID0ge1xyXG4gICAgICB0eXBlOiB0aGlzLmdldFF1ZXJ5VHlwZSgpLFxyXG4gICAgICBiYXNpYzogdGhpcy5pc0FkdmFuY2VkU2VhcmNoID8gbnVsbCA6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucXVlcnlDdHJsLnZhbHVlKSxcclxuICAgICAgYWR2YW5jZWQ6IHRoaXMuaXNBZHZhbmNlZFNlYXJjaCA/IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuYWR2YW5jZWRRdWVyeUN0cmwudmFsdWUpIDogbnVsbCxcclxuICAgICAgZ3JvdXBlZDogdGhpcy5pc0FkdmFuY2VkU2VhcmNoICYmIHRoaXMuZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cGVkUXVlcnlDdHJsLnZhbHVlKSA6IG51bGxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEVudGl0eShxdWVyaWVzKTtcclxuXHJcbiAgICBxdWVyaWVzID0gdGhpcy5pbml0aWFsaXplT3BlcmF0b3JzKHF1ZXJpZXMpO1xyXG4gICAgXHJcbiAgICBsZXQgc3RvcmVkUXVlcnk6IFN0b3JlZEZpbHRlclBhbmVsUXVlcnkgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmZpbHRlcklkLFxyXG4gICAgICBiYXNpY1F1ZXJ5VmFsdWU6IHF1ZXJpZXMuYmFzaWMsXHJcbiAgICAgIGFkdmFuY2VkUXVlcnlWYWx1ZTogcXVlcmllcy5hZHZhbmNlZCxcclxuICAgICAgZ3JvdXBlZFF1ZXJ5VmFsdWU6IHF1ZXJpZXMuZ3JvdXBlZFxyXG4gICAgfVxyXG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0TGFzdEZpbHRlclBhbmVsUXVlcnkoc3RvcmVkUXVlcnkpO1xyXG4gICAgXHJcbiAgICBxdWVyaWVzID0gdGhpcy5kZWxldGVGaWVsZHNXaXRob3V0VmFsdWUocXVlcmllcyk7XHJcbiAgICBxdWVyaWVzID0gdGhpcy5oYW5kbGVFbXB0eUZpZWxkc1F1ZXJ5KHF1ZXJpZXMpO1xyXG5cclxuXHJcbiAgICB0aGlzLnNlYXJjaENsaWNrZWQuZW1pdChxdWVyaWVzKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJDbGlja2VkKCkge1xyXG4gICAgdGhpcy5yZXNldEJhc2ljUXVlcnlWYWx1ZXMoKTtcclxuICAgIHRoaXMuYWR2YW5jZWRRdWVyeS5ydWxlcyA9IFtdO1xyXG4gICAgdGhpcy5ncm91cGVkUXVlcnkucnVsZXMgPSBbXTtcclxuICAgIHRoaXMuY2xlYXJDbGlja2VkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFbXB0eUZpZWxkc1F1ZXJ5KHF1ZXJpZXM6IFF1ZXJ5UmVzdWx0cyk6IFF1ZXJ5UmVzdWx0cyB7XHJcbiAgICBpZihxdWVyaWVzLmFkdmFuY2VkICE9IG51bGwgJiYgcXVlcmllcy5hZHZhbmNlZD8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgaWYocXVlcmllcy5iYXNpYyAhPSBudWxsICYmIHF1ZXJpZXMuYmFzaWM/LnJ1bGVzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHF1ZXJpZXMudHlwZSA9IDBcclxuICAgIH1cclxuICAgIGlmKHF1ZXJpZXMuZ3JvdXBlZCAhPSBudWxsICYmIHF1ZXJpZXMuZ3JvdXBlZD8ucnVsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgcXVlcmllcy50eXBlID0gMFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHF1ZXJpZXM7XHJcbiAgfVxyXG5cclxuICBnZXRRdWVyeVR5cGUoKTogUXVlcnlSZXN1bHRUeXBlIHtcclxuICAgIGlmKCF0aGlzLmlzQWR2YW5jZWRTZWFyY2gpIHtcclxuICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5CYXNpYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKHRoaXMuaXNBZHZhbmNlZFNlYXJjaCAmJiB0aGlzLmdyb3VwZWRRdWVyeUN0cmw/LnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5Hcm91cGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFF1ZXJ5UmVzdWx0VHlwZS5BZHZhbmNlZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RW50aXR5KHF1ZXJpZXM6IFF1ZXJ5UmVzdWx0cykge1xyXG4gICAgaWYodGhpcy5nZXRRdWVyeVR5cGUoKSA9PSBRdWVyeVJlc3VsdFR5cGUuQmFzaWMpIHtcclxuICAgICAgcXVlcmllcy5iYXNpYyEucnVsZXMgPSBxdWVyaWVzLmJhc2ljIS5ydWxlcy5tYXAoKHI6YW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGZpZWxkOiByLmZpZWxkLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IHIub3BlcmF0b3IsXHJcbiAgICAgICAgICB2YWx1ZTogci52YWx1ZSxcclxuICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdGllcy5maW5kKGUgPT4gZS5maWVsZEpzb25OYW1lID09IHIuZmllbGQpLmVudGl0eVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFF1ZXJ5QnVpbGRlckZpbHRlclBhbmVsKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEZpbHRlclBhbmVsKHRoaXMuYXV0aG9yaXphdGlvbkFwaVVybCwgdGhpcy50b2tlbiwgdGhpcy5jb21tb25EYXRhQXBpVXJsLCB0aGlzLmNvbW1vbkRhdGFUb2tlbiwgdGhpcy5maWx0ZXJJZClcclxuICAgICAgLnN1YnNjcmliZSgocWJQYW5lbEZpbHRlcjogUWJQYW5lbEZpbHRlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUGFuZWxPYmplY3QgPSBxYlBhbmVsRmlsdGVyO1xyXG4gICAgICAgIGxldCBiYXNpY0ZpbHRlcklkczogbnVtYmVyW10gPSBxYlBhbmVsRmlsdGVyLnFicGFuZWxUb0ZpZWxkcy5maWx0ZXIocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5iYXNpYykubWFwKHBhbmVsVG9GaWVsZCA9PiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZElkKTtcclxuICAgICAgICBsZXQgYWR2YW5jZWRGaWx0ZXJJZHM6IG51bWJlcltdID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMuZmlsdGVyKHBhbmVsVG9GaWVsZCA9PiAhcGFuZWxUb0ZpZWxkLmJhc2ljKS5tYXAocGFuZWxUb0ZpZWxkID0+IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkSWQpO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlcyA9IHFiUGFuZWxGaWx0ZXIucWJwYW5lbFRvRmllbGRzLm1hcChwYW5lbFRvRmllbGQgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcWJmaWx0ZXJGaWVsZElkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZElkLFxyXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHBhbmVsVG9GaWVsZC5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdE9wZXJhdG9ycyA9IHFiUGFuZWxGaWx0ZXIucWJwYW5lbFRvRmllbGRzLm1hcChwYW5lbFRvRmllbGQgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcWJmaWx0ZXJGaWVsZElkOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZElkLFxyXG4gICAgICAgICAgICBxYmRlZmF1bHRPcGVyYXRvcjogcGFuZWxUb0ZpZWxkLnFiZGVmYXVsdE9wZXJhdG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBsZXQgZmlsdGVyRW50aXR5OiBRYkZpbHRlckVudGl0eVtdID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHBhbmVsVG9GaWVsZCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogcGFuZWxUb0ZpZWxkLnFiZmlsdGVyRmllbGQucWJmaWx0ZXJFbnRpdHkuaWQsIFxyXG4gICAgICAgICAgICBiYXNpYzogcGFuZWxUb0ZpZWxkLmJhc2ljLFxyXG4gICAgICAgICAgICBuYW1lOiBwYW5lbFRvRmllbGQucWJmaWx0ZXJGaWVsZC5xYmZpbHRlckVudGl0eS5uYW1lLCBcclxuICAgICAgICAgICAganNvbk5hbWU6IHBhbmVsVG9GaWVsZC5xYmZpbHRlckZpZWxkLnFiZmlsdGVyRW50aXR5Lmpzb25OYW1lLCBcclxuICAgICAgICAgICAgZmllbGRzOiBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBsZXQgZmlsdGVyRmllbGRzOiBGaWx0ZXJGaWVsZFtdID0gcWJQYW5lbEZpbHRlci5xYnBhbmVsVG9GaWVsZHMubWFwKHAgPT4gcC5xYmZpbHRlckZpZWxkKTtcclxuICAgICAgICBmaWx0ZXJFbnRpdHkuZm9yRWFjaCgoZW50aXR5OiBRYkZpbHRlckVudGl0eSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgIGxldCBmaWVsZHMgPSBmaWx0ZXJGaWVsZHMuZmlsdGVyKGUgPT4gZS5xYmZpbHRlckVudGl0eS5pZCA9PSBlbnRpdHkuaWQpO1xyXG4gICAgICAgICAgIGZpbHRlckVudGl0eVtpbmRleF0uZmllbGRzID0gZmllbGRzIDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuYmFzaWNRdWVyeUNvbmZpZyA9IHRoaXMuaW5pdFF1ZXJ5QnVpbGRlcihmaWx0ZXJFbnRpdHkpO1xyXG4gICAgICAgIHRoaXMuYmFzaWNRdWVyeUNvbmZpZyA9IHRoaXMuZmlsdGVyRmllbGRzQnlJZCh0aGlzLmJhc2ljUXVlcnlDb25maWcsIGJhc2ljRmlsdGVySWRzKTtcclxuICAgICAgICB0aGlzLmJhc2ljUXVlcnlDb25maWcuZmllbGRzID0gdGhpcy50cmFuc2xhdGVGaWVsZHModGhpcy5iYXNpY1F1ZXJ5Q29uZmlnLmZpZWxkcyk7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnID0gdGhpcy5pbml0UXVlcnlCdWlsZGVyKGZpbHRlckVudGl0eSk7XHJcbiAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5Q29uZmlnID0gdGhpcy5maWx0ZXJGaWVsZHNCeUlkKHRoaXMuYWR2YW5jZWRRdWVyeUNvbmZpZywgYWR2YW5jZWRGaWx0ZXJJZHMpO1xyXG4gICAgICAgIHRoaXMuYWR2YW5jZWRRdWVyeUNvbmZpZy5maWVsZHMgPSB0aGlzLnRyYW5zbGF0ZUZpZWxkcyh0aGlzLmFkdmFuY2VkUXVlcnlDb25maWcuZmllbGRzKTtcclxuICAgICAgICBsZXQgcnVsZXMgPSBPYmplY3Qua2V5cyh0aGlzLmJhc2ljUXVlcnlDb25maWcuZmllbGRzKVxyXG4gICAgICAgICAgLm1hcChmaWVsZEtleSA9PiB7IFxyXG4gICAgICAgICAgICBsZXQgZGVmYXVsdE9wZXJhdG9yID0gdGhpcy5kZWZhdWx0T3BlcmF0b3JzLmZpbmQob3BlcmF0b3IgPT4gb3BlcmF0b3IucWJmaWx0ZXJGaWVsZElkID09IHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHNbZmllbGRLZXldLmlkICYmIG9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yICE9IG51bGwpO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGZpZWxkOiBmaWVsZEtleSwgXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuYmFzaWNRdWVyeUNvbmZpZy5maWVsZHNbZmllbGRLZXldLmRlZmF1bHRWYWx1ZSEsXHJcbiAgICAgICAgICAgICAgb3BlcmF0b3I6IGRlZmF1bHRPcGVyYXRvciA/IGRlZmF1bHRPcGVyYXRvci5xYmRlZmF1bHRPcGVyYXRvci5zeW1ib2wgOiBudWxsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGlmKHRoaXMuc3RvcmVkUXVlcnkgJiYgdGhpcy5zdG9yZWRRdWVyeT8uaWQgPT0gdGhpcy5maWx0ZXJJZCAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5iYXNpY1F1ZXJ5VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5iYXNpY1F1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5iYXNpY1F1ZXJ5VmFsdWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2ljUXVlcnkgPSB7XHJcbiAgICAgICAgICAgICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgICAgICAgICAgICBydWxlczogcnVsZXNcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHRoaXMuc3RvcmVkUXVlcnkgJiYgdGhpcy5zdG9yZWRRdWVyeT8uaWQgPT0gdGhpcy5maWx0ZXJJZCAmJiB0aGlzLnN0b3JlZFF1ZXJ5Py5hZHZhbmNlZFF1ZXJ5VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZHZhbmNlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5hZHZhbmNlZFF1ZXJ5VmFsdWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFkdmFuY2VkUXVlcnkgPSB7XHJcbiAgICAgICAgICAgICAgY29uZGl0aW9uOiAnYW5kJyxcclxuICAgICAgICAgICAgICBydWxlczogW11cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5xdWVyeUNvbmZpZ1JlYWR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmluaXRRdWVyeUJ1aWxkZXJDb250cm9scygpO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgaW5pdFF1ZXJ5QnVpbGRlcihmaWx0ZXJFbnRpdGllczogUWJGaWx0ZXJFbnRpdHlbXSkge1xyXG4gICAgbGV0IGVudGl0eUNvbmZpZ0F1eDogUXVlcnlCdWlsZGVyQ29uZmlnID0geyBmaWVsZHM6IHt9IH07XHJcbiAgICBsZXQgZW50aXRpZXNBcnJheTogRW50aXR5TWFwW10gPSBbXTtcclxuICAgIGZpbHRlckVudGl0aWVzLm1hcCgoZSwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IGVudGl0eTogRW50aXR5ID0geyBuYW1lOiBlLmpzb25OYW1lIH07XHJcbiAgICAgIHJldHVybiBlbnRpdGllc0FycmF5W2luZGV4XSA9IHsgW2UuanNvbk5hbWVdOiBlbnRpdHkgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBlbnRpdGllc01hcDogRW50aXR5TWFwID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXNBcnJheSkge1xyXG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZW50aXR5KTtcclxuXHJcbiAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGVudGl0aWVzTWFwW2tleV0gPSBlbnRpdHlba2V5XVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGVudGl0eUNvbmZpZ0F1eC5lbnRpdGllcyA9IGVudGl0aWVzTWFwO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmaWVsZHM6IEZpZWxkTWFwW10gPSBbXTtcclxuICAgIGZpbHRlckVudGl0aWVzLmZvckVhY2goKGZpbHRlckVudGl0eSkgPT4ge1xyXG4gICAgICByZXR1cm4gZmlsdGVyRW50aXR5LmZpZWxkcy5maWx0ZXIoKGZpbHRlckZpZWxkOiBGaWx0ZXJGaWVsZCkgPT4ge1xyXG4gICAgICAgIGxldCBpbmRleDogbnVtYmVyID0gZmllbGRzLmxlbmd0aCA/PyAwO1xyXG4gICAgICAgIGxldCBvcGVyYXRvcnNGbGF0QXJyYXkgPSBmaWx0ZXJGaWVsZC5vcGVyYXRvcnMubWFwKChvOmFueSkgPT4gby5zeW1ib2wpO1xyXG4gICAgICAgIGxldCBkZWZhdWx0T3BlcmF0b3IgPSB0aGlzLmRlZmF1bHRPcGVyYXRvcnMuZmluZChvcGVyYXRvciA9PiBvcGVyYXRvci5xYmZpbHRlckZpZWxkSWQgPT0gZmlsdGVyRmllbGQuaWQpO1xyXG4gICAgICAgIGxldCBmaWVsZDogRmllbGQgPSB7XHJcbiAgICAgICAgICBpZDogZmlsdGVyRmllbGQuaWQsXHJcbiAgICAgICAgICBuYW1lOiBmaWx0ZXJGaWVsZC5uYW1lLFxyXG4gICAgICAgICAgb3BlcmF0b3JzOiBkZWZhdWx0T3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3I/LnN5bWJvbCA/IHRoaXMubW92ZUVsZW1lbnRUb0ZpcnN0UGxhY2Uob3BlcmF0b3JzRmxhdEFycmF5LCBkZWZhdWx0T3BlcmF0b3IucWJkZWZhdWx0T3BlcmF0b3I/LnN5bWJvbCkgOiBvcGVyYXRvcnNGbGF0QXJyYXksXHJcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldERhdGFUeXBlKGZpbHRlckZpZWxkLmRhdGFUeXBlKSxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5mb3JtYXREZWZhdWx0VmFsdWUodGhpcy5kZWZhdWx0VmFsdWVzLmZpbmQodmFsdWUgPT4gdmFsdWUucWJmaWx0ZXJGaWVsZElkID09IGZpbHRlckZpZWxkLmlkKS5kZWZhdWx0VmFsdWUsIGZpbHRlckZpZWxkLmRhdGFUeXBlKSxcclxuICAgICAgICAgIGRlZmF1bHRPcGVyYXRvcjogZGVmYXVsdE9wZXJhdG9yLnFiZGVmYXVsdE9wZXJhdG9yPy5zeW1ib2wsXHJcbiAgICAgICAgICBlbnRpdHk6IGZpbHRlckVudGl0eS5qc29uTmFtZSxcclxuICAgICAgICAgIG9wdGlvbnM6IGZpbHRlckZpZWxkLmxpc3RPZlZhbHVlcyxcclxuICAgICAgICAgIHZhbGlkYXRvcjogKHJ1bGU6IFJ1bGUsIHBhcmVudDogUnVsZVNldCk6IGFueSB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICBpZiAocnVsZS5vcGVyYXRvciAhPT0gXCJpcyBudWxsXCIgJiYgcnVsZS5vcGVyYXRvciAhPT0gXCJpcyBub3QgbnVsbFwiKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHJ1bGUudmFsdWUgPT09IHVuZGVmaW5lZCB8fCBydWxlLnZhbHVlID09PSBudWxsIHx8IHJ1bGUudmFsdWUgPT09ICcnIHx8IHJ1bGUudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IHJlcXVpcmVkOiAnZW1wdHkgZmllbGQnIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmVudGl0aWVzLnB1c2goe2ZpZWxkSnNvbk5hbWU6IGZpbHRlckZpZWxkLmpzb25OYW1lLCBlbnRpdHk6IGZpZWxkLmVudGl0eX0pO1xyXG4gICAgICAgIGZpZWxkc1tpbmRleF0gPSB7IFtmaWx0ZXJGaWVsZC5qc29uTmFtZV06IGZpZWxkIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGZpZWxkc01hcDogRmllbGRNYXAgPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xyXG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZmllbGQpO1xyXG4gICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICBmaWVsZHNNYXBba2V5XSA9IGZpZWxkW2tleV07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZW50aXR5Q29uZmlnQXV4LmZpZWxkcyA9IGZpZWxkc01hcDtcclxuICAgIH1cclxuICAgIHJldHVybiBlbnRpdHlDb25maWdBdXg7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJGaWVsZHNCeUlkKGZpZWxkc09iajogYW55LCBpZEFycmF5OiBudW1iZXJbXSk6IGFueSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEZpZWxkczogYW55ID0ge307XHJcbiAgICBcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpZWxkc09iai5maWVsZHMpIHtcclxuICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHNPYmouZmllbGRzW2tleV07XHJcbiAgICAgIGlmIChpZEFycmF5LmluY2x1ZGVzKGZpZWxkLmlkKSkge1xyXG4gICAgICAgIGZpbHRlcmVkRmllbGRzW2tleV0gPSBmaWVsZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5maWVsZHNPYmosXHJcbiAgICAgIGZpZWxkczogZmlsdGVyZWRGaWVsZHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlRmllbGRzKGZpZWxkczogRmllbGRNYXApIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGZpZWxkcykge1xyXG4gICAgICBpZiAoZmllbGRzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICBmaWVsZHNba2V5XS5maWVsZCA9IGtleTtcclxuICAgICAgICBmaWVsZHNba2V5XS5uYW1lID0gdGhpcy50cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzW2tleV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZHM7XHJcbiAgfVxyXG5cclxuICBtb3ZlRWxlbWVudFRvRmlyc3RQbGFjZShhcnJheTogYW55W10sIGVsZW1lbnRUb0ZpcnN0UGxhY2U6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSBhcnJheS5pbmRleE9mKGVsZW1lbnRUb0ZpcnN0UGxhY2UpO1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICBhcnJheS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBhcnJheS51bnNoaWZ0KGVsZW1lbnRUb0ZpcnN0UGxhY2UpOyBcclxuICAgIH1cclxuICAgIHJldHVybiBhcnJheTtcclxuICB9XHJcblxyXG4gIGZvcm1hdERlZmF1bHRWYWx1ZSh2YWx1ZTogYW55LCB0eXBlOiBRQkRhdGFUeXBlRW51bSkge1xyXG4gICAgaWYodmFsdWUpIHtcclxuICAgICAgaWYodHlwZSA9PSBRQkRhdGFUeXBlRW51bS5Cb29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcclxuICAgICAgfVxyXG4gICAgICBpZih0eXBlID09IHRoaXMucWJEYXRhVHlwZUVudW0uTnVtYmVyIHx8IHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5EZWNpbWFsIHx8IHR5cGUgPT0gdGhpcy5xYkRhdGFUeXBlRW51bS5MaXN0KXtcclxuICAgICAgICByZXR1cm4gTnVtYmVyKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSBcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldERhdGFUeXBlKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnFiRGF0YUVudW1zLmZpbmQodmFsdWUgPT4gdmFsdWUgPT09IGlkKT8udG9TdHJpbmcoKSA/PyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmllbGRzV2l0aG91dFZhbHVlKGpzb246IGFueSkge1xyXG4gICAgaWYgKGpzb24uYmFzaWMgJiYganNvbi5iYXNpYy5ydWxlcykge1xyXG4gICAgICBqc29uLmJhc2ljLnJ1bGVzID0ganNvbi5iYXNpYy5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS52YWx1ZSAhPSBudWxsKTtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUudmFsdWUgIT0gdW5kZWZpbmVkKTtcclxuICAgICAganNvbi5iYXNpYy5ydWxlcyA9IGpzb24uYmFzaWMucnVsZXMuZmlsdGVyKChydWxlOiBhbnkpID0+IHJ1bGUudmFsdWUgIT09IFwiXCIpO1xyXG4gICAgfVxyXG4gICAgaWYoanNvbi5hZHZhbmNlZCAmJiBqc29uLmFkdmFuY2VkLnJ1bGVzPy5sZW5ndGggIT0gMCkge1xyXG4gICAgICBqc29uLmFkdmFuY2VkLnJ1bGVzID0ganNvbi5hZHZhbmNlZC5ydWxlcy5maWx0ZXIoKHJ1bGU6IGFueSkgPT4gcnVsZS5ydWxlcz8ubGVuZ3RoICE9IDApO1xyXG4gICAgfVxyXG4gICAgaWYoanNvbi5ncm91cGVkICYmIGpzb24uZ3JvdXBlZD8ucnVsZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAganNvbi5ncm91cGVkLnJ1bGVzID0ganNvbi5ncm91cGVkLnJ1bGVzLmZpbHRlcigocnVsZTogYW55KSA9PiBydWxlLnJ1bGVzPy5sZW5ndGggIT0gMCk7XHJcbiAgICB9XHJcbiAgICBpZihqc29uLmdyb3VwZWQgJiYganNvbi5ncm91cGVkPy5ydWxlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBqc29uLmdyb3VwZWQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGpzb247XHJcbiAgfVxyXG4gIFxyXG4gIGluaXRpYWxpemVPcGVyYXRvcnMoanNvbjogYW55KSB7XHJcbiAgICBpZiAoanNvbi5iYXNpYyAmJiBqc29uLmJhc2ljLnJ1bGVzKSB7XHJcbiAgICAgIGpzb24uYmFzaWMucnVsZXMuZm9yRWFjaCgocnVsZTphbnkpID0+IHtcclxuICAgICAgICBpZighcnVsZS5vcGVyYXRvcikge1xyXG4gICAgICAgICAgcnVsZS5vcGVyYXRvciA9IFwiPVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ganNvbjtcclxuICB9XHJcblxyXG4gIHJlc2V0QmFzaWNRdWVyeVZhbHVlcygpIHtcclxuICAgIHRoaXMuYmFzaWNRdWVyeS5ydWxlcy5mb3JFYWNoKChydWxlOiBSdWxlKSA9PiB7XHJcbiAgICAgIGlmKHJ1bGUudmFsdWUgfHwgcnVsZS52YWx1ZSA9PSAwKXtcclxuICAgICAgICBydWxlLnZhbHVlID0gbnVsbFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFF1ZXJ5RmllbGROYW1lKGZpZWxkTmFtZTogc3RyaW5nLCBmaWVsZHM6IEZpZWxkTWFwKSB7XHJcbiAgICBjb25zdCBmaWVsZEVudHJ5ID0gT2JqZWN0LmtleXMoZmllbGRzKS5maW5kKGtleSA9PiBmaWVsZHNba2V5XS5maWVsZCA9PT0gZmllbGROYW1lKTtcclxuXHJcbiAgICByZXR1cm4gZmllbGRFbnRyeSAmJiBmaWVsZHNbZmllbGRFbnRyeV0ubmFtZSA/IGZpZWxkc1tmaWVsZEVudHJ5XS5uYW1lIDogZmllbGROYW1lO1xyXG4gIH1cclxuXHJcbiAgZmllbGRJc0Jvb2xlYW4oZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkczogRmllbGRNYXApIHtcclxuICAgIGNvbnN0IGZpZWxkRW50cnkgPSBPYmplY3Qua2V5cyhmaWVsZHMpLmZpbmQoa2V5ID0+IGZpZWxkc1trZXldLmZpZWxkID09PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgIHJldHVybiBmaWVsZHNbZmllbGRFbnRyeSFdLnR5cGUgPT0gUUJEYXRhVHlwZUVudW0uQm9vbGVhbi50b1N0cmluZygpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSBUT0RPOiBJbnRlbnRhciBvdHJhIHZleiBwYXNhciBsb3MgY29tcG9uZW50ZXMgYSBsb3MgZGUgdy0gcG9ycXVlIG5vIHNlIGFsaW5lbmEgeSBlbCB3LWVkaXQtc2VsZWN0IG5vIHZhIGJpZW4gZW4gZmllbGQuIFxyXG4gIEFob3JhIHNlIGNvbnNlcnZhbiBsb3MgZGUgcC13IGNvbiBlc3RpbG9zLiAtLT5cclxuPGRpdiAqbmdJZj1cInF1ZXJ5Q29uZmlnUmVhZHlcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLXN0eWxlc1wiPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0FkdmFuY2VkU2VhcmNoOyBlbHNlIGJhaXNjQW5kQWR2YW5jZWRcIj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYWR2YW5jZWQnIDogaXNBZHZhbmNlZFNlYXJjaCwgJ3ctZmlsdGVyLXBhbmVsLWNvbnRhaW5lci1iYXNpYycgOiAhaXNBZHZhbmNlZFNlYXJjaCB9XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJhc2ljXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBidXR0b24tZ2FwXCI+XHJcbiAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5jbGVhckJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwib25DbGVhckNsaWNrZWQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5zZWFyY2hCdXR0b25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2JhaXNjQW5kQWR2YW5jZWQ+XHJcbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAndy1maWx0ZXItcGFuZWwtY29udGFpbmVyLWFkdmFuY2VkJyA6IGlzQWR2YW5jZWRTZWFyY2gsICd3LWZpbHRlci1wYW5lbC1jb250YWluZXItYmFzaWMnIDogIWlzQWR2YW5jZWRTZWFyY2ggfVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc0FkdmFuY2VkU2VhcmNoOyBlbHNlIGFkdmFuY2VkVmlld1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYmFzaWNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNhZHZhbmNlZFZpZXc+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZHZhbmNlZFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGJ1dHRvbi1nYXBcIiBbY2xhc3MucHQtM109XCJpc0FkdmFuY2VkU2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmNsZWFyQnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJvbkNsZWFyQ2xpY2tlZCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3Quc2VhcmNoQnV0dG9uTGFiZWxcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJvblNlYXJjaENsaWNrZWQoKVwiIFtsb2FkaW5nXT1cImRhdGFJc0xvYWRpbmdTZWFyY2hCdXR0b25cIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNiYXNpYz5cclxuICAgIDxkaXYgKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0FkdmFuY2VkU2VhcmNoXCIgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYyBxdWVyeS1idWlsZGVyLXN0eWxlIGZhZGVpbiBhbmltYXRpb24tZHVyYXRpb24tNTAwXCI+XHJcbiAgICAgIDxxdWVyeS1idWlsZGVyIFtmb3JtQ29udHJvbF09J3F1ZXJ5Q3RybCcgW2NvbmZpZ109J2Jhc2ljUXVlcnlDb25maWcnIFthbGxvd1J1bGVzZXRdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQnIFthbGxvd1J1bGVzZXRdPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgW3BlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2VdPSdwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlJz5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7XCI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5UmVtb3ZlQnV0dG9uPVwibGV0IHJ1bGU7IGxldCByZW1vdmVSdWxlPXJlbW92ZVJ1bGVcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlTd2l0Y2hHcm91cD1cImxldCBydWxlc2V0OyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlFbnRpdHk9XCJsZXQgcnVsZTsgbGV0IGVudGl0aWVzPWVudGl0aWVzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgIDxwLWRyb3Bkb3duIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCIgdy1lZGl0LXNlbGVjdC1zbWFsbFwiICpuZ0lmPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJlbnRpdGllc1wiIFsobmdNb2RlbCldPVwicnVsZS5lbnRpdHlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlGaWVsZD1cImxldCBydWxlOyBsZXQgZmllbGRzPWZpZWxkczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlOyBsZXQgZ2V0RmllbGRzID0gZ2V0RmllbGRzOyBsZXQgdmFsdWU9dmFsdWU7IGxldCBuYW1lPW5hbWU7IGxldCBpbmRleD1pbmRleFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGFwcGVuZFRvPVwiYm9keVwiIGNsYXNzPVwidy00IHRleHQtbGVmdCB3LWZpbHRlci1wYW5lbC1pbnB1dC10ZXh0LWxhYmVsXCIgW2NsYXNzLnctZmlsdGVyLXBhbmVsLWJvb2xlYW4tbGFiZWwtd2lkdGhdPVwiZmllbGRJc0Jvb2xlYW4ocnVsZS5maWVsZCwgZ2V0RmllbGRzKHJ1bGUuZW50aXR5KSlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+e3sgZ2V0UXVlcnlGaWVsZE5hbWUocnVsZS5maWVsZCwgZ2V0RmllbGRzKHJ1bGUuZW50aXR5KSl9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwiIHctZWRpdC1zZWxlY3Qtc21hbGxcIiAqbmdJZj1cImlzQWR2YW5jZWRTZWFyY2hcIiBhcHBlbmRUbz1cImJvZHlcIiBbKG5nTW9kZWwpXT1cInJ1bGUub3BlcmF0b3JcIiBbb3B0aW9uc109XCJvcGVyYXRvcnNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZShydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItb3BlcmF0b3Itd2lkdGhcIj5cclxuICAgICAgICAgICAgPHctdG9nZ2xlLWJ1dHRvbiBzaXplPVwic21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBvbkxhYmVsPVwiVHJ1ZVwiIG9mZkxhYmVsPVwiRmFsc2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCI+PC93LXRvZ2dsZS1idXR0b24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGF0ZXRpbWUudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDx3LWVkaXQtY2FsZW5kYXIgYXBwZW5kVG89XCJib2R5XCIgc2l6ZT1cInNtYWxsXCIgW3Nob3dJY29uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGF0ZXRpbWVcIiBbZGlzcGxheUlubGluZUJsb2NrXT1cInRydWVcIj48L3ctZWRpdC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBmaWVsZD1maWVsZDsgdHlwZTogcWJEYXRhVHlwZUVudW0uRGVjaW1hbC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cIiB3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbC1oZWlnaHRcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIG1vZGU9XCJkZWNpbWFsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiNVwiIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRlY2ltYWxcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1iYXNpYy1xdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCIgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dFN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIHN0eWxlQ2xhc3M9XCJmbGV4IGZsZXgtMVwiIGNsYXNzPVwiIHctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgW21pbl09XCIwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLm51bWJlclwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5UZXh0LnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiIHctZmlsdGVyLXBhbmVsLWJhc2ljLXF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGggdy1lZGl0LWlucHV0LXRleHQtc21hbGwtaGVpZ2h0IHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRpb25zT2JqZWN0LmZpZWxkc1BsYWNlaG9sZGVycy50ZXh0XCIvPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy1maWx0ZXItcGFuZWwtYmFzaWMtcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0IFthcHBlbmRUb109XCInYm9keSdcIiBbb3B0aW9uc109XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBkaXNwbGF5PVwiY2hpcFwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtbXVsdGlTZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9xdWVyeS1idWlsZGVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FkdmFuY2VkU2VhcmNoICYmIGJhc2ljUXVlcnkucnVsZXMubGVuZ3RoPT0wXCIgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2FkdmFuY2VkPlxyXG4gICAgPGRpdiBbY2xhc3MucXVlcnktYnVpbGRlci1zdHlsZV09XCIhZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0XCIgY2xhc3M9XCJ3LWZpbHRlci1wYW5lbC1jb250YWluZXIgZmFkZWluIGFuaW1hdGlvbi1kdXJhdGlvbi01MDBcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIm1iLTJcIiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmJhc2ljU2VhcmNoVGFiTGFiZWxcIiB0eXBlPVwidGV4dFwiIChvbkNsaWNrKT1cInVwZGF0ZVNlYXJjaFR5cGUoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8cXVlcnktYnVpbGRlciBbZm9ybUNvbnRyb2xdPSdhZHZhbmNlZFF1ZXJ5Q3RybCcgW2NvbmZpZ109J2FkdmFuY2VkUXVlcnlDb25maWcnIFthbGxvd1J1bGVzZXRdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQnIFthbGxvd0NvbGxhcHNlXT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dDb2xhcHNlJyBbYWxsb3dSdWxlc2V0XT1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIFtwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlXT0ncGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZSc+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dSdWxlU2V0OyBlbHNlIG5vUnVsZVNldFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBhZGRSdWxlPWFkZFJ1bGU7IGxldCBhZGRSdWxlU2V0PWFkZFJ1bGVTZXQ7IGxldCByZW1vdmVSdWxlU2V0PXJlbW92ZVJ1bGVTZXRcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJhZGRSdWxlKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uIGNsYXNzPVwibXItMlwiIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2guYWRkUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInNlY29uZGFyeVwiIGljb249XCJwaSBwaS1wbHVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJhZGRSdWxlU2V0XCIgKG9uQ2xpY2spPVwiYWRkUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLnJlbW92ZVJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS1taW51c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwicmVtb3ZlUnVsZVNldFwiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub1J1bGVTZXQ+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5QnV0dG9uR3JvdXA9XCJsZXQgcnVsZXNldDsgbGV0IGFkZFJ1bGU9YWRkUnVsZTsgbGV0IGFkZFJ1bGVTZXQ9YWRkUnVsZVNldDsgbGV0IHJlbW92ZVJ1bGVTZXQ9cmVtb3ZlUnVsZVNldFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5iYXNpY1NlYXJjaFRhYkxhYmVsXCIgdHlwZT1cInRleHRcIiAob25DbGljayk9XCJ1cGRhdGVTZWFyY2hUeXBlKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWR2YW5jZWQtcXVlcnktYnV0dG9uLWdyb3VwIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5hZGRSdWxlQnV0dG9uTGFiZWxcIiB0eXBlPVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNtYWxsXCIgKG9uQ2xpY2spPVwiYWRkUnVsZSgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBpY29uPVwicGkgcGktcGx1c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiYWRkUnVsZVNldFwiIChvbkNsaWNrKT1cImFkZFJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gW2xhYmVsXT1cInRyYW5zbGF0aW9uc09iamVjdC5hZHZhbmNlZFNlYXJjaC5yZW1vdmVSdWxlU2V0QnV0dG9uTGFiZWxcIiB0eXBlPVwidGVydGlhcnlcIiBpY29uPVwicGkgcGktbWludXNcIiBzaXplPVwic21hbGxcIiAqbmdJZj1cInJlbW92ZVJ1bGVTZXRcIiAob25DbGljayk9XCJyZW1vdmVSdWxlU2V0KClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlBcnJvd0ljb24+XHJcbiAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktYW5nbGUtcmlnaHRcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tdGV4dFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlSZW1vdmVCdXR0b249XCJsZXQgcnVsZTsgbGV0IHJlbW92ZVJ1bGU9cmVtb3ZlUnVsZVwiPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gY2xhc3M9XCJcIiBsYWJlbD1cIlwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJ0ZXJ0aWFyeVwiIGljb249XCJwaSBwaS10aW1lc1wiIChvbkNsaWNrKT1cInJlbW92ZVJ1bGUocnVsZSlcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlTd2l0Y2hHcm91cD1cImxldCBydWxlc2V0OyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJ1bGVzZXRcIiBjbGFzcz1cInctZmlsdGVyLXBhbmVsLXN3aXRjaC1ncm91cC1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgPHctc2VsZWN0LWJ1dHRvbiAqbmdJZj1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93TG9naWNhbFJ1bGVcIiBbc3RhdGVPcHRpb25zXT1cIlt7bGFiZWw6ICdBbmQnLCB2YWx1ZTogJ2FuZCd9LCB7bGFiZWw6ICdPcicsIHZhbHVlOiAnb3InfV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJydWxlc2V0LmNvbmRpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSk9XCJydWxlc2V0LmNvbmRpdGlvbiA9ICRldmVudFwiPlxyXG4gICAgICAgICAgICAgIDwvdy1zZWxlY3QtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5RW50aXR5PVwibGV0IHJ1bGU7IGxldCBlbnRpdGllcz1lbnRpdGllczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5lbml0eU1vZGVcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtc2VsZWN0LXNtYWxsXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZW50aXRpZXNcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZW50aXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUZpZWxkPVwibGV0IHJ1bGU7IGxldCBmaWVsZHM9ZmllbGRzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2U7IGxldCBnZXRGaWVsZHMgPSBnZXRGaWVsZHNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWZpZWxkLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cImdldEZpZWxkcyhydWxlLmVudGl0eSlcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZmllbGRcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlPcGVyYXRvcj1cImxldCBydWxlOyBsZXQgb3BlcmF0b3JzPW9wZXJhdG9yczsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1vcGVyYXRvci13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIGNsYXNzPVwiZmllbGQtZ2FwIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbKG5nTW9kZWwpXT1cInJ1bGUub3BlcmF0b3JcIiBbb3B0aW9uc109XCJvcGVyYXRvcnNcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZShydWxlKVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5Cb29sZWFuLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8dy10b2dnbGUtYnV0dG9uIGNsYXNzPVwiZmllbGQtZ2FwIHRvZ2dsZS1idXR0b24tYWxpZ25cIiBzaXplPVwic21hbGxcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBvbkxhYmVsPVwiVHJ1ZVwiIG9mZkxhYmVsPVwiRmFsc2VcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCI+PC93LXRvZ2dsZS1idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRhdGV0aW1lLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8dy1lZGl0LWNhbGVuZGFyIGNsYXNzPVwiZmllbGQtZ2FwXCIgYXBwZW5kVG89XCJib2R5XCIgc2l6ZT1cInNtYWxsXCIgW3Nob3dJY29uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIiBbc2hvd1RpbWVdPVwidHJ1ZVwiIFtzaG93U2Vjb25kc109XCJ0cnVlXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGF0ZXRpbWVcIiBbZGlzcGxheUlubGluZUJsb2NrXT1cInRydWVcIj48L3ctZWRpdC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkRlY2ltYWwudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0U3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgc3R5bGVDbGFzcz1cImZsZXggZmxleC0xXCIgY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LWlucHV0LW51bWJlci1zbWFsbCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsLWhlaWdodFwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIGlucHV0SWQ9XCJtaW5tYXhcIiBpbnB1dElkPVwibWlubWF4XCIgbW9kZT1cImRlY2ltYWxcIiBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCI1XCIgW21pbl09XCIwXCIgW21heF09XCIxMDBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMuZGVjaW1hbFwiPiA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJmaWVsZC1nYXAgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IG9wdGlvbnM9b3B0aW9uczsgdHlwZTogcWJEYXRhVHlwZUVudW0uTGlzdC50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIGZpZWxkLWdhcFwiPlxyXG4gICAgICAgICAgICAgIDx3LWxpc3QtZmllbGQgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIFtvcGVyYXRvcl09XCJydWxlLm9wZXJhdG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3ctbGlzdC1maWVsZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBbbWluXT1cIjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubnVtYmVyXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLlRleHQudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZpZWxkLWdhcCBxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoIHctZWRpdC1pbnB1dC10ZXh0LXNtYWxsLWhlaWdodCB3LWVkaXQtaW5wdXQtdGV4dC1zbWFsbFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMudGV4dFwiLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3F1ZXJ5LWJ1aWxkZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBZHZhbmNlZFNlYXJjaCAmJiBhZHZhbmNlZFF1ZXJ5LnJ1bGVzLmxlbmd0aD09MFwiID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIEdyb3VwZWQgZmlsdGVyIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dHcm91cGVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LTVcIj5cclxuICAgICAgICAgIDx3LXZpZXctY2FyZC10aXRsZS10ZXh0IFtjYXJkVGl0bGVdPVwidHJhbnNsYXRpb25zT2JqZWN0Lmdyb3VwZWRGaWx0ZXJUaXRsZVwiPjwvdy12aWV3LWNhcmQtdGl0bGUtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHF1ZXJ5LWJ1aWxkZXIgW2Zvcm1Db250cm9sXT0nZ3JvdXBlZFF1ZXJ5Q3RybCcgW2NvbmZpZ109J2FkdmFuY2VkUXVlcnlDb25maWcnIFthbGxvd1J1bGVzZXRdPSdmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd1J1bGVTZXQnIFthbGxvd0NvbGxhcHNlXT0nZmlsdGVyUGFuZWxPYmplY3QuYWxsb3dDb2xhcHNlJyBbYWxsb3dSdWxlc2V0XT1cImZpbHRlclBhbmVsT2JqZWN0LmFsbG93UnVsZVNldFwiIFtwZXJzaXN0VmFsdWVPbkZpZWxkQ2hhbmdlXT0ncGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZSc+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUJ1dHRvbkdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBhZGRSdWxlPWFkZFJ1bGU7IGxldCBhZGRSdWxlU2V0PWFkZFJ1bGVTZXQ7IGxldCByZW1vdmVSdWxlU2V0PXJlbW92ZVJ1bGVTZXRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTMgbWItM1wiPlxyXG4gICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBzaXplPVwic21hbGxcIiAob25DbGljayk9XCJhZGRSdWxlKClcIj48L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDx3LWJ1dHRvbiBbbGFiZWxdPVwidHJhbnNsYXRpb25zT2JqZWN0LmFkdmFuY2VkU2VhcmNoLmFkZFJ1bGVTZXRCdXR0b25MYWJlbFwiIHR5cGU9XCJzZWNvbmRhcnlcIiBpY29uPVwicGkgcGktcGx1c1wiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiYWRkUnVsZVNldFwiIChvbkNsaWNrKT1cImFkZFJ1bGVTZXQoKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgPHctYnV0dG9uIFtsYWJlbF09XCJ0cmFuc2xhdGlvbnNPYmplY3QuYWR2YW5jZWRTZWFyY2gucmVtb3ZlUnVsZVNldEJ1dHRvbkxhYmVsXCIgdHlwZT1cInRlcnRpYXJ5XCIgaWNvbj1cInBpIHBpLW1pbnVzXCIgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJyZW1vdmVSdWxlU2V0XCIgKG9uQ2xpY2spPVwicmVtb3ZlUnVsZVNldCgpXCI+PC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUFycm93SWNvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1hbmdsZS1yaWdodFwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0XCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVJlbW92ZUJ1dHRvbj1cImxldCBydWxlOyBsZXQgcmVtb3ZlUnVsZT1yZW1vdmVSdWxlXCI+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiBjbGFzcz1cIlwiIGxhYmVsPVwiXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInRlcnRpYXJ5XCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgKG9uQ2xpY2spPVwicmVtb3ZlUnVsZShydWxlKVwiPjwvdy1idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeVN3aXRjaEdyb3VwPVwibGV0IHJ1bGVzZXQ7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicnVsZXNldFwiPlxyXG4gICAgICAgICAgICAgIDx3LXNlbGVjdC1idXR0b24gKm5nSWY9XCJmaWx0ZXJQYW5lbE9iamVjdC5hbGxvd0xvZ2ljYWxSdWxlXCIgW3N0YXRlT3B0aW9uc109XCJbe2xhYmVsOiAnQW5kJywgdmFsdWU6ICdhbmQnfSwge2xhYmVsOiAnT3InLCB2YWx1ZTogJ29yJ31dXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicnVsZXNldC5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUpPVwicnVsZXNldC5jb25kaXRpb24gPSAkZXZlbnRcIj5cclxuICAgICAgICAgICAgICA8L3ctc2VsZWN0LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUVudGl0eT1cImxldCBydWxlOyBsZXQgZW50aXRpZXM9ZW50aXRpZXM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cIm1yLTMgdy1lZGl0LXNlbGVjdC1zbWFsbFwiICpuZ0lmPVwiZmlsdGVyUGFuZWxPYmplY3QuZW5pdHlNb2RlXCIgYXBwZW5kVG89XCJib2R5XCIgW29wdGlvbnNdPVwiZW50aXRpZXNcIiBbKG5nTW9kZWwpXT1cInJ1bGUuZW50aXR5XCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUZpZWxkPVwibGV0IHJ1bGU7IGxldCBmaWVsZHM9ZmllbGRzOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2U7IGxldCBnZXRGaWVsZHMgPSBnZXRGaWVsZHNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWZpZWxkLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gY2xhc3M9XCJtci0zIHctZWRpdC1zZWxlY3Qtc21hbGxcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJnZXRGaWVsZHMocnVsZS5lbnRpdHkpXCIgWyhuZ01vZGVsKV09XCJydWxlLmZpZWxkXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgcnVsZSlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5T3BlcmF0b3I9XCJsZXQgcnVsZTsgbGV0IG9wZXJhdG9ycz1vcGVyYXRvcnM7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItb3BlcmF0b3Itd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBjbGFzcz1cIm1yLTMgdy1lZGl0LXNlbGVjdC1zbWFsbFwiIGFwcGVuZFRvPVwiYm9keVwiIFsobmdNb2RlbCldPVwicnVsZS5vcGVyYXRvclwiIFtvcHRpb25zXT1cIm9wZXJhdG9yc1wiIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKHJ1bGUpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkJvb2xlYW4udG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDx3LXRvZ2dsZS1idXR0b24gY2xhc3M9XCJtci0zXCIgc2l6ZT1cInNtYWxsXCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgb25MYWJlbD1cIlRydWVcIiBvZmZMYWJlbD1cIkZhbHNlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiPjwvdy10b2dnbGUtYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EYXRldGltZS50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHctZWRpdC1jYWxlbmRhciBjbGFzcz1cImZpZWxkLWdhcFwiIGFwcGVuZFRvPVwiYm9keVwiIHNpemU9XCJzbWFsbFwiIFtzaG93SWNvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3Nob3dUaW1lXT1cInRydWVcIiBbc2hvd1NlY29uZHNdPVwidHJ1ZVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRhdGV0aW1lXCIgW2Rpc3BsYXlJbmxpbmVCbG9ja109XCJ0cnVlXCI+PC93LWVkaXQtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnF1ZXJ5SW5wdXQ9XCJsZXQgcnVsZTsgbGV0IGZpZWxkPWZpZWxkOyB0eXBlOiBxYkRhdGFUeXBlRW51bS5EZWNpbWFsLnRvU3RyaW5nKCk7IGxldCBvbkNoYW5nZT1vbkNoYW5nZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1ZXJ5LWJ1aWxkZXItaW5wdXQtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBjbGFzcz1cIm1yLTNcIiBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiBpbnB1dElkPVwibWlubWF4XCIgaW5wdXRJZD1cIm1pbm1heFwiIG1vZGU9XCJkZWNpbWFsXCIgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiNVwiIFttaW5dPVwiMFwiIFttYXhdPVwiMTAwXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmRlY2ltYWxcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpxdWVyeUlucHV0PVwibGV0IHJ1bGU7IGxldCBvcHRpb25zPW9wdGlvbnM7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLkxpc3QudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVlcnktYnVpbGRlci1pbnB1dC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDx3LWxpc3QtZmllbGQgW29wdGlvbnNdPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwicnVsZS52YWx1ZVwiIFtvcGVyYXRvcl09XCJydWxlLm9wZXJhdG9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UoKVwiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGlvbnNPYmplY3QuZmllbGRzUGxhY2Vob2xkZXJzLmxpc3RcIj48L3ctbGlzdC1maWVsZD5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLk51bWJlci50b1N0cmluZygpOyBsZXQgb25DaGFuZ2U9b25DaGFuZ2VcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWVyeS1idWlsZGVyLWlucHV0LXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRTdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBzdHlsZUNsYXNzPVwiZmxleCBmbGV4LTFcIiBjbGFzcz1cImZpZWxkLWdhcCB3LWVkaXQtaW5wdXQtbnVtYmVyLXNtYWxsIHctZWRpdC1pbnB1dC1udW1iZXItc21hbGwtaGVpZ2h0XCIgWyhuZ01vZGVsKV09XCJydWxlLnZhbHVlXCIgaW5wdXRJZD1cIm1pbm1heFwiIGlucHV0SWQ9XCJtaW5tYXhcIiBbbWluXT1cIjBcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMubnVtYmVyXCI+IDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcXVlcnlJbnB1dD1cImxldCBydWxlOyBsZXQgZmllbGQ9ZmllbGQ7IHR5cGU6IHFiRGF0YVR5cGVFbnVtLlRleHQudG9TdHJpbmcoKTsgbGV0IG9uQ2hhbmdlPW9uQ2hhbmdlXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIm1yLTMgcXVlcnktYnVpbGRlci1pbnB1dC13aWR0aCB3LWVkaXQtaW5wdXQtdGV4dC1zbWFsbC1oZWlnaHQgd2FwcC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbKG5nTW9kZWwpXT1cInJ1bGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgpXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0aW9uc09iamVjdC5maWVsZHNQbGFjZWhvbGRlcnMudGV4dFwiLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L3F1ZXJ5LWJ1aWxkZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FkdmFuY2VkU2VhcmNoICYmIGdyb3VwZWRRdWVyeS5ydWxlcy5sZW5ndGg9PTBcIiA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9RdWVyeURhdGFcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI25vUXVlcnlEYXRhPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LXdyYXAgY2FyZC1jb250YWluZXIgc3VyZmFjZS01MCBtYi0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctZnVsbCBoLTRyZW0gdGV4dC1ncmF5LTkwMCBib3JkZXItcm91bmQgbS0yXCI+XHJcbiAgICAgICAge3t0cmFuc2xhdGlvbnNPYmplY3Qubm9SdWxlc0xhYmVsfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -2628,8 +2628,6 @@ class WFilterPanelComponent {
2628
2628
  };
2629
2629
  this.setEntity(queries);
2630
2630
  queries = this.initializeOperators(queries);
2631
- queries = this.deleteFieldsWithoutValue(queries);
2632
- queries = this.handleEmptyFieldsQuery(queries);
2633
2631
  let storedQuery = {
2634
2632
  id: this.filterId,
2635
2633
  basicQueryValue: queries.basic,
@@ -2637,6 +2635,8 @@ class WFilterPanelComponent {
2637
2635
  groupedQueryValue: queries.grouped
2638
2636
  };
2639
2637
  this.localStorage.setLastFilterPanelQuery(storedQuery);
2638
+ queries = this.deleteFieldsWithoutValue(queries);
2639
+ queries = this.handleEmptyFieldsQuery(queries);
2640
2640
  this.searchClicked.emit(queries);
2641
2641
  }
2642
2642
  onClearClicked() {