@hestia-earth/ui-components 0.27.2 → 0.27.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,7 +44,7 @@ export class BibliographiesSearchConfirmComponent {
44
44
  const fields = [`bibliography.${this.searchBy}`];
45
45
  const includes = ['bibliography.title', 'bibliography.documentDOI', 'bibliography.scopus'];
46
46
  return this.searchSources
47
- ? this.searchService.suggestSource(term, this.searchLimit(), fields, includes)
47
+ ? this.searchService.suggestSource$(term, this.searchLimit(), fields, includes)
48
48
  : of([]);
49
49
  }
50
50
  runSearchBibliographies(term) {
@@ -84,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
84
84
  type: Component,
85
85
  args: [{ selector: 'he-bibliographies-search-confirm', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FormsModule, ReactiveFormsModule, FaIconComponent, NgbHighlight, NgTemplateOutlet], template: "<div class=\"modal is-large is-active\">\n <div class=\"modal-background\"></div>\n <div class=\"modal-card\">\n <header class=\"modal-card-head\">\n <p class=\"modal-card-title\">Search Bibliographies</p>\n <button class=\"delete\" aria-label=\"close\" (click)=\"cancel()\"></button>\n </header>\n <section class=\"modal-card-body\">\n <form [formGroup]=\"formGroup\" novalidate>\n <div class=\"field has-addons\">\n <div class=\"control is-expanded has-icons-right\">\n <input\n class=\"input search-input\"\n [attr.placeholder]=\"'Search bibliography by ' + searchBy()\"\n formControlName=\"search\"\n name=\"bibliography\"\n autocomplete=\"off\"\n (focus)=\"searchFocus($event)\" />\n <a class=\"icon is-small is-right\" [class.is-hidden]=\"loading()\" (click)=\"resetSearch()\">\n <fa-icon [icon]=\"faTimes\"></fa-icon>\n </a>\n\n <span class=\"icon is-right has-text-grey-dark\" [class.is-hidden]=\"!loading()\">\n <fa-icon [icon]=\"faSpinner\" [pulse]=\"true\" size=\"sm\"></fa-icon>\n </span>\n </div>\n </div>\n </form>\n\n <div class=\"is-mt-2\">\n <span [class.is-hidden]=\"loading() || !searchControl?.value || hasResults()\">\n No bibliographies found matching query.\n </span>\n\n <ul>\n @for (result of results(); track result) {\n <li>\n <a\n class=\"is-block p-1 search-result\"\n (click)=\"selectedResult.set(result)\"\n [class.is-active]=\"selectedResult() === result\">\n <ngb-highlight\n [result]=\"result.bibliography?.title ?? result.title\"\n [term]=\"searchControl?.value\"></ngb-highlight>\n <span class=\"px-1\">-</span>\n <span class=\"px-1\">\n <i>{{ result.name }}</i>\n </span>\n @if (result.bibliography?.documentDOI || result.documentDOI) {\n <span class=\"px-1\">\n -\n <b>documentDOI:</b>\n </span>\n }\n <ngb-highlight\n [result]=\"result.bibliography?.documentDOI ?? result.documentDOI\"\n [term]=\"searchControl?.value\"></ngb-highlight>\n @if (result.bibliography?.scopus || result.scopus) {\n <span class=\"px-1\">\n -\n <b>scopus:</b>\n </span>\n }\n <ngb-highlight\n [result]=\"result.bibliography?.scopus ?? result.scopus\"\n [term]=\"searchControl?.value\"></ngb-highlight>\n <span>\n <ng-container\n *ngTemplateOutlet=\"\n mendeleyLink;\n context: { $implicit: result.bibliography?.mendeleyID ?? result.mendeleyID }\n \"></ng-container>\n </span>\n </a>\n </li>\n }\n </ul>\n </div>\n </section>\n <footer class=\"modal-card-foot\">\n <button class=\"button is-primary\" (click)=\"confirm()\" [disabled]=\"!selectedResult()\">\n <span>Confirm</span>\n </button>\n <button class=\"button is-ghost\" (click)=\"cancel()\">\n <span>Close</span>\n </button>\n </footer>\n </div>\n</div>\n\n<ng-template #mendeleyLink let-id>\n @if (id) {\n <a [href]=\"'https://www.mendeley.com/catalogue/' + id\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\n <fa-icon class=\"ml-2\" [icon]=\"faExternalLinkAlt\" size=\"sm\"></fa-icon>\n </a>\n }\n</ng-template>\n", styles: ["ngb-highlight,span{vertical-align:middle;white-space:normal;width:auto}\n"] }]
86
86
  }], ctorParameters: () => [] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpYmxpb2dyYXBoaWVzL2JpYmxpb2dyYXBoaWVzLXNlYXJjaC1jb25maXJtL2JpYmxpb2dyYXBoaWVzLXNlYXJjaC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iaWJsaW9ncmFwaGllcy9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxD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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0LCBpbnB1dCwgZWZmZWN0LCBzaWduYWwsIGNvbXB1dGVkLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiSGlnaGxpZ2h0IH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFFeHRlcm5hbExpbmtBbHQsIGZhU3Bpbm5lciwgZmFUaW1lcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmlibGlvZ3JhcGh5LCBTb3VyY2UgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IEhlTWVuZGVsZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVuZGVsZXkvbWVuZGVsZXkuc2VydmljZSc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuXG50eXBlIHNlYXJjaEJ5RmllbGRzID0gJ3RpdGxlJyB8ICdkb2N1bWVudERPSScgfCAnc2NvcHVzJztcbnR5cGUgUmVzdWx0ID0gUGFydGlhbDxTb3VyY2U+IHwgUGFydGlhbDxCaWJsaW9ncmFwaHk+O1xuY29uc3QgbGltaXQgPSAxMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGYUljb25Db21wb25lbnQsIE5nYkhpZ2hsaWdodCwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgQmlibGlvZ3JhcGhpZXNTZWFyY2hDb25maXJtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIG1lbmRlbGV5U2VydmljZSA9IGluamVjdChIZU1lbmRlbGV5U2VydmljZSk7XG4gIHByaXZhdGUgc2VhcmNoU2VydmljZSA9IGluamVjdChIZVNlYXJjaFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYVRpbWVzID0gZmFUaW1lcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhU3Bpbm5lciA9IGZhU3Bpbm5lcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhRXh0ZXJuYWxMaW5rQWx0ID0gZmFFeHRlcm5hbExpbmtBbHQ7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaCA9IGlucHV0KCcnKTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoU291cmNlcyA9IGlucHV0KHRydWUpO1xuICBwcm90ZWN0ZWQgc2VhcmNoQmlibGlvZ3JhcGhpZXMgPSBpbnB1dCh0cnVlKTtcbiAgcHJvdGVjdGVkIHNlYXJjaEJ5ID0gaW5wdXQ8c2VhcmNoQnlGaWVsZHM+KCd0aXRsZScpO1xuXG4gIHByaXZhdGUgc2VhcmNoTGltaXQgPSBjb21wdXRlZChcbiAgICAoKSA9PiBsaW1pdCAvIChbdGhpcy5zZWFyY2hTb3VyY2VzKCksIHRoaXMuc2VhcmNoQmlibGlvZ3JhcGhpZXMoKV0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCB8fCAxKVxuICApO1xuXG4gIHByb3RlY3RlZCBjbG9zZWQgPSBvdXRwdXQ8UmVzdWx0PigpO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgc2VhcmNoOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gIH0pO1xuICBwcm90ZWN0ZWQgc2VhcmNoQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2VhcmNoJyk7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0cyA9IHRoaXMuc2VhcmNoQ29udHJvbCEudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldCh0cnVlKSksXG4gICAgdGFwKCgpID0+IHRoaXMuc2VsZWN0ZWRSZXN1bHQuc2V0KHVuZGVmaW5lZCkpLFxuICAgIHN3aXRjaE1hcCh0ZXJtID0+ICh0ZXJtLmxlbmd0aCA+IDEgPyB0aGlzLnJ1blNlYXJjaCh0ZXJtKSA6IG9mKFtdIGFzIGFueSkpKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpXG4gICk7XG4gIHByb3RlY3RlZCByZXN1bHRzID0gdG9TaWduYWwodGhpcy5fcmVzdWx0cyk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJlc3VsdCA9IHNpZ25hbCh1bmRlZmluZWQgYXMgUmVzdWx0KTtcbiAgcHJvdGVjdGVkIGhhc1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc3VsdHMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2whLnNldFZhbHVlKHNlYXJjaCB8fCAnJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJ1blNlYXJjaFNvdXJjZXModGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmllbGRzID0gW2BiaWJsaW9ncmFwaHkuJHt0aGlzLnNlYXJjaEJ5fWBdO1xuICAgIGNvbnN0IGluY2x1ZGVzID0gWydiaWJsaW9ncmFwaHkudGl0bGUnLCAnYmlibGlvZ3JhcGh5LmRvY3VtZW50RE9JJywgJ2JpYmxpb2dyYXBoeS5zY29wdXMnXTtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTb3VyY2VzXG4gICAgICA/IHRoaXMuc2VhcmNoU2VydmljZS5zdWdnZXN0U291cmNlKHRlcm0sIHRoaXMuc2VhcmNoTGltaXQoKSwgZmllbGRzLCBpbmNsdWRlcylcbiAgICAgIDogb2YoW10gYXMgUGFydGlhbDxTb3VyY2U+W10pO1xuICB9XG5cbiAgcHJpdmF0ZSBydW5TZWFyY2hCaWJsaW9ncmFwaGllcyh0ZXJtOiBzdHJpbmcpIHtcbiAgICAvLyBzY29wdXNcbiAgICBjb25zdCBwYXJhbXMgPVxuICAgICAgdGhpcy5zZWFyY2hCeSgpID09PSAndGl0bGUnXG4gICAgICAgID8geyB0aXRsZTogdGVybSB9XG4gICAgICAgIDogdGhpcy5zZWFyY2hCeSgpID09PSAnZG9jdW1lbnRET0knXG4gICAgICAgICAgPyB7IGRvaTogdGVybSB9XG4gICAgICAgICAgOiB7IHNjb3B1czogdGVybSB9O1xuICAgIHJldHVybiB0aGlzLnNlYXJjaEJpYmxpb2dyYXBoaWVzXG4gICAgICA/IHRoaXMubWVuZGVsZXlTZXJ2aWNlLmZpbmQoeyAuLi5wYXJhbXMsIGxpbWl0OiB0aGlzLnNlYXJjaExpbWl0KCkgfSkucGlwZShtYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzKSlcbiAgICAgIDogb2YoW10gYXMgUGFydGlhbDxCaWJsaW9ncmFwaHk+W10pO1xuICB9XG5cbiAgcHJpdmF0ZSBydW5TZWFyY2godGVybTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHppcCh0aGlzLnJ1blNlYXJjaFNvdXJjZXModGVybSksIHRoaXMucnVuU2VhcmNoQmlibGlvZ3JhcGhpZXModGVybSkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICBtYXAocmVzID0+IHJlcy5mbGF0KCkpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWFyY2hGb2N1cyhlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dEV2ZW50ID0gbmV3IEV2ZW50KCdpbnB1dCcpO1xuICAgICAgZS50YXJnZXQ/LmRpc3BhdGNoRXZlbnQoaW5wdXRFdmVudCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRTZWFyY2goKSB7XG4gICAgdGhpcy5zZWFyY2hDb250cm9sIS5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlybSgpIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KHRoaXMuc2VsZWN0ZWRSZXN1bHQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuY2VsKCkge1xuICAgIHRoaXMuY2xvc2VkLmVtaXQobnVsbCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbCBpcy1sYXJnZSBpcy1hY3RpdmVcIj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tncm91bmRcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWNhcmRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwibW9kYWwtY2FyZC1oZWFkXCI+XG4gICAgICA8cCBjbGFzcz1cIm1vZGFsLWNhcmQtdGl0bGVcIj5TZWFyY2ggQmlibGlvZ3JhcGhpZXM8L3A+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGVsZXRlXCIgYXJpYS1sYWJlbD1cImNsb3NlXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+PC9idXR0b24+XG4gICAgPC9oZWFkZXI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJtb2RhbC1jYXJkLWJvZHlcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgbm92YWxpZGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZCBoYXMtaWNvbnMtcmlnaHRcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImlucHV0IHNlYXJjaC1pbnB1dFwiXG4gICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIidTZWFyY2ggYmlibGlvZ3JhcGh5IGJ5ICcgKyBzZWFyY2hCeSgpXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgbmFtZT1cImJpYmxpb2dyYXBoeVwiXG4gICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgIChmb2N1cyk9XCJzZWFyY2hGb2N1cygkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwiaWNvbiBpcy1zbWFsbCBpcy1yaWdodFwiIFtjbGFzcy5pcy1oaWRkZW5dPVwibG9hZGluZygpXCIgKGNsaWNrKT1cInJlc2V0U2VhcmNoKClcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvYT5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXJpZ2h0IGhhcy10ZXh0LWdyZXktZGFya1wiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIWxvYWRpbmcoKVwiPlxuICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVNwaW5uZXJcIiBbcHVsc2VdPVwidHJ1ZVwiIHNpemU9XCJzbVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpcy1tdC0yXCI+XG4gICAgICAgIDxzcGFuIFtjbGFzcy5pcy1oaWRkZW5dPVwibG9hZGluZygpIHx8ICFzZWFyY2hDb250cm9sPy52YWx1ZSB8fCBoYXNSZXN1bHRzKClcIj5cbiAgICAgICAgICBObyBiaWJsaW9ncmFwaGllcyBmb3VuZCBtYXRjaGluZyBxdWVyeS5cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDx1bD5cbiAgICAgICAgICBAZm9yIChyZXN1bHQgb2YgcmVzdWx0cygpOyB0cmFjayByZXN1bHQpIHtcbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlzLWJsb2NrIHAtMSBzZWFyY2gtcmVzdWx0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRSZXN1bHQuc2V0KHJlc3VsdClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwic2VsZWN0ZWRSZXN1bHQoKSA9PT0gcmVzdWx0XCI+XG4gICAgICAgICAgICAgICAgPG5nYi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgIFtyZXN1bHRdPVwicmVzdWx0LmJpYmxpb2dyYXBoeT8udGl0bGUgPz8gcmVzdWx0LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFt0ZXJtXT1cInNlYXJjaENvbnRyb2w/LnZhbHVlXCI+PC9uZ2ItaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMVwiPi08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0xXCI+XG4gICAgICAgICAgICAgICAgICA8aT57eyByZXN1bHQubmFtZSB9fTwvaT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChyZXN1bHQuYmlibGlvZ3JhcGh5Py5kb2N1bWVudERPSSB8fCByZXN1bHQuZG9jdW1lbnRET0kpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgIDxiPmRvY3VtZW50RE9JOjwvYj5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPG5nYi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgIFtyZXN1bHRdPVwicmVzdWx0LmJpYmxpb2dyYXBoeT8uZG9jdW1lbnRET0kgPz8gcmVzdWx0LmRvY3VtZW50RE9JXCJcbiAgICAgICAgICAgICAgICAgIFt0ZXJtXT1cInNlYXJjaENvbnRyb2w/LnZhbHVlXCI+PC9uZ2ItaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIEBpZiAocmVzdWx0LmJpYmxpb2dyYXBoeT8uc2NvcHVzIHx8IHJlc3VsdC5zY29wdXMpIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgICAgIDxiPnNjb3B1czo8L2I+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxuZ2ItaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBbcmVzdWx0XT1cInJlc3VsdC5iaWJsaW9ncmFwaHk/LnNjb3B1cyA/PyByZXN1bHQuc2NvcHVzXCJcbiAgICAgICAgICAgICAgICAgIFt0ZXJtXT1cInNlYXJjaENvbnRyb2w/LnZhbHVlXCI+PC9uZ2ItaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgIG1lbmRlbGV5TGluaztcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcmVzdWx0LmJpYmxpb2dyYXBoeT8ubWVuZGVsZXlJRCA/PyByZXN1bHQubWVuZGVsZXlJRCB9XG4gICAgICAgICAgICAgICAgICAgIFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPGZvb3RlciBjbGFzcz1cIm1vZGFsLWNhcmQtZm9vdFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1wcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRSZXN1bHQoKVwiPlxuICAgICAgICA8c3Bhbj5Db25maXJtPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLWdob3N0XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIDxzcGFuPkNsb3NlPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9mb290ZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbWVuZGVsZXlMaW5rIGxldC1pZD5cbiAgQGlmIChpZCkge1xuICAgIDxhIFtocmVmXT1cIidodHRwczovL3d3dy5tZW5kZWxleS5jb20vY2F0YWxvZ3VlLycgKyBpZFwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgIDxmYS1pY29uIGNsYXNzPVwibWwtMlwiIFtpY29uXT1cImZhRXh0ZXJuYWxMaW5rQWx0XCIgc2l6ZT1cInNtXCI+PC9mYS1pY29uPlxuICAgIDwvYT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpYmxpb2dyYXBoaWVzL2JpYmxpb2dyYXBoaWVzLXNlYXJjaC1jb25maXJtL2JpYmxpb2dyYXBoaWVzLXNlYXJjaC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9iaWJsaW9ncmFwaGllcy9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxD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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgaW5qZWN0LCBpbnB1dCwgZWZmZWN0LCBzaWduYWwsIGNvbXB1dGVkLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiSGlnaGxpZ2h0IH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgZmFFeHRlcm5hbExpbmtBbHQsIGZhU3Bpbm5lciwgZmFUaW1lcyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YsIHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmlibGlvZ3JhcGh5LCBTb3VyY2UgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IEhlTWVuZGVsZXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVuZGVsZXkvbWVuZGVsZXkuc2VydmljZSc7XG5pbXBvcnQgeyBIZVNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuXG50eXBlIHNlYXJjaEJ5RmllbGRzID0gJ3RpdGxlJyB8ICdkb2N1bWVudERPSScgfCAnc2NvcHVzJztcbnR5cGUgUmVzdWx0ID0gUGFydGlhbDxTb3VyY2U+IHwgUGFydGlhbDxCaWJsaW9ncmFwaHk+O1xuY29uc3QgbGltaXQgPSAxMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYmlibGlvZ3JhcGhpZXMtc2VhcmNoLWNvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iaWJsaW9ncmFwaGllcy1zZWFyY2gtY29uZmlybS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGYUljb25Db21wb25lbnQsIE5nYkhpZ2hsaWdodCwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgQmlibGlvZ3JhcGhpZXNTZWFyY2hDb25maXJtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIG1lbmRlbGV5U2VydmljZSA9IGluamVjdChIZU1lbmRlbGV5U2VydmljZSk7XG4gIHByaXZhdGUgc2VhcmNoU2VydmljZSA9IGluamVjdChIZVNlYXJjaFNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBmYVRpbWVzID0gZmFUaW1lcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhU3Bpbm5lciA9IGZhU3Bpbm5lcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhRXh0ZXJuYWxMaW5rQWx0ID0gZmFFeHRlcm5hbExpbmtBbHQ7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaCA9IGlucHV0KCcnKTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoU291cmNlcyA9IGlucHV0KHRydWUpO1xuICBwcm90ZWN0ZWQgc2VhcmNoQmlibGlvZ3JhcGhpZXMgPSBpbnB1dCh0cnVlKTtcbiAgcHJvdGVjdGVkIHNlYXJjaEJ5ID0gaW5wdXQ8c2VhcmNoQnlGaWVsZHM+KCd0aXRsZScpO1xuXG4gIHByaXZhdGUgc2VhcmNoTGltaXQgPSBjb21wdXRlZChcbiAgICAoKSA9PiBsaW1pdCAvIChbdGhpcy5zZWFyY2hTb3VyY2VzKCksIHRoaXMuc2VhcmNoQmlibGlvZ3JhcGhpZXMoKV0uZmlsdGVyKEJvb2xlYW4pLmxlbmd0aCB8fCAxKVxuICApO1xuXG4gIHByb3RlY3RlZCBjbG9zZWQgPSBvdXRwdXQ8UmVzdWx0PigpO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgc2VhcmNoOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gIH0pO1xuICBwcm90ZWN0ZWQgc2VhcmNoQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2VhcmNoJyk7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0cyA9IHRoaXMuc2VhcmNoQ29udHJvbCEudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldCh0cnVlKSksXG4gICAgdGFwKCgpID0+IHRoaXMuc2VsZWN0ZWRSZXN1bHQuc2V0KHVuZGVmaW5lZCkpLFxuICAgIHN3aXRjaE1hcCh0ZXJtID0+ICh0ZXJtLmxlbmd0aCA+IDEgPyB0aGlzLnJ1blNlYXJjaCh0ZXJtKSA6IG9mKFtdIGFzIGFueSkpKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nLnNldChmYWxzZSkpXG4gICk7XG4gIHByb3RlY3RlZCByZXN1bHRzID0gdG9TaWduYWwodGhpcy5fcmVzdWx0cyk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJlc3VsdCA9IHNpZ25hbCh1bmRlZmluZWQgYXMgUmVzdWx0KTtcbiAgcHJvdGVjdGVkIGhhc1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc3VsdHMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2whLnNldFZhbHVlKHNlYXJjaCB8fCAnJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJ1blNlYXJjaFNvdXJjZXModGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmllbGRzID0gW2BiaWJsaW9ncmFwaHkuJHt0aGlzLnNlYXJjaEJ5fWBdO1xuICAgIGNvbnN0IGluY2x1ZGVzID0gWydiaWJsaW9ncmFwaHkudGl0bGUnLCAnYmlibGlvZ3JhcGh5LmRvY3VtZW50RE9JJywgJ2JpYmxpb2dyYXBoeS5zY29wdXMnXTtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTb3VyY2VzXG4gICAgICA/IHRoaXMuc2VhcmNoU2VydmljZS5zdWdnZXN0U291cmNlJCh0ZXJtLCB0aGlzLnNlYXJjaExpbWl0KCksIGZpZWxkcywgaW5jbHVkZXMpXG4gICAgICA6IG9mKFtdIGFzIFBhcnRpYWw8U291cmNlPltdKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuU2VhcmNoQmlibGlvZ3JhcGhpZXModGVybTogc3RyaW5nKSB7XG4gICAgLy8gc2NvcHVzXG4gICAgY29uc3QgcGFyYW1zID1cbiAgICAgIHRoaXMuc2VhcmNoQnkoKSA9PT0gJ3RpdGxlJ1xuICAgICAgICA/IHsgdGl0bGU6IHRlcm0gfVxuICAgICAgICA6IHRoaXMuc2VhcmNoQnkoKSA9PT0gJ2RvY3VtZW50RE9JJ1xuICAgICAgICAgID8geyBkb2k6IHRlcm0gfVxuICAgICAgICAgIDogeyBzY29wdXM6IHRlcm0gfTtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hCaWJsaW9ncmFwaGllc1xuICAgICAgPyB0aGlzLm1lbmRlbGV5U2VydmljZS5maW5kKHsgLi4ucGFyYW1zLCBsaW1pdDogdGhpcy5zZWFyY2hMaW1pdCgpIH0pLnBpcGUobWFwKCh7IHJlc3VsdHMgfSkgPT4gcmVzdWx0cykpXG4gICAgICA6IG9mKFtdIGFzIFBhcnRpYWw8QmlibGlvZ3JhcGh5PltdKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuU2VhcmNoKHRlcm06IHN0cmluZykge1xuICAgIHJldHVybiB6aXAodGhpcy5ydW5TZWFyY2hTb3VyY2VzKHRlcm0pLCB0aGlzLnJ1blNlYXJjaEJpYmxpb2dyYXBoaWVzKHRlcm0pKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICAgbWFwKHJlcyA9PiByZXMuZmxhdCgpKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VhcmNoRm9jdXMoZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRFdmVudCA9IG5ldyBFdmVudCgnaW5wdXQnKTtcbiAgICAgIGUudGFyZ2V0Py5kaXNwYXRjaEV2ZW50KGlucHV0RXZlbnQpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0U2VhcmNoKCkge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbCEuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpcm0oKSB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCh0aGlzLnNlbGVjdGVkUmVzdWx0KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KG51bGwpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgaXMtbGFyZ2UgaXMtYWN0aXZlXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZ3JvdW5kXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1jYXJkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cIm1vZGFsLWNhcmQtaGVhZFwiPlxuICAgICAgPHAgY2xhc3M9XCJtb2RhbC1jYXJkLXRpdGxlXCI+U2VhcmNoIEJpYmxpb2dyYXBoaWVzPC9wPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImRlbGV0ZVwiIGFyaWEtbGFiZWw9XCJjbG9zZVwiIChjbGljayk9XCJjYW5jZWwoKVwiPjwvYnV0dG9uPlxuICAgIDwvaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtY2FyZC1ib2R5XCI+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIG5vdmFsaWRhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2wgaXMtZXhwYW5kZWQgaGFzLWljb25zLXJpZ2h0XCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dCBzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCInU2VhcmNoIGJpYmxpb2dyYXBoeSBieSAnICsgc2VhcmNoQnkoKVwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJiaWJsaW9ncmFwaHlcIlxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAoZm9jdXMpPVwic2VhcmNoRm9jdXMoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8YSBjbGFzcz1cImljb24gaXMtc21hbGwgaXMtcmlnaHRcIiBbY2xhc3MuaXMtaGlkZGVuXT1cImxvYWRpbmcoKVwiIChjbGljayk9XCJyZXNldFNlYXJjaCgpXCI+XG4gICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhVGltZXNcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1yaWdodCBoYXMtdGV4dC1ncmV5LWRhcmtcIiBbY2xhc3MuaXMtaGlkZGVuXT1cIiFsb2FkaW5nKClcIj5cbiAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZmFTcGlubmVyXCIgW3B1bHNlXT1cInRydWVcIiBzaXplPVwic21cIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaXMtbXQtMlwiPlxuICAgICAgICA8c3BhbiBbY2xhc3MuaXMtaGlkZGVuXT1cImxvYWRpbmcoKSB8fCAhc2VhcmNoQ29udHJvbD8udmFsdWUgfHwgaGFzUmVzdWx0cygpXCI+XG4gICAgICAgICAgTm8gYmlibGlvZ3JhcGhpZXMgZm91bmQgbWF0Y2hpbmcgcXVlcnkuXG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8dWw+XG4gICAgICAgICAgQGZvciAocmVzdWx0IG9mIHJlc3VsdHMoKTsgdHJhY2sgcmVzdWx0KSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpcy1ibG9jayBwLTEgc2VhcmNoLXJlc3VsdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkUmVzdWx0LnNldChyZXN1bHQpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkUmVzdWx0KCkgPT09IHJlc3VsdFwiPlxuICAgICAgICAgICAgICAgIDxuZ2ItaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBbcmVzdWx0XT1cInJlc3VsdC5iaWJsaW9ncmFwaHk/LnRpdGxlID8/IHJlc3VsdC50aXRsZVwiXG4gICAgICAgICAgICAgICAgICBbdGVybV09XCJzZWFyY2hDb250cm9sPy52YWx1ZVwiPjwvbmdiLWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB4LTFcIj4tPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHgtMVwiPlxuICAgICAgICAgICAgICAgICAgPGk+e3sgcmVzdWx0Lm5hbWUgfX08L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAocmVzdWx0LmJpYmxpb2dyYXBoeT8uZG9jdW1lbnRET0kgfHwgcmVzdWx0LmRvY3VtZW50RE9JKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICA8Yj5kb2N1bWVudERPSTo8L2I+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxuZ2ItaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBbcmVzdWx0XT1cInJlc3VsdC5iaWJsaW9ncmFwaHk/LmRvY3VtZW50RE9JID8/IHJlc3VsdC5kb2N1bWVudERPSVwiXG4gICAgICAgICAgICAgICAgICBbdGVybV09XCJzZWFyY2hDb250cm9sPy52YWx1ZVwiPjwvbmdiLWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICBAaWYgKHJlc3VsdC5iaWJsaW9ncmFwaHk/LnNjb3B1cyB8fCByZXN1bHQuc2NvcHVzKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgICAgICA8Yj5zY29wdXM6PC9iPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8bmdiLWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgICAgW3Jlc3VsdF09XCJyZXN1bHQuYmlibGlvZ3JhcGh5Py5zY29wdXMgPz8gcmVzdWx0LnNjb3B1c1wiXG4gICAgICAgICAgICAgICAgICBbdGVybV09XCJzZWFyY2hDb250cm9sPy52YWx1ZVwiPjwvbmdiLWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICBtZW5kZWxleUxpbms7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJlc3VsdC5iaWJsaW9ncmFwaHk/Lm1lbmRlbGV5SUQgPz8gcmVzdWx0Lm1lbmRlbGV5SUQgfVxuICAgICAgICAgICAgICAgICAgICBcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxmb290ZXIgY2xhc3M9XCJtb2RhbC1jYXJkLWZvb3RcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gaXMtcHJpbWFyeVwiIChjbGljayk9XCJjb25maXJtKClcIiBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkUmVzdWx0KClcIj5cbiAgICAgICAgPHNwYW4+Q29uZmlybTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1naG9zdFwiIChjbGljayk9XCJjYW5jZWwoKVwiPlxuICAgICAgICA8c3Bhbj5DbG9zZTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZm9vdGVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI21lbmRlbGV5TGluayBsZXQtaWQ+XG4gIEBpZiAoaWQpIHtcbiAgICA8YSBbaHJlZl09XCInaHR0cHM6Ly93d3cubWVuZGVsZXkuY29tL2NhdGFsb2d1ZS8nICsgaWRcIiB0YXJnZXQ9XCJfYmxhbmtcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICA8ZmEtaWNvbiBjbGFzcz1cIm1sLTJcIiBbaWNvbl09XCJmYUV4dGVybmFsTGlua0FsdFwiIHNpemU9XCJzbVwiPjwvZmEtaWNvbj5cbiAgICA8L2E+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=