ng-miam 3.7.2 → 3.9.0
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 +2183 -1668
- 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/addon-link/addon-link.component.js +14 -11
- package/esm2015/lib/_components/counter-input/counter-input.component.js +1 -8
- package/esm2015/lib/_components/icon/icon.component.js +605 -406
- package/esm2015/lib/_components/like-button/like-button.component.js +1 -1
- package/esm2015/lib/_components/recipe-filters/recipe-filters.component.js +7 -6
- package/esm2015/lib/_components/recipe-pricing/recipe-pricing.component.js +9 -4
- package/esm2015/lib/_services/baskets.service.js +7 -3
- package/esm2015/lib/_services/context.service.js +14 -1
- package/esm2015/lib/_services/groceries-lists.service.js +6 -3
- package/esm2015/lib/_services/recipes.service.js +7 -3
- package/esm2015/lib/_types/icon.enum.js +5 -2
- package/esm2015/lib/_web-components/basket-preview/basket-preview-line/basket-preview-line.component.js +3 -3
- package/esm2015/lib/_web-components/catalog-recipe-card/catalog-recipe-card.component.js +3 -3
- package/esm2015/lib/_web-components/drawer/drawer.component.js +9 -8
- package/esm2015/lib/_web-components/index.js +3 -4
- package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +57 -52
- package/esm2015/lib/_web-components/list-scan/files-inputs/files-inputs.component.js +142 -0
- package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +47 -53
- package/esm2015/lib/_web-components/list-scan/list-scan.component.js +56 -27
- package/esm2015/lib/_web-components/list-scan/list-scan.module.js +13 -6
- package/esm2015/lib/_web-components/modal/index.js +3 -0
- package/esm2015/lib/_web-components/modal/modal.component.js +18 -15
- package/esm2015/lib/_web-components/modal/modal.module.js +43 -0
- package/esm2015/lib/_web-components/order-button/order-button.component.js +1 -1
- package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +5 -5
- package/esm2015/lib/_web-components/recipe-details/index.js +7 -0
- package/esm2015/lib/_web-components/{recipe-addon → recipe-details/recipe-addon}/recipe-addon.component.js +5 -5
- package/esm2015/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.js +248 -0
- package/esm2015/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.js +108 -0
- package/esm2015/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.js +101 -0
- package/esm2015/lib/_web-components/recipe-details/recipe-details.component.js +179 -619
- package/esm2015/lib/_web-components/recipe-details/recipe-details.module.js +86 -0
- package/esm2015/lib/_web-components/recipe-form/recipe-form.component.js +2 -2
- package/esm2015/lib/_web-components/recipe-helper/recipe-helper.component.js +7 -6
- package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +22 -38
- package/esm2015/lib/_web-components/web-components.module.js +60 -65
- package/fesm2015/ng-miam.js +1892 -1420
- package/fesm2015/ng-miam.js.map +1 -1
- package/lib/_components/counter-input/counter-input.component.d.ts +0 -1
- package/lib/_components/recipe-filters/recipe-filters.component.d.ts +3 -2
- package/lib/_components/recipe-pricing/recipe-pricing.component.d.ts +2 -1
- package/lib/_services/baskets.service.d.ts +1 -0
- package/lib/_services/context.service.d.ts +6 -0
- package/lib/_services/groceries-lists.service.d.ts +1 -1
- package/lib/_types/icon.enum.d.ts +5 -2
- package/lib/_web-components/drawer/drawer.component.d.ts +3 -2
- package/lib/_web-components/index.d.ts +2 -3
- package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +2 -2
- package/lib/_web-components/list-scan/files-inputs/files-inputs.component.d.ts +21 -0
- package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +1 -2
- package/lib/_web-components/list-scan/list-scan.component.d.ts +5 -2
- package/lib/_web-components/list-scan/list-scan.module.d.ts +8 -6
- package/lib/_web-components/modal/index.d.ts +2 -0
- package/lib/_web-components/modal/modal.component.d.ts +3 -1
- package/lib/_web-components/modal/modal.module.d.ts +11 -0
- package/lib/_web-components/recipe-details/index.d.ts +6 -0
- package/lib/_web-components/{recipe-addon → recipe-details/recipe-addon}/recipe-addon.component.d.ts +2 -2
- package/lib/_web-components/recipe-details/recipe-details-infos/recipe-details-infos.component.d.ts +24 -0
- package/lib/_web-components/recipe-details/recipe-details-ingredients/recipe-details-ingredients.component.d.ts +18 -0
- package/lib/_web-components/recipe-details/recipe-details-steps/recipe-details-steps.component.d.ts +16 -0
- package/lib/_web-components/recipe-details/recipe-details.component.d.ts +16 -23
- package/lib/_web-components/recipe-details/recipe-details.module.d.ts +18 -0
- package/lib/_web-components/recipe-helper/recipe-helper.component.d.ts +3 -2
- package/lib/_web-components/recipe-modal/recipe-modal.component.d.ts +0 -3
- package/lib/_web-components/web-components.module.d.ts +38 -39
- package/package.json +1 -1
|
@@ -61,7 +61,7 @@ LikeButtonComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LikeButtonComponent,
|
|
|
61
61
|
i0.ɵɵproperty("primaryColor", ctx.primaryColor)("width", ctx.width)("height", ctx.height)("iconName", ctx.icon.Heart);
|
|
62
62
|
i0.ɵɵadvance(1);
|
|
63
63
|
i0.ɵɵproperty("ngClass", ctx.recipeLike.isPast == false ? "active" : "")("primaryColor", ctx.primaryColor)("width", ctx.width)("height", ctx.height)("iconName", ctx.icon.HeartFull);
|
|
64
|
-
} }, directives: [i2.IconComponent, i3.NgClass], styles: [".miam-like-button{-webkit-tap-highlight-color:transparent;cursor:pointer
|
|
64
|
+
} }, directives: [i2.IconComponent, i3.NgClass], styles: [".miam-like-button{-webkit-tap-highlight-color:transparent;cursor:pointer}.likeButtonIcon.full{position:absolute;top:8px}.likeButtonIcon.full .icon-container{opacity:0;transition:visibility 0s,opacity .5s linear;visibility:hidden}.likeButtonIcon.full.active .icon-container{opacity:1;visibility:visible}"], encapsulation: 2, changeDetection: 0 });
|
|
65
65
|
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LikeButtonComponent, [{
|
|
66
66
|
type: Component,
|
|
67
67
|
args: [{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MediaMatcher } from '@angular/cdk/layout';
|
|
2
2
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Output, EventEmitter, Input } from '@angular/core';
|
|
3
|
-
import { UserService } from '../../_services';
|
|
3
|
+
import { ContextService, UserService } from '../../_services';
|
|
4
4
|
import { Icon } from '../../_types/icon.enum';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/cdk/layout";
|
|
@@ -127,10 +127,11 @@ function RecipeFiltersComponent_div_25_Template(rf, ctx) { if (rf & 1) {
|
|
|
127
127
|
const _c0 = function (a0) { return { "filter-collapsed": a0 }; };
|
|
128
128
|
const _c1 = function (a0, a1) { return { "filter-collapsed": a0, "mobile-fixed": a1 }; };
|
|
129
129
|
export class RecipeFiltersComponent {
|
|
130
|
-
constructor(cdr, mediaMatcher, usersService) {
|
|
130
|
+
constructor(cdr, mediaMatcher, usersService, context) {
|
|
131
131
|
this.cdr = cdr;
|
|
132
132
|
this.mediaMatcher = mediaMatcher;
|
|
133
133
|
this.usersService = usersService;
|
|
134
|
+
this.context = context;
|
|
134
135
|
this.mobileFixed = false;
|
|
135
136
|
this.filterChanged = new EventEmitter();
|
|
136
137
|
this.filterReset = new EventEmitter();
|
|
@@ -213,7 +214,7 @@ export class RecipeFiltersComponent {
|
|
|
213
214
|
}
|
|
214
215
|
toggleFilter() {
|
|
215
216
|
if (this.isMobile) {
|
|
216
|
-
|
|
217
|
+
this.context.globalScrollableElement.style.overflow = this.isFilterCollapsed ? 'hidden' : 'initial';
|
|
217
218
|
}
|
|
218
219
|
this.isFilterCollapsed = !this.isFilterCollapsed;
|
|
219
220
|
this.cdr.detectChanges();
|
|
@@ -233,7 +234,7 @@ export class RecipeFiltersComponent {
|
|
|
233
234
|
}));
|
|
234
235
|
}
|
|
235
236
|
}
|
|
236
|
-
RecipeFiltersComponent.ɵfac = function RecipeFiltersComponent_Factory(t) { return new (t || RecipeFiltersComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MediaMatcher), i0.ɵɵdirectiveInject(i2.UserService)); };
|
|
237
|
+
RecipeFiltersComponent.ɵfac = function RecipeFiltersComponent_Factory(t) { return new (t || RecipeFiltersComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MediaMatcher), i0.ɵɵdirectiveInject(i2.UserService), i0.ɵɵdirectiveInject(i2.ContextService)); };
|
|
237
238
|
RecipeFiltersComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeFiltersComponent, selectors: [["ng-miam-recipe-filters"]], inputs: { filters: "filters", mobileFixed: "mobileFixed", filterToRemove: "filterToRemove" }, outputs: { filterChanged: "filterChanged", filterReset: "filterReset", filterCollapsed: "filterCollapsed", preferencesChanged: "preferencesChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 26, vars: 25, consts: [[1, "miam-recipe-filters", 3, "ngClass"], [1, "miam-recipe-filters__toggle", 3, "ngClass", "click"], [4, "ngIf"], ["primaryColor", "var(--m-color-white)", 3, "iconName", "height", "width", "ngClass"], [1, "miam-recipe-filters__container", 3, "ngClass"], ["class", "miam-recipe-filter__details", 4, "ngIf"], [1, "miam-recipe-filters__title"], ["class", "miam-recipe-filters__choice", 4, "ngFor", "ngForOf"], [1, "miam-recipe-filters__separator"], [1, "miam-recipe-filters__remove"], [3, "click"], ["class", "miam-recipe-filters__toggle mobile-fixed", 3, "click", 4, "ngIf"], [1, "miam-recipe-filter__details"], ["class", "miam-recipe-filter__detail", 4, "ngFor", "ngForOf"], [1, "miam-recipe-filter__detail"], ["primaryColor", "var(--m-color-primary)", 1, "miam-recipe-filter__detail__icon", 3, "iconName", "click"], [1, "miam-recipe-filters__choice"], ["type", "checkbox", 3, "ngModel", "ngModelChange"], [1, "miam-recipe-filters__preferences"], [1, "miam-recipe-filters__toggle", "mobile-fixed", 3, "click"]], template: function RecipeFiltersComponent_Template(rf, ctx) { if (rf & 1) {
|
|
238
239
|
i0.ɵɵelementStart(0, "div", 0);
|
|
239
240
|
i0.ɵɵelementStart(1, "div", 1);
|
|
@@ -306,7 +307,7 @@ RecipeFiltersComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeFiltersCompo
|
|
|
306
307
|
encapsulation: ViewEncapsulation.None,
|
|
307
308
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
308
309
|
}]
|
|
309
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MediaMatcher }, { type: i2.UserService }]; }, { filters: [{
|
|
310
|
+
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MediaMatcher }, { type: i2.UserService }, { type: i2.ContextService }]; }, { filters: [{
|
|
310
311
|
type: Input
|
|
311
312
|
}], mobileFixed: [{
|
|
312
313
|
type: Input
|
|
@@ -321,4 +322,4 @@ RecipeFiltersComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeFiltersCompo
|
|
|
321
322
|
}], preferencesChanged: [{
|
|
322
323
|
type: Output
|
|
323
324
|
}] }); })();
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtZmlsdGVycy9yZWNpcGUtZmlsdGVycy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLWZpbHRlcnMvcmVjaXBlLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7SUNaMUMsNEJBQWdDO0lBQUEsdUJBQU87SUFBQSxpQkFBTzs7OztJQWExQywrQkFDRTtJQUFBLDRCQUFNO0lBQUEsWUFBVTtJQUFBLGlCQUFPO0lBQ3ZCLHdDQUtlO0lBSGIscVFBQThCO0lBR2hDLGlCQUFlO0lBQ2pCLGlCQUFNOzs7O0lBUEUsZUFBVTtJQUFWLCtCQUFVO0lBSWQsZUFBdUI7SUFBdkIsNENBQXVCOzs7SUFON0IsNkJBQ0U7SUFBQSw2RkFDRTtJQVFKLDBCQUFlOzs7SUFUUixlQUF1QztJQUF2QyxpREFBdUM7OztJQUZoRCwrQkFDRTtJQUFBLCtGQUNFO0lBVUosaUJBQU07OztJQVhVLGVBQXVEO0lBQXZELG9GQUF1RDs7OztJQXNCckUsK0JBQ0U7SUFBQSxpQ0FBMEY7SUFBbkUsNk5BQThCLG1NQUFBO0lBQXJELGlCQUEwRjtJQUFBLFlBQzVGO0lBQUEsaUJBQU07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b250ZW50IjpbImltcG9ydCB7IE1lZGlhTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZUZpbHRlcnMgfSBmcm9tICcuLi8uLi9fdHlwZXMvcmVjaXBlLWZpbHRlcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtZmlsdGVycy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGZpbHRlcnM6IFJlY2lwZUZpbHRlcnM7XG4gIEBJbnB1dCgpIG1vYmlsZUZpeGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbHRlclRvUmVtb3ZlOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGVGaWx0ZXJzPigpO1xuICBAT3V0cHV0KCkgZmlsdGVyUmVzZXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBmaWx0ZXJDb2xsYXBzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwcmVmZXJlbmNlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaXNGaWx0ZXJDb2xsYXBzZWQgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG4gIGZpbHRlcnNUb0Rpc3BsYXkgPSBbXTtcbiAgaXNNb2JpbGUgPSBmYWxzZTtcbiAgd2lsbERvdWJsZUJ1aWxkID0gZmFsc2U7IC8vIElmIGZpbHRlcnMgd2VyZSBjaGFuZ2VkIGluIHJlY2lwZS1maWx0ZXJzLCBpdCB3aWxsIHRyaWdnZXIgdGhlIGJ1aWxkIGZ1bmN0aW9uIDIgdGltZXNcbiAgaXNMb2dnZWQgPSBmYWxzZTtcbiAgaGFzQ2hpbGRyZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgbWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsXG4gICAgcHVibGljIHVzZXJzU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gdGhpcy5pc01vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0VXNlck9ic2VydmFibGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJUb1JlbW92ZSkge1xuICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIodGhpcy5maWx0ZXJUb1JlbW92ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICBpZiAodGhpcy53aWxsRG91YmxlQnVpbGQpIHtcbiAgICAgICAgdGhpcy53aWxsRG91YmxlQnVpbGQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlcnNUb0Rpc3BsYXkgPSB0aGlzLmJ1aWxkRmlsdGVyc0FycmF5KCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGZpbHRlcnNDaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICB0aGlzLmZpbHRlcnNUb0Rpc3BsYXkgPSB0aGlzLmJ1aWxkRmlsdGVyc0FycmF5KCk7XG4gICAgfVxuICAgIHRoaXMud2lsbERvdWJsZUJ1aWxkID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlckNoYW5nZWQuZW1pdCh0aGlzLmZpbHRlcnMpO1xuICB9XG5cbiAgLy8gVE9ETzogTWF5YmUgbWFrZSBhIHNlcnZpY2UgZm9yIHRoZSBmaWx0ZXJzIHQgb2xpbWl0IHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zIGFjcm9zcyBjb21wb25lbnRzXG4gIGJ1aWxkRmlsdGVyc0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZmlsdGVyTmFtZXMgPSBbXTtcbiAgICBmaWx0ZXJOYW1lcyA9IFsuLi5maWx0ZXJOYW1lcywgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmNvc3QpLCAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSksXG4gICAgICAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMudGltZSldO1xuICAgIGlmICh0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlICE9PSAnJykge1xuICAgICAgZmlsdGVyTmFtZXMgPSBbdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlXS5jb25jYXQoZmlsdGVyTmFtZXMpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyTmFtZXM7XG4gIH1cblxuICBnZXRTZWxlY3RlZEZpbHRlcnMoZmlsdGVyc0FycmF5KTogc3RyaW5nW10ge1xuICAgIHJldHVybiBmaWx0ZXJzQXJyYXkuZmlsdGVyKGVsID0+IGVsLnZhbHVlKS5tYXAoZWwgPT4gZWwudGV4dCk7XG4gIH1cblxuICByZW1vdmVGaWx0ZXIoZmlsdGVyVGV4dDogc3RyaW5nKSB7XG4gICAgaWYgKGZpbHRlclRleHQgPT09IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8udGl0bGUpIHtcbiAgICAgIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3IgKCBjb25zdCBmaWx0ZXJUeXBlIGluIHRoaXMuZmlsdGVycykge1xuICAgICAgICAvLyBhZGRpdGlvbmFsRmlsdGVycyBpc24ndCBhbiBhcnJheSwgdGh1cyBpc24ndCBpdGVyYWJsZVxuICAgICAgICBpZiAodGhpcy5maWx0ZXJzLmhhc093blByb3BlcnR5KGZpbHRlclR5cGUpICYmIGZpbHRlclR5cGUgIT09ICdhZGRpdGlvbmFsRmlsdGVycycpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbHRlckZpZWxkIG9mIHRoaXMuZmlsdGVyc1tmaWx0ZXJUeXBlXSkge1xuICAgICAgICAgICAgaWYgKGZpbHRlckZpZWxkLnRleHQgPT09IGZpbHRlclRleHQpIHsgZmlsdGVyRmllbGQudmFsdWUgPSBmYWxzZTsgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gV2hlbiBmaWx0ZXJzIGFyZSBtdXR1YWxseSBleGNsdXNpdmVzLCBvbiBjbGljayBvbiBvbmUgd2UgdW5jaGVjayBhbGwgYmVmb3JlIG1vZGVsIGNoYW5nZVxuICB1bmNoZWNrRmlsdGVyc09uQ2hhbmdlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlcnNbZmllbGRdLmZvckVhY2goZiA9PiBmLnZhbHVlID0gZmFsc2UpO1xuICB9XG5cbiAgdG9nZ2xlRmlsdGVyKCl7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnYXV0byc7XG4gICAgfVxuICAgIHRoaXMuaXNGaWx0ZXJDb2xsYXBzZWQgPSAhdGhpcy5pc0ZpbHRlckNvbGxhcHNlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5maWx0ZXJDb2xsYXBzZWQuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlVXNlclByZWZlcmVuY2UocHJlZmVyZW5jZSwgc3RhdGUpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudXNlcnNTZXJ2aWNlLnNldFByZWZlcmVuY2UocHJlZmVyZW5jZSwgc3RhdGUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnByZWZlcmVuY2VzQ2hhbmdlZC5lbWl0KCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXNlck9ic2VydmFibGVzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy51c2Vyc1NlcnZpY2UuaXNMb2dnZWQkLnN1YnNjcmliZShsb2dnZWQgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkID0gbG9nZ2VkO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5oYXNQcmVmZXJlbmNlKCdoYXNfY2hpbGRyZW4nKS5zdWJzY3JpYmUoaGFzQ2hpbGRyZW4gPT4ge1xuICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gaGFzQ2hpbGRyZW47XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNcIiBbbmdDbGFzc109XCJ7J2ZpbHRlci1jb2xsYXBzZWQnOiBpc0ZpbHRlckNvbGxhcHNlZH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RvZ2dsZVwiIChjbGljayk9J3RvZ2dsZUZpbHRlcigpJ1xuICAgIFtuZ0NsYXNzXT1cInsnZmlsdGVyLWNvbGxhcHNlZCc6IGlzRmlsdGVyQ29sbGFwc2VkLCAnbW9iaWxlLWZpeGVkJzptb2JpbGVGaXhlZH1cIj5cbiAgICA8c3BhbiAqbmdJZj1cImlzRmlsdGVyQ29sbGFwc2VkXCI+RmlsdHJlcjwvc3Bhbj5cbiAgICA8bmctbWlhbS1pY29uIFxuICAgICAgW2ljb25OYW1lXT1cImljb24uQ2hldnJvbkRvd25cIlxuICAgICAgW2hlaWdodF09JzMyJ1xuICAgICAgW3dpZHRoXT0nMzInXG4gICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXdoaXRlKVwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ZpbHRlci1jb2xsYXBzZWQnOiBpc0ZpbHRlckNvbGxhcHNlZH1cIj5cbiAgICA8L25nLW1pYW0taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX2NvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnZmlsdGVyLWNvbGxhcHNlZCc6IGlzRmlsdGVyQ29sbGFwc2VkfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJpc01vYmlsZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyX19kZXRhaWxzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyc1RvRGlzcGxheSAmJiBmaWx0ZXJzVG9EaXNwbGF5Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNUb0Rpc3BsYXlcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcl9fZGV0YWlsXCI+XG4gICAgICAgICAgPHNwYW4+e3tmaWx0ZXJ9fTwvc3Bhbj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIFxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJfX2RldGFpbF9faWNvblwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbHRlcihmaWx0ZXIpXCIgXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5DbGVhclwiXG4gICAgICAgICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXByaW1hcnkpXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+ICBcbiAgICBcbiAgICA8IS0tIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIiA+VHlwZSBkZSBwbGF0PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0eXBlIG9mIGZpbHRlcnMudHlwZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fY2hvaWNlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cInR5cGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJzQ2hhbmdlZCgpXCI+IHt7dHlwZS50ZXh0fX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj4gLS0+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX190aXRsZVwiPkRpZmZpY3VsdMOpPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkaWZmaWN1bHR5IG9mIGZpbHRlcnMuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fY2hvaWNlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImRpZmZpY3VsdHkudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJzQ2hhbmdlZCgpXCI+IHt7ZGlmZmljdWx0eS50ZXh0fX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RpdGxlXCI+Q2/Du3Q8L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvc3Qgb2YgZmlsdGVycy5jb3N0XCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IFxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidW5jaGVja0ZpbHRlcnNPbkNoYW5nZSgnY29zdCcpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvc3QudmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlcnNDaGFuZ2VkKClcIj5cbiAgICAgICAge3tjb3N0LnRleHR9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIj5UZW1wcyBkZSBwcsOpcGFyYXRpb248L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRpbWUgb2YgZmlsdGVycy50aW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IFxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidW5jaGVja0ZpbHRlcnNPbkNoYW5nZSgndGltZScpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInRpbWUudmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlcnNDaGFuZ2VkKClcIj5cbiAgICAgICAgJiM2MDsge3t0aW1lLnRleHR9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3JlbW92ZVwiPlxuICAgICAgPGEgKGNsaWNrKT1cImZpbHRlclJlc2V0LmVtaXQoKVwiPlJldGlyZXIgdG91cyBsZXMgZmlsdHJlczwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNMb2dnZWQgJiYgKHVzZXJzU2VydmljZS5wcmVmZXJlbmNlc0FjdGl2YXRlZCQgfCBhc3luYylcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19wcmVmZXJlbmNlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIj5QcsOpZsOpcmVuY2VzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVXNlclByZWZlcmVuY2UoJ2hhc19jaGlsZHJlbicsICRldmVudClcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiaGFzQ2hpbGRyZW5cIlxuICAgICAgICAgID5cbiAgICAgICAgICB7eyAoaGFzQ2hpbGRyZW4pID8gXCJKJ2FpIGRlcyBlbmZhbnRzXCIgOiBcIkplIG4nYWkgcGFzIGQnZW5mYW50XCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNNb2JpbGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RvZ2dsZSBtb2JpbGUtZml4ZWRcIlxuICAgIChjbGljayk9J3RvZ2dsZUZpbHRlcigpJz5cbiAgICAgIEZlcm1lclxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtZmlsdGVycy9yZWNpcGUtZmlsdGVycy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLWZpbHRlcnMvcmVjaXBlLWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0lDWjFDLDRCQUFnQztJQUFBLHVCQUFPO0lBQUEsaUJBQU87Ozs7SUFhMUMsK0JBQ0U7SUFBQSw0QkFBTTtJQUFBLFlBQVU7SUFBQSxpQkFBTztJQUN2Qix3Q0FLZTtJQUhiLHFRQUE4QjtJQUdoQyxpQkFBZTtJQUNqQixpQkFBTTs7OztJQVBFLGVBQVU7SUFBViwrQkFBVTtJQUlkLGVBQXVCO0lBQXZCLDRDQUF1Qjs7O0lBTjdCLDZCQUNFO0lBQUEsNkZBQ0U7SUFRSiwwQkFBZTs7O0lBVFIsZUFBdUM7SUFBdkMsaURBQXVDOzs7SUFGaEQsK0JBQ0U7SUFBQSwrRkFDRTtJQVVKLGlCQUFNOzs7SUFYVSxlQUF1RDtJQUF2RCxvRkFBdUQ7Ozs7SUFzQnJFLCtCQUNFO0lBQUEsaUNBQTBGO0lBQW5FLDZOQUE4QixtTUFBQTtJQUFyRCxpQkFBMEY7SUFBQSxZQUM1RjtJ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TUFBTTtZQUNHLGVBQWU7a0JBQXhCLE1BQU07WUFDRyxrQkFBa0I7a0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVycyB9IGZyb20gJy4uLy4uL190eXBlcy9yZWNpcGUtZmlsdGVycyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlY2lwZUZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgQElucHV0KCkgbW9iaWxlRml4ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZmlsdGVyVG9SZW1vdmU6IHN0cmluZztcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZUZpbHRlcnM+KCk7XG4gIEBPdXRwdXQoKSBmaWx0ZXJSZXNldCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckNvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHByZWZlcmVuY2VzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpc0ZpbHRlckNvbGxhcHNlZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgZmlsdGVyc1RvRGlzcGxheSA9IFtdO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICB3aWxsRG91YmxlQnVpbGQgPSBmYWxzZTsgLy8gSWYgZmlsdGVycyB3ZXJlIGNoYW5nZWQgaW4gcmVjaXBlLWZpbHRlcnMsIGl0IHdpbGwgdHJpZ2dlciB0aGUgYnVpbGQgZnVuY3Rpb24gMiB0aW1lc1xuICBpc0xvZ2dlZCA9IGZhbHNlO1xuICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcixcbiAgICBwdWJsaWMgdXNlcnNTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaXNNb2JpbGUgPSBtZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyMnB4KScpLm1hdGNoZXM7XG4gICAgdGhpcy5pc0ZpbHRlckNvbGxhcHNlZCA9IHRoaXMuaXNNb2JpbGU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldFVzZXJPYnNlcnZhYmxlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyVG9SZW1vdmUpIHtcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKHRoaXMuZmlsdGVyVG9SZW1vdmUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgaWYgKHRoaXMud2lsbERvdWJsZUJ1aWxkKSB7XG4gICAgICAgIHRoaXMud2lsbERvdWJsZUJ1aWxkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzVG9EaXNwbGF5ID0gdGhpcy5idWlsZEZpbHRlcnNBcnJheSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBmaWx0ZXJzQ2hhbmdlZCgpIHtcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5maWx0ZXJzVG9EaXNwbGF5ID0gdGhpcy5idWlsZEZpbHRlcnNBcnJheSgpO1xuICAgIH1cbiAgICB0aGlzLndpbGxEb3VibGVCdWlsZCA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJDaGFuZ2VkLmVtaXQodGhpcy5maWx0ZXJzKTtcbiAgfVxuXG4gIC8vIFRPRE86IE1heWJlIG1ha2UgYSBzZXJ2aWNlIGZvciB0aGUgZmlsdGVycyB0IG9saW1pdCB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucyBhY3Jvc3MgY29tcG9uZW50c1xuICBidWlsZEZpbHRlcnNBcnJheSgpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGZpbHRlck5hbWVzID0gW107XG4gICAgZmlsdGVyTmFtZXMgPSBbLi4uZmlsdGVyTmFtZXMsIC4uLnRoaXMuZ2V0U2VsZWN0ZWRGaWx0ZXJzKHRoaXMuZmlsdGVycy5jb3N0KSwgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmRpZmZpY3VsdHkpLFxuICAgICAgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLnRpbWUpXTtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzICYmIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSAhPT0gJycpIHtcbiAgICAgIGZpbHRlck5hbWVzID0gW3RoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZV0uY29uY2F0KGZpbHRlck5hbWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlck5hbWVzO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRGaWx0ZXJzKGZpbHRlcnNBcnJheSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZmlsdGVyc0FycmF5LmZpbHRlcihlbCA9PiBlbC52YWx1ZSkubWFwKGVsID0+IGVsLnRleHQpO1xuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlclRleHQ6IHN0cmluZykge1xuICAgIGlmIChmaWx0ZXJUZXh0ID09PSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LnRpdGxlKSB7XG4gICAgICB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgZm9yICggY29uc3QgZmlsdGVyVHlwZSBpbiB0aGlzLmZpbHRlcnMpIHtcbiAgICAgICAgLy8gYWRkaXRpb25hbEZpbHRlcnMgaXNuJ3QgYW4gYXJyYXksIHRodXMgaXNuJ3QgaXRlcmFibGVcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVycy5oYXNPd25Qcm9wZXJ0eShmaWx0ZXJUeXBlKSAmJiBmaWx0ZXJUeXBlICE9PSAnYWRkaXRpb25hbEZpbHRlcnMnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJGaWVsZCBvZiB0aGlzLmZpbHRlcnNbZmlsdGVyVHlwZV0pIHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJGaWVsZC50ZXh0ID09PSBmaWx0ZXJUZXh0KSB7IGZpbHRlckZpZWxkLnZhbHVlID0gZmFsc2U7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIFdoZW4gZmlsdGVycyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlcywgb24gY2xpY2sgb24gb25lIHdlIHVuY2hlY2sgYWxsIGJlZm9yZSBtb2RlbCBjaGFuZ2VcbiAgdW5jaGVja0ZpbHRlcnNPbkNoYW5nZShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJzW2ZpZWxkXS5mb3JFYWNoKGYgPT4gZi52YWx1ZSA9IGZhbHNlKTtcbiAgfVxuXG4gIHRvZ2dsZUZpbHRlcigpe1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICB0aGlzLmNvbnRleHQuZ2xvYmFsU2Nyb2xsYWJsZUVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID8gJ2hpZGRlbicgOiAnaW5pdGlhbCc7XG4gICAgfVxuICAgIHRoaXMuaXNGaWx0ZXJDb2xsYXBzZWQgPSAhdGhpcy5pc0ZpbHRlckNvbGxhcHNlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5maWx0ZXJDb2xsYXBzZWQuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlVXNlclByZWZlcmVuY2UocHJlZmVyZW5jZSwgc3RhdGUpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudXNlcnNTZXJ2aWNlLnNldFByZWZlcmVuY2UocHJlZmVyZW5jZSwgc3RhdGUpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnByZWZlcmVuY2VzQ2hhbmdlZC5lbWl0KCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXNlck9ic2VydmFibGVzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy51c2Vyc1NlcnZpY2UuaXNMb2dnZWQkLnN1YnNjcmliZShsb2dnZWQgPT4ge1xuICAgICAgICB0aGlzLmlzTG9nZ2VkID0gbG9nZ2VkO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnVzZXJzU2VydmljZS5oYXNQcmVmZXJlbmNlKCdoYXNfY2hpbGRyZW4nKS5zdWJzY3JpYmUoaGFzQ2hpbGRyZW4gPT4ge1xuICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gaGFzQ2hpbGRyZW47XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNcIiBbbmdDbGFzc109XCJ7J2ZpbHRlci1jb2xsYXBzZWQnOiBpc0ZpbHRlckNvbGxhcHNlZH1cIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RvZ2dsZVwiIChjbGljayk9J3RvZ2dsZUZpbHRlcigpJ1xuICAgIFtuZ0NsYXNzXT1cInsnZmlsdGVyLWNvbGxhcHNlZCc6IGlzRmlsdGVyQ29sbGFwc2VkLCAnbW9iaWxlLWZpeGVkJzptb2JpbGVGaXhlZH1cIj5cbiAgICA8c3BhbiAqbmdJZj1cImlzRmlsdGVyQ29sbGFwc2VkXCI+RmlsdHJlcjwvc3Bhbj5cbiAgICA8bmctbWlhbS1pY29uIFxuICAgICAgW2ljb25OYW1lXT1cImljb24uQ2hldnJvbkRvd25cIlxuICAgICAgW2hlaWdodF09JzMyJ1xuICAgICAgW3dpZHRoXT0nMzInXG4gICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXdoaXRlKVwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ZpbHRlci1jb2xsYXBzZWQnOiBpc0ZpbHRlckNvbGxhcHNlZH1cIj5cbiAgICA8L25nLW1pYW0taWNvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX2NvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnZmlsdGVyLWNvbGxhcHNlZCc6IGlzRmlsdGVyQ29sbGFwc2VkfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJpc01vYmlsZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyX19kZXRhaWxzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyc1RvRGlzcGxheSAmJiBmaWx0ZXJzVG9EaXNwbGF5Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNUb0Rpc3BsYXlcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcl9fZGV0YWlsXCI+XG4gICAgICAgICAgPHNwYW4+e3tmaWx0ZXJ9fTwvc3Bhbj5cbiAgICAgICAgICA8bmctbWlhbS1pY29uIFxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJfX2RldGFpbF9faWNvblwiIFxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbHRlcihmaWx0ZXIpXCIgXG4gICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5DbGVhclwiXG4gICAgICAgICAgICBwcmltYXJ5Q29sb3I9XCJ2YXIoLS1tLWNvbG9yLXByaW1hcnkpXCI+XG4gICAgICAgICAgPC9uZy1taWFtLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+ICBcbiAgICBcbiAgICA8IS0tIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIiA+VHlwZSBkZSBwbGF0PC9kaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0eXBlIG9mIGZpbHRlcnMudHlwZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fY2hvaWNlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cInR5cGUudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJzQ2hhbmdlZCgpXCI+IHt7dHlwZS50ZXh0fX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj4gLS0+XG4gICAgPGRpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX190aXRsZVwiPkRpZmZpY3VsdMOpPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkaWZmaWN1bHR5IG9mIGZpbHRlcnMuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fY2hvaWNlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cImRpZmZpY3VsdHkudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJzQ2hhbmdlZCgpXCI+IHt7ZGlmZmljdWx0eS50ZXh0fX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RpdGxlXCI+Q2/Du3Q8L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvc3Qgb2YgZmlsdGVycy5jb3N0XCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IFxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidW5jaGVja0ZpbHRlcnNPbkNoYW5nZSgnY29zdCcpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvc3QudmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlcnNDaGFuZ2VkKClcIj5cbiAgICAgICAge3tjb3N0LnRleHR9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3NlcGFyYXRvclwiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIj5UZW1wcyBkZSBwcsOpcGFyYXRpb248L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRpbWUgb2YgZmlsdGVycy50aW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgPGlucHV0IFxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidW5jaGVja0ZpbHRlcnNPbkNoYW5nZSgndGltZScpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInRpbWUudmFsdWVcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlcnNDaGFuZ2VkKClcIj5cbiAgICAgICAgJiM2MDsge3t0aW1lLnRleHR9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3JlbW92ZVwiPlxuICAgICAgPGEgKGNsaWNrKT1cImZpbHRlclJlc2V0LmVtaXQoKVwiPlJldGlyZXIgdG91cyBsZXMgZmlsdHJlczwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNMb2dnZWQgJiYgKHVzZXJzU2VydmljZS5wcmVmZXJlbmNlc0FjdGl2YXRlZCQgfCBhc3luYylcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19wcmVmZXJlbmNlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtZmlsdGVyc19fdGl0bGVcIj5QcsOpZsOpcmVuY2VzPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1maWx0ZXJzX19jaG9pY2VcIj5cbiAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVXNlclByZWZlcmVuY2UoJ2hhc19jaGlsZHJlbicsICRldmVudClcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiaGFzQ2hpbGRyZW5cIlxuICAgICAgICAgID5cbiAgICAgICAgICB7eyAoaGFzQ2hpbGRyZW4pID8gXCJKJ2FpIGRlcyBlbmZhbnRzXCIgOiBcIkplIG4nYWkgcGFzIGQnZW5mYW50XCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNNb2JpbGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWZpbHRlcnNfX3RvZ2dsZSBtb2JpbGUtZml4ZWRcIlxuICAgIChjbGljayk9J3RvZ2dsZUZpbHRlcigpJz5cbiAgICAgIEZlcm1lclxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -21,7 +21,7 @@ function RecipePricingComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
21
21
|
i0.ɵɵelementEnd();
|
|
22
22
|
i0.ɵɵelementEnd();
|
|
23
23
|
i0.ɵɵelementStart(8, "div", 4);
|
|
24
|
-
i0.ɵɵtext(9
|
|
24
|
+
i0.ɵɵtext(9);
|
|
25
25
|
i0.ɵɵelementEnd();
|
|
26
26
|
i0.ɵɵelementEnd();
|
|
27
27
|
} if (rf & 2) {
|
|
@@ -30,6 +30,8 @@ function RecipePricingComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
30
30
|
i0.ɵɵtextInterpolate1("", ctx_r0.integerPart, ",");
|
|
31
31
|
i0.ɵɵadvance(2);
|
|
32
32
|
i0.ɵɵtextInterpolate(ctx_r0.decimalPart);
|
|
33
|
+
i0.ɵɵadvance(4);
|
|
34
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.guestsText, " ");
|
|
33
35
|
} }
|
|
34
36
|
export class RecipePricingComponent {
|
|
35
37
|
constructor(recipesService, posService, list, cdr, basketsService) {
|
|
@@ -38,6 +40,7 @@ export class RecipePricingComponent {
|
|
|
38
40
|
this.list = list;
|
|
39
41
|
this.cdr = cdr;
|
|
40
42
|
this.basketsService = basketsService;
|
|
43
|
+
this.guestsText = 'par pers.';
|
|
41
44
|
this.loading = true;
|
|
42
45
|
this.subscriptions = [];
|
|
43
46
|
}
|
|
@@ -113,9 +116,9 @@ export class RecipePricingComponent {
|
|
|
113
116
|
}
|
|
114
117
|
}
|
|
115
118
|
RecipePricingComponent.ɵfac = function RecipePricingComponent_Factory(t) { return new (t || RecipePricingComponent)(i0.ɵɵdirectiveInject(i1.RecipesService), i0.ɵɵdirectiveInject(i1.PointOfSalesService), i0.ɵɵdirectiveInject(i1.GroceriesListsService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.BasketsService)); };
|
|
116
|
-
RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingComponent, selectors: [["ng-miam-recipe-pricing"]], inputs: { recipe: "recipe", serves: "serves" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[1, "miam-recipe-pricing"], ["class", "miam-recipe-pricing__wrapper", 4, "ngIf"], [1, "miam-recipe-pricing__wrapper"], [1, "miam-recipe-pricing__wrapper__price"], [1, "miam-recipe-pricing__wrapper__subline"]], template: function RecipePricingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
119
|
+
RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingComponent, selectors: [["ng-miam-recipe-pricing"]], inputs: { recipe: "recipe", serves: "serves", guestsText: "guestsText" }, features: [i0.ɵɵNgOnChangesFeature], decls: 2, vars: 1, consts: [[1, "miam-recipe-pricing"], ["class", "miam-recipe-pricing__wrapper", 4, "ngIf"], [1, "miam-recipe-pricing__wrapper"], [1, "miam-recipe-pricing__wrapper__price"], [1, "miam-recipe-pricing__wrapper__subline"]], template: function RecipePricingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
117
120
|
i0.ɵɵelementStart(0, "div", 0);
|
|
118
|
-
i0.ɵɵtemplate(1, RecipePricingComponent_div_1_Template, 10,
|
|
121
|
+
i0.ɵɵtemplate(1, RecipePricingComponent_div_1_Template, 10, 3, "div", 1);
|
|
119
122
|
i0.ɵɵelementEnd();
|
|
120
123
|
} if (rf & 2) {
|
|
121
124
|
i0.ɵɵadvance(1);
|
|
@@ -134,5 +137,7 @@ RecipePricingComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipePricingCompo
|
|
|
134
137
|
type: Input
|
|
135
138
|
}], serves: [{
|
|
136
139
|
type: Input
|
|
140
|
+
}], guestsText: [{
|
|
141
|
+
type: Input
|
|
137
142
|
}] }); })();
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLXByaWNpbmcvcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQWtDLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUNKM0csOEJBQ0U7SUFBQSw4QkFDRTtJQUFBLDRCQUFNO0lBQUEsWUFBa0I7SUFBQSxpQkFBTztJQUMvQiw0QkFBTTtJQUFBLFlBQWlCO0lBQUEsaUJBQU87SUFDOUIsNEJBQU87SUFBQSx1QkFBQztJQUFBLGlCQUFPO0lBQ2pCLGlCQUFNO0lBQ04sOEJBQ0U7SUFBQSwyQkFDRjtJQUFBLGlCQUFNO0lBQ1IsaUJBQU07OztJQVBJLGVBQWtCO0lBQWxCLGtEQUFrQjtJQUNsQixlQUFpQjtJQUFqQix3Q0FBaUI7O0FEVTdCLE1BQU0sT0FBTyxzQkFBc0I7SUFhakMs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QUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxNQUFNO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDOzs0RkF2R1Usc0JBQXNCOzJEQUF0QixzQkFBc0I7UUNkbkMsOEJBQ0U7UUFBQSx3RUFDRTtRQVNKLGlCQUFNOztRQVZzQyxlQUFnQjtRQUFoQixtQ0FBZ0I7O2tERGEvQyxzQkFBc0I7Y0FQbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2dCQUM5QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7b01BRVUsTUFBTTtrQkFBZCxLQUFLO1lBQ0csTUFBTTtrQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBQb2ludE9mU2FsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLXByaWNpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVQcmljaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSBzZXJ2ZXM6IG51bWJlcjtcbiAgcHJpY2luZzogUmVjaXBlUHJpY2luZztcbiAgbG9hZGluZyA9IHRydWU7XG4gIGludGVnZXJQYXJ0OiBzdHJpbmc7XG4gIGRlY2ltYWxQYXJ0OiBzdHJpbmc7XG5cblxuICBwcml2YXRlIHBvczogUG9pbnRPZlNhbGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBvbkNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0OiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmluaXRQcmljaW5nKCkuc3Vic2NyaWJlKClcbiAgICApO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIElmIHRoZSByZWNpcGUgaXMgaW4gYmFza2V0LCB3ZSBpZ25vcmUgdGhlIGNoYW5nZSA9PiBwcmljaW5nIHdpbGwgYmUgdXBkYXRlZCB3aGVuIHRoZSBuZXcgYmFza2V0IHByZXZpZXcgaXMgcmVhZHlcbiAgICAvLyBBZnRlciB0aGUgc2hhbGxvdyBjb3B5IHdpdGggZXZlbnRzIG9mIHRoZSByZWNpcGUsIG5nT25DaGFuZ2VzIGlzIGNhbGxlZCBhZ2FpbiBiZWNhdXNlIHRoZSByZWNpcGUgb2JqZWN0IGlzIGRpZmZlcmVudFxuICAgIC8vIFNvIGlmIGNoYW5nZXMgY29udGFpbnMgb25seSBhIHJlY2lwZSBhbmQgbm8gc2VydmVzLCB3ZSBhbHNvIGF2b2lkIHJlLWZldGNoaW5nXG4gICAgdGhpcy5saXN0LnJlY2lwZUlzSW5MaXN0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUocmVjaXBlSXNJbkxpc3QgPT4ge1xuICAgICAgaWYgKCFyZWNpcGVJc0luTGlzdCAmJiBjaGFuZ2VzLnNlcnZlcykge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy5mZXRjaFByaWNpbmcoKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2lsbCBleGVjdXRlIGV2ZXJ5IHRpbWUgdGhlIHBvcyBpcyBjaGFuZ2VkIG9yIHRoZSBiYXNrZXQgcHJldmlldyBpcyByZWNhbGN1bGF0ZWRcbiAgcHJpdmF0ZSBpbml0UHJpY2luZygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5wb3NTZXJ2aWNlLnBvcyQsIHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0UHJldmlldyRdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdHMgPT4gIXJlc3VsdHNbMF0gfHwgIXJlc3VsdHNbMV0pLFxuICAgICAgc3dpdGNoTWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICB0aGlzLnBvcyA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IHJlY2lwZUxpbmUgPSByZXN1bHRzWzFdLmZpbmQobCA9PiBsLmlzUmVjaXBlICYmIGwuaWQ/LnRvU3RyaW5nKCkgPT09IHRoaXMucmVjaXBlPy5pZD8udG9TdHJpbmcoKSk7XG4gICAgICAgIGlmICghIXJlY2lwZUxpbmUpIHtcbiAgICAgICAgICAvLyBGaXJzdCwgd2UgY2hlY2sgdGhlIGJhc2tldCBwcmV2aWV3IDogaWYgaXQgY29udGFpbnMgdGhlIHJlY2lwZSwgd2UgYnVpbGQgdGhlIHByaWNpbmcgZnJvbSBpdFxuICAgICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RQcmljaW5nKHJlY2lwZUxpbmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHByaWNpbmcsIHJldHVybiBpdCwgbm8gcmVhc29uIHRvIHJlLWZldGNoIGl0XG4gICAgICAgICAgaWYgKHRoaXMucHJpY2luZykge1xuICAgICAgICAgICAgdGhpcy5mb3JtYXQoKTtcbiAgICAgICAgICAgIHJldHVybiBvZih0aGlzLnByaWNpbmcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGZldGNoIHRoZSByZWNpcGUgcHJpY2luZyBmcm9tIHRoZSBBUElcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFByaWNpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFByaWNpbmcoKTogT2JzZXJ2YWJsZTxSZWNpcGVQcmljaW5nPiB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZSB8fCAhdGhpcy5wb3MgfHwgIXRoaXMuc2VydmVzKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmdldFByaWNpbmcodGhpcy5yZWNpcGUuaWQsIHRoaXMucG9zLmlkLCB0aGlzLnNlcnZlcykucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHQgPT4gcmVzdWx0LnByaWNlID09PSAwKSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVQcmljaW5nKSA9PiB7XG4gICAgICAgIHRoaXMucHJpY2luZyA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5mb3JtYXQoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFByaWNpbmcocmVjaXBlTGluZTogQmFza2V0UHJldmlld0xpbmUpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICB0aGlzLnByaWNpbmcgPSBuZXcgUmVjaXBlUHJpY2luZyh7XG4gICAgICBwcmljZTogcGFyc2VGbG9hdChyZWNpcGVMaW5lLnByaWNlKSxcbiAgICAgIHNlcnZlczogcmVjaXBlTGluZS5jb3VudCxcbiAgICAgIHByaWNlX3Blcl9zZXJ2ZTogcGFyc2VGbG9hdChyZWNpcGVMaW5lLnByaWNlKSAvIHJlY2lwZUxpbmUuY291bnRcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1hdCgpO1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICByZXR1cm4gb2YodGhpcy5wcmljaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0KCl7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5wcmljaW5nLnByaWNlX3Blcl9zZXJ2ZS50b0ZpeGVkKDIpLnRvU3RyaW5nKCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmludGVnZXJQYXJ0ID0gdmFsdWVzWzBdO1xuICAgIHRoaXMuZGVjaW1hbFBhcnQgPSB2YWx1ZXMubGVuZ3RoID09PSAyID8gdmFsdWVzWzFdIDogJzAwJztcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ1wiPlxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlclwiICpuZ0lmPVwiIWxvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlcl9fcHJpY2VcIj5cbiAgICAgIDxzcGFuPnt7IGludGVnZXJQYXJ0IH19LDwvc3Bhbj5cbiAgICAgIDxzcGFuPnt7IGRlY2ltYWxQYXJ0IH19PC9zcGFuPiAgIFxuICAgICAgPHNwYW4+IOKCrDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtcHJpY2luZ19fd3JhcHBlcl9fc3VibGluZVwiPlxuICAgICAgcGFyIHBlcnMuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLXByaWNpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tcG9uZW50cy9yZWNpcGUtcHJpY2luZy9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQudHMiLCJsaWIvX2NvbXBvbmVudHMvcmVjaXBlLXByaWNpbmcvcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdKLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQWtDLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7SUNKM0csOEJBQ0U7SUFBQSw4QkFDRTtJQUFBLDRCQUFNO0lBQUEsWUFBa0I7SUFBQSxpQkFBTztJQUMvQiw0QkFBTTtJQUFBLFlBQWlCO0lBQUEsaUJBQU87SUFDOUIsNEJBQU87SUFBQSx1QkFBQztJQUFBLGlCQUFPO0lBQ2pCLGlCQUFNO0lBQ04sOEJBQ0U7SUFBQSxZQUNGO0lBQUEsaUJBQU07SUFDUixpQkFBTTs7O0lBUEksZUFBa0I7SUFBbEIsa0RBQWtCO0lBQ2xCLGVBQWlCO0lBQWpCLHdDQUFpQjtJQUl2QixlQUNGO0lBREUsa0RBQ0Y7O0FES0osTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLGNBQThCLEVBQzlCLFVBQStCLEVBQy9CLElBQTJCLEVBQzNCLEdBQXNCLEVBQ3RCLGNBQThCO1FBSjlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUF1QjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFoQi9CLGVBQVUsR0FBRyxXQUFXLENBQUM7UUFFbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQU1QLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQVN2QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLG1IQUFtSDtRQUNuSCx1SEFBdUg7UUFDdkgsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO29CQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQzFDO2dCQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDOUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQsbUZBQW1GO0lBQzNFLFdBQVc7UUFDakIsT0FBTyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRCxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBQyxPQUFBLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBQSxDQUFDLENBQUMsRUFBRSwwQ0FBRSxRQUFRLHFCQUFPLElBQUksQ0FBQyxNQUFNLDBDQUFFLEVBQUUsMENBQUUsUUFBUSxHQUFFLENBQUEsRUFBQSxDQUFDLENBQUM7WUFDeEcsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO2dCQUNoQiwrRkFBK0Y7Z0JBQy9GLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxvRUFBb0U7Z0JBQ3BFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNkLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDekI7Z0JBQ0Qsc0RBQXNEO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQzdDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNsRixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUN2QyxHQUFHLENBQUMsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUE2QjtRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksYUFBYSxDQUFDO1lBQy9CLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNuQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDeEIsZUFBZSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUs7U0FDakUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELENBQUM7OzRGQXhHVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjtRQ2RuQyw4QkFDRTtRQUFBLHdFQUNFO1FBU0osaUJBQU07O1FBVnNDLGVBQWdCO1FBQWhCLG1DQUFnQjs7a0REYS9DLHNCQUFzQjtjQVBsQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDtvTUFFVSxNQUFNO2tCQUFkLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBQb2ludE9mU2FsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBQb2ludE9mU2FsZXNTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLXByaWNpbmcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLXByaWNpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtcHJpY2luZy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZWNpcGVQcmljaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSBzZXJ2ZXM6IG51bWJlcjtcbiAgQElucHV0KCkgZ3Vlc3RzVGV4dCA9ICdwYXIgcGVycy4nO1xuICBwcmljaW5nOiBSZWNpcGVQcmljaW5nO1xuICBsb2FkaW5nID0gdHJ1ZTtcbiAgaW50ZWdlclBhcnQ6IHN0cmluZztcbiAgZGVjaW1hbFBhcnQ6IHN0cmluZztcblxuXG4gIHByaXZhdGUgcG9zOiBQb2ludE9mU2FsZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIG9uQ2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9zU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBwcml2YXRlIGxpc3Q6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuaW5pdFByaWNpbmcoKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gSWYgdGhlIHJlY2lwZSBpcyBpbiBiYXNrZXQsIHdlIGlnbm9yZSB0aGUgY2hhbmdlID0+IHByaWNpbmcgd2lsbCBiZSB1cGRhdGVkIHdoZW4gdGhlIG5ldyBiYXNrZXQgcHJldmlldyBpcyByZWFkeVxuICAgIC8vIEFmdGVyIHRoZSBzaGFsbG93IGNvcHkgd2l0aCBldmVudHMgb2YgdGhlIHJlY2lwZSwgbmdPbkNoYW5nZXMgaXMgY2FsbGVkIGFnYWluIGJlY2F1c2UgdGhlIHJlY2lwZSBvYmplY3QgaXMgZGlmZmVyZW50XG4gICAgLy8gU28gaWYgY2hhbmdlcyBjb250YWlucyBvbmx5IGEgcmVjaXBlIGFuZCBubyBzZXJ2ZXMsIHdlIGFsc28gYXZvaWQgcmUtZmV0Y2hpbmdcbiAgICB0aGlzLmxpc3QucmVjaXBlSXNJbkxpc3QodGhpcy5yZWNpcGUuaWQpLnN1YnNjcmliZShyZWNpcGVJc0luTGlzdCA9PiB7XG4gICAgICBpZiAoIXJlY2lwZUlzSW5MaXN0ICYmIGNoYW5nZXMuc2VydmVzKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmZldGNoUHJpY2luZygpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5vbkNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBXaWxsIGV4ZWN1dGUgZXZlcnkgdGltZSB0aGUgcG9zIGlzIGNoYW5nZWQgb3IgdGhlIGJhc2tldCBwcmV2aWV3IGlzIHJlY2FsY3VsYXRlZFxuICBwcml2YXRlIGluaXRQcmljaW5nKCk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLnBvc1NlcnZpY2UucG9zJCwgdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRQcmV2aWV3JF0pLnBpcGUoXG4gICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB7XG4gICAgICAgIHRoaXMucG9zID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3QgcmVjaXBlTGluZSA9IHJlc3VsdHNbMV0uZmluZChsID0+IGwuaXNSZWNpcGUgJiYgbC5pZD8udG9TdHJpbmcoKSA9PT0gdGhpcy5yZWNpcGU/LmlkPy50b1N0cmluZygpKTtcbiAgICAgICAgaWYgKCEhcmVjaXBlTGluZSkge1xuICAgICAgICAgIC8vIEZpcnN0LCB3ZSBjaGVjayB0aGUgYmFza2V0IHByZXZpZXcgOiBpZiBpdCBjb250YWlucyB0aGUgcmVjaXBlLCB3ZSBidWlsZCB0aGUgcHJpY2luZyBmcm9tIGl0XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFByaWNpbmcocmVjaXBlTGluZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgcHJpY2luZywgcmV0dXJuIGl0LCBubyByZWFzb24gdG8gcmUtZmV0Y2ggaXRcbiAgICAgICAgICBpZiAodGhpcy5wcmljaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdCgpO1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMucHJpY2luZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgZmV0Y2ggdGhlIHJlY2lwZSBwcmljaW5nIGZyb20gdGhlIEFQSVxuICAgICAgICAgIHJldHVybiB0aGlzLmZldGNoUHJpY2luZygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUHJpY2luZygpOiBPYnNlcnZhYmxlPFJlY2lwZVByaWNpbmc+IHtcbiAgICBpZiAoIXRoaXMucmVjaXBlIHx8ICF0aGlzLnBvcyB8fCAhdGhpcy5zZXJ2ZXMpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuZ2V0UHJpY2luZyh0aGlzLnJlY2lwZS5pZCwgdGhpcy5wb3MuaWQsIHRoaXMuc2VydmVzKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQucHJpY2UgPT09IDApLFxuICAgICAgdGFwKChyZXN1bHQ6IFJlY2lwZVByaWNpbmcpID0+IHtcbiAgICAgICAgdGhpcy5wcmljaW5nID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmZvcm1hdCgpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UHJpY2luZyhyZWNpcGVMaW5lOiBCYXNrZXRQcmV2aWV3TGluZSk6IE9ic2VydmFibGU8UmVjaXBlUHJpY2luZz4ge1xuICAgIHRoaXMucHJpY2luZyA9IG5ldyBSZWNpcGVQcmljaW5nKHtcbiAgICAgIHByaWNlOiBwYXJzZUZsb2F0KHJlY2lwZUxpbmUucHJpY2UpLFxuICAgICAgc2VydmVzOiByZWNpcGVMaW5lLmNvdW50LFxuICAgICAgcHJpY2VfcGVyX3NlcnZlOiBwYXJzZUZsb2F0KHJlY2lwZUxpbmUucHJpY2UpIC8gcmVjaXBlTGluZS5jb3VudFxuICAgIH0pO1xuICAgIHRoaXMuZm9ybWF0KCk7XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiBvZih0aGlzLnByaWNpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQoKXtcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLnByaWNpbmcucHJpY2VfcGVyX3NlcnZlLnRvRml4ZWQoMikudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuaW50ZWdlclBhcnQgPSB2YWx1ZXNbMF07XG4gICAgdGhpcy5kZWNpbWFsUGFydCA9IHZhbHVlcy5sZW5ndGggPT09IDIgPyB2YWx1ZXNbMV0gOiAnMDAnO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nXCI+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19wcmljZVwiPlxuICAgICAgPHNwYW4+e3sgaW50ZWdlclBhcnQgfX0sPC9zcGFuPlxuICAgICAgPHNwYW4+e3sgZGVjaW1hbFBhcnQgfX08L3NwYW4+ICAgXG4gICAgICA8c3Bhbj4g4oKsPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1wcmljaW5nX193cmFwcGVyX19zdWJsaW5lXCI+XG4gICAgICB7eyBndWVzdHNUZXh0IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -38,6 +38,7 @@ export class BasketsService extends Service {
|
|
|
38
38
|
this.basketStats$ = new BehaviorSubject({ totalPrice: 0, recipesCount: 0, entriesCount: 0 });
|
|
39
39
|
this.basketIsFetching = false;
|
|
40
40
|
this.basketPreviewIsCalculating = false;
|
|
41
|
+
this.basketInitCalled = false;
|
|
41
42
|
this._entries$ = new BehaviorSubject([]);
|
|
42
43
|
this.register();
|
|
43
44
|
}
|
|
@@ -78,8 +79,11 @@ export class BasketsService extends Service {
|
|
|
78
79
|
}));
|
|
79
80
|
}
|
|
80
81
|
initBasket() {
|
|
81
|
-
this.
|
|
82
|
-
|
|
82
|
+
if (!this.basketInitCalled) {
|
|
83
|
+
this.basketInitCalled = true;
|
|
84
|
+
this.loadBasket().subscribe();
|
|
85
|
+
this.loadPreview().subscribe();
|
|
86
|
+
}
|
|
83
87
|
}
|
|
84
88
|
reloadBasket() {
|
|
85
89
|
return this.loadBasket().pipe(take(1));
|
|
@@ -251,4 +255,4 @@ BasketsService.ɵprov = i0.ɵɵdefineInjectable({ token: BasketsService, factory
|
|
|
251
255
|
providedIn: 'root'
|
|
252
256
|
}]
|
|
253
257
|
}], function () { return [{ type: i1.HttpClient }, { type: i2.BasketEntriesService }, { type: i3.GroceriesListsService }, { type: i4.GroceriesEntriesService }, { type: i5.PointOfSalesService }, { type: i6.RecipesService }, { type: i7.AnalyticsService }]; }, null); })();
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBd0MsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0s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Q0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2hDLE1BQU07eUJBQ1A7d0JBQ0QsT0FBTyxDQUFDLENBQUM7NEJBQ1AsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzlCLE1BQU07eUJBQ1A7cUJBQ0Y7aUJBQ0Y7cUJBQU07b0JBQ0wsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeFJNLDhCQUFlLEdBQUcsRUFBRSxDQUFDOzRFQURqQixjQUFjO3NEQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07a0RBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXJ2aWNlLCBEb2N1bWVudENvbGxlY3Rpb24sIERvY3VtZW50UmVzb3VyY2UgfSBmcm9tICduZ3gtanNvbmFwaSc7XG5pbXBvcnQgeyBCYXNrZXQgfSBmcm9tICcuLi9fbW9kZWxzL2Jhc2tldCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCBzd2l0Y2hNYXAsIHRhcCwgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGVudmlyb25tZW50IGFzIGUgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgQmFza2V0RW50cmllc1NlcnZpY2UgfSBmcm9tICcuL2Jhc2tldC1lbnRyaWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtbGlzdHMuc2VydmljZSc7XG5pbXBvcnQgeyBQb2ludE9mU2FsZXNTZXJ2aWNlIH0gZnJvbSAnLi9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldFByZXZpZXdMaW5lLCBMaW5lRW50cmllcyB9IGZyb20gJy4uL19tb2RlbHMvYmFza2V0LXByZXZpZXctbGluZSc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4vcmVjaXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlIH0gZnJvbSAnLi9ncm9jZXJpZXMtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2tldEVudHJ5IH0gZnJvbSAnLi4vX21vZGVscy9iYXNrZXQtZW50cnknO1xuaW1wb3J0IHsgdW5pb25CeSwgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRTdGF0cyB7XG4gIHRvdGFsUHJpY2U6IG51bWJlcjtcbiAgcmVjaXBlc0NvdW50OiBudW1iZXI7XG4gIGVudHJpZXNDb3VudDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCYXNrZXRzU2VydmljZSBleHRlbmRzIFNlcnZpY2U8QmFza2V0PiB7XG4gIHN0YXRpYyBlbnRyaWVzUGVyUGFnZXMgPSAzMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBiYXNrZXRFbnRyaWVzU2VydmljZTogQmFza2V0RW50cmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwcml2YXRlIGdyb2Nlcmllc0VudHJpZXNTZXJ2aWNlOiBHcm9jZXJpZXNFbnRyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlcigpO1xuICB9XG5cbiAgcmVzb3VyY2UgPSBCYXNrZXQ7XG4gIHR5cGUgPSAnYmFza2V0cyc7XG4gIF9iYXNrZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXQ+KG51bGwpO1xuICBfYmFza2V0UHJldmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldFByZXZpZXdMaW5lW10+KG51bGwpO1xuICBiYXNrZXRTdGF0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldFN0YXRzPih7IHRvdGFsUHJpY2U6IDAsIHJlY2lwZXNDb3VudDogMCwgZW50cmllc0NvdW50OiAwIH0pO1xuICBiYXNrZXRJc0ZldGNoaW5nID0gZmFsc2U7XG4gIGJhc2tldFByZXZpZXdJc0NhbGN1bGF0aW5nID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZW50cmllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldEVudHJ5W10+KFtdKTtcblxuICAvKipcbiAgICogV2Ugd2FudCBiYXNrZXQkIHRvIGJlIGEgc2luZ2xldG9uIHRoYXQgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgYmFza2V0LCBzbyBpdCBpcyBmZXRjaGVkIG9ubHkgd2hlbiBuZWNlc3NhcnkuXG4gICAqIEF0IGFueSBwb2ludCBpbiB0aW1lIHRoZSBiYXNrZXQgY2FuIGJlIGZldGNoZWQgdmlhIHRoZSBpbml0QmFza2V0IGZ1bmN0aW9uIChpZiB3ZSB3YW50IHRvIGZldGNoIGl0IG9uIHN0YXJ0dXAgdG8gc2F2ZSB0aW1lIGxhdGVyKVxuICAgKiBCdXQgaWYgaW5pdEJhc2tldCBpcyBub3QgY2FsbGVkLCB0aGUgYmFza2V0IHdpbGwgb25seSBiZSBmZXRjaGVkIHRoZSAxc3QgdGltZSBpdCBpcyBuZWVkZWQuXG4gICAqL1xuICBnZXQgYmFza2V0JCgpOiBCZWhhdmlvclN1YmplY3Q8QmFza2V0PiB7XG4gICAgaWYgKCF0aGlzLl9iYXNrZXQkLnZhbHVlICYmICF0aGlzLmJhc2tldElzRmV0Y2hpbmcpIHtcbiAgICAgIHRoaXMuYmFza2V0SXNGZXRjaGluZyA9IHRydWU7XG4gICAgICB0aGlzLmluaXRCYXNrZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2tldCQ7XG4gIH1cblxuICAvKipcbiAgICogYmFza2V0UHJldmlldyQgc2hvdWxkIGFsc28gYmUgYSBzaW5nbGV0b24sIGFuZCBhcyB3ZWxsIGFzIGJhc2tldCQgaXQgd2lsbCBiZSBjYWxjdWxhdGVkIGZvciB0aGUgZmlyc3QgdGltZSBvbmx5IHdoZW4gbmVjZXNzYXJ5XG4gICAqIG9yIGlmIGxvYWRQcmV2aWV3IGlzIGNhbGxlZCBiZWZvcmVcbiAgICovXG4gIGdldCBiYXNrZXRQcmV2aWV3JCgpOiBCZWhhdmlvclN1YmplY3Q8QmFza2V0UHJldmlld0xpbmVbXT4ge1xuICAgIGlmICghdGhpcy5fYmFza2V0UHJldmlldyQudmFsdWUgJiYgIXRoaXMuYmFza2V0UHJldmlld0lzQ2FsY3VsYXRpbmcpIHtcbiAgICAgIHRoaXMuYmFza2V0UHJldmlld0lzQ2FsY3VsYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0QmFza2V0KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9iYXNrZXRQcmV2aWV3JDtcbiAgfVxuXG4gIC8vIEZldGNoIHJlbGF0ZWQgYmFza2V0cywgZmlsdGVyaW5nIG9uIGEgcG9pbnQgb2Ygc2FsZVxuICBmZXRjaEZvckxpc3RBbmRQb3MobGlzdElkOiBzdHJpbmcsIHBvc0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIGlmICghbGlzdElkIHx8ICFwb3NJZCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgICBsZXQgdXJsID0gW2UubWlhbUFQSSwgJ2FwaS92MS9ncm9jZXJpZXMtbGlzdHMnLCBsaXN0SWQsICdiYXNrZXRzJ10uam9pbignLycpO1xuICAgIHVybCA9IGAke3VybH0/ZmlsdGVyW3BvaW50X29mX3NhbGVfaWRdPSR7cG9zSWR9YDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcbiAgICAgIHNraXBXaGlsZSgocmVzcDogRG9jdW1lbnRDb2xsZWN0aW9uPEJhc2tldD4pID0+IHJlc3AuaXNfbG9hZGluZyksXG4gICAgICBtYXAoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2tldHMgPSB0aGlzLm5ld0NvbGxlY3Rpb24oKTtcbiAgICAgICAgYmFza2V0cy5maWxsKHJlc3ApO1xuICAgICAgICByZXR1cm4gYmFza2V0cy5kYXRhWzBdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaW5pdEJhc2tldCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRCYXNrZXQoKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmxvYWRQcmV2aWV3KCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICByZWxvYWRCYXNrZXQoKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkQmFza2V0KCkucGlwZSh0YWtlKDEpKTtcbiAgfVxuXG4gIC8vIFNldCBiYXNrZXQgYXMgY29uZmlybWVkLCBhbmQgcmV0dXJucyBvbmx5IG9uY2UgdGhlIG5ldyBjdXJyZW50IGxpc3QgaXMgcmV0dXJuZWRcbiAgY29uZmlybUJhc2tldCgpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIGxldCBjb25maXJtZWRCYXNrZXQ6IEJhc2tldDtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoYiA9PiAhYiksXG4gICAgICB0YWtlKDEpLFxuICAgICAgc3dpdGNoTWFwKGJhc2tldCA9PiB7XG4gICAgICAgIGJhc2tldC5hdHRyaWJ1dGVzLmNvbmZpcm1lZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBiYXNrZXQuc2F2ZSgpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHJlc3A6IERvY3VtZW50UmVzb3VyY2U8QmFza2V0PikgPT4ge1xuICAgICAgICBjb25maXJtZWRCYXNrZXQgPSB0aGlzLm5ldygpO1xuICAgICAgICBjb25maXJtZWRCYXNrZXQuZmlsbChyZXNwKTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBjb25maXJtZWRCYXNrZXQudG90YWxQcmljZTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSBzZW5kIHB1c2ggYW5hbHl0aWNzIGV2ZW50IGlmID4gMDonLCB0b3RhbCwgY29uZmlybWVkQmFza2V0KTtcbiAgICAgICAgaWYgKHRvdGFsID4gMCkge1xuICAgICAgICAgIC8vIFNlbmQgdG90YWwgaW4gY2VudHNcbiAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KCdwdXNoLWJhc2tldCcsIG51bGwsICh0b3RhbCAqIDEwMCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldCBiYXNrZXQgYXMgdW5kZWZpbmVkIGFzIGl0IGJlY2F1c2UgaW5jb25zaXN0ZW50IHdoaWxlIHdlIHJlc2V0IHRoZSBsaXN0LiB0aGVuIHdhaXQgZm9yIG5ldyBvbmVcbiAgICAgICAgdGhpcy5fYmFza2V0JC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RzU2VydmljZS5yZXNldExpc3QoKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2tldCQ7XG4gICAgICB9XG4gICAgICApLFxuICAgICAgc2tpcFdoaWxlKChiKSA9PiAhYiksXG4gICAgICBtYXAoKCkgPT4gY29uZmlybWVkQmFza2V0KVxuICAgICk7XG4gIH1cblxuICBiYXNrZXRFbnRyaWVzKCk6IE9ic2VydmFibGU8QmFza2V0RW50cnlbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRyaWVzJDtcbiAgfVxuXG4gIGFjdGl2ZUJhc2tldEVudHJpZXMoKTogT2JzZXJ2YWJsZTxCYXNrZXRFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFza2V0RW50cmllcygpLnBpcGUoXG4gICAgICBtYXAoKGVudHJpZXM6IEJhc2tldEVudHJ5W10pID0+IGVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5Lmdyb2Nlcmllc0VudHJ5U3RhdHVzID09PSAnYWN0aXZlJykpXG4gICAgKTtcbiAgfVxuXG4gIC8vIERlY3JlYXNlIHF1YW50aXR5IG9uIGEgbGlzdCBvZiBiYXNrZXQgZW50cmllc1xuICAvLyBJZiB0aGUgcXVhbnRpdHkgZ29lcyBiZWxvdyAxLCB0aGUgY29ycmVzcG9uZGluZyBncm9jZXJpZXMgZW50cnkncyBzdGF0dXMgZ2V0cyBkZWxldGVkXG4gIC8vIFJlbG9hZCBiYXNrZXQgYWZ0ZXIgYWxsIG9iamVjdHMgYXJlIHNhdmVkXG4gIHJlbW92ZUJhc2tldEVudHJpZXMoZW50cmllc1RvUmVtb3ZlOiB7IGlkOiBzdHJpbmcsIHF0eTogbnVtYmVyIH1bXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKCF0aGlzLl9lbnRyaWVzJC52YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhdmVPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxHcm9jZXJpZXNFbnRyeXxCYXNrZXRFbnRyeT5bXSA9IGVudHJpZXNUb1JlbW92ZS5tYXAoZW50cnlUb1JlbW92ZSA9PiB7XG4gICAgICBjb25zdCBiYXNrZXRFbnRyeSA9IHRoaXMuX2VudHJpZXMkLnZhbHVlLmZpbmQoYmUgPT4gYmUuaWQgPT09IGVudHJ5VG9SZW1vdmUuaWQpO1xuICAgICAgaWYgKCFiYXNrZXRFbnRyeSB8fCAhZW50cnlUb1JlbW92ZS5xdHkpIHtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaW5hbENvdW50ID0gYmFza2V0RW50cnkucXVhbnRpdHkgLSBlbnRyeVRvUmVtb3ZlLnF0eTtcbiAgICAgIGlmIChmaW5hbENvdW50ID49IDEpIHtcbiAgICAgICAgYmFza2V0RW50cnkucXVhbnRpdHkgPSBmaW5hbENvdW50O1xuICAgICAgICByZXR1cm4gYmFza2V0RW50cnkuc2F2ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFza2V0RW50cnkucXVhbnRpdHkgPSAxO1xuICAgICAgICBiYXNrZXRFbnRyeS5ncm9jZXJpZXNFbnRyeS5zdGF0dXMgPSAnZGVsZXRlZCc7XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihbYmFza2V0RW50cnkuc2F2ZSgpLCBiYXNrZXRFbnRyeS5ncm9jZXJpZXNFbnRyeS5zYXZlKCldKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JrSm9pbihzYXZlT2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5saXN0c1NlcnZpY2UucmVmcmVzaEN1cnJlbnRMaXN0KCkpLFxuICAgICAgdGFrZSgxKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRCYXNrZXQoKTogT2JzZXJ2YWJsZTxCYXNrZXQ+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5saXN0c1NlcnZpY2UubGlzdCQsIHRoaXMucG9zU2VydmljZS5wb3MkXSkucGlwZShcbiAgICAgIHNraXBXaGlsZShyZXN1bHRzID0+ICAhcmVzdWx0c1swXSB8fCAhcmVzdWx0c1sxXSksXG4gICAgICBzd2l0Y2hNYXAocmVzdWx0cyA9PiB0aGlzLmZldGNoRm9yTGlzdEFuZFBvcyhyZXN1bHRzWzBdLmlkLCByZXN1bHRzWzFdLmlkKSksXG4gICAgICB0YXAoYmFza2V0ID0+IHtcbiAgICAgICAgdGhpcy5fYmFza2V0JC5uZXh0KGJhc2tldCk7XG4gICAgICAgIHRoaXMuYmFza2V0SXNGZXRjaGluZyA9IGZhbHNlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUHJldmlldygpOiBPYnNlcnZhYmxlPEJhc2tldFByZXZpZXdMaW5lW10+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXQkLnBpcGUoXG4gICAgICBza2lwV2hpbGUoYiA9PiAhYiksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5yZWNpcGVzU2VydmljZS5sb2FkUmVjaXBlcygpKSxcbiAgICAgIHN3aXRjaE1hcChyZWNpcGVzID0+IHtcbiAgICAgICAgY29uc3QgYmFza2V0OiBCYXNrZXQgPSB0aGlzLl9iYXNrZXQkLnZhbHVlO1xuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaEJhc2tldEVudHJpZXMoYmFza2V0KS5waXBlKFxuICAgICAgICAgIG1hcChlbnRyaWVzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVFbnRyaWVzID0gdGhpcy5ncm91cEJhc2tldEVudHJpZXMocmVjaXBlcywgZW50cmllcyk7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IHRoaXMucmVjaXBlc0FuZExpbmVFbnRyaWVzVG9CYXNrZXRQcmV2aWV3TGluZShyZWNpcGVzLCBsaW5lRW50cmllcyk7XG4gICAgICAgICAgICB0aGlzLl9iYXNrZXRQcmV2aWV3JC5uZXh0KGxpbmVzKTtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0UHJldmlld0lzQ2FsY3VsYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0U3RhdHMkLm5leHQodGhpcy5idWlsZFN0YXRzKGxpbmVzKSk7XG4gICAgICAgICAgICByZXR1cm4gbGluZXM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hCYXNrZXRFbnRyaWVzKGJhc2tldDogQmFza2V0KTogT2JzZXJ2YWJsZTxCYXNrZXRFbnRyeVtdPiB7XG4gICAgaWYgKCFiYXNrZXQgfHwgIWJhc2tldC5jb21wbGV0aW9uIHx8IGJhc2tldC5jb21wbGV0aW9uLnRvdGFsIDwgMSkge1xuICAgICAgdGhpcy5fZW50cmllcyQubmV4dChbXSk7XG4gICAgICByZXR1cm4gdGhpcy5fZW50cmllcyQ7XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZXNDb3VudCA9IE1hdGguY2VpbChiYXNrZXQuY29tcGxldGlvbi50b3RhbCAvIEJhc2tldHNTZXJ2aWNlLmVudHJpZXNQZXJQYWdlcyk7XG4gICAgcmV0dXJuIGZvcmtKb2luKEFycmF5LmFwcGx5KG51bGwsIEFycmF5KHBhZ2VzQ291bnQpKS5tYXAoKHYsIGkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoQmFza2V0RW50cmllc1BhZ2UoYmFza2V0LCBpICsgMSk7XG4gICAgfSkpLnBpcGUoXG4gICAgICBtYXAoKGNvbGxlY3Rpb25zOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+W10pID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGZsYXR0ZW4oY29sbGVjdGlvbnMubWFwKGNvbCA9PiBjb2wuZGF0YSkpO1xuICAgICAgICBlbnRyaWVzLmZvckVhY2goZSA9PiBlLnNldEl0ZW1zU2VsZWN0aW9uKCkpO1xuICAgICAgICB0aGlzLl9lbnRyaWVzJC5uZXh0KGVudHJpZXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW50cmllcyQudmFsdWU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RhdHMobGluZXM6IEJhc2tldFByZXZpZXdMaW5lW10pOiBCYXNrZXRTdGF0cyB7XG4gICAgY29uc3QgZW50cmllc0ZvdW5kOiBCYXNrZXRFbnRyeVtdID0gdW5pb25CeSguLi4gbGluZXMubWFwKGxpbmUgPT4gbGluZS5lbnRyaWVzLmZvdW5kKSwgJ2lkJyk7XG5cbiAgICBjb25zdCB0b3RhbFByaWNlID0gZW50cmllc0ZvdW5kLnJlZHVjZSgodG90YWwgLCBlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ2Jhc2tldC1lbnRyaWVzLWl0ZW1zJ10uZmluZChpID0+IGkuaXRlbV9pZCA9PT0gZW50cnkuYXR0cmlidXRlc1snc2VsZWN0ZWQtaXRlbS1pZCddKTtcbiAgICAgIHRvdGFsICs9ICAoZW50cnkuYXR0cmlidXRlcy5xdWFudGl0eSB8fCAwKSAqIHBhcnNlRmxvYXQoaXRlbVsndW5pdC1wcmljZSddKTtcbiAgICAgIHJldHVybiB0b3RhbDtcbiAgICB9LCAwICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVjaXBlc0NvdW50OiBsaW5lcy5sZW5ndGgsXG4gICAgICBlbnRyaWVzQ291bnQ6IGVudHJpZXNGb3VuZC5sZW5ndGgsXG4gICAgICB0b3RhbFByaWNlXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hCYXNrZXRFbnRyaWVzUGFnZShiYXNrZXQ6IEJhc2tldCwgcGFnZTogbnVtYmVyKSB7XG4gICAgbGV0IHVybCA9IFtlLm1pYW1BUEksICdhcGkvdjEvYmFza2V0cycsIGJhc2tldC5pZCwgJ2Jhc2tldC1lbnRyaWVzJ10uam9pbignLycpO1xuICAgIHVybCA9IGAke3VybH0/aW5jbHVkZT1ncm9jZXJpZXMtZW50cnksaXRlbXMmcGFnZVtudW1iZXJdPSR7cGFnZX0mcGFnZVtzaXplXT0ke0Jhc2tldHNTZXJ2aWNlLmVudHJpZXNQZXJQYWdlc31gO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+KSA9PiByZXNwLmlzX2xvYWRpbmcpLFxuICAgICAgbWFwKChyZXNwOiBEb2N1bWVudENvbGxlY3Rpb248QmFza2V0RW50cnk+KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2tldEVudHJpZXMgPSB0aGlzLmJhc2tldEVudHJpZXNTZXJ2aWNlLm5ld0NvbGxlY3Rpb24oKTtcbiAgICAgICAgYmFza2V0RW50cmllcy5maWxsKHJlc3ApO1xuICAgICAgICByZXR1cm4gYmFza2V0RW50cmllcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjaXBlc0FuZExpbmVFbnRyaWVzVG9CYXNrZXRQcmV2aWV3TGluZShyZWNpcGVzOiBSZWNpcGVbXSwgbGluZUVudHJpZXM6IExpbmVFbnRyaWVzW10pOiBCYXNrZXRQcmV2aWV3TGluZVtdIHtcbiAgICByZXR1cm4gcmVjaXBlcy5tYXAoKHJlY2lwZSwgaWR4KSA9PiB7XG4gICAgICBjb25zdCBpdGVtc0NvdW50ID0gbGluZUVudHJpZXNbaWR4XS5mb3VuZC5sZW5ndGg7XG4gICAgICBsZXQgcmVjaXBlUHJpY2UgPSAwLjA7XG4gICAgICBjb25zdCBndWVzdHMgPSByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcGFyc2VJbnQocmVjaXBlLmd1ZXN0cywgMTApO1xuXG4gICAgICBsaW5lRW50cmllc1tpZHhdLmZvdW5kLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBlbnRyeS5hdHRyaWJ1dGVzWydiYXNrZXQtZW50cmllcy1pdGVtcyddLmZpbmQoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW0uaXRlbV9pZCA9PT0gZW50cnkuYXR0cmlidXRlc1snc2VsZWN0ZWQtaXRlbS1pZCddO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcXR5ID0gZW50cnkuYXR0cmlidXRlcy5xdWFudGl0eTtcbiAgICAgICAgY29uc3QgdW5pdFByaWNlID0gcGFyc2VGbG9hdChzZWxlY3RlZEl0ZW1bJ3VuaXQtcHJpY2UnXSk7XG4gICAgICAgIGNvbnN0IG51bWJlck9mUmVjaXBlc0ZvckVudHJ5ID0gZW50cnkuYXR0cmlidXRlc1sncmVjaXBlLWlkcyddLmxlbmd0aCB8fCAxO1xuXG4gICAgICAgIHJlY2lwZVByaWNlICs9IChxdHkgKiB1bml0UHJpY2UpIC8gbnVtYmVyT2ZSZWNpcGVzRm9yRW50cnk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHByaWNlUGVyR3Vlc3QgPSByZWNpcGVQcmljZSAvIGd1ZXN0cztcblxuICAgICAgcmV0dXJuIEJhc2tldFByZXZpZXdMaW5lLmZyb21SZWNpcGUocmVjaXBlLCBpdGVtc0NvdW50LCBwcmljZVBlckd1ZXN0LCByZWNpcGVQcmljZSwgbGluZUVudHJpZXNbaWR4XSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwQmFza2V0RW50cmllcyhyZWNpcGVzOiBSZWNpcGVbXSwgZW50cmllczogQmFza2V0RW50cnlbXSk6IExpbmVFbnRyaWVzW10ge1xuICAgIHJldHVybiByZWNpcGVzLm1hcChyZWNpcGUgPT4ge1xuICAgICAgY29uc3QgbGluZUVudHJpZXMgPSB7IGZvdW5kOiBbXSwgbm90Rm91bmQ6IFtdLCBvZnRlbkRlbGV0ZWQ6IFtdLCByZW1vdmVkOiBbXSB9IGFzIExpbmVFbnRyaWVzO1xuICAgICAgZW50cmllc1xuICAgICAgICAuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmF0dHJpYnV0ZXNbJ3JlY2lwZS1pZHMnXS5pbmNsdWRlcyhwYXJzZUludChyZWNpcGUuaWQsIDEwKSkpXG4gICAgICAgIC5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICBjb25zdCBhdmFpbGFibGUgPSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ107XG4gICAgICAgICAgaWYgKGF2YWlsYWJsZSkge1xuICAgICAgICAgICAgc3dpdGNoIChlbnRyeS5hdHRyaWJ1dGVzWydncm9jZXJpZXMtZW50cnktc3RhdHVzJ10pIHtcbiAgICAgICAgICAgICAgY2FzZSAnb2Z0ZW5fZGVsZXRlZCc6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5vZnRlbkRlbGV0ZWQucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlZCc6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5yZW1vdmVkLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lRW50cmllcy5mb3VuZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5lRW50cmllcy5ub3RGb3VuZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpbmVFbnRyaWVzO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvYmFza2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBd0MsTUFBTSxhQUFhLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNDLE9BQU8sRUFBYyxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0s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QUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDckMsTUFBTTt5QkFDUDt3QkFDRCxLQUFLLFNBQVMsQ0FBQyxDQUFDOzRCQUNkLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNoQyxNQUFNO3lCQUNQO3dCQUNELE9BQU8sQ0FBQyxDQUFDOzRCQUNQLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUM5QixNQUFNO3lCQUNQO3FCQUNGO2lCQUNGO3FCQUFNO29CQUNMLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNsQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTVSTSw4QkFBZSxHQUFHLEVBQUUsQ0FBQzs0RUFEakIsY0FBYztzREFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO2tEQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZSwgRG9jdW1lbnRDb2xsZWN0aW9uLCBEb2N1bWVudFJlc291cmNlIH0gZnJvbSAnbmd4LWpzb25hcGknO1xuaW1wb3J0IHsgQmFza2V0IH0gZnJvbSAnLi4vX21vZGVscy9iYXNrZXQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXBXaGlsZSwgc3dpdGNoTWFwLCB0YXAsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCBhcyBlIH0gZnJvbSAnLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEJhc2tldEVudHJpZXNTZXJ2aWNlIH0gZnJvbSAnLi9iYXNrZXQtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4vZ3JvY2VyaWVzLWxpc3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4vcG9pbnQtb2Ytc2FsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRQcmV2aWV3TGluZSwgTGluZUVudHJpZXMgfSBmcm9tICcuLi9fbW9kZWxzL2Jhc2tldC1wcmV2aWV3LWxpbmUnO1xuaW1wb3J0IHsgUmVjaXBlc1NlcnZpY2UgfSBmcm9tICcuL3JlY2lwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi9fbW9kZWxzL3JlY2lwZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyaWVzU2VydmljZSB9IGZyb20gJy4vZ3JvY2VyaWVzLWVudHJpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRFbnRyeSB9IGZyb20gJy4uL19tb2RlbHMvYmFza2V0LWVudHJ5JztcbmltcG9ydCB7IHVuaW9uQnksIGZsYXR0ZW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JvY2VyaWVzRW50cnkgfSBmcm9tICcuLi9fbW9kZWxzL2dyb2Nlcmllcy1lbnRyeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3RhdHMge1xuICB0b3RhbFByaWNlOiBudW1iZXI7XG4gIHJlY2lwZXNDb3VudDogbnVtYmVyO1xuICBlbnRyaWVzQ291bnQ6IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmFza2V0c1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPEJhc2tldD4ge1xuICBzdGF0aWMgZW50cmllc1BlclBhZ2VzID0gMzA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYmFza2V0RW50cmllc1NlcnZpY2U6IEJhc2tldEVudHJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBncm9jZXJpZXNFbnRyaWVzU2VydmljZTogR3JvY2VyaWVzRW50cmllc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgfVxuXG4gIHJlc291cmNlID0gQmFza2V0O1xuICB0eXBlID0gJ2Jhc2tldHMnO1xuICBfYmFza2V0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFza2V0PihudWxsKTtcbiAgX2Jhc2tldFByZXZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXRQcmV2aWV3TGluZVtdPihudWxsKTtcbiAgYmFza2V0U3RhdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNrZXRTdGF0cz4oeyB0b3RhbFByaWNlOiAwLCByZWNpcGVzQ291bnQ6IDAsIGVudHJpZXNDb3VudDogMCB9KTtcbiAgYmFza2V0SXNGZXRjaGluZyA9IGZhbHNlO1xuICBiYXNrZXRQcmV2aWV3SXNDYWxjdWxhdGluZyA9IGZhbHNlO1xuICBiYXNrZXRJbml0Q2FsbGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZW50cmllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2tldEVudHJ5W10+KFtdKTtcblxuICAvKipcbiAgICogV2Ugd2FudCBiYXNrZXQkIHRvIGJlIGEgc2luZ2xldG9uIHRoYXQgYWx3YXlzIHJldHVybnMgdGhlIHNhbWUgYmFza2V0LCBzbyBpdCBpcyBmZXRjaGVkIG9ubHkgd2hlbiBuZWNlc3NhcnkuXG4gICAqIEF0IGFueSBwb2ludCBpbiB0aW1lIHRoZSBiYXNrZXQgY2FuIGJlIGZldGNoZWQgdmlhIHRoZSBpbml0QmFza2V0IGZ1bmN0aW9uIChpZiB3ZSB3YW50IHRvIGZldGNoIGl0IG9uIHN0YXJ0dXAgdG8gc2F2ZSB0aW1lIGxhdGVyKVxuICAgKiBCdXQgaWYgaW5pdEJhc2tldCBpcyBub3QgY2FsbGVkLCB0aGUgYmFza2V0IHdpbGwgb25seSBiZSBmZXRjaGVkIHRoZSAxc3QgdGltZSBpdCBpcyBuZWVkZWQuXG4gICAqL1xuICBnZXQgYmFza2V0JCgpOiBCZWhhdmlvclN1YmplY3Q8QmFza2V0PiB7XG4gICAgaWYgKCF0aGlzLl9iYXNrZXQkLnZhbHVlICYmICF0aGlzLmJhc2tldElzRmV0Y2hpbmcpIHtcbiAgICAgIHRoaXMuYmFza2V0SXNGZXRjaGluZyA9IHRydWU7XG4gICAgICB0aGlzLmluaXRCYXNrZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2tldCQ7XG4gIH1cblxuICAvKipcbiAgICogYmFza2V0UHJldmlldyQgc2hvdWxkIGFsc28gYmUgYSBzaW5nbGV0b24sIGFuZCBhcyB3ZWxsIGFzIGJhc2tldCQgaXQgd2lsbCBiZSBjYWxjdWxhdGVkIGZvciB0aGUgZmlyc3QgdGltZSBvbmx5IHdoZW4gbmVjZXNzYXJ5XG4gICAqIG9yIGlmIGxvYWRQcmV2aWV3IGlzIGNhbGxlZCBiZWZvcmVcbiAgICovXG4gIGdldCBiYXNrZXRQcmV2aWV3JCgpOiBCZWhhdmlvclN1YmplY3Q8QmFza2V0UHJldmlld0xpbmVbXT4ge1xuICAgIGlmICghdGhpcy5fYmFza2V0UHJldmlldyQudmFsdWUgJiYgIXRoaXMuYmFza2V0UHJldmlld0lzQ2FsY3VsYXRpbmcpIHtcbiAgICAgIHRoaXMuYmFza2V0UHJldmlld0lzQ2FsY3VsYXRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5pbml0QmFza2V0KCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9iYXNrZXRQcmV2aWV3JDtcbiAgfVxuXG4gIC8vIEZldGNoIHJlbGF0ZWQgYmFza2V0cywgZmlsdGVyaW5nIG9uIGEgcG9pbnQgb2Ygc2FsZVxuICBmZXRjaEZvckxpc3RBbmRQb3MobGlzdElkOiBzdHJpbmcsIHBvc0lkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIGlmICghbGlzdElkIHx8ICFwb3NJZCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgICBsZXQgdXJsID0gW2UubWlhbUFQSSwgJ2FwaS92MS9ncm9jZXJpZXMtbGlzdHMnLCBsaXN0SWQsICdiYXNrZXRzJ10uam9pbignLycpO1xuICAgIHVybCA9IGAke3VybH0/ZmlsdGVyW3BvaW50X29mX3NhbGVfaWRdPSR7cG9zSWR9YDtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkucGlwZShcbiAgICAgIHNraXBXaGlsZSgocmVzcDogRG9jdW1lbnRDb2xsZWN0aW9uPEJhc2tldD4pID0+IHJlc3AuaXNfbG9hZGluZyksXG4gICAgICBtYXAoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXQ+KSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2tldHMgPSB0aGlzLm5ld0NvbGxlY3Rpb24oKTtcbiAgICAgICAgYmFza2V0cy5maWxsKHJlc3ApO1xuICAgICAgICByZXR1cm4gYmFza2V0cy5kYXRhWzBdO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaW5pdEJhc2tldCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFza2V0SW5pdENhbGxlZCkge1xuICAgICAgdGhpcy5iYXNrZXRJbml0Q2FsbGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZEJhc2tldCgpLnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5sb2FkUHJldmlldygpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbG9hZEJhc2tldCgpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRCYXNrZXQoKS5waXBlKHRha2UoMSkpO1xuICB9XG5cbiAgLy8gU2V0IGJhc2tldCBhcyBjb25maXJtZWQsIGFuZCByZXR1cm5zIG9ubHkgb25jZSB0aGUgbmV3IGN1cnJlbnQgbGlzdCBpcyByZXR1cm5lZFxuICBjb25maXJtQmFza2V0KCk6IE9ic2VydmFibGU8QmFza2V0PiB7XG4gICAgbGV0IGNvbmZpcm1lZEJhc2tldDogQmFza2V0O1xuICAgIHJldHVybiB0aGlzLmJhc2tldCQucGlwZShcbiAgICAgIHNraXBXaGlsZShiID0+ICFiKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoYmFza2V0ID0+IHtcbiAgICAgICAgYmFza2V0LmF0dHJpYnV0ZXMuY29uZmlybWVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGJhc2tldC5zYXZlKCk7XG4gICAgICB9KSxcbiAgICAgIHN3aXRjaE1hcCgocmVzcDogRG9jdW1lbnRSZXNvdXJjZTxCYXNrZXQ+KSA9PiB7XG4gICAgICAgIGNvbmZpcm1lZEJhc2tldCA9IHRoaXMubmV3KCk7XG4gICAgICAgIGNvbmZpcm1lZEJhc2tldC5maWxsKHJlc3ApO1xuICAgICAgICBjb25zdCB0b3RhbCA9IGNvbmZpcm1lZEJhc2tldC50b3RhbFByaWNlO1xuICAgICAgICBjb25zb2xlLmxvZygnW01pYW1dIHNlbmQgcHVzaCBhbmFseXRpY3MgZXZlbnQgaWYgPiAwOicsIHRvdGFsLCBjb25maXJtZWRCYXNrZXQpO1xuICAgICAgICBpZiAodG90YWwgPiAwKSB7XG4gICAgICAgICAgLy8gU2VuZCB0b3RhbCBpbiBjZW50c1xuICAgICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ3B1c2gtYmFza2V0JywgbnVsbCwgKHRvdGFsICogMTAwKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gc2V0IGJhc2tldCBhcyB1bmRlZmluZWQgYXMgaXQgYmVjYXVzZSBpbmNvbnNpc3RlbnQgd2hpbGUgd2UgcmVzZXQgdGhlIGxpc3QuIHRoZW4gd2FpdCBmb3IgbmV3IG9uZVxuICAgICAgICB0aGlzLl9iYXNrZXQkLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdHNTZXJ2aWNlLnJlc2V0TGlzdCgpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYmFza2V0JDtcbiAgICAgIH1cbiAgICAgICksXG4gICAgICBza2lwV2hpbGUoKGIpID0+ICFiKSxcbiAgICAgIG1hcCgoKSA9PiBjb25maXJtZWRCYXNrZXQpXG4gICAgKTtcbiAgfVxuXG4gIGJhc2tldEVudHJpZXMoKTogT2JzZXJ2YWJsZTxCYXNrZXRFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudHJpZXMkO1xuICB9XG5cbiAgYWN0aXZlQmFza2V0RW50cmllcygpOiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNrZXRFbnRyaWVzKCkucGlwZShcbiAgICAgIG1hcCgoZW50cmllczogQmFza2V0RW50cnlbXSkgPT4gZW50cmllcy5maWx0ZXIoZW50cnkgPT4gZW50cnkuZ3JvY2VyaWVzRW50cnlTdGF0dXMgPT09ICdhY3RpdmUnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gRGVjcmVhc2UgcXVhbnRpdHkgb24gYSBsaXN0IG9mIGJhc2tldCBlbnRyaWVzXG4gIC8vIElmIHRoZSBxdWFudGl0eSBnb2VzIGJlbG93IDEsIHRoZSBjb3JyZXNwb25kaW5nIGdyb2NlcmllcyBlbnRyeSdzIHN0YXR1cyBnZXRzIGRlbGV0ZWRcbiAgLy8gUmVsb2FkIGJhc2tldCBhZnRlciBhbGwgb2JqZWN0cyBhcmUgc2F2ZWRcbiAgcmVtb3ZlQmFza2V0RW50cmllcyhlbnRyaWVzVG9SZW1vdmU6IHsgaWQ6IHN0cmluZywgcXR5OiBudW1iZXIgfVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2VudHJpZXMkLnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2F2ZU9ic2VydmFibGVzOiBPYnNlcnZhYmxlPEdyb2Nlcmllc0VudHJ5fEJhc2tldEVudHJ5PltdID0gZW50cmllc1RvUmVtb3ZlLm1hcChlbnRyeVRvUmVtb3ZlID0+IHtcbiAgICAgIGNvbnN0IGJhc2tldEVudHJ5ID0gdGhpcy5fZW50cmllcyQudmFsdWUuZmluZChiZSA9PiBiZS5pZCA9PT0gZW50cnlUb1JlbW92ZS5pZCk7XG4gICAgICBpZiAoIWJhc2tldEVudHJ5IHx8ICFlbnRyeVRvUmVtb3ZlLnF0eSkge1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpbmFsQ291bnQgPSBiYXNrZXRFbnRyeS5xdWFudGl0eSAtIGVudHJ5VG9SZW1vdmUucXR5O1xuICAgICAgaWYgKGZpbmFsQ291bnQgPj0gMSkge1xuICAgICAgICBiYXNrZXRFbnRyeS5xdWFudGl0eSA9IGZpbmFsQ291bnQ7XG4gICAgICAgIHJldHVybiBiYXNrZXRFbnRyeS5zYXZlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYXNrZXRFbnRyeS5xdWFudGl0eSA9IDE7XG4gICAgICAgIGJhc2tldEVudHJ5Lmdyb2Nlcmllc0VudHJ5LnN0YXR1cyA9ICdkZWxldGVkJztcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKFtiYXNrZXRFbnRyeS5zYXZlKCksIGJhc2tldEVudHJ5Lmdyb2Nlcmllc0VudHJ5LnNhdmUoKV0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcmtKb2luKHNhdmVPYnNlcnZhYmxlcykucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxpc3RzU2VydmljZS5yZWZyZXNoQ3VycmVudExpc3QoKSksXG4gICAgICB0YWtlKDEpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEJhc2tldCgpOiBPYnNlcnZhYmxlPEJhc2tldD4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmxpc3RzU2VydmljZS5saXN0JCwgdGhpcy5wb3NTZXJ2aWNlLnBvcyRdKS5waXBlKFxuICAgICAgc2tpcFdoaWxlKHJlc3VsdHMgPT4gICFyZXN1bHRzWzBdIHx8ICFyZXN1bHRzWzFdKSxcbiAgICAgIHN3aXRjaE1hcChyZXN1bHRzID0+IHRoaXMuZmV0Y2hGb3JMaXN0QW5kUG9zKHJlc3VsdHNbMF0uaWQsIHJlc3VsdHNbMV0uaWQpKSxcbiAgICAgIHRhcChiYXNrZXQgPT4ge1xuICAgICAgICB0aGlzLl9iYXNrZXQkLm5leHQoYmFza2V0KTtcbiAgICAgICAgdGhpcy5iYXNrZXRJc0ZldGNoaW5nID0gZmFsc2U7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQcmV2aWV3KCk6IE9ic2VydmFibGU8QmFza2V0UHJldmlld0xpbmVbXT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2tldCQucGlwZShcbiAgICAgIHNraXBXaGlsZShiID0+ICFiKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmxvYWRSZWNpcGVzKCkpLFxuICAgICAgc3dpdGNoTWFwKHJlY2lwZXMgPT4ge1xuICAgICAgICBjb25zdCBiYXNrZXQ6IEJhc2tldCA9IHRoaXMuX2Jhc2tldCQudmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoQmFza2V0RW50cmllcyhiYXNrZXQpLnBpcGUoXG4gICAgICAgICAgbWFwKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZUVudHJpZXMgPSB0aGlzLmdyb3VwQmFza2V0RW50cmllcyhyZWNpcGVzLCBlbnRyaWVzKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy5yZWNpcGVzQW5kTGluZUVudHJpZXNUb0Jhc2tldFByZXZpZXdMaW5lKHJlY2lwZXMsIGxpbmVFbnRyaWVzKTtcbiAgICAgICAgICAgIHRoaXMuX2Jhc2tldFByZXZpZXckLm5leHQobGluZXMpO1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRQcmV2aWV3SXNDYWxjdWxhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRTdGF0cyQubmV4dCh0aGlzLmJ1aWxkU3RhdHMobGluZXMpKTtcbiAgICAgICAgICAgIHJldHVybiBsaW5lcztcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEJhc2tldEVudHJpZXMoYmFza2V0OiBCYXNrZXQpOiBPYnNlcnZhYmxlPEJhc2tldEVudHJ5W10+IHtcbiAgICBpZiAoIWJhc2tldCB8fCAhYmFza2V0LmNvbXBsZXRpb24gfHwgYmFza2V0LmNvbXBsZXRpb24udG90YWwgPCAxKSB7XG4gICAgICB0aGlzLl9lbnRyaWVzJC5uZXh0KFtdKTtcbiAgICAgIHJldHVybiB0aGlzLl9lbnRyaWVzJDtcbiAgICB9XG5cbiAgICBjb25zdCBwYWdlc0NvdW50ID0gTWF0aC5jZWlsKGJhc2tldC5jb21wbGV0aW9uLnRvdGFsIC8gQmFza2V0c1NlcnZpY2UuZW50cmllc1BlclBhZ2VzKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkocGFnZXNDb3VudCkpLm1hcCgodiwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hCYXNrZXRFbnRyaWVzUGFnZShiYXNrZXQsIGkgKyAxKTtcbiAgICB9KSkucGlwZShcbiAgICAgIG1hcCgoY29sbGVjdGlvbnM6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT5bXSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZmxhdHRlbihjb2xsZWN0aW9ucy5tYXAoY29sID0+IGNvbC5kYXRhKSk7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaChlID0+IGUuc2V0SXRlbXNTZWxlY3Rpb24oKSk7XG4gICAgICAgIHRoaXMuX2VudHJpZXMkLm5leHQoZW50cmllcyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbnRyaWVzJC52YWx1ZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdGF0cyhsaW5lczogQmFza2V0UHJldmlld0xpbmVbXSk6IEJhc2tldFN0YXRzIHtcbiAgICBjb25zdCBlbnRyaWVzRm91bmQ6IEJhc2tldEVudHJ5W10gPSB1bmlvbkJ5KC4uLiBsaW5lcy5tYXAobGluZSA9PiBsaW5lLmVudHJpZXMuZm91bmQpLCAnaWQnKTtcblxuICAgIGNvbnN0IHRvdGFsUHJpY2UgPSBlbnRyaWVzRm91bmQucmVkdWNlKCh0b3RhbCAsIGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBpdGVtID0gZW50cnkuYXR0cmlidXRlc1snYmFza2V0LWVudHJpZXMtaXRlbXMnXS5maW5kKGkgPT4gaS5pdGVtX2lkID09PSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ10pO1xuICAgICAgdG90YWwgKz0gIChlbnRyeS5hdHRyaWJ1dGVzLnF1YW50aXR5IHx8IDApICogcGFyc2VGbG9hdChpdGVtWyd1bml0LXByaWNlJ10pO1xuICAgICAgcmV0dXJuIHRvdGFsO1xuICAgIH0sIDAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWNpcGVzQ291bnQ6IGxpbmVzLmxlbmd0aCxcbiAgICAgIGVudHJpZXNDb3VudDogZW50cmllc0ZvdW5kLmxlbmd0aCxcbiAgICAgIHRvdGFsUHJpY2VcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEJhc2tldEVudHJpZXNQYWdlKGJhc2tldDogQmFza2V0LCBwYWdlOiBudW1iZXIpIHtcbiAgICBsZXQgdXJsID0gW2UubWlhbUFQSSwgJ2FwaS92MS9iYXNrZXRzJywgYmFza2V0LmlkLCAnYmFza2V0LWVudHJpZXMnXS5qb2luKCcvJyk7XG4gICAgdXJsID0gYCR7dXJsfT9pbmNsdWRlPWdyb2Nlcmllcy1lbnRyeSxpdGVtcyZwYWdlW251bWJlcl09JHtwYWdlfSZwYWdlW3NpemVdPSR7QmFza2V0c1NlcnZpY2UuZW50cmllc1BlclBhZ2VzfWA7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXG4gICAgICBza2lwV2hpbGUoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT4pID0+IHJlc3AuaXNfbG9hZGluZyksXG4gICAgICBtYXAoKHJlc3A6IERvY3VtZW50Q29sbGVjdGlvbjxCYXNrZXRFbnRyeT4pID0+IHtcbiAgICAgICAgY29uc3QgYmFza2V0RW50cmllcyA9IHRoaXMuYmFza2V0RW50cmllc1NlcnZpY2UubmV3Q29sbGVjdGlvbigpO1xuICAgICAgICBiYXNrZXRFbnRyaWVzLmZpbGwocmVzcCk7XG4gICAgICAgIHJldHVybiBiYXNrZXRFbnRyaWVzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNpcGVzQW5kTGluZUVudHJpZXNUb0Jhc2tldFByZXZpZXdMaW5lKHJlY2lwZXM6IFJlY2lwZVtdLCBsaW5lRW50cmllczogTGluZUVudHJpZXNbXSk6IEJhc2tldFByZXZpZXdMaW5lW10ge1xuICAgIHJldHVybiByZWNpcGVzLm1hcCgocmVjaXBlLCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW1zQ291bnQgPSBsaW5lRW50cmllc1tpZHhdLmZvdW5kLmxlbmd0aDtcbiAgICAgIGxldCByZWNpcGVQcmljZSA9IDAuMDtcbiAgICAgIGNvbnN0IGd1ZXN0cyA9IHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCBwYXJzZUludChyZWNpcGUuZ3Vlc3RzLCAxMCk7XG5cbiAgICAgIGxpbmVFbnRyaWVzW2lkeF0uZm91bmQuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ2Jhc2tldC1lbnRyaWVzLWl0ZW1zJ10uZmluZChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5pdGVtX2lkID09PSBlbnRyeS5hdHRyaWJ1dGVzWydzZWxlY3RlZC1pdGVtLWlkJ107XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBxdHkgPSBlbnRyeS5hdHRyaWJ1dGVzLnF1YW50aXR5O1xuICAgICAgICBjb25zdCB1bml0UHJpY2UgPSBwYXJzZUZsb2F0KHNlbGVjdGVkSXRlbVsndW5pdC1wcmljZSddKTtcbiAgICAgICAgY29uc3QgbnVtYmVyT2ZSZWNpcGVzRm9yRW50cnkgPSBlbnRyeS5hdHRyaWJ1dGVzWydyZWNpcGUtaWRzJ10ubGVuZ3RoIHx8IDE7XG5cbiAgICAgICAgcmVjaXBlUHJpY2UgKz0gKHF0eSAqIHVuaXRQcmljZSkgLyBudW1iZXJPZlJlY2lwZXNGb3JFbnRyeTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcHJpY2VQZXJHdWVzdCA9IHJlY2lwZVByaWNlIC8gZ3Vlc3RzO1xuXG4gICAgICByZXR1cm4gQmFza2V0UHJldmlld0xpbmUuZnJvbVJlY2lwZShyZWNpcGUsIGl0ZW1zQ291bnQsIHByaWNlUGVyR3Vlc3QsIHJlY2lwZVByaWNlLCBsaW5lRW50cmllc1tpZHhdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBCYXNrZXRFbnRyaWVzKHJlY2lwZXM6IFJlY2lwZVtdLCBlbnRyaWVzOiBCYXNrZXRFbnRyeVtdKTogTGluZUVudHJpZXNbXSB7XG4gICAgcmV0dXJuIHJlY2lwZXMubWFwKHJlY2lwZSA9PiB7XG4gICAgICBjb25zdCBsaW5lRW50cmllcyA9IHsgZm91bmQ6IFtdLCBub3RGb3VuZDogW10sIG9mdGVuRGVsZXRlZDogW10sIHJlbW92ZWQ6IFtdIH0gYXMgTGluZUVudHJpZXM7XG4gICAgICBlbnRyaWVzXG4gICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkuYXR0cmlidXRlc1sncmVjaXBlLWlkcyddLmluY2x1ZGVzKHBhcnNlSW50KHJlY2lwZS5pZCwgMTApKSlcbiAgICAgICAgLmZvckVhY2goZW50cnkgPT4ge1xuICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IGVudHJ5LmF0dHJpYnV0ZXNbJ3NlbGVjdGVkLWl0ZW0taWQnXTtcbiAgICAgICAgICBpZiAoYXZhaWxhYmxlKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LmF0dHJpYnV0ZXNbJ2dyb2Nlcmllcy1lbnRyeS1zdGF0dXMnXSkge1xuICAgICAgICAgICAgICBjYXNlICdvZnRlbl9kZWxldGVkJzoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLm9mdGVuRGVsZXRlZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlICdkZWxldGVkJzoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLnJlbW92ZWQucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGxpbmVFbnRyaWVzLmZvdW5kLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpbmVFbnRyaWVzLm5vdEZvdW5kLnB1c2goZW50cnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gbGluZUVudHJpZXM7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -38,8 +38,10 @@ export class ContextService {
|
|
|
38
38
|
this.breakpointObserver = breakpointObserver;
|
|
39
39
|
this.videoRecipesEnabled = false;
|
|
40
40
|
this.articlesInCatalogEnabled = false;
|
|
41
|
+
this.tagsOnRecipesEnabled = false;
|
|
41
42
|
this.displayIngredientPicturesOnRecipeCards = false;
|
|
42
43
|
this.defaultIngredientPicture = 'https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg';
|
|
44
|
+
this.globalScrollableElement = document.body;
|
|
43
45
|
this.isSmallScreen$ = new BehaviorSubject(false);
|
|
44
46
|
this.basketWrapper = new BasketWrapper();
|
|
45
47
|
this.miam = {
|
|
@@ -88,6 +90,9 @@ export class ContextService {
|
|
|
88
90
|
},
|
|
89
91
|
enableUserPreferences: () => {
|
|
90
92
|
this.userService.preferencesActivated$.next(true);
|
|
93
|
+
},
|
|
94
|
+
enableTagsOnRecipes: () => {
|
|
95
|
+
this.tagsOnRecipesEnabled = true;
|
|
91
96
|
}
|
|
92
97
|
},
|
|
93
98
|
hook: {
|
|
@@ -155,6 +160,14 @@ export class ContextService {
|
|
|
155
160
|
device: this.mediaMatcher,
|
|
156
161
|
isSmallScreen$: this.isSmallScreen$.asObservable()
|
|
157
162
|
},
|
|
163
|
+
view: {
|
|
164
|
+
// Set the main scrolling HTMLElement of the website so we can disable scroll when a modal/drawer/popup is open
|
|
165
|
+
setGlobalScrollableElement: (element) => {
|
|
166
|
+
if (element && this.globalScrollableElement !== element) {
|
|
167
|
+
this.globalScrollableElement = element;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
158
171
|
/**
|
|
159
172
|
* Override two times 'll not be considered
|
|
160
173
|
* @param icon have to be a knowed icon name see section 'Custom icons' in read me
|
|
@@ -204,4 +217,4 @@ ContextService.ɵprov = i0.ɵɵdefineInjectable({ token: ContextService, factory
|
|
|
204
217
|
providedIn: 'root'
|
|
205
218
|
}]
|
|
206
219
|
}], function () { return [{ type: i1.PointOfSalesService }, { type: i2.GroceriesListsService }, { type: i3.BasketsService }, { type: i4.UserService }, { type: i5.RecipeProviderService }, { type: i6.AnalyticsService }, { type: i7.RecipesService }, { type: i8.MediaMatcher }, { type: i9.SuppliersService }, { type: i8.BreakpointObserver }]; }, null); })();
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7O0FBRTNGLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDO0FBTzlDLDZDQUE2QztBQUk3QyxNQUFNLE9BQU8sY0FBYztJQW9KekIsWUFD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QUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sT0FBTyxDQUFDLGVBQXdCLEVBQUUsVUFBbUI7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsZ0hBQWdIO1FBQ2hILElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLDJEQUEyRDtTQUM5RjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NEVBNUxVLGNBQWM7c0RBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTtrREFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4vZ3JvY2VyaWVzLWxpc3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4vcG9pbnQtb2Ytc2FsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSB9IGZyb20gJy4vYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWNpcGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVkaWFNYXRjaGVyLCBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IFN1cHBsaWVyc1NlcnZpY2UgfSBmcm9tICcuL3N1cHBsaWVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9fbW9kZWxzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0SGFuZGxlciwgQmFza2V0V3JhcHBlciwgQ29tcGFyYWJsZVByb2R1Y3QgfSBmcm9tICcuLi9fdXRpbHMvc3luY2hyby1iYXNrZXQnO1xuXG5jb25zdCBTTUFMTF9TQ1JFRU5fQlAgPSAnKG1pbi13aWR0aDogMTAyM3B4KSc7XG5cbmludGVyZmFjZSBJY29uT3ZlcnJpZGUge1xuICBpY29uOiBJY29uO1xuICB1cmw6IHN0cmluZztcbn1cblxuLy8gQ29udGV4dCBzaGFyZWQgYmV0d2VlbiBNaWFtIFNESyAmIGhvc3QgYXBwXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0U2VydmljZSB7XG4gIHVzZXJJbmZvOiBVc2VyO1xuICBpY29uczogSWNvbk92ZXJyaWRlW107XG4gIHZpZGVvUmVjaXBlc0VuYWJsZWQgPSBmYWxzZTtcbiAgYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkID0gZmFsc2U7XG4gIGhvb2tDYWxsYmFjazogKGlzTG9nZ2VkLCBpc1Bvc1ZhbGlkKSA9PiBib29sZWFuO1xuICBkaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyA9IGZhbHNlO1xuICBkZWZhdWx0SW5ncmVkaWVudFBpY3R1cmUgPSAnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvZGVmYXVsdC1pbmdyZWRpZW50LXBpY3R1cmUuc3ZnJztcblxuICBwcml2YXRlIENPUlNJc3N1ZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGJhc2tldFdyYXBwZXIgPSBuZXcgQmFza2V0V3JhcHBlcigpO1xuICBwcml2YXRlIGJhc2tldEhhbmRsZXI6IEJhc2tldEhhbmRsZXI7XG5cbiAgbWlhbSA9IHtcbiAgICBhbmFseXRpY3M6IHtcbiAgICAgIGluaXQ6IChnYUtleTogc3RyaW5nLCBvcHRpbWl6ZUtleTogc3RyaW5nID0gbnVsbCkgPT4gdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmluaXQoZ2FLZXksIG9wdGltaXplS2V5KSxcbiAgICAgIHNldEFiVGVzdEtleTogKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5hYlRlc3RrZXkgPSBrZXk7XG4gICAgICB9XG4gICAgfSxcbiAgICBiYXNrZXQ6IHtcbiAgICAgIHN0YXRzJDogdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQsXG4gICAgICBlbnRyaWVzJDogdGhpcy5iYXNrZXRzU2VydmljZS5hY3RpdmVCYXNrZXRFbnRyaWVzKCksXG4gICAgICBjb25maXJtOiAoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLmNvbmZpcm1CYXNrZXQoKSxcbiAgICAgIHBhaWQ6IChwcmljZSA9IDApID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSBzZW5kIHBheW1lbnQgYW5hbHl0aWNzIGV2ZW50Jyk7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ3BheS1iYXNrZXQnLCBudWxsLCBwcmljZSk7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlRW50cmllczogKGVudHJpZXM6IHsgaWQ6IHN0cmluZywgcXR5OiBudW1iZXIgfVtdKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbW92ZUJhc2tldEVudHJpZXMoZW50cmllcyksXG4gICAgICBpbml0QmFza2V0U3luY2hybzogKCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIgPSBuZXcgQmFza2V0SGFuZGxlcih0aGlzLmJhc2tldFdyYXBwZXIpO1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuaW5pdEJhc2tldFByb2Nlc3MoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGJhc2tldE1hcHBlcjoge1xuICAgICAgaGFzUGF5bWVudDogKGNhbGxiYWNrOiAoKSA9PiBib29sZWFuKSA9PiB0aGlzLmJhc2tldFdyYXBwZXIuaGFzUGF5bWVudCA9IGNhbGxiYWNrLFxuICAgICAgcGF5bWVudFRvdGFsOiAoY2FsbGJhY2s6ICgpID0+IG51bWJlcikgPT4gdGhpcy5iYXNrZXRXcmFwcGVyLnBheW1lbnRUb3RhbCA9IGNhbGxiYWNrLFxuICAgICAgbGlzdGVuVG9SZXRhaWxlckJhc2tldDogKGNhbGxiYWNrOiAoYmFza2V0Q2hhbmdlZENhbGxCYWNrOiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRXcmFwcGVyLmxpc3RlblRvUmV0YWlsZXJCYXNrZXQgPSBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgICBnZXRCYXNrZXRQcm9kdWN0czogKGNhbGxiYWNrOiAoKSA9PiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB0aGlzLmJhc2tldFdyYXBwZXIuZ2V0QmFza2V0UHJvZHVjdHMgPSBjYWxsYmFjayxcbiAgICAgIHB1c2hQcm9kdWN0c1RvQmFza2V0OiAoY2FsbGJhY2s6IChwcm9kdWN0czogYW55W10pID0+IHZvaWQpID0+IHRoaXMuYmFza2V0V3JhcHBlci5wdXNoUHJvZHVjdHNUb0Jhc2tldCA9IGNhbGxiYWNrLFxuICAgICAgbWFwQ29tcGFyYWJsZVByb2R1Y3RUb1Byb2R1Y3Q6IChjYWxsYmFjazogKGNvbXBhcmFibGVQcm9kdWN0OiBDb21wYXJhYmxlUHJvZHVjdCkgPT4gYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0V3JhcHBlci5tYXBDb21wYXJhYmxlUHJvZHVjdFRvUHJvZHVjdCA9IGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBlbmFibGVWaWRlb1JlY2lwZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb1JlY2lwZXNFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gSW5qZWN0IHlvdXR1YmUgc2NyaXB0XG4gICAgICAgIGNvbnN0IHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICB0YWcuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhZyk7XG4gICAgICB9LFxuICAgICAgZW5hYmxlQXJ0aWNsZXNJbkNhdGFsb2c6ICgpID0+IHtcbiAgICAgICAgdGhpcy5hcnRpY2xlc0luQ2F0YWxvZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnByZWZlcmVuY2VzQWN0aXZhdGVkJC5uZXh0KHRydWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgaG9vazoge1xuICAgICAgc2V0SG9va0NhbGxiYWNrOiAoY2FsbGJhY2s6IChpc0xvZ2dlZCwgaXNQb3NWYWxpZCkgPT4gYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmhvb2tDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgfVxuICAgIH0sXG4gICAgbGlzdDoge1xuICAgICAgcmVzZXQ6ICgpID0+IHRoaXMubGlzdHNTZXJ2aWNlLnJlc2V0TGlzdCgpLnN1YnNjcmliZSgpLFxuICAgICAgYWRkUmVjaXBlOiAocmVjaXBlSWQsIGd1ZXN0cykgPT4gdGhpcy5saXN0c1NlcnZpY2UuYXBwZW5kUmVjaXBlVG9MaXN0KHJlY2lwZUlkLCBndWVzdHMsICdjbGllbnQnKSxcbiAgICAgIGhhc1JlY2lwZTogKHJlY2lwZUlkKSA9PiB0aGlzLmxpc3RzU2VydmljZS5yZWNpcGVJc0luTGlzdChyZWNpcGVJZClcbiAgICB9LFxuICAgIHBvczoge1xuICAgICAgbG9hZDogKHBvc0lkKSA9PiB7XG4gICAgICAgIHRoaXMucG9zU2VydmljZS5sb2FkUG9zKHBvc0lkKTtcbiAgICAgIH0sXG4gICAgICBsb2FkV2l0aEV4dElkOiAoZXh0SWQsIHN1cHBsaWVySWQpID0+IHtcbiAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLmxvYWRQb3NXaXRoRXh0SWQoZXh0SWQsIHN1cHBsaWVySWQpO1xuICAgICAgfSxcbiAgICAgIHBvcyQ6IHRoaXMucG9zU2VydmljZS5wb3MkXG4gICAgfSxcbiAgICByZWNpcGVzOiB7XG4gICAgICBkaXNwbGF5OiAoaWQsIHByZXZpZXdBbGxvd2VkID0gdHJ1ZSwgcHJldmlld01vZGUgPSBmYWxzZSkgPT4gdGhpcy5yZWNpcGVzU2VydmljZS5kaXNwbGF5KGlkLCB7cHJldmlld0FsbG93ZWQsIHByZXZpZXdNb2RlfSksXG4gICAgICBoaWRkZW46IHRoaXMucmVjaXBlc1NlcnZpY2UuaGlkZGVuLFxuICAgICAgc2VhcmNoOiAocHJvdmlkZXIsIHF1ZXJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmFsbChcbiAgICAgICAgICB7IHJlbW90ZWZpbHRlcjogeyByZWNpcGVfcHJvdmlkZXJfaWQ6IHByb3ZpZGVyLCBzZWFyY2g6IHF1ZXJ5IH0gfVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiAhcmVzdWx0KSxcbiAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2VbJ2RhdGEnXSlcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBzaG91bGREaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkczogKHNob3VsZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzID0gc2hvdWxkO1xuICAgICAgfSxcbiAgICAgIHNldERlZmF1bHRJbmdyZWRpZW50UGljdHVyZTogKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlID0gdXJsO1xuICAgICAgfSxcbiAgICAgIHNldFN1Z2dlc3Rpb25zUHJpbWFyeUJ1dHRvbkFjdGlvbnM6IChkaXNwbGF5ID0gdHJ1ZSwgYWRkVG9CYXNrZXQgPSB0cnVlKSA9PiB7XG4gICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2Uuc3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9ucyA9IHsgZGlzcGxheSwgYWRkVG9CYXNrZXQgfTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHN1cHBsaWVyOiB7XG4gICAgICBsb2FkOiAoc3VwcGxpZXJJZDogbnVtYmVyIHwgc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5sb2FkU3VwcGxpZXIoc3VwcGxpZXJJZC50b1N0cmluZygpKTtcbiAgICAgIH0sXG4gICAgICBub3RpZnlCYXNrZXRVcGRhdGVkOiAoYmFza2V0VG9rZW46IHN0cmluZywgc3RhdHVzOiBzdHJpbmcsIHByaWNlOiBudW1iZXIgfCBzdHJpbmcgPSBudWxsKSA9PiB7XG4gICAgICAgIHRoaXMuc3VwcGxpZXJzU2VydmljZS5ub3RpZnlCYXNrZXRVcGRhdGVkKGJhc2tldFRva2VuLCBzdGF0dXMsIHByaWNlKS5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZXI6IHtcbiAgICAgIHNldFRva2VuOiAodG9rZW4sIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlLCBpbml0QmFza2V0ID0gZmFsc2UpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19taWFtL3VzZXJUb2tlbicsIHRva2VuKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJJZCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2dVc2VyKGZvcmJpZFByb2ZpbGluZywgaW5pdEJhc2tldCk7XG4gICAgICB9LFxuICAgICAgbG9hZFdpdGhFeHRJZDogKGlkLCBmb3JiaWRQcm9maWxpbmcgPSBmYWxzZSwgaW5pdEJhc2tldCA9IGZhbHNlKSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS91c2VySWQnLCBpZCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS91c2VyVG9rZW4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9nVXNlcihmb3JiaWRQcm9maWxpbmcsIGluaXRCYXNrZXQpO1xuICAgICAgfSxcbiAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfbWlhbS91c2VyVG9rZW4nKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJJZCcpO1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnRvZ2dsZUlzTG9nZ2VkKGZhbHNlKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSB3aWxsIHJlZnJlc2ggbGlzdCBhZnRlciByZXNldCcpO1xuICAgICAgICB0aGlzLmxpc3RzU2VydmljZS5yZWZyZXNoQ3VycmVudExpc3QoKTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZS5yZXNldFVzZXJJbmZvKCk7XG4gICAgICB9LFxuICAgICAgZGV2aWNlOiB0aGlzLm1lZGlhTWF0Y2hlcixcbiAgICAgIGlzU21hbGxTY3JlZW4kOiB0aGlzLmlzU21hbGxTY3JlZW4kLmFzT2JzZXJ2YWJsZSgpXG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIE92ZXJyaWRlIHR3byB0aW1lcyAnbGwgbm90IGJlIGNvbnNpZGVyZWRcbiAgICAgKiBAcGFyYW0gaWNvbiBoYXZlIHRvIGJlIGEga25vd2VkIGljb24gbmFtZSBzZWUgc2VjdGlvbiAnQ3VzdG9tIGljb25zJyBpbiByZWFkIG1lXG4gICAgICogQHBhcmFtIHVybCBvZiB0aGUgbmV3IGljb25cbiAgICAgKi9cbiAgICBvdmVycmlkZUljb246IChpY29uLCB1cmwpID0+IHtcbiAgICAgIGlmICghdGhpcy5pY29ucykgeyB0aGlzLmljb25zID0gW107IH1cbiAgICAgIGNvbnN0IGV4aXN0aW5nSWNvbiA9IHRoaXMuaWNvbnMuZmluZCgoaTogSWNvbk92ZXJyaWRlKSA9PiBpLmljb24udG9TdHJpbmcoKSA9PT0gaWNvbik7XG4gICAgICBpZiAoZXhpc3RpbmdJY29uKSB7XG4gICAgICAgIHRoaXMuaWNvbnMuc3BsaWNlKHRoaXMuaWNvbnMuaW5kZXhPZihleGlzdGluZ0ljb24pLCAxKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaWNvbnMucHVzaCh7IGljb24sIHVybCB9KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwb3NTZXJ2aWNlOiBQb2ludE9mU2FsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRzU2VydmljZTogQmFza2V0c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzUHJvdmlkZXJzU2VydmljZTogUmVjaXBlUHJvdmlkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyLFxuICAgIHByaXZhdGUgc3VwcGxpZXJzU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge1xuICAgIHRoaXMuaXNTbWFsbFNjcmVlbiQubmV4dCghdGhpcy5tZWRpYU1hdGNoZXIubWF0Y2hNZWRpYShTTUFMTF9TQ1JFRU5fQlApLm1hdGNoZXMpO1xuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoU01BTExfU0NSRUVOX0JQKS5zdWJzY3JpYmUoQlBDaGFuZ2UgPT4gdGhpcy5pc1NtYWxsU2NyZWVuJC5uZXh0KCFCUENoYW5nZS5tYXRjaGVzKSk7XG4gICAgdGhpcy5pY29ucyA9IFtdO1xuICAgIHRoaXMuQ09SU0lzc3VlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICAgIE9iamVjdC5hc3NpZ24od2luZG93LCB7IG1pYW06IHRoaXMubWlhbSB9KTtcblxuICB9XG5cbiAgc2V0Q09SU0lzc3VlU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLkNPUlNJc3N1ZXMubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXRDT1JTSXNzdWVzU3RhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuQ09SU0lzc3Vlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldE92ZXJyaWRlSWNvblVybChpY29uOiBJY29uKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaW5kaWNvbiA9IHRoaXMuaWNvbnMuZmluZChlbCA9PiBlbC5pY29uLnRvU3RyaW5nKCkgPT09IEljb25baWNvbl0pO1xuICAgIHJldHVybiBmaW5kaWNvbiA/IGZpbmRpY29uLnVybCA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dVc2VyKGZvcmJpZFByb2ZpbGluZzogYm9vbGVhbiwgaW5pdEJhc2tldDogYm9vbGVhbikge1xuICAgIHRoaXMudXNlclNlcnZpY2UudG9nZ2xlSXNMb2dnZWQodHJ1ZSk7XG4gICAgLy8gaWYgaW5pdEJhc2tldCBpcyBzZXQgdG8gZmFsc2UsIHRoZSBiYXNrZXQgJiBsaXN0IHdpbGwgbm90IGJlIGluaXRpYWxpc2VkIHVudGlsIHRoZSBmaXJzdCB0aW1lIHRoZXkgYXJlIG5lZWRlZFxuICAgIGlmIChpbml0QmFza2V0KSB7XG4gICAgICB0aGlzLmJhc2tldHNTZXJ2aWNlLmluaXRCYXNrZXQoKTsgLy8gVGhlIGJhc2tldCBuZWVkcyB0aGUgR0wgc28gYm90aCB3aWxsIGJlIGluaXRpYWxpemVkIGhlcmVcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2Uuc2V0VXNlckluZm8oZm9yYmlkUHJvZmlsaW5nKTtcbiAgfVxufVxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fc2VydmljZXMvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7O0FBRTNGLE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDO0FBTzlDLDZDQUE2QztBQUk3QyxNQUFNLE9BQU8sY0FBYztJQWlLekIsWUFD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QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUU3QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBVTtRQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sT0FBTyxDQUFDLGVBQXdCLEVBQUUsVUFBbUI7UUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsZ0hBQWdIO1FBQ2hILElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLDJEQUEyRDtTQUM5RjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7NEVBek1VLGNBQWM7c0RBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTtrREFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4vZ3JvY2VyaWVzLWxpc3RzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4vcG9pbnQtb2Ytc2FsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNrZXRzU2VydmljZSB9IGZyb20gJy4vYmFza2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vcmVjaXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWNpcGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVkaWFNYXRjaGVyLCBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IFN1cHBsaWVyc1NlcnZpY2UgfSBmcm9tICcuL3N1cHBsaWVycy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9fbW9kZWxzJztcbmltcG9ydCB7IG1hcCwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFza2V0SGFuZGxlciwgQmFza2V0V3JhcHBlciwgQ29tcGFyYWJsZVByb2R1Y3QgfSBmcm9tICcuLi9fdXRpbHMvc3luY2hyby1iYXNrZXQnO1xuXG5jb25zdCBTTUFMTF9TQ1JFRU5fQlAgPSAnKG1pbi13aWR0aDogMTAyM3B4KSc7XG5cbmludGVyZmFjZSBJY29uT3ZlcnJpZGUge1xuICBpY29uOiBJY29uO1xuICB1cmw6IHN0cmluZztcbn1cblxuLy8gQ29udGV4dCBzaGFyZWQgYmV0d2VlbiBNaWFtIFNESyAmIGhvc3QgYXBwXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb250ZXh0U2VydmljZSB7XG4gIHVzZXJJbmZvOiBVc2VyO1xuICBpY29uczogSWNvbk92ZXJyaWRlW107XG4gIHZpZGVvUmVjaXBlc0VuYWJsZWQgPSBmYWxzZTtcbiAgYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkID0gZmFsc2U7XG4gIHRhZ3NPblJlY2lwZXNFbmFibGVkID0gZmFsc2U7XG4gIGhvb2tDYWxsYmFjazogKGlzTG9nZ2VkLCBpc1Bvc1ZhbGlkKSA9PiBib29sZWFuO1xuICBkaXNwbGF5SW5ncmVkaWVudFBpY3R1cmVzT25SZWNpcGVDYXJkcyA9IGZhbHNlO1xuICBkZWZhdWx0SW5ncmVkaWVudFBpY3R1cmUgPSAnaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvZGVmYXVsdC1pbmdyZWRpZW50LXBpY3R1cmUuc3ZnJztcbiAgZ2xvYmFsU2Nyb2xsYWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keTtcblxuICBwcml2YXRlIENPUlNJc3N1ZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgcHJpdmF0ZSBpc1NtYWxsU2NyZWVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGJhc2tldFdyYXBwZXIgPSBuZXcgQmFza2V0V3JhcHBlcigpO1xuICBwcml2YXRlIGJhc2tldEhhbmRsZXI6IEJhc2tldEhhbmRsZXI7XG5cbiAgbWlhbSA9IHtcbiAgICBhbmFseXRpY3M6IHtcbiAgICAgIGluaXQ6IChnYUtleTogc3RyaW5nLCBvcHRpbWl6ZUtleTogc3RyaW5nID0gbnVsbCkgPT4gdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmluaXQoZ2FLZXksIG9wdGltaXplS2V5KSxcbiAgICAgIHNldEFiVGVzdEtleTogKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5hYlRlc3RrZXkgPSBrZXk7XG4gICAgICB9XG4gICAgfSxcbiAgICBiYXNrZXQ6IHtcbiAgICAgIHN0YXRzJDogdGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXRTdGF0cyQsXG4gICAgICBlbnRyaWVzJDogdGhpcy5iYXNrZXRzU2VydmljZS5hY3RpdmVCYXNrZXRFbnRyaWVzKCksXG4gICAgICBjb25maXJtOiAoKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLmNvbmZpcm1CYXNrZXQoKSxcbiAgICAgIHBhaWQ6IChwcmljZSA9IDApID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tNaWFtXSBzZW5kIHBheW1lbnQgYW5hbHl0aWNzIGV2ZW50Jyk7XG4gICAgICAgIHRoaXMuYW5hbHl0aWNzU2VydmljZS5zZW5kRXZlbnQoJ3BheS1iYXNrZXQnLCBudWxsLCBwcmljZSk7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlRW50cmllczogKGVudHJpZXM6IHsgaWQ6IHN0cmluZywgcXR5OiBudW1iZXIgfVtdKSA9PiB0aGlzLmJhc2tldHNTZXJ2aWNlLnJlbW92ZUJhc2tldEVudHJpZXMoZW50cmllcyksXG4gICAgICBpbml0QmFza2V0U3luY2hybzogKCkgPT4ge1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIgPSBuZXcgQmFza2V0SGFuZGxlcih0aGlzLmJhc2tldFdyYXBwZXIpO1xuICAgICAgICB0aGlzLmJhc2tldEhhbmRsZXIuaW5pdEJhc2tldFByb2Nlc3MoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGJhc2tldE1hcHBlcjoge1xuICAgICAgaGFzUGF5bWVudDogKGNhbGxiYWNrOiAoKSA9PiBib29sZWFuKSA9PiB0aGlzLmJhc2tldFdyYXBwZXIuaGFzUGF5bWVudCA9IGNhbGxiYWNrLFxuICAgICAgcGF5bWVudFRvdGFsOiAoY2FsbGJhY2s6ICgpID0+IG51bWJlcikgPT4gdGhpcy5iYXNrZXRXcmFwcGVyLnBheW1lbnRUb3RhbCA9IGNhbGxiYWNrLFxuICAgICAgbGlzdGVuVG9SZXRhaWxlckJhc2tldDogKGNhbGxiYWNrOiAoYmFza2V0Q2hhbmdlZENhbGxCYWNrOiAocHJvZHVjdHM6IENvbXBhcmFibGVQcm9kdWN0W10pID0+IHZvaWQpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5iYXNrZXRXcmFwcGVyLmxpc3RlblRvUmV0YWlsZXJCYXNrZXQgPSBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgICBnZXRCYXNrZXRQcm9kdWN0czogKGNhbGxiYWNrOiAoKSA9PiBDb21wYXJhYmxlUHJvZHVjdFtdKSA9PiB0aGlzLmJhc2tldFdyYXBwZXIuZ2V0QmFza2V0UHJvZHVjdHMgPSBjYWxsYmFjayxcbiAgICAgIHB1c2hQcm9kdWN0c1RvQmFza2V0OiAoY2FsbGJhY2s6IChwcm9kdWN0czogYW55W10pID0+IHZvaWQpID0+IHRoaXMuYmFza2V0V3JhcHBlci5wdXNoUHJvZHVjdHNUb0Jhc2tldCA9IGNhbGxiYWNrLFxuICAgICAgbWFwQ29tcGFyYWJsZVByb2R1Y3RUb1Byb2R1Y3Q6IChjYWxsYmFjazogKGNvbXBhcmFibGVQcm9kdWN0OiBDb21wYXJhYmxlUHJvZHVjdCkgPT4gYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYmFza2V0V3JhcHBlci5tYXBDb21wYXJhYmxlUHJvZHVjdFRvUHJvZHVjdCA9IGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICB9LFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBlbmFibGVWaWRlb1JlY2lwZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb1JlY2lwZXNFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgLy8gSW5qZWN0IHlvdXR1YmUgc2NyaXB0XG4gICAgICAgIGNvbnN0IHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICB0YWcuc3JjID0gJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGknO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRhZyk7XG4gICAgICB9LFxuICAgICAgZW5hYmxlQXJ0aWNsZXNJbkNhdGFsb2c6ICgpID0+IHtcbiAgICAgICAgdGhpcy5hcnRpY2xlc0luQ2F0YWxvZ0VuYWJsZWQgPSB0cnVlO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZVVzZXJQcmVmZXJlbmNlczogKCkgPT4ge1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnByZWZlcmVuY2VzQWN0aXZhdGVkJC5uZXh0KHRydWUpO1xuICAgICAgfSxcbiAgICAgIGVuYWJsZVRhZ3NPblJlY2lwZXM6ICgpID0+IHtcbiAgICAgICAgdGhpcy50YWdzT25SZWNpcGVzRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSxcbiAgICBob29rOiB7XG4gICAgICBzZXRIb29rQ2FsbGJhY2s6IChjYWxsYmFjazogKGlzTG9nZ2VkLCBpc1Bvc1ZhbGlkKSA9PiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaG9va0NhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICB9XG4gICAgfSxcbiAgICBsaXN0OiB7XG4gICAgICByZXNldDogKCkgPT4gdGhpcy5saXN0c1NlcnZpY2UucmVzZXRMaXN0KCkuc3Vic2NyaWJlKCksXG4gICAgICBhZGRSZWNpcGU6IChyZWNpcGVJZCwgZ3Vlc3RzKSA9PiB0aGlzLmxpc3RzU2VydmljZS5hcHBlbmRSZWNpcGVUb0xpc3QocmVjaXBlSWQsIGd1ZXN0cywgJ2NsaWVudCcpLFxuICAgICAgaGFzUmVjaXBlOiAocmVjaXBlSWQpID0+IHRoaXMubGlzdHNTZXJ2aWNlLnJlY2lwZUlzSW5MaXN0KHJlY2lwZUlkKVxuICAgIH0sXG4gICAgcG9zOiB7XG4gICAgICBsb2FkOiAocG9zSWQpID0+IHtcbiAgICAgICAgdGhpcy5wb3NTZXJ2aWNlLmxvYWRQb3MocG9zSWQpO1xuICAgICAgfSxcbiAgICAgIGxvYWRXaXRoRXh0SWQ6IChleHRJZCwgc3VwcGxpZXJJZCkgPT4ge1xuICAgICAgICB0aGlzLnBvc1NlcnZpY2UubG9hZFBvc1dpdGhFeHRJZChleHRJZCwgc3VwcGxpZXJJZCk7XG4gICAgICB9LFxuICAgICAgcG9zJDogdGhpcy5wb3NTZXJ2aWNlLnBvcyRcbiAgICB9LFxuICAgIHJlY2lwZXM6IHtcbiAgICAgIGRpc3BsYXk6IChpZCwgcHJldmlld0FsbG93ZWQgPSB0cnVlLCBwcmV2aWV3TW9kZSA9IGZhbHNlKSA9PiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRpc3BsYXkoaWQsIHtwcmV2aWV3QWxsb3dlZCwgcHJldmlld01vZGV9KSxcbiAgICAgIGhpZGRlbjogdGhpcy5yZWNpcGVzU2VydmljZS5oaWRkZW4sXG4gICAgICBzZWFyY2g6IChwcm92aWRlciwgcXVlcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuYWxsKFxuICAgICAgICAgIHsgcmVtb3RlZmlsdGVyOiB7IHJlY2lwZV9wcm92aWRlcl9pZDogcHJvdmlkZXIsIHNlYXJjaDogcXVlcnkgfSB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+ICFyZXN1bHQpLFxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZVsnZGF0YSddKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHNob3VsZERpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzOiAoc2hvdWxkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgPSBzaG91bGQ7XG4gICAgICB9LFxuICAgICAgc2V0RGVmYXVsdEluZ3JlZGllbnRQaWN0dXJlOiAodXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmUgPSB1cmw7XG4gICAgICB9LFxuICAgICAgc2V0U3VnZ2VzdGlvbnNQcmltYXJ5QnV0dG9uQWN0aW9uczogKGRpc3BsYXkgPSB0cnVlLCBhZGRUb0Jhc2tldCA9IHRydWUpID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGVzU2VydmljZS5zdWdnZXN0aW9uc1ByaW1hcnlCdXR0b25BY3Rpb25zID0geyBkaXNwbGF5LCBhZGRUb0Jhc2tldCB9O1xuICAgICAgfVxuICAgIH0sXG4gICAgc3VwcGxpZXI6IHtcbiAgICAgIGxvYWQ6IChzdXBwbGllcklkOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zdXBwbGllcnNTZXJ2aWNlLmxvYWRTdXBwbGllcihzdXBwbGllcklkLnRvU3RyaW5nKCkpO1xuICAgICAgfSxcbiAgICAgIG5vdGlmeUJhc2tldFVwZGF0ZWQ6IChiYXNrZXRUb2tlbjogc3RyaW5nLCBzdGF0dXM6IHN0cmluZywgcHJpY2U6IG51bWJlciB8IHN0cmluZyA9IG51bGwpID0+IHtcbiAgICAgICAgdGhpcy5zdXBwbGllcnNTZXJ2aWNlLm5vdGlmeUJhc2tldFVwZGF0ZWQoYmFza2V0VG9rZW4sIHN0YXR1cywgcHJpY2UpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlcjoge1xuICAgICAgc2V0VG9rZW46ICh0b2tlbiwgZm9yYmlkUHJvZmlsaW5nID0gZmFsc2UsIGluaXRCYXNrZXQgPSBmYWxzZSkgPT4ge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnX21pYW0vdXNlclRva2VuJywgdG9rZW4pO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnX21pYW0vdXNlcklkJyk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvZ1VzZXIoZm9yYmlkUHJvZmlsaW5nLCBpbml0QmFza2V0KTtcbiAgICAgIH0sXG4gICAgICBsb2FkV2l0aEV4dElkOiAoaWQsIGZvcmJpZFByb2ZpbGluZyA9IGZhbHNlLCBpbml0QmFza2V0ID0gZmFsc2UpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ19taWFtL3VzZXJJZCcsIGlkKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJUb2tlbicpO1xuICAgICAgICByZXR1cm4gdGhpcy5sb2dVc2VyKGZvcmJpZFByb2ZpbGluZywgaW5pdEJhc2tldCk7XG4gICAgICB9LFxuICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ19taWFtL3VzZXJUb2tlbicpO1xuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnX21pYW0vdXNlcklkJyk7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UudG9nZ2xlSXNMb2dnZWQoZmFsc2UpO1xuICAgICAgICBjb25zb2xlLmxvZygnW01pYW1dIHdpbGwgcmVmcmVzaCBsaXN0IGFmdGVyIHJlc2V0Jyk7XG4gICAgICAgIHRoaXMubGlzdHNTZXJ2aWNlLnJlZnJlc2hDdXJyZW50TGlzdCgpO1xuICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlc2V0VXNlckluZm8oKTtcbiAgICAgIH0sXG4gICAgICBkZXZpY2U6IHRoaXMubWVkaWFNYXRjaGVyLFxuICAgICAgaXNTbWFsbFNjcmVlbiQ6IHRoaXMuaXNTbWFsbFNjcmVlbiQuYXNPYnNlcnZhYmxlKClcbiAgICB9LFxuICAgIHZpZXc6IHtcbiAgICAgIC8vIFNldCB0aGUgbWFpbiBzY3JvbGxpbmcgSFRNTEVsZW1lbnQgb2YgdGhlIHdlYnNpdGUgc28gd2UgY2FuIGRpc2FibGUgc2Nyb2xsIHdoZW4gYSBtb2RhbC9kcmF3ZXIvcG9wdXAgaXMgb3BlblxuICAgICAgc2V0R2xvYmFsU2Nyb2xsYWJsZUVsZW1lbnQ6IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudCAmJiB0aGlzLmdsb2JhbFNjcm9sbGFibGVFbGVtZW50ICE9PSBlbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5nbG9iYWxTY3JvbGxhYmxlRWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgdHdvIHRpbWVzICdsbCBub3QgYmUgY29uc2lkZXJlZFxuICAgICAqIEBwYXJhbSBpY29uIGhhdmUgdG8gYmUgYSBrbm93ZWQgaWNvbiBuYW1lIHNlZSBzZWN0aW9uICdDdXN0b20gaWNvbnMnIGluIHJlYWQgbWVcbiAgICAgKiBAcGFyYW0gdXJsIG9mIHRoZSBuZXcgaWNvblxuICAgICAqL1xuICAgIG92ZXJyaWRlSWNvbjogKGljb24sIHVybCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmljb25zKSB7IHRoaXMuaWNvbnMgPSBbXTsgfVxuICAgICAgY29uc3QgZXhpc3RpbmdJY29uID0gdGhpcy5pY29ucy5maW5kKChpOiBJY29uT3ZlcnJpZGUpID0+IGkuaWNvbi50b1N0cmluZygpID09PSBpY29uKTtcbiAgICAgIGlmIChleGlzdGluZ0ljb24pIHtcbiAgICAgICAgdGhpcy5pY29ucy5zcGxpY2UodGhpcy5pY29ucy5pbmRleE9mKGV4aXN0aW5nSWNvbiksIDEpO1xuICAgICAgfVxuICAgICAgdGhpcy5pY29ucy5wdXNoKHsgaWNvbiwgdXJsIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBvc1NlcnZpY2U6IFBvaW50T2ZTYWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaXN0c1NlcnZpY2U6IEdyb2Nlcmllc0xpc3RzU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNQcm92aWRlcnNTZXJ2aWNlOiBSZWNpcGVQcm92aWRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFNYXRjaGVyOiBNZWRpYU1hdGNoZXIsXG4gICAgcHJpdmF0ZSBzdXBwbGllcnNTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgdGhpcy5pc1NtYWxsU2NyZWVuJC5uZXh0KCF0aGlzLm1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKFNNQUxMX1NDUkVFTl9CUCkubWF0Y2hlcyk7XG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShTTUFMTF9TQ1JFRU5fQlApLnN1YnNjcmliZShCUENoYW5nZSA9PiB0aGlzLmlzU21hbGxTY3JlZW4kLm5leHQoIUJQQ2hhbmdlLm1hdGNoZXMpKTtcbiAgICB0aGlzLmljb25zID0gW107XG4gICAgdGhpcy5DT1JTSXNzdWVzID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgT2JqZWN0LmFzc2lnbih3aW5kb3csIHsgbWlhbTogdGhpcy5taWFtIH0pO1xuXG4gIH1cblxuICBzZXRDT1JTSXNzdWVTdGF0ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuQ09SU0lzc3Vlcy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldENPUlNJc3N1ZXNTdGF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5DT1JTSXNzdWVzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0T3ZlcnJpZGVJY29uVXJsKGljb246IEljb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbmRpY29uID0gdGhpcy5pY29ucy5maW5kKGVsID0+IGVsLmljb24udG9TdHJpbmcoKSA9PT0gSWNvbltpY29uXSk7XG4gICAgcmV0dXJuIGZpbmRpY29uID8gZmluZGljb24udXJsIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGxvZ1VzZXIoZm9yYmlkUHJvZmlsaW5nOiBib29sZWFuLCBpbml0QmFza2V0OiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyU2VydmljZS50b2dnbGVJc0xvZ2dlZCh0cnVlKTtcbiAgICAvLyBpZiBpbml0QmFza2V0IGlzIHNldCB0byBmYWxzZSwgdGhlIGJhc2tldCAmIGxpc3Qgd2lsbCBub3QgYmUgaW5pdGlhbGlzZWQgdW50aWwgdGhlIGZpcnN0IHRpbWUgdGhleSBhcmUgbmVlZGVkXG4gICAgaWYgKGluaXRCYXNrZXQpIHtcbiAgICAgIHRoaXMuYmFza2V0c1NlcnZpY2UuaW5pdEJhc2tldCgpOyAvLyBUaGUgYmFza2V0IG5lZWRzIHRoZSBHTCBzbyBib3RoIHdpbGwgYmUgaW5pdGlhbGl6ZWQgaGVyZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5zZXRVc2VySW5mbyhmb3JiaWRQcm9maWxpbmcpO1xuICB9XG59XG4iXX0=
|