simpo-component-library 3.6.885 → 3.6.887

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.
@@ -308,6 +308,7 @@ export class AddSectionComponent {
308
308
  });
309
309
  }
310
310
  redirectToAppointments() {
311
+ this.matDialog.closeAll();
311
312
  // window.open('https://dev-app.simpo.ai/admin/appointments/manage-appointments', '_blank');
312
313
  this.router.navigate(['/admin/appointments/manage-appointments']);
313
314
  }
@@ -560,4 +561,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
560
561
  type: ViewChild,
561
562
  args: ['installCompleteTemplate']
562
563
  }] } });
563
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9hZGQtc2VjdGlvbi9hZGQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2FkZC1zZWN0aW9uL2FkZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBWSxTQUFTLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQWUsV0FBVyxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQVluRSxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQW1CLE1BQXlDLEVBQzFCLElBQVMsRUFDakMsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsYUFBb0MsRUFDcEMsV0FBd0IsRUFDeEIsY0FBcUMsRUFDckMsU0FBb0IsRUFDcEIsTUFBZSxFQUNmLEdBQXNCO1FBVGIsV0FBTSxHQUFOLE1BQU0sQ0FBbUM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFB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O2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLENBQUM7K0dBOWtCVSxtQkFBbUIsOENBY3BCLGVBQWU7bUdBZGQsbUJBQW1CLHNVQ3BCaEMsa282Q0EwdUJjLDA2bkJEMXRCRixZQUFZLDBaQUFFLGFBQWEsbUxBQUUsdUJBQXVCLDhNQUFFLFdBQVcsaW5CQUFFLGVBQWU7OzRGQUlqRixtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQzs7MEJBa0IxRixNQUFNOzJCQUFDLGVBQWU7NlFBVmEsdUJBQXVCO3NCQUE1RCxTQUFTO3VCQUFDLHlCQUF5QjtnQkFDRSx1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE5nTW9kdWxlLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSB9IGZyb20gJ25neC1za2VsZXRvbi1sb2FkZXInO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYWRkLXNlY3Rpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXREaWFsb2dNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2FkZC1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRTZWN0aW9uQ29tcG9uZW50IHtcclxuXHJcbiAgT2JqZWN0PzogT2JqZWN0XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2luc3RhbGxQcm9ncmVzc1RlbXBsYXRlJykgaW5zdGFsbFByb2dyZXNzVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2luc3RhbGxDb21wbGV0ZVRlbXBsYXRlJykgaW5zdGFsbENvbXBsZXRlVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBpbnN0YWxsU3RlcHMgPSBbXHJcbiAgICB7IGxhYmVsOiAnSW5zdGFsbGluZyBhcHBvaW50bWVudCBhcHAnLCBzdGF0dXM6ICdwZW5kaW5nJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NyZWF0aW5nIHJlcXVpcmVkIHBhZ2VzIGZvciB5b3VyIGFwcCcsIHN0YXR1czogJ3BlbmRpbmcnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ3JlYXRpbmcgb25lIHN0b3JlJywgc3RhdHVzOiAncGVuZGluZycgfVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZ1JlZjxBZGRTZWN0aW9uQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFbGVtZW50U2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgZWxlbWVudFNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJvdXRlciA6IFJvdXRlcixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIGJ1c2luZXNzVHlwZTogJ1NUQVRJQycgfCAnRV9DT01NRVJDRScgPSAnRV9DT01NRVJDRSc7XHJcblxyXG4gIGluc3RhbGxpbmdBcHA6IGFueSA9IG51bGw7XHJcblxyXG4gIC8vIOKUgOKUgCBBcHBzIHRhYiBzdGF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcclxuICBleHBhbmRlZEFwcHM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge30gICAgLy8gdHJhY2tzIHdoaWNoIGFwcCBjYXRlZ29yeSBpcyBleHBhbmRlZCBpbiBsZWZ0IHNpZGViYXJcclxuICBzZWxlY3RlZEFwcDogc3RyaW5nID0gXCJcIiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJhY2tzIHdoaWNoIGFwcCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQvYWN0aXZlXHJcbiAgc2VsZWN0ZWRBcHBTZWN0aW9uczogYW55W10gPSBbXSAgICAgICAgICAgICAgICAgIC8vIGhvbGRzIHRoZSBzZWN0aW9ucyBvZiB0aGUgc2VsZWN0ZWQgYXBwXHJcbiAgc2VsZWN0ZWRBcHBDb21wb25lbnQ6IGFueSA9IG51bGwgICAgICAgICAgICAgICAgIC8vIHRyYWNrcyB3aGljaCBjb21wb25lbnQgaW5zaWRlIHRoZSBzZWxlY3RlZCBhcHAgaXMgY3VycmVudGx5IHNlbGVjdGVkL2hpZ2hsaWdodGVkXHJcblxyXG4gIGFwcEljb25NYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICBcIkUtY29tbWVyY2VcIjogXCLwn5uN77iPXCIsXHJcbiAgICBcIkFwcG9pbnRtZW50XCI6IFwi8J+ThVwiLFxyXG4gICAgXCJDUk1cIjogXCLwn5GlXCIsXHJcbiAgICBcIlBhc3NCb29rXCI6IFwi8J+Ss1wiLFxyXG4gICAgXCJQYXNzYm9va1wiOiBcIvCfkrNcIixcclxuICAgIFwiUmVmZXIgYW5kIEVhcm5cIjogXCLwn46BXCJcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgYnVzaW5lc3MgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYkRldGFpbHMnKSB8fCAnJztcclxuICAgIHRoaXMuYnVzaW5lc3NUeXBlID0gYnVzaW5lc3MgPyBKU09OLnBhcnNlKGJ1c2luZXNzKT8udHlwZSA6ICdTVEFUSUMnXHJcbiAgICB0aGlzLmdldEFsbFNlY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYjogc3RyaW5nID0gXCJCQVNJQ1wiXHJcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzSWRcIik7XHJcbiAgdGFiczogYW55ID0gW1xyXG4gICAgeyB2YWx1ZTogXCJCQVNJQ1wiLCB2aWV3VmFsdWU6IFwiU2VjdGlvbiBTdHVkaW9cIiB9LFxyXG4gICAgLy8geyB2YWx1ZTogXCJJTlRFR1JBVElPTlNcIiwgdmlld1ZhbHVlOiBcIkR5bmFtaWNcIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJBUFBTXCIsIHZpZXdWYWx1ZTogXCJBcHBzXCIgfSxcclxuICAgIHsgdmFsdWU6IFwiU0FWRURcIiwgdmlld1ZhbHVlOiBcIlNhdmVkXCIgfVxyXG4gIF1cclxuXHJcbiAgc2VjdGlvbnM6IGFueSA9IFtdXHJcbiAgc2VsZWN0ZWRTZWN0aW9uOiBhbnkgPSBbXVxyXG4gIHNlbGVjdGVkU2VjdGlvbk5hbWU6IGFueSA9IFwiXCJcclxuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHRhYlNoaWZ0TG9hZGVyOiBib29sZWFuID0gZmFsc2VcclxuICByZWZlckVhcm5FeGlzdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgZXhwYW5kZWRDYXRlZ29yaWVzOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9XHJcblxyXG5cclxuICBzZWxlY3RlZENvbXBvbmVudDogYW55ID0gbnVsbFxyXG5cclxuICAvLyDilIDilIAgU2F2ZWQgdGFiIHN0YXRlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gIHNhdmVkU2VjdGlvbnM6IGFueSA9IHt9XHJcbiAgc2F2ZWRDYXRlZ29yeUtleXM6IHN0cmluZ1tdID0gW11cclxuICBzYXZlZExvYWRlcjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgc2VsZWN0ZWRTYXZlZENhdGVnb3J5OiBzdHJpbmcgPSAnJ1xyXG4gIHNlbGVjdGVkU2F2ZWRDb21wb25lbnQ6IGFueSA9IG51bGxcclxuXHJcbiAgLy8gTmV3OiBlbW9qaSBtYXAgZm9yIGNhdGVnb3JpZXNcclxuICBjYXRlZ29yeUVtb2ppTWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gICAgLy8gJ0hlcm8nOiAn8J+WvO+4jycsXHJcbiAgICAvLyAnU2VydmljZXMnOiAn8J+OgScsXHJcbiAgICAvLyAnRmVhdHVyZSc6ICfinKgnLFxyXG4gICAgLy8gJ0hvdyBJdCBXb3Jrcyc6ICfihLnvuI8nLFxyXG4gICAgLy8gJ1Rlc3RpbW9uaWFsJzogJ+KtkCcsXHJcbiAgICAvLyAnUHJpY2luZyc6ICfwn5KwJyxcclxuICAgIC8vICdGYXEnOiAn4p2TJyxcclxuICAgIC8vICdCbG9ncyc6ICfwn5OdJyxcclxuICAgIC8vICdNaXNjZWxsYW5lb3VzJzogJ/CflKcnLFxyXG4gICAgLy8gJ1RleHQnOiAn8J+ThCcsXHJcbiAgICAvLyAnTG9nbyc6ICfwn4+377iPJyxcclxuICAgIC8vICdDb250YWN0JzogJ+Kcie+4jycsXHJcbiAgICAvLyAnQ1RBJzogJ/Cfk6InLFxyXG4gICAgLy8gJ1RlYW0nOiAn8J+RpScsXHJcbiAgICAvLyAnVmlkZW8nOiAn8J+OrCcsXHJcbiAgICAvLyAnSW1hZ2UgJzogJ/CflrzvuI8nLFxyXG4gICAgJ0hlcm8nOiAn8J+agCcsXHJcbiAgJ1NlcnZpY2VzJzogJ/Cfp7AnLFxyXG4gICdGZWF0dXJlJzogJ+KcqCcsXHJcbiAgJ0hvdyBJdCBXb3Jrcyc6ICfwn6qEJyxcclxuICAnVGVzdGltb25pYWwnOiAn4q2QJyxcclxuICAnUHJpY2luZyc6ICfwn5KwJyxcclxuICAnRmFxJzogJ+KdkycsXHJcbiAgJ0Jsb2dzJzogJ/Cfk7AnLFxyXG5cclxuICAnQ2hvb3NlIFVzJzogJ/Cfm6HvuI8nLFxyXG4gICdMb2dvIENsb3VkJzogJ/Cfj6InLFxyXG4gICdOZXdzbGV0dGVyJzogJ/Cfk6knLFxyXG5cclxuICAnTWlzY2VsbGFuZW91cyc6ICfwn5OCJyxcclxuICAnVGV4dCc6ICfinI3vuI8nLFxyXG4gICdMb2dvJzogJ/CfjIgnLFxyXG5cclxuICAnQ29udGFjdCc6ICfimI7vuI8nLFxyXG4gICdDb250YWN0IFVzJzogJ/Cfk54nLFxyXG5cclxuICAnQ1RBJzogJ/CflKUnLFxyXG4gICdUZWFtJzogJ/CfkaUnLFxyXG5cclxuICAnQWJvdXQnOiAn4oS577iPJyxcclxuICAnR2FsbGVyeSc6ICfwn5a877iPJyxcclxuXHJcbiAgJ1ZpZGVvJzogJ/CfjqwnLFxyXG4gICdJbWFnZSc6ICfwn5a877iPJ1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlFbW9qaShjYXRlZ29yeTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5RW1vamlNYXBbY2F0ZWdvcnldIHx8ICfwn5OmJ1xyXG4gIH1cclxuXHJcbiAgZ2V0Rmlyc3RTZWN0aW9uTmFtZShjYXRlZ29yeTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5zZWN0aW9uc1tjYXRlZ29yeV1cclxuICAgIGlmIChzZWN0aW9ucyAmJiBzZWN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBzZWN0aW9uc1swXS5zZWN0aW9uTmFtZSB8fCBjYXRlZ29yeVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhdGVnb3J5XHJcbiAgfVxyXG5cclxuICAvLyBDYWxsZWQgYnkgdGFiIGNsaWNrIOKAlCB0cmlnZ2VycyBzYXZlZCBBUEkgb24gZmlyc3QgdmlzaXRcclxuICBvblRhYlNlbGVjdCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyBVbnNlbGVjdCBhbGwgYWN0aXZlIGNvbXBvbmVudCBzZWxlY3Rpb25zIHdoZW4gc3dpdGNoaW5nIHRhYnNcclxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBudWxsO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcCA9IFwiXCI7XHJcbiAgICB0aGlzLmV4cGFuZGVkQXBwcyA9IHt9O1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB2YWx1ZTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRUYWIpXHJcbiAgICBpZiAodmFsdWUgPT09ICdTQVZFRCcgJiYgIXRoaXMuc2F2ZWRMb2FkZXIpIHtcclxuICAgICAgdGhpcy5nZXRTYXZlZFNlY3Rpb25zKClcclxuICAgIH1cclxuICAgIGVsc2UgaWYodmFsdWUgPT0gJ0JBU0lDJyl7XHJcbiAgICAgIHRoaXMuZ2V0QWxsU2VjdGlvbnMoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHZhbHVlID09PSAnQVBQUycpIHtcclxuICAgICAgdGhpcy5nZXRBbGxBcHBzKCk7ICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcHNMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGFwcHNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0QWxsQXBwcygpIHtcclxuICAgIHRoaXMuYXBwc0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLmFwcHNMaXN0ID0gW107XHJcbiAgICB0aGlzLmVsZW1lbnRTZXJ2aWNlLmdldEFsbGFwcHModGhpcy5idXNpbmVzc0lkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFwcHNMaXN0ID0gcmVzLmRhdGEgfHwgW107XHJcbiAgICAgICAgdGhpcy5hcHBzTG9hZGVyID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIEF1dG8tZXhwYW5kIGFuZCBzZWxlY3QgZmlyc3QgYXBwIGlmIGF2YWlsYWJsZSBvbiB0YWIgbG9hZFxyXG4gICAgICAgIGlmICh0aGlzLmFwcHNMaXN0Lmxlbmd0aCA+IDAgJiYgIXRoaXMuc2VsZWN0ZWRBcHApIHtcclxuICAgICAgICAgIGNvbnN0IGZpcnN0QXBwID0gdGhpcy5hcHBzTGlzdFswXTtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQXBwQ2F0ZWdvcnkoZmlyc3RBcHAuYXBwTmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aGlzLmFwcHNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBcHBDYXRlZ29yeShhcHBOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGFwcCA9IHRoaXMuYXBwc0xpc3QuZmluZChhID0+IGEuYXBwTmFtZSA9PT0gYXBwTmFtZSk7XHJcbiAgICBpZiAoIWFwcCkgcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQXBwc1thcHBOYW1lXSkge1xyXG4gICAgICB0aGlzLmV4cGFuZGVkQXBwc1thcHBOYW1lXSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXBwID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQgPSBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5leHBhbmRlZEFwcHMpLmZvckVhY2goayA9PiB0aGlzLmV4cGFuZGVkQXBwc1trXSA9IGZhbHNlKTtcclxuXHJcbiAgICAgIGlmIChhcHAuYXBwSW5zdGFsbGVkKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRlZEFwcHNbYXBwTmFtZV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHAgPSBhcHBOYW1lO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBTZWN0aW9ucyA9IGFwcC5jb21wb25lbnRzIHx8IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQXBwU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQXBwQ29tcG9uZW50ID0gdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zWzBdLmRhdGE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXBwID0gYXBwTmFtZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXBwU2VjdGlvbnMgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQXBwQ29tcG9uZW50ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGVJbnN0YWxsYXRpb24oYXBwOiBhbnksIHByb2dyZXNzUmVmOiBhbnkpIHtcclxuICAgIGFwcC5hcHBJbnN0YWxsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5leHBhbmRlZEFwcHNbYXBwLmFwcE5hbWVdID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcHAgPSBhcHAuYXBwTmFtZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcHBTZWN0aW9ucyA9IGFwcC5jb21wb25lbnRzIHx8IFtdO1xyXG4gICAgcHJvZ3Jlc3NSZWYuY2xvc2UoKTtcclxuICAgIFxyXG4gICAgaWYgKGFwcC5hcHBOYW1lID09PSAnQXBwb2ludG1lbnQnKSB7XHJcbiAgICAgIHRoaXMub3Blbkluc3RhbGxDb21wbGV0ZURpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5zdGFsbEFwcChhcHA6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICB0aGlzLmluc3RhbGxpbmdBcHAgPSBhcHA7XHJcblxyXG4gICAgLy8gMS4gUmVzZXQgc3RlcHMgdG8gc3RlcCAwIGFjdGl2ZVxyXG4gICAgdGhpcy5pbnN0YWxsU3RlcHMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IGBJbnN0YWxsaW5nICR7YXBwLmFwcE5hbWV9IGFwcGAsIHN0YXR1czogJ2FjdGl2ZScgfSxcclxuICAgICAgeyBsYWJlbDogJ0NyZWF0aW5nIHJlcXVpcmVkIHBhZ2VzIGZvciB5b3VyIGFwcCcsIHN0YXR1czogJ3BlbmRpbmcnIH1cclxuICAgIF07XHJcblxyXG4gICAgaWYgKGFwcC5hcHBOYW1lID09PSAnQXBwb2ludG1lbnQnKSB7XHJcbiAgICAgIHRoaXMuaW5zdGFsbFN0ZXBzLnB1c2goeyBsYWJlbDogJ0NyZWF0aW5nIG9uZSBzdG9yZScsIHN0YXR1czogJ3BlbmRpbmcnIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgLy8gMi4gT3BlbiBwcm9ncmVzcyBkaWFsb2cgaW4gY2VudGVyIG9mIHRoZSBwYWdlXHJcbiAgICBjb25zdCBwcm9ncmVzc1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4odGhpcy5pbnN0YWxsUHJvZ3Jlc3NUZW1wbGF0ZSwge1xyXG4gICAgICB3aWR0aDogJzQ4MHB4JyxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBwYW5lbENsYXNzOiAnc2ltcG8taW5zdGFsbC1kaWFsb2ctcGFuZWwnXHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgYXBpRG9uZSA9IGZhbHNlO1xyXG4gICAgbGV0IHByb2dyZXNzRG9uZSA9IGZhbHNlO1xyXG5cclxuICAgIC8vIDMuIFRyaWdnZXIgQVBJIENhbGxcclxuICAgIHRoaXMuZWRpdG9yU2VydmljZS5pbnN0YWxsQXBwKGFwcC5hcHBJZCwgdGhpcy5idXNpbmVzc0lkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBhcGlEb25lID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHByb2dyZXNzRG9uZSkge1xyXG4gICAgICAgICAgdGhpcy5jb21wbGV0ZUluc3RhbGxhdGlvbihhcHAsIHByb2dyZXNzUmVmKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdBcHAgaW5zdGFsbGF0aW9uIGZhaWxlZCcsIGVycik7XHJcbiAgICAgICAgcHJvZ3Jlc3NSZWYuY2xvc2UoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gNC4gQW5pbWF0ZWQgcHJvZ3Jlc3Npb24gYmFzZWQgb24gbnVtYmVyIG9mIHN0ZXBzXHJcbiAgICBpZiAoYXBwLmFwcE5hbWUgPT09ICdBcHBvaW50bWVudCcpIHtcclxuICAgICAgLy8gMy1zdGVwIGZsb3cgKDYgc2Vjb25kcyB0b3RhbClcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbFN0ZXBzWzBdKSB0aGlzLmluc3RhbGxTdGVwc1swXS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbFN0ZXBzWzFdKSB0aGlzLmluc3RhbGxTdGVwc1sxXS5zdGF0dXMgPSAnYWN0aXZlJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sIDIwMDApO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbFN0ZXBzWzFdKSB0aGlzLmluc3RhbGxTdGVwc1sxXS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbFN0ZXBzWzJdKSB0aGlzLmluc3RhbGxTdGVwc1syXS5zdGF0dXMgPSAnYWN0aXZlJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sIDQwMDApO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFsbFN0ZXBzWzJdKSB0aGlzLmluc3RhbGxTdGVwc1syXS5zdGF0dXMgPSAnc3VjY2Vzcyc7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHByb2dyZXNzRG9uZSA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChhcGlEb25lKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlSW5zdGFsbGF0aW9uKGFwcCwgcHJvZ3Jlc3NSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgNjAwMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAyLXN0ZXAgZmxvdyAoNCBzZWNvbmRzIHRvdGFsKVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMF0pIHRoaXMuaW5zdGFsbFN0ZXBzWzBdLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMV0pIHRoaXMuaW5zdGFsbFN0ZXBzWzFdLnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgMjAwMCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMV0pIHRoaXMuaW5zdGFsbFN0ZXBzWzFdLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcHJvZ3Jlc3NEb25lID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaURvbmUpIHtcclxuICAgICAgICAgIHRoaXMuY29tcGxldGVJbnN0YWxsYXRpb24oYXBwLCBwcm9ncmVzc1JlZik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCA0MDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE92ZXJhbGxQcm9ncmVzc1BlcmNlbnQoKTogbnVtYmVyIHtcclxuICAgIGlmICghdGhpcy5pbnN0YWxsU3RlcHMgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5pbnN0YWxsU3RlcHMpIHx8IHRoaXMuaW5zdGFsbFN0ZXBzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBsZXRlZENvdW50ID0gdGhpcy5pbnN0YWxsU3RlcHMuZmlsdGVyKHMgPT4gcyAmJiBzLnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnKS5sZW5ndGg7XHJcbiAgICBjb25zdCBhY3RpdmVDb3VudCA9IHRoaXMuaW5zdGFsbFN0ZXBzLmZpbHRlcihzID0+IHMgJiYgcy5zdGF0dXMgPT09ICdhY3RpdmUnKS5sZW5ndGg7XHJcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuaW5zdGFsbFN0ZXBzLmxlbmd0aDtcclxuICAgIHJldHVybiAoY29tcGxldGVkQ291bnQgLyB0b3RhbCkgKiAxMDAgKyAoYWN0aXZlQ291bnQgPiAwID8gKDEgLyB0b3RhbCkgKiA1MCA6IDApO1xyXG4gIH1cclxuXHJcbiAgb3Blbkluc3RhbGxDb21wbGV0ZURpYWxvZygpIHtcclxuICAgIHRoaXMubWF0RGlhbG9nLm9wZW4odGhpcy5pbnN0YWxsQ29tcGxldGVUZW1wbGF0ZSwge1xyXG4gICAgICB3aWR0aDogJzUyMHB4JyxcclxuICAgICAgcGFuZWxDbGFzczogJ3NpbXBvLWNvbXBsZXRlLWRpYWxvZy1wYW5lbCdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RUb0FwcG9pbnRtZW50cygpIHtcclxuICAgIC8vIHdpbmRvdy5vcGVuKCdodHRwczovL2Rldi1hcHAuc2ltcG8uYWkvYWRtaW4vYXBwb2ludG1lbnRzL21hbmFnZS1hcHBvaW50bWVudHMnLCAnX2JsYW5rJyk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hZG1pbi9hcHBvaW50bWVudHMvbWFuYWdlLWFwcG9pbnRtZW50cyddKVxyXG4gIH1cclxuXHJcbiAgY2xvc2VBbGxEaWFsb2dzKCkge1xyXG4gICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTtcclxuICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFwcENvbXBvbmVudChzZWNEYXRhOiBhbnksIGFwcE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcENvbXBvbmVudCA9IHNlY0RhdGE7XHJcbiAgICBjb25zdCBhcHAgPSB0aGlzLmFwcHNMaXN0LmZpbmQoYSA9PiBhLmFwcE5hbWUgPT09IGFwcE5hbWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zID0gYXBwID8gKGFwcC5jb21wb25lbnRzIHx8IFtdKSA6IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcCA9IGFwcE5hbWU7XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5leHBhbmRlZEFwcHMpLmZvckVhY2goayA9PiB0aGlzLmV4cGFuZGVkQXBwc1trXSA9IGZhbHNlKTtcclxuICAgIHRoaXMuZXhwYW5kZWRBcHBzW2FwcE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHAtY29tcC0nICsgc2VjRGF0YS5jb21wb25lbnRJZCk7XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QXBwQ29tcG9uZW50QW5kSGlnaGxpZ2h0KGVsZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwQ29tcG9uZW50ID0gZWxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRBcHBPYmooKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcHBzTGlzdC5maW5kKGEgPT4gYS5hcHBOYW1lID09PSB0aGlzLnNlbGVjdGVkQXBwKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllc1tjYXRlZ29yeV0pIHtcclxuICAgICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldID0gZmFsc2VcclxuICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWUgPSBcIlwiXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBudWxsXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllcykuZm9yRWFjaChrID0+IHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzW2tdID0gZmFsc2UpXHJcbiAgICAgIHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzW2NhdGVnb3J5XSA9IHRydWVcclxuICAgICAgdGhpcy5zZWxlY3RTZWN0aW9uKGNhdGVnb3J5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U2F2ZWRTZWN0aW9ucygpIHtcclxuICAgIHRoaXMuc2F2ZWRMb2FkZXIgPSB0cnVlXHJcbiAgICB0aGlzLnNhdmVkU2VjdGlvbnMgPSB7fVxyXG4gICAgdGhpcy5zYXZlZENhdGVnb3J5S2V5cyA9IFtdXHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDYXRlZ29yeSA9ICcnXHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBudWxsXHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsU2F2ZWRTZWN0aW9uc0FwaSh0aGlzLmJ1c2luZXNzSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmRhdGE/LmFkZE5ld1NlY3Rpb24pIHtcclxuICAgICAgICAgIGRlbGV0ZSByZXMuZGF0YS5hZGROZXdTZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmVkU2VjdGlvbnMgPSByZXMuZGF0YSB8fCB7fVxyXG4gICAgICAgIHRoaXMuc2F2ZWRDYXRlZ29yeUtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnNhdmVkU2VjdGlvbnMpXHJcbiAgICAgICAgaWYgKHRoaXMuc2F2ZWRDYXRlZ29yeUtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFNhdmVkQ2F0ZWdvcnkgPSB0aGlzLnNhdmVkQ2F0ZWdvcnlLZXlzWzBdXHJcbiAgICAgICAgICBpZiAodGhpcy5zYXZlZFNlY3Rpb25zW3RoaXMuc2VsZWN0ZWRTYXZlZENhdGVnb3J5XT8uY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZENvbXBvbmVudCA9IHRoaXMuc2F2ZWRTZWN0aW9uc1t0aGlzLnNlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmVkTG9hZGVyID0gZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgdGhpcy5zYXZlZExvYWRlciA9IGZhbHNlIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTYXZlZENhdGVnb3J5KGNhdGVnb3J5S2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTYXZlZENhdGVnb3J5ID0gY2F0ZWdvcnlLZXlcclxuICAgIGlmICh0aGlzLnNhdmVkU2VjdGlvbnNbY2F0ZWdvcnlLZXldPy5jb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFNhdmVkQ29tcG9uZW50ID0gdGhpcy5zYXZlZFNlY3Rpb25zW2NhdGVnb3J5S2V5XS5jb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2F2ZWRDb21wb25lbnQoY29tcDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBjb21wO1xyXG4gIH1cclxuXHJcbiAgYWRkU2F2ZWRTZWN0aW9uKGNvbXBvbmVudDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYWRkTmV3U2VjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnRJZDogY29tcG9uZW50LmNvbXBvbmVudElkLFxyXG4gICAgICBpZDogY29tcG9uZW50LmlkLFxyXG4gICAgICBpbmRleDogdGhpcy5kYXRhLmluZGV4LFxyXG4gICAgICBwb3NpdGlvbjogdGhpcy5kYXRhLnBvc2l0aW9uLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICAgIHNlY3Rpb25UeXBlOiBjb21wb25lbnQuc2VjdGlvblR5cGUsXHJcbiAgICAgIHNhdmVkQ29tcG9uZW50OiBjb21wb25lbnRcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDb21wb25lbnQoc2VjOiBhbnksIGNhdGVnb3J5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBzZWNcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1tjYXRlZ29yeV1cclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSA9IGNhdGVnb3J5XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5leHBhbmRlZENhdGVnb3JpZXMpLmZvckVhY2goayA9PiB0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllc1trXSA9IGZhbHNlKVxyXG4gICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldID0gdHJ1ZVxyXG5cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21wLScgKyBzZWMuY29tcG9uZW50SWQpO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IGVsZVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2VjdGlvbihlbGU6IGFueSkge1xyXG4gICAgdGhpcy50YWJTaGlmdExvYWRlciA9IHRydWVcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1tlbGVdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25OYW1lID0gZWxlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50YWJTaGlmdExvYWRlciA9IGZhbHNlXHJcbiAgICB9LCA4MDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2VjdGlvbnMoKSB7XHJcbiAgICB0aGlzLmNoZWNrQXBwSW5zdGFsbGVkKClcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldENvbXBvbmVudEFwaSh0aGlzLmJ1c2luZXNzVHlwZSA9PT0gJ1NUQVRJQycgPyB0aGlzLmJ1c2luZXNzVHlwZSA6IHVuZGVmaW5lZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgaWYgKHJlcz8uZGF0YT8uQXBwb2ludG1lbnQpIHtcclxuICAgICAgICAgIGRlbGV0ZSByZXMuZGF0YS5BcHBvaW50bWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlZmVyRWFybkV4aXN0KSB7XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gZGF0YVtrZXldLmZpbHRlcihcclxuICAgICAgICAgICAgICAoc2VjdGlvbjogYW55KSA9PiBzZWN0aW9uLnNlY3Rpb25UeXBlICE9PSAncmVmZXJlYXJuJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlY3Rpb25zID0gZGF0YVxyXG4gICAgICAgIHRoaXMuZHVtbXlTZWN0aW9ucyA9IGRhdGFcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLnNlY3Rpb25zKVswXVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1t0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWVdXHJcblxyXG4gICAgICAgIC8vIEF1dG8tZXhwYW5kIGZpcnN0IGNhdGVnb3J5XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbdGhpcy5zZWxlY3RlZFNlY3Rpb25OYW1lXSA9IHRydWVcclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2VjdGlvbj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSB0aGlzLnNlbGVjdGVkU2VjdGlvblswXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tBcHBJbnN0YWxsZWQoKSB7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrQXBwSW5zdGFsbGVkKHRoaXMuYnVzaW5lc3NJZCwgJ1JlZmVyIGFuZCBFYXJuJykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZlckVhcm5FeGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHsgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldE9iamVjdEtleXMob2JqOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VjdGlvbkxlbmd0aChzZWN0aW9uOiBhbnkpIHtcclxuICAgIHJldHVybiBOdW1iZXIoT2JqZWN0LmtleXMoc2VjdGlvbikubGVuZ3RoKVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3U2VjdGlvbihjb21wb25lbnRJZDogYW55LCBzZWN0aW9uVHlwZTogYW55LCBldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYWRkTmV3U2VjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnRJZDogY29tcG9uZW50SWQsXHJcbiAgICAgIGluZGV4OiB0aGlzLmRhdGEuaW5kZXgsXHJcbiAgICAgIHBvc2l0aW9uOiB0aGlzLmRhdGEucG9zaXRpb24sXHJcbiAgICAgIHN0YXR1czogdHJ1ZSxcclxuICAgICAgc2VjdGlvblR5cGU6IHNlY3Rpb25UeXBlXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgYWRkQXBwU2VjdGlvbihjb21wb25lbnQ6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmFkZE5ld1NlY3Rpb25DbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50SWQ6IGNvbXBvbmVudC5jb21wb25lbnRJZCxcclxuICAgICAgaWQ6IGNvbXBvbmVudC5pZCB8fCBudWxsLFxyXG4gICAgICBpbmRleDogdGhpcy5kYXRhLmluZGV4LFxyXG4gICAgICBwb3NpdGlvbjogdGhpcy5kYXRhLnBvc2l0aW9uLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICAgIHNlY3Rpb25UeXBlOiBjb21wb25lbnQuc2VjdGlvblR5cGUsXHJcbiAgICAgIHNhdmVkQ29tcG9uZW50OiBjb21wb25lbnRcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBZGRTZWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnQkFTSUMnICYmIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGROZXdTZWN0aW9uKHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuY29tcG9uZW50SWQsIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuc2VjdGlvblR5cGUsIGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ0FQUFMnICYmIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGRBcHBTZWN0aW9uKHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ1NBVkVEJyAmJiB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGRTYXZlZFNlY3Rpb24odGhpcy5zZWxlY3RlZFNhdmVkQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiXHJcbiAgZHVtbXlTZWN0aW9uczogYW55XHJcbiAgZHVtbXkyOiBhbnkgPSB7fVxyXG4gIGlzU2VhcmNoOiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgc2VhcmNoU2VjdGlvbnMoKSB7XHJcbiAgICB0aGlzLmlzU2VhcmNoID0gZmFsc2VcclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IHRoaXMuZHVtbXlTZWN0aW9uc1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuZHVtbXkyID0ge31cclxuICAgIGZvciAobGV0IGVsZSBvZiBPYmplY3Qua2V5cyh0aGlzLmR1bW15U2VjdGlvbnMpKSB7XHJcbiAgICAgIGlmIChlbGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICB0aGlzLmR1bW15MltlbGVdID0gWy4uLnRoaXMuZHVtbXlTZWN0aW9uc1tlbGVdXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBqIG9mIHRoaXMuZHVtbXlTZWN0aW9uc1tlbGVdKSB7XHJcbiAgICAgICAgICBpZiAoai5zZWN0aW9uTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHVtbXkyW2VsZV0pIHtcclxuICAgICAgICAgICAgICB0aGlzLmR1bW15MltlbGVdID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kdW1teTJbZWxlXS5wdXNoKGopO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWN0aW9ucyA9IHsgLi4udGhpcy5kdW1teTIgfTtcclxuICAgIGlmICh0aGlzLmdldFNlY3Rpb25MZW5ndGgodGhpcy5zZWN0aW9ucykgPT0gMClcclxuICAgICAgdGhpcy5pc1NlYXJjaCA9IHRydWVcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSA9IE9iamVjdC5rZXlzKHRoaXMuc2VjdGlvbnMpWzBdXHJcbiAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbT2JqZWN0LmtleXModGhpcy5zZWN0aW9ucylbMF1dXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFNlY3Rpb24/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29tcG9uZW50ID0gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29tcG9uZW50ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZHVtbXkyID0ge31cclxuICB9XHJcbn0iLCI8IS0tIDxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICA8ZGl2PlNlbGVjdCBUZW1wbGF0ZTwvZGl2PlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4IGNwXCIgKGNsaWNrKT1cImRpYWxvZy5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIGNsb3NlXHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhcmVudC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXIgZC1mbGV4IGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzMxNDY2MWMxNzQxODQ0MjM0NDQyVmVjdG9yJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cInNlYXJjaC1iYXItaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIFNlY3Rpb25zXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoU2VjdGlvbnMoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWFyb3VuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIHRhYnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gZWxlLnZhbHVlXCIgW2NsYXNzLmFjdGl2ZS10YWJdPVwiZWxlLnZhbHVlID09IHNlbGVjdGVkVGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGUudmlld1ZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlLnZhbHVlID09ICdQUk8nICYmIGVsZS52YWx1ZSAhPSBzZWxlY3RlZFRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0zMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzQ2ODI4MWMxNzQ0Njk5NjY0ODU4RnJhbWUlMjAxMjQ0ODMxNzQwJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwicHJvLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdCQVNJQyc7IGVsc2UgcHJvVGFiQ29udGVudFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VhcmNoO2Vsc2UgZW1wdHlTY3JlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWNvbnRhaW5lciBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zaWRlcGFuZWxcIiAqbmdJZj1cIiFsb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIGdldE9iamVjdEtleXMoc2VjdGlvbnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS1zZWN0aW9uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFNlY3Rpb24oZWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZS1zZWN0aW9uXT1cInNlbGVjdGVkU2VjdGlvbiA9PSBzZWN0aW9uc1tlbGVdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uID09IHNlY3Rpb25zW2VsZV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy85NTQzODNjMTc0MTg1MDM5MjgwMkdyb3VwJTIwMTcwNzQ4MTg3OS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImljb24gdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkU2VjdGlvbiAhPSBzZWN0aW9uc1tlbGVdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODQ2MTQ1YzE3NDE4NTA1NzQ4NjRJY29uJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImljb24gdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1yZW5kZXItc2VjdGlvblwiICpuZ0lmPVwiICFsb2FkZXIgJiYgIXRhYlNoaWZ0TG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTZWN0aW9uTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhIHNlY3Rpb24gdG8gYWRkIHRvIHlvdXIgcGFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIHNlbGVjdGVkU2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPnt7ZWxlLnNlY3Rpb25OYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBjcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTmV3U2VjdGlvbihlbGUuY29tcG9uZW50SWQsZWxlLnNlY3Rpb25UeXBlLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGU/LmltYWdlOyBlbHNlIG5vSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlPy5pbWFnZVwiIGFsdD1cInNlY3Rpb24gaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9pbWcuZnJlZXBpay5jb20vcHJlbWl1bS12ZWN0b3IvZGVmYXVsdC1pbWFnZS1pY29uLXZlY3Rvci1taXNzaW5nLXBpY3R1cmUtcGFnZS13ZWJzaXRlLWRlc2lnbi1tb2JpbGUtYXBwLW5vLXBob3RvLWF2YWlsYWJsZV84NzU0My0xMTA5My5qcGdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJzZWN0aW9uIGltYWdlXCIgY2xhc3M9XCJoLTMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zaWRlcGFuZWxcIiAqbmdJZj1cImxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMSwxLDEsMSwxLDEsMSwxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc4dmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzY1JScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEzcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbScgOiAnMTBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMtcmVuZGVyLXNlY3Rpb25cIiAqbmdJZj1cImxvYWRlciB8fCB0YWJTaGlmdExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzIwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogJzN2aCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNXB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc2MCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA6ICcydmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gICA8bmd4LXNrZWxldG9uLWxvYWRlciBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjUlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA6ICcydmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNXB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogJzI1dmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbic6JzJweCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcm9UYWJDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktZGl2IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lci0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzM3NzA3NmMxNzQzMTU0ODA3NjgzaW1hZ2UlMjAlMjg2JTI5LnBuZ1wiIGFsdD1cImVtcHR5LWltZ1wiIGNsYXNzPVwiZW1wdHktaW1nIFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ29taW5nIFNvb25cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9vcHMtc3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0xIHRleHQtY2VudGVyXCI+V29vZiEgU29tZXRoaW5nIHBhd3NvbWUgaXMgY29taW5nITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvb3BzLXN1Yi10ZXh0LTIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSGV5IGhvb21hbiEgSSBqdXN0IHNuaWZmZWQgb3V0IHNvbWV0aGluZyBzdXBlciBleGNpdGluZy4uLiBhbmQgaXTigJlzIGFsbW9zdCBoZXJlISBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTY3JlZW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1kaXYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzc3MDc2YzE3NDMxNTQ4MDc2ODNpbWFnZSUyMCUyODYlMjkucG5nXCIgYWx0PVwiZW1wdHktaW1nXCIgY2xhc3M9XCJlbXB0eS1pbWcgXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvb3BzLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICBPb3BzISBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9vcHMtc3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0xIHRleHQtY2VudGVyXCI+SSBzbmlmZmVkIGV2ZXJ5d2hlcmUsIGJ1dCBJIGNvdWxkbid0IGZpbmQgd2hhdCB5b3UncmUgbG9va2luZyBmb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0yIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1heWJlIHRyeSBhIGRpZmZlcmVudCBzZWFyY2g/IFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPiAtLT5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXIgZmFkZS1pblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5BZGQgYSBzZWN0aW9uPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zdWJ0aXRsZVwiPkNob29zZSBhIHNlY3Rpb24g4oCUIHlvdSBjYW4gcmVvcmRlciBvciByZW1vdmUgaXQgYW55IHRpbWUuPC9kaXY+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImRpYWxvZy5jbG9zZSgpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBhcmVudC1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgICAgIDwhLS0gVGFicyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXRhYnMtY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmYWRlLWluXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZSBvZiB0YWJzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXRhYlwiIChjbGljayk9XCJvblRhYlNlbGVjdChlbGUudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlLXRvcC10YWJdPVwiZWxlLnZhbHVlID09IHNlbGVjdGVkVGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGUudmlld1ZhbHVlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBTZWFyY2ggLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXItY29udGFpbmVyIGZhZGUtaW5cIiAqbmdJZj1cInNlbGVjdGVkVGFiICE9ICdTQVZFRCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXIgZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzE0NjYxYzE3NDE4NDQyMzQ0NDJWZWN0b3IlMjAlMjgxJTI5LnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9J1NlYXJjaCBzZWN0aW9uLi4uJyBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFNlY3Rpb25zKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gJ0JBU0lDJ1wiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NlYXJjaDsgZWxzZSBlbXB0eVNjcmVlblwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgQWRkIC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicXVpY2stYWRkLWNvbnRhaW5lciBmYWRlLWluIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cIiFsb2FkZXIgJiYgIXNlYXJjaFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWRkLWxhYmVsXCI+UXVpY2sgYWRkOjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWljay1hZGQtY2hpcHMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGdldE9iamVjdEtleXMoc2VjdGlvbnMpOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA8IDZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stY2hpcCBzdGFnZ2VyLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTZWN0aW9uKGNhdGVnb3J5KTsgdG9nZ2xlQ2F0ZWdvcnkoY2F0ZWdvcnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZS1xdWljay1jaGlwXT1cInNlbGVjdGVkU2VjdGlvbk5hbWUgPT09IGNhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcC1lbW9qaVwiPnt7Z2V0Q2F0ZWdvcnlFbW9qaShjYXRlZ29yeSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRGaXJzdFNlY3Rpb25OYW1lKGNhdGVnb3J5KX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBDT05URU5UIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGZhZGUtaW4gZC1mbGV4XCIgKm5nSWY9XCIhbG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMRUZUIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGViYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1pY29uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPuKcqDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTE0XCI+QUkgUmVjb21tZW5kZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBnZXRPYmplY3RLZXlzKHNlY3Rpb25zKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtZW5kIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhdGVnb3J5KGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXRlZ29yeS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRDYXRlZ29yeUVtb2ppKGNhdGVnb3J5KX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXRlZ29yeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhdGVnb3J5LWNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7c2VjdGlvbnNbY2F0ZWdvcnldPy5sZW5ndGh9fSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhdGVnb3J5LWFycm93XCIgKm5nSWY9XCJleHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRfbGVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjYXRlZ29yeS1hcnJvd1wiICpuZ0lmPVwiIWV4cGFuZGVkQ2F0ZWdvcmllc1tjYXRlZ29yeV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZF9tb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWl0ZW1zIGQtZmxleCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiZXhwYW5kZWRDYXRlZ29yaWVzW2NhdGVnb3J5XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWMgb2Ygc2VjdGlvbnNbY2F0ZWdvcnldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZENvbXBvbmVudD8uY29tcG9uZW50SWQgPT09IHNlYy5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbXBvbmVudChzZWMsIGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VjLnNlY3Rpb25OYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWdyb3VwLWxhYmVsXCI+e3tzZWxlY3RlZFNlY3Rpb25OYW1lIHx8ICdTZWN0aW9ucyd9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWxpc3QgZC1mbGV4IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24gJiYgc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRTZWN0aW9uOyBsZXQgaSA9IGluZGV4XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInY29tcC0nICsgZWxlLmNvbXBvbmVudElkXCIgY2xhc3M9XCJzZWN0aW9uLWNhcmQgc3RhZ2dlci1pdGVtXCIgW3N0eWxlLmFuaW1hdGlvbi1kZWxheV09XCJpICogNDAgKyAnbXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWN0aW9uLWNhcmQtc2VsZWN0ZWRdPVwic2VsZWN0ZWRDb21wb25lbnQ/LmNvbXBvbmVudElkID09PSBlbGUuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGUpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwiZWxlLnNlY3Rpb25UeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSArIHt7ZWxlLnNlY3Rpb25UeXBlIHwgdXBwZXJjYXNlfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsge3tlbGUuc2VjdGlvbk5hbWUgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlPy5pbWFnZTsgZWxzZSBub0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJlbGU/LmltYWdlXCIgYWx0PVwic2VjdGlvbiBwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8taW1hZ2UtcGxhY2Vob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+aW1hZ2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1pbmZvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtbmFtZVwiPnt7ZWxlLnNlY3Rpb25OYW1lfX08L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtZGVzY1wiICpuZ0lmPVwiZWxlLmRlc2NcIj57e2VsZS5kZXNjIHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjYXJkLWNoZWNrLWljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gZWxlLmNvbXBvbmVudElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUgZmFkZS1pblwiICpuZ0lmPVwiIXNlbGVjdGVkU2VjdGlvbiB8fCBzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbXB0eS1wYWdlLWljb25cIj5hdXRvX2F3ZXNvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXRpdGxlXCI+U2VsZWN0IGEgY2F0ZWdvcnk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdWJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENob29zZSBhbnkgY2F0ZWdvcnkgZnJvbSB0aGUgbGVmdCBzaWRlYmFyIHRvIGV4cGxvcmUgYW5kIGFkZCBzZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGQtZmxleFwiICpuZ0lmPVwibG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFsxLDEsMSwxLDEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnOTAlJywgaGVpZ2h0OiAnMzZweCcsICdib3JkZXItcmFkaXVzJzogJzhweCcsICdtYXJnaW4tYm90dG9tJzogJzZweCcgfVwiPjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbMSwxLDEsMV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzQwJScsIGhlaWdodDogJzIwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTgwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc2MCUnLCBoZWlnaHQ6ICcxNnB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnU0FWRUQnXCI+XHJcbiAgICAgICAgICAgIDwhLS0gTG9hZGVyIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sYXlvdXQgZC1mbGV4XCIgKm5nSWY9XCJzYXZlZExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxLDEsMV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnOTAlJywgaGVpZ2h0OiAnMzZweCcsICdib3JkZXItcmFkaXVzJzogJzhweCcsICdtYXJnaW4tYm90dG9tJzogJzhweCcgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmRcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206MTJweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzQwJScsIGhlaWdodDogJzE4cHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc2MCUnLCBoZWlnaHQ6ICcxNHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkZWQ6IGNhdGVnb3JpZXMgKyByaWdodCBjb21wb25lbnQgY2FyZCBwcmV2aWV3IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sYXlvdXQgZmFkZS1pbiBkLWZsZXhcIiAqbmdJZj1cIiFzYXZlZExvYWRlciAmJiBzYXZlZENhdGVnb3J5S2V5cy5sZW5ndGggPiAwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBMRUZUOiBjb21wb25lbnQgY2F0ZWdvcmllcyBsaXN0IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlZC1wYWdlcy1sYWJlbFwiPlNhdmVkIFNlY3Rpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0S2V5IG9mIHNhdmVkQ2F0ZWdvcnlLZXlzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlZC1wYWdlLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFNhdmVkQ2F0ZWdvcnkgPT09IGNhdEtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2F2ZWRDYXRlZ29yeShjYXRLZXkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzYXZlZC1wYWdlLWljb25cIj5hcnRpY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2F2ZWQtcGFnZS1uYW1lXCI+e3tjYXRLZXl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWdyb3VwLWxhYmVsXCI+Q29tcG9uZW50IFByZXZpZXc8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWxpc3QgZC1mbGV4IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZCBmYWRlLWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWN0aW9uLWNhcmQtc2VsZWN0ZWRdPVwic2VsZWN0ZWRTYXZlZENvbXBvbmVudD8uaWQgPT09IHNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQ/LmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTYXZlZENvbXBvbmVudChzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VjdGlvbiB0eXBlIGJhZGdlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwic2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvblR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQuc2VjdGlvblR5cGUuc3BsaXQoJ18nKS5qb2luKCcgJykgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcmV2aWV3IGFyZWEgKFNob3cgaW1hZ2UgaWYgcHJlc2VudCwgZmFsbGJhY2sgdG8gcGxhY2Vob2xkZXIpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5pbWFnZSAmJiBzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50Py5zdHlsZXM/LmJhY2tncm91bmQ/LnNob3dJbWFnZTsgZWxzZSBzYXZlZE5vSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuaW1hZ2VcIiBhbHQ9XCJzZWN0aW9uIHByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NhdmVkTm9JbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhdmVkLXByZXZpZXctcGxhY2Vob2xkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+bGF5ZXJzPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvblR5cGU/LnNwbGl0KCdfJyk/LmpvaW4oJyAnKSB8fCAnU2F2ZWQgQ29tcG9uZW50J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDYXJkIGluZm8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkLWluZm8gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtbmFtZVwiPnt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvbk5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkLWRlc2NcIiAqbmdJZj1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQ/LmRlc2NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudC5kZXNjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2FyZC1jaGVjay1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFNhdmVkQ29tcG9uZW50Py5pZCA9PT0gc2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlZCBJbiBmb290ZXIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2F2ZWQtY2FyZC1mb290ZXJcIiAqbmdJZj1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS51c2VkSW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlZC1pbi1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ1c2VkLWluLWljb25cIj53ZWI8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZWQtaW4tdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2VkIEluICh7e3NhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS51c2VkSW4ubGVuZ3RofX0gUGFnZXMpOjwvc3Ryb25nPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLnVzZWRJbi5qb2luKCcsICcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEVtcHR5OiBubyBzYXZlZCBkYXRhIGF0IGFsbCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlIGZhZGUtaW5cIiAqbmdJZj1cIiFzYXZlZExvYWRlciAmJiBzYXZlZENhdGVnb3J5S2V5cy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4taWNvbnMtcG5nLmZsYXRpY29uLmNvbS81MTIvNDA3Ni80MDc2NTQ5LnBuZ1wiIGFsdD1cImVtcHR5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIj5ObyBzYXZlZCBzZWN0aW9uczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCI+U2VjdGlvbnMgeW91IHNhdmUgZnJvbSBwYWdlcyB3aWxsIGFwcGVhciBoZXJlPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnQVBQUydcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS0gU2tlbGV0b24gTG9hZGVyIGR1cmluZyBBUEkgbG9hZCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGQtZmxleFwiICpuZ0lmPVwiYXBwc0xvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzkwJScsIGhlaWdodDogJzM2cHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOjEycHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc0MCUnLCBoZWlnaHQ6ICcxOHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnOHB4JywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkZWQgYXBwcyBsaXN0IGFuZCBwcmV2aWV3IGJvYXJkcyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGZhZGUtaW4gZC1mbGV4XCIgKm5nSWY9XCIhYXBwc0xvYWRlciAmJiBhcHBzTGlzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIExFRlQgU0lERUJBUiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGViYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFwcCBIZWFkZXIgUm93IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQXBwQ2F0ZWdvcnkoYXBwLmFwcE5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIm1pbi13aWR0aDogMDsgZmxleDogMTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXRlZ29yeS1pY29uXCI+e3thcHBJY29uTWFwW2FwcC5hcHBOYW1lXSB8fCAn8J+Tpid9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMyBmdy1zZW1pYm9sZFwiIHN0eWxlPVwidGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IG92ZXJmbG93OiBoaWRkZW47IHdoaXRlLXNwYWNlOiBub3dyYXA7IG1pbi13aWR0aDogMDsgZmxleDogMTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YXBwLmFwcE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ29tcGFjdCBhY3RpdmUgZ3JlZW4gc3RhdHVzIGRvdCBmb3IgaW5zdGFsbGVkIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1kb3QtaW5zdGFsbGVkXCIgKm5nSWY9XCJhcHAuYXBwSW5zdGFsbGVkXCIgdGl0bGU9XCJJbnN0YWxsZWRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW5zdGFsbCBCdXR0b24gaWYgbm90IGluc3RhbGxlZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hcHAtaW5zdGFsbC1zbWFsbFwiICpuZ0lmPVwiIWFwcC5hcHBJbnN0YWxsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc3RhbGxBcHAoYXBwLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0YWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2F0ZWdvcnktYXJyb3dcIiAqbmdJZj1cImV4cGFuZGVkQXBwc1thcHAuYXBwTmFtZV0gJiYgYXBwLmFwcEluc3RhbGxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kX2xlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2F0ZWdvcnktYXJyb3dcIiAqbmdJZj1cIiFleHBhbmRlZEFwcHNbYXBwLmFwcE5hbWVdICYmIGFwcC5hcHBJbnN0YWxsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZF9tb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3ViY29tcG9uZW50cyBsaXN0IHVuZGVyIGluc3RhbGxlZCBhcHAgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaXRlbXMgZC1mbGV4IGZsZXgtY29sdW1uIGFuaW1hdGUtZHJvcGRvd25cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRlZEFwcHNbYXBwLmFwcE5hbWVdICYmIGFwcC5hcHBJbnN0YWxsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwLmNvbXBvbmVudHM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9BcHBTZWNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlYyBvZiBhcHAuY29tcG9uZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VjPy5kYXRhPy5jb21wb25lbnRJZCAhPSBudWxsICYmIHNlbGVjdGVkQXBwQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gc2VjPy5kYXRhPy5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcENvbXBvbmVudChzZWMuZGF0YSwgYXBwLmFwcE5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7e3NlYy5kYXRhLnNlY3Rpb25OYW1lfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzZWM/LmRhdGE/LnNlY3Rpb25OYW1lIHx8ICdObyBDb21wb25lbnQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0FwcFNlY3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1pdGVtLWRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBzZWN0aW9ucyBhdmFpbGFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUklHSFQgQ09OVEVOVCBQUkVWSUVXIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8IS0tIElGIEFOIEFQUCBJUyBTRUxFQ1RFRCAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRBcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSU5TVEFMTEVEIEFQUCBTRUNUSU9OUyBMSVNUIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U2VsZWN0ZWRBcHBPYmooKSBhcyBhY3RpdmVBcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVBcHAuYXBwSW5zdGFsbGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZ3JvdXAtbGFiZWxcIj57e3NlbGVjdGVkQXBwfX0gU2VjdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbnMtbGlzdCBkLWZsZXggZmxleC1jb2x1bW5cIiAqbmdJZj1cInNlbGVjdGVkQXBwU2VjdGlvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRBcHBTZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInYXBwLWNvbXAtJyArIGVsZT8uZGF0YT8uY29tcG9uZW50SWQgIT0gbnVsbFwiIGNsYXNzPVwic2VjdGlvbi1jYXJkIHN0YWdnZXItaXRlbVwiIFtzdHlsZS5hbmltYXRpb24tZGVsYXldPVwiaSAqIDQwICsgJ21zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlY3Rpb24tY2FyZC1zZWxlY3RlZF09XCJlbGU/LmRhdGE/LmNvbXBvbmVudElkICE9IG51bGwgJiYgc2VsZWN0ZWRBcHBDb21wb25lbnQ/LmNvbXBvbmVudElkID09PSBlbGUuZGF0YS5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGUuZGF0YSlcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBCYWRnZSBzaG93aW5nIGNvbXBvbmVudCBzZWN0aW9uIG5hbWUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwiZWxlPy5kYXRhPy5zZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB7eyhlbGU/LmRhdGE/LnNlY3Rpb25OYW1lIHwgdGl0bGVjYXNlKSB8fCBcIk5vIENvbXBvbmVudFwifX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbWFnZSBQcmV2aWV3IEFyZWEgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZT8uZGF0YT8uaW1hZ2U7IGVsc2Ugbm9JbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImVsZS5kYXRhLmltYWdlXCIgYWx0PVwic2VjdGlvbiBwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8taW1hZ2UtcGxhY2Vob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmltYWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENhcmQgSW5mbyAoRGVzY3JpcHRpb24gYW5kIFRhZ3MpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtaW5mbyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtaW4td2lkdGg6IDA7IGZsZXg6IDE7IHBhZGRpbmctcmlnaHQ6IDhweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtZGVzY1wiICpuZ0lmPVwiZWxlPy5kYXRhPy5kZXNjXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiA2cHg7XCI+e3tlbGUuZGF0YS5kZXNjfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFncyBhcnJheSByZW5kZXJpbmcgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtMVwiICpuZ0lmPVwiZWxlPy5kYXRhPy50YWdzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYmFkZ2VcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWYyZmY7IGNvbG9yOiAjNGY0NmU1OyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogOC41cHg7XCIgKm5nRm9yPVwibGV0IHRhZyBvZiBlbGUuZGF0YS50YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dGFnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhcmQtY2hlY2staWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVsZT8uZGF0YSAhPSBudWxsICYmIHNlbGVjdGVkQXBwQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gZWxlLmRhdGEuY29tcG9uZW50SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTm8gc2VjdGlvbnMgZW1wdHkgc3RhdGUgaW5zaWRlIHJpZ2h0IHBhbmVsIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZSBmYWRlLWluXCIgKm5nSWY9XCJzZWxlY3RlZEFwcFNlY3Rpb25zLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbXB0eS1wYWdlLWljb25cIj5pbmJveDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS10aXRsZVwiPk5vIHNlY3Rpb25zIGF2YWlsYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3VidGl0bGVcIj5UaGlzIGFwcCBkb2VzIG5vdCBwcm92aWRlIGFueSBwcmUtYnVpbHQgc2VjdGlvbnMgYXQgdGhlIG1vbWVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBOT1QgSU5TVEFMTEVEIEVNUFRZIFNUQVRFIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3RpdmVBcHAuYXBwSW5zdGFsbGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlIGZhZGUtaW4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVtcHR5LXBhZ2UtaWNvblwiIHN0eWxlPVwiZm9udC1zaXplOiA1NnB4ICFpbXBvcnRhbnQ7IHdpZHRoOiA1NnB4ICFpbXBvcnRhbnQ7IGhlaWdodDogNTZweCAhaW1wb3J0YW50OyBjb2xvcjogIzdjNmNmMDsgb3BhY2l0eTogMC44O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2FwcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDsgbWFyZ2luLXRvcDogMTJweDtcIj5QbGVhc2UgaW5zdGFsbCB0byB2aWV3IHNlY3Rpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdWJ0aXRsZVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTZweDsgbWF4LXdpZHRoOiAyODBweDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUge3tzZWxlY3RlZEFwcH19IHBsdWdpbiB0byB1bmxvY2sgcHJlbWl1bSwgcHJlLWJ1aWx0IHNlY3Rpb25zIGZvciB5b3VyIHdlYnNpdGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWFwcC1pbnN0YWxsLWxhcmdlXCIgKGNsaWNrKT1cImluc3RhbGxBcHAoYWN0aXZlQXBwLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDimqEgSW5zdGFsbCB7e3NlbGVjdGVkQXBwfX0gQXBwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOTyBBQ1RJVkUgQVBQIFNFTEVDVEVEIChGQUxMQkFDSykgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZEFwcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUgZmFkZS1pbiBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVtcHR5LXBhZ2UtaWNvblwiPmFwcHM8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXRpdGxlXCI+RXhwbG9yZSBQbHVnaW5zICYgQXBwczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDI2MHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhbnkgYXBwbGljYXRpb24gZnJvbSB0aGUgbGVmdCBzaWRlYmFyIHRvIGJyb3dzZSBhbmQgY29uZmlndXJlIGl0cyBjdXN0b20gbGF5b3V0IGNvbXBvbmVudHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDwhLS0gRU1QVFkgU0VBUkNIIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTY3JlZW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZSBmYWRlLWluIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi1pY29ucy1wbmcuZmxhdGljb24uY29tLzUxMi83NDg2Lzc0ODY4MDMucG5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIj5ObyBzZWN0aW9ucyBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgVHJ5IHNlYXJjaGluZyBzb21ldGhpbmcgZWxzZSBvciBleHBsb3JlIGNhdGVnb3JpZXNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRm9vdGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXIgZmFkZS1pblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItaGludFwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+aW5mb19vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgWW91IGNhbiByZWFycmFuZ2Ugb3IgcmVtb3ZlIHRoaXMgc2VjdGlvbiBhbnkgdGltZS5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jYW5jZWxcIiAoY2xpY2spPVwiZGlhbG9nLmNsb3NlKClcIj5DYW5jZWw8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1hZGRcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInNlbGVjdGVkVGFiID09PSAnQkFTSUMnID8gIXNlbGVjdGVkQ29tcG9uZW50IDogKHNlbGVjdGVkVGFiID09PSAnQVBQUycgPyAhc2VsZWN0ZWRBcHBDb21wb25lbnQgOiAhc2VsZWN0ZWRTYXZlZENvbXBvbmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFkZFNlY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgKyBBZGQgc2VjdGlvblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9zZWN0aW9uPlxyXG5cclxuPCEtLSBCZWF1dGlmdWwgSW5zdGFsbGF0aW9uIFByb2dyZXNzIERpYWxvZyBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNpbnN0YWxsUHJvZ3Jlc3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWNvbnRhaW5lciBhbmltYXRlLWNvbXBsZXRlLXBvcFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbXBvLWRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1pY29uLWJhZGdlXCI+e3sgYXBwSWNvbk1hcFtpbnN0YWxsaW5nQXBwPy5hcHBOYW1lXSB8fCAn8J+UjCcgfX08L2Rpdj5cclxuICAgICAgPGgzPlNldHRpbmcgVXAge3sgaW5zdGFsbGluZ0FwcD8uYXBwTmFtZSB9fSBBcHA8L2gzPlxyXG4gICAgICA8cD5QbGVhc2Ugd2FpdCB3aGlsZSB3ZSBjb25maWd1cmUgeW91ciBwcmVtaXVtIHNjaGVkdWxpbmcgc3lzdGVtLjwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaW1wby1kaWFsb2ctYm9keVwiPlxyXG4gICAgICA8IS0tIEFuaW1hdGVkIFByb2dyZXNzIEJhciAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpbXBvLWRpYWxvZy1wcm9ncmVzcy1iYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLXByb2dyZXNzLWZpbGxcIiBbc3R5bGUud2lkdGhdPVwiZ2V0T3ZlcmFsbFByb2dyZXNzUGVyY2VudCgpICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBTdGVwcyBMaXN0IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcG8tc3RlcHMtbGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXJvd1wiICpuZ0Zvcj1cImxldCBzdGVwIG9mIGluc3RhbGxTdGVwczsgbGV0IGlkeCA9IGluZGV4XCIgW25nQ2xhc3NdPVwic3RlcD8uc3RhdHVzIHx8ICcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8IS0tIEFjdGl2ZSBTdGVwIEljb24gKFB1bHNpbmcgZ2xvd2luZyBkb3QpIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1pY29uIGFjdGl2ZS1pY29uXCIgKm5nSWY9XCJzdGVwPy5zdGF0dXMgPT09ICdhY3RpdmUnXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLW51bWJlclwiPnt7IGlkeCArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bHNlLXJpbmdcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFN1Y2Nlc3MgU3RlcCBJY29uIChHcmVlbiBjaGVja21hcmsgd2l0aCBzcHJpbmctdXAgYW5pbWF0aW9uKSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaWNvbiBzdWNjZXNzLWljb24gYW5pbWF0ZS1zdWNjZXNzXCIgKm5nSWY9XCJzdGVwPy5zdGF0dXMgPT09ICdzdWNjZXNzJ1wiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQZW5kaW5nIFN0ZXAgSWNvbiAoRGltbWVkIHNpbXBsZSBudW1iZXIvZG90KSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaWNvbiBwZW5kaW5nLWljb25cIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLW51bWJlclwiPnt7IGlkeCArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1sYWJlbFwiPnt7IHN0ZXA/LmxhYmVsIHx8ICcnIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWRlc2NcIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ2FjdGl2ZSdcIj5Qcm9jZXNzaW5nLCBwbGVhc2Ugd2FpdDxzcGFuIGNsYXNzPVwiZG90cy1wdWxzZVwiPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtZGVzYyBzdWNjZXNzLWRlc2NcIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnXCI+Q29tcGxldGVkIHN1Y2Nlc3NmdWxseTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1kZXNjIHBlbmRpbmctZGVzY1wiICpuZ0lmPVwic3RlcD8uc3RhdHVzID09PSAncGVuZGluZydcIj5VcGNvbWluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEJlYXV0aWZ1bCBJbnN0YWxsYXRpb24gQ29tcGxldGUgRGlhbG9nIFRlbXBsYXRlIC0tPlxyXG48bmctdGVtcGxhdGUgI2luc3RhbGxDb21wbGV0ZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJzaW1wby1kaWFsb2ctY29udGFpbmVyIGNvbXBsZXRlLWRpYWxvZy1jYXJkIGFuaW1hdGUtY29tcGxldGUtcG9wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tcGxldGUtaGVhZGVyLWFydFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3BhcmtsZXMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGFya2xlIG9uZVwiPuKcqDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwYXJrbGUgdHdvXCI+4pyoPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3BhcmtsZSB0aHJlZVwiPvCfjok8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29tcGxldGUtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPnZlcmlmaWVkPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWhlYWRlciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1iYWRnZS10ZXh0XCI+SU5TVEFMTEFUSU9OIENPTVBMRVRFRDwvZGl2PlxyXG4gICAgICA8aDMgY2xhc3M9XCJjb21wbGV0ZS10aXRsZVwiPllvdXIgQXBwb2ludG1lbnQgQXBwIGlzIFJlYWR5ITwvaDM+XHJcbiAgICAgIDxwIGNsYXNzPVwiY29tcGxldGUtbWVzc2FnZVwiPlxyXG4gICAgICAgIEZvciBiZXR0ZXIgZXhwZXJpZW5jZSBjcmVhdGUgc2VydmljZSBhbmQgYXNzaWduIHN0YWZmIHRvIGNyZWF0ZWQgc2VydmljZVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWJvZHkgdGV4dC1jZW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICA8IS0tIERpcmVjdGluZyBBY3Rpb24gQnV0dG9uIC0tPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXJlZGlyZWN0IHctMTAwXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9BcHBvaW50bWVudHMoKVwiPlxyXG4gICAgICAgIDxzcGFuPkNyZWF0ZSBTZXJ2aWNlICYgQXNzaWduIFN0YWZmPC9zcGFuPlxyXG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8IS0tIERpc21pc3MgYnV0dG9uIC0tPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWRpc21pc3NcIiAoY2xpY2spPVwiY2xvc2VBbGxEaWFsb2dzKClcIj5cclxuICAgICAgICBNYXliZSBMYXRlclxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
564
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9hZGQtc2VjdGlvbi9hZGQtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2FkZC1zZWN0aW9uL2FkZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBWSxTQUFTLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQWUsV0FBVyxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQVluRSxNQUFNLE9BQU8sbUJBQW1CO0lBYTlCLFlBQW1CLE1BQXlDLEVBQzFCLElBQVMsRUFDakMsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsYUFBb0MsRUFDcEMsV0FBd0IsRUFDeEIsY0FBcUMsRUFDckMsU0FBb0IsRUFDcEIsTUFBZSxFQUNmLEdBQXNCO1FBVGIsV0FBTSxHQUFOLE1BQU0sQ0FBbUM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtRQUNwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFB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LENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUE7SUFDbEIsQ0FBQzsrR0Eva0JVLG1CQUFtQiw4Q0FjcEIsZUFBZTttR0FkZCxtQkFBbUIsc1VDcEJoQyxrbzZDQTB1QmMsMDZuQkQxdEJGLFlBQVksMFpBQUUsYUFBYSxtTEFBRSx1QkFBdUIsOE1BQUUsV0FBVyxpbkJBQUUsZUFBZTs7NEZBSWpGLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDOzswQkFrQjFGLE1BQU07MkJBQUMsZUFBZTs2UUFWYSx1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNFLHVCQUF1QjtzQkFBNUQsU0FBUzt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgTmdNb2R1bGUsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudFNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZWRpdG9yLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1hZGQtc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdERpYWxvZ01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFNlY3Rpb25Db21wb25lbnQge1xyXG5cclxuICBPYmplY3Q/OiBPYmplY3RcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5zdGFsbFByb2dyZXNzVGVtcGxhdGUnKSBpbnN0YWxsUHJvZ3Jlc3NUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnaW5zdGFsbENvbXBsZXRlVGVtcGxhdGUnKSBpbnN0YWxsQ29tcGxldGVUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGluc3RhbGxTdGVwcyA9IFtcclxuICAgIHsgbGFiZWw6ICdJbnN0YWxsaW5nIGFwcG9pbnRtZW50IGFwcCcsIHN0YXR1czogJ3BlbmRpbmcnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ3JlYXRpbmcgcmVxdWlyZWQgcGFnZXMgZm9yIHlvdXIgYXBwJywgc3RhdHVzOiAncGVuZGluZycgfSxcclxuICAgIHsgbGFiZWw6ICdDcmVhdGluZyBvbmUgc3RvcmUnLCBzdGF0dXM6ICdwZW5kaW5nJyB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nUmVmPEFkZFNlY3Rpb25Db21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50U2VydmljZTogRWxlbWVudFNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcm91dGVyIDogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7IH1cclxuXHJcbiAgYnVzaW5lc3NUeXBlOiAnU1RBVElDJyB8ICdFX0NPTU1FUkNFJyA9ICdFX0NPTU1FUkNFJztcclxuXHJcbiAgaW5zdGFsbGluZ0FwcDogYW55ID0gbnVsbDtcclxuXHJcbiAgLy8g4pSA4pSAIEFwcHMgdGFiIHN0YXRlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxyXG4gIGV4cGFuZGVkQXBwczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fSAgICAvLyB0cmFja3Mgd2hpY2ggYXBwIGNhdGVnb3J5IGlzIGV4cGFuZGVkIGluIGxlZnQgc2lkZWJhclxyXG4gIHNlbGVjdGVkQXBwOiBzdHJpbmcgPSBcIlwiICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFja3Mgd2hpY2ggYXBwIGlzIGN1cnJlbnRseSBzZWxlY3RlZC9hY3RpdmVcclxuICBzZWxlY3RlZEFwcFNlY3Rpb25zOiBhbnlbXSA9IFtdICAgICAgICAgICAgICAgICAgLy8gaG9sZHMgdGhlIHNlY3Rpb25zIG9mIHRoZSBzZWxlY3RlZCBhcHBcclxuICBzZWxlY3RlZEFwcENvbXBvbmVudDogYW55ID0gbnVsbCAgICAgICAgICAgICAgICAgLy8gdHJhY2tzIHdoaWNoIGNvbXBvbmVudCBpbnNpZGUgdGhlIHNlbGVjdGVkIGFwcCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQvaGlnaGxpZ2h0ZWRcclxuXHJcbiAgYXBwSWNvbk1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgIFwiRS1jb21tZXJjZVwiOiBcIvCfm43vuI9cIixcclxuICAgIFwiQXBwb2ludG1lbnRcIjogXCLwn5OFXCIsXHJcbiAgICBcIkNSTVwiOiBcIvCfkaVcIixcclxuICAgIFwiUGFzc0Jvb2tcIjogXCLwn5KzXCIsXHJcbiAgICBcIlBhc3Nib29rXCI6IFwi8J+Ss1wiLFxyXG4gICAgXCJSZWZlciBhbmQgRWFyblwiOiBcIvCfjoFcIlxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBidXNpbmVzcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiRGV0YWlscycpIHx8ICcnO1xyXG4gICAgdGhpcy5idXNpbmVzc1R5cGUgPSBidXNpbmVzcyA/IEpTT04ucGFyc2UoYnVzaW5lc3MpPy50eXBlIDogJ1NUQVRJQydcclxuICAgIHRoaXMuZ2V0QWxsU2VjdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkVGFiOiBzdHJpbmcgPSBcIkJBU0lDXCJcclxuICBwdWJsaWMgYnVzaW5lc3NJZDogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NJZFwiKTtcclxuICB0YWJzOiBhbnkgPSBbXHJcbiAgICB7IHZhbHVlOiBcIkJBU0lDXCIsIHZpZXdWYWx1ZTogXCJTZWN0aW9uIFN0dWRpb1wiIH0sXHJcbiAgICAvLyB7IHZhbHVlOiBcIklOVEVHUkFUSU9OU1wiLCB2aWV3VmFsdWU6IFwiRHluYW1pY1wiIH0sXHJcbiAgICB7IHZhbHVlOiBcIkFQUFNcIiwgdmlld1ZhbHVlOiBcIkFwcHNcIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJTQVZFRFwiLCB2aWV3VmFsdWU6IFwiU2F2ZWRcIiB9XHJcbiAgXVxyXG5cclxuICBzZWN0aW9uczogYW55ID0gW11cclxuICBzZWxlY3RlZFNlY3Rpb246IGFueSA9IFtdXHJcbiAgc2VsZWN0ZWRTZWN0aW9uTmFtZTogYW55ID0gXCJcIlxyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgdGFiU2hpZnRMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIHJlZmVyRWFybkV4aXN0OiBib29sZWFuID0gZmFsc2VcclxuICBleHBhbmRlZENhdGVnb3JpZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge31cclxuXHJcblxyXG4gIHNlbGVjdGVkQ29tcG9uZW50OiBhbnkgPSBudWxsXHJcblxyXG4gIC8vIOKUgOKUgCBTYXZlZCB0YWIgc3RhdGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXHJcbiAgc2F2ZWRTZWN0aW9uczogYW55ID0ge31cclxuICBzYXZlZENhdGVnb3J5S2V5czogc3RyaW5nW10gPSBbXVxyXG4gIHNhdmVkTG9hZGVyOiBib29sZWFuID0gZmFsc2VcclxuICBzZWxlY3RlZFNhdmVkQ2F0ZWdvcnk6IHN0cmluZyA9ICcnXHJcbiAgc2VsZWN0ZWRTYXZlZENvbXBvbmVudDogYW55ID0gbnVsbFxyXG5cclxuICAvLyBOZXc6IGVtb2ppIG1hcCBmb3IgY2F0ZWdvcmllc1xyXG4gIGNhdGVnb3J5RW1vamlNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAvLyAnSGVybyc6ICfwn5a877iPJyxcclxuICAgIC8vICdTZXJ2aWNlcyc6ICfwn46BJyxcclxuICAgIC8vICdGZWF0dXJlJzogJ+KcqCcsXHJcbiAgICAvLyAnSG93IEl0IFdvcmtzJzogJ+KEue+4jycsXHJcbiAgICAvLyAnVGVzdGltb25pYWwnOiAn4q2QJyxcclxuICAgIC8vICdQcmljaW5nJzogJ/CfkrAnLFxyXG4gICAgLy8gJ0ZhcSc6ICfinZMnLFxyXG4gICAgLy8gJ0Jsb2dzJzogJ/Cfk50nLFxyXG4gICAgLy8gJ01pc2NlbGxhbmVvdXMnOiAn8J+UpycsXHJcbiAgICAvLyAnVGV4dCc6ICfwn5OEJyxcclxuICAgIC8vICdMb2dvJzogJ/Cfj7fvuI8nLFxyXG4gICAgLy8gJ0NvbnRhY3QnOiAn4pyJ77iPJyxcclxuICAgIC8vICdDVEEnOiAn8J+ToicsXHJcbiAgICAvLyAnVGVhbSc6ICfwn5GlJyxcclxuICAgIC8vICdWaWRlbyc6ICfwn46sJyxcclxuICAgIC8vICdJbWFnZSAnOiAn8J+WvO+4jycsXHJcbiAgICAnSGVybyc6ICfwn5qAJyxcclxuICAnU2VydmljZXMnOiAn8J+nsCcsXHJcbiAgJ0ZlYXR1cmUnOiAn4pyoJyxcclxuICAnSG93IEl0IFdvcmtzJzogJ/CfqoQnLFxyXG4gICdUZXN0aW1vbmlhbCc6ICfirZAnLFxyXG4gICdQcmljaW5nJzogJ/CfkrAnLFxyXG4gICdGYXEnOiAn4p2TJyxcclxuICAnQmxvZ3MnOiAn8J+TsCcsXHJcblxyXG4gICdDaG9vc2UgVXMnOiAn8J+boe+4jycsXHJcbiAgJ0xvZ28gQ2xvdWQnOiAn8J+PoicsXHJcbiAgJ05ld3NsZXR0ZXInOiAn8J+TqScsXHJcblxyXG4gICdNaXNjZWxsYW5lb3VzJzogJ/Cfk4InLFxyXG4gICdUZXh0JzogJ+Kcje+4jycsXHJcbiAgJ0xvZ28nOiAn8J+MiCcsXHJcblxyXG4gICdDb250YWN0JzogJ+KYju+4jycsXHJcbiAgJ0NvbnRhY3QgVXMnOiAn8J+TnicsXHJcblxyXG4gICdDVEEnOiAn8J+UpScsXHJcbiAgJ1RlYW0nOiAn8J+RpScsXHJcblxyXG4gICdBYm91dCc6ICfihLnvuI8nLFxyXG4gICdHYWxsZXJ5JzogJ/CflrzvuI8nLFxyXG5cclxuICAnVmlkZW8nOiAn8J+OrCcsXHJcbiAgJ0ltYWdlJzogJ/CflrzvuI8nXHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeUVtb2ppKGNhdGVnb3J5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2F0ZWdvcnlFbW9qaU1hcFtjYXRlZ29yeV0gfHwgJ/Cfk6YnXHJcbiAgfVxyXG5cclxuICBnZXRGaXJzdFNlY3Rpb25OYW1lKGNhdGVnb3J5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zW2NhdGVnb3J5XVxyXG4gICAgaWYgKHNlY3Rpb25zICYmIHNlY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHNlY3Rpb25zWzBdLnNlY3Rpb25OYW1lIHx8IGNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2F0ZWdvcnlcclxuICB9XHJcblxyXG4gIC8vIENhbGxlZCBieSB0YWIgY2xpY2sg4oCUIHRyaWdnZXJzIHNhdmVkIEFQSSBvbiBmaXJzdCB2aXNpdFxyXG4gIG9uVGFiU2VsZWN0KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIC8vIFVuc2VsZWN0IGFsbCBhY3RpdmUgY29tcG9uZW50IHNlbGVjdGlvbnMgd2hlbiBzd2l0Y2hpbmcgdGFic1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwQ29tcG9uZW50ID0gbnVsbDtcclxuICAgIHRoaXMuc2VsZWN0ZWRTYXZlZENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwID0gXCJcIjtcclxuICAgIHRoaXMuZXhwYW5kZWRBcHBzID0ge307XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHZhbHVlO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFRhYilcclxuICAgIGlmICh2YWx1ZSA9PT0gJ1NBVkVEJyAmJiAhdGhpcy5zYXZlZExvYWRlcikge1xyXG4gICAgICB0aGlzLmdldFNhdmVkU2VjdGlvbnMoKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZih2YWx1ZSA9PSAnQkFTSUMnKXtcclxuICAgICAgdGhpcy5nZXRBbGxTZWN0aW9ucygpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodmFsdWUgPT09ICdBUFBTJykge1xyXG4gICAgICB0aGlzLmdldEFsbEFwcHMoKTsgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXBwc0xpc3Q6IGFueVtdID0gW107XHJcbiAgYXBwc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXRBbGxBcHBzKCkge1xyXG4gICAgdGhpcy5hcHBzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuYXBwc0xpc3QgPSBbXTtcclxuICAgIHRoaXMuZWxlbWVudFNlcnZpY2UuZ2V0QWxsYXBwcyh0aGlzLmJ1c2luZXNzSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwc0xpc3QgPSByZXMuZGF0YSB8fCBbXTtcclxuICAgICAgICB0aGlzLmFwcHNMb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8gQXV0by1leHBhbmQgYW5kIHNlbGVjdCBmaXJzdCBhcHAgaWYgYXZhaWxhYmxlIG9uIHRhYiBsb2FkXHJcbiAgICAgICAgaWYgKHRoaXMuYXBwc0xpc3QubGVuZ3RoID4gMCAmJiAhdGhpcy5zZWxlY3RlZEFwcCkge1xyXG4gICAgICAgICAgY29uc3QgZmlyc3RBcHAgPSB0aGlzLmFwcHNMaXN0WzBdO1xyXG4gICAgICAgICAgdGhpcy50b2dnbGVBcHBDYXRlZ29yeShmaXJzdEFwcC5hcHBOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRoaXMuYXBwc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUFwcENhdGVnb3J5KGFwcE5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXBwID0gdGhpcy5hcHBzTGlzdC5maW5kKGEgPT4gYS5hcHBOYW1lID09PSBhcHBOYW1lKTtcclxuICAgIGlmICghYXBwKSByZXR1cm47XHJcblxyXG4gICAgaWYgKHRoaXMuZXhwYW5kZWRBcHBzW2FwcE5hbWVdKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kZWRBcHBzW2FwcE5hbWVdID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcHAgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXBwU2VjdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFwcENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZGVkQXBwcykuZm9yRWFjaChrID0+IHRoaXMuZXhwYW5kZWRBcHBzW2tdID0gZmFsc2UpO1xyXG5cclxuICAgICAgaWYgKGFwcC5hcHBJbnN0YWxsZWQpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZGVkQXBwc1thcHBOYW1lXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFwcCA9IGFwcE5hbWU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zID0gYXBwLmNvbXBvbmVudHMgfHwgW107XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBcHBTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQgPSB0aGlzLnNlbGVjdGVkQXBwU2VjdGlvbnNbMF0uZGF0YTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFwcENvbXBvbmVudCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHAgPSBhcHBOYW1lO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBTZWN0aW9ucyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wbGV0ZUluc3RhbGxhdGlvbihhcHA6IGFueSwgcHJvZ3Jlc3NSZWY6IGFueSkge1xyXG4gICAgYXBwLmFwcEluc3RhbGxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmV4cGFuZGVkQXBwc1thcHAuYXBwTmFtZV0gPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcCA9IGFwcC5hcHBOYW1lO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zID0gYXBwLmNvbXBvbmVudHMgfHwgW107XHJcbiAgICBwcm9ncmVzc1JlZi5jbG9zZSgpO1xyXG4gICAgXHJcbiAgICBpZiAoYXBwLmFwcE5hbWUgPT09ICdBcHBvaW50bWVudCcpIHtcclxuICAgICAgdGhpcy5vcGVuSW5zdGFsbENvbXBsZXRlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnN0YWxsQXBwKGFwcDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuaW5zdGFsbGluZ0FwcCA9IGFwcDtcclxuXHJcbiAgICAvLyAxLiBSZXNldCBzdGVwcyB0byBzdGVwIDAgYWN0aXZlXHJcbiAgICB0aGlzLmluc3RhbGxTdGVwcyA9IFtcclxuICAgICAgeyBsYWJlbDogYEluc3RhbGxpbmcgJHthcHAuYXBwTmFtZX0gYXBwYCwgc3RhdHVzOiAnYWN0aXZlJyB9LFxyXG4gICAgICB7IGxhYmVsOiAnQ3JlYXRpbmcgcmVxdWlyZWQgcGFnZXMgZm9yIHlvdXIgYXBwJywgc3RhdHVzOiAncGVuZGluZycgfVxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAoYXBwLmFwcE5hbWUgPT09ICdBcHBvaW50bWVudCcpIHtcclxuICAgICAgdGhpcy5pbnN0YWxsU3RlcHMucHVzaCh7IGxhYmVsOiAnQ3JlYXRpbmcgb25lIHN0b3JlJywgc3RhdHVzOiAncGVuZGluZycgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAvLyAyLiBPcGVuIHByb2dyZXNzIGRpYWxvZyBpbiBjZW50ZXIgb2YgdGhlIHBhZ2VcclxuICAgIGNvbnN0IHByb2dyZXNzUmVmID0gdGhpcy5tYXREaWFsb2cub3Blbih0aGlzLmluc3RhbGxQcm9ncmVzc1RlbXBsYXRlLCB7XHJcbiAgICAgIHdpZHRoOiAnNDgwcHgnLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdzaW1wby1pbnN0YWxsLWRpYWxvZy1wYW5lbCdcclxuICAgIH0pO1xyXG5cclxuICAgIGxldCBhcGlEb25lID0gZmFsc2U7XHJcbiAgICBsZXQgcHJvZ3Jlc3NEb25lID0gZmFsc2U7XHJcblxyXG4gICAgLy8gMy4gVHJpZ2dlciBBUEkgQ2FsbFxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmluc3RhbGxBcHAoYXBwLmFwcElkLCB0aGlzLmJ1c2luZXNzSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGFwaURvbmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBpZiAocHJvZ3Jlc3NEb25lKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbXBsZXRlSW5zdGFsbGF0aW9uKGFwcCwgcHJvZ3Jlc3NSZWYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FwcCBpbnN0YWxsYXRpb24gZmFpbGVkJywgZXJyKTtcclxuICAgICAgICBwcm9ncmVzc1JlZi5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyA0LiBBbmltYXRlZCBwcm9ncmVzc2lvbiBiYXNlZCBvbiBudW1iZXIgb2Ygc3RlcHNcclxuICAgIGlmIChhcHAuYXBwTmFtZSA9PT0gJ0FwcG9pbnRtZW50Jykge1xyXG4gICAgICAvLyAzLXN0ZXAgZmxvdyAoNiBzZWNvbmRzIHRvdGFsKVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMF0pIHRoaXMuaW5zdGFsbFN0ZXBzWzBdLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMV0pIHRoaXMuaW5zdGFsbFN0ZXBzWzFdLnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgMjAwMCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMV0pIHRoaXMuaW5zdGFsbFN0ZXBzWzFdLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMl0pIHRoaXMuaW5zdGFsbFN0ZXBzWzJdLnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgNDAwMCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pbnN0YWxsU3RlcHNbMl0pIHRoaXMuaW5zdGFsbFN0ZXBzWzJdLnN0YXR1cyA9ICdzdWNjZXNzJztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgcHJvZ3Jlc3NEb25lID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKGFwaURvbmUpIHtcclxuICAgICAgICAgIHRoaXMuY29tcGxldGVJbnN0YWxsYXRpb24oYXBwLCBwcm9ncmVzc1JlZik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCA2MDAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIDItc3RlcCBmbG93ICg0IHNlY29uZHMgdG90YWwpXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbGxTdGVwc1swXSkgdGhpcy5pbnN0YWxsU3RlcHNbMF0uc3RhdHVzID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbGxTdGVwc1sxXSkgdGhpcy5pbnN0YWxsU3RlcHNbMV0uc3RhdHVzID0gJ2FjdGl2ZSc7XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9LCAyMDAwKTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbGxTdGVwc1sxXSkgdGhpcy5pbnN0YWxsU3RlcHNbMV0uc3RhdHVzID0gJ3N1Y2Nlc3MnO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBwcm9ncmVzc0RvbmUgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoYXBpRG9uZSkge1xyXG4gICAgICAgICAgdGhpcy5jb21wbGV0ZUluc3RhbGxhdGlvbihhcHAsIHByb2dyZXNzUmVmKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDQwMDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0T3ZlcmFsbFByb2dyZXNzUGVyY2VudCgpOiBudW1iZXIge1xyXG4gICAgaWYgKCF0aGlzLmluc3RhbGxTdGVwcyB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLmluc3RhbGxTdGVwcykgfHwgdGhpcy5pbnN0YWxsU3RlcHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcGxldGVkQ291bnQgPSB0aGlzLmluc3RhbGxTdGVwcy5maWx0ZXIocyA9PiBzICYmIHMuc3RhdHVzID09PSAnc3VjY2VzcycpLmxlbmd0aDtcclxuICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gdGhpcy5pbnN0YWxsU3RlcHMuZmlsdGVyKHMgPT4gcyAmJiBzLnN0YXR1cyA9PT0gJ2FjdGl2ZScpLmxlbmd0aDtcclxuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5pbnN0YWxsU3RlcHMubGVuZ3RoO1xyXG4gICAgcmV0dXJuIChjb21wbGV0ZWRDb3VudCAvIHRvdGFsKSAqIDEwMCArIChhY3RpdmVDb3VudCA+IDAgPyAoMSAvIHRvdGFsKSAqIDUwIDogMCk7XHJcbiAgfVxyXG5cclxuICBvcGVuSW5zdGFsbENvbXBsZXRlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5tYXREaWFsb2cub3Blbih0aGlzLmluc3RhbGxDb21wbGV0ZVRlbXBsYXRlLCB7XHJcbiAgICAgIHdpZHRoOiAnNTIwcHgnLFxyXG4gICAgICBwYW5lbENsYXNzOiAnc2ltcG8tY29tcGxldGUtZGlhbG9nLXBhbmVsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvQXBwb2ludG1lbnRzKCkge1xyXG4gICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgIC8vIHdpbmRvdy5vcGVuKCdodHRwczovL2Rldi1hcHAuc2ltcG8uYWkvYWRtaW4vYXBwb2ludG1lbnRzL21hbmFnZS1hcHBvaW50bWVudHMnLCAnX2JsYW5rJyk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hZG1pbi9hcHBvaW50bWVudHMvbWFuYWdlLWFwcG9pbnRtZW50cyddKVxyXG4gIH1cclxuXHJcbiAgY2xvc2VBbGxEaWFsb2dzKCkge1xyXG4gICAgdGhpcy5tYXREaWFsb2cuY2xvc2VBbGwoKTtcclxuICAgICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChjdXJyZW50VXJsKTtcclxuICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFwcENvbXBvbmVudChzZWNEYXRhOiBhbnksIGFwcE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcENvbXBvbmVudCA9IHNlY0RhdGE7XHJcbiAgICBjb25zdCBhcHAgPSB0aGlzLmFwcHNMaXN0LmZpbmQoYSA9PiBhLmFwcE5hbWUgPT09IGFwcE5hbWUpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcFNlY3Rpb25zID0gYXBwID8gKGFwcC5jb21wb25lbnRzIHx8IFtdKSA6IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFwcCA9IGFwcE5hbWU7XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5leHBhbmRlZEFwcHMpLmZvckVhY2goayA9PiB0aGlzLmV4cGFuZGVkQXBwc1trXSA9IGZhbHNlKTtcclxuICAgIHRoaXMuZXhwYW5kZWRBcHBzW2FwcE5hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHAtY29tcC0nICsgc2VjRGF0YS5jb21wb25lbnRJZCk7XHJcbiAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdjZW50ZXInIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QXBwQ29tcG9uZW50QW5kSGlnaGxpZ2h0KGVsZTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwQ29tcG9uZW50ID0gZWxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRBcHBPYmooKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hcHBzTGlzdC5maW5kKGEgPT4gYS5hcHBOYW1lID09PSB0aGlzLnNlbGVjdGVkQXBwKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllc1tjYXRlZ29yeV0pIHtcclxuICAgICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldID0gZmFsc2VcclxuICAgICAgdGhpcy5zZWxlY3RlZFNlY3Rpb24gPSBbXVxyXG4gICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWUgPSBcIlwiXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBudWxsXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllcykuZm9yRWFjaChrID0+IHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzW2tdID0gZmFsc2UpXHJcbiAgICAgIHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzW2NhdGVnb3J5XSA9IHRydWVcclxuICAgICAgdGhpcy5zZWxlY3RTZWN0aW9uKGNhdGVnb3J5KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U2F2ZWRTZWN0aW9ucygpIHtcclxuICAgIHRoaXMuc2F2ZWRMb2FkZXIgPSB0cnVlXHJcbiAgICB0aGlzLnNhdmVkU2VjdGlvbnMgPSB7fVxyXG4gICAgdGhpcy5zYXZlZENhdGVnb3J5S2V5cyA9IFtdXHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDYXRlZ29yeSA9ICcnXHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBudWxsXHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0QWxsU2F2ZWRTZWN0aW9uc0FwaSh0aGlzLmJ1c2luZXNzSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmRhdGE/LmFkZE5ld1NlY3Rpb24pIHtcclxuICAgICAgICAgIGRlbGV0ZSByZXMuZGF0YS5hZGROZXdTZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmVkU2VjdGlvbnMgPSByZXMuZGF0YSB8fCB7fVxyXG4gICAgICAgIHRoaXMuc2F2ZWRDYXRlZ29yeUtleXMgPSBPYmplY3Qua2V5cyh0aGlzLnNhdmVkU2VjdGlvbnMpXHJcbiAgICAgICAgaWYgKHRoaXMuc2F2ZWRDYXRlZ29yeUtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFNhdmVkQ2F0ZWdvcnkgPSB0aGlzLnNhdmVkQ2F0ZWdvcnlLZXlzWzBdXHJcbiAgICAgICAgICBpZiAodGhpcy5zYXZlZFNlY3Rpb25zW3RoaXMuc2VsZWN0ZWRTYXZlZENhdGVnb3J5XT8uY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZENvbXBvbmVudCA9IHRoaXMuc2F2ZWRTZWN0aW9uc1t0aGlzLnNlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNhdmVkTG9hZGVyID0gZmFsc2VcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHsgdGhpcy5zYXZlZExvYWRlciA9IGZhbHNlIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTYXZlZENhdGVnb3J5KGNhdGVnb3J5S2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTYXZlZENhdGVnb3J5ID0gY2F0ZWdvcnlLZXlcclxuICAgIGlmICh0aGlzLnNhdmVkU2VjdGlvbnNbY2F0ZWdvcnlLZXldPy5jb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFNhdmVkQ29tcG9uZW50ID0gdGhpcy5zYXZlZFNlY3Rpb25zW2NhdGVnb3J5S2V5XS5jb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2F2ZWRDb21wb25lbnQoY29tcDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQgPSBjb21wO1xyXG4gIH1cclxuXHJcbiAgYWRkU2F2ZWRTZWN0aW9uKGNvbXBvbmVudDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYWRkTmV3U2VjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnRJZDogY29tcG9uZW50LmNvbXBvbmVudElkLFxyXG4gICAgICBpZDogY29tcG9uZW50LmlkLFxyXG4gICAgICBpbmRleDogdGhpcy5kYXRhLmluZGV4LFxyXG4gICAgICBwb3NpdGlvbjogdGhpcy5kYXRhLnBvc2l0aW9uLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICAgIHNlY3Rpb25UeXBlOiBjb21wb25lbnQuc2VjdGlvblR5cGUsXHJcbiAgICAgIHNhdmVkQ29tcG9uZW50OiBjb21wb25lbnRcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RDb21wb25lbnQoc2VjOiBhbnksIGNhdGVnb3J5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSBzZWNcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1tjYXRlZ29yeV1cclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSA9IGNhdGVnb3J5XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5leHBhbmRlZENhdGVnb3JpZXMpLmZvckVhY2goayA9PiB0aGlzLmV4cGFuZGVkQ2F0ZWdvcmllc1trXSA9IGZhbHNlKVxyXG4gICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldID0gdHJ1ZVxyXG5cclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21wLScgKyBzZWMuY29tcG9uZW50SWQpO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IGVsZVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2VjdGlvbihlbGU6IGFueSkge1xyXG4gICAgdGhpcy50YWJTaGlmdExvYWRlciA9IHRydWVcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1tlbGVdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFNlY3Rpb25OYW1lID0gZWxlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IHRoaXMuc2VsZWN0ZWRTZWN0aW9uWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbXBvbmVudCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50YWJTaGlmdExvYWRlciA9IGZhbHNlXHJcbiAgICB9LCA4MDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2VjdGlvbnMoKSB7XHJcbiAgICB0aGlzLmNoZWNrQXBwSW5zdGFsbGVkKClcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZVxyXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmdldENvbXBvbmVudEFwaSh0aGlzLmJ1c2luZXNzVHlwZSA9PT0gJ1NUQVRJQycgPyB0aGlzLmJ1c2luZXNzVHlwZSA6IHVuZGVmaW5lZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgaWYgKHJlcz8uZGF0YT8uQXBwb2ludG1lbnQpIHtcclxuICAgICAgICAgIGRlbGV0ZSByZXMuZGF0YS5BcHBvaW50bWVudDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlZmVyRWFybkV4aXN0KSB7XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gZGF0YVtrZXldLmZpbHRlcihcclxuICAgICAgICAgICAgICAoc2VjdGlvbjogYW55KSA9PiBzZWN0aW9uLnNlY3Rpb25UeXBlICE9PSAncmVmZXJlYXJuJ1xyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlY3Rpb25zID0gZGF0YVxyXG4gICAgICAgIHRoaXMuZHVtbXlTZWN0aW9ucyA9IGRhdGFcclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLnNlY3Rpb25zKVswXVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uID0gdGhpcy5zZWN0aW9uc1t0aGlzLnNlbGVjdGVkU2VjdGlvbk5hbWVdXHJcblxyXG4gICAgICAgIC8vIEF1dG8tZXhwYW5kIGZpcnN0IGNhdGVnb3J5XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRlZENhdGVnb3JpZXNbdGhpcy5zZWxlY3RlZFNlY3Rpb25OYW1lXSA9IHRydWVcclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2VjdGlvbj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQgPSB0aGlzLnNlbGVjdGVkU2VjdGlvblswXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2hlY2tBcHBJbnN0YWxsZWQoKSB7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNoZWNrQXBwSW5zdGFsbGVkKHRoaXMuYnVzaW5lc3NJZCwgJ1JlZmVyIGFuZCBFYXJuJykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWZlckVhcm5FeGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHsgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldE9iamVjdEtleXMob2JqOiBhbnkpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gb2JqID8gT2JqZWN0LmtleXMob2JqKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VjdGlvbkxlbmd0aChzZWN0aW9uOiBhbnkpIHtcclxuICAgIHJldHVybiBOdW1iZXIoT2JqZWN0LmtleXMoc2VjdGlvbikubGVuZ3RoKVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3U2VjdGlvbihjb21wb25lbnRJZDogYW55LCBzZWN0aW9uVHlwZTogYW55LCBldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYWRkTmV3U2VjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnRJZDogY29tcG9uZW50SWQsXHJcbiAgICAgIGluZGV4OiB0aGlzLmRhdGEuaW5kZXgsXHJcbiAgICAgIHBvc2l0aW9uOiB0aGlzLmRhdGEucG9zaXRpb24sXHJcbiAgICAgIHN0YXR1czogdHJ1ZSxcclxuICAgICAgc2VjdGlvblR5cGU6IHNlY3Rpb25UeXBlXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgYWRkQXBwU2VjdGlvbihjb21wb25lbnQ6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmFkZE5ld1NlY3Rpb25DbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50SWQ6IGNvbXBvbmVudC5jb21wb25lbnRJZCxcclxuICAgICAgaWQ6IGNvbXBvbmVudC5pZCB8fCBudWxsLFxyXG4gICAgICBpbmRleDogdGhpcy5kYXRhLmluZGV4LFxyXG4gICAgICBwb3NpdGlvbjogdGhpcy5kYXRhLnBvc2l0aW9uLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICAgIHNlY3Rpb25UeXBlOiBjb21wb25lbnQuc2VjdGlvblR5cGUsXHJcbiAgICAgIHNhdmVkQ29tcG9uZW50OiBjb21wb25lbnRcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBZGRTZWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnQkFTSUMnICYmIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGROZXdTZWN0aW9uKHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuY29tcG9uZW50SWQsIHRoaXMuc2VsZWN0ZWRDb21wb25lbnQuc2VjdGlvblR5cGUsIGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ0FQUFMnICYmIHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGRBcHBTZWN0aW9uKHRoaXMuc2VsZWN0ZWRBcHBDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ1NBVkVEJyAmJiB0aGlzLnNlbGVjdGVkU2F2ZWRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5hZGRTYXZlZFNlY3Rpb24odGhpcy5zZWxlY3RlZFNhdmVkQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiXHJcbiAgZHVtbXlTZWN0aW9uczogYW55XHJcbiAgZHVtbXkyOiBhbnkgPSB7fVxyXG4gIGlzU2VhcmNoOiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgc2VhcmNoU2VjdGlvbnMoKSB7XHJcbiAgICB0aGlzLmlzU2VhcmNoID0gZmFsc2VcclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQubGVuZ3RoID09IDApIHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IHRoaXMuZHVtbXlTZWN0aW9uc1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuZHVtbXkyID0ge31cclxuICAgIGZvciAobGV0IGVsZSBvZiBPYmplY3Qua2V5cyh0aGlzLmR1bW15U2VjdGlvbnMpKSB7XHJcbiAgICAgIGlmIChlbGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICB0aGlzLmR1bW15MltlbGVdID0gWy4uLnRoaXMuZHVtbXlTZWN0aW9uc1tlbGVdXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBqIG9mIHRoaXMuZHVtbXlTZWN0aW9uc1tlbGVdKSB7XHJcbiAgICAgICAgICBpZiAoai5zZWN0aW9uTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHVtbXkyW2VsZV0pIHtcclxuICAgICAgICAgICAgICB0aGlzLmR1bW15MltlbGVdID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kdW1teTJbZWxlXS5wdXNoKGopO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWN0aW9ucyA9IHsgLi4udGhpcy5kdW1teTIgfTtcclxuICAgIGlmICh0aGlzLmdldFNlY3Rpb25MZW5ndGgodGhpcy5zZWN0aW9ucykgPT0gMClcclxuICAgICAgdGhpcy5pc1NlYXJjaCA9IHRydWVcclxuICAgIHRoaXMuc2VsZWN0ZWRTZWN0aW9uTmFtZSA9IE9iamVjdC5rZXlzKHRoaXMuc2VjdGlvbnMpWzBdXHJcbiAgICB0aGlzLnNlbGVjdGVkU2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbT2JqZWN0LmtleXModGhpcy5zZWN0aW9ucylbMF1dXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFNlY3Rpb24/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29tcG9uZW50ID0gdGhpcy5zZWxlY3RlZFNlY3Rpb25bMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29tcG9uZW50ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZHVtbXkyID0ge31cclxuICB9XHJcbn0iLCI8IS0tIDxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICA8ZGl2PlNlbGVjdCBUZW1wbGF0ZTwvZGl2PlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmLTE4IGNwXCIgKGNsaWNrKT1cImRpYWxvZy5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIGNsb3NlXHJcbiAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhcmVudC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXIgZC1mbGV4IGdhcC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzMxNDY2MWMxNzQxODQ0MjM0NDQyVmVjdG9yJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cInNlYXJjaC1iYXItaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggZm9yIFNlY3Rpb25zXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VhcmNoU2VjdGlvbnMoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRhaW5lciBkLWZsZXgganVzdGlmeS1jb250ZW50LWFyb3VuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIHRhYnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gZWxlLnZhbHVlXCIgW2NsYXNzLmFjdGl2ZS10YWJdPVwiZWxlLnZhbHVlID09IHNlbGVjdGVkVGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGUudmlld1ZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlLnZhbHVlID09ICdQUk8nICYmIGVsZS52YWx1ZSAhPSBzZWxlY3RlZFRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0zMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzQ2ODI4MWMxNzQ0Njk5NjY0ODU4RnJhbWUlMjAxMjQ0ODMxNzQwJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwicHJvLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdCQVNJQyc7IGVsc2UgcHJvVGFiQ29udGVudFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2VhcmNoO2Vsc2UgZW1wdHlTY3JlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWNvbnRhaW5lciBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zaWRlcGFuZWxcIiAqbmdJZj1cIiFsb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIGdldE9iamVjdEtleXMoc2VjdGlvbnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZS1zZWN0aW9uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFNlY3Rpb24oZWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZS1zZWN0aW9uXT1cInNlbGVjdGVkU2VjdGlvbiA9PSBzZWN0aW9uc1tlbGVdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRTZWN0aW9uID09IHNlY3Rpb25zW2VsZV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy85NTQzODNjMTc0MTg1MDM5MjgwMkdyb3VwJTIwMTcwNzQ4MTg3OS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImljb24gdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkU2VjdGlvbiAhPSBzZWN0aW9uc1tlbGVdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvODQ2MTQ1YzE3NDE4NTA1NzQ4NjRJY29uJTIwJTI4MSUyOS5wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cImljb24gdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1yZW5kZXItc2VjdGlvblwiICpuZ0lmPVwiICFsb2FkZXIgJiYgIXRhYlNoaWZ0TG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTZWN0aW9uTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhIHNlY3Rpb24gdG8gYWRkIHRvIHlvdXIgcGFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlIG9mIHNlbGVjdGVkU2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPnt7ZWxlLnNlY3Rpb25OYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBjcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTmV3U2VjdGlvbihlbGUuY29tcG9uZW50SWQsZWxlLnNlY3Rpb25UeXBlLCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbGU/LmltYWdlOyBlbHNlIG5vSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZWxlPy5pbWFnZVwiIGFsdD1cInNlY3Rpb24gaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9pbWcuZnJlZXBpay5jb20vcHJlbWl1bS12ZWN0b3IvZGVmYXVsdC1pbWFnZS1pY29uLXZlY3Rvci1taXNzaW5nLXBpY3R1cmUtcGFnZS13ZWJzaXRlLWRlc2lnbi1tb2JpbGUtYXBwLW5vLXBob3RvLWF2YWlsYWJsZV84NzU0My0xMTA5My5qcGdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJzZWN0aW9uIGltYWdlXCIgY2xhc3M9XCJoLTMwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zaWRlcGFuZWxcIiAqbmdJZj1cImxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMSwxLDEsMSwxLDEsMSwxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc4dmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzY1JScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEzcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbScgOiAnMTBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMtcmVuZGVyLXNlY3Rpb25cIiAqbmdJZj1cImxvYWRlciB8fCB0YWJTaGlmdExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzIwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogJzN2aCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNXB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICc2MCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA6ICcydmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gICA8bmd4LXNrZWxldG9uLWxvYWRlciBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMjUlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCA6ICcydmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNXB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogJzI1dmgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbic6JzJweCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcm9UYWJDb250ZW50PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktZGl2IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLWNvbnRhaW5lci0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzM3NzA3NmMxNzQzMTU0ODA3NjgzaW1hZ2UlMjAlMjg2JTI5LnBuZ1wiIGFsdD1cImVtcHR5LWltZ1wiIGNsYXNzPVwiZW1wdHktaW1nIFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ29taW5nIFNvb25cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9vcHMtc3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0xIHRleHQtY2VudGVyXCI+V29vZiEgU29tZXRoaW5nIHBhd3NvbWUgaXMgY29taW5nITwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvb3BzLXN1Yi10ZXh0LTIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgSGV5IGhvb21hbiEgSSBqdXN0IHNuaWZmZWQgb3V0IHNvbWV0aGluZyBzdXBlciBleGNpdGluZy4uLiBhbmQgaXTigJlzIGFsbW9zdCBoZXJlISBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTY3JlZW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1kaXYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2UtY29udGFpbmVyLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzc3MDc2YzE3NDMxNTQ4MDc2ODNpbWFnZSUyMCUyODYlMjkucG5nXCIgYWx0PVwiZW1wdHktaW1nXCIgY2xhc3M9XCJlbXB0eS1pbWcgXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvb3BzLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICBPb3BzISBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9vcHMtc3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0xIHRleHQtY2VudGVyXCI+SSBzbmlmZmVkIGV2ZXJ5d2hlcmUsIGJ1dCBJIGNvdWxkbid0IGZpbmQgd2hhdCB5b3UncmUgbG9va2luZyBmb3I8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib29wcy1zdWItdGV4dC0yIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE1heWJlIHRyeSBhIGRpZmZlcmVudCBzZWFyY2g/IFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPiAtLT5cclxuXHJcbjxzZWN0aW9uIGNsYXNzPVwibWFpbi1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXIgZmFkZS1pblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5BZGQgYSBzZWN0aW9uPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1zdWJ0aXRsZVwiPkNob29zZSBhIHNlY3Rpb24g4oCUIHlvdSBjYW4gcmVvcmRlciBvciByZW1vdmUgaXQgYW55IHRpbWUuPC9kaXY+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImRpYWxvZy5jbG9zZSgpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBhcmVudC1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgICAgIDwhLS0gVGFicyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXRhYnMtY29udGFpbmVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmYWRlLWluXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZSBvZiB0YWJzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9wLXRhYlwiIChjbGljayk9XCJvblRhYlNlbGVjdChlbGUudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlLXRvcC10YWJdPVwiZWxlLnZhbHVlID09IHNlbGVjdGVkVGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGUudmlld1ZhbHVlfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBTZWFyY2ggLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXItY29udGFpbmVyIGZhZGUtaW5cIiAqbmdJZj1cInNlbGVjdGVkVGFiICE9ICdTQVZFRCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1iYXIgZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMzE0NjYxYzE3NDE4NDQyMzQ0NDJWZWN0b3IlMjAlMjgxJTI5LnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9J1NlYXJjaCBzZWN0aW9uLi4uJyBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFNlY3Rpb25zKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gJ0JBU0lDJ1wiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1NlYXJjaDsgZWxzZSBlbXB0eVNjcmVlblwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUXVpY2sgQWRkIC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicXVpY2stYWRkLWNvbnRhaW5lciBmYWRlLWluIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cIiFsb2FkZXIgJiYgIXNlYXJjaFRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWRkLWxhYmVsXCI+UXVpY2sgYWRkOjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJxdWljay1hZGQtY2hpcHMgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGdldE9iamVjdEtleXMoc2VjdGlvbnMpOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaSA8IDZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVpY2stY2hpcCBzdGFnZ2VyLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTZWN0aW9uKGNhdGVnb3J5KTsgdG9nZ2xlQ2F0ZWdvcnkoY2F0ZWdvcnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZS1xdWljay1jaGlwXT1cInNlbGVjdGVkU2VjdGlvbk5hbWUgPT09IGNhdGVnb3J5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcC1lbW9qaVwiPnt7Z2V0Q2F0ZWdvcnlFbW9qaShjYXRlZ29yeSl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRGaXJzdFNlY3Rpb25OYW1lKGNhdGVnb3J5KX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBDT05URU5UIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGZhZGUtaW4gZC1mbGV4XCIgKm5nSWY9XCIhbG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMRUZUIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGViYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaGVhZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1pY29uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPuKcqDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTE0XCI+QUkgUmVjb21tZW5kZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBnZXRPYmplY3RLZXlzKHNlY3Rpb25zKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtZW5kIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhdGVnb3J5KGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXRlZ29yeS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tnZXRDYXRlZ29yeUVtb2ppKGNhdGVnb3J5KX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXRlZ29yeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhdGVnb3J5LWNvdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7c2VjdGlvbnNbY2F0ZWdvcnldPy5sZW5ndGh9fSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhdGVnb3J5LWFycm93XCIgKm5nSWY9XCJleHBhbmRlZENhdGVnb3JpZXNbY2F0ZWdvcnldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRfbGVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjYXRlZ29yeS1hcnJvd1wiICpuZ0lmPVwiIWV4cGFuZGVkQ2F0ZWdvcmllc1tjYXRlZ29yeV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZF9tb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWl0ZW1zIGQtZmxleCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiZXhwYW5kZWRDYXRlZ29yaWVzW2NhdGVnb3J5XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWMgb2Ygc2VjdGlvbnNbY2F0ZWdvcnldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZENvbXBvbmVudD8uY29tcG9uZW50SWQgPT09IHNlYy5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbXBvbmVudChzZWMsIGNhdGVnb3J5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VjLnNlY3Rpb25OYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWdyb3VwLWxhYmVsXCI+e3tzZWxlY3RlZFNlY3Rpb25OYW1lIHx8ICdTZWN0aW9ucyd9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWxpc3QgZC1mbGV4IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJzZWxlY3RlZFNlY3Rpb24gJiYgc2VsZWN0ZWRTZWN0aW9uLmxlbmd0aCA+IDBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRTZWN0aW9uOyBsZXQgaSA9IGluZGV4XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInY29tcC0nICsgZWxlLmNvbXBvbmVudElkXCIgY2xhc3M9XCJzZWN0aW9uLWNhcmQgc3RhZ2dlci1pdGVtXCIgW3N0eWxlLmFuaW1hdGlvbi1kZWxheV09XCJpICogNDAgKyAnbXMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWN0aW9uLWNhcmQtc2VsZWN0ZWRdPVwic2VsZWN0ZWRDb21wb25lbnQ/LmNvbXBvbmVudElkID09PSBlbGUuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGUpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwiZWxlLnNlY3Rpb25UeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSArIHt7ZWxlLnNlY3Rpb25UeXBlIHwgdXBwZXJjYXNlfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsge3tlbGUuc2VjdGlvbk5hbWUgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWxlPy5pbWFnZTsgZWxzZSBub0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJlbGU/LmltYWdlXCIgYWx0PVwic2VjdGlvbiBwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8taW1hZ2UtcGxhY2Vob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+aW1hZ2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1pbmZvIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtbmFtZVwiPnt7ZWxlLnNlY3Rpb25OYW1lfX08L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtZGVzY1wiICpuZ0lmPVwiZWxlLmRlc2NcIj57e2VsZS5kZXNjIHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjYXJkLWNoZWNrLWljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gZWxlLmNvbXBvbmVudElkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUgZmFkZS1pblwiICpuZ0lmPVwiIXNlbGVjdGVkU2VjdGlvbiB8fCBzZWxlY3RlZFNlY3Rpb24ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbXB0eS1wYWdlLWljb25cIj5hdXRvX2F3ZXNvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXRpdGxlXCI+U2VsZWN0IGEgY2F0ZWdvcnk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdWJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENob29zZSBhbnkgY2F0ZWdvcnkgZnJvbSB0aGUgbGVmdCBzaWRlYmFyIHRvIGV4cGxvcmUgYW5kIGFkZCBzZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGQtZmxleFwiICpuZ0lmPVwibG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzIG9mIFsxLDEsMSwxLDEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnOTAlJywgaGVpZ2h0OiAnMzZweCcsICdib3JkZXItcmFkaXVzJzogJzhweCcsICdtYXJnaW4tYm90dG9tJzogJzZweCcgfVwiPjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbMSwxLDEsMV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzQwJScsIGhlaWdodDogJzIwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTgwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc2MCUnLCBoZWlnaHQ6ICcxNnB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnU0FWRUQnXCI+XHJcbiAgICAgICAgICAgIDwhLS0gTG9hZGVyIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sYXlvdXQgZC1mbGV4XCIgKm5nSWY9XCJzYXZlZExvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxLDEsMV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnOTAlJywgaGVpZ2h0OiAnMzZweCcsICdib3JkZXItcmFkaXVzJzogJzhweCcsICdtYXJnaW4tYm90dG9tJzogJzhweCcgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcyBvZiBbMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmRcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206MTJweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzQwJScsIGhlaWdodDogJzE4cHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwcHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc2MCUnLCBoZWlnaHQ6ICcxNHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkZWQ6IGNhdGVnb3JpZXMgKyByaWdodCBjb21wb25lbnQgY2FyZCBwcmV2aWV3IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sYXlvdXQgZmFkZS1pbiBkLWZsZXhcIiAqbmdJZj1cIiFzYXZlZExvYWRlciAmJiBzYXZlZENhdGVnb3J5S2V5cy5sZW5ndGggPiAwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBMRUZUOiBjb21wb25lbnQgY2F0ZWdvcmllcyBsaXN0IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlZC1wYWdlcy1sYWJlbFwiPlNhdmVkIFNlY3Rpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0S2V5IG9mIHNhdmVkQ2F0ZWdvcnlLZXlzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYXZlZC1wYWdlLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFNhdmVkQ2F0ZWdvcnkgPT09IGNhdEtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U2F2ZWRDYXRlZ29yeShjYXRLZXkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzYXZlZC1wYWdlLWljb25cIj5hcnRpY2xlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2F2ZWQtcGFnZS1uYW1lXCI+e3tjYXRLZXl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWdyb3VwLWxhYmVsXCI+Q29tcG9uZW50IFByZXZpZXc8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25zLWxpc3QgZC1mbGV4IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZCBmYWRlLWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zZWN0aW9uLWNhcmQtc2VsZWN0ZWRdPVwic2VsZWN0ZWRTYXZlZENvbXBvbmVudD8uaWQgPT09IHNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQ/LmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTYXZlZENvbXBvbmVudChzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VjdGlvbiB0eXBlIGJhZGdlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwic2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvblR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQuc2VjdGlvblR5cGUuc3BsaXQoJ18nKS5qb2luKCcgJykgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBQcmV2aWV3IGFyZWEgKFNob3cgaW1hZ2UgaWYgcHJlc2VudCwgZmFsbGJhY2sgdG8gcGxhY2Vob2xkZXIpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5pbWFnZSAmJiBzYXZlZFNlY3Rpb25zW3NlbGVjdGVkU2F2ZWRDYXRlZ29yeV0uY29tcG9uZW50Py5zdHlsZXM/LmJhY2tncm91bmQ/LnNob3dJbWFnZTsgZWxzZSBzYXZlZE5vSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuaW1hZ2VcIiBhbHQ9XCJzZWN0aW9uIHByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NhdmVkTm9JbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNhdmVkLXByZXZpZXctcGxhY2Vob2xkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+bGF5ZXJzPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvblR5cGU/LnNwbGl0KCdfJyk/LmpvaW4oJyAnKSB8fCAnU2F2ZWQgQ29tcG9uZW50J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBDYXJkIGluZm8gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkLWluZm8gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtbmFtZVwiPnt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uc2VjdGlvbk5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkLWRlc2NcIiAqbmdJZj1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS5jb21wb25lbnQ/LmRlc2NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudC5kZXNjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2FyZC1jaGVjay1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFNhdmVkQ29tcG9uZW50Py5pZCA9PT0gc2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLmNvbXBvbmVudD8uaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVXNlZCBJbiBmb290ZXIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2F2ZWQtY2FyZC1mb290ZXJcIiAqbmdJZj1cInNhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS51c2VkSW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlZC1pbi1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ1c2VkLWluLWljb25cIj53ZWI8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZWQtaW4tdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz5Vc2VkIEluICh7e3NhdmVkU2VjdGlvbnNbc2VsZWN0ZWRTYXZlZENhdGVnb3J5XS51c2VkSW4ubGVuZ3RofX0gUGFnZXMpOjwvc3Ryb25nPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2F2ZWRTZWN0aW9uc1tzZWxlY3RlZFNhdmVkQ2F0ZWdvcnldLnVzZWRJbi5qb2luKCcsICcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEVtcHR5OiBubyBzYXZlZCBkYXRhIGF0IGFsbCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlIGZhZGUtaW5cIiAqbmdJZj1cIiFzYXZlZExvYWRlciAmJiBzYXZlZENhdGVnb3J5S2V5cy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4taWNvbnMtcG5nLmZsYXRpY29uLmNvbS81MTIvNDA3Ni80MDc2NTQ5LnBuZ1wiIGFsdD1cImVtcHR5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIj5ObyBzYXZlZCBzZWN0aW9uczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCI+U2VjdGlvbnMgeW91IHNhdmUgZnJvbSBwYWdlcyB3aWxsIGFwcGVhciBoZXJlPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnQVBQUydcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS0gU2tlbGV0b24gTG9hZGVyIGR1cmluZyBBUEkgbG9hZCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGQtZmxleFwiICpuZ0lmPVwiYXBwc0xvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtc2lkZWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxLDFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGhlbWVdPVwieyB3aWR0aDogJzkwJScsIGhlaWdodDogJzM2cHgnLCAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHMgb2YgWzEsMSwxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOjEycHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInsgd2lkdGg6ICc0MCUnLCBoZWlnaHQ6ICcxOHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMHB4JywgJ2JvcmRlci1yYWRpdXMnOiAnOHB4JywgJ21hcmdpbi1ib3R0b20nOiAnOHB4JyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBMb2FkZWQgYXBwcyBsaXN0IGFuZCBwcmV2aWV3IGJvYXJkcyAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGF5b3V0IGZhZGUtaW4gZC1mbGV4XCIgKm5nSWY9XCIhYXBwc0xvYWRlciAmJiBhcHBzTGlzdC5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIExFRlQgU0lERUJBUiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGViYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwc0xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFwcCBIZWFkZXIgUm93IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWhlYWRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQXBwQ2F0ZWdvcnkoYXBwLmFwcE5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cIm1pbi13aWR0aDogMDsgZmxleDogMTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXRlZ29yeS1pY29uXCI+e3thcHBJY29uTWFwW2FwcC5hcHBOYW1lXSB8fCAn8J+Tpid9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMyBmdy1zZW1pYm9sZFwiIHN0eWxlPVwidGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IG92ZXJmbG93OiBoaWRkZW47IHdoaXRlLXNwYWNlOiBub3dyYXA7IG1pbi13aWR0aDogMDsgZmxleDogMTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YXBwLmFwcE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ29tcGFjdCBhY3RpdmUgZ3JlZW4gc3RhdHVzIGRvdCBmb3IgaW5zdGFsbGVkIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1kb3QtaW5zdGFsbGVkXCIgKm5nSWY9XCJhcHAuYXBwSW5zdGFsbGVkXCIgdGl0bGU9XCJJbnN0YWxsZWRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW5zdGFsbCBCdXR0b24gaWYgbm90IGluc3RhbGxlZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hcHAtaW5zdGFsbC1zbWFsbFwiICpuZ0lmPVwiIWFwcC5hcHBJbnN0YWxsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc3RhbGxBcHAoYXBwLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnN0YWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2F0ZWdvcnktYXJyb3dcIiAqbmdJZj1cImV4cGFuZGVkQXBwc1thcHAuYXBwTmFtZV0gJiYgYXBwLmFwcEluc3RhbGxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kX2xlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY2F0ZWdvcnktYXJyb3dcIiAqbmdJZj1cIiFleHBhbmRlZEFwcHNbYXBwLmFwcE5hbWVdICYmIGFwcC5hcHBJbnN0YWxsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZF9tb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3ViY29tcG9uZW50cyBsaXN0IHVuZGVyIGluc3RhbGxlZCBhcHAgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktaXRlbXMgZC1mbGV4IGZsZXgtY29sdW1uIGFuaW1hdGUtZHJvcGRvd25cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJleHBhbmRlZEFwcHNbYXBwLmFwcE5hbWVdICYmIGFwcC5hcHBJbnN0YWxsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXBwLmNvbXBvbmVudHM/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9BcHBTZWNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlYyBvZiBhcHAuY29tcG9uZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2VjPy5kYXRhPy5jb21wb25lbnRJZCAhPSBudWxsICYmIHNlbGVjdGVkQXBwQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gc2VjPy5kYXRhPy5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcENvbXBvbmVudChzZWMuZGF0YSwgYXBwLmFwcE5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7e3NlYy5kYXRhLnNlY3Rpb25OYW1lfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBzZWM/LmRhdGE/LnNlY3Rpb25OYW1lIHx8ICdObyBDb21wb25lbnQnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0FwcFNlY3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1pdGVtLWRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBzZWN0aW9ucyBhdmFpbGFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUklHSFQgQ09OVEVOVCBQUkVWSUVXIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8IS0tIElGIEFOIEFQUCBJUyBTRUxFQ1RFRCAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRBcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSU5TVEFMTEVEIEFQUCBTRUNUSU9OUyBMSVNUIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U2VsZWN0ZWRBcHBPYmooKSBhcyBhY3RpdmVBcHBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVBcHAuYXBwSW5zdGFsbGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tZ3JvdXAtbGFiZWxcIj57e3NlbGVjdGVkQXBwfX0gU2VjdGlvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbnMtbGlzdCBkLWZsZXggZmxleC1jb2x1bW5cIiAqbmdJZj1cInNlbGVjdGVkQXBwU2VjdGlvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2Ygc2VsZWN0ZWRBcHBTZWN0aW9uczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpZF09XCInYXBwLWNvbXAtJyArIGVsZT8uZGF0YT8uY29tcG9uZW50SWQgIT0gbnVsbFwiIGNsYXNzPVwic2VjdGlvbi1jYXJkIHN0YWdnZXItaXRlbVwiIFtzdHlsZS5hbmltYXRpb24tZGVsYXldPVwiaSAqIDQwICsgJ21zJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNlY3Rpb24tY2FyZC1zZWxlY3RlZF09XCJlbGU/LmRhdGE/LmNvbXBvbmVudElkICE9IG51bGwgJiYgc2VsZWN0ZWRBcHBDb21wb25lbnQ/LmNvbXBvbmVudElkID09PSBlbGUuZGF0YS5jb21wb25lbnRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEFwcENvbXBvbmVudEFuZEhpZ2hsaWdodChlbGUuZGF0YSlcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBCYWRnZSBzaG93aW5nIGNvbXBvbmVudCBzZWN0aW9uIG5hbWUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY2FyZC1iYWRnZVwiICpuZ0lmPVwiZWxlPy5kYXRhPy5zZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB7eyhlbGU/LmRhdGE/LnNlY3Rpb25OYW1lIHwgdGl0bGVjYXNlKSB8fCBcIk5vIENvbXBvbmVudFwifX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbWFnZSBQcmV2aWV3IEFyZWEgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taW1nLWNvbnRhaW5lciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZT8uZGF0YT8uaW1hZ2U7IGVsc2Ugbm9JbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImVsZS5kYXRhLmltYWdlXCIgYWx0PVwic2VjdGlvbiBwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1hZ2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8taW1hZ2UtcGxhY2Vob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmltYWdlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENhcmQgSW5mbyAoRGVzY3JpcHRpb24gYW5kIFRhZ3MpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtaW5mbyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtaW4td2lkdGg6IDA7IGZsZXg6IDE7IHBhZGRpbmctcmlnaHQ6IDhweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQtZGVzY1wiICpuZ0lmPVwiZWxlPy5kYXRhPy5kZXNjXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiA2cHg7XCI+e3tlbGUuZGF0YS5kZXNjfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGFncyBhcnJheSByZW5kZXJpbmcgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtMVwiICpuZ0lmPVwiZWxlPy5kYXRhPy50YWdzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtYmFkZ2VcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWYyZmY7IGNvbG9yOiAjNGY0NmU1OyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogOC41cHg7XCIgKm5nRm9yPVwibGV0IHRhZyBvZiBlbGUuZGF0YS50YWdzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dGFnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhcmQtY2hlY2staWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVsZT8uZGF0YSAhPSBudWxsICYmIHNlbGVjdGVkQXBwQ29tcG9uZW50Py5jb21wb25lbnRJZCA9PT0gZWxlLmRhdGEuY29tcG9uZW50SWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTm8gc2VjdGlvbnMgZW1wdHkgc3RhdGUgaW5zaWRlIHJpZ2h0IHBhbmVsIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZSBmYWRlLWluXCIgKm5nSWY9XCJzZWxlY3RlZEFwcFNlY3Rpb25zLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbXB0eS1wYWdlLWljb25cIj5pbmJveDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS10aXRsZVwiPk5vIHNlY3Rpb25zIGF2YWlsYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3VidGl0bGVcIj5UaGlzIGFwcCBkb2VzIG5vdCBwcm92aWRlIGFueSBwcmUtYnVpbHQgc2VjdGlvbnMgYXQgdGhlIG1vbWVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBOT1QgSU5TVEFMTEVEIEVNUFRZIFNUQVRFIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3RpdmVBcHAuYXBwSW5zdGFsbGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlIGZhZGUtaW4gZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVtcHR5LXBhZ2UtaWNvblwiIHN0eWxlPVwiZm9udC1zaXplOiA1NnB4ICFpbXBvcnRhbnQ7IHdpZHRoOiA1NnB4ICFpbXBvcnRhbnQ7IGhlaWdodDogNTZweCAhaW1wb3J0YW50OyBjb2xvcjogIzdjNmNmMDsgb3BhY2l0eTogMC44O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2FwcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDsgbWFyZ2luLXRvcDogMTJweDtcIj5QbGVhc2UgaW5zdGFsbCB0byB2aWV3IHNlY3Rpb25zPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdWJ0aXRsZVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTZweDsgbWF4LXdpZHRoOiAyODBweDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zdGFsbCB0aGUge3tzZWxlY3RlZEFwcH19IHBsdWdpbiB0byB1bmxvY2sgcHJlbWl1bSwgcHJlLWJ1aWx0IHNlY3Rpb25zIGZvciB5b3VyIHdlYnNpdGUuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWFwcC1pbnN0YWxsLWxhcmdlXCIgKGNsaWNrKT1cImluc3RhbGxBcHAoYWN0aXZlQXBwLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDimqEgSW5zdGFsbCB7e3NlbGVjdGVkQXBwfX0gQXBwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOTyBBQ1RJVkUgQVBQIFNFTEVDVEVEIChGQUxMQkFDSykgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZEFwcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUgZmFkZS1pbiBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVtcHR5LXBhZ2UtaWNvblwiPmFwcHM8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXRpdGxlXCI+RXhwbG9yZSBQbHVnaW5zICYgQXBwczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDI2MHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBhbnkgYXBwbGljYXRpb24gZnJvbSB0aGUgbGVmdCBzaWRlYmFyIHRvIGJyb3dzZSBhbmQgY29uZmlndXJlIGl0cyBjdXN0b20gbGF5b3V0IGNvbXBvbmVudHMuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDwhLS0gRU1QVFkgU0VBUkNIIC0tPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTY3JlZW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZSBmYWRlLWluIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi1pY29ucy1wbmcuZmxhdGljb24uY29tLzUxMi83NDg2Lzc0ODY4MDMucG5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktdGl0bGVcIj5ObyBzZWN0aW9ucyBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN1YnRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgVHJ5IHNlYXJjaGluZyBzb21ldGhpbmcgZWxzZSBvciBleHBsb3JlIGNhdGVnb3JpZXNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRm9vdGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3Rlci1jb250YWluZXIgZmFkZS1pblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItaGludFwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+aW5mb19vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgWW91IGNhbiByZWFycmFuZ2Ugb3IgcmVtb3ZlIHRoaXMgc2VjdGlvbiBhbnkgdGltZS5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWFjdGlvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1jYW5jZWxcIiAoY2xpY2spPVwiZGlhbG9nLmNsb3NlKClcIj5DYW5jZWw8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1hZGRcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInNlbGVjdGVkVGFiID09PSAnQkFTSUMnID8gIXNlbGVjdGVkQ29tcG9uZW50IDogKHNlbGVjdGVkVGFiID09PSAnQVBQUycgPyAhc2VsZWN0ZWRBcHBDb21wb25lbnQgOiAhc2VsZWN0ZWRTYXZlZENvbXBvbmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFkZFNlY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgKyBBZGQgc2VjdGlvblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuPC9zZWN0aW9uPlxyXG5cclxuPCEtLSBCZWF1dGlmdWwgSW5zdGFsbGF0aW9uIFByb2dyZXNzIERpYWxvZyBUZW1wbGF0ZSAtLT5cclxuPG5nLXRlbXBsYXRlICNpbnN0YWxsUHJvZ3Jlc3NUZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWNvbnRhaW5lciBhbmltYXRlLWNvbXBsZXRlLXBvcFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbXBvLWRpYWxvZy1oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcC1pY29uLWJhZGdlXCI+e3sgYXBwSWNvbk1hcFtpbnN0YWxsaW5nQXBwPy5hcHBOYW1lXSB8fCAn8J+UjCcgfX08L2Rpdj5cclxuICAgICAgPGgzPlNldHRpbmcgVXAge3sgaW5zdGFsbGluZ0FwcD8uYXBwTmFtZSB9fSBBcHA8L2gzPlxyXG4gICAgICA8cD5QbGVhc2Ugd2FpdCB3aGlsZSB3ZSBjb25maWd1cmUgeW91ciBwcmVtaXVtIHNjaGVkdWxpbmcgc3lzdGVtLjwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaW1wby1kaWFsb2ctYm9keVwiPlxyXG4gICAgICA8IS0tIEFuaW1hdGVkIFByb2dyZXNzIEJhciAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpbXBvLWRpYWxvZy1wcm9ncmVzcy1iYXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLXByb2dyZXNzLWZpbGxcIiBbc3R5bGUud2lkdGhdPVwiZ2V0T3ZlcmFsbFByb2dyZXNzUGVyY2VudCgpICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBTdGVwcyBMaXN0IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcG8tc3RlcHMtbGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLXJvd1wiICpuZ0Zvcj1cImxldCBzdGVwIG9mIGluc3RhbGxTdGVwczsgbGV0IGlkeCA9IGluZGV4XCIgW25nQ2xhc3NdPVwic3RlcD8uc3RhdHVzIHx8ICcnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8IS0tIEFjdGl2ZSBTdGVwIEljb24gKFB1bHNpbmcgZ2xvd2luZyBkb3QpIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1pY29uIGFjdGl2ZS1pY29uXCIgKm5nSWY9XCJzdGVwPy5zdGF0dXMgPT09ICdhY3RpdmUnXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLW51bWJlclwiPnt7IGlkeCArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bHNlLXJpbmdcIj48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFN1Y2Nlc3MgU3RlcCBJY29uIChHcmVlbiBjaGVja21hcmsgd2l0aCBzcHJpbmctdXAgYW5pbWF0aW9uKSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaWNvbiBzdWNjZXNzLWljb24gYW5pbWF0ZS1zdWNjZXNzXCIgKm5nSWY9XCJzdGVwPy5zdGF0dXMgPT09ICdzdWNjZXNzJ1wiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jaGVjazwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQZW5kaW5nIFN0ZXAgSWNvbiAoRGltbWVkIHNpbXBsZSBudW1iZXIvZG90KSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaWNvbiBwZW5kaW5nLWljb25cIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ3BlbmRpbmcnXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwLW51bWJlclwiPnt7IGlkeCArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1sYWJlbFwiPnt7IHN0ZXA/LmxhYmVsIHx8ICcnIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwLWRlc2NcIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ2FjdGl2ZSdcIj5Qcm9jZXNzaW5nLCBwbGVhc2Ugd2FpdDxzcGFuIGNsYXNzPVwiZG90cy1wdWxzZVwiPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtZGVzYyBzdWNjZXNzLWRlc2NcIiAqbmdJZj1cInN0ZXA/LnN0YXR1cyA9PT0gJ3N1Y2Nlc3MnXCI+Q29tcGxldGVkIHN1Y2Nlc3NmdWxseTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1kZXNjIHBlbmRpbmctZGVzY1wiICpuZ0lmPVwic3RlcD8uc3RhdHVzID09PSAncGVuZGluZydcIj5VcGNvbWluZy4uLjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEJlYXV0aWZ1bCBJbnN0YWxsYXRpb24gQ29tcGxldGUgRGlhbG9nIFRlbXBsYXRlIC0tPlxyXG48bmctdGVtcGxhdGUgI2luc3RhbGxDb21wbGV0ZVRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJzaW1wby1kaWFsb2ctY29udGFpbmVyIGNvbXBsZXRlLWRpYWxvZy1jYXJkIGFuaW1hdGUtY29tcGxldGUtcG9wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tcGxldGUtaGVhZGVyLWFydFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3BhcmtsZXMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGFya2xlIG9uZVwiPuKcqDwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwYXJrbGUgdHdvXCI+4pyoPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3BhcmtsZSB0aHJlZVwiPvCfjok8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29tcGxldGUtaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPnZlcmlmaWVkPC9tYXQtaWNvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWhlYWRlciB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1iYWRnZS10ZXh0XCI+SU5TVEFMTEFUSU9OIENPTVBMRVRFRDwvZGl2PlxyXG4gICAgICA8aDMgY2xhc3M9XCJjb21wbGV0ZS10aXRsZVwiPllvdXIgQXBwb2ludG1lbnQgQXBwIGlzIFJlYWR5ITwvaDM+XHJcbiAgICAgIDxwIGNsYXNzPVwiY29tcGxldGUtbWVzc2FnZVwiPlxyXG4gICAgICAgIEZvciBiZXR0ZXIgZXhwZXJpZW5jZSBjcmVhdGUgc2VydmljZSBhbmQgYXNzaWduIHN0YWZmIHRvIGNyZWF0ZWQgc2VydmljZVxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2ltcG8tZGlhbG9nLWJvZHkgdGV4dC1jZW50ZXIgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG4gICAgICA8IS0tIERpcmVjdGluZyBBY3Rpb24gQnV0dG9uIC0tPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXJlZGlyZWN0IHctMTAwXCIgKGNsaWNrKT1cInJlZGlyZWN0VG9BcHBvaW50bWVudHMoKVwiPlxyXG4gICAgICAgIDxzcGFuPkNyZWF0ZSBTZXJ2aWNlICYgQXNzaWduIFN0YWZmPC9zcGFuPlxyXG4gICAgICAgIDxtYXQtaWNvbj5hcnJvd19mb3J3YXJkPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8IS0tIERpc21pc3MgYnV0dG9uIC0tPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWRpc21pc3NcIiAoY2xpY2spPVwiY2xvc2VBbGxEaWFsb2dzKClcIj5cclxuICAgICAgICBNYXliZSBMYXRlclxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==