ng-miam 9.2.2 → 9.2.3

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.
@@ -267,7 +267,8 @@ function RecipeCardComponent_div_1_Template(rf, ctx) { if (rf & 1) {
267
267
  const ctx_r0 = i0.ɵɵnextContext();
268
268
  i0.ɵɵproperty("threshold", 0)("debounceTime", 0);
269
269
  i0.ɵɵadvance(3);
270
- i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl)("alt", "Photo de la recette " + (ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes.title));
270
+ i0.ɵɵproperty("src", ctx_r0.recipe == null ? null : ctx_r0.recipe.attributes["media-url"], i0.ɵɵsanitizeUrl);
271
+ i0.ɵɵattribute("aria-hidden", true);
271
272
  i0.ɵɵadvance(4);
272
273
  i0.ɵɵproperty("ngIf", !(ctx_r0.displayBadge && ctx_r0.recipe.sponsorLogoUrl));
273
274
  i0.ɵɵadvance(1);
@@ -572,7 +573,7 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
572
573
  }
573
574
  else {
574
575
  i18n_6 = $localize `:␟f51693cf087a834d433fa3835d7b64905fdc57ee␟9008711340501624723:Découvrez nos recettes`;
575
- } return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "", "aria-hidden", "true", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "", "aria-hidden", "true", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "", "aria-hidden", "true", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "", "aria-hidden", "true", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
576
+ } return [["ngMiamInViewport", "", 1, "miam-recipe-card", 3, "condition", "ngClass", "inViewport"], ["class", "miam-recipe-card__container", "ngMiamInViewport", "", 3, "threshold", "debounceTime", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-recipe-card__container", 3, "threshold", "debounceTime", "inViewport"], [1, "miam-recipe-card__top", 3, "click"], [1, "miam-recipe-card__picture"], ["loading", "lazy", 3, "src", "alt", "error"], ["aria-hidden", "true", 1, "miam-recipe-card__gradient"], [1, "miam-recipe-card__content"], [1, "miam-recipe-card__top-container"], ["class", "miam-recipe-card__like", 4, "ngIf"], ["class", "miam-recipe-card_sponso_and_promo_badge", 4, "ngIf"], ["class", "miam-recipe-card__badge-container", 3, "ngClass", 4, "ngIf"], [1, "miam-recipe-card__picture__bottom"], [1, "miam-recipe-card__title", "miam-ds-text", "weight-xxl", "size-m"], [1, "miam-recipe-card__counter"], [1, "miam-ds-text", "weight-xxl", "size-m"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/recipe-counter.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom", 3, "click"], ["class", "miam-recipe-card__ingredients__pictures", 4, "ngIf"], [1, "miam-recipe-card__actions"], [1, "miam-recipe-card__infos"], ["class", "miam-recipe-card__difficulty-and-time", 4, "ngIf"], [1, "miam-recipe-card__price-and-promotion"], ["class", "miam-recipe-card__bottom-promotion", 4, "ngIf"], ["class", "miam-recipe-card__price", 4, "ngIf"], [1, "miam-recipe-card__cta"], ["class", "miam-recipe-card__actions__icon", 3, "recipe", "originTrace", 4, "ngIf"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked", 4, "ngIf"], ["class", "miam-recipe-card__actions__replace", 4, "ngIf"], ["class", "miam-ds-button ghost", 3, "click", 4, "ngIf"], [1, "miam-recipe-card__like"], [1, "miam-recipe-card__actions__icon", 3, "recipe", "originTrace"], [1, "miam-recipe-card_sponso_and_promo_badge"], [4, "ngIf"], ["class", "miam-recipe-card__sponsor-container", 4, "ngIf"], [1, "miam-recipe-card__sponsor-container"], [1, "miam-recipe-card__sponsor-picture", 3, "src", "alt"], [1, "miam-recipe-card__badge-container", 3, "ngClass"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 4, "ngIf"], ["class", "miam-recipe-card__badge", "src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 4, "ngIf"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/recipe_card-badge.svg", "alt", "Id\u00E9e repas", 1, "miam-recipe-card__badge"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/9.0/recipe-card-badge-drinks.svg", "alt", "Id\u00E9e boisson", 1, "miam-recipe-card__badge"], [1, "miam-recipe-card__ingredients__pictures"], [1, "miam-recipe-card__ingredients__picture"], ["aria-hidden", "true", 3, "src", "alt", "error"], ["class", "miam-recipe-card__ingredients__more", 4, "ngIf"], [1, "miam-recipe-card__ingredients__more"], [1, "miam-recipe-card__difficulty-and-time"], ["class", "miam-recipe-card__difficulty", 4, "ngIf"], ["class", "miam-recipe-card__time", 4, "ngIf"], [1, "miam-recipe-card__difficulty"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/ChefHat.svg", "alt", "", "aria-hidden", "true"], [1, "miam-ds-text", "size-s", "weight-m"], [1, "miam-recipe-card__time"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/Clock.svg", "alt", "", "aria-hidden", "true"], [1, "miam-recipe-card__bottom-promotion"], [1, "miam-recipe-card__price"], [1, "miam-ds-text", "weight-xxl", 3, "recipeId", "serves", "inViewport", "priceSet"], [3, "recipe", "previewAllowed", "displayGuests", "helpButtonAllowed", "originTrace", "displayed", "clicked"], [1, "miam-recipe-card__actions__replace"], [1, "miam-ds-button", "ghost", 3, "click"], i18n_0, ["aria-label", "Supprimer la recette", 1, "miam-ds-button", "ghost", "square", 3, "click"], ["primaryColor", "var(--m-color-primary)", 3, "iconName"], i18n_2, [1, "miam-recipe-card__redirect", 3, "href"], ["src", "https://storage.googleapis.com/assets.miam.tech/generic/images/Suggestion_Redirect_Background.png", "alt", "D\u00E9couvrez nos recettes"], [1, "miam-recipe-card__redirect__footer"], [1, "miam-recipe-card__redirect__title", "miam-ds-text", "size-l", "weight-xxl"], i18n_4, [1, "miam-recipe-card__redirect__button", "miam-ds-button", "primary"], i18n_6]; }, template: function RecipeCardComponent_Template(rf, ctx) { if (rf & 1) {
576
577
  i0.ɵɵelementStart(0, "div", 0);
577
578
  i0.ɵɵlistener("inViewport", function RecipeCardComponent_Template_div_inViewport_0_listener() { return ctx.sendShowEvent(); });
578
579
  i0.ɵɵtemplate(1, RecipeCardComponent_div_1_Template, 32, 20, "div", 1);
@@ -633,4 +634,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
633
634
  }], hide: [{
634
635
  type: Output
635
636
  }] }); })();
636
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztJQ09uQywwQ0FLc0I7OztJQUZwQix1Q0FBaUIsbUNBQUE7OztJQUp2QiwrQkFBcUY7SUFDakYsaUhBS3NCOztJQUMxQixpQkFBTTs7O0lBTEMsZUFBNEQ7SUFBNUQsdUdBQTREOzs7SUFRakUsaURBQXdHOzs7SUFF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QU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csc0JBQXNCO2tCQUEvQixNQUFNO1lBQ0csaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLElBQUk7a0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRUcmFjZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9fY29tcG9uZW50cy9hYnN0cmFjdHMvZXZlbnQtdHJhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUsIFNpbXBsaWZpZWRJbmdyZWRpZW50IH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBCYXNrZXRzU2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlLCBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVQcmljaW5nIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscy9yZWNpcGUtcHJpY2luZyc7XG5cbmNvbnN0IHJlY2lwZUluY2x1ZGVzID0gWydyZWNpcGUtcHJvdmlkZXInLCAnc3BvbnNvcnMnLCAndGFncyddO1xuY29uc3QgcmVjaXBlU3BhcnNlRmllbGRzID0ge1xuICByZWNpcGVzOiBbJ3RpdGxlJywgJ251bWJlci1vZi1ndWVzdHMnLCAnbWVkaWEtdXJsJywgJ3ZpZGVvLWlkJywgJ2ZpbGlncmFuZS1sb2dvLXVybCcsICdkaWZmaWN1bHR5JywgJ3ByZXBhcmF0aW9uLXRpbWUnLCAnY29va2luZy10aW1lJyxcbiAgICAncmVzdGluZy10aW1lJywgLi4ucmVjaXBlSW5jbHVkZXNdLFxuICBzcG9uc29yczogWydsb2dvLXVybCddLFxuICB0YWdzOiBbJ3RhZy10eXBlLWlkJ10sXG4gICdyZWNpcGUtcHJvdmlkZXInOiBbJ25hbWUnXVxufTtcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBASW5wdXQoKSByYW5kb21Nb2RlRW5hYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBwcm9kdWN0SWRzOiB7IGlkOiBzdHJpbmc7IGhhc0hpZ2hXZWlnaHQ/OiBib29sZWFuIH1bXTtcbiAgQElucHV0KCkgcHJldmlld0FsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRSZWNpcGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcGxhY2VNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc3BsYXlWYXJpYW50ID0gMTtcbiAgQElucHV0KCkgc2VydmVzPzogbnVtYmVyOyAvLyBvdmVycmlkZSB0aGUgZGVmYXVsdCBudW1iZXIgb2Ygc2VydmluZ3Mgb2YgdGhlIHJlY2lwZVxuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSByZW1vdmVGcm9tTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgYWRkVG9NZWFsc1BsYW5uZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZT4oKTtcbiAgQE91dHB1dCgpIG9wZW5DYXRhbG9nID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xuICBAT3V0cHV0KCkgaGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBpY29uID0gSWNvbjtcbiAgYWN0aW9uc09wZW5lZCA9IGZhbHNlO1xuICBpc2xvYWRlZCA9IGZhbHNlO1xuICBpbkJhc2tldCA9IGZhbHNlO1xuICBpblZpZXdwb3J0ID0gZmFsc2U7XG4gIGlzRHJpbmsgPSBmYWxzZTtcbiAgaXNJblByb21vdGlvbiA9IGZhbHNlO1xuXG4gIGRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICBkaXNwbGF5QmFkZ2UgPSBmYWxzZTtcblxuICBwcml2YXRlIGJhc2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIHByaW1hcnlCdXR0b25DbGlja2VkJCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwdWJsaWMgYmFza2V0c1NlcnZpY2U6IEJhc2tldHNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHVibGljIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFyaWFudCgpO1xuICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQodGhpcy5yZWNpcGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWNpcGVJZCkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlRnJvbUlkKCk7XG4gICAgfSBlbHNlIGlmIChzaW1wbGVDaGFuZ2VzLnByb2R1Y3RJZHMgJiYgIXRoaXMucmFuZG9tTW9kZUVuYWJsZSkge1xuICAgICAgdGhpcy5sb2FkUmVjaXBlRnJvbUNvbnRleHQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5iYXNrZXQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UucmVsb2FkUmVjaXBlcyQuc3Vic2NyaWJlKHNob3VsZFJlbG9hZCA9PiB7XG4gICAgICBpZiAoc2hvdWxkUmVsb2FkKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBDSEVDSyBESVNQTEFZIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICB1cGRhdGVEaXNwbGF5VmFyaWFudCgpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGlzcGxheVZhcmlhbnQpIHtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzcGxheUxpa2VzQm90dG9tID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgb3BlblJlY2lwZSgpOiB2b2lkIHtcbiAgICAvLyBjb25zdCB2aWRlb0V2ZW50ID0gdGhpcy5jb250ZXh0U2VydmljZS52aWRlb1JlY2lwZXNFbmFibGVkICYmIHRoaXMucmVjaXBlLnZpZGVvSWQ7XG4gICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXlPYmplY3QoXG4gICAgICB0aGlzLnJlY2lwZSxcbiAgICAgIHtcbiAgICAgICAgcHJldmlld0FsbG93ZWQ6IHRoaXMucHJldmlld0FsbG93ZWQsXG4gICAgICAgIGd1ZXN0czogdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMsXG4gICAgICAgIGRpc3BsYXlHdWVzdHM6IHRoaXMuZGlzcGxheUd1ZXN0cyxcbiAgICAgICAgaGVscEJ1dHRvbkFsbG93ZWQ6IHRoaXMuaGVscEJ1dHRvbkFsbG93ZWRcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBESVNQTEFZIFJFQ0lQRSBERVRBSUxTIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICBpbmdyZWRpZW50UGljdHVyZShpbmdyZWRpZW50OiBTaW1wbGlmaWVkSW5ncmVkaWVudCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGluZ3JlZGllbnQucGljdHVyZSB8fCB0aGlzLmNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZTtcbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgZm9yIGFjY2Vzc2liaWxpdHlcbiAgZ2V0SW5ncmVkaWVudHNBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzIHx8IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGZpcnN0VHdvID0gdGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5zbGljZSgwLCAyKS5tYXAoaSA9PiBpLm5hbWUpLmpvaW4oJywgJyk7XG5cbiAgICBpZiAodGhpcy5yZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50cy5sZW5ndGggPD0gMikge1xuICAgICAgcmV0dXJuICdJbmdyw6lkaWVudHMgcHJpbmNpcGF1eDogJyArIGZpcnN0VHdvO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvdGhlcnNDb3VudCA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMjtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3byArICcgZXQgJyArIG90aGVyc0NvdW50ICsgJyBhdXRyZXMnO1xuICAgIH1cbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU0hPVyBFVkVOVCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ3JlY2lwZS5zaG93JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgcmVjaXBlX2lkOiB0aGlzLnJlY2lwZS5pZCxcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMub3JpZ2luVHJhY2UucHJvcHMuY2F0ZWdvcnlfaWRcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2FyZEluVmlld3BvcnQoKTogdm9pZCB7XG4gICAgdGhpcy5pblZpZXdwb3J0ID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1cGRhdGVJc0luUHJvbW90aW9uKGZldGNoZWRQcmljZTogUmVjaXBlUHJpY2luZykge1xuICAgIHRoaXMuaXNJblByb21vdGlvbiA9IGZldGNoZWRQcmljZVsnZGlzY291bnRlZC1pbmdyZWRpZW50cy1jb3VudCddID4gMDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZFVENIIFRIRSBSRUNJUEUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIC8qKlxuICAgKiBGZXRjaCBhIHJlY2lwZSBmcm9tIGl0cyBpZC5cbiAgICogSGlkZSB0aGUgY2FyZCBpZiBub25lIGlzIHJldHVybmVkIChjb3VsZCBiZSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0cyBvciBpdCBpcyBub3Qgc2hhcmVkIHdpdGggdGhlIHN1cHBsaWVyKVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkUmVjaXBlRnJvbUlkKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLCB7IGluY2x1ZGU6IHJlY2lwZUluY2x1ZGVzLCBmaWVsZHM6IHJlY2lwZVNwYXJzZUZpZWxkcyB9KS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBSZWNpcGUpID0+IHtcbiAgICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdWdnZXN0aW9uIGJhc2VkIG9uIGNvbnRleHQgKGVpdGhlciBwcm9kdWN0SWRzIG9yIHJhbmRvbU1vZGUpLiBIaWRlIHRoZSBjYXJkIGlmIG5vbmUgaXMgcmV0dXJuZWRcbiAgICovXG4gIHByaXZhdGUgbG9hZFJlY2lwZUZyb21Db250ZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5mZXRjaFN1Z2dlc3Rpb25PclJhbmRvbSgpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShyZXN1bHRzID0+ICFyZXN1bHRzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaGlkZS5lbWl0KCk7XG4gICAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0czogUmVjaXBlW10pID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmFmdGVyUmVjaXBlTG9hZChyZXN1bHRzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZnRlclJlY2lwZUxvYWQocmVzdWx0OiBSZWNpcGUpOiB2b2lkIHtcbiAgICB0aGlzLnJlY2lwZSA9IHJlc3VsdDtcbiAgICB0aGlzLnVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk7XG4gICAgdGhpcy5jaGVja1JlY2lwZUluQmFza2V0KCk7XG4gICAgdGhpcy5jaGVja0lzRHJpbmsoKTtcbiAgICB0aGlzLmlzbG9hZGVkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoU3VnZ2VzdGlvbk9yUmFuZG9tKCk6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBpZiAodGhpcy5yYW5kb21Nb2RlRW5hYmxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWNpcGVTZXJ2aWNlLmdldFJhbmRvbShyZWNpcGVJbmNsdWRlcywgcmVjaXBlU3BhcnNlRmllbGRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucmVjaXBlU2VydmljZS5nZXRTdWdnZXN0aW9uKHRoaXMucHJvZHVjdElkcywgcmVjaXBlSW5jbHVkZXMsIHJlY2lwZVNwYXJzZUZpZWxkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBndWVzdHMgZnJvbSB0aGUgdmFsdWUgaW4gdGhlIGJhc2tldCBpZiB0aGUgcmVjaXBlIGlzIGluIHRoZSBiYXNrZXRcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlR3Vlc3RzSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShpc0luTGlzdCA9PiB7XG4gICAgICBpZiAoaXNJbkxpc3QgJiYgIXRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzKSB7XG4gICAgICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gdGhpcy5zZXJ2ZXMgfHwgdGhpcy5iYXNrZXRzU2VydmljZS5ndWVzdHNGb3JSZWNpcGUodGhpcy5yZWNpcGUuaWQpIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8ICt0aGlzLnJlY2lwZS5ndWVzdHM7XG4gICAgICB9XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1JlY2lwZUluQmFza2V0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5iYXNrZXRTdWJzY3JpcHRpb24gJiYgdGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uID0gdGhpcy5iYXNrZXRzU2VydmljZS5yZWNpcGVJc0luQmFza2V0KHRoaXMucmVjaXBlLmlkKS5zdWJzY3JpYmUoaW5CYXNrZXQgPT4ge1xuICAgICAgICB0aGlzLmluQmFza2V0ID0gaW5CYXNrZXQ7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5iYXNrZXRTdWJzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tJc0RyaW5rKCk6IHZvaWQge1xuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLnJlY2lwZT8ucmVsYXRpb25zaGlwcy50YWdzPy5kYXRhIHx8IFtdO1xuICAgIHRoaXMuaXNEcmluayA9IHRhZ3Muc29tZSh0YWcgPT4gWydtZWFsX3R5cGVfYm9pc3NvbicsICdtZWFsX3R5cGVfY29ja3RhaWwnXS5pbmNsdWRlcyh0YWcuaWQpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIiBuZ01pYW1JblZpZXdwb3J0IFtjb25kaXRpb25dPVwiISFyZWNpcGVcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIlxuICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndmFyaWFudC0xJzogKGRpc3BsYXlWYXJpYW50ICE9PSAyICYmIGRpc3BsYXlWYXJpYW50ICE9PSAzKSxcbiAgICAgICd2YXJpYW50LTInOiAoZGlzcGxheVZhcmlhbnQgPT09IDIpLFxuICAgICAgJ3ZhcmlhbnQtMyc6IChkaXNwbGF5VmFyaWFudCA9PT0gMyksXG4gICAgICAnaW4tYmFza2V0JzogaW5CYXNrZXQsXG4gICAgICAncmVkaXJlY3QtY2FyZCc6IGlzbG9hZGVkICYmICFyZWNpcGVcbiAgICAgIH1cIj5cbiAgPCEtLSBNQUlOIENPTlRBSU5FUiAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwicmVjaXBlXCJcbiAgICAgICBuZ01pYW1JblZpZXdwb3J0IFt0aHJlc2hvbGRdPVwiMFwiIFtkZWJvdW5jZVRpbWVdPVwiMFwiIChpblZpZXdwb3J0KT1cImNhcmRJblZpZXdwb3J0KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fdG9wXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgICAgPCEtLSBQSUNUVVJFIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwicmVjaXBlPy5hdHRyaWJ1dGVzWydtZWRpYS11cmwnXVwiXG4gICAgICAgICAgKGVycm9yKT1cIiRldmVudC50YXJnZXRbJ3NyYyddID0gY29udGV4dFNlcnZpY2UuZGVmYXVsdFJlY2lwZVBpY3R1cmVcIlxuICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICBbYWx0XT1cIidQaG90byBkZSBsYSByZWNldHRlICcgKyByZWNpcGU/LmF0dHJpYnV0ZXMudGl0bGVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gR1JBRElFTlQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZ3JhZGllbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3AtY29udGFpbmVyXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGlrZVwiICpuZ0lmPVwiIShkaXNwbGF5QmFkZ2UgJiYgcmVjaXBlLnNwb25zb3JMb2dvVXJsKVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlMaWtlc0JvdHRvbSAmJiAodXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIWRpc3BsYXlCYWRnZSAmJiBpc0luUHJvbW90aW9uKSB8fCByZWNpcGUuc3BvbnNvckxvZ29VcmxcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX3Nwb25zb19hbmRfcHJvbW9fYmFkZ2VcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCIhZGlzcGxheUJhZGdlICYmIGlzSW5Qcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIE1FQUwgLyBEUklOSyBJREVBIEJBREdFIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc0RyaW5rXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImlzRHJpbmtcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy85LjAvcmVjaXBlLWNhcmQtYmFkZ2UtZHJpbmtzLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2JvdHRvbVwiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVjaXBlLmF0dHJpYnV0ZXNbJ3RpdGxlJ10gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBDT1VOVEVSIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb3VudGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUG91ciAnICsgKHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzKSArICcgcGVyc29ubmVzJ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57eyByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcmVjaXBlLmd1ZXN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENBUkQgRk9PVEVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19ib3R0b21cIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2UuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgcmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEluZ3JlZGllbnRzQXJpYUxhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzBdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIlxuICAgICAgICAgICAgW2FsdF09XCInJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICsge3sgcmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9zXCI+XG4gICAgICAgICAgPCEtLSBUSU1FIEFORCBESUZGSUNVTFRZIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUluZm9zICYmIChyZWNpcGUuZGlmZmljdWx0eSB8fCByZWNpcGUudG90YWxUaW1lKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2RpZmZpY3VsdHktYW5kLXRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RpZmZpY3VsdMOpOiAnICsgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0NoZWZIYXQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUudG90YWxUaW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190aW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVGVtcHMgZGUgcHLDqXBhcmF0aW9uOiAnICsgcmVjaXBlLnRvdGFsVGltZVwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2xvY2suc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbVwiPnt7IHJlY2lwZS50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcHJpY2UtYW5kLXByb21vdGlvblwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZSAqbmdJZj1cImlzSW5Qcm9tb3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbS1wcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGUuaWRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8ICtyZWNpcGUuZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICBbaW5WaWV3cG9ydF09XCJpblZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICAocHJpY2VTZXQpPVwidXBkYXRlSXNJblByb21vdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ1RBIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxpa2VzQm90dG9tICYmICh1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZC1jdGFcbiAgICAgICAgICAgICpuZ0lmPVwicHJldmlld0FsbG93ZWQgJiYgIWFkZFJlY2lwZU1vZGUgJiYgIXJlcGxhY2VNb2RlXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlXCJcbiAgICAgICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCJwcmV2aWV3QWxsb3dlZFwiXG4gICAgICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgICAgIFtoZWxwQnV0dG9uQWxsb3dlZF09XCJoZWxwQnV0dG9uQWxsb3dlZFwiXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICAoZGlzcGxheWVkKT1cImRpc3BsYXllZC5lbWl0KClcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtY2FyZC1jdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIE9QVElPTk5BTCBDVEFTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVwbGFjZU1vZGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX3JlcGxhY2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwib3BlbkNhdGFsb2cuZW1pdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPkNoYW5nZXI8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZVwiIChjbGljayk9XCJyZW1vdmVGcm9tTWVhbHNQbGFubmVyLmVtaXQoKVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXIgbGEgcmVjZXR0ZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UcmFzaFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRSZWNpcGVNb2RlXCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJhZGRUb01lYWxzUGxhbm5lci5lbWl0KHJlY2lwZSlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkFqb3V0ZXI8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdFTkVSSUMgQ0FSRCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwiaXNsb2FkZWQgJiYgIXJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGEgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdFwiIFtocmVmXT1cImNvbnRleHRTZXJ2aWNlLmNhdGFsb2dVcmxcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvU3VnZ2VzdGlvbl9SZWRpcmVjdF9CYWNrZ3JvdW5kLnBuZ1wiIGFsdD1cIkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX3RpdGxlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QmVzb2luIGQnaW5zcGlyYXRpb24gPzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
637
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctbWlhbS9zcmMvbGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0YsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7OztJQ1FuQywwQ0FLc0I7OztJQUZwQix1Q0FBaUIsbUNBQUE7OztJQUp2QiwrQkFBcUY7SUFDakYsaUhBS3NCOztJQUMxQixpQkFBTTs7O0lBTEMsZUFBNEQ7SUFBNUQsdUdBQTREOzs7SUFRakUsaURBQXdHOzs7SUFF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QUE1QixNQUFNO1lBQ0csU0FBUztrQkFBbEIsTUFBTTtZQUNHLHNCQUFzQjtrQkFBL0IsTUFBTTtZQUNHLGlCQUFpQjtrQkFBMUIsTUFBTTtZQUNHLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxJQUFJO2tCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHNraXBXaGlsZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlLCBTaW1wbGlmaWVkSW5ncmVkaWVudCB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQmFza2V0c1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgUmVjaXBlUHJpY2luZyB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvcmVjaXBlLXByaWNpbmcnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbi8qKlxuICogVGhpcyBpcyBhbiBhbmd1bGFyIGNvbXBvbmVudCBkZXNpZ24gdG8gYmUgYSB3ZWIgY29tcG9uZW50XG4gKiB0aGF0J3Mgd2h5IHdlIHVzZSBvblB1c2hTdHJhdGVnaWUgd2l0aCB0aGUgY2hhbmdlRGV0ZXRlY3RvclJlZlxuICogdG8gYXZvaWQgY29tbW9uIGlzc3VlXG4gKiBndWlkZSAtPiBodHRwczovL25ldGJhc2FsLmNvbS9hLWNvbXByZWhlbnNpdmUtZ3VpZGUtdG8tYW5ndWxhci1vbnB1c2gtY2hhbmdlLWRldGVjdGlvbi1zdHJhdGVneS01YmFjNDkzMDc0YTRcbiAqIGFuZCBhbHNvdyB3ZSB1c2UgU2hhZG93RG9tIHRvIHByb3RlY3Qgc3R5bGUgb2Ygb3VyIGNvbXBvbmVudFxuICogYW5kIGFsc293IHN0eWxlIG9mIHRoZSBwYXJlbnQgYXBsaWNhdGlvbiB0aGF0IHdpbGwgdXNlIGl0XG4gKiBkb2MgLT4gaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL1ZpZXdFbmNhcHN1bGF0aW9uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tcmVjaXBlLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjaXBlLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIFJlY2lwZUNhcmRDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSByZWNpcGVJZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWNpcGU6IFJlY2lwZTtcbiAgQElucHV0KCkgcmFuZG9tTW9kZUVuYWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJvZHVjdElkczogeyBpZDogc3RyaW5nOyBoYXNIaWdoV2VpZ2h0PzogYm9vbGVhbiB9W107XG4gIEBJbnB1dCgpIHByZXZpZXdBbGxvd2VkID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVscEJ1dHRvbkFsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5SW5mb3MgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5R3Vlc3RzID0gdHJ1ZTtcbiAgQElucHV0KCkgYWRkUmVjaXBlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSByZXBsYWNlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5VmFyaWFudCA9IDE7XG4gIEBJbnB1dCgpIHNlcnZlcz86IG51bWJlcjsgLy8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHNlcnZpbmdzIG9mIHRoZSByZWNpcGVcbiAgQE91dHB1dCgpIHJlbW92ZWRGcm9tRmF2b3JpdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGlzcGxheWVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlRnJvbU1lYWxzUGxhbm5lciA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGFkZFRvTWVhbHNQbGFubmVyID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNpcGU+KCk7XG4gIEBPdXRwdXQoKSBvcGVuQ2F0YWxvZyA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgQE91dHB1dCgpIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaWNvbiA9IEljb247XG4gIGFjdGlvbnNPcGVuZWQgPSBmYWxzZTtcbiAgaXNsb2FkZWQgPSBmYWxzZTtcbiAgaW5CYXNrZXQgPSBmYWxzZTtcbiAgaW5WaWV3cG9ydCA9IGZhbHNlO1xuICBpc0RyaW5rID0gZmFsc2U7XG4gIGlzSW5Qcm9tb3Rpb24gPSBmYWxzZTtcblxuICBkaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgZGlzcGxheUJhZGdlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBiYXNrZXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICBwcmltYXJ5QnV0dG9uQ2xpY2tlZCQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgcmVjaXBlU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIGJhc2tldHNTZXJ2aWNlOiBCYXNrZXRzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLmRpc3BsYXllZFJlY2lwZUNoYW5nZWQkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpKTtcbiAgfVxuXG4gIGN1cnJlbnRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhcmlhbnQoKTtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHRoaXMucmVjaXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZUZyb21JZCgpO1xuICAgIH0gZWxzZSBpZiAoc2ltcGxlQ2hhbmdlcy5wcm9kdWN0SWRzICYmICF0aGlzLnJhbmRvbU1vZGVFbmFibGUpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZUZyb21Db250ZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UuYmFza2V0JC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5yZWNpcGVTZXJ2aWNlLnJlbG9hZFJlY2lwZXMkLnN1YnNjcmliZShzaG91bGRSZWxvYWQgPT4ge1xuICAgICAgaWYgKHNob3VsZFJlbG9hZCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gQ0hFQ0sgRElTUExBWSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgdXBkYXRlRGlzcGxheVZhcmlhbnQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmRpc3BsYXlWYXJpYW50KSB7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuZGlzcGxheUJhZGdlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlrZXNCb3R0b20gPSBmYWxzZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5kaXNwbGF5QmFkZ2UgPSB0cnVlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRpc3BsYXlCYWRnZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc3BsYXlMaWtlc0JvdHRvbSA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIERJU1BMQVkgUkVDSVBFIERFVEFJTFMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIG9wZW5SZWNpcGUoKTogdm9pZCB7XG4gICAgLy8gY29uc3QgdmlkZW9FdmVudCA9IHRoaXMuY29udGV4dFNlcnZpY2UudmlkZW9SZWNpcGVzRW5hYmxlZCAmJiB0aGlzLnJlY2lwZS52aWRlb0lkO1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KFxuICAgICAgdGhpcy5yZWNpcGUsXG4gICAgICB7XG4gICAgICAgIHByZXZpZXdBbGxvd2VkOiB0aGlzLnByZXZpZXdBbGxvd2VkLFxuICAgICAgICBndWVzdHM6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzLFxuICAgICAgICBkaXNwbGF5R3Vlc3RzOiB0aGlzLmRpc3BsYXlHdWVzdHMsXG4gICAgICAgIGhlbHBCdXR0b25BbGxvd2VkOiB0aGlzLmhlbHBCdXR0b25BbGxvd2VkXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXllZC5lbWl0KCk7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuZGlzcGxheScsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gRElTUExBWSBSRUNJUEUgREVUQUlMUyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vXG5cbiAgaW5ncmVkaWVudFBpY3R1cmUoaW5ncmVkaWVudDogU2ltcGxpZmllZEluZ3JlZGllbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiBpbmdyZWRpZW50LnBpY3R1cmUgfHwgdGhpcy5jb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmU7XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kIGZvciBhY2Nlc3NpYmlsaXR5XG4gIGdldEluZ3JlZGllbnRzQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnJlY2lwZT8ubW9kaWZpZWRJbmdyZWRpZW50cyB8fCB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBcbiAgICBjb25zdCBmaXJzdFR3byA9IHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMuc2xpY2UoMCwgMikubWFwKGkgPT4gaS5uYW1lKS5qb2luKCcsICcpO1xuXG4gICAgaWYgKHRoaXMucmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIDw9IDIpIHtcbiAgICAgIHJldHVybiAnSW5ncsOpZGllbnRzIHByaW5jaXBhdXg6ICcgKyBmaXJzdFR3bztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3RoZXJzQ291bnQgPSB0aGlzLnJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzLmxlbmd0aCAtIDI7XG4gICAgICByZXR1cm4gJ0luZ3LDqWRpZW50cyBwcmluY2lwYXV4OiAnICsgZmlyc3RUd28gKyAnIGV0ICcgKyBvdGhlcnNDb3VudCArICcgYXV0cmVzJztcbiAgICB9XG4gIH1cblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIFNIT1cgRVZFTlQgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAvL1xuXG4gIHNlbmRTaG93RXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdyZWNpcGUuc2hvdycsXG4gICAgICB0aGlzLnBhdGgsXG4gICAgICB7XG4gICAgICAgIHJlY2lwZV9pZDogdGhpcy5yZWNpcGUuaWQsXG4gICAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLm9yaWdpblRyYWNlLnByb3BzLmNhdGVnb3J5X2lkXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNhcmRJblZpZXdwb3J0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5WaWV3cG9ydCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgdXBkYXRlSXNJblByb21vdGlvbihmZXRjaGVkUHJpY2U6IFJlY2lwZVByaWNpbmcpIHtcbiAgICB0aGlzLmlzSW5Qcm9tb3Rpb24gPSBmZXRjaGVkUHJpY2VbJ2Rpc2NvdW50ZWQtaW5ncmVkaWVudHMtY291bnQnXSA+IDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBGRVRDSCBUSEUgUkVDSVBFIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gLy9cblxuICAvKipcbiAgICogRmV0Y2ggYSByZWNpcGUgZnJvbSBpdHMgaWQuXG4gICAqIEhpZGUgdGhlIGNhcmQgaWYgbm9uZSBpcyByZXR1cm5lZCAoY291bGQgYmUgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdHMgb3IgaXQgaXMgbm90IHNoYXJlZCB3aXRoIHRoZSBzdXBwbGllcilcbiAgICovXG4gIHByaXZhdGUgbG9hZFJlY2lwZUZyb21JZCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucmVjaXBlU2VydmljZS5nZXQodGhpcy5yZWNpcGVJZCwgeyBpbmNsdWRlOiByZWNpcGVJbmNsdWRlcywgZmllbGRzOiByZWNpcGVTcGFyc2VGaWVsZHMgfSkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHJlc3VsdCA9PiByZXN1bHQuaXNfbG9hZGluZyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdDogUmVjaXBlKSA9PiB7XG4gICAgICAgIHRoaXMuYWZ0ZXJSZWNpcGVMb2FkKHJlc3VsdCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3VnZ2VzdGlvbiBiYXNlZCBvbiBjb250ZXh0IChlaXRoZXIgcHJvZHVjdElkcyBvciByYW5kb21Nb2RlKS4gSGlkZSB0aGUgY2FyZCBpZiBub25lIGlzIHJldHVybmVkXG4gICAqL1xuICBwcml2YXRlIGxvYWRSZWNpcGVGcm9tQ29udGV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZmV0Y2hTdWdnZXN0aW9uT3JSYW5kb20oKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0cyA9PiAhcmVzdWx0cyksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdHM6IFJlY2lwZVtdKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5hZnRlclJlY2lwZUxvYWQocmVzdWx0c1swXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5oaWRlLmVtaXQoKTtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWZ0ZXJSZWNpcGVMb2FkKHJlc3VsdDogUmVjaXBlKTogdm9pZCB7XG4gICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgdGhpcy51cGRhdGVHdWVzdHNJZk5lY2Vzc2FyeSgpO1xuICAgIHRoaXMuY2hlY2tSZWNpcGVJbkJhc2tldCgpO1xuICAgIHRoaXMuY2hlY2tJc0RyaW5rKCk7XG4gICAgdGhpcy5pc2xvYWRlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFN1Z2dlc3Rpb25PclJhbmRvbSgpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgaWYgKHRoaXMucmFuZG9tTW9kZUVuYWJsZSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVjaXBlU2VydmljZS5nZXRSYW5kb20ocmVjaXBlSW5jbHVkZXMsIHJlY2lwZVNwYXJzZUZpZWxkcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlY2lwZVNlcnZpY2UuZ2V0U3VnZ2VzdGlvbih0aGlzLnByb2R1Y3RJZHMsIHJlY2lwZUluY2x1ZGVzLCByZWNpcGVTcGFyc2VGaWVsZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZ3Vlc3RzIGZyb20gdGhlIHZhbHVlIGluIHRoZSBiYXNrZXQgaWYgdGhlIHJlY2lwZSBpcyBpbiB0aGUgYmFza2V0XG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUd1ZXN0c0lmTmVjZXNzYXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoaXNJbkxpc3QgPT4ge1xuICAgICAgaWYgKGlzSW5MaXN0ICYmICF0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgICB0aGlzLnJlY2lwZS5tb2RpZmllZEd1ZXN0cyA9IHRoaXMuc2VydmVzIHx8IHRoaXMuYmFza2V0c1NlcnZpY2UuZ3Vlc3RzRm9yUmVjaXBlKHRoaXMucmVjaXBlLmlkKSB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMpIHtcbiAgICAgICAgdGhpcy5yZWNpcGUubW9kaWZpZWRHdWVzdHMgPSB0aGlzLnNlcnZlcyB8fCArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSZWNpcGVJbkJhc2tldCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmFza2V0U3Vic2NyaXB0aW9uICYmIHRoaXMucmVjaXBlKSB7XG4gICAgICB0aGlzLmJhc2tldFN1YnNjcmlwdGlvbiA9IHRoaXMuYmFza2V0c1NlcnZpY2UucmVjaXBlSXNJbkJhc2tldCh0aGlzLnJlY2lwZS5pZCkuc3Vic2NyaWJlKGluQmFza2V0ID0+IHtcbiAgICAgICAgdGhpcy5pbkJhc2tldCA9IGluQmFza2V0O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuYmFza2V0U3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrSXNEcmluaygpOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzID0gdGhpcy5yZWNpcGU/LnJlbGF0aW9uc2hpcHMudGFncz8uZGF0YSB8fCBbXTtcbiAgICB0aGlzLmlzRHJpbmsgPSB0YWdzLnNvbWUodGFnID0+IFsnbWVhbF90eXBlX2JvaXNzb24nLCAnbWVhbF90eXBlX2NvY2t0YWlsJ10uaW5jbHVkZXModGFnLmlkKSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkXCIgbmdNaWFtSW5WaWV3cG9ydCBbY29uZGl0aW9uXT1cIiEhcmVjaXBlXCIgKGluVmlld3BvcnQpPVwic2VuZFNob3dFdmVudCgpXCJcbiAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3ZhcmlhbnQtMSc6IChkaXNwbGF5VmFyaWFudCAhPT0gMiAmJiBkaXNwbGF5VmFyaWFudCAhPT0gMyksXG4gICAgICAndmFyaWFudC0yJzogKGRpc3BsYXlWYXJpYW50ID09PSAyKSxcbiAgICAgICd2YXJpYW50LTMnOiAoZGlzcGxheVZhcmlhbnQgPT09IDMpLFxuICAgICAgJ2luLWJhc2tldCc6IGluQmFza2V0LFxuICAgICAgJ3JlZGlyZWN0LWNhcmQnOiBpc2xvYWRlZCAmJiAhcmVjaXBlXG4gICAgICB9XCI+XG4gIDwhLS0gTUFJTiBDT05UQUlORVIgLS0+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250YWluZXJcIiAqbmdJZj1cInJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RvcFwiIChjbGljayk9XCJvcGVuUmVjaXBlKClcIj5cbiAgICAgIDwhLS0gUElDVFVSRSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIlxuICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRSZWNpcGVQaWN0dXJlXCJcbiAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgW2FsdF09XCJcIlxuICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gR1JBRElFTlQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZ3JhZGllbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190b3AtY29udGFpbmVyXCI+XG4gICAgICAgICAgPCEtLSBMSUtFIEJVVFRPTiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fbGlrZVwiICpuZ0lmPVwiIShkaXNwbGF5QmFkZ2UgJiYgcmVjaXBlLnNwb25zb3JMb2dvVXJsKVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1saWtlLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc3BsYXlMaWtlc0JvdHRvbSAmJiAodXNlclNlcnZpY2UuaXNMb2dnZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX2ljb25cIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICAgICAgW29yaWdpblRyYWNlXT1cImV2ZW50VHJhY2VcIj5cbiAgICAgICAgICAgICAgPC9uZy1taWFtLWxpa2UtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIoIWRpc3BsYXlCYWRnZSAmJiBpc0luUHJvbW90aW9uKSB8fCByZWNpcGUuc3BvbnNvckxvZ29VcmxcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX3Nwb25zb19hbmRfcHJvbW9fYmFkZ2VcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLXJlY2lwZS1wcm9tb3Rpb24tYmFkZ2UgKm5nSWY9XCIhZGlzcGxheUJhZGdlICYmIGlzSW5Qcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gU1BPTlNPUiAtLT5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuc3BvbnNvckxvZ29VcmxcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3Nwb25zb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19zcG9uc29yLXBpY3R1cmVcIiBbc3JjXT1cInJlY2lwZS5zcG9uc29yTG9nb1VybFwiIFthbHRdPVwiJ0xvZ28gZHUgc3BvbnNvciAnICsgcmVjaXBlLnNwb25zb3JOYW1lXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8IS0tIE1FQUwgLyBEUklOSyBJREVBIEJBREdFIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5QmFkZ2VcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JhZGdlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlzRHJpbmsgPyAnZHJpbmsnIDogJ2Zvb2QnXCI+XG4gICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlICpuZ0lmPVwiaXNJblByb21vdGlvblwiPjwvbmctbWlhbS1yZWNpcGUtcHJvbW90aW9uLWJhZGdlPlxuICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc0RyaW5rXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19iYWRnZVwiXG4gICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaW1hZ2VzL3JlY2lwZV9jYXJkLWJhZGdlLnN2Z1wiXG4gICAgICAgICAgICAgICAgIGFsdD1cIklkw6llIHJlcGFzXCI+XG4gICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXNEcmlua1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYmFkZ2VcIlxuICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zLzkuMC9yZWNpcGUtY2FyZC1iYWRnZS1kcmlua3Muc3ZnXCJcbiAgICAgICAgICAgICAgICAgYWx0PVwiSWTDqWUgYm9pc3NvblwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX2JvdHRvbVwiPlxuICAgICAgICAgIDwhLS0gVElUTEUgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3RpdGxlIG1pYW0tZHMtdGV4dCB3ZWlnaHQteHhsIHNpemUtbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgcmVjaXBlLmF0dHJpYnV0ZXNbJ3RpdGxlJ10gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBDT1VOVEVSIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb3VudGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUG91ciAnICsgKHJlY2lwZS5tb2RpZmllZEd1ZXN0cyB8fCByZWNpcGUuZ3Vlc3RzKSArICcgcGVyc29ubmVzJ1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtaWFtLWRzLXRleHQgd2VpZ2h0LXh4bCBzaXplLW1cIj57eyByZWNpcGUubW9kaWZpZWRHdWVzdHMgfHwgcmVjaXBlLmd1ZXN0cyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pY29ucy9yZWNpcGUtY291bnRlci5zdmdcIiBhbHQ9XCJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIENBUkQgRk9PVEVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19ib3R0b21cIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGV4dFNlcnZpY2UuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgcmVjaXBlPy5tb2RpZmllZEluZ3JlZGllbnRzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fcGljdHVyZXNcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEluZ3JlZGllbnRzQXJpYUxhYmVsKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5ncmVkaWVudHNfX3BpY3R1cmVcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImluZ3JlZGllbnRQaWN0dXJlKHJlY2lwZS5tb2RpZmllZEluZ3JlZGllbnRzWzBdKVwiXG4gICAgICAgICAgICBbYWx0XT1cIicnXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIChlcnJvcik9XCIkZXZlbnQudGFyZ2V0WydzcmMnXSA9IGNvbnRleHRTZXJ2aWNlLmRlZmF1bHRJbmdyZWRpZW50UGljdHVyZVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZ3JlZGllbnRzX19waWN0dXJlXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgW3NyY109XCJpbmdyZWRpZW50UGljdHVyZShyZWNpcGUubW9kaWZpZWRJbmdyZWRpZW50c1sxXSlcIlxuICAgICAgICAgICAgW2FsdF09XCInJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAoZXJyb3IpPVwiJGV2ZW50LnRhcmdldFsnc3JjJ10gPSBjb250ZXh0U2VydmljZS5kZWZhdWx0SW5ncmVkaWVudFBpY3R1cmVcIlxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19pbmdyZWRpZW50c19fbW9yZVwiICpuZ0lmPVwicmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoID4gMlwiPlxuICAgICAgICAgICsge3sgcmVjaXBlLm1vZGlmaWVkSW5ncmVkaWVudHMubGVuZ3RoIC0gMiB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNcIj5cbiAgICAgICAgPCEtLSBJTkZPUyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9zXCI+XG4gICAgICAgICAgPCEtLSBUSU1FIEFORCBESUZGSUNVTFRZIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUluZm9zICYmIChyZWNpcGUuZGlmZmljdWx0eSB8fCByZWNpcGUudG90YWxUaW1lKVwiXG4gICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2RpZmZpY3VsdHktYW5kLXRpbWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUuZGlmZmljdWx0eVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fZGlmZmljdWx0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RpZmZpY3VsdMOpOiAnICsgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vYXNzZXRzLm1pYW0udGVjaC9nZW5lcmljL2ljb25zL0NoZWZIYXQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaWFtLWRzLXRleHQgc2l6ZS1zIHdlaWdodC1tXCI+e3sgcmVjaXBlU2VydmljZS5kaWZmaWN1bHR5TGV2ZWxzW3JlY2lwZS5kaWZmaWN1bHR5IC0gMV0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZWNpcGUudG90YWxUaW1lXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX190aW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVGVtcHMgZGUgcHLDqXBhcmF0aW9uOiAnICsgcmVjaXBlLnRvdGFsVGltZVwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvQ2xvY2suc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQtbVwiPnt7IHJlY2lwZS50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcHJpY2UtYW5kLXByb21vdGlvblwiPlxuICAgICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZSAqbmdJZj1cImlzSW5Qcm9tb3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2JvdHRvbS1wcm9tb3Rpb25cIj48L25nLW1pYW0tcmVjaXBlLXByb21vdGlvbi1iYWRnZT5cbiAgICAgICAgICAgIDwhLS0gUFJJQ0UgLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmVjaXBlICYmIGRpc3BsYXlQcmljaW5nXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19wcmljZVwiPlxuICAgICAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtcHJpY2luZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwibWlhbS1kcy10ZXh0IHdlaWdodC14eGxcIlxuICAgICAgICAgICAgICAgIFtyZWNpcGVJZF09XCJyZWNpcGUuaWRcIlxuICAgICAgICAgICAgICAgIFtzZXJ2ZXNdPVwicmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8ICtyZWNpcGUuZ3Vlc3RzXCJcbiAgICAgICAgICAgICAgICBbaW5WaWV3cG9ydF09XCJpblZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICAocHJpY2VTZXQpPVwidXBkYXRlSXNJblByb21vdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gQ1RBIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fY3RhXCI+XG4gICAgICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxpa2VzQm90dG9tICYmICh1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPSdyZWNpcGUnXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZC1jdGFcbiAgICAgICAgICAgICpuZ0lmPVwicHJldmlld0FsbG93ZWQgJiYgIWFkZFJlY2lwZU1vZGUgJiYgIXJlcGxhY2VNb2RlXCJcbiAgICAgICAgICAgIFtyZWNpcGVdPVwicmVjaXBlXCJcbiAgICAgICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCJwcmV2aWV3QWxsb3dlZFwiXG4gICAgICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgICAgIFtoZWxwQnV0dG9uQWxsb3dlZF09XCJoZWxwQnV0dG9uQWxsb3dlZFwiXG4gICAgICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgICAgICAoZGlzcGxheWVkKT1cImRpc3BsYXllZC5lbWl0KClcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwicHJpbWFyeUJ1dHRvbkNsaWNrZWQkLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvbmctbWlhbS1yZWNpcGUtY2FyZC1jdGE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIE9QVElPTk5BTCBDVEFTIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicmVwbGFjZU1vZGVcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2FjdGlvbnNfX3JlcGxhY2VcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWlhbS1kcy1idXR0b24gZ2hvc3RcIiAoY2xpY2spPVwib3BlbkNhdGFsb2cuZW1pdCgpXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPkNoYW5nZXI8L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1pYW0tZHMtYnV0dG9uIGdob3N0IHNxdWFyZVwiIChjbGljayk9XCJyZW1vdmVGcm9tTWVhbHNQbGFubmVyLmVtaXQoKVwiIGFyaWEtbGFiZWw9XCJTdXBwcmltZXIgbGEgcmVjZXR0ZVwiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbaWNvbk5hbWVdPVwiaWNvbi5UcmFzaFwiIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3ItcHJpbWFyeSlcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRSZWNpcGVNb2RlXCIgY2xhc3M9XCJtaWFtLWRzLWJ1dHRvbiBnaG9zdFwiIChjbGljayk9XCJhZGRUb01lYWxzUGxhbm5lci5lbWl0KHJlY2lwZSlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkFqb3V0ZXI8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIEdFTkVSSUMgQ0FSRCAtLT5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRhaW5lclwiICpuZ0lmPVwiaXNsb2FkZWQgJiYgIXJlY2lwZVwiXG4gICAgICAgbmdNaWFtSW5WaWV3cG9ydCBbdGhyZXNob2xkXT1cIjBcIiBbZGVib3VuY2VUaW1lXT1cIjBcIiAoaW5WaWV3cG9ydCk9XCJjYXJkSW5WaWV3cG9ydCgpXCI+XG4gICAgPGEgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdFwiIFtocmVmXT1cImNvbnRleHRTZXJ2aWNlLmNhdGFsb2dVcmxcIj5cbiAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2Fzc2V0cy5taWFtLnRlY2gvZ2VuZXJpYy9pbWFnZXMvU3VnZ2VzdGlvbl9SZWRpcmVjdF9CYWNrZ3JvdW5kLnBuZ1wiIGFsdD1cIkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX2Zvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcmVkaXJlY3RfX3RpdGxlIG1pYW0tZHMtdGV4dCBzaXplLWwgd2VpZ2h0LXh4bFwiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+QmVzb2luIGQnaW5zcGlyYXRpb24gPzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19yZWRpcmVjdF9fYnV0dG9uIG1pYW0tZHMtYnV0dG9uIHByaW1hcnlcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPkTDqWNvdXZyZXogbm9zIHJlY2V0dGVzPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -209,7 +209,7 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
209
209
  }
210
210
  else {
211
211
  i18n_4 = $localize `:␟8f2c8f66fed7cbda7649b4ba2320375ff7526dbb␟5011068305185462335: Chargement des résultats... `;
212
- } return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], [1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, [3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
212
+ } return [["class", "miam-catalog-category", "ngMiamInViewport", "", 3, "condition", "inViewport", 4, "ngIf"], ["ngMiamInViewport", "", 1, "miam-catalog-category", 3, "condition", "inViewport"], [1, "miam-catalog-category__header"], ["role", "heading", "aria-level", "2", 1, "miam-catalog-category__title", 3, "click"], [1, "miam-catalog-category__header__bottom"], [1, "miam-catalog-category__subtitle", "miam-ds-text", "size-s", "weight-l"], [1, "miam-catalog-category__link", "miam-ds-text", "size-s", "weight-xl", 3, "click"], i18n_2, ["src", "https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg", "alt", "", "aria-hidden", "true"], [1, "miam-catalog-category__content"], ["categoryContent", ""], ["role", "list", 1, "miam-catalog-category__cards"], ["categoryCards", ""], ["class", "miam-catalog-category__loader", 4, "ngIf"], ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-category__loader"], i18n_4, ["role", "listitem", 3, "recipe", "displayInfos", "displayPricing", "displayVariant", "originTrace"], [3, "article"]]; }, template: function CatalogCategoryComponent_Template(rf, ctx) { if (rf & 1) {
213
213
  i0.ɵɵtemplate(0, CatalogCategoryComponent_div_0_Template, 19, 10, "div", 0);
214
214
  } if (rf & 2) {
215
215
  i0.ɵɵproperty("ngIf", !ctx.hide);
@@ -255,4 +255,4 @@ CatalogCategoryComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogCategoryC
255
255
  type: ViewChildren,
256
256
  args: [RecipeCardComponent]
257
257
  }] }); })();
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM3RixNQUFNLEVBQUUsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNLbkQsK0JB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RUFBRSxNQUFjO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Z0dBMUlVLHdCQUF3Qjs2REFBeEIsd0JBQXdCOzs7dUJBZXJCLG1CQUFtQjs7Ozs7Ozs7Ozs7aUJDbkNoQixVQUFBLDBFQUFTOzs7Ozs7aUJBVWxCLFVBQUEsOEZBQ0Y7O1FBcEJSLDJFQWlDTTs7UUFqQzhCLGdDQUFXOzt1RkQ2QmxDLHdCQUF3QjtjQVBwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7Z0JBQ2hELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsyTEFFVSxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csUUFBUTtrQkFBakIsTUFBTTtZQUV1QixlQUFlO2tCQUE1QyxTQUFTO21CQUFDLGlCQUFpQjtZQUNBLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLFdBQVc7a0JBQTdDLFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxuICBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbWF4UmVjaXBlTnVtYmVyID0gMjA7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlSZWNpcGVWYXJpYW50ID0gMTtcbiAgQE91dHB1dCgpIGRpc3BsYXlMaXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGxvYWRpbmc6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4odHJ1ZSk7XG4gIEBPdXRwdXQoKSBpc0hpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDb250ZW50JykgY2F0ZWdvcnlDb250ZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDYXJkcycpIGNhdGVnb3J5Q2FyZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKFJlY2lwZUNhcmRDb21wb25lbnQpIHJlY2lwZUNhcmRzITogUXVlcnlMaXN0PFJlY2lwZUNhcmRDb21wb25lbnQ+O1xuXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICByZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGhpZGUgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuZGlzcGxheUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5yZWNpcGVzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5tYXhSZWNpcGVOdW1iZXIgfHwgY2hhbmdlcy5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFt0aGlzLmxvYWRSZWNpcGVzKCksIHRoaXMubG9hZEFydGljbGVzKCldKS5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSA9IHRoaXMucmVjaXBlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5hcnRpY2xlcy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlKSB7IHRoaXMuaXNIaWRkZW4uZW1pdCh0cnVlKTsgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2NhdGVnb3J5LnNob3cnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXNcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBUT0RPOiBzaG91bGQgaXQgYmUgcmFuZG9taXplZCAocmVxdWVzdCB0byBBUEkgc2VlbXMgYnJva2VuIC8gcmV0dXJucyBzYW1lIHJlc3VsdCBtdWx0aXBlIHRpbWVzIGR1ZSB0byBPVVRFUiBKT0lOUylcbiAgbG9hZFJlY2lwZXMoKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPFJlY2lwZVtdPik7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICByZWNpcGVJbmNsdWRlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgIHJlY2lwZVNwYXJzZUZpZWxkc1snaW5ncmVkaWVudHMnXSA9IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0JywgJ2FjdGl2ZScsICdmb3JjZWQtZWFucycsICdwaWN0dXJlLXVybCcsICdwb3NpdGlvbiddO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5hZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIodGhpcy5maWx0ZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RGaWx0ZXJzID0+IHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLm1heFJlY2lwZU51bWJlciA+IDAgPyAoIHRoaXMubWF4UmVjaXBlTnVtYmVyIDwgMzAgPyB0aGlzLm1heFJlY2lwZU51bWJlciA6IDMwKSA6IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IG51bWJlcjogMSwgc2l6ZTogcGFnZVNpemUgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAncG9zaXRpb24nXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVbXSkgPT4gdGhpcy5yZWNpcGVzID0gcmVzdWx0KVxuICAgICk7XG4gIH1cblxuICBsb2FkQXJ0aWNsZXMoKTogT2JzZXJ2YWJsZTxBcnRpY2xlW10+IHtcbiAgICAvLyBUT0RPOiBhbGwgY29udGVudHMgKHJlY2lwZXMsIGFydGljbGVzLi4uKSBzaG91bGQgYmUgcmVsYXRlZCB0byBwYWNrYWdlcywgdG8gd2hpY2ggZmlsdGVycyBjb3VsZCBiZSBhdHRhY2hlZFxuICAgIGlmICghdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzIHx8ICF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPEFydGljbGVbXT4pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFydGljbGVzU2VydmljZS5hbGwoe1xuICAgICAgcmVtb3RlZmlsdGVyOiB7cGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwbGF5TGlzdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdjYXRlZ29yeS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmVtaXQoe1xuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycyxcbiAgICAgIHN1YnRpdGxlOiB0aGlzLnN1YnRpdGxlXG4gICAgfSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWNhdGVnb3J5XCIgKm5nSWY9XCIhaGlkZVwiIG5nTWlhbUluVmlld3BvcnQgW2NvbmRpdGlvbl09XCJyZWNpcGVzLmxlbmd0aCA+IDBcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fdGl0bGVcIiAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIiByb2xlPVwiaGVhZGluZ1wiIGFyaWEtbGV2ZWw9XCIyXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyX19ib3R0b21cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX3N1YnRpdGxlIG1pYW0tZHMtdGV4dCBzaXplLXMgd2VpZ2h0LWxcIj57e3N1YnRpdGxlfX08L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xpbmsgbWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQteGxcIlxuICAgICAgICAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidWb2lyIHRvdXRlcyBsZXMgcmVjZXR0ZXMgZGUgJyArIHRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciB0b3V0PC9zcGFuPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgI2NhdGVnb3J5Q29udGVudCBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fY29udGVudFwiPlxuICAgIDxkaXYgI2NhdGVnb3J5Q2FyZHMgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2NhcmRzXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZyB8IGFzeW5jXCIgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xvYWRlclwiPlxuICAgICAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICAgICAgPGRpdiBpMThuPlxuICAgICAgICAgIENoYXJnZW1lbnQgZGVzIHLDqXN1bHRhdHMuLi5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1taWFtLXJlY2lwZS1jYXJkXG4gICAgICAgICpuZ0Zvcj1cImxldCByZWNpcGUgb2YgcmVjaXBlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgW3JlY2lwZV09J3JlY2lwZSdcbiAgICAgICAgW2Rpc3BsYXlJbmZvc109XCJkaXNwbGF5SW5mb3NcIlxuICAgICAgICBbZGlzcGxheVByaWNpbmddPVwiZGlzcGxheVByaWNpbmdcIlxuICAgICAgICBbZGlzcGxheVZhcmlhbnRdPVwiZGlzcGxheVJlY2lwZVZhcmlhbnRcIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiPlxuICAgICAgPC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgICAgPG5nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQgKm5nRm9yPVwibGV0IGFydGljbGUgb2YgYXJ0aWNsZXNcIiBbYXJ0aWNsZV09XCJhcnRpY2xlXCI+PC9uZy1taWFtLWNhdGFsb2ctYXJ0aWNsZS1jYXJkPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctY2F0ZWdvcnkvY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUM3RixNQUFNLEVBQUUsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RHLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7SUNLbkQsK0JB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RUFBRSxNQUFjO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7Z0dBMUlVLHdCQUF3Qjs2REFBeEIsd0JBQXdCOzs7dUJBZXJCLG1CQUFtQjs7Ozs7Ozs7Ozs7aUJDbkNoQixVQUFBLDBFQUFTOzs7Ozs7aUJBVWxCLFVBQUEsOEZBQ0Y7O1FBcEJSLDJFQWtDTTs7UUFsQzhCLGdDQUFXOzt1RkQ2QmxDLHdCQUF3QjtjQVBwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7Z0JBQ2hELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDsyTEFFVSxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csZUFBZTtrQkFBdkIsS0FBSztZQUNHLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLG9CQUFvQjtrQkFBNUIsS0FBSztZQUNJLFdBQVc7a0JBQXBCLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csUUFBUTtrQkFBakIsTUFBTTtZQUV1QixlQUFlO2tCQUE1QyxTQUFTO21CQUFDLGlCQUFpQjtZQUNBLGFBQWE7a0JBQXhDLFNBQVM7bUJBQUMsZUFBZTtZQUNTLFdBQVc7a0JBQTdDLFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LFxuICBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5pbXBvcnQgeyBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2F0YWxvZy1jYXRlZ29yeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgbWF4UmVjaXBlTnVtYmVyID0gMjA7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlSZWNpcGVWYXJpYW50ID0gMTtcbiAgQE91dHB1dCgpIGRpc3BsYXlMaXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIGxvYWRpbmc6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4odHJ1ZSk7XG4gIEBPdXRwdXQoKSBpc0hpZGRlbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPihmYWxzZSk7XG5cbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDb250ZW50JykgY2F0ZWdvcnlDb250ZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlDYXJkcycpIGNhdGVnb3J5Q2FyZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkcmVuKFJlY2lwZUNhcmRDb21wb25lbnQpIHJlY2lwZUNhcmRzITogUXVlcnlMaXN0PFJlY2lwZUNhcmRDb21wb25lbnQ+O1xuXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xuICByZWNpcGVzOiBSZWNpcGVbXSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGhpZGUgPSBmYWxzZTtcbiAgaWNvbiA9IEljb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dDogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKGFuYWx5dGljc1NlcnZpY2UpO1xuICAgIHRoaXMuZGlzcGxheUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5yZWNpcGVzID0gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZpbHRlcnMgfHwgY2hhbmdlcy5tYXhSZWNpcGVOdW1iZXIgfHwgY2hhbmdlcy5tb2RpZmllZEd1ZXN0cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgIGZvcmtKb2luKFt0aGlzLmxvYWRSZWNpcGVzKCksIHRoaXMubG9hZEFydGljbGVzKCldKS5waXBlKFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSA9IHRoaXMucmVjaXBlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5hcnRpY2xlcy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlKSB7IHRoaXMuaXNIaWRkZW4uZW1pdCh0cnVlKTsgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VuZFNob3dFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgJ2NhdGVnb3J5LnNob3cnLFxuICAgICAgdGhpcy5wYXRoLFxuICAgICAge1xuICAgICAgICBjYXRlZ29yeV9pZDogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXNcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBUT0RPOiBzaG91bGQgaXQgYmUgcmFuZG9taXplZCAocmVxdWVzdCB0byBBUEkgc2VlbXMgYnJva2VuIC8gcmV0dXJucyBzYW1lIHJlc3VsdCBtdWx0aXBlIHRpbWVzIGR1ZSB0byBPVVRFUiBKT0lOUylcbiAgbG9hZFJlY2lwZXMoKTogT2JzZXJ2YWJsZTxSZWNpcGVbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPFJlY2lwZVtdPik7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICByZWNpcGVJbmNsdWRlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgIHJlY2lwZVNwYXJzZUZpZWxkc1snaW5ncmVkaWVudHMnXSA9IFsnbmFtZScsICdxdWFudGl0eScsICd1bml0JywgJ2FjdGl2ZScsICdmb3JjZWQtZWFucycsICdwaWN0dXJlLXVybCcsICdwb3NpdGlvbiddO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5hZGRNYW5kYXRvcnlDb21wbGV0aW9uVG9GaWx0ZXIodGhpcy5maWx0ZXJzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKHJlcXVlc3RGaWx0ZXJzID0+IHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLm1heFJlY2lwZU51bWJlciA+IDAgPyAoIHRoaXMubWF4UmVjaXBlTnVtYmVyIDwgMzAgPyB0aGlzLm1heFJlY2lwZU51bWJlciA6IDMwKSA6IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IG51bWJlcjogMSwgc2l6ZTogcGFnZVNpemUgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAncG9zaXRpb24nXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgocmVzdWx0OiBSZWNpcGVbXSkgPT4gdGhpcy5yZWNpcGVzID0gcmVzdWx0KVxuICAgICk7XG4gIH1cblxuICBsb2FkQXJ0aWNsZXMoKTogT2JzZXJ2YWJsZTxBcnRpY2xlW10+IHtcbiAgICAvLyBUT0RPOiBhbGwgY29udGVudHMgKHJlY2lwZXMsIGFydGljbGVzLi4uKSBzaG91bGQgYmUgcmVsYXRlZCB0byBwYWNrYWdlcywgdG8gd2hpY2ggZmlsdGVycyBjb3VsZCBiZSBhdHRhY2hlZFxuICAgIGlmICghdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzIHx8ICF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkKSB7XG4gICAgICByZXR1cm4gKG9mKFtdKSBhcyBPYnNlcnZhYmxlPEFydGljbGVbXT4pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmFydGljbGVzU2VydmljZS5hbGwoe1xuICAgICAgcmVtb3RlZmlsdGVyOiB7cGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwbGF5TGlzdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICdjYXRlZ29yeS5kaXNwbGF5JyxcbiAgICAgIHRoaXMucGF0aCxcbiAgICAgIHtcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzXG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmVtaXQoe1xuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycyxcbiAgICAgIHN1YnRpdGxlOiB0aGlzLnN1YnRpdGxlXG4gICAgfSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWNhdGVnb3J5XCIgKm5nSWY9XCIhaGlkZVwiIG5nTWlhbUluVmlld3BvcnQgW2NvbmRpdGlvbl09XCJyZWNpcGVzLmxlbmd0aCA+IDBcIiAoaW5WaWV3cG9ydCk9XCJzZW5kU2hvd0V2ZW50KClcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fdGl0bGVcIiAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIiByb2xlPVwiaGVhZGluZ1wiIGFyaWEtbGV2ZWw9XCIyXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9faGVhZGVyX19ib3R0b21cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX3N1YnRpdGxlIG1pYW0tZHMtdGV4dCBzaXplLXMgd2VpZ2h0LWxcIj57e3N1YnRpdGxlfX08L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2xpbmsgbWlhbS1kcy10ZXh0IHNpemUtcyB3ZWlnaHQteGxcIlxuICAgICAgICAoY2xpY2spPVwiZGlzcGxheUxpc3RNb2RlKClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidWb2lyIHRvdXRlcyBsZXMgcmVjZXR0ZXMgZGUgJyArIHRpdGxlXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+Vm9pciB0b3V0PC9zcGFuPlxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9hc3NldHMubWlhbS50ZWNoL2dlbmVyaWMvaWNvbnMvYXJyb3ctcmlnaHQuc3ZnXCIgYWx0PVwiXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgI2NhdGVnb3J5Q29udGVudCBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fY29udGVudFwiPlxuICAgIDxkaXYgI2NhdGVnb3J5Q2FyZHMgY2xhc3M9XCJtaWFtLWNhdGFsb2ctY2F0ZWdvcnlfX2NhcmRzXCIgcm9sZT1cImxpc3RcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1jYXRlZ29yeV9fbG9hZGVyXCI+XG4gICAgICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgICAgICA8ZGl2IGkxOG4+XG4gICAgICAgICAgQ2hhcmdlbWVudCBkZXMgcsOpc3VsdGF0cy4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLW1pYW0tcmVjaXBlLWNhcmRcbiAgICAgICAgKm5nRm9yPVwibGV0IHJlY2lwZSBvZiByZWNpcGVzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgICBbZGlzcGxheUluZm9zXT1cImRpc3BsYXlJbmZvc1wiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtkaXNwbGF5VmFyaWFudF09XCJkaXNwbGF5UmVjaXBlVmFyaWFudFwiXG4gICAgICAgIFtvcmlnaW5UcmFjZV09XCJldmVudFRyYWNlXCI+XG4gICAgICA8L25nLW1pYW0tcmVjaXBlLWNhcmQ+XG4gICAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -402,7 +402,7 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
402
402
  }
403
403
  else {
404
404
  i18n_11 = $localize `:␟834498e5698b366d53cba7a7f98b06a12967862c␟1875448131572248295: Chargement des résultats... `;
405
- } return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], [1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, [3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
405
+ } return [[1, "miam-catalog-list"], ["class", "miam-catalog-list__notFound", 4, "ngIf"], ["class", "miam-catalog-list__loader", 4, "ngIf"], ["role", "list", 1, "miam-catalog-list__cards"], ["recipeCard", ""], [4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "article", 4, "ngFor", "ngForOf"], [1, "miam-catalog-list__notFound"], [1, "miam-catalog-list__notFound__icon", 3, "width", "height", "iconName", "ngClass"], [4, "ngIf", "ngIfElse"], ["notFiltering", ""], ["notLogged", ""], [1, "miam-catalog-list__notFound__title1", "filtering"], i18n_0, [4, "ngIf"], [1, "miam-catalog-list__notFound__title2"], i18n_2, i18n_4, [1, "miam-catalog-list__notFound__title1", "not-filtering"], i18n_6, [1, "miam-catalog-list__notFound__title1", "not-logged"], i18n_8, [1, "miam-catalog-list__loader"], i18n_11, ["role", "listitem", 3, "recipe", "originTrace", "displayPricing", "previewAllowed", "addRecipeMode", "displayGuests", "displayVariant", "helpButtonAllowed", "addToMealsPlanner"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["ngMiamLoadOnScroll", "", "marginRoot", "600px", 3, "isLoading", "loadMore"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "article"]]; }, template: function CatalogListComponent_Template(rf, ctx) { if (rf & 1) {
406
406
  i0.ɵɵelementStart(0, "div", 0);
407
407
  i0.ɵɵtemplate(1, CatalogListComponent_div_1_Template, 7, 9, "div", 1);
408
408
  i0.ɵɵpipe(2, "async");
@@ -463,4 +463,4 @@ CatalogListComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CatalogListComponent
463
463
  type: ViewChildren,
464
464
  args: [RecipeCardComponent]
465
465
  }] }); })();
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvY2F0YWxvZy1saXN0L2NhdGFsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctbGlzdC9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlD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S0FBSztZQUNHLGlCQUFpQjtrQkFBekIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDSSxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNO1lBQ0csT0FBTztrQkFBaEIsTUFBTTtZQUU0QixXQUFXO2tCQUE3QyxZQUFZO21CQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYXVzaWJsZVByb3BzIH0gZnJvbSAnbWVhbHotc2hhcmVkLWFuYWx5dGljcyc7XG5pbXBvcnQgeyBEb2N1bWVudENvbGxlY3Rpb24gfSBmcm9tICdtaWFtLWpzb25hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50VHJhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2V2ZW50LXRyYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJ0aWNsZSwgUmVjaXBlIH0gZnJvbSAnLi4vLi4vLi4vX21vZGVscyc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlLCBBcnRpY2xlc1NlcnZpY2UsIENvbnRleHRTZXJ2aWNlLCBSZWNpcGVzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9pY29uLmVudW0nO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IFJlY2lwZUNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZWNpcGUtY2FyZHMnO1xuaW1wb3J0IHsgbWVhbHpEZWJ1ZyB9IGZyb20gJy4uLy4uLy4uL191dGlscy9tZXRob2RzL2xvZ2dpbmcnO1xuXG5jb25zdCByZWNpcGVJbmNsdWRlcyA9IFsncmVjaXBlLXByb3ZpZGVyJywgJ3Nwb25zb3JzJywgJ3RhZ3MnXTtcbmNvbnN0IHJlY2lwZVNwYXJzZUZpZWxkcyA9IHtcbiAgcmVjaXBlczogWyd0aXRsZScsICdudW1iZXItb2YtZ3Vlc3RzJywgJ21lZGlhLXVybCcsICd2aWRlby1pZCcsICdmaWxpZ3JhbmUtbG9nby11cmwnLCAnZGlmZmljdWx0eScsICdwcmVwYXJhdGlvbi10aW1lJywgJ2Nvb2tpbmctdGltZScsXG4gICAgJ3Jlc3RpbmctdGltZScsIC4uLnJlY2lwZUluY2x1ZGVzXSxcbiAgc3BvbnNvcnM6IFsnbG9nby11cmwnXSxcbiAgdGFnczogWyd0YWctdHlwZS1pZCddLFxuICAncmVjaXBlLXByb3ZpZGVyJzogWyduYW1lJ11cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tY2F0YWxvZy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhdGFsb2ctbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTGlzdENvbXBvbmVudCBleHRlbmRzIEV2ZW50VHJhY2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpbHRlcnM6IFJlY2lwZUZpbHRlcnM7XG4gIEBJbnB1dCgpIHJhbmRvbU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kaWZpZWRHdWVzdHM6IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc3BsYXlJbmZvcyA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNwbGF5UHJpY2luZyA9IHRydWU7XG4gIEBJbnB1dCgpIGRpc3BsYXlHdWVzdHMgPSB0cnVlO1xuICBASW5wdXQoKSBoZWxwQnV0dG9uQWxsb3dlZCA9IHRydWU7XG4gIEBJbnB1dCgpIGFkZFJlY2lwZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgZXhjbHVkZWRSZWNpcGVzSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBkaXNwbGF5UmVjaXBlVmFyaWFudCA9IDE7XG4gIEBPdXRwdXQoKSBhZGRUb01lYWxzUGxhbm5lciA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBlPigpO1xuICBAT3V0cHV0KCkgZmlsdGVyUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgQFZpZXdDaGlsZHJlbihSZWNpcGVDYXJkQ29tcG9uZW50KSByZWNpcGVDYXJkcyE6IFF1ZXJ5TGlzdDxSZWNpcGVDYXJkQ29tcG9uZW50PjtcblxuICBjdXJyZW50UmVjaXBlczogUmVjaXBlW10gPSBbXTtcbiAgbGFzdFBhZ2UgPSAwO1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXTtcbiAgaWNvbiA9IEljb247XG4gIG5vTW9yZVJlY2lwZXMgPSBmYWxzZTtcbiAgbm9Nb3JlQXJ0aWNsZXMgPSBmYWxzZTtcbiAgZmlsdGVyc1RvRGlzcGxheSA9IFtdO1xuICBhcnRpY2xlczogQXJ0aWNsZVtdID0gW107XG4gIGN1cnJlbnRSZXF1ZXN0c0NvdW50ID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXJ0aWNsZXNTZXJ2aWNlOiBBcnRpY2xlc1NlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHQ6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihhbmFseXRpY3NTZXJ2aWNlKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gW107XG4gICAgdGhpcy5maWx0ZXJzID0gbmV3IFJlY2lwZUZpbHRlcnMoeyBzZWFyY2g6ICcnIH0pO1xuICB9XG5cbiAgZ2V0IHNvcnQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzKSB7XG4gICAgICByZXR1cm4gJ3Bvc2l0aW9uJztcbiAgICB9XG4gICAgaWYgKHRoaXMuYWRkUmVjaXBlTW9kZSkge1xuICAgICAgcmV0dXJuICdwcmljZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcHJvcHMoKTogUGxhdXNpYmxlUHJvcHMge1xuICAgIGNvbnN0IHByb3BzOiBQbGF1c2libGVQcm9wcyA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlcnM/LmFkZGl0aW9uYWxGaWx0ZXJzPy5maWx0ZXJzLnBhY2thZ2VzKSB7XG4gICAgICBwcm9wcy5jYXRlZ29yeV9pZCA9IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcHM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2V2aWV3KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlc0tleXMgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKTtcbiAgICAvLyBQcmV2ZW50cyByZWxvYWQgbG9vcCBpbiBhbmd1bGFyLCBiZWNhdXNlIG9yaWdpblRyYWNlIGFuZCBleGNsdWRlZFJlY2lwZXNJZHMgYXJlIHBhc3NlZCBhcyBtZXRob2RzIHNvIHRoZXkga2VlcCByZWZyZXNoaW5nIHRoZSBET01cbiAgICBpZiAoIShjaGFuZ2VzS2V5cy5pbmNsdWRlcygnb3JpZ2luVHJhY2UnKSAmJlxuICAgICAgKGNoYW5nZXNLZXlzLmxlbmd0aCA9PT0gMSB8fCAoY2hhbmdlc0tleXMubGVuZ3RoID09PSAyICYmIGNoYW5nZXNLZXlzLmluY2x1ZGVzKCdleGNsdWRlZFJlY2lwZXNJZHMnKSkpKSkge1xuICAgICAgdGhpcy5maWx0ZXJzVG9EaXNwbGF5ID0gdGhpcy5idWlsZEZpbHRlcnNBcnJheSgpO1xuICAgICAgdGhpcy5yZWxvYWRQYWdlKCk7XG4gICAgICBpZiAodGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2Uuc2VuZEV2ZW50KFxuICAgICAgICAgICdzZWFyY2gnLFxuICAgICAgICAgIHRoaXMucGF0aCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWFyY2hfdGVybTogdGhpcy5maWx0ZXJzLnNlYXJjaFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXJyZW50UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZXZlbnRQYXRoKCk7XG4gIH1cblxuICBhdXRvbG9hZENvbnRlbnRJZk5lY2Vzc2FyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMubG9hZGluZy5waXBlKHRha2UoMSksIGZpbHRlcihsb2FkaW5nID0+ICFsb2FkaW5nKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0aGlzLmN1cnJlbnRSZWNpcGVzLmxlbmd0aCA+IDAgJiYgIXRoaXMubm9Nb3JlUmVjaXBlcykgfHxcbiAgICAgICAgICAodGhpcy5hcnRpY2xlcy5sZW5ndGggPiAwICYmICF0aGlzLm5vTW9yZUFydGljbGVzKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBBdCBjb21wb25lbnQgaW5pdGlhbCBsb2FkLCAyIGNhbGxzIHdpbGwgYmUgbWFkZSBmb3IgdGhlIGZpcnN0IHR3byByZWNpcGVzIHBhZ2VcbiAgICAgICAgICAvLyBUaGlzIGlzIHRvIGF2b2lkIG1ha2luZyB0aGUgbG9hZGVyIHNwaW4gdHdpY2VcbiAgICAgICAgICB0aGlzLmxvYWRNb3JlKHRoaXMubGFzdFBhZ2UgPiAyKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbG9hZE1vcmUobG9hZGVyID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChsb2FkZXIpIHtcbiAgICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICB0aGlzLmxhc3RQYWdlKys7XG4gICAgdGhpcy5sb2FkQ29udGVudCgpO1xuICB9XG5cbiAgbG9hZFJlY2lwZXNQYWdlKHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICBpZiAodGhpcy5ub01vcmVSZWNpcGVzKSB7XG4gICAgICByZXR1cm4gb2YoKFtdIGFzIFJlY2lwZVtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmVjaXBlc1NlcnZpY2UuYWRkTWFuZGF0b3J5Q29tcGxldGlvblRvRmlsdGVyKHRoaXMuZmlsdGVycykucGlwZShcbiAgICAgIHN3aXRjaE1hcChyZXF1ZXN0RmlsdGVycyA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQuZGlzcGxheUluZ3JlZGllbnRQaWN0dXJlc09uUmVjaXBlQ2FyZHMgJiYgIXJlY2lwZUluY2x1ZGVzLmluY2x1ZGVzKCdpbmdyZWRpZW50cycpKSB7XG4gICAgICAgICAgcmVjaXBlSW5jbHVkZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMucmVjaXBlcy5wdXNoKCdpbmdyZWRpZW50cycpO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgICB7IGluZ3JlZGllbnRzOiBbJ25hbWUnLCAncXVhbnRpdHknLCAndW5pdCcsICdhY3RpdmUnLCAnZm9yY2VkLWVhbnMnLCAncGljdHVyZS11cmwnLCAncG9zaXRpb24nXSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50Kys7XG4gICAgICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmZpbHRlcihcbiAgICAgICAgICByZXF1ZXN0RmlsdGVycyxcbiAgICAgICAgICB7IHNpemU6IDIwLCBudW1iZXI6IHBhZ2UgfSxcbiAgICAgICAgICByZWNpcGVJbmNsdWRlcyxcbiAgICAgICAgICByZWNpcGVTcGFyc2VGaWVsZHMsXG4gICAgICAgICAgdGhpcy5tb2RpZmllZEd1ZXN0cyxcbiAgICAgICAgICB0aGlzLnJhbmRvbU1vZGUsXG4gICAgICAgICAgdGhpcy5zb3J0XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdDogUmVjaXBlW10pID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHMocmVzdWx0LCByZXF1ZXN0RmlsdGVycywgcGFnZSkpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcm9jZXNzUmVzdWx0cyhyZXN1bHRzOiBSZWNpcGVbXSwgcmVxdWVzdEZpbHRlcnM6IFJlY2lwZUZpbHRlcnMsIHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8UmVjaXBlW10+IHtcbiAgICB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50LS07XG4gICAgLy8gQmVjYXVzZSBGaWx0ZXIgaXMgYSB0eXBlLCBhdHRyaWJ1dGVzIGFyZSBhbHdheXMgaW4gdGhlIHNhbWUgb3JkZXIsIHNvIHN0cmluZ2lmeSB3b24ndCBiZSBmYWxzZSBmb3Igb2JqZWN0cyB3aXRoIHNhbWUgYXR0cmlidXRlc1xuICAgIC8vIElmIGZvciBzb21lIHJlYXNvbiBmaWx0ZXJzIGFyZSBkaWZmZXJlbnQsIGJ1dCB0aGVyZSBhcmUgbm8gYWRkaXRpb25hbCByZXF1ZXN0IG9uZ29pbmcsIGRvbid0IGJsb2NrIHRoZSBjb21wb25lbnRcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkocmVxdWVzdEZpbHRlcnMpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMpIHx8IHRoaXMuY3VycmVudFJlcXVlc3RzQ291bnQgPT09IDApIHtcbiAgICAgIGlmICh0aGlzLmV4Y2x1ZGVkUmVjaXBlc0lkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdHMgPSByZXN1bHRzLmZpbHRlcihyZWNpcGUgPT4gIXRoaXMuZXhjbHVkZWRSZWNpcGVzSWRzLmluY2x1ZGVzKHJlY2lwZS5pZCkpO1xuICAgICAgfVxuICAgICAgLy8gaWYgeW91IHNwYW0gY2xpY2sgb24gZmlsdGVycywgbXVsdGlwbGUgcmVxdWVzdHMgd2l0aCBwYWdlID09IDEgY291bGQgYmUgc2VudCBmb3IgdGhlIHNhbWUgZmlsdGVycyAtPiBvbmx5IGtlZXAgdGhlIGxhc3QgcmVzdWx0XG4gICAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gcGFnZSA9PT0gMSA/IHJlc3VsdHMgOiBbLi4udGhpcy5jdXJyZW50UmVjaXBlcywgLi4ucmVzdWx0c107XG4gICAgICB0aGlzLmN1cnJlbnRSZWNpcGVzLmZvckVhY2goKHI6IFJlY2lwZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tb2RpZmllZEd1ZXN0cyAmJiB0aGlzLm1vZGlmaWVkR3Vlc3RzID4gMCkge1xuICAgICAgICAgIHIubW9kaWZpZWRHdWVzdHMgPSB0aGlzLm1vZGlmaWVkR3Vlc3RzO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMubm9Nb3JlUmVjaXBlcyA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY3VycmVudFJlY2lwZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtZWFsekRlYnVnKGBGaWx0ZXJpbmcgYWJvcnRlZCA6ICR7SlNPTi5zdHJpbmdpZnkocmVxdWVzdEZpbHRlcnMpfSBhbmQgJHtKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMpfSBhcmUgZGlmZmVyZW50YCk7XG4gICAgICByZXR1cm4gb2YoKFtdIGFzIFJlY2lwZVtdKSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyUmVtb3ZlZC5lbWl0KGZpbHRlck5hbWUpO1xuICB9XG5cbiAgYnVpbGRGaWx0ZXJzQXJyYXkoKTogc3RyaW5nW10ge1xuICAgIGxldCBmaWx0ZXJOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICBmaWx0ZXJOYW1lcyA9IFsuLi5maWx0ZXJOYW1lcywgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmNvc3QpLCAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSksXG4gICAgICAuLi50aGlzLmdldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlcnMudGltZSldO1xuICAgIGlmICh0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlICE9PSAnJykge1xuICAgICAgZmlsdGVyTmFtZXMgPSBbdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlXS5jb25jYXQoZmlsdGVyTmFtZXMpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyTmFtZXM7XG4gIH1cblxuICBnZXRTZWxlY3RlZEZpbHRlcnMoZmlsdGVyc0FycmF5OiBSZWNpcGVGaWx0ZXJbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIWZpbHRlcnNBcnJheSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJzQXJyYXkuZmlsdGVyKGVsID0+IGVsLnZhbHVlKS5tYXAoZWwgPT4gZWwudGV4dCk7XG4gIH1cblxuICByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5uZXh0KHRydWUpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAxO1xuICAgIHRoaXMubm9Nb3JlUmVjaXBlcyA9IGZhbHNlO1xuICAgIHRoaXMubm9Nb3JlQXJ0aWNsZXMgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnRSZWNpcGVzID0gW107XG4gICAgdGhpcy5hcnRpY2xlcyA9IFtdO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLmxvYWRDb250ZW50KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgaXNTZWFyY2hpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVycy5zZWFyY2ggJiYgdGhpcy5maWx0ZXJzLnNlYXJjaCAhPT0gJyc7XG4gIH1cblxuICBpc0ZpZWxkRW1wdHkocmVjaXBlRmlsdGVyOiBSZWNpcGVGaWx0ZXJbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcmVjaXBlRmlsdGVyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gaWYgcmVjaXBlRmlsdGVyIGhhcyBhdCBsZWFzdCBvbmUgZmlsdGVyIHdpdGggdmFsdWUsIHJldHVybiBmYWxzZVxuICAgIHJldHVybiAhcmVjaXBlRmlsdGVyLnNvbWUoKGYpID0+IGYudmFsdWUpO1xuICB9XG5cbiAgaXNGaWx0ZXJpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hpbmcoKSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5kaWZmaWN1bHR5KSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5jb3N0KSB8fFxuICAgICAgIXRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy50aW1lKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCByZWNpcGU6IFJlY2lwZSk6IGFueSB7XG4gICAgcmV0dXJuIHJlY2lwZS5pZDtcbiAgfVxuXG4gIC8vIEFydGljbGVzIHdpbGwgYmUgbG9hZGVkIG9ubHkgaWYgYSBmaWx0ZXIgaXMgYXBwbGllZCBvbiBwYWNrYWdlc1xuICAvLyBUaGlzIGlzIHRvIGF2b2lkIGFydGljbGVzIGJlaW5nIGxvYWRlZCBpbiBzcGVjaWFsIHBhZ2VzIHdoZXJlIG9ubHkgZmlsdGVycyBvbiByZWNpcGVzIGFyZSBwYXNzZWQgKGZhdm9yaXRlcywgc3VnZ2VzdGVkLCBldGMuKVxuICAvLyA9PiBQYWNrYWdlcyBtaXhpbmcgYXJ0aWNsZXMgd2l0aCByZWNpcGVzIGlzIG5vdCBzdXBwb3J0ZWQgeWV0XG4gIHByaXZhdGUgbG9hZEFydGljbGVzKHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8QXJ0aWNsZVtdPiB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQuYXJ0aWNsZXNJbkNhdGFsb2dFbmFibGVkIHx8IHRoaXMubm9Nb3JlQXJ0aWNsZXMgfHwgIXRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBBcnRpY2xlW10pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hcnRpY2xlc1NlcnZpY2UuYWxsKHtcbiAgICAgIHJlbW90ZWZpbHRlcjoge1xuICAgICAgICBwYWNrYWdlczogdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLmZpbHRlcnMucGFja2FnZXMsXG4gICAgICAgIC4uLnRoaXMuZmlsdGVycy5zZWFyY2ggPyB7IHNlYXJjaDogdGhpcy5maWx0ZXJzLnNlYXJjaCB9IDoge31cbiAgICAgIH0sXG4gICAgICBwYWdlOiB7IHNpemU6IDIwLCBudW1iZXI6IHBhZ2UgfSxcbiAgICAgIHNvcnQ6IFsnLWRhdGUnXVxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3VsdDogRG9jdW1lbnRDb2xsZWN0aW9uPEFydGljbGU+KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZXMgPSBwYWdlID09PSAxID8gcmVzdWx0LmRhdGEgOiBbLi4udGhpcy5hcnRpY2xlcywgLi4ucmVzdWx0LmRhdGFdO1xuICAgICAgICB0aGlzLm5vTW9yZUFydGljbGVzID0gcmVzdWx0LmRhdGEubGVuZ3RoID09PSAwO1xuICAgICAgICByZXR1cm4gdGhpcy5hcnRpY2xlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZENvbnRlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICBmb3JrSm9pbihbdGhpcy5sb2FkUmVjaXBlc1BhZ2UodGhpcy5sYXN0UGFnZSksIHRoaXMubG9hZEFydGljbGVzKHRoaXMubGFzdFBhZ2UpXSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdFwiPlxuICA8IS0tIE5vIHJlc3VsdHMgLS0+XG4gIDxkaXYgKm5nSWY9XCIhKGxvYWRpbmcgfCBhc3luYykgJiYgY3VycmVudFJlY2lwZXMubGVuZ3RoID09PSAwICYmIGFydGljbGVzLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kXCI+XG4gICAgPG5nLW1pYW0taWNvbiBcbiAgICAgIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX19pY29uXCIgXG4gICAgICBbd2lkdGhdPVwiMjc5XCIgXG4gICAgICBbaGVpZ2h0XT1cIjI0M1wiIFxuICAgICAgW2ljb25OYW1lXT1cImljb24uTm9SZWNpcGVGb3VuZFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ljb24tZmlsdGVyaW5nJzogaXNGaWx0ZXJpbmcoKSwgJ2ljb24tbm90LWZpbHRlcmluZyc6ICFpc0ZpbHRlcmluZygpfVwiPlxuICAgIDwvbmctbWlhbS1pY29uPlxuICAgIDxkaXYgKm5nSWY9XCJpc0ZpbHRlcmluZygpIGVsc2Ugbm90RmlsdGVyaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgZmlsdGVyaW5nXCI+XG4gICAgICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIGF1Y3VuZSBwcm9wb3NpdGlvbiB0cm91dsOpZTwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VhcmNoaW5nKClcIj5cbiAgICAgICAgICA8c3BhbiBpMThuPnBvdXI8L3NwYW4+XG4gICAgICAgICAgPHNwYW4+XCJ7e2ZpbHRlcnMuc2VhcmNofX1cIjwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fbm90Rm91bmRfX3RpdGxlMlwiPlxuICAgICAgICA8c3BhbiBpMThuPlZldWlsbGV6IG1vZGlmaWVyIGxlcyB0ZXJtZXMgZGUgdm90cmUgcmVjaGVyY2hlIG91IHLDqWdsZXIgbGVzIGZpbHRyZXM8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI25vdEZpbHRlcmluZz5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkJCB8IGFzeW5jIGVsc2Ugbm90TG9nZ2VkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fbm90Rm91bmRfX3RpdGxlMSBub3QtZmlsdGVyaW5nXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5Ew6lzb2zDqSwgdm91cyBuJ2F2ZXogcGFzIGVuY29yZSBkJ2lkw6llcyByZXBhcyBzYXV2ZWdhcmTDqWVzPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNub3RMb2dnZWQ+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgbm90LWxvZ2dlZFwiPlxuICAgICAgICA8c3BhbiBpMThuPkTDqXNvbMOpLCB2b3VzIGRldmV6IMOqdHJlIGNvbm5lY3TDqSBwb3VyIGFjY8OpZGVyIGF1IGNvbnRlbnUgZGUgY2V0dGUgcGFnZS48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8IS0tIExvYWRlciAtLT5cbiAgPGRpdiAqbmdJZj1cImxvYWRpbmcgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX2xvYWRlclwiPlxuICAgIDxuZy1taWFtLWxvYWRlcj48L25nLW1pYW0tbG9hZGVyPlxuICAgIDxkaXYgaTE4bj5cbiAgICAgIENoYXJnZW1lbnQgZGVzIHLDqXN1bHRhdHMuLi5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19jYXJkc1wiPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVjaXBlQ2FyZCBsZXQtcmVjaXBlPSdyZWNpcGUnPlxuICAgICAgPCEtLSBDbGFzc2ljYWwgcmVjaXBlIGNhcmQgLS0+XG4gICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZFxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCIhYWRkUmVjaXBlTW9kZVwiXG4gICAgICAgIFthZGRSZWNpcGVNb2RlXT1cImFkZFJlY2lwZU1vZGVcIlxuICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgW2Rpc3BsYXlWYXJpYW50XT1cImRpc3BsYXlSZWNpcGVWYXJpYW50XCJcbiAgICAgICAgW2hlbHBCdXR0b25BbGxvd2VkXT1cImhlbHBCdXR0b25BbGxvd2VkXCJcbiAgICAgICAgKGFkZFRvTWVhbHNQbGFubmVyKT1cImFkZFRvTWVhbHNQbGFubmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjaXBlIG9mIGN1cnJlbnRSZWNpcGVzOyBsZXQgaXNMYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8IS0tIGlmIHJlY2lwZSBjYXJkIGlzIGxhc3QsIGVuY2Fwc3VsYXRlIHdpdGggbmdNaWFtTG9hZE9uU2Nyb2xsIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgbmdNaWFtTG9hZE9uU2Nyb2xsXG4gICAgICAgICAgW2lzTG9hZGluZ109XCJsb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICAgIG1hcmdpblJvb3Q9XCI2MDBweFwiXG4gICAgICAgICAgKGxvYWRNb3JlKT1cImF1dG9sb2FkQ29udGVudElmTmVjZXNzYXJ5KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY2lwZUNhcmRcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JlY2lwZTpyZWNpcGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cIiFpc0xhc3RcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWNpcGVDYXJkXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyZWNpcGU6cmVjaXBlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEFydGljbGUgY2FyZCAtLT5cbiAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
466
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLW1pYW0vc3JjL2xpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvY2F0YWxvZy1saXN0L2NhdGFsb2ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1taWFtL3NyYy9saWIvX3dlYi1jb21wb25lbnRzL3JlY2lwZS1jYXRhbG9nL2NhdGFsb2ctbGlzdC9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlD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LEtBQUs7WUFDRyxpQkFBaUI7a0JBQXpCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0csb0JBQW9CO2tCQUE1QixLQUFLO1lBQ0ksaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTtZQUNHLE9BQU87a0JBQWhCLE1BQU07WUFFNEIsV0FBVztrQkFBN0MsWUFBWTttQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGF1c2libGVQcm9wcyB9IGZyb20gJ21lYWx6LXNoYXJlZC1hbmFseXRpY3MnO1xuaW1wb3J0IHsgRG9jdW1lbnRDb2xsZWN0aW9uIH0gZnJvbSAnbWlhbS1qc29uYXBpJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdmVudFRyYWNlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19jb21wb25lbnRzL2Fic3RyYWN0cy9ldmVudC10cmFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFydGljbGUsIFJlY2lwZSB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSwgQXJ0aWNsZXNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlc1NlcnZpY2UsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IFJlY2lwZUZpbHRlciwgUmVjaXBlRmlsdGVycyB9IGZyb20gJy4uLy4uLy4uL190eXBlcy9yZWNpcGUtZmlsdGVycyc7XG5pbXBvcnQgeyBSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVjaXBlLWNhcmRzJztcbmltcG9ydCB7IG1lYWx6RGVidWcgfSBmcm9tICcuLi8uLi8uLi9fdXRpbHMvbWV0aG9kcy9sb2dnaW5nJztcblxuY29uc3QgcmVjaXBlSW5jbHVkZXMgPSBbJ3JlY2lwZS1wcm92aWRlcicsICdzcG9uc29ycycsICd0YWdzJ107XG5jb25zdCByZWNpcGVTcGFyc2VGaWVsZHMgPSB7XG4gIHJlY2lwZXM6IFsndGl0bGUnLCAnbnVtYmVyLW9mLWd1ZXN0cycsICdtZWRpYS11cmwnLCAndmlkZW8taWQnLCAnZmlsaWdyYW5lLWxvZ28tdXJsJywgJ2RpZmZpY3VsdHknLCAncHJlcGFyYXRpb24tdGltZScsICdjb29raW5nLXRpbWUnLFxuICAgICdyZXN0aW5nLXRpbWUnLCAuLi5yZWNpcGVJbmNsdWRlc10sXG4gIHNwb25zb3JzOiBbJ2xvZ28tdXJsJ10sXG4gIHRhZ3M6IFsndGFnLXR5cGUtaWQnXSxcbiAgJ3JlY2lwZS1wcm92aWRlcic6IFsnbmFtZSddXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLWNhdGFsb2ctbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXRhbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXRhbG9nLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0xpc3RDb21wb25lbnQgZXh0ZW5kcyBFdmVudFRyYWNlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBmaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzO1xuICBASW5wdXQoKSByYW5kb21Nb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vZGlmaWVkR3Vlc3RzOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBkaXNwbGF5SW5mb3MgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzcGxheVByaWNpbmcgPSB0cnVlO1xuICBASW5wdXQoKSBkaXNwbGF5R3Vlc3RzID0gdHJ1ZTtcbiAgQElucHV0KCkgaGVscEJ1dHRvbkFsbG93ZWQgPSB0cnVlO1xuICBASW5wdXQoKSBhZGRSZWNpcGVNb2RlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4Y2x1ZGVkUmVjaXBlc0lkczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgZGlzcGxheVJlY2lwZVZhcmlhbnQgPSAxO1xuICBAT3V0cHV0KCkgYWRkVG9NZWFsc1BsYW5uZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY2lwZT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlclJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oUmVjaXBlQ2FyZENvbXBvbmVudCkgcmVjaXBlQ2FyZHMhOiBRdWVyeUxpc3Q8UmVjaXBlQ2FyZENvbXBvbmVudD47XG5cbiAgY3VycmVudFJlY2lwZXM6IFJlY2lwZVtdID0gW107XG4gIGxhc3RQYWdlID0gMDtcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XG4gIGljb24gPSBJY29uO1xuICBub01vcmVSZWNpcGVzID0gZmFsc2U7XG4gIG5vTW9yZUFydGljbGVzID0gZmFsc2U7XG4gIGZpbHRlcnNUb0Rpc3BsYXkgPSBbXTtcbiAgYXJ0aWNsZXM6IEFydGljbGVbXSA9IFtdO1xuICBjdXJyZW50UmVxdWVzdHNDb3VudCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlY2lwZXNTZXJ2aWNlOiBSZWNpcGVzU2VydmljZSxcbiAgICBwcml2YXRlIGFydGljbGVzU2VydmljZTogQXJ0aWNsZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0OiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoYW5hbHl0aWNzU2VydmljZSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IFtdO1xuICAgIHRoaXMuZmlsdGVycyA9IG5ldyBSZWNpcGVGaWx0ZXJzKHsgc2VhcmNoOiAnJyB9KTtcbiAgfVxuXG4gIGdldCBzb3J0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcmV0dXJuICdwb3NpdGlvbic7XG4gICAgfVxuICAgIGlmICh0aGlzLmFkZFJlY2lwZU1vZGUpIHtcbiAgICAgIHJldHVybiAncHJpY2UnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHByb3BzKCk6IFBsYXVzaWJsZVByb3BzIHtcbiAgICBjb25zdCBwcm9wczogUGxhdXNpYmxlUHJvcHMgPSB7fTtcbiAgICBpZiAodGhpcy5maWx0ZXJzPy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycy5wYWNrYWdlcykge1xuICAgICAgcHJvcHMuY2F0ZWdvcnlfaWQgPSB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMuZmlsdGVycy5wYWNrYWdlcztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdldmlldygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5nZXNLZXlzID0gT2JqZWN0LmtleXMoY2hhbmdlcyk7XG4gICAgLy8gUHJldmVudHMgcmVsb2FkIGxvb3AgaW4gYW5ndWxhciwgYmVjYXVzZSBvcmlnaW5UcmFjZSBhbmQgZXhjbHVkZWRSZWNpcGVzSWRzIGFyZSBwYXNzZWQgYXMgbWV0aG9kcyBzbyB0aGV5IGtlZXAgcmVmcmVzaGluZyB0aGUgRE9NXG4gICAgaWYgKCEoY2hhbmdlc0tleXMuaW5jbHVkZXMoJ29yaWdpblRyYWNlJykgJiZcbiAgICAgIChjaGFuZ2VzS2V5cy5sZW5ndGggPT09IDEgfHwgKGNoYW5nZXNLZXlzLmxlbmd0aCA9PT0gMiAmJiBjaGFuZ2VzS2V5cy5pbmNsdWRlcygnZXhjbHVkZWRSZWNpcGVzSWRzJykpKSkpIHtcbiAgICAgIHRoaXMuZmlsdGVyc1RvRGlzcGxheSA9IHRoaXMuYnVpbGRGaWx0ZXJzQXJyYXkoKTtcbiAgICAgIHRoaXMucmVsb2FkUGFnZSgpO1xuICAgICAgaWYgKHRoaXMuZmlsdGVycy5zZWFyY2gpIHtcbiAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLnNlbmRFdmVudChcbiAgICAgICAgICAnc2VhcmNoJyxcbiAgICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2VhcmNoX3Rlcm06IHRoaXMuZmlsdGVycy5zZWFyY2hcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY3VycmVudFBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmV2ZW50UGF0aCgpO1xuICB9XG5cbiAgYXV0b2xvYWRDb250ZW50SWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmxvYWRpbmcucGlwZSh0YWtlKDEpLCBmaWx0ZXIobG9hZGluZyA9PiAhbG9hZGluZykpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAodGhpcy5jdXJyZW50UmVjaXBlcy5sZW5ndGggPiAwICYmICF0aGlzLm5vTW9yZVJlY2lwZXMpIHx8XG4gICAgICAgICAgKHRoaXMuYXJ0aWNsZXMubGVuZ3RoID4gMCAmJiAhdGhpcy5ub01vcmVBcnRpY2xlcylcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQXQgY29tcG9uZW50IGluaXRpYWwgbG9hZCwgMiBjYWxscyB3aWxsIGJlIG1hZGUgZm9yIHRoZSBmaXJzdCB0d28gcmVjaXBlcyBwYWdlXG4gICAgICAgICAgLy8gVGhpcyBpcyB0byBhdm9pZCBtYWtpbmcgdGhlIGxvYWRlciBzcGluIHR3aWNlXG4gICAgICAgICAgdGhpcy5sb2FkTW9yZSh0aGlzLmxhc3RQYWdlID4gMik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRNb3JlKGxvYWRlciA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAobG9hZGVyKSB7XG4gICAgICB0aGlzLmxvYWRpbmcubmV4dCh0cnVlKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5sYXN0UGFnZSsrO1xuICAgIHRoaXMubG9hZENvbnRlbnQoKTtcbiAgfVxuXG4gIGxvYWRSZWNpcGVzUGFnZShwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgaWYgKHRoaXMubm9Nb3JlUmVjaXBlcykge1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBSZWNpcGVbXSkpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlY2lwZXNTZXJ2aWNlLmFkZE1hbmRhdG9yeUNvbXBsZXRpb25Ub0ZpbHRlcih0aGlzLmZpbHRlcnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAocmVxdWVzdEZpbHRlcnMgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LmRpc3BsYXlJbmdyZWRpZW50UGljdHVyZXNPblJlY2lwZUNhcmRzICYmICFyZWNpcGVJbmNsdWRlcy5pbmNsdWRlcygnaW5ncmVkaWVudHMnKSkge1xuICAgICAgICAgIHJlY2lwZUluY2x1ZGVzLnB1c2goJ2luZ3JlZGllbnRzJyk7XG4gICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLnJlY2lwZXMucHVzaCgnaW5ncmVkaWVudHMnKTtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLFxuICAgICAgICAgICAgeyBpbmdyZWRpZW50czogWyduYW1lJywgJ3F1YW50aXR5JywgJ3VuaXQnLCAnYWN0aXZlJywgJ2ZvcmNlZC1lYW5zJywgJ3BpY3R1cmUtdXJsJywgJ3Bvc2l0aW9uJ10gfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50UmVxdWVzdHNDb3VudCsrO1xuICAgICAgICByZXR1cm4gdGhpcy5yZWNpcGVzU2VydmljZS5maWx0ZXIoXG4gICAgICAgICAgcmVxdWVzdEZpbHRlcnMsXG4gICAgICAgICAgeyBzaXplOiAyMCwgbnVtYmVyOiBwYWdlIH0sXG4gICAgICAgICAgcmVjaXBlSW5jbHVkZXMsXG4gICAgICAgICAgcmVjaXBlU3BhcnNlRmllbGRzLFxuICAgICAgICAgIHRoaXMubW9kaWZpZWRHdWVzdHMsXG4gICAgICAgICAgdGhpcy5yYW5kb21Nb2RlLFxuICAgICAgICAgIHRoaXMuc29ydFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChyZXN1bHQ6IFJlY2lwZVtdKSA9PiB0aGlzLnByb2Nlc3NSZXN1bHRzKHJlc3VsdCwgcmVxdWVzdEZpbHRlcnMsIHBhZ2UpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0czogUmVjaXBlW10sIHJlcXVlc3RGaWx0ZXJzOiBSZWNpcGVGaWx0ZXJzLCBwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJlY2lwZVtdPiB7XG4gICAgdGhpcy5jdXJyZW50UmVxdWVzdHNDb3VudC0tO1xuICAgIC8vIEJlY2F1c2UgRmlsdGVyIGlzIGEgdHlwZSwgYXR0cmlidXRlcyBhcmUgYWx3YXlzIGluIHRoZSBzYW1lIG9yZGVyLCBzbyBzdHJpbmdpZnkgd29uJ3QgYmUgZmFsc2UgZm9yIG9iamVjdHMgd2l0aCBzYW1lIGF0dHJpYnV0ZXNcbiAgICAvLyBJZiBmb3Igc29tZSByZWFzb24gZmlsdGVycyBhcmUgZGlmZmVyZW50LCBidXQgdGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgcmVxdWVzdCBvbmdvaW5nLCBkb24ndCBibG9jayB0aGUgY29tcG9uZW50XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHJlcXVlc3RGaWx0ZXJzKSA9PT0gSlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXJzKSB8fCB0aGlzLmN1cnJlbnRSZXF1ZXN0c0NvdW50ID09PSAwKSB7XG4gICAgICBpZiAodGhpcy5leGNsdWRlZFJlY2lwZXNJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXN1bHRzID0gcmVzdWx0cy5maWx0ZXIocmVjaXBlID0+ICF0aGlzLmV4Y2x1ZGVkUmVjaXBlc0lkcy5pbmNsdWRlcyhyZWNpcGUuaWQpKTtcbiAgICAgIH1cbiAgICAgIC8vIGlmIHlvdSBzcGFtIGNsaWNrIG9uIGZpbHRlcnMsIG11bHRpcGxlIHJlcXVlc3RzIHdpdGggcGFnZSA9PSAxIGNvdWxkIGJlIHNlbnQgZm9yIHRoZSBzYW1lIGZpbHRlcnMgLT4gb25seSBrZWVwIHRoZSBsYXN0IHJlc3VsdFxuICAgICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IHBhZ2UgPT09IDEgPyByZXN1bHRzIDogWy4uLnRoaXMuY3VycmVudFJlY2lwZXMsIC4uLnJlc3VsdHNdO1xuICAgICAgdGhpcy5jdXJyZW50UmVjaXBlcy5mb3JFYWNoKChyOiBSZWNpcGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW9kaWZpZWRHdWVzdHMgJiYgdGhpcy5tb2RpZmllZEd1ZXN0cyA+IDApIHtcbiAgICAgICAgICByLm1vZGlmaWVkR3Vlc3RzID0gdGhpcy5tb2RpZmllZEd1ZXN0cztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vTW9yZVJlY2lwZXMgPSByZXN1bHRzLmxlbmd0aCA9PT0gMDtcbiAgICAgIHJldHVybiBvZih0aGlzLmN1cnJlbnRSZWNpcGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVhbHpEZWJ1ZyhgRmlsdGVyaW5nIGFib3J0ZWQgOiAke0pTT04uc3RyaW5naWZ5KHJlcXVlc3RGaWx0ZXJzKX0gYW5kICR7SlNPTi5zdHJpbmdpZnkodGhpcy5maWx0ZXJzKX0gYXJlIGRpZmZlcmVudGApO1xuICAgICAgcmV0dXJuIG9mKChbXSBhcyBSZWNpcGVbXSkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlclJlbW92ZWQuZW1pdChmaWx0ZXJOYW1lKTtcbiAgfVxuXG4gIGJ1aWxkRmlsdGVyc0FycmF5KCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZmlsdGVyTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgZmlsdGVyTmFtZXMgPSBbLi4uZmlsdGVyTmFtZXMsIC4uLnRoaXMuZ2V0U2VsZWN0ZWRGaWx0ZXJzKHRoaXMuZmlsdGVycy5jb3N0KSwgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLmRpZmZpY3VsdHkpLFxuICAgICAgLi4udGhpcy5nZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJzLnRpbWUpXTtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzICYmIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSAhPT0gJycpIHtcbiAgICAgIGZpbHRlck5hbWVzID0gW3RoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZV0uY29uY2F0KGZpbHRlck5hbWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlck5hbWVzO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRGaWx0ZXJzKGZpbHRlcnNBcnJheTogUmVjaXBlRmlsdGVyW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFmaWx0ZXJzQXJyYXkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyc0FycmF5LmZpbHRlcihlbCA9PiBlbC52YWx1ZSkubWFwKGVsID0+IGVsLnRleHQpO1xuICB9XG5cbiAgcmVsb2FkUGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcubmV4dCh0cnVlKTtcbiAgICB0aGlzLmxhc3RQYWdlID0gMTtcbiAgICB0aGlzLm5vTW9yZVJlY2lwZXMgPSBmYWxzZTtcbiAgICB0aGlzLm5vTW9yZUFydGljbGVzID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50UmVjaXBlcyA9IFtdO1xuICAgIHRoaXMuYXJ0aWNsZXMgPSBbXTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkQ29udGVudCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIGlzU2VhcmNoaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuc2VhcmNoICYmIHRoaXMuZmlsdGVycy5zZWFyY2ggIT09ICcnO1xuICB9XG5cbiAgaXNGaWVsZEVtcHR5KHJlY2lwZUZpbHRlcjogUmVjaXBlRmlsdGVyW10pOiBib29sZWFuIHtcbiAgICBpZiAoIXJlY2lwZUZpbHRlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIGlmIHJlY2lwZUZpbHRlciBoYXMgYXQgbGVhc3Qgb25lIGZpbHRlciB3aXRoIHZhbHVlLCByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gIXJlY2lwZUZpbHRlci5zb21lKChmKSA9PiBmLnZhbHVlKTtcbiAgfVxuXG4gIGlzRmlsdGVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzU2VhcmNoaW5nKCkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuY29zdCkgfHxcbiAgICAgICF0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMudGltZSk7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgcmVjaXBlOiBSZWNpcGUpOiBhbnkge1xuICAgIHJldHVybiByZWNpcGUuaWQ7XG4gIH1cblxuICAvLyBBcnRpY2xlcyB3aWxsIGJlIGxvYWRlZCBvbmx5IGlmIGEgZmlsdGVyIGlzIGFwcGxpZWQgb24gcGFja2FnZXNcbiAgLy8gVGhpcyBpcyB0byBhdm9pZCBhcnRpY2xlcyBiZWluZyBsb2FkZWQgaW4gc3BlY2lhbCBwYWdlcyB3aGVyZSBvbmx5IGZpbHRlcnMgb24gcmVjaXBlcyBhcmUgcGFzc2VkIChmYXZvcml0ZXMsIHN1Z2dlc3RlZCwgZXRjLilcbiAgLy8gPT4gUGFja2FnZXMgbWl4aW5nIGFydGljbGVzIHdpdGggcmVjaXBlcyBpcyBub3Qgc3VwcG9ydGVkIHlldFxuICBwcml2YXRlIGxvYWRBcnRpY2xlcyhwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFydGljbGVbXT4ge1xuICAgIGlmICghdGhpcy5jb250ZXh0LmFydGljbGVzSW5DYXRhbG9nRW5hYmxlZCB8fCB0aGlzLm5vTW9yZUFydGljbGVzIHx8ICF0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMucGFja2FnZXMpIHtcbiAgICAgIHJldHVybiBvZigoW10gYXMgQXJ0aWNsZVtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXNTZXJ2aWNlLmFsbCh7XG4gICAgICByZW1vdGVmaWx0ZXI6IHtcbiAgICAgICAgcGFja2FnZXM6IHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy5maWx0ZXJzLnBhY2thZ2VzLFxuICAgICAgICAuLi50aGlzLmZpbHRlcnMuc2VhcmNoID8geyBzZWFyY2g6IHRoaXMuZmlsdGVycy5zZWFyY2ggfSA6IHt9XG4gICAgICB9LFxuICAgICAgcGFnZTogeyBzaXplOiAyMCwgbnVtYmVyOiBwYWdlIH0sXG4gICAgICBzb3J0OiBbJy1kYXRlJ11cbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXN1bHQ6IERvY3VtZW50Q29sbGVjdGlvbjxBcnRpY2xlPikgPT4ge1xuICAgICAgICB0aGlzLmFydGljbGVzID0gcGFnZSA9PT0gMSA/IHJlc3VsdC5kYXRhIDogWy4uLnRoaXMuYXJ0aWNsZXMsIC4uLnJlc3VsdC5kYXRhXTtcbiAgICAgICAgdGhpcy5ub01vcmVBcnRpY2xlcyA9IHJlc3VsdC5kYXRhLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb250ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgZm9ya0pvaW4oW3RoaXMubG9hZFJlY2lwZXNQYWdlKHRoaXMubGFzdFBhZ2UpLCB0aGlzLmxvYWRBcnRpY2xlcyh0aGlzLmxhc3RQYWdlKV0pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZy5uZXh0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RcIj5cbiAgPCEtLSBObyByZXN1bHRzIC0tPlxuICA8ZGl2ICpuZ0lmPVwiIShsb2FkaW5nIHwgYXN5bmMpICYmIGN1cnJlbnRSZWNpcGVzLmxlbmd0aCA9PT0gMCAmJiBhcnRpY2xlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZFwiPlxuICAgIDxuZy1taWFtLWljb24gXG4gICAgICBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9faWNvblwiIFxuICAgICAgW3dpZHRoXT1cIjI3OVwiIFxuICAgICAgW2hlaWdodF09XCIyNDNcIiBcbiAgICAgIFtpY29uTmFtZV09XCJpY29uLk5vUmVjaXBlRm91bmRcIlxuICAgICAgW25nQ2xhc3NdPVwieydpY29uLWZpbHRlcmluZyc6IGlzRmlsdGVyaW5nKCksICdpY29uLW5vdC1maWx0ZXJpbmcnOiAhaXNGaWx0ZXJpbmcoKX1cIj5cbiAgICA8L25nLW1pYW0taWNvbj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNGaWx0ZXJpbmcoKSBlbHNlIG5vdEZpbHRlcmluZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9fdGl0bGUxIGZpbHRlcmluZ1wiPlxuICAgICAgICA8c3BhbiBpMThuPkTDqXNvbMOpLCBhdWN1bmUgcHJvcG9zaXRpb24gdHJvdXbDqWU8L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NlYXJjaGluZygpXCI+XG4gICAgICAgICAgPHNwYW4gaTE4bj5wb3VyPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPlwie3tmaWx0ZXJzLnNlYXJjaH19XCI8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTJcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5WZXVpbGxleiBtb2RpZmllciBsZXMgdGVybWVzIGRlIHZvdHJlIHJlY2hlcmNoZSBvdSByw6lnbGVyIGxlcyBmaWx0cmVzPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNub3RGaWx0ZXJpbmc+XG4gICAgICA8ZGl2ICpuZ0lmPVwidGhpcy51c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luYyBlbHNlIG5vdExvZ2dlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWlhbS1jYXRhbG9nLWxpc3RfX25vdEZvdW5kX190aXRsZTEgbm90LWZpbHRlcmluZ1wiPlxuICAgICAgICAgIDxzcGFuIGkxOG4+RMOpc29sw6ksIHZvdXMgbidhdmV6IHBhcyBlbmNvcmUgZCdpZMOpZXMgcmVwYXMgc2F1dmVnYXJkw6llczwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm90TG9nZ2VkPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19ub3RGb3VuZF9fdGl0bGUxIG5vdC1sb2dnZWRcIj5cbiAgICAgICAgPHNwYW4gaTE4bj5Ew6lzb2zDqSwgdm91cyBkZXZleiDDqnRyZSBjb25uZWN0w6kgcG91ciBhY2PDqWRlciBhdSBjb250ZW51IGRlIGNldHRlIHBhZ2UuPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBMb2FkZXIgLS0+XG4gIDxkaXYgKm5nSWY9XCJsb2FkaW5nIHwgYXN5bmNcIiBjbGFzcz1cIm1pYW0tY2F0YWxvZy1saXN0X19sb2FkZXJcIj5cbiAgICA8bmctbWlhbS1sb2FkZXI+PC9uZy1taWFtLWxvYWRlcj5cbiAgICA8ZGl2IGkxOG4+XG4gICAgICBDaGFyZ2VtZW50IGRlcyByw6lzdWx0YXRzLi4uXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtaWFtLWNhdGFsb2ctbGlzdF9fY2FyZHNcIiByb2xlPVwibGlzdFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVjaXBlQ2FyZCBsZXQtcmVjaXBlPSdyZWNpcGUnPlxuICAgICAgPCEtLSBDbGFzc2ljYWwgcmVjaXBlIGNhcmQgLS0+XG4gICAgICA8bmctbWlhbS1yZWNpcGUtY2FyZFxuICAgICAgICBbcmVjaXBlXT0ncmVjaXBlJ1xuICAgICAgICByb2xlPVwibGlzdGl0ZW1cIlxuICAgICAgICBbb3JpZ2luVHJhY2VdPVwiZXZlbnRUcmFjZVwiXG4gICAgICAgIFtkaXNwbGF5UHJpY2luZ109XCJkaXNwbGF5UHJpY2luZ1wiXG4gICAgICAgIFtwcmV2aWV3QWxsb3dlZF09XCIhYWRkUmVjaXBlTW9kZVwiXG4gICAgICAgIFthZGRSZWNpcGVNb2RlXT1cImFkZFJlY2lwZU1vZGVcIlxuICAgICAgICBbZGlzcGxheUd1ZXN0c109XCJkaXNwbGF5R3Vlc3RzXCJcbiAgICAgICAgW2Rpc3BsYXlWYXJpYW50XT1cImRpc3BsYXlSZWNpcGVWYXJpYW50XCJcbiAgICAgICAgW2hlbHBCdXR0b25BbGxvd2VkXT1cImhlbHBCdXR0b25BbGxvd2VkXCJcbiAgICAgICAgKGFkZFRvTWVhbHNQbGFubmVyKT1cImFkZFRvTWVhbHNQbGFubmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9uZy1taWFtLXJlY2lwZS1jYXJkPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgcmVjaXBlIG9mIGN1cnJlbnRSZWNpcGVzOyBsZXQgaXNMYXN0ID0gbGFzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8IS0tIGlmIHJlY2lwZSBjYXJkIGlzIGxhc3QsIGVuY2Fwc3VsYXRlIHdpdGggbmdNaWFtTG9hZE9uU2Nyb2xsIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgbmdNaWFtTG9hZE9uU2Nyb2xsXG4gICAgICAgICAgW2lzTG9hZGluZ109XCJsb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICAgIG1hcmdpblJvb3Q9XCI2MDBweFwiXG4gICAgICAgICAgKGxvYWRNb3JlKT1cImF1dG9sb2FkQ29udGVudElmTmVjZXNzYXJ5KClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY2lwZUNhcmRcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3JlY2lwZTpyZWNpcGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICAqbmdJZj1cIiFpc0xhc3RcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJyZWNpcGVDYXJkXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntyZWNpcGU6cmVjaXBlfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEFydGljbGUgY2FyZCAtLT5cbiAgICA8bmctbWlhbS1jYXRhbG9nLWFydGljbGUtY2FyZCAqbmdGb3I9XCJsZXQgYXJ0aWNsZSBvZiBhcnRpY2xlc1wiIFthcnRpY2xlXT1cImFydGljbGVcIj48L25nLW1pYW0tY2F0YWxvZy1hcnRpY2xlLWNhcmQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=