ng-miam 4.7.2 → 4.7.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.
- package/bundles/ng-miam.umd.js +9 -11
- package/bundles/ng-miam.umd.js.map +1 -1
- package/bundles/ng-miam.umd.min.js +2 -2
- package/bundles/ng-miam.umd.min.js.map +1 -1
- package/esm2015/lib/_components/abstracts/abstract-recipe-card.component.js +2 -1
- package/esm2015/lib/_components/components.module.js +1 -1
- package/esm2015/lib/_services/recipe-likes.service.js +4 -4
- package/esm2015/lib/_web-components/loader/loader.component.js +3 -3
- package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-tags/recipe-tags.component.js +2 -5
- package/fesm2015/ng-miam.js +8 -10
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_web-components/recipe-catalog/recipe-catalog.component.d.ts +15 -1
- package/lib/_web-components/recipe-tags/recipe-tags.component.d.ts +2 -3
- package/package.json +1 -1
|
@@ -52,6 +52,7 @@ export class AbstractRecipeCardComponent extends EventTracerComponent {
|
|
|
52
52
|
ngAfterViewInit() {
|
|
53
53
|
this.sendShowEvent();
|
|
54
54
|
this.displayPrice();
|
|
55
|
+
this.subscriptions.push(this.groceriesListsService.list$.subscribe(() => this.cdr.detectChanges()));
|
|
55
56
|
}
|
|
56
57
|
ngOnDestroy() {
|
|
57
58
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -175,4 +176,4 @@ AbstractRecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AbstractRecip
|
|
|
175
176
|
type: HostListener,
|
|
176
177
|
args: ['window:scroll']
|
|
177
178
|
}] }); })();
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9hYnN0cmFjdHMvYWJzdHJhY3QtcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0ksT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFJaEUsTUFBTSxPQUFnQiwyQkFBNEIsU0FBUSxvQkFBb0I7SUFrQjVFLFlBQ1MsR0FBc0IsRUFDdEIsYUFBNkIsRUFDN0IsbUJBQXdDLEVBQ3hDLHFCQUE0QyxFQUM1QyxXQUF3QixFQUNyQixVQUErQixFQUNsQyxjQUE4QixFQUMzQixnQkFBa0MsRUFDbEMsT0FBbUIsRUFDbkIsTUFBcUI7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QUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUM7WUFDaEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFnQztRQUNoRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQztJQUM1RSxDQUFDOztzR0EzS21CLDJCQUEyQjtnRUFBM0IsMkJBQTJCOzBHQUEzQixjQUFVOztrREFBViwyQkFBMkI7Y0FEaEQsU0FBUztlQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtvVkFFaEIsVUFBVTtrQkFBbEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDSSxJQUFJO2tCQUFiLE1BQU07WUE4QndCLFFBQVE7a0JBQXRDLFlBQVk7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCAgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmdyZWRpZW50LCBTaW1wbGlmaWVkSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscy9yZWNpcGUnO1xuaW1wb3J0IHsgUmVjaXBlc1NlcnZpY2UsIEdyb2Nlcmllc0xpc3RzU2VydmljZSwgUG9pbnRPZlNhbGVzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZUV2ZW50c1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3NrZWxldG9uLmVudW0nO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQ3VzdG9tUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBzdG9wRXZlbnRQcm9wYWdhdGlvbiB9IGZyb20gJy4uLy4uL191dGlscyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFJlY2lwZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGhlYWRlclRleHQgPSAnJztcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5QWRkZWRPblBpY3R1cmUgPSB0cnVlO1xuICBASW5wdXQoKSByZWNpcGVBZGRlZFRvYXN0VGV4dDogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGlkZTogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gIHJlY2lwZTogUmVjaXBlO1xuICBob3ZlcmVkID0gZmFsc2U7XG4gIGluZ3JlZGllbnRzQ29uY2F0TmFtZTogc3RyaW5nO1xuICBpY29uID0gSWNvbjtcbiAgc2tlbGV0b24gPSBTa2VsZXRvbjtcbiAgaXNQcmljZURpc3BsYXllZCA9IHRydWU7XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFuYWx5dGljc0V2ZW50U2VudCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByb3RlY3RlZCBzZW5kU2hvd0V2ZW50c09uU2Nyb2xsID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZUV2ZW50c1NlcnZpY2U6IFJlY2lwZUV2ZW50c1NlcnZpY2UsXG4gICAgcHVibGljIGdyb2Nlcmllc0xpc3RzU2VydmljZTogR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXG4gICAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5oaWRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpIG9uU2Nyb2xsKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VuZFNob3dFdmVudHNPblNjcm9sbCkgeyB0aGlzLnNlbmRTaG93RXZlbnQoKTsgfVxuICAgIHRoaXMuZGlzcGxheVByaWNlKCk7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50UHJvcHMoKTogQ3VzdG9tUHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZT8uaWQgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2VuZFNob3dFdmVudCgpO1xuICAgIHRoaXMuZGlzcGxheVByaWNlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgYWRkUmVjaXBlKGRpc3BsYXkgPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVCdXR0b25Mb2FkZXIodHJ1ZSk7XG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy51c2VyU2VydmljZS5pc0xvZ2dlZCQuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlKDEpKSxcbiAgICAgIHRoaXMucG9zU2VydmljZS5pc1Bvc1ZhbGlkKCkucGlwZSh0YWtlKDEpKVxuICAgIF0pXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgY29uc3QgaXNIb29rT2sgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmhvb2tDYWxsYmFjayhyZXNbMF0sIHJlc1sxXSk7XG4gICAgICBpZiAoaXNIb29rT2spIHtcbiAgICAgICAgdGhpcy5hZGRSZWNpcGVBY3Rpb25PSyhkaXNwbGF5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uS08oKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJlY2lwZUFjdGlvbk9LKGRpc3BsYXkpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgICBjb25zdCByZWNpcGVXYXNBZGRlZCA9ICFyZWNpcGVJc0luTGlzdDtcbiAgICAgICAgaWYgKHJlY2lwZVdhc0FkZGVkKXtcbiAgICAgICAgICB0aGlzLnJlY2lwZUV2ZW50c1NlcnZpY2Uuc2VuZEV2ZW50KHRoaXMucmVjaXBlLCB0aGlzLnJlY2lwZUV2ZW50c1NlcnZpY2UuQUNUSU9OX0FEREVEKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICB0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5hcHBlbmRSZWNpcGVUb0xpc3QodGhpcy5yZWNpcGUuaWQsIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzLCB0aGlzLmV2ZW50VHJhY2UoKSlcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgIC5zdWJzY3JpYmUobCA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUJ1dHRvbkxvYWRlcihmYWxzZSk7XG4gICAgICAgICAgICBpZiAocmVjaXBlV2FzQWRkZWQgJiYgdGhpcy5yZWNpcGVBZGRlZFRvYXN0VGV4dCAmJiB0aGlzLnJlY2lwZUFkZGVkVG9hc3RUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuaW5mbyh0aGlzLnJlY2lwZUFkZGVkVG9hc3RUZXh0LCBudWxsLCB7IGNsb3NlQnV0dG9uOiB0cnVlLCBwcm9ncmVzc0JhcjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGlzcGxheSkge1xuICAgICAgICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KFxuICAgICAgICAgICAgdGhpcy5yZWNpcGUsIHsgZ3Vlc3RzIDogK3RoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzLCBwcmV2aWV3TW9kZTogdHJ1ZSwgd2FzQWRkZWQ6IHJlY2lwZVdhc0FkZGVkfSwgdGhpcy5ldmVudFRyYWNlKClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhZGRSZWNpcGVBY3Rpb25LTygpIHtcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS9jYWNoZWQtcmVjaXBlJywgSlNPTi5zdHJpbmdpZnkodGhpcy5yZWNpcGUpKTtcbiAgICB0aGlzLnRvZ2dsZUJ1dHRvbkxvYWRlcihmYWxzZSk7XG4gIH1cblxuICB0b2dnbGVIZWxwZXIoKSB7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLnRvZ2dsZUhlbHBlcigpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9wZW5DYWxlbmRhcihldmVudDogRXZlbnQpIHtcbiAgICBzdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG4gICAgLy8gVE9ETyBpbXBsZW1lbnRcbiAgfVxuXG4gIHNoYXJlUmVjaXBlKGV2ZW50OiBFdmVudCkge1xuICAgIHN0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICAvLyBUT0RPIGltcGxlbWVudFxuICB9XG5cbiAgdG9nZ2xlQnV0dG9uTG9hZGVyKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hZGRCdXR0b25Mb2FkaW5nID0gdmFsdWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRJbmdyZWRpZW50c1N0cmluZygpOiB2b2lkIHtcbiAgICB0aGlzLmluZ3JlZGllbnRzQ29uY2F0TmFtZSA9ICcnO1xuICAgIGlmICh0aGlzPy5yZWNpcGU/LnJlbGF0aW9uc2hpcHMpIHtcbiAgICAgIHRoaXMucmVjaXBlLnJlbGF0aW9uc2hpcHNbYGluZ3JlZGllbnRzYF0uZGF0YS5mb3JFYWNoKChpbmdyZWRpZW50OiBJbmdyZWRpZW50LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy5pbmdyZWRpZW50c0NvbmNhdE5hbWUgKz0gJycgKyBpbmdyZWRpZW50LmF0dHJpYnV0ZXMubmFtZTtcbiAgICAgICAgdGhpcy5pbmdyZWRpZW50c0NvbmNhdE5hbWUgKz0gKGkgKyAxID09PSB0aGlzLnJlY2lwZS5yZWxhdGlvbnNoaXBzW2BpbmdyZWRpZW50c2BdLmRhdGEubGVuZ3RoKSA/ICcnIDogJywgJztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0luVmlld3BvcnQoKSB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiAoXG4gICAgICAgIHJlY3QudG9wID49IDAgJiZcbiAgICAgICAgcmVjdC5sZWZ0ID49IDAgJiZcbiAgICAgICAgcmVjdC5ib3R0b20gPD0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAmJlxuICAgICAgICByZWN0LnJpZ2h0IDw9ICh3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNlbmQgYW5hbHl0aWNzIGV2ZW50IHdoZW4gOlxuICAvLyAtIG5ldyByZWNpcGUgaXMgdG8gYmUgZGlzcGxheWVkIEFORCBpcyBhbHJlYWR5IHZpc2libGUgaW4gdmlld3BvcnRcbiAgLy8gT1JcbiAgLy8gLSB1c2VyIHNjcm9sbHMgYW5kIHJlY2lwZSBiZWNvbWVzIHZpc2libGUgaW4gdmlld3BvcnRcbiAgcHVibGljIHNlbmRTaG93RXZlbnQoKSB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuYW5hbHl0aWNzRXZlbnRTZW50ICYmIHRoaXMuaXNJblZpZXdwb3J0KCkpIHtcbiAgICAgIHRoaXMuc2VuZEV2ZW50KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9SRUNJUEVfU0hPVyk7XG4gICAgICAvLyBUT0RPIDogcmVtb3ZlIHRoaXMgP1xuICAgICAgdGhpcy5yZWNpcGVFdmVudHNTZXJ2aWNlLmVucXVldWVFdmVudCh0aGlzLnJlY2lwZSwgdGhpcy5yZWNpcGVFdmVudHNTZXJ2aWNlLkFDVElPTl9TSE9XTilcbiAgICAgIHRoaXMuYW5hbHl0aWNzRXZlbnRTZW50ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVByaWNlKCl7XG5cbiAgICBpZiAodGhpcy5pc1ByaWNlRGlzcGxheWVkIHx8ICF0aGlzLmlzSW5WaWV3cG9ydCgpKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc1ByaWNlRGlzcGxheWVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBpbmdyZWRpZW50UGljdHVyZShpbmdyZWRpZW50OiBTaW1wbGlmaWVkSW5ncmVkaWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGluZ3JlZGllbnQucGljdHVyZSB8fCB0aGlzLmNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZTtcbiAgfVxufVxuIl19
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9hYnN0cmFjdHMvYWJzdHJhY3QtcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0ksT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFJaEUsTUFBTSxPQUFnQiwyQkFBNEIsU0FBUSxvQkFBb0I7SUFrQjVFLFlBQ1MsR0FBc0IsRUFDdEIsYUFBNkIsRUFDN0IsbUJBQXdDLEVBQ3hDLHFCQUE0QyxFQUM1QyxXQUF3QixFQUNyQixVQUErQixFQUNsQyxjQUE4QixFQUMzQixnQkFBa0MsRUFDbEMsT0FBbUIsRUFDbkIsTUFBcUI7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Q0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVNLFlBQVk7UUFFakIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUM7WUFDaEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFnQztRQUNoRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQztJQUM1RSxDQUFDOztzR0E1S21CLDJCQUEyQjtnRUFBM0IsMkJBQTJCOzBHQUEzQixjQUFVOztrREFBViwyQkFBMkI7Y0FEaEQsU0FBUztlQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtvVkFFaEIsVUFBVTtrQkFBbEIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDSSxJQUFJO2tCQUFiLE1BQU07WUE4QndCLFFBQVE7a0JBQXRDLFlBQVk7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCAgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmdyZWRpZW50LCBTaW1wbGlmaWVkSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscy9yZWNpcGUnO1xuaW1wb3J0IHsgUmVjaXBlc1NlcnZpY2UsIEdyb2Nlcmllc0xpc3RzU2VydmljZSwgUG9pbnRPZlNhbGVzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZUV2ZW50c1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3NrZWxldG9uLmVudW0nO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQ3VzdG9tUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBzdG9wRXZlbnRQcm9wYWdhdGlvbiB9IGZyb20gJy4uLy4uL191dGlscyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFJlY2lwZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGhlYWRlclRleHQgPSAnJztcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5QWRkZWRPblBpY3R1cmUgPSB0cnVlO1xuICBASW5wdXQoKSByZWNpcGVBZGRlZFRvYXN0VGV4dDogc3RyaW5nO1xuICBAT3V0cHV0KCkgaGlkZTogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gIHJlY2lwZTogUmVjaXBlO1xuICBob3ZlcmVkID0gZmFsc2U7XG4gIGluZ3JlZGllbnRzQ29uY2F0TmFtZTogc3RyaW5nO1xuICBpY29uID0gSWNvbjtcbiAgc2tlbGV0b24gPSBTa2VsZXRvbjtcbiAgaXNQcmljZURpc3BsYXllZCA9IHRydWU7XG4gIGFkZEJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFuYWx5dGljc0V2ZW50U2VudCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByb3RlY3RlZCBzZW5kU2hvd0V2ZW50c09uU2Nyb2xsID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIHJlY2lwZUV2ZW50c1NlcnZpY2U6IFJlY2lwZUV2ZW50c1NlcnZpY2UsXG4gICAgcHVibGljIGdyb2Nlcmllc0xpc3RzU2VydmljZTogR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXG4gICAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5oaWRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpIG9uU2Nyb2xsKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VuZFNob3dFdmVudHNPblNjcm9sbCkgeyB0aGlzLnNlbmRTaG93RXZlbnQoKTsgfVxuICAgIHRoaXMuZGlzcGxheVByaWNlKCk7XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjdXJyZW50UHJvcHMoKTogQ3VzdG9tUHJvcGVydGllcyB7XG4gICAgcmV0dXJuIHsgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZT8uaWQgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2VuZFNob3dFdmVudCgpO1xuICAgIHRoaXMuZGlzcGxheVByaWNlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UubGlzdCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGFkZFJlY2lwZShkaXNwbGF5ID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlQnV0dG9uTG9hZGVyKHRydWUpO1xuICAgIGZvcmtKb2luKFtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZSgxKSksXG4gICAgICB0aGlzLnBvc1NlcnZpY2UuaXNQb3NWYWxpZCgpLnBpcGUodGFrZSgxKSlcbiAgICBdKVxuICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGlzSG9va09rID0gdGhpcy5jb250ZXh0U2VydmljZS5ob29rQ2FsbGJhY2socmVzWzBdLCByZXNbMV0pO1xuICAgICAgaWYgKGlzSG9va09rKSB7XG4gICAgICAgIHRoaXMuYWRkUmVjaXBlQWN0aW9uT0soZGlzcGxheSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkZFJlY2lwZUFjdGlvbktPKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhZGRSZWNpcGVBY3Rpb25PSyhkaXNwbGF5KSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdCh0aGlzLnJlY2lwZS5pZCkuc3Vic2NyaWJlKHJlY2lwZUlzSW5MaXN0ID0+IHtcbiAgICAgICAgY29uc3QgcmVjaXBlV2FzQWRkZWQgPSAhcmVjaXBlSXNJbkxpc3Q7XG4gICAgICAgIGlmIChyZWNpcGVXYXNBZGRlZCl7XG4gICAgICAgICAgdGhpcy5yZWNpcGVFdmVudHNTZXJ2aWNlLnNlbmRFdmVudCh0aGlzLnJlY2lwZSwgdGhpcy5yZWNpcGVFdmVudHNTZXJ2aWNlLkFDVElPTl9BRERFRCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgdGhpcy5ncm9jZXJpZXNMaXN0c1NlcnZpY2UuYXBwZW5kUmVjaXBlVG9MaXN0KHRoaXMucmVjaXBlLmlkLCB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cywgdGhpcy5ldmVudFRyYWNlKCkpXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKGwgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVCdXR0b25Mb2FkZXIoZmFsc2UpO1xuICAgICAgICAgICAgaWYgKHJlY2lwZVdhc0FkZGVkICYmIHRoaXMucmVjaXBlQWRkZWRUb2FzdFRleHQgJiYgdGhpcy5yZWNpcGVBZGRlZFRvYXN0VGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RyLmluZm8odGhpcy5yZWNpcGVBZGRlZFRvYXN0VGV4dCwgbnVsbCwgeyBjbG9zZUJ1dHRvbjogdHJ1ZSwgcHJvZ3Jlc3NCYXI6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGRpc3BsYXkpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheU9iamVjdChcbiAgICAgICAgICAgIHRoaXMucmVjaXBlLCB7IGd1ZXN0cyA6ICt0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cywgcHJldmlld01vZGU6IHRydWUsIHdhc0FkZGVkOiByZWNpcGVXYXNBZGRlZH0sIHRoaXMuZXZlbnRUcmFjZSgpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYWRkUmVjaXBlQWN0aW9uS08oKSB7XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vY2FjaGVkLXJlY2lwZScsIEpTT04uc3RyaW5naWZ5KHRoaXMucmVjaXBlKSk7XG4gICAgdGhpcy50b2dnbGVCdXR0b25Mb2FkZXIoZmFsc2UpO1xuICB9XG5cbiAgdG9nZ2xlSGVscGVyKCkge1xuICAgIHRoaXMucmVjaXBlU2VydmljZS50b2dnbGVIZWxwZXIoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvcGVuQ2FsZW5kYXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpO1xuICAgIC8vIFRPRE8gaW1wbGVtZW50XG4gIH1cblxuICBzaGFyZVJlY2lwZShldmVudDogRXZlbnQpIHtcbiAgICBzdG9wRXZlbnRQcm9wYWdhdGlvbihldmVudCk7XG4gICAgLy8gVE9ETyBpbXBsZW1lbnRcbiAgfVxuXG4gIHRvZ2dsZUJ1dHRvbkxvYWRlcih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWRkQnV0dG9uTG9hZGluZyA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0SW5ncmVkaWVudHNTdHJpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5pbmdyZWRpZW50c0NvbmNhdE5hbWUgPSAnJztcbiAgICBpZiAodGhpcz8ucmVjaXBlPy5yZWxhdGlvbnNoaXBzKSB7XG4gICAgICB0aGlzLnJlY2lwZS5yZWxhdGlvbnNoaXBzW2BpbmdyZWRpZW50c2BdLmRhdGEuZm9yRWFjaCgoaW5ncmVkaWVudDogSW5ncmVkaWVudCwgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMuaW5ncmVkaWVudHNDb25jYXROYW1lICs9ICcnICsgaW5ncmVkaWVudC5hdHRyaWJ1dGVzLm5hbWU7XG4gICAgICAgIHRoaXMuaW5ncmVkaWVudHNDb25jYXROYW1lICs9IChpICsgMSA9PT0gdGhpcy5yZWNpcGUucmVsYXRpb25zaGlwc1tgaW5ncmVkaWVudHNgXS5kYXRhLmxlbmd0aCkgPyAnJyA6ICcsICc7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNJblZpZXdwb3J0KCkge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICByZXR1cm4gKFxuICAgICAgICByZWN0LnRvcCA+PSAwICYmXG4gICAgICAgIHJlY3QubGVmdCA+PSAwICYmXG4gICAgICAgIHJlY3QuYm90dG9tIDw9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgJiZcbiAgICAgICAgcmVjdC5yaWdodCA8PSAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKVxuICAgICk7XG4gIH1cblxuICAvLyBTZW5kIGFuYWx5dGljcyBldmVudCB3aGVuIDpcbiAgLy8gLSBuZXcgcmVjaXBlIGlzIHRvIGJlIGRpc3BsYXllZCBBTkQgaXMgYWxyZWFkeSB2aXNpYmxlIGluIHZpZXdwb3J0XG4gIC8vIE9SXG4gIC8vIC0gdXNlciBzY3JvbGxzIGFuZCByZWNpcGUgYmVjb21lcyB2aXNpYmxlIGluIHZpZXdwb3J0XG4gIHB1YmxpYyBzZW5kU2hvd0V2ZW50KCkge1xuICAgIGlmICghdGhpcy5yZWNpcGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFuYWx5dGljc0V2ZW50U2VudCAmJiB0aGlzLmlzSW5WaWV3cG9ydCgpKSB7XG4gICAgICB0aGlzLnNlbmRFdmVudCh0aGlzLmFuYWx5dGljc1NlcnZpY2UuRVZFTlRfUkVDSVBFX1NIT1cpO1xuICAgICAgLy8gVE9ETyA6IHJlbW92ZSB0aGlzID9cbiAgICAgIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5lbnF1ZXVlRXZlbnQodGhpcy5yZWNpcGUsIHRoaXMucmVjaXBlRXZlbnRzU2VydmljZS5BQ1RJT05fU0hPV04pXG4gICAgICB0aGlzLmFuYWx5dGljc0V2ZW50U2VudCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc3BsYXlQcmljZSgpe1xuXG4gICAgaWYgKHRoaXMuaXNQcmljZURpc3BsYXllZCB8fCAhdGhpcy5pc0luVmlld3BvcnQoKSl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNQcmljZURpc3BsYXllZCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaW5ncmVkaWVudFBpY3R1cmUoaW5ncmVkaWVudDogU2ltcGxpZmllZEluZ3JlZGllbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBpbmdyZWRpZW50LnBpY3R1cmUgfHwgdGhpcy5jb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -128,4 +128,4 @@ ComponentsModule.ɵinj = i0.ɵɵdefineInjector({ factory: function ComponentsMod
|
|
|
128
128
|
exports: COMPONENTS
|
|
129
129
|
}]
|
|
130
130
|
}], null, null); })();
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9B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QUFPLEVBQUUsVUFBVTthQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDT1JTT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4vY29ycy1vdmVybGF5L2NvcnMtb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWlucHV0L2xpc3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuL3NrZWxldG9uL3NrZWxldG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGlkZXJDb21wb25lbnQgfSBmcm9tICcuL3NsaWRlci9zbGlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb3VudGVySW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvdW50ZXItaW5wdXQvY291bnRlci1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlrZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlrZS1idXR0b24vbGlrZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMvdGFicy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQm9keUNvbXBvbmVudCB9IGZyb20gJy4vdGFicy90YWItYm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdGFicy90YWItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3RhYnMvdGFiLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVDb25maXJtQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtY29uZmlybS1idXR0b24vZGVsZXRlLWNvbmZpcm0tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9hZGRvbi1saW5rL2FkZG9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2lwZUZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3JlY2lwZS1maWx0ZXJzL3JlY2lwZS1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXRpbHNNb2R1bGUgfSBmcm9tICcuLi9fdXRpbHMvdXRpbHMubW9kdWxlJztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL19jb21wb25lbnRzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlVHlwZUNob29zZXJDb21wb25lbnQgfSBmcm9tICcuL3JlY2lwZS10eXBlLWNob29zZXIvcmVjaXBlLXR5cGUtY2hvb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uc1BvcGluQ29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb25zLXBvcGluL2FjdGlvbnMtcG9waW4uY29tcG9uZW50JztcbmltcG9ydCB7IENhcmRDcmVhdGVSZWNpcGVDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY3JlYXRlLXJlY2lwZS9jYXJkLWNyZWF0ZS1yZWNpcGUuY29tcG9uZW50JztcbmltcG9ydCB7IEV4cGxhaW5CYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2V4cGxhaW4tYmFubmVyL2V4cGxhaW4tYmFubmVyLmNvbXBvbmVudCc7XG5cblxuZXhwb3J0IGNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIEljb25Db21wb25lbnQsXG4gIENPUlNPdmVybGF5Q29tcG9uZW50LFxuICBMaXN0SW5wdXRDb21wb25lbnQsXG4gIFNrZWxldG9uQ29tcG9uZW50LFxuICBTbGlkZXJDb21wb25lbnQsXG4gIFRpbWVQaWNrZXJDb21wb25lbnQsXG4gIENvdW50ZXJJbnB1dENvbXBvbmVudCxcbiAgTGlrZUJ1dHRvbkNvbXBvbmVudCxcbiAgVGFic0NvbXBvbmVudCxcbiAgVGFiQm9keUNvbXBvbmVudCxcbiAgVGFiSXRlbUNvbXBvbmVudCxcbiAgVGFiTGFiZWxDb21wb25lbnQsXG4gIERlbGV0ZUNvbmZpcm1CdXR0b25Db21wb25lbnQsXG4gIFJlY2lwZVByaWNpbmdDb21wb25lbnQsXG4gIEFkZG9uTGlua0NvbXBvbmVudCxcbiAgUmVjaXBlRmlsdGVyc0NvbXBvbmVudCxcbiAgU2VsZWN0SW5wdXRDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgQWN0aW9uc1BvcGluQ29tcG9uZW50LFxuICBDYXJkQ3JlYXRlUmVjaXBlQ29tcG9uZW50LFxuICBSZWNpcGVUeXBlQ2hvb3NlckNvbXBvbmVudCxcbiAgQWN0aW9uc1BvcGluQ29tcG9uZW50LFxuICBFeHBsYWluQmFubmVyQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgVXRpbHNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IENPTVBPTkVOVFMsXG4gIGV4cG9ydHM6IENPTVBPTkVOVFNcbn0pXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50c01vZHVsZSB7XG59XG4iXX0=
|
|
@@ -87,15 +87,15 @@ export class RecipeLikesService extends Service {
|
|
|
87
87
|
return this.isCleaning.asObservable().pipe(skipWhile(isCleaning => isCleaning), take(1), switchMap(_ => this.afterCLeanAddLikesToRecipes(recipes)));
|
|
88
88
|
}
|
|
89
89
|
afterCLeanAddLikesToRecipes(recipes) {
|
|
90
|
-
|
|
91
|
-
if (
|
|
90
|
+
recipes = recipes.filter(recipe => !this.activeRecipeLikes.has(recipe.id));
|
|
91
|
+
if (recipes.length == 0) {
|
|
92
92
|
return of(null);
|
|
93
93
|
}
|
|
94
94
|
;
|
|
95
95
|
return this.all({
|
|
96
96
|
page: { size: 20, number: 1 },
|
|
97
97
|
remotefilter: {
|
|
98
|
-
recipe_id:
|
|
98
|
+
recipe_id: recipes.map(r => r.id).join(),
|
|
99
99
|
is_past: 'true,false'
|
|
100
100
|
}
|
|
101
101
|
}).pipe(skipWhile(resp => resp.is_loading), tap(result => {
|
|
@@ -123,4 +123,4 @@ RecipeLikesService.ɵprov = i0.ɵɵdefineInjectable({ token: RecipeLikesService,
|
|
|
123
123
|
providedIn: 'root'
|
|
124
124
|
}]
|
|
125
125
|
}], function () { return [{ type: i1.UserService }, { type: i2.AnalyticsService }]; }, null); })();
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWxpa2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9yZWNpcGUtbGlrZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQXNCLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBS25FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxPQUFtQjtJQVd6RCxZQUFvQixXQUF3QixFQUFVLGdCQUFrQztRQUN0RixLQUFLLEVBQUUsQ0FBQztRQURVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVRqRixhQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3RCLFNBQUksR0FBRyxjQUFjLENBQUM7UUFDdEIsc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFFbEUsa0NBQTZCLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLG9DQUErQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFDekQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUl6QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3BDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEIsQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxPQUFPLENBQUMsUUFBZ0I7UUFDdEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCLEVBQUUsVUFBc0IsRUFBRSxVQUFzQjtRQUN6RSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDN0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUMzSDtZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJCQUEyQixDQUFDLFFBQWdCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbEQsc0hBQXNIO2dCQUN0SCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQUU7WUFDMUgsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxRQUFnQjtRQUMvQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDN0IsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxpQ0FBaUM7UUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixPQUFPO1NBQ1I7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNyRCxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzdCO1NBQ0Y7UUFDRCxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFpQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7U0FBRTtRQUFBLENBQUM7UUFFM0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQ25DLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxPQUFpQjtRQUNuRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUFFO1FBQUEsQ0FBQztRQUUvQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDZCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDN0IsWUFBWSxFQUFFO2dCQUNaLFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUMzQixPQUFPLEVBQUUsWUFBWTthQUN0QjtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNsQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCx5Q0FBeUM7WUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQy9GLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbEYsQ0FBQyxDQUFDLENBQUM7WUFDSCxxREFBcUQ7WUFDckQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELDBFQUEwRTtJQUNsRSxrQkFBa0IsQ0FBQyxRQUFnQjtRQUN6QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwRixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ25DLENBQUM7SUFDSixDQUFDOztvRkF6SFUsa0JBQWtCOzBEQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNO2tEQUVQLGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50Q29sbGVjdGlvbiwgU2VydmljZSB9IGZyb20gJ25neC1qc29uYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBza2lwV2hpbGUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZUxpa2UgfSBmcm9tICcuLi9fbW9kZWxzL3JlY2lwZS1saWtlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UsIEV2ZW50VHJhY2UgfSBmcm9tICcuL2FuYWx5dGljcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlTGlrZXNTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxSZWNpcGVMaWtlPiB7XG5cbiAgcHVibGljIHJlc291cmNlID0gUmVjaXBlTGlrZTtcbiAgcHVibGljIHR5cGUgPSAncmVjaXBlLWxpa2VzJztcbiAgcHVibGljIGFjdGl2ZVJlY2lwZUxpa2VzID0gbmV3IE1hcDxzdHJpbmcsIEJlaGF2aW9yU3ViamVjdDxSZWNpcGVMaWtlPj4oKTtcblxuICBwcml2YXRlIE1BWF9SRUNJUEVfTElLRVNfQkVGT1JFX0NMRUFOID0gMjAwO1xuICBwdWJsaWMgY2xlYW5Vbm9ic2VydmVkTGlrZXNJZk5lY2Vzc2FyeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuICBwcml2YXRlIGlzQ2xlYW5pbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLCBwcml2YXRlIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuY2xlYW5Vbm9ic2VydmVkTGlrZXNJZk5lY2Vzc2FyeS5waXBlKFxuICAgICAgICB0YXAoXyA9PiB0aGlzLmlzQ2xlYW5pbmcubmV4dCh0cnVlKSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICApLnN1YnNjcmliZSggXyA9PiB7XG4gICAgICAgIHRoaXMuZG9DbGVhblVub2JzZXJ2ZWRMaWtlc0lmTmVjZXNzYXJ5KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgZ2V0TGlrZShyZWNpcGVJZDogc3RyaW5nKTogQmVoYXZpb3JTdWJqZWN0PFJlY2lwZUxpa2U+IHtcbiAgICB0aGlzLmFkZExpa2VUb0FjdGl2ZXNJZk5lY2Vzc2FyeShyZWNpcGVJZCk7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuZ2V0KHJlY2lwZUlkKTtcbiAgfVxuXG4gIHVwZGF0ZUxpa2UocmVjaXBlSWQ6IHN0cmluZywgcmVjaXBlTGlrZTogUmVjaXBlTGlrZSwgZXZlbnRUcmFjZTogRXZlbnRUcmFjZSkge1xuICAgIHJlY2lwZUxpa2Uuc2F2ZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAocmVjaXBlTGlrZS5pc1Bhc3QpIHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudFdoZW5SZWFkeSh0aGlzLmFuYWx5dGljc1NlcnZpY2UuRVZFTlRfUkVDSVBFX1VOTElLRSwgZXZlbnRUcmFjZS5vcmlnaW5QYXRoLCBldmVudFRyYWNlLnByb3BzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudFdoZW5SZWFkeSh0aGlzLmFuYWx5dGljc1NlcnZpY2UuRVZFTlRfUkVDSVBFX0xJS0UsIGV2ZW50VHJhY2Uub3JpZ2luUGF0aCwgZXZlbnRUcmFjZS5wcm9wcylcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuZ2V0KHJlY2lwZUlkKS5uZXh0KHJlY2lwZUxpa2UpO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkTGlrZVRvQWN0aXZlc0lmTmVjZXNzYXJ5KHJlY2lwZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuZ2V0KHJlY2lwZUlkKSkge1xuICAgICAgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5zZXQocmVjaXBlSWQsIG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5uZXcoKSkpO1xuICAgICAgdGhpcy5mZXRjaExpa2VzT2ZSZWNpcGUocmVjaXBlSWQpLnN1YnNjcmliZShsaWtlcyA9PiB7XG4gICAgICAgIC8vIERvdWJsZSBjaGVjayBiZWNhdXNlIHRoZSBCZWhhdmlvclN1YmplY3QgY291bGQgaGF2ZSBiZWVuIGRlbGV0ZWQgaW4gcmVtb3ZlTGlrZUZyb21BY3RpdmVzSWZOZWNlc3Nhcnkgd2hpbGUgZmV0Y2hpbmdcbiAgICAgICAgaWYgKGxpa2VzLmRhdGFbMF0gJiYgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5nZXQocmVjaXBlSWQpKSB7IHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuZ2V0KHJlY2lwZUlkKS5uZXh0KGxpa2VzLmRhdGFbMF0pOyB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVMaWtlRnJvbUFjdGl2ZXNJZk5lY2Vzc2FyeShyZWNpcGVJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgYWN0aXZlTGlrZXMgPSB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLmdldChyZWNpcGVJZCk7XG4gICAgaWYgKCFhY3RpdmVMaWtlcykgeyByZXR1cm47IH1cbiAgICBpZiAoYWN0aXZlTGlrZXMub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5kZWxldGUocmVjaXBlSWQpO1xuICAgIH1cbiAgfVxuXG4gIGRvQ2xlYW5Vbm9ic2VydmVkTGlrZXNJZk5lY2Vzc2FyeSgpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbTWlhbV0gd2lsbCBjaGVjayBjbGVhbmluZycsIHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuc2l6ZSk7XG4gICAgaWYgKHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuc2l6ZSA8IHRoaXMuTUFYX1JFQ0lQRV9MSUtFU19CRUZPUkVfQ0xFQU4pIHtcbiAgICAgIHRoaXMuaXNDbGVhbmluZy5uZXh0KGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKCdbTWlhbV0gd2lsbCBjbGVhbiB1bm9ic2VydmVkIHJlY2lwZXMgbGlrZScpO1xuICAgIGNvbnN0IGtleXNUb0RlbGV0ZSA9IFtdO1xuICAgIGZvciAobGV0IFtyZWNpcGVJZCwgYWN0aXZlTGlrZXNdIG9mIHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMpIHtcbiAgICAgIGlmIChhY3RpdmVMaWtlcyAmJiBhY3RpdmVMaWtlcy5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGtleXNUb0RlbGV0ZS5wdXNoKHJlY2lwZUlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAga2V5c1RvRGVsZXRlLmZvckVhY2gocmVjaXBlSWQgPT4gdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5kZWxldGUocmVjaXBlSWQpKTtcbiAgICB0aGlzLmlzQ2xlYW5pbmcubmV4dChmYWxzZSk7XG4gIH1cblxuICBhZGRMaWtlc1RvUmVjaXBlcyhyZWNpcGVzOiBSZWNpcGVbXSk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZUxpa2U+PiB7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJC52YWx1ZSkgeyByZXR1cm4gb2YobnVsbCkgfTtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5pc0NsZWFuaW5nLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBza2lwV2hpbGUoaXNDbGVhbmluZyA9PiBpc0NsZWFuaW5nKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoXyA9PiB0aGlzLmFmdGVyQ0xlYW5BZGRMaWtlc1RvUmVjaXBlcyhyZWNpcGVzKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlckNMZWFuQWRkTGlrZXNUb1JlY2lwZXMocmVjaXBlczogUmVjaXBlW10pOiBPYnNlcnZhYmxlPERvY3VtZW50Q29sbGVjdGlvbjxSZWNpcGVMaWtlPj4ge1xuICAgIGNvbnN0IHJlY2lwZUlkcyA9IHJlY2lwZXMubWFwKHIgPT4gci5pZCkuZmlsdGVyKHJpZCA9PiAhdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5oYXMocmlkKSk7XG4gICAgaWYgKHJlY2lwZUlkcy5sZW5ndGggPT0gMCkgeyByZXR1cm4gb2YobnVsbCkgfTtcblxuICAgIHJldHVybiB0aGlzLmFsbCh7XG4gICAgICBwYWdlOiB7IHNpemU6IDIwLCBudW1iZXI6IDEgfSxcbiAgICAgIHJlbW90ZWZpbHRlcjoge1xuICAgICAgICByZWNpcGVfaWQ6IHJlY2lwZUlkcy5qb2luKCksXG4gICAgICAgIGlzX3Bhc3Q6ICd0cnVlLGZhbHNlJ1xuICAgICAgfVxuICAgIH0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzcCA9PiByZXNwLmlzX2xvYWRpbmcpLFxuICAgICAgdGFwKHJlc3VsdCA9PiB7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBlbnRyeSBmb3IgZWFjaCBsaWtlIHJldHVybmVkXG4gICAgICAgIHJlc3VsdC5kYXRhLmZvckVhY2goKGxpa2UpID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLnNldChsaWtlLmF0dHJpYnV0ZXNbJ3JlY2lwZS1pZCddLnRvU3RyaW5nKCksIG5ldyBCZWhhdmlvclN1YmplY3QobGlrZSkpO1xuICAgICAgICAgIHJlY2lwZXMgPSByZWNpcGVzLmZpbHRlcihyID0+IHIuaWQgIT09IGxpa2UuYXR0cmlidXRlc1sncmVjaXBlLWlkJ10udG9TdHJpbmcoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBDcmVhdGUgYW4gZW1wdHkgZW50cnkgZm9yIGVhY2ggcmVjaXBlIHdpdGhvdXQgbGlrZVxuICAgICAgICByZWNpcGVzLmZvckVhY2gociA9PiB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5zZXQoci5pZCwgbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm5ldygpKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8gQmVjYXVzZSBvZiBBUEkgaW1wbGVtZW50YXRpb24sIHNob3VsZG4ndCByZXR1cm4gbW9yZSB0aGFuIDEgcmVjaXBlLWxpa2VcbiAgcHJpdmF0ZSBmZXRjaExpa2VzT2ZSZWNpcGUocmVjaXBlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZUxpa2U+PntcbiAgICByZXR1cm4gdGhpcy5hbGwoeyByZW1vdGVmaWx0ZXI6IHsgcmVjaXBlX2lkOiByZWNpcGVJZCwgaXNfcGFzdDogJ3RydWUsZmFsc2UnIH0gfSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXNwID0+IHJlc3AuaXNfbG9hZGluZylcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWxpa2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL19zZXJ2aWNlcy9yZWNpcGUtbGlrZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQXNCLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBYyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBS25FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxPQUFtQjtJQVd6RCxZQUFvQixXQUF3QixFQUFVLGdCQUFrQztRQUN0RixLQUFLLEVBQUUsQ0FBQztRQURVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVRqRixhQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3RCLFNBQUksR0FBRyxjQUFjLENBQUM7UUFDdEIsc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFFbEUsa0NBQTZCLEdBQUcsR0FBRyxDQUFDO1FBQ3JDLG9DQUErQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7UUFDekQsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pELGtCQUFh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Q0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztZQUNILHFEQUFxRDtZQUNyRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsMEVBQTBFO0lBQ2xFLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3BGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDbkMsQ0FBQztJQUNKLENBQUM7O29GQXpIVSxrQkFBa0I7MERBQWxCLGtCQUFrQixXQUFsQixrQkFBa0IsbUJBRmpCLE1BQU07a0RBRVAsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uLCBTZXJ2aWNlIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlTGlrZSB9IGZyb20gJy4uL19tb2RlbHMvcmVjaXBlLWxpa2UnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgRXZlbnRUcmFjZSB9IGZyb20gJy4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVMaWtlc1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPFJlY2lwZUxpa2U+IHtcblxuICBwdWJsaWMgcmVzb3VyY2UgPSBSZWNpcGVMaWtlO1xuICBwdWJsaWMgdHlwZSA9ICdyZWNpcGUtbGlrZXMnO1xuICBwdWJsaWMgYWN0aXZlUmVjaXBlTGlrZXMgPSBuZXcgTWFwPHN0cmluZywgQmVoYXZpb3JTdWJqZWN0PFJlY2lwZUxpa2U+PigpO1xuXG4gIHByaXZhdGUgTUFYX1JFQ0lQRV9MSUtFU19CRUZPUkVfQ0xFQU4gPSAyMDA7XG4gIHB1YmxpYyBjbGVhblVub2JzZXJ2ZWRMaWtlc0lmTmVjZXNzYXJ5ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIHByaXZhdGUgaXNDbGVhbmluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlcigpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jbGVhblVub2JzZXJ2ZWRMaWtlc0lmTmVjZXNzYXJ5LnBpcGUoXG4gICAgICAgIHRhcChfID0+IHRoaXMuaXNDbGVhbmluZy5uZXh0KHRydWUpKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMClcbiAgICAgICkuc3Vic2NyaWJlKCBfID0+IHtcbiAgICAgICAgdGhpcy5kb0NsZWFuVW5vYnNlcnZlZExpa2VzSWZOZWNlc3NhcnkoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBnZXRMaWtlKHJlY2lwZUlkOiBzdHJpbmcpOiBCZWhhdmlvclN1YmplY3Q8UmVjaXBlTGlrZT4ge1xuICAgIHRoaXMuYWRkTGlrZVRvQWN0aXZlc0lmTmVjZXNzYXJ5KHJlY2lwZUlkKTtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5nZXQocmVjaXBlSWQpO1xuICB9XG5cbiAgdXBkYXRlTGlrZShyZWNpcGVJZDogc3RyaW5nLCByZWNpcGVMaWtlOiBSZWNpcGVMaWtlLCBldmVudFRyYWNlOiBFdmVudFRyYWNlKSB7XG4gICAgcmVjaXBlTGlrZS5zYXZlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChyZWNpcGVMaWtlLmlzUGFzdCkge1xuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50V2hlblJlYWR5KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9SRUNJUEVfVU5MSUtFLCBldmVudFRyYWNlLm9yaWdpblBhdGgsIGV2ZW50VHJhY2UucHJvcHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50V2hlblJlYWR5KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9SRUNJUEVfTElLRSwgZXZlbnRUcmFjZS5vcmlnaW5QYXRoLCBldmVudFRyYWNlLnByb3BzKVxuICAgICAgfVxuICAgICAgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5nZXQocmVjaXBlSWQpLm5leHQocmVjaXBlTGlrZSk7XG4gICAgfSk7XG4gIH1cblxuICBhZGRMaWtlVG9BY3RpdmVzSWZOZWNlc3NhcnkocmVjaXBlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5nZXQocmVjaXBlSWQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLnNldChyZWNpcGVJZCwgbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLm5ldygpKSk7XG4gICAgICB0aGlzLmZldGNoTGlrZXNPZlJlY2lwZShyZWNpcGVJZCkuc3Vic2NyaWJlKGxpa2VzID0+IHtcbiAgICAgICAgLy8gRG91YmxlIGNoZWNrIGJlY2F1c2UgdGhlIEJlaGF2aW9yU3ViamVjdCBjb3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBpbiByZW1vdmVMaWtlRnJvbUFjdGl2ZXNJZk5lY2Vzc2FyeSB3aGlsZSBmZXRjaGluZ1xuICAgICAgICBpZiAobGlrZXMuZGF0YVswXSAmJiB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLmdldChyZWNpcGVJZCkpIHsgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5nZXQocmVjaXBlSWQpLm5leHQobGlrZXMuZGF0YVswXSk7IH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUxpa2VGcm9tQWN0aXZlc0lmTmVjZXNzYXJ5KHJlY2lwZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBhY3RpdmVMaWtlcyA9IHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuZ2V0KHJlY2lwZUlkKTtcbiAgICBpZiAoIWFjdGl2ZUxpa2VzKSB7IHJldHVybjsgfVxuICAgIGlmIChhY3RpdmVMaWtlcy5vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLmRlbGV0ZShyZWNpcGVJZCk7XG4gICAgfVxuICB9XG5cbiAgZG9DbGVhblVub2JzZXJ2ZWRMaWtlc0lmTmVjZXNzYXJ5KCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1tNaWFtXSB3aWxsIGNoZWNrIGNsZWFuaW5nJywgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5zaXplKTtcbiAgICBpZiAodGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5zaXplIDwgdGhpcy5NQVhfUkVDSVBFX0xJS0VTX0JFRk9SRV9DTEVBTikge1xuICAgICAgdGhpcy5pc0NsZWFuaW5nLm5leHQoZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZGVidWcoJ1tNaWFtXSB3aWxsIGNsZWFuIHVub2JzZXJ2ZWQgcmVjaXBlcyBsaWtlJyk7XG4gICAgY29uc3Qga2V5c1RvRGVsZXRlID0gW107XG4gICAgZm9yIChsZXQgW3JlY2lwZUlkLCBhY3RpdmVMaWtlc10gb2YgdGhpcy5hY3RpdmVSZWNpcGVMaWtlcykge1xuICAgICAgaWYgKGFjdGl2ZUxpa2VzICYmIGFjdGl2ZUxpa2VzLm9ic2VydmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAga2V5c1RvRGVsZXRlLnB1c2gocmVjaXBlSWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBrZXlzVG9EZWxldGUuZm9yRWFjaChyZWNpcGVJZCA9PiB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLmRlbGV0ZShyZWNpcGVJZCkpO1xuICAgIHRoaXMuaXNDbGVhbmluZy5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGFkZExpa2VzVG9SZWNpcGVzKHJlY2lwZXM6IFJlY2lwZVtdKTogT2JzZXJ2YWJsZTxEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlTGlrZT4+IHtcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWQkLnZhbHVlKSB7IHJldHVybiBvZihudWxsKSB9O1xuICAgIFxuICAgIHJldHVybiB0aGlzLmlzQ2xlYW5pbmcuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHNraXBXaGlsZShpc0NsZWFuaW5nID0+IGlzQ2xlYW5pbmcpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHN3aXRjaE1hcChfID0+IHRoaXMuYWZ0ZXJDTGVhbkFkZExpa2VzVG9SZWNpcGVzKHJlY2lwZXMpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFmdGVyQ0xlYW5BZGRMaWtlc1RvUmVjaXBlcyhyZWNpcGVzOiBSZWNpcGVbXSk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFJlY2lwZUxpa2U+PiB7XG4gICAgcmVjaXBlcyA9IHJlY2lwZXMuZmlsdGVyKHJlY2lwZSA9PiAhdGhpcy5hY3RpdmVSZWNpcGVMaWtlcy5oYXMocmVjaXBlLmlkKSk7XG4gICAgaWYgKHJlY2lwZXMubGVuZ3RoID09IDApIHsgcmV0dXJuIG9mKG51bGwpIH07XG5cbiAgICByZXR1cm4gdGhpcy5hbGwoe1xuICAgICAgcGFnZTogeyBzaXplOiAyMCwgbnVtYmVyOiAxIH0sXG4gICAgICByZW1vdGVmaWx0ZXI6IHtcbiAgICAgICAgcmVjaXBlX2lkOiByZWNpcGVzLm1hcChyID0+IHIuaWQpLmpvaW4oKSxcbiAgICAgICAgaXNfcGFzdDogJ3RydWUsZmFsc2UnXG4gICAgICB9XG4gICAgfSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXNwID0+IHJlc3AuaXNfbG9hZGluZyksXG4gICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgLy8gQ3JlYXRlIGFuIGVudHJ5IGZvciBlYWNoIGxpa2UgcmV0dXJuZWRcbiAgICAgICAgcmVzdWx0LmRhdGEuZm9yRWFjaCgobGlrZSkgPT4ge1xuICAgICAgICAgIHRoaXMuYWN0aXZlUmVjaXBlTGlrZXMuc2V0KGxpa2UuYXR0cmlidXRlc1sncmVjaXBlLWlkJ10udG9TdHJpbmcoKSwgbmV3IEJlaGF2aW9yU3ViamVjdChsaWtlKSk7XG4gICAgICAgICAgcmVjaXBlcyA9IHJlY2lwZXMuZmlsdGVyKHIgPT4gci5pZCAhPT0gbGlrZS5hdHRyaWJ1dGVzWydyZWNpcGUtaWQnXS50b1N0cmluZygpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBlbnRyeSBmb3IgZWFjaCByZWNpcGUgd2l0aG91dCBsaWtlXG4gICAgICAgIHJlY2lwZXMuZm9yRWFjaChyID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZVJlY2lwZUxpa2VzLnNldChyLmlkLCBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubmV3KCkpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBCZWNhdXNlIG9mIEFQSSBpbXBsZW1lbnRhdGlvbiwgc2hvdWxkbid0IHJldHVybiBtb3JlIHRoYW4gMSByZWNpcGUtbGlrZVxuICBwcml2YXRlIGZldGNoTGlrZXNPZlJlY2lwZShyZWNpcGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEb2N1bWVudENvbGxlY3Rpb248UmVjaXBlTGlrZT4+e1xuICAgIHJldHVybiB0aGlzLmFsbCh7IHJlbW90ZWZpbHRlcjogeyByZWNpcGVfaWQ6IHJlY2lwZUlkLCBpc19wYXN0OiAndHJ1ZSxmYWxzZScgfSB9KS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3AgPT4gcmVzcC5pc19sb2FkaW5nKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,9 +4,9 @@ export class LoaderComponent {
|
|
|
4
4
|
constructor() { }
|
|
5
5
|
}
|
|
6
6
|
LoaderComponent.ɵfac = function LoaderComponent_Factory(t) { return new (t || LoaderComponent)(); };
|
|
7
|
-
LoaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LoaderComponent, selectors: [["ng-miam-loader"]], decls: 1, vars: 0, consts: [[1, "loader"]], template: function LoaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
LoaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LoaderComponent, selectors: [["ng-miam-loader"]], decls: 1, vars: 0, consts: [[1, "miam-loader"]], template: function LoaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
8
8
|
i0.ɵɵelement(0, "div", 0);
|
|
9
|
-
} }, styles: [".loader{-webkit-animation:spin .5s linear infinite;animation:spin .5s linear infinite;border:var(--m-loader-thickness) solid var(--m-color-grey);border-radius:var(--m-border-radius-circle);border-top:var(--m-loader-thickness) solid var(--m-color-ternary);height:var(--m-loader-size);width:var(--m-loader-size)}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"], encapsulation: 2 });
|
|
9
|
+
} }, styles: [".miam-loader{-webkit-animation:miam-loader-spin .5s linear infinite;animation:miam-loader-spin .5s linear infinite;border:var(--m-loader-thickness) solid var(--m-color-grey);border-radius:var(--m-border-radius-circle);border-top:var(--m-loader-thickness) solid var(--m-color-ternary);height:var(--m-loader-size);width:var(--m-loader-size)}@-webkit-keyframes miam-loader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes miam-loader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}"], encapsulation: 2 });
|
|
10
10
|
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoaderComponent, [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{
|
|
@@ -16,4 +16,4 @@ LoaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LoaderComponent, selector
|
|
|
16
16
|
styleUrls: ['./loader.component.scss']
|
|
17
17
|
}]
|
|
18
18
|
}], function () { return []; }, null); })();
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3dlYi1jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXBFLE1BQU0sT0FBTyxlQUFlO0lBRTFCLGdCQUFnQixDQUFDOzs4RUFGTixlQUFlO29EQUFmLGVBQWU7UUNSNUIseUJBQStCOztrRERRbEIsZUFBZTtjQU4zQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1sb2FkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tbG9hZGVyXCI+PC9kaXY+Il19
|
|
@@ -394,7 +394,7 @@ export class RecipeCatalogComponent extends EventTracerComponent {
|
|
|
394
394
|
}
|
|
395
395
|
const selectedCategory = this.categories.find((cat) => cat.key === paramsArray.get('catalogCategory'));
|
|
396
396
|
if (selectedCategory) {
|
|
397
|
-
return this.categoryTitleClicked(selectedCategory);
|
|
397
|
+
return this.categoryTitleClicked({ title: selectedCategory.title, filters: selectedCategory.filters.additionalFilters.filters });
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
400
|
// Show feedback block only if user is logged and the children preference is unknown
|
|
@@ -481,4 +481,4 @@ RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogCompo
|
|
|
481
481
|
}], customFilters: [{
|
|
482
482
|
type: Input
|
|
483
483
|
}] }); })();
|
|
484
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFhLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQzlILGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGdC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LHNCQUFzQjsyREFBdEIsc0JBQXNCO3VCQUN0QixzQkFBc0I7O3VCQUVuQix3QkFBd0I7Ozs7Ozs7UUMzQnhDLDRCQUE2RDtRQUMzRCx3RUFDRTtRQWlHSix3SEFDRTs7O1FBbkdLLGVBQXlDO1FBQXpDLDBDQUF5QyxpQkFBQTs7a0REdUJuQyxzQkFBc0I7Y0FQbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUM5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7NFlBRW9DLGFBQWE7a0JBQS9DLFNBQVM7bUJBQUMsc0JBQXNCO1lBQ0UsU0FBUztrQkFBM0MsU0FBUzttQkFBQyxzQkFBc0I7WUFDUSxjQUFjO2tCQUF0RCxZQUFZO21CQUFDLHdCQUF3QjtZQUU3QixnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWNhdGVnb3J5L2NhdGFsb2ctY2F0ZWdvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgUmVjaXBlVHlwZVNlcnZpY2UsIFNwb25zb3JTZXJ2aWNlLCBQYWNrYWdlU2VydmljZSwgU3VwcGxpZXJzU2VydmljZSwgUmVjaXBlc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gIEJhc2tldHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBDYXRhbG9nSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2F0YWxvZy1oZWFkZXIvY2F0YWxvZy1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlY2lwZUZpbHRlciwgUmVjaXBlRmlsdGVycyB9IGZyb20gJy4uLy4uL190eXBlcy9yZWNpcGUtZmlsdGVycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgUGFja2FnZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcGFja2FnZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2F0YWxvZ0NvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKENhdGFsb2dIZWFkZXJDb21wb25lbnQpIGNhdGFsb2dIZWFkZXI6IENhdGFsb2dIZWFkZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ21pYW1DYXRhbG9nVG9wQW5jaG9yJykgdG9wQW5jaG9yOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkcmVuKENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudCkgIGNhdGVnb3JpZXNDb21wITogUXVlcnlMaXN0PENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgaGVhZGVyUGljdHVyZVVybCA9ICdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ltYWdlcy9kZWZhdWx0LWNhdGFsb2ctcGljdHVyZS5wbmcnO1xuICBASW5wdXQoKSBob21lVGl0bGVQaWN0dXJlVXJsID0gJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL2RlZmF1bHQtY2F0YWxvZy10aXRsZS5wbmcnO1xuICBASW5wdXQoKSBpbml0aWFsUm91dGUgPSAnJztcbiAgQElucHV0KCkgZmlsdGVyc1Bvc2l0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBob21lTGFiZWwgPSAnSWTDqWVzIHJlcGFzJztcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVjaXBlQWRkZWRUb2FzdFRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tRmlsdGVyczogeyBkaWZmaWN1bHR5PzogUmVjaXBlRmlsdGVyW10sIGNvc3Q/OiBSZWNpcGVGaWx0ZXJbXSwgdGltZT86IFJlY2lwZUZpbHRlcltdIH07XG5cbiAgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgaXNGaWx0ZXJDb2xsYXBzZWQgPSB0cnVlO1xuICBpY29uID0gSWNvbjtcbiAgY2F0ZWdvcmllcyA9IFtdO1xuICBjcmVhdGluZ1JlY2lwZSA9IGZhbHNlO1xuICByZWNpcGVUb1VwZGF0ZTogUmVjaXBlO1xuICBmaWx0ZXJUb1JlbW92ZTogc3RyaW5nO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBzaG93VXNlckZlZWRiYWNrID0gZmFsc2U7XG4gIHJlY2lwZUNvdW50ID0gMDtcbiAgdG90YWxQcmljZSA9IDA7XG4gIGlzTXlNZWFsQ2xvc2UgPSB0cnVlO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBzdXBwbGllcklkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVUeXBlc1NlcnZpY2U6IFJlY2lwZVR5cGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzcG9uc29yU2VydmljZTogU3BvbnNvclNlcnZpY2UsXG4gICAgcHVibGljIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwdWJsaWMgcGFja2FnZVNlcnZpY2U6IFBhY2thZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgdXNlcnNTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwdWJsaWMgZ3JvY2VyaWVzTGlzdFNlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXG4gICAgICB0aGlzLnN1cHBsaWVyU2VydmljZS5zdXBwbGllciQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN1cHAgPT4gc3VwcCA9PT0gdW5kZWZpbmVkIHx8IHN1cHAgPT0gbnVsbCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcChzdXBwbGllciA9PiB7XG4gICAgICAgICAgdGhpcy5zdXBwbGllcklkID0gc3VwcGxpZXIuaWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFBhY2thZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgpLFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQucGlwZShza2lwV2hpbGUoYnMgPT4gIWJzKSkuc3Vic2NyaWJlKGJzID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGVDb3VudCA9IGJzLnJlY2lwZXNDb3VudDtcbiAgICAgICAgdGhpcy50b3RhbFByaWNlID0gYnMudG90YWxQcmljZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgICApLFxuICAgICAgdGhpcy5hc3Nlc3NTaG93VXNlckZlZWRiYWNrKClcbiAgICBdO1xuXG4gICAgdGhpcy5zZXREaXJlY3RBY2Nlc3ModGhpcy5pbml0aWFsUm91dGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub3BlbkZlYXR1cmVzRnJvbVVSTCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7IHJldHVybiAnbWlhbS9yZWNpcGVzJzsgfVxuXG4gIG9wZW5GZWF0dXJlc0Zyb21VUkwoKSB7XG4gICAgY29uc3QgcGFyYW1zQXJyYXkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGlmIChwYXJhbXNBcnJheS5nZXQoJ29wZW5CYXNrZXQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnRvZ2dsZU15TWVhbERyYXdlcigpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zQXJyYXkuZ2V0KCdwZXJzb25hbENhdGFsb2cnKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnNldFBlcnNvbmFsRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzcGxheUhvbWVQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuaXNFbXB0eSgpO1xuICB9XG5cbiAgLy8gVXNlZCBvbiBsb2FkIHRvIGJ1aWxkIHRoZSBmaWx0ZXJzIGF0dHJpYnV0ZSwgYW5kIG9uIGNsaWNrIG9uIHRoZSBsaW5rIHRvIHJlc2V0IHRoZSBmaWx0ZXJzXG4gIGluaXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IG5ldyBSZWNpcGVGaWx0ZXJzKFxuICAgICAge1xuICAgICAgICBkaWZmaWN1bHR5OiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHMubWFwKGYgPT4ge1xuICAgICAgICAgIHJldHVybiB7IG5hbWU6IGYudmFsdWUudG9TdHJpbmcoKSwgdGV4dDogZi5sYWJlbCwgdmFsdWU6IGZhbHNlIH07XG4gICAgICAgIH0pLFxuICAgICAgICBjb3N0OiBbXG4gICAgICAgICAge25hbWU6ICcwLTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb2lucyBkZSA14oKsJ30sXG4gICAgICAgICAge25hbWU6ICc1LTEwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRW50cmUgNeKCrCBldCAxMOKCrCd9LFxuICAgICAgICAgIHtuYW1lOiAnMTAtMTAwMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ1BsdXMgZGUgMTDigqwnfVxuICAgICAgICAgIC8vIHdlIHNldCBhIGxpbWl0IGF0IDEwMDDigqwgbWF4LCBpZiBhIHJlY2lwZSBjb3N0IG1vcmUgc2hvdWxkIGJlIG5vbiBzZW5zZSBhbnl3YXlcbiAgICAgICAgXSxcbiAgICAgICAgdGltZTogW1xuICAgICAgICAgIHtuYW1lOiAnMTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb2lucyBkZSAxNSBtaW4nfSxcbiAgICAgICAgICB7bmFtZTogJzMwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW9pbnMgZGUgMzAgbWluJ30sXG4gICAgICAgICAge25hbWU6ICc2MCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ01vaW5zIGRlIDEgaCd9LFxuICAgICAgICAgIHtuYW1lOiAnMTIwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW9pbnMgZGUgMiBoJ31cbiAgICAgICAgXVxuICAgICAgfVxuICAgICk7XG4gICAgaWYgKHRoaXMuY3VzdG9tRmlsdGVycykge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnMsIHRoaXMuY3VzdG9tRmlsdGVycyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNhdGFsb2dIZWFkZXIpIHsgdGhpcy5jYXRhbG9nSGVhZGVyLnJlc2V0U2VhcmNoU3RyaW5nKCk7IH1cbiAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gJyc7XG4gICAgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzID0gbnVsbDtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogUmVjaXBlRmlsdGVycykge1xuICAgIGNvbnNvbGUubG9nKCd1cGRhdGVGaWx0ZXJzJylcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzLmNvcHkoKTsgLy8gbmVjZXNzYXJ5IHRvIHRyaWdnZXIgY2hpbGQgY29tcG9uZW50IGNoYW5nZVxuICAgIHRoaXMuZmlsdGVyVG9SZW1vdmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZykge1xuICAgIGlmIChzZWFyY2ggIT09IHRoaXMuZmlsdGVycy5zZWFyY2gpIHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QuYXNzaWduKHRoaXMuZmlsdGVycywgeyBzZWFyY2ggfSk7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcnMoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgY2F0ZWdvcnlUaXRsZUNsaWNrZWQoZXZlbnQ6IHt0aXRsZTogc3RyaW5nLCBmaWx0ZXJzOiBhbnl9KSB7XG4gICAgY29uc3QgZmlsdGVycyA9IE9iamVjdC5hc3NpZ24odGhpcy5maWx0ZXJzLCB7XG4gICAgICBhZGRpdGlvbmFsRmlsdGVyczogeyBmaWx0ZXJzOiBldmVudC5maWx0ZXJzLCB0aXRsZTogZXZlbnQudGl0bGUgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHNldEZhdm9yaXRlc0ZpbHRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnMsIHtcbiAgICAgIGFkZGl0aW9uYWxGaWx0ZXJzOiB7XG4gICAgICAgIGZpbHRlcnM6IHsgbGlrZWQ6IHRydWUgfSxcbiAgICAgICAgdGl0bGU6ICdNZXMgaWTDqWVzIHJlcGFzJ1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHNldFBlcnNvbmFsRmlsdGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QuYXNzaWduKHRoaXMuZmlsdGVycywge1xuICAgICAgYWRkaXRpb25hbEZpbHRlcnM6IHtcbiAgICAgICAgZmlsdGVyczogeyBwZXJzb25hbDogdHJ1ZSwgYWN0aXZlOiAndHJ1ZSxmYWxzZScgfSxcbiAgICAgICAgdGl0bGU6ICdNb24gY2FybmV0IHBlcnNvJ1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJUZXh0OiBzdHJpbmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgZnVuY3Rpb24gaXMgYnJva2VuLCB1c2UgaGFzIGJlZW4gY29tbWVudGF0ZWQsIHJlcGFpciBpdCBpZiB5b3Ugd2FudCB0byB1c2UgaXQgYWdhaW4nKTtcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gZmlsdGVyVGV4dDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZXR1cm5Ub1RvcCgpIHtcbiAgICBpZiAodGhpcy50b3BBbmNob3IpIHtcbiAgICAgIHRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm5Ub0hvbWVQYWdlKCkge1xuICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgICAvLyBlaXRoZXIgeW91IGhhdmUgZmlsdGVycyBlaXRoZXIgeW91IGFyZSBvbiBob21lIHBhZ2UuIFRoYXQgbWVhbiBpZiB5b3UgZ28gb24gaG9tZSBwYWdlIHlvdSBkb24ndCB3YW50IEFOWSBmaWx0ZXJcbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25GaWx0ZXJDb2xsYXBzZWQoKSB7XG4gICAgdGhpcy5pc0ZpbHRlckNvbGxhcHNlZCA9ICF0aGlzLmlzRmlsdGVyQ29sbGFwc2VkO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB0byB0cmlnZ2VyIGFmdGVyIHRoZSBkZXRlY3RDaGFuZ2VzIGJlY2F1c2Ugd2UgbmVlZCB0byBhbHJlYWQgaGF2ZSB0aGUgZGlzcGxheSBjaGFuZ2UgdG8gdXBkYXRlIGNhcmRzXG4gICAgdGhpcy5jYXRlZ29yaWVzQ29tcC5mb3JFYWNoKCBjYXQgPT4ge1xuICAgICAgY2F0LnVwZGF0ZVdpZHRoKCk7XG4gICAgfSk7XG4gIH1cblxuICBnb1RvQ3JlYXRlUGFnZShyZWNpcGUgPSBudWxsKSB7XG4gICAgdGhpcy5jcmVhdGluZ1JlY2lwZSA9IHRydWU7XG4gICAgdGhpcy5yZWNpcGVUb1VwZGF0ZSA9IHJlY2lwZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICB9XG5cbiAgbGVhdmVDcmVhdGVQYWdlKCkge1xuICAgIHRoaXMuY3JlYXRpbmdSZWNpcGUgPSBmYWxzZTtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbWFuYWdlUmVjaXBlQWN0aW9uKGV2ZW50OiB7YWN0aW9uOiBzdHJpbmcsIHJlY2lwZTogUmVjaXBlfSkge1xuICAgIHN3aXRjaCAoZXZlbnQuYWN0aW9uKSB7XG4gICAgICBjYXNlICdDUkVBVEUnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0VESVQnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoZXZlbnQucmVjaXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0RFTEVURSc6IHtcbiAgICAgICAgaWYgKGV2ZW50LnJlY2lwZT8uaWQgJiYgZXZlbnQucmVjaXBlLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1wcm92aWRlciddPy5kYXRhLmlkID09PSAncGVyc29uYWwnKSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRlbGV0ZShldmVudC5yZWNpcGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wcm9wcygpLCB7IHJlY2lwZUlkOiBldmVudC5yZWNpcGUuaWQgfSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VuZEV2ZW50KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9QRVJTT05BTF9SRUNJUEVfREVMRVRFKTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbG9hZFBhY2thZ2VzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5sb2FkUGFja2FnZXMoKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBhc3Nlc3NUaXRsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlIb21lUGFnZSgpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyAmJiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMudGl0bGUgIT09ICcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgcmV0dXJuIGBWb3RyZSByZWNoZXJjaGUgOiBcIiR7dGhpcy5maWx0ZXJzLnNlYXJjaH1cImA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnVm90cmUgc8OpbGVjdGlvbic7XG4gICAgfVxuICB9XG5cbiAgY2FuRGlzcGxheUNyZWF0aW9uQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGlzUGVyc29uYWwgPSB0aGlzLmZpbHRlcnM/LmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzWydwZXJzb25hbCddID09PSB0cnVlO1xuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZS5pc0xvZ2dlZCQuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoaXNMb2dnZWQgPT4gaXNMb2dnZWQgJiYgaXNQZXJzb25hbCkpO1xuICB9XG5cbiAgYXNzZXNzSXNGYXZvcml0ZXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlID09PSAnTWVzIGlkw6llcyByZXBhcyc7XG4gIH1cblxuICB0b2dnbGVNeU1lYWxEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVzU2VydmljZS5vcGVuQmFza2V0KHRoaXMuZXZlbnRUcmFjZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFBhY2thZ2VzKCk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBhY2thZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZVNlcnZpY2UuY2F0ZWdvcmllc19mb3IoW3RoaXMuc3VwcGxpZXJJZF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocGFja2FnZXMgPT4gcGFja2FnZXMuaXNfbG9hZGluZyksXG4gICAgICB0YXAoKHBhY2thZ2VzOiBEb2N1bWVudENvbGxlY3Rpb248UGFja2FnZT4pID0+IHtcbiAgICAgICAgdGhpcy5pbml0Q2F0ZWdvcmllcyhwYWNrYWdlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0Q2F0ZWdvcnlGcm9tVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENhdGVnb3JpZXMocGFja2FnZXMpIHtcbiAgICB0aGlzLmNhdGVnb3JpZXMgPSBwYWNrYWdlcy5kYXRhLm1hcChjYXRlZ29yeVBhY2thZ2UgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBjYXRlZ29yeVBhY2thZ2UudGl0bGUudHJpbSgpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpBLVowLTkgLV0vLCAnJykucmVwbGFjZSgvXFxzL2csICctJyksXG4gICAgICAgIHRpdGxlOiBjYXRlZ29yeVBhY2thZ2UudGl0bGUsXG4gICAgICAgIHN1YnRpdGxlOiBjYXRlZ29yeVBhY2thZ2Uuc3VidGl0bGUsXG4gICAgICAgIGZpbHRlcnM6IHsgYWRkaXRpb25hbEZpbHRlcnM6IHsgZmlsdGVyczogeyBwYWNrYWdlczogY2F0ZWdvcnlQYWNrYWdlLmlkIH0sIHRpdGxlOiAnJyB9IH1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhdGVnb3J5RnJvbVVybCgpIHtcbiAgICBjb25zdCBwYXJhbXNBcnJheSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgaWYgKHBhcmFtc0FycmF5LmdldCgnY2F0YWxvZ0NhdGVnb3J5JykgPT09ICdmYXZvcml0ZXMnKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRGYXZvcml0ZXNGaWx0ZXIoKTtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChjYXQpID0+IGNhdC5rZXkgPT09IHBhcmFtc0FycmF5LmdldCgnY2F0YWxvZ0NhdGVnb3J5JykpO1xuICAgIGlmIChzZWxlY3RlZENhdGVnb3J5KSB7IHJldHVybiB0aGlzLmNhdGVnb3J5VGl0bGVDbGlja2VkKHNlbGVjdGVkQ2F0ZWdvcnkpOyB9XG4gIH1cblxuICAvLyBTaG93IGZlZWRiYWNrIGJsb2NrIG9ubHkgaWYgdXNlciBpcyBsb2dnZWQgYW5kIHRoZSBjaGlsZHJlbiBwcmVmZXJlbmNlIGlzIHVua25vd25cbiAgcHJpdmF0ZSBhc3Nlc3NTaG93VXNlckZlZWRiYWNrKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy51c2Vyc1NlcnZpY2UuaXNMb2dnZWQkLFxuICAgICAgdGhpcy51c2Vyc1NlcnZpY2UucHJlZmVyZW5jZURlZmluZWQoJ2hhc19jaGlsZHJlbicpLFxuICAgICAgdGhpcy51c2Vyc1NlcnZpY2UucHJlZmVyZW5jZXNBY3RpdmF0ZWQkXG4gICAgXSkuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xuICAgICAgY29uc3QgbG9nZ2VkID0gcmVzdWx0c1swXTtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VEZWZpbmVkID0gcmVzdWx0c1sxXTtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzQWN0aXZhdGVkID0gcmVzdWx0c1syXTtcbiAgICAgIHRoaXMuc2hvd1VzZXJGZWVkYmFjayA9IGxvZ2dlZCAmJiAhcHJlZmVyZW5jZURlZmluZWQgJiYgcHJlZmVyZW5jZXNBY3RpdmF0ZWQ7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldERpcmVjdEFjY2Vzcyhyb3V0ZTogc3RyaW5nKXtcbiAgICBpZiAodGhpcy5pbml0aWFsUm91dGUgIT09ICcnKXtcbiAgICAgIHN3aXRjaCAodGhpcy5pbml0aWFsUm91dGUpe1xuICAgICAgICBjYXNlICdtZXMtcmVwYXMnOlxuICAgICAgICAgIHRoaXMudG9nZ2xlTXlNZWFsRHJhd2VyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21lcy1yZWNldHRlcy1wZXJzb25uZWxsZXMnOlxuICAgICAgICAgIHRoaXMuc2V0UGVyc29uYWxGaWx0ZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVjZXR0ZXMtZmF2b3JpdGVzJzpcbiAgICAgICAgICB0aGlzLnNldEZhdm9yaXRlc0ZpbHRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFVudXNlZCBmb3Igbm93Li4uXG4gIC8vIHNldFVzZXJQcmVmZXJlbmNlKHByZWYsIHN0YXRlKSB7XG4gIC8vICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gIC8vICAgICB0aGlzLnVzZXJzU2VydmljZS5zZXRQcmVmZXJlbmNlKHByZWYsIHN0YXRlKS5waXBlKFxuICAvLyAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2FkUGFja2FnZXMoKSlcbiAgLy8gICAgICkuc3Vic2NyaWJlKClcbiAgLy8gICApO1xuICAvLyAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAvLyB9XG5cbiAgLy8gcHJpdmF0ZSBjbG9zZU1vZGFsKCkge1xuICAvLyAgIHRoaXMuc2hvd1VzZXJGZWVkYmFjayA9ICF0aGlzLnNob3dVc2VyRmVlZGJhY2s7XG4gIC8vICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAvLyB9XG59XG4iLCI8ZGl2ICNtaWFtQ2F0YWxvZ1RvcEFuY2hvciBjbGFzcz1cIm1pYW0tY2F0YWxvZy1hbmNob3JcIj48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFjcmVhdGluZ1JlY2lwZSBlbHNlIGNyZWF0aW9uUGFnZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50XCI+XG4gICAgICA8bmctbWlhbS1jYXRhbG9nLWhlYWRlciBcbiAgICAgICAgW3RpdGxlXT1cImFzc2Vzc1RpdGxlKClcIlxuICAgICAgICBbaG9tZUxhYmVsXT1cImhvbWVMYWJlbFwiXG4gICAgICAgIFtwaWN0dXJlVXJsXT1cImRpc3BsYXlIb21lUGFnZSgpID8gaGVhZGVyUGljdHVyZVVybCA6IG51bGxcIlxuICAgICAgICBbdGl0bGVQaWN0dXJlVXJsXT1cImRpc3BsYXlIb21lUGFnZSgpID8gaG9tZVRpdGxlUGljdHVyZVVybCA6IG51bGxcIlxuICAgICAgICBbZmF2b3JpdGVzQnV0dG9uSGlkZGVuXT1cImFzc2Vzc0lzRmF2b3JpdGVzUGFnZSgpXCJcbiAgICAgICAgW3BlcnNvbmFsQnV0dG9uSGlkZGVuXT1cImNvbnRleHRTZXJ2aWNlLmRpc2FibGVQZXJzb25hbFJlY2lwZSQgfCBhc3luY1wiXG4gICAgICAgIFtmaWx0ZXJCYWRnZUNvdW50XT1cImZpbHRlcnMuc2VsZWN0YWJsZUZpbHRlcnNDb3VudCgpXCJcbiAgICAgICAgKHJldHVybkJ1dHRvblByZXNzZWQpPVwicmV0dXJuVG9Ib21lUGFnZSgpXCJcbiAgICAgICAgKGZpbHRlckJ1dHRvblByZXNzZWQpPVwib25GaWx0ZXJDb2xsYXBzZWQoKVwiXG4gICAgICAgIChzZWFyY2hTdHJpbmdDaGFuZ2VkKT1cInVwZGF0ZVNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgKHBlcnNvbmFsQnV0dG9uUHJlc3NlZCk9XCJzZXRQZXJzb25hbEZpbHRlcigpXCJcbiAgICAgICAgKGZhdm9yaXRlc0J1dHRvblByZXNzZWQpPVwic2V0RmF2b3JpdGVzRmlsdGVyKClcIj5cbiAgICAgIDwvbmctbWlhbS1jYXRhbG9nLWhlYWRlcj5cbiAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGVDb3VudCA+IDBcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX215TWVhbF9fYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZU15TWVhbERyYXdlcigpXCIgPlxuICAgICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLkNhcnRcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3Itd2hpdGUpJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX215TWVhbF9fZmlyc3RfX2ljb25cIiA+PC9uZy1taWFtLWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbXlNZWFsX19idXR0b25fX3RleHRcIj57e3JlY2lwZUNvdW50fX0gXG4gICAgICAgICAgcmVwYXNcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctbWlhbS1pY29uICBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci13aGl0ZSknIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbXlNZWFsX19zZWNvbmRfX2ljb25cIj48L25nLW1pYW0taWNvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFVzZXIgZmVlZGJhY2sgYmFubmVyICh1bnVzZWQgZm9yIG5vdyAvIG1heWJlIHJlYWN0aXZhdGVkIGxhdGVyKSAtLT5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3VzZXItZmVlZGJhY2tfX21vZGFsXCIgKm5nSWY9XCJzaG93VXNlckZlZWRiYWNrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50X191c2VyLWZlZWRiYWNrXCI+XG4gICAgICAgICAgPG5nLW1pYW0taWNvbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3VzZXItZmVlZGJhY2tfX2ljb24tY3Jvc3NcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgW2ljb25OYW1lXT1cImljb24uQ3Jvc3NcIiBbd2lkdGhdPVwiMzBcIiBbaGVpZ2h0XT1cIjMwXCIgcHJpbWFyeUNvbG9yPVwibm9uZVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50X191c2VyLWZlZWRiYWNrX190aXRsZVwiPlxuICAgICAgICAgICAgICA8c3Bhbj5Qb3VyIG1pZXV4IHZvdXMgY29ubmHDrnRyZTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdXNlci1mZWVkYmFja19fcXVlc3Rpb25cIj5cbiAgICAgICAgICAgICAgPHNwYW4+QXZlei12b3VzIGwnaGFiaXR1ZGUgZGUgY3Vpc2luZXIgcG91ciBvdSBhdmVjIGRlcyBlbmZhbnRzID88L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdXNlci1mZWVkYmFja19fYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tZmVlZGJhY2stYnV0dG9uXCIgKGNsaWNrKT1cInNldFVzZXJQcmVmZXJlbmNlKCdoYXNfY2hpbGRyZW4nLCBmYWxzZSlcIj5Ob248L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtLWZlZWRiYWNrLWJ1dHRvblwiIChjbGljayk9XCJzZXRVc2VyUHJlZmVyZW5jZSgnaGFzX2NoaWxkcmVuJywgdHJ1ZSlcIj5PdWk8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgIDwhLS0gQ2F0YWxvZyBwYWdlIGNvbnRlbnQgd2hlbiBmaWx0ZXJzIGFwcGxpZWQgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWRpc3BsYXlIb21lUGFnZSgpIGVsc2UgY2F0ZWdvcmllc0NvbXBvbmVudHNcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2xpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3RpdGxlXCI+XG4gICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5BcnJvd0Rvd25cIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiAoY2xpY2spPVwicmV0dXJuVG9Ib21lUGFnZSgpXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgYXNzZXNzVGl0bGUoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19saXN0X19jcmVhdGVfX19idXR0b25cIiAqbmdJZj1cImNhbkRpc3BsYXlDcmVhdGlvbkJ1dHRvbigpIHwgYXN5bmNcIiBcbiAgICAgICAgKGNsaWNrKT1cIm1hbmFnZVJlY2lwZUFjdGlvbih7YWN0aW9uOiAnQ1JFQVRFJywgcmVjaXBlOiBudWxsfSlcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLlBsdXNcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXByaW1hcnkpXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPHNwYW4+QWpvdXRlciB1bmUgaWTDqWUgcmVwYXM8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy1taWFtLWNhdGFsb2ctbGlzdFxuICAgICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlKClcIlxuICAgICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgICAgW3JlY2lwZUFkZGVkVG9hc3RUZXh0XT1cInJlY2lwZUFkZGVkVG9hc3RUZXh0XCJcbiAgICAgICAgICAoZmlsdGVyUmVtb3ZlZCk9XCJyZW1vdmVGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKHJlY2lwZUFjdGlvblRyaWdnZXJlZCk9XCJtYW5hZ2VSZWNpcGVBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICA8L25nLW1pYW0tY2F0YWxvZy1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctbWlhbS1yZWNpcGUtZmlsdGVyc1xuICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgICBbaXNGaWx0ZXJDb2xsYXBzZWRdPVwiaXNGaWx0ZXJDb2xsYXBzZWRcIlxuICAgICAgW2ZpbHRlclRvUmVtb3ZlXT1cImZpbHRlclRvUmVtb3ZlXCJcbiAgICAgIFtwb3NpdGlvbl09XCJmaWx0ZXJzUG9zaXRpb25cIlxuICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAoZmlsdGVyQ2hhbmdlZCk9XCJ1cGRhdGVGaWx0ZXJzKCRldmVudClcIlxuICAgICAgKGZpbHRlckNvbGxhcHNlZCk9XCJvbkZpbHRlckNvbGxhcHNlZCgpXCJcbiAgICAgIChwcmVmZXJlbmNlc0NoYW5nZWQpPVwicmVsb2FkUGFja2FnZXMoKVwiXG4gICAgPlxuICAgIDwvbmctbWlhbS1yZWNpcGUtZmlsdGVycz5cbiAgICA8IS0tIENhdGFsb2cgaG9tZSBwYWdlIGNvbnRlbnQgLS0+XG4gICAgPG5nLXRlbXBsYXRlICNjYXRlZ29yaWVzQ29tcG9uZW50cz5cbiAgICAgIDxkaXYgKm5nSWY9XCJjYXRlZ29yaWVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NhdGVnb3JpZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllcyBsZXQgaSA9IGluZGV4XCIgPlxuICAgICAgICA8bmctbWlhbS1jYXRhbG9nLWNhdGVnb3J5IFxuICAgICAgICAgIFt0aXRsZV09XCJjYXRlZ29yeS50aXRsZVwiXG4gICAgICAgICAgW3N1YnRpdGxlXT1cImNhdGVnb3J5LnN1YnRpdGxlXCJcbiAgICAgICAgICBbZmlsdGVyc109XCJjYXRlZ29yeS5maWx0ZXJzXCJcbiAgICAgICAgICBbZGlzcGxheVByaWNpbmddPVwiZGlzcGxheVByaWNpbmdcIlxuICAgICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlKClcIlxuICAgICAgICAgIFtyZWNpcGVBZGRlZFRvYXN0VGV4dF09XCJyZWNpcGVBZGRlZFRvYXN0VGV4dFwiXG4gICAgICAgICAgKGRpc3BsYXlMaXN0KT1cImNhdGVnb3J5VGl0bGVDbGlja2VkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctbWlhbS1jYXRhbG9nLWNhdGVnb3J5PlxuICAgICAgICA8ZGl2ICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2V4cGxhaW5fYmFubmVyXCIgKm5nSWY9XCJpID09PSAwXCI+XG4gICAgICAgICAgPG5nLW1pYW0tZXhwbGFpbi1iYW5uZXI+PC9uZy1taWFtLWV4cGxhaW4tYmFubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRpb25QYWdlPlxuICA8bmctbWlhbS1yZWNpcGUtc3RlcHBlclxuICAgIFtyZWNpcGVdPVwicmVjaXBlVG9VcGRhdGVcIlxuICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlKClcIlxuICAgIChyZWNpcGVDaGFuZ2UpPVwibGVhdmVDcmVhdGVQYWdlKClcIlxuICAgIChjYW5jZWxlZCk9XCJsZWF2ZUNyZWF0ZVBhZ2UoKVwiPlxuICA8L25nLW1pYW0tcmVjaXBlLXN0ZXBwZXI+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
484
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFhLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQzlILGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGdC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LEtBQUssb0JBQW9CO29CQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDMUIsTUFBTTthQUNUO1NBQ0Y7SUFDSCxDQUFDOzs0RkEzVVUsc0JBQXNCOzJEQUF0QixzQkFBc0I7dUJBQ3RCLHNCQUFzQjs7dUJBRW5CLHdCQUF3Qjs7Ozs7OztRQ2xDeEMsNEJBQTZEO1FBQzNELHdFQUNFO1FBaUdKLHdIQUNFOzs7UUFuR0ssZUFBeUM7UUFBekMsMENBQXlDLGlCQUFBOztrREQ4Qm5DLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs0WUFFb0MsYUFBYTtrQkFBL0MsU0FBUzttQkFBQyxzQkFBc0I7WUFDRSxTQUFTO2tCQUEzQyxTQUFTO21CQUFDLHNCQUFzQjtZQUNRLGNBQWM7a0JBQXRELFlBQVk7bUJBQUMsd0JBQXdCO1lBRTdCLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxlQUFlO2tCQUF2QixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4uL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZWNpcGVUeXBlU2VydmljZSwgU3BvbnNvclNlcnZpY2UsIFBhY2thZ2VTZXJ2aWNlLCBTdXBwbGllcnNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UsIEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgQmFza2V0c1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENhdGFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWhlYWRlci9jYXRhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVkaWFNYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBQYWNrYWdlIH0gZnJvbSAnLi4vLi4vX21vZGVscy9wYWNrYWdlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBDYXRlZ29yeSB7XG4gIGtleTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nO1xuICBmaWx0ZXJzOiB7IGFkZGl0aW9uYWxGaWx0ZXJzOiB7IGZpbHRlcnM6IHsgcGFja2FnZXM6IHN0cmluZyB9LCB0aXRsZTogc3RyaW5nIH19O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2F0YWxvZ0NvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKENhdGFsb2dIZWFkZXJDb21wb25lbnQpIGNhdGFsb2dIZWFkZXI6IENhdGFsb2dIZWFkZXJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ21pYW1DYXRhbG9nVG9wQW5jaG9yJykgdG9wQW5jaG9yOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkcmVuKENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudCkgIGNhdGVnb3JpZXNDb21wITogUXVlcnlMaXN0PENhdGFsb2dDYXRlZ29yeUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgaGVhZGVyUGljdHVyZVVybCA9ICdodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ltYWdlcy9kZWZhdWx0LWNhdGFsb2ctcGljdHVyZS5wbmcnO1xuICBASW5wdXQoKSBob21lVGl0bGVQaWN0dXJlVXJsID0gJ2h0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL2RlZmF1bHQtY2F0YWxvZy10aXRsZS5wbmcnO1xuICBASW5wdXQoKSBpbml0aWFsUm91dGUgPSAnJztcbiAgQElucHV0KCkgZmlsdGVyc1Bvc2l0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBob21lTGFiZWwgPSAnSWTDqWVzIHJlcGFzJztcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVjaXBlQWRkZWRUb2FzdFRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tRmlsdGVyczogeyBkaWZmaWN1bHR5PzogUmVjaXBlRmlsdGVyW10sIGNvc3Q/OiBSZWNpcGVGaWx0ZXJbXSwgdGltZT86IFJlY2lwZUZpbHRlcltdIH07XG5cbiAgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgaXNGaWx0ZXJDb2xsYXBzZWQgPSB0cnVlO1xuICBpY29uID0gSWNvbjtcbiAgY2F0ZWdvcmllczogQ2F0ZWdvcnlbXSA9IFtdO1xuICBjcmVhdGluZ1JlY2lwZSA9IGZhbHNlO1xuICByZWNpcGVUb1VwZGF0ZTogUmVjaXBlO1xuICBmaWx0ZXJUb1JlbW92ZTogc3RyaW5nO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBzaG93VXNlckZlZWRiYWNrID0gZmFsc2U7XG4gIHJlY2lwZUNvdW50ID0gMDtcbiAgdG90YWxQcmljZSA9IDA7XG4gIGlzTXlNZWFsQ2xvc2UgPSB0cnVlO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBzdXBwbGllcklkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVUeXBlc1NlcnZpY2U6IFJlY2lwZVR5cGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzcG9uc29yU2VydmljZTogU3BvbnNvclNlcnZpY2UsXG4gICAgcHVibGljIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwdWJsaWMgcGFja2FnZVNlcnZpY2U6IFBhY2thZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgdXNlcnNTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwdWJsaWMgZ3JvY2VyaWVzTGlzdFNlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXG4gICAgICB0aGlzLnN1cHBsaWVyU2VydmljZS5zdXBwbGllciQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN1cHAgPT4gc3VwcCA9PT0gdW5kZWZpbmVkIHx8IHN1cHAgPT0gbnVsbCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcChzdXBwbGllciA9PiB7XG4gICAgICAgICAgdGhpcy5zdXBwbGllcklkID0gc3VwcGxpZXIuaWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubG9hZFBhY2thZ2VzKCk7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgpLFxuICAgICAgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQucGlwZShza2lwV2hpbGUoYnMgPT4gIWJzKSkuc3Vic2NyaWJlKGJzID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGVDb3VudCA9IGJzLnJlY2lwZXNDb3VudDtcbiAgICAgICAgdGhpcy50b3RhbFByaWNlID0gYnMudG90YWxQcmljZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgICApLFxuICAgICAgdGhpcy5hc3Nlc3NTaG93VXNlckZlZWRiYWNrKClcbiAgICBdO1xuXG4gICAgdGhpcy5zZXREaXJlY3RBY2Nlc3ModGhpcy5pbml0aWFsUm91dGUpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMub3BlbkZlYXR1cmVzRnJvbVVSTCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7IHJldHVybiAnbWlhbS9yZWNpcGVzJzsgfVxuXG4gIG9wZW5GZWF0dXJlc0Zyb21VUkwoKSB7XG4gICAgY29uc3QgcGFyYW1zQXJyYXkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGlmIChwYXJhbXNBcnJheS5nZXQoJ29wZW5CYXNrZXQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnRvZ2dsZU15TWVhbERyYXdlcigpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zQXJyYXkuZ2V0KCdwZXJzb25hbENhdGFsb2cnKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnNldFBlcnNvbmFsRmlsdGVyKCk7XG4gICAgfVxuICB9XG5cbiAgZGlzcGxheUhvbWVQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuaXNFbXB0eSgpO1xuICB9XG5cbiAgLy8gVXNlZCBvbiBsb2FkIHRvIGJ1aWxkIHRoZSBmaWx0ZXJzIGF0dHJpYnV0ZSwgYW5kIG9uIGNsaWNrIG9uIHRoZSBsaW5rIHRvIHJlc2V0IHRoZSBmaWx0ZXJzXG4gIGluaXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IG5ldyBSZWNpcGVGaWx0ZXJzKFxuICAgICAge1xuICAgICAgICBkaWZmaWN1bHR5OiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpZmZpY3VsdHlMZXZlbHMubWFwKGYgPT4ge1xuICAgICAgICAgIHJldHVybiB7IG5hbWU6IGYudmFsdWUudG9TdHJpbmcoKSwgdGV4dDogZi5sYWJlbCwgdmFsdWU6IGZhbHNlIH07XG4gICAgICAgIH0pLFxuICAgICAgICBjb3N0OiBbXG4gICAgICAgICAge25hbWU6ICcwLTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb2lucyBkZSA14oKsJ30sXG4gICAgICAgICAge25hbWU6ICc1LTEwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRW50cmUgNeKCrCBldCAxMOKCrCd9LFxuICAgICAgICAgIHtuYW1lOiAnMTAtMTAwMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ1BsdXMgZGUgMTDigqwnfVxuICAgICAgICAgIC8vIHdlIHNldCBhIGxpbWl0IGF0IDEwMDDigqwgbWF4LCBpZiBhIHJlY2lwZSBjb3N0IG1vcmUgc2hvdWxkIGJlIG5vbiBzZW5zZSBhbnl3YXlcbiAgICAgICAgXSxcbiAgICAgICAgdGltZTogW1xuICAgICAgICAgIHtuYW1lOiAnMTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb2lucyBkZSAxNSBtaW4nfSxcbiAgICAgICAgICB7bmFtZTogJzMwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW9pbnMgZGUgMzAgbWluJ30sXG4gICAgICAgICAge25hbWU6ICc2MCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ01vaW5zIGRlIDEgaCd9LFxuICAgICAgICAgIHtuYW1lOiAnMTIwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW9pbnMgZGUgMiBoJ31cbiAgICAgICAgXVxuICAgICAgfVxuICAgICk7XG4gICAgaWYgKHRoaXMuY3VzdG9tRmlsdGVycykge1xuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnMsIHRoaXMuY3VzdG9tRmlsdGVycyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNhdGFsb2dIZWFkZXIpIHsgdGhpcy5jYXRhbG9nSGVhZGVyLnJlc2V0U2VhcmNoU3RyaW5nKCk7IH1cbiAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gJyc7XG4gICAgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzID0gbnVsbDtcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogUmVjaXBlRmlsdGVycykge1xuICAgIGNvbnNvbGUubG9nKCd1cGRhdGVGaWx0ZXJzJylcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzLmNvcHkoKTsgLy8gbmVjZXNzYXJ5IHRvIHRyaWdnZXIgY2hpbGQgY29tcG9uZW50IGNoYW5nZVxuICAgIHRoaXMuZmlsdGVyVG9SZW1vdmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZykge1xuICAgIGlmIChzZWFyY2ggIT09IHRoaXMuZmlsdGVycy5zZWFyY2gpIHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QuYXNzaWduKHRoaXMuZmlsdGVycywgeyBzZWFyY2ggfSk7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcnMoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgY2F0ZWdvcnlUaXRsZUNsaWNrZWQoZXZlbnQ6IHt0aXRsZTogc3RyaW5nLCBmaWx0ZXJzOiBhbnl9KSB7XG4gICAgY29uc3QgZmlsdGVycyA9IE9iamVjdC5hc3NpZ24odGhpcy5maWx0ZXJzLCB7XG4gICAgICBhZGRpdGlvbmFsRmlsdGVyczogeyBmaWx0ZXJzOiBldmVudC5maWx0ZXJzLCB0aXRsZTogZXZlbnQudGl0bGUgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHNldEZhdm9yaXRlc0ZpbHRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnMsIHtcbiAgICAgIGFkZGl0aW9uYWxGaWx0ZXJzOiB7XG4gICAgICAgIGZpbHRlcnM6IHsgbGlrZWQ6IHRydWUgfSxcbiAgICAgICAgdGl0bGU6ICdNZXMgaWTDqWVzIHJlcGFzJ1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHNldFBlcnNvbmFsRmlsdGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlcnMgPSBPYmplY3QuYXNzaWduKHRoaXMuZmlsdGVycywge1xuICAgICAgYWRkaXRpb25hbEZpbHRlcnM6IHtcbiAgICAgICAgZmlsdGVyczogeyBwZXJzb25hbDogdHJ1ZSwgYWN0aXZlOiAndHJ1ZSxmYWxzZScgfSxcbiAgICAgICAgdGl0bGU6ICdNb24gY2FybmV0IHBlcnNvJ1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJUZXh0OiBzdHJpbmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgZnVuY3Rpb24gaXMgYnJva2VuLCB1c2UgaGFzIGJlZW4gY29tbWVudGF0ZWQsIHJlcGFpciBpdCBpZiB5b3Ugd2FudCB0byB1c2UgaXQgYWdhaW4nKTtcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gZmlsdGVyVGV4dDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZXR1cm5Ub1RvcCgpIHtcbiAgICBpZiAodGhpcy50b3BBbmNob3IpIHtcbiAgICAgIHRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm5Ub0hvbWVQYWdlKCkge1xuICAgIHRoaXMucGFnZXZpZXcoKTtcbiAgICAvLyBlaXRoZXIgeW91IGhhdmUgZmlsdGVycyBlaXRoZXIgeW91IGFyZSBvbiBob21lIHBhZ2UuIFRoYXQgbWVhbiBpZiB5b3UgZ28gb24gaG9tZSBwYWdlIHlvdSBkb24ndCB3YW50IEFOWSBmaWx0ZXJcbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25GaWx0ZXJDb2xsYXBzZWQoKSB7XG4gICAgdGhpcy5pc0ZpbHRlckNvbGxhcHNlZCA9ICF0aGlzLmlzRmlsdGVyQ29sbGFwc2VkO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB0byB0cmlnZ2VyIGFmdGVyIHRoZSBkZXRlY3RDaGFuZ2VzIGJlY2F1c2Ugd2UgbmVlZCB0byBhbHJlYWQgaGF2ZSB0aGUgZGlzcGxheSBjaGFuZ2UgdG8gdXBkYXRlIGNhcmRzXG4gICAgdGhpcy5jYXRlZ29yaWVzQ29tcC5mb3JFYWNoKCBjYXQgPT4ge1xuICAgICAgY2F0LnVwZGF0ZVdpZHRoKCk7XG4gICAgfSk7XG4gIH1cblxuICBnb1RvQ3JlYXRlUGFnZShyZWNpcGUgPSBudWxsKSB7XG4gICAgdGhpcy5jcmVhdGluZ1JlY2lwZSA9IHRydWU7XG4gICAgdGhpcy5yZWNpcGVUb1VwZGF0ZSA9IHJlY2lwZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICB9XG5cbiAgbGVhdmVDcmVhdGVQYWdlKCkge1xuICAgIHRoaXMuY3JlYXRpbmdSZWNpcGUgPSBmYWxzZTtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbWFuYWdlUmVjaXBlQWN0aW9uKGV2ZW50OiB7YWN0aW9uOiBzdHJpbmcsIHJlY2lwZTogUmVjaXBlfSkge1xuICAgIHN3aXRjaCAoZXZlbnQuYWN0aW9uKSB7XG4gICAgICBjYXNlICdDUkVBVEUnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0VESVQnOiB7XG4gICAgICAgIHRoaXMuZ29Ub0NyZWF0ZVBhZ2UoZXZlbnQucmVjaXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ0RFTEVURSc6IHtcbiAgICAgICAgaWYgKGV2ZW50LnJlY2lwZT8uaWQgJiYgZXZlbnQucmVjaXBlLnJlbGF0aW9uc2hpcHNbJ3JlY2lwZS1wcm92aWRlciddPy5kYXRhLmlkID09PSAncGVyc29uYWwnKSB7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRlbGV0ZShldmVudC5yZWNpcGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wcm9wcygpLCB7IHJlY2lwZUlkOiBldmVudC5yZWNpcGUuaWQgfSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VuZEV2ZW50KHRoaXMuYW5hbHl0aWNzU2VydmljZS5FVkVOVF9QRVJTT05BTF9SRUNJUEVfREVMRVRFKTtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbG9hZFBhY2thZ2VzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5sb2FkUGFja2FnZXMoKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBhc3Nlc3NUaXRsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlIb21lUGFnZSgpKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyAmJiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMudGl0bGUgIT09ICcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgcmV0dXJuIGBWb3RyZSByZWNoZXJjaGUgOiBcIiR7dGhpcy5maWx0ZXJzLnNlYXJjaH1cImA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnVm90cmUgc8OpbGVjdGlvbic7XG4gICAgfVxuICB9XG5cbiAgY2FuRGlzcGxheUNyZWF0aW9uQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGlzUGVyc29uYWwgPSB0aGlzLmZpbHRlcnM/LmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzWydwZXJzb25hbCddID09PSB0cnVlO1xuICAgIHJldHVybiB0aGlzLnVzZXJzU2VydmljZS5pc0xvZ2dlZCQuYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoaXNMb2dnZWQgPT4gaXNMb2dnZWQgJiYgaXNQZXJzb25hbCkpO1xuICB9XG5cbiAgYXNzZXNzSXNGYXZvcml0ZXNQYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlID09PSAnTWVzIGlkw6llcyByZXBhcyc7XG4gIH1cblxuICB0b2dnbGVNeU1lYWxEcmF3ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGVzU2VydmljZS5vcGVuQmFza2V0KHRoaXMuZXZlbnRUcmFjZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFBhY2thZ2VzKCk6IE9ic2VydmFibGU8RG9jdW1lbnRDb2xsZWN0aW9uPFBhY2thZ2U+PiB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZVNlcnZpY2UuY2F0ZWdvcmllc19mb3IoW3RoaXMuc3VwcGxpZXJJZF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocGFja2FnZXMgPT4gcGFja2FnZXMuaXNfbG9hZGluZyksXG4gICAgICB0YXAoKHBhY2thZ2VzOiBEb2N1bWVudENvbGxlY3Rpb248UGFja2FnZT4pID0+IHtcbiAgICAgICAgdGhpcy5pbml0Q2F0ZWdvcmllcyhwYWNrYWdlcyk7XG4gICAgICAgIHRoaXMuc2VsZWN0Q2F0ZWdvcnlGcm9tVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENhdGVnb3JpZXMocGFja2FnZXM6IERvY3VtZW50Q29sbGVjdGlvbjxQYWNrYWdlPik6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcmllcyA9IHBhY2thZ2VzLmRhdGEubWFwKGNhdGVnb3J5UGFja2FnZSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGNhdGVnb3J5UGFja2FnZS50aXRsZS50cmltKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtekEtWjAtOSAtXS8sICcnKS5yZXBsYWNlKC9cXHMvZywgJy0nKSxcbiAgICAgICAgdGl0bGU6IGNhdGVnb3J5UGFja2FnZS50aXRsZSxcbiAgICAgICAgc3VidGl0bGU6IGNhdGVnb3J5UGFja2FnZS5zdWJ0aXRsZSxcbiAgICAgICAgZmlsdGVyczogeyBhZGRpdGlvbmFsRmlsdGVyczogeyBmaWx0ZXJzOiB7IHBhY2thZ2VzOiBjYXRlZ29yeVBhY2thZ2UuaWQgfSwgdGl0bGU6ICcnIH0gfVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0Q2F0ZWdvcnlGcm9tVXJsKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtc0FycmF5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBpZiAocGFyYW1zQXJyYXkuZ2V0KCdjYXRhbG9nQ2F0ZWdvcnknKSA9PT0gJ2Zhdm9yaXRlcycpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZhdm9yaXRlc0ZpbHRlcigpO1xuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZENhdGVnb3J5ID0gdGhpcy5jYXRlZ29yaWVzLmZpbmQoKGNhdCkgPT4gY2F0LmtleSA9PT0gcGFyYW1zQXJyYXkuZ2V0KCdjYXRhbG9nQ2F0ZWdvcnknKSk7XG4gICAgaWYgKHNlbGVjdGVkQ2F0ZWdvcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5VGl0bGVDbGlja2VkKHsgdGl0bGU6IHNlbGVjdGVkQ2F0ZWdvcnkudGl0bGUsIGZpbHRlcnM6IHNlbGVjdGVkQ2F0ZWdvcnkuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNob3cgZmVlZGJhY2sgYmxvY2sgb25seSBpZiB1c2VyIGlzIGxvZ2dlZCBhbmQgdGhlIGNoaWxkcmVuIHByZWZlcmVuY2UgaXMgdW5rbm93blxuICBwcml2YXRlIGFzc2Vzc1Nob3dVc2VyRmVlZGJhY2soKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5pc0xvZ2dlZCQsXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5wcmVmZXJlbmNlRGVmaW5lZCgnaGFzX2NoaWxkcmVuJyksXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5wcmVmZXJlbmNlc0FjdGl2YXRlZCRcbiAgICBdKS5zdWJzY3JpYmUocmVzdWx0cyA9PiB7XG4gICAgICBjb25zdCBsb2dnZWQgPSByZXN1bHRzWzBdO1xuICAgICAgY29uc3QgcHJlZmVyZW5jZURlZmluZWQgPSByZXN1bHRzWzFdO1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXNBY3RpdmF0ZWQgPSByZXN1bHRzWzJdO1xuICAgICAgdGhpcy5zaG93VXNlckZlZWRiYWNrID0gbG9nZ2VkICYmICFwcmVmZXJlbmNlRGVmaW5lZCAmJiBwcmVmZXJlbmNlc0FjdGl2YXRlZDtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlyZWN0QWNjZXNzKHJvdXRlOiBzdHJpbmcpe1xuICAgIGlmICh0aGlzLmluaXRpYWxSb3V0ZSAhPT0gJycpe1xuICAgICAgc3dpdGNoICh0aGlzLmluaXRpYWxSb3V0ZSl7XG4gICAgICAgIGNhc2UgJ21lcy1yZXBhcyc6XG4gICAgICAgICAgdGhpcy50b2dnbGVNeU1lYWxEcmF3ZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbWVzLXJlY2V0dGVzLXBlcnNvbm5lbGxlcyc6XG4gICAgICAgICAgdGhpcy5zZXRQZXJzb25hbEZpbHRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZWNldHRlcy1mYXZvcml0ZXMnOlxuICAgICAgICAgIHRoaXMuc2V0RmF2b3JpdGVzRmlsdGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVW51c2VkIGZvciBub3cuLi5cbiAgLy8gc2V0VXNlclByZWZlcmVuY2UocHJlZiwgc3RhdGUpIHtcbiAgLy8gICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgLy8gICAgIHRoaXMudXNlcnNTZXJ2aWNlLnNldFByZWZlcmVuY2UocHJlZiwgc3RhdGUpLnBpcGUoXG4gIC8vICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWRQYWNrYWdlcygpKVxuICAvLyAgICAgKS5zdWJzY3JpYmUoKVxuICAvLyAgICk7XG4gIC8vICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gIC8vIH1cblxuICAvLyBwcml2YXRlIGNsb3NlTW9kYWwoKSB7XG4gIC8vICAgdGhpcy5zaG93VXNlckZlZWRiYWNrID0gIXRoaXMuc2hvd1VzZXJGZWVkYmFjaztcbiAgLy8gICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIC8vIH1cbn1cbiIsIjxkaXYgI21pYW1DYXRhbG9nVG9wQW5jaG9yIGNsYXNzPVwibWlhbS1jYXRhbG9nLWFuY2hvclwiPjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWNyZWF0aW5nUmVjaXBlIGVsc2UgY3JlYXRpb25QYWdlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRcIj5cbiAgICAgIDxuZy1taWFtLWNhdGFsb2ctaGVhZGVyIFxuICAgICAgICBbdGl0bGVdPVwiYXNzZXNzVGl0bGUoKVwiXG4gICAgICAgIFtob21lTGFiZWxdPVwiaG9tZUxhYmVsXCJcbiAgICAgICAgW3BpY3R1cmVVcmxdPVwiZGlzcGxheUhvbWVQYWdlKCkgPyBoZWFkZXJQaWN0dXJlVXJsIDogbnVsbFwiXG4gICAgICAgIFt0aXRsZVBpY3R1cmVVcmxdPVwiZGlzcGxheUhvbWVQYWdlKCkgPyBob21lVGl0bGVQaWN0dXJlVXJsIDogbnVsbFwiXG4gICAgICAgIFtmYXZvcml0ZXNCdXR0b25IaWRkZW5dPVwiYXNzZXNzSXNGYXZvcml0ZXNQYWdlKClcIlxuICAgICAgICBbcGVyc29uYWxCdXR0b25IaWRkZW5dPVwiY29udGV4dFNlcnZpY2UuZGlzYWJsZVBlcnNvbmFsUmVjaXBlJCB8IGFzeW5jXCJcbiAgICAgICAgW2ZpbHRlckJhZGdlQ291bnRdPVwiZmlsdGVycy5zZWxlY3RhYmxlRmlsdGVyc0NvdW50KClcIlxuICAgICAgICAocmV0dXJuQnV0dG9uUHJlc3NlZCk9XCJyZXR1cm5Ub0hvbWVQYWdlKClcIlxuICAgICAgICAoZmlsdGVyQnV0dG9uUHJlc3NlZCk9XCJvbkZpbHRlckNvbGxhcHNlZCgpXCJcbiAgICAgICAgKHNlYXJjaFN0cmluZ0NoYW5nZWQpPVwidXBkYXRlU2VhcmNoKCRldmVudClcIlxuICAgICAgICAocGVyc29uYWxCdXR0b25QcmVzc2VkKT1cInNldFBlcnNvbmFsRmlsdGVyKClcIlxuICAgICAgICAoZmF2b3JpdGVzQnV0dG9uUHJlc3NlZCk9XCJzZXRGYXZvcml0ZXNGaWx0ZXIoKVwiPlxuICAgICAgPC9uZy1taWFtLWNhdGFsb2ctaGVhZGVyPlxuICAgICAgPGRpdiAqbmdJZj1cInJlY2lwZUNvdW50ID4gMFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fbXlNZWFsX19idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlTXlNZWFsRHJhd2VyKClcIiA+XG4gICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uQ2FydFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci13aGl0ZSknIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbXlNZWFsX19maXJzdF9faWNvblwiID48L25nLW1pYW0taWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19teU1lYWxfX2J1dHRvbl9fdGV4dFwiPnt7cmVjaXBlQ291bnR9fSBcbiAgICAgICAgICByZXBhc1xuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxuZy1taWFtLWljb24gIFtpY29uTmFtZV09XCJpY29uLkNoZXZyb25Eb3duXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXdoaXRlKScgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19teU1lYWxfX3NlY29uZF9faWNvblwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVXNlciBmZWVkYmFjayBiYW5uZXIgKHVudXNlZCBmb3Igbm93IC8gbWF5YmUgcmVhY3RpdmF0ZWQgbGF0ZXIpIC0tPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdXNlci1mZWVkYmFja19fbW9kYWxcIiAqbmdJZj1cInNob3dVc2VyRmVlZGJhY2tcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3VzZXItZmVlZGJhY2tcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdXNlci1mZWVkYmFja19faWNvbi1jcm9zc1wiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIiBbaWNvbk5hbWVdPVwiaWNvbi5Dcm9zc1wiIFt3aWR0aF09XCIzMFwiIFtoZWlnaHRdPVwiMzBcIiBwcmltYXJ5Q29sb3I9XCJub25lXCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2NvbnRlbnRfX3VzZXItZmVlZGJhY2tfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzcGFuPlBvdXIgbWlldXggdm91cyBjb25uYcOudHJlPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50X191c2VyLWZlZWRiYWNrX19xdWVzdGlvblwiPlxuICAgICAgICAgICAgICA8c3Bhbj5BdmV6LXZvdXMgbCdoYWJpdHVkZSBkZSBjdWlzaW5lciBwb3VyIG91IGF2ZWMgZGVzIGVuZmFudHMgPzwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50X191c2VyLWZlZWRiYWNrX19hY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibS1mZWVkYmFjay1idXR0b25cIiAoY2xpY2spPVwic2V0VXNlclByZWZlcmVuY2UoJ2hhc19jaGlsZHJlbicsIGZhbHNlKVwiPk5vbjwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm0tZmVlZGJhY2stYnV0dG9uXCIgKGNsaWNrKT1cInNldFVzZXJQcmVmZXJlbmNlKCdoYXNfY2hpbGRyZW4nLCB0cnVlKVwiPk91aTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgPCEtLSBDYXRhbG9nIHBhZ2UgY29udGVudCB3aGVuIGZpbHRlcnMgYXBwbGllZCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhZGlzcGxheUhvbWVQYWdlKCkgZWxzZSBjYXRlZ29yaWVzQ29tcG9uZW50c1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudF9fdGl0bGVcIj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIFtpY29uTmFtZV09XCJpY29uLkFycm93RG93blwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIChjbGljayk9XCJyZXR1cm5Ub0hvbWVQYWdlKClcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBhc3Nlc3NUaXRsZSgpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2xpc3RfX2NyZWF0ZV9fX2J1dHRvblwiICpuZ0lmPVwiY2FuRGlzcGxheUNyZWF0aW9uQnV0dG9uKCkgfCBhc3luY1wiIFxuICAgICAgICAoY2xpY2spPVwibWFuYWdlUmVjaXBlQWN0aW9uKHthY3Rpb246ICdDUkVBVEUnLCByZWNpcGU6IG51bGx9KVwiPlxuICAgICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uUGx1c1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8c3Bhbj5Bam91dGVyIHVuZSBpZMOpZSByZXBhczwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLW1pYW0tY2F0YWxvZy1saXN0XG4gICAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAgICAgW2Rpc3BsYXlQcmljaW5nXT1cImRpc3BsYXlQcmljaW5nXCJcbiAgICAgICAgICBbcmVjaXBlQWRkZWRUb2FzdFRleHRdPVwicmVjaXBlQWRkZWRUb2FzdFRleHRcIlxuICAgICAgICAgIChmaWx0ZXJSZW1vdmVkKT1cInJlbW92ZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAocmVjaXBlQWN0aW9uVHJpZ2dlcmVkKT1cIm1hbmFnZVJlY2lwZUFjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvbmctbWlhbS1jYXRhbG9nLWxpc3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1taWFtLXJlY2lwZS1maWx0ZXJzXG4gICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICAgIFtpc0ZpbHRlckNvbGxhcHNlZF09XCJpc0ZpbHRlckNvbGxhcHNlZFwiXG4gICAgICBbZmlsdGVyVG9SZW1vdmVdPVwiZmlsdGVyVG9SZW1vdmVcIlxuICAgICAgW3Bvc2l0aW9uXT1cImZpbHRlcnNQb3NpdGlvblwiXG4gICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZSgpXCJcbiAgICAgIChmaWx0ZXJDaGFuZ2VkKT1cInVwZGF0ZUZpbHRlcnMoJGV2ZW50KVwiXG4gICAgICAoZmlsdGVyQ29sbGFwc2VkKT1cIm9uRmlsdGVyQ29sbGFwc2VkKClcIlxuICAgICAgKHByZWZlcmVuY2VzQ2hhbmdlZCk9XCJyZWxvYWRQYWNrYWdlcygpXCJcbiAgICA+XG4gICAgPC9uZy1taWFtLXJlY2lwZS1maWx0ZXJzPlxuICAgIDwhLS0gQ2F0YWxvZyBob21lIHBhZ2UgY29udGVudCAtLT5cbiAgICA8bmctdGVtcGxhdGUgI2NhdGVnb3JpZXNDb21wb25lbnRzPlxuICAgICAgPGRpdiAqbmdJZj1cImNhdGVnb3JpZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY2F0ZWdvcmllc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzIGxldCBpID0gaW5kZXhcIiA+XG4gICAgICAgIDxuZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnkgXG4gICAgICAgICAgW3RpdGxlXT1cImNhdGVnb3J5LnRpdGxlXCJcbiAgICAgICAgICBbc3VidGl0bGVdPVwiY2F0ZWdvcnkuc3VidGl0bGVcIlxuICAgICAgICAgIFtmaWx0ZXJzXT1cImNhdGVnb3J5LmZpbHRlcnNcIlxuICAgICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgICAgICAgW3JlY2lwZUFkZGVkVG9hc3RUZXh0XT1cInJlY2lwZUFkZGVkVG9hc3RUZXh0XCJcbiAgICAgICAgICAoZGlzcGxheUxpc3QpPVwiY2F0ZWdvcnlUaXRsZUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnk+XG4gICAgICAgIDxkaXYgIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fZXhwbGFpbl9iYW5uZXJcIiAqbmdJZj1cImkgPT09IDBcIj5cbiAgICAgICAgICA8bmctbWlhbS1leHBsYWluLWJhbm5lcj48L25nLW1pYW0tZXhwbGFpbi1iYW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNjcmVhdGlvblBhZ2U+XG4gIDxuZy1taWFtLXJlY2lwZS1zdGVwcGVyXG4gICAgW3JlY2lwZV09XCJyZWNpcGVUb1VwZGF0ZVwiXG4gICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2UoKVwiXG4gICAgKHJlY2lwZUNoYW5nZSk9XCJsZWF2ZUNyZWF0ZVBhZ2UoKVwiXG4gICAgKGNhbmNlbGVkKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCI+XG4gIDwvbmctbWlhbS1yZWNpcGUtc3RlcHBlcj5cbjwvbmctdGVtcGxhdGU+Il19
|