@lowcodeunit/applications-flow-common 1.37.80-new-state-setup → 1.37.85-mobile-friendly

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/esm2020/lib/controls/build-pipeline-form/build-pipeline-form.component.mjs +2 -2
  2. package/esm2020/lib/controls/devops-source-control-form/devops-source-control-form.component.mjs +12 -10
  3. package/esm2020/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.mjs +3 -3
  4. package/esm2020/lib/dialogs/edit-application-dialog/edit-application-dialog.component.mjs +3 -3
  5. package/esm2020/lib/dialogs/edit-project-dialog/edit-project-dialog.component.mjs +3 -3
  6. package/esm2020/lib/dialogs/feed-header-dialog/feed-header-dialog.component.mjs +8 -8
  7. package/esm2020/lib/dialogs/new-application-dialog/new-application-dialog.component.mjs +3 -3
  8. package/esm2020/lib/dialogs/processor-details-dialog/processor-details-dialog.component.mjs +3 -3
  9. package/esm2020/lib/dialogs/source-control-dialog/source-control-dialog.component.mjs +1 -1
  10. package/esm2020/lib/dialogs/state-config-dialog/state-config-dialog.component.mjs +3 -3
  11. package/esm2020/lib/elements/activity-card/activity-card.component.mjs +3 -3
  12. package/esm2020/lib/elements/breadcrumb/breadcrumb.component.mjs +6 -2
  13. package/esm2020/lib/elements/feed-header/feed-header.component.mjs +6 -4
  14. package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +4 -4
  15. package/esm2020/lib/elements/project-card/project-card.component.mjs +164 -18
  16. package/esm2020/lib/elements/project-wizard-card/project-wizard-card.component.mjs +5 -13
  17. package/esm2020/lib/models/tree-node.model.mjs +5 -0
  18. package/esm2020/lib/services/social-ui.service.mjs +3 -1
  19. package/fesm2015/lowcodeunit-applications-flow-common.mjs +268 -103
  20. package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
  21. package/fesm2020/lowcodeunit-applications-flow-common.mjs +244 -89
  22. package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
  23. package/lib/elements/feed-header/feed-header.component.d.ts +1 -0
  24. package/lib/elements/project-card/project-card.component.d.ts +45 -3
  25. package/lib/models/tree-node.model.d.ts +17 -0
  26. package/package.json +1 -1
@@ -43,15 +43,15 @@ export class MainFeedCardComponent {
43
43
  this.SanitizeVideos();
44
44
  }
45
45
  ngOnChanges() {
46
- if (this.FeedItem.Status.Code === 0) {
46
+ if (this.FeedItem?.Status?.Code === 0) {
47
47
  this.Icon = 'check_circle';
48
48
  this.IconColor = 'green';
49
49
  }
50
- else if (this.FeedItem.Status.Code === 1) {
50
+ else if (this.FeedItem?.Status?.Code === 1) {
51
51
  this.Icon = 'cancel';
52
52
  this.IconColor = 'red';
53
53
  }
54
- else if (this.FeedItem.Status.Code === 2) {
54
+ else if (this.FeedItem?.Status?.Code === 2) {
55
55
  this.Icon = 'sync';
56
56
  this.IconColor = 'blue';
57
57
  }
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
153
153
  type: Input,
154
154
  args: ['feed-item']
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFLbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7Ozs7OztBQU94RyxNQUFNLE9BQU8scUJBQXFCO0lBc0M5QixZQUNjLE1BQWtCLEVBQ2xCLE1BQWlCLEVBQ25CLFNBQXVCLEVBQ3JCLFdBQXdCO1FBSHhCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ25DLENBQUM7SUF6QkoseURBQXlEO0lBQ3pELDBFQUEwRTtJQUMxRSxJQUFJO0lBRUosaURBQWlEO0lBQ2pELDBEQUEwRDtJQUMxRCwyRUFBMkU7SUFFM0UsNEJBQTRCO0lBQzVCLElBQUk7SUFFSixJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsUUFBUTthQUMvRCxPQUFPLENBQUM7SUFDakIsQ0FBQztJQWFELGNBQWM7SUFDUCxXQUFXO1FBQ2QsSUFB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QUFxQjtzR0FBckIscUJBQXFCLG9XQUduQix3QkFBd0IscUVDcEJ2QyxzbE1BNElBOzJGRDNIYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksb0JBQW9COzhLQVF2Qix1QkFBdUI7c0JBRDdCLFNBQVM7dUJBQUMsd0JBQXdCO2dCQUk1QixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUlwQix1QkFBdUI7c0JBRDdCLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUkzQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWVkSXRlbSwgRmVlZEl0ZW1BY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgU291cmNlQ29udHJvbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3Mvc291cmNlLWNvbnRyb2wtZGlhbG9nL3NvdXJjZS1jb250cm9sLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVhQ0Vudmlyb25tZW50QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZWVkQ29tbWVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9mZWVkLWNvbW1lbnQtZm9ybS9mZWVkLWNvbW1lbnQtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1tYWluLWZlZWQtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW4tZmVlZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYWluLWZlZWQtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluRmVlZENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJvdGVjdGVkIGNoZWNrVGltZW91dDogYW55O1xuXG4gICAgQFZpZXdDaGlsZChGZWVkQ29tbWVudEZvcm1Db21wb25lbnQpXG4gICAgcHVibGljIEZlZWRDb21tZW50Rm9ybUNvbnRyb2xzOiBGZWVkQ29tbWVudEZvcm1Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2FjdGl2ZS1lbnZpcm9ubWVudCcpXG4gICAgcHVibGljIEFjdGl2ZUVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIEBJbnB1dCgnYWN0aXZlLWVudmlyb25tZW50LWxvb2t1cCcpXG4gICAgcHVibGljIEFjdGl2ZUVudmlyb25tZW50TG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50JylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gICAgQElucHV0KCdmZWVkLWl0ZW0nKVxuICAgIHB1YmxpYyBGZWVkSXRlbTogRmVlZEl0ZW07XG5cbiAgICAvLyBwdWJsaWMgZ2V0IEFjdGl2ZUVudmlyb25tZW50KCk6IEVhQ0Vudmlyb25tZW50QXNDb2RlIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uRW52aXJvbm1lbnRzW3RoaXMuQWN0aXZlRW52aXJvbm1lbnRMb29rdXBdO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgQWN0aXZlRW52aXJvbm1lbnRMb29rdXAoKTogc3RyaW5nIHtcbiAgICAvLyAgICAgLy8gIFRPRE86ICBFdmVudHVhbGx5IHN1cHBvcnQgbXVsdGlwbGUgZW52aXJvbm1lbnRzXG4gICAgLy8gICAgIGNvbnN0IGVudkxvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50cyB8fCB7fSk7XG5cbiAgICAvLyAgICAgcmV0dXJuIGVudkxvb2t1cHNbMF07XG4gICAgLy8gfVxuXG4gICAgcHVibGljIGdldCBDb21tZW50Q29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5GZWVkQ29tbWVudEZvcm1Db250cm9scz8uRmVlZENvbW1lbnRzRm9ybUdyb3VwPy5jb250cm9sc1xuICAgICAgICAgICAgLmNvbW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIEljb246IHN0cmluZztcblxuICAgIHB1YmxpYyBJY29uQ29sb3I6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgICApIHt9XG5cbiAgICAvLyAgTGlmZSBDeWNsZVxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jaGVja1RpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVJlZnJlc2goKTtcbiAgICAgICAgdGhpcy5TYW5pdGl6ZVZpZGVvcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuRmVlZEl0ZW0uU3RhdHVzLkNvZGUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuSWNvbiA9ICdjaGVja19jaXJjbGUnO1xuICAgICAgICAgICAgdGhpcy5JY29uQ29sb3IgPSAnZ3JlZW4nO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuRmVlZEl0ZW0uU3RhdHVzLkNvZGUgPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuSWNvbiA9ICdjYW5jZWwnO1xuICAgICAgICAgICAgdGhpcy5JY29uQ29sb3IgPSAncmVkJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAyKSB7XG4gICAgICAgICAgICB0aGlzLkljb24gPSAnc3luYyc7XG4gICAgICAgICAgICB0aGlzLkljb25Db2xvciA9ICdibHVlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuSWNvbiA9ICdoZWxwX291dGxpbmUnO1xuICAgICAgICAgICAgdGhpcy5JY29uQ29sb3IgPSAnZ3JheSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQ2FsY3VsYXRlVGltZWxhcHNlKHRpbWVzdGFtcDogRGF0ZSkge1xuICAgICAgICByZXR1cm4gbW9tZW50KHRpbWVzdGFtcCkuZnJvbU5vdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBIYW5kbGVBY3Rpb24oYWN0aW9uOiBGZWVkSXRlbUFjdGlvbikge1xuICAgICAgICBpZiAoYWN0aW9uLkFjdGlvblR5cGUgPT0gJ0xpbmsnKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLkFjdGlvbi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihhY3Rpb24uQWN0aW9uLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYWN0aW9uLkFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24uQWN0aW9uVHlwZSA9PSAnTW9kYWwnKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLkFjdGlvbiA9PSAnQWRkU291cmNlQ29udHJvbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLk9wZW5Tb3VyY2VDb250cm9sRGlhbG9nKG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGVydCgnb3RoZXIgbW9kYWxlZCAnICsgYWN0aW9uLkFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU3VibWl0Q29tbWVudChldmVudDogYW55KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZWNpZXZlZCBjb21tZW50OiAnLCBldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIE9wZW5Tb3VyY2VDb250cm9sRGlhbG9nKHNjTG9va3VwOiBzdHJpbmcsIHNjTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU291cmNlQ29udHJvbERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc1NTBweCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnRMb29rdXA6IHRoaXMuQWN0aXZlRW52aXJvbm1lbnRMb29rdXAsXG4gICAgICAgICAgICAgICAgc2NMb29rdXA6IHNjTG9va3VwLFxuICAgICAgICAgICAgICAgIHNjTmFtZTogc2NOYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdUaGUgZGlhbG9nIHdhcyBjbG9zZWQnKTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwicmVzdWx0OlwiLCByZXN1bHQpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYWZlSHRtbChodG1sOiBzdHJpbmcpOiBTYWZlSHRtbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU2FuaXRpemVWaWRlb3MoKSB7XG4gICAgICAgIHRoaXMuRmVlZEl0ZW0/LlRhYnM/LmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgICAgaWYgKHRhYi5EYXRhLlZpZGVvKSB7XG4gICAgICAgICAgICAgICAgdGFiLkRhdGEuVmlkZW8gPSB0aGlzLlNhZmVIdG1sKHRhYi5EYXRhLlZpZGVvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFN1Ym1pdENvbW1lbnQoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjb21tZW50OiAnLCB0aGlzLkNvbW1lbnRDb250cm9sLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAgSGVscGVyc1xuXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJlZnJlc2goKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLkZlZWRJdGVtPy5SZWZyZXNoTGluaykge1xuICAgICAgICAgICAgdGhpcy5jaGVja1RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVhY1N2Yy5DaGVja1VzZXJGZWVkSXRlbSh0aGlzLkZlZWRJdGVtKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jIChyZXNwb25zZTogQmFzZU1vZGVsZWRSZXNwb25zZTxGZWVkSXRlbT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRmVlZEl0ZW0gPSByZXNwb25zZS5Nb2RlbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgMzAwMDApO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwic29jaWFsLWNhcmRcIj5cbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgICBtYXQtY2FyZC1hdmF0YXJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItaW1hZ2VcIlxuICAgICAgICAgICAgW3NyY109XCJGZWVkSXRlbS5BdmF0YXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJGZWVkSXRlbS5BdmF0YXJcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZSAqbmdJZj1cIkZlZWRJdGVtLlRpdGxlXCIgY2xhc3M9XCJmZWVkLWl0ZW0tdGl0bGVcIj57e1xuICAgICAgICAgICAgRmVlZEl0ZW0uVGl0bGVcbiAgICAgICAgfX08L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJGZWVkSXRlbS5TdWJ0aXRsZVwiPnt7IEZlZWRJdGVtLlN1YnRpdGxlIH19PC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJGZWVkSXRlbS5TdWJ0ZXh0XCI+e3sgRmVlZEl0ZW0uU3VidGV4dCB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiRmVlZEl0ZW0uU3RhdHVzXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiSWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJJY29uQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Muc3Bpbl09XCJGZWVkSXRlbS5TdGF0dXM/LkNvZGUgPT0gMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBJY29uIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmVlZEl0ZW0uU3RhdHVzPy5NZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IEZlZWRJdGVtLlN0YXR1cz8uTWVzc2FnZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRmVlZEl0ZW0uVGltZXN0YW1wXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IENhbGN1bGF0ZVRpbWVsYXBzZShGZWVkSXRlbS5UaW1lc3RhbXApIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIUZlZWRJdGVtLklzU2hvcnRGb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWVkLWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlZC1jYXJkLW1haW4tY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgRmVlZEl0ZW0uVGFic1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWIgW2xhYmVsXT1cInRhYi5UaXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5EYXRhPy5Db21taXQ/Lk1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbW1pdC1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYWZlSHRtbCh0YWIuRGF0YT8uQ29tbWl0Py5NZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuRGF0YT8uQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2FmZUh0bWwodGFiLkRhdGE/LkNvbnRlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5EYXRhPy5WaWRlb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwidGFiLkRhdGEuVmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLkRhdGE/LkNvbW1lbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWIuRGF0YT8uQ29tbWVudHM/Lmxlbmd0aCA8PSAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+Tm8gY29tbWVudHMgcHJvdmlkZWQ8L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbW1lbnQgb2YgdGFiLkRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LkNvbW1lbnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1jYXJkLWF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY29tbWVudC5BdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tbWVudC5BdmF0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbW1lbnQuQXV0aG9yIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudGVkIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY29tbWVudC5VcGRhdGVkQXQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhZmVIdG1sKGNvbW1lbnQuQ29tbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGN1LWZlZWQtY29tbWVudC1mb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXQtZXZlbnQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYW5kbGVTdWJtaXRDb21tZW50KCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sY3UtZmVlZC1jb21tZW50LWZvcm0+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCI+XG4gICAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBGZWVkSXRlbS5BY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLkNvbG9yXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiSGFuZGxlQWN0aW9uKGFjdGlvbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImFjdGlvbi5JY29uXCI+e3sgYWN0aW9uLkljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAge3sgYWN0aW9uLlRleHQgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG48L21hdC1jYXJkPlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFLbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7Ozs7Ozs7OztBQU94RyxNQUFNLE9BQU8scUJBQXFCO0lBc0M5QixZQUNjLE1BQWtCLEVBQ2xCLE1BQWlCLEVBQ25CLFNBQXVCLEVBQ3JCLFdBQXdCO1FBSHhCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQ25DLENBQUM7SUF6QkoseURBQXlEO0lBQ3pELDBFQUEwRTtJQUMxRSxJQUFJO0lBRUosaURBQWlEO0lBQ2pELDBEQUEwRDtJQUMxRCwyRUFBMkU7SUFFM0UsNEJBQTRCO0lBQzVCLElBQUk7SUFFSixJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsUUFBUTthQUMvRCxPQUFPLENBQUM7SUFDakIsQ0FBQztJQWFELGNBQWM7SUFDUCxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7U0FDNUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDMUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7U0FDM0I7YUFBTTtZQUNILElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDUixrQkFBa0IsQ0FBQyxTQUFlO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBc0I7UUFDdEMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sRUFBRTtZQUM3QixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUN4QztTQUNKO2FBQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUNyQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksa0JBQWtCLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMzQztTQUNKO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQVU7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBZ0IsRUFBRSxNQUFjO1FBQzNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQzdELEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFO2dCQUNGLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtnQkFDL0MsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE1BQU0sRUFBRSxNQUFNO2FBQ2pCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQzlDLHdDQUF3QztZQUN4QyxpQ0FBaUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGFBQWE7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVztJQUVELGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FDbEQsS0FBSyxFQUFFLFFBQXVDLEVBQUUsRUFBRTtvQkFDOUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQzt3QkFFL0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO3FCQUN4Qjt5QkFBTTt3QkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUN6QjtnQkFDTCxDQUFDLEVBQ0QsQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLENBQ0osQ0FBQztZQUNOLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNiO0lBQ0wsQ0FBQzs7a0hBeEpRLHFCQUFxQjtzR0FBckIscUJBQXFCLG9XQUduQix3QkFBd0IscUVDcEJ2QyxzbE1BNElBOzJGRDNIYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksb0JBQW9COzhLQVF2Qix1QkFBdUI7c0JBRDdCLFNBQVM7dUJBQUMsd0JBQXdCO2dCQUk1QixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUlwQix1QkFBdUI7c0JBRDdCLEtBQUs7dUJBQUMsMkJBQTJCO2dCQUkzQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZWVkSXRlbSwgRmVlZEl0ZW1BY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlTW9kZWxlZFJlc3BvbnNlIH0gZnJvbSAnQGxjdS9jb21tb24nO1xuaW1wb3J0IHsgU291cmNlQ29udHJvbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3Mvc291cmNlLWNvbnRyb2wtZGlhbG9nL3NvdXJjZS1jb250cm9sLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVhQ0Vudmlyb25tZW50QXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGZWVkQ29tbWVudEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9mZWVkLWNvbW1lbnQtZm9ybS9mZWVkLWNvbW1lbnQtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xjdS1tYWluLWZlZWQtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW4tZmVlZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYWluLWZlZWQtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluRmVlZENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gICAgcHJvdGVjdGVkIGNoZWNrVGltZW91dDogYW55O1xuXG4gICAgQFZpZXdDaGlsZChGZWVkQ29tbWVudEZvcm1Db21wb25lbnQpXG4gICAgcHVibGljIEZlZWRDb21tZW50Rm9ybUNvbnRyb2xzOiBGZWVkQ29tbWVudEZvcm1Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2FjdGl2ZS1lbnZpcm9ubWVudCcpXG4gICAgcHVibGljIEFjdGl2ZUVudmlyb25tZW50OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICAgIEBJbnB1dCgnYWN0aXZlLWVudmlyb25tZW50LWxvb2t1cCcpXG4gICAgcHVibGljIEFjdGl2ZUVudmlyb25tZW50TG9va3VwOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ2Vudmlyb25tZW50JylcbiAgICBwdWJsaWMgRW52aXJvbm1lbnQ6IEVhQ0Vudmlyb25tZW50QXNDb2RlO1xuXG4gICAgQElucHV0KCdmZWVkLWl0ZW0nKVxuICAgIHB1YmxpYyBGZWVkSXRlbTogRmVlZEl0ZW07XG5cbiAgICAvLyBwdWJsaWMgZ2V0IEFjdGl2ZUVudmlyb25tZW50KCk6IEVhQ0Vudmlyb25tZW50QXNDb2RlIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uRW52aXJvbm1lbnRzW3RoaXMuQWN0aXZlRW52aXJvbm1lbnRMb29rdXBdO1xuICAgIC8vIH1cblxuICAgIC8vIHB1YmxpYyBnZXQgQWN0aXZlRW52aXJvbm1lbnRMb29rdXAoKTogc3RyaW5nIHtcbiAgICAvLyAgICAgLy8gIFRPRE86ICBFdmVudHVhbGx5IHN1cHBvcnQgbXVsdGlwbGUgZW52aXJvbm1lbnRzXG4gICAgLy8gICAgIGNvbnN0IGVudkxvb2t1cHMgPSBPYmplY3Qua2V5cyh0aGlzLlN0YXRlPy5FYUM/LkVudmlyb25tZW50cyB8fCB7fSk7XG5cbiAgICAvLyAgICAgcmV0dXJuIGVudkxvb2t1cHNbMF07XG4gICAgLy8gfVxuXG4gICAgcHVibGljIGdldCBDb21tZW50Q29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5GZWVkQ29tbWVudEZvcm1Db250cm9scz8uRmVlZENvbW1lbnRzRm9ybUdyb3VwPy5jb250cm9sc1xuICAgICAgICAgICAgLmNvbW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIEljb246IHN0cmluZztcblxuICAgIHB1YmxpYyBJY29uQ29sb3I6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgICApIHt9XG5cbiAgICAvLyAgTGlmZSBDeWNsZVxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jaGVja1RpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhbmRsZVJlZnJlc2goKTtcbiAgICAgICAgdGhpcy5TYW5pdGl6ZVZpZGVvcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuRmVlZEl0ZW0/LlN0YXR1cz8uQ29kZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5JY29uID0gJ2NoZWNrX2NpcmNsZSc7XG4gICAgICAgICAgICB0aGlzLkljb25Db2xvciA9ICdncmVlbic7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5GZWVkSXRlbT8uU3RhdHVzPy5Db2RlID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLkljb24gPSAnY2FuY2VsJztcbiAgICAgICAgICAgIHRoaXMuSWNvbkNvbG9yID0gJ3JlZCc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5GZWVkSXRlbT8uU3RhdHVzPy5Db2RlID09PSAyKSB7XG4gICAgICAgICAgICB0aGlzLkljb24gPSAnc3luYyc7XG4gICAgICAgICAgICB0aGlzLkljb25Db2xvciA9ICdibHVlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuSWNvbiA9ICdoZWxwX291dGxpbmUnO1xuICAgICAgICAgICAgdGhpcy5JY29uQ29sb3IgPSAnZ3JheSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAgQVBJIE1ldGhvZHNcbiAgICBwdWJsaWMgQ2FsY3VsYXRlVGltZWxhcHNlKHRpbWVzdGFtcDogRGF0ZSkge1xuICAgICAgICByZXR1cm4gbW9tZW50KHRpbWVzdGFtcCkuZnJvbU5vdygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBIYW5kbGVBY3Rpb24oYWN0aW9uOiBGZWVkSXRlbUFjdGlvbikge1xuICAgICAgICBpZiAoYWN0aW9uLkFjdGlvblR5cGUgPT0gJ0xpbmsnKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLkFjdGlvbi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihhY3Rpb24uQWN0aW9uLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYWN0aW9uLkFjdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhY3Rpb24uQWN0aW9uVHlwZSA9PSAnTW9kYWwnKSB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLkFjdGlvbiA9PSAnQWRkU291cmNlQ29udHJvbCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLk9wZW5Tb3VyY2VDb250cm9sRGlhbG9nKG51bGwsIG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhbGVydCgnb3RoZXIgbW9kYWxlZCAnICsgYWN0aW9uLkFjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlU3VibWl0Q29tbWVudChldmVudDogYW55KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZWNpZXZlZCBjb21tZW50OiAnLCBldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIE9wZW5Tb3VyY2VDb250cm9sRGlhbG9nKHNjTG9va3VwOiBzdHJpbmcsIHNjTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU291cmNlQ29udHJvbERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgd2lkdGg6ICc1NTBweCcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuRW52aXJvbm1lbnQsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnRMb29rdXA6IHRoaXMuQWN0aXZlRW52aXJvbm1lbnRMb29rdXAsXG4gICAgICAgICAgICAgICAgc2NMb29rdXA6IHNjTG9va3VwLFxuICAgICAgICAgICAgICAgIHNjTmFtZTogc2NOYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1RoZSBkaWFsb2cgd2FzIGNsb3NlZCcpO1xuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJyZXN1bHQ6XCIsIHJlc3VsdClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIFNhZmVIdG1sKGh0bWw6IHN0cmluZyk6IFNhZmVIdG1sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBTYW5pdGl6ZVZpZGVvcygpIHtcbiAgICAgICAgdGhpcy5GZWVkSXRlbT8uVGFicz8uZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICBpZiAodGFiLkRhdGEuVmlkZW8pIHtcbiAgICAgICAgICAgICAgICB0YWIuRGF0YS5WaWRlbyA9IHRoaXMuU2FmZUh0bWwodGFiLkRhdGEuVmlkZW8pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgU3VibWl0Q29tbWVudCgpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NvbW1lbnQ6ICcsIHRoaXMuQ29tbWVudENvbnRyb2wudmFsdWUpO1xuICAgIH1cblxuICAgIC8vICBIZWxwZXJzXG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlUmVmcmVzaCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuRmVlZEl0ZW0/LlJlZnJlc2hMaW5rKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWFjU3ZjLkNoZWNrVXNlckZlZWRJdGVtKHRoaXMuRmVlZEl0ZW0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKHJlc3BvbnNlOiBCYXNlTW9kZWxlZFJlc3BvbnNlPEZlZWRJdGVtPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5GZWVkSXRlbSA9IHJlc3BvbnNlLk1vZGVsO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVSZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sIDMwMDAwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cInNvY2lhbC1jYXJkXCI+XG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgbWF0LWNhcmQtYXZhdGFyXG4gICAgICAgICAgICBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWltYWdlXCJcbiAgICAgICAgICAgIFtzcmNdPVwiRmVlZEl0ZW0uQXZhdGFyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiRmVlZEl0ZW0uQXZhdGFyXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8bWF0LWNhcmQtdGl0bGUgKm5nSWY9XCJGZWVkSXRlbS5UaXRsZVwiIGNsYXNzPVwiZmVlZC1pdGVtLXRpdGxlXCI+e3tcbiAgICAgICAgICAgIEZlZWRJdGVtLlRpdGxlXG4gICAgICAgIH19PC9tYXQtY2FyZC10aXRsZT5cblxuICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiRmVlZEl0ZW0uU3VidGl0bGVcIj57eyBGZWVkSXRlbS5TdWJ0aXRsZSB9fTwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiRmVlZEl0ZW0uU3VidGV4dFwiPnt7IEZlZWRJdGVtLlN1YnRleHQgfX08L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkZlZWRJdGVtLlN0YXR1c1wiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIkljb25cIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiSWNvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNwaW5dPVwiRmVlZEl0ZW0uU3RhdHVzPy5Db2RlID09IDJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgSWNvbiB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZlZWRJdGVtLlN0YXR1cz8uTWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBGZWVkSXRlbS5TdGF0dXM/Lk1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkZlZWRJdGVtLlRpbWVzdGFtcFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBDYWxjdWxhdGVUaW1lbGFwc2UoRmVlZEl0ZW0uVGltZXN0YW1wKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFGZWVkSXRlbS5Jc1Nob3J0Rm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlZC1jYXJkLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWQtY2FyZC1tYWluLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIEZlZWRJdGVtLlRhYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCJ0YWIuVGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuRGF0YT8uQ29tbWl0Py5NZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb21taXQtbWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2FmZUh0bWwodGFiLkRhdGE/LkNvbW1pdD8uTWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLkRhdGE/LkNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhZmVIdG1sKHRhYi5EYXRhPy5Db250ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWIuRGF0YT8uVmlkZW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInRhYi5EYXRhLlZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5EYXRhPy5Db21tZW50c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLkRhdGE/LkNvbW1lbnRzPy5sZW5ndGggPD0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0Pk5vIGNvbW1lbnRzIHByb3ZpZGVkPC9oND5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb21tZW50IG9mIHRhYi5EYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5Db21tZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtY2FyZC1hdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImNvbW1lbnQuQXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbW1lbnQuQXZhdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb21tZW50LkF1dGhvciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRlZCBvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbW1lbnQuVXBkYXRlZEF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYWZlSHRtbChjb21tZW50LkNvbW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGxjdS1mZWVkLWNvbW1lbnQtZm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3VibWl0LWV2ZW50KT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFuZGxlU3VibWl0Q29tbWVudCgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGN1LWZlZWQtY29tbWVudC1mb3JtPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYXJvdW5kIGNlbnRlclwiPlxuICAgICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgRmVlZEl0ZW0uQWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5Db2xvclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIkhhbmRsZUFjdGlvbihhY3Rpb24pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhY3Rpb24uSWNvblwiPnt7IGFjdGlvbi5JY29uIH19PC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIHt7IGFjdGlvbi5UZXh0IH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuPC9tYXQtY2FyZD5cbiJdfQ==