ctt-babylon 0.24.67 → 0.24.69

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.
@@ -12,6 +12,7 @@ export class BabylonEngineModalV2Component {
12
12
  constructor(cdr) {
13
13
  this.cdr = cdr;
14
14
  this.defaultAdults = 1;
15
+ this.disabledDateRanges = [];
15
16
  this.close = new EventEmitter();
16
17
  this.form = new FormGroup({
17
18
  dates: new FormControl(null, Validators.required),
@@ -44,8 +45,10 @@ export class BabylonEngineModalV2Component {
44
45
  this.showBabiesAges = false;
45
46
  this.finalizedGuests = false;
46
47
  this.destroy$ = new Subject();
48
+ this.disabledDates = [];
47
49
  }
48
50
  ngOnInit() {
51
+ this.initDisabledDates();
49
52
  const today = new Date();
50
53
  const tomorrow = new Date();
51
54
  tomorrow.setDate(today.getDate() + 1);
@@ -69,6 +72,29 @@ export class BabylonEngineModalV2Component {
69
72
  this.cdr.markForCheck();
70
73
  });
71
74
  }
75
+ initDisabledDates() {
76
+ if (!this.disabledDateRanges || this.disabledDateRanges.length === 0) {
77
+ this.disabledDates = [];
78
+ return;
79
+ }
80
+ const disabled = [];
81
+ this.disabledDateRanges.forEach((range) => {
82
+ const startDate = typeof range.start === 'string' ? new Date(range.start) : range.start;
83
+ const endDate = typeof range.end === 'string' ? new Date(range.end) : range.end;
84
+ if (startDate && endDate && !isNaN(startDate.getTime()) && !isNaN(endDate.getTime())) {
85
+ this.addDateRange(disabled, startDate, endDate);
86
+ }
87
+ });
88
+ this.disabledDates = disabled;
89
+ }
90
+ addDateRange(targetArray, startDate, endDate) {
91
+ const currentDate = new Date(startDate);
92
+ const limitDate = new Date(endDate);
93
+ while (currentDate <= limitDate) {
94
+ targetArray.push(new Date(currentDate));
95
+ currentDate.setDate(currentDate.getDate() + 1);
96
+ }
97
+ }
72
98
  ngOnDestroy() {
73
99
  this.destroy$.next();
74
100
  this.destroy$.complete();
@@ -295,7 +321,7 @@ export class BabylonEngineModalV2Component {
295
321
  });
296
322
  }
297
323
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonEngineModalV2Component, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonEngineModalV2Component, isStandalone: true, selector: "lib-babylon-engine-modal-v2", inputs: { title: "title", subtitle: "subtitle", datepickerData: "datepickerData", guestsInput: "guestsInput", promoInput: "promoInput", button: "button", guests: "guests", openInNewWindow: "openInNewWindow", defaultAdults: "defaultAdults" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["datepicker"], descendants: true }], ngImport: i0, template: "<div class=\"modal modal__reservar\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__close js-close\"\n data-modal_name=\"reservar\"\n role=\"button\"\n (click)=\"closeModal()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use href=\"/assets/babylon/svg/icon-close.svg#icon-close\"></use>\n </svg>\n </div>\n <figure class=\"modal__reservar-graphic\">\n <img src=\"/assets/babylon/images/img-40.webp\" />\n </figure>\n <div class=\"modal__box\">\n @if (title) {\n <h2>{{ title }}</h2>\n }\n <div class=\"modal__reservar-form\" [formGroup]=\"form\">\n @if (datepickerData) {\n <div class=\"input-group\" (click)=\"openCalendar()\">\n <label class=\"input-group--label\" for=\"In-date\">{{\n datepickerData.placeholder\n }}</label>\n\n <p-calendar\n class=\"input-control\"\n [showOtherMonths]=\"false\"\n dateFormat=\"dd-mm-yy\"\n selectionMode=\"range\"\n [placeholder]=\"displayDates\"\n formControlName=\"dates\"\n [numberOfMonths]=\"2\"\n #datepicker\n [readonlyInput]=\"true\"\n [showOnFocus]=\"false\"\n (onSelect)=\"onDateSelect()\"\n ></p-calendar>\n <span\n class=\"input-group--icon\"\n (click)=\"openCalendar()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-calender.svg#icon-calender\"\n ></use>\n </svg>\n </span>\n </div>\n }\n\n @if (guestsInput) {\n <div\n class=\"input-group js-personas-subfields\"\n role=\"button\"\n (click)=\"togglePersonas()\"\n [class.open]=\"showSubfields\"\n [class.final]=\"finalizedGuests\"\n >\n <span class=\"input-control\">{{\n guestsValue || '01'\n }}</span>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"persons\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests) {\n <div\n class=\"sub-fields\"\n [style.display]=\"showSubfields ? 'block' : 'none'\"\n >\n @if (guests.adultsDropdown) {\n <div class=\"input-group\">\n <label\n class=\"input-group--label\"\n for=\"adult1\"\n >{{ guests.adultsDropdown.title }}</label\n >\n <select\n class=\"select-control\"\n name=\"Adultos\"\n id=\"adult1\"\n #adult1\n formControlName=\"adults\"\n (change)=\"onAdultsChange($event)\"\n >\n <!-- <option value=\"0\" selected>00</option> -->\n @for (\n option of guests.adultsDropdown.options;\n track $index\n ) {\n <option [ngValue]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests.kidsDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner childAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"child1\"\n >\n {{ guests.kidsDropdown.title }}\n @if (childrenAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ childrenAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Ni\u00F1os\"\n id=\"child1\"\n #child1\n [value]=\"guestsValueSeparates.kids\"\n (change)=\"onChildrenChange($event)\"\n >\n @for (\n option of guests.kidsDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"user\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box children-list\"\n [style.display]=\"\n showChildrenAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n childAge of childrenAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'children-age' +\n ($index + 1)\n \"\n >{{ guests.kidsLabel || 'Nino' }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'children-age' +\n ($index + 1)\n \"\n [id]=\"\n 'children-age' +\n ($index + 1)\n \"\n [value]=\"childAge\"\n (change)=\"\n onChildAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of childAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"option.code\"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span\n class=\"input-group--icon\"\n >\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (guests.babiesDropdown) {\n <div class=\"input-group\">\n <div class=\"input-group--inner babiesAge-group-list\">\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"babies1\"\n >\n {{ guests.babiesDropdown.title }}\n @if (babiesAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ babiesAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Beb\u00E9s\"\n id=\"babies1\"\n #babies1\n [value]=\"guestsValueSeparates.infants\"\n (change)=\"onBabiesChange($event)\"\n >\n @for (\n option of guests.babiesDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"baby\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box babies-list\"\n [style.display]=\"\n showBabiesAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n babyAge of babiesAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'babies-age' +\n ($index + 1)\n \"\n >{{\n guests.babiesLabel ||\n 'Bebe'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [id]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [value]=\"babyAge\"\n (change)=\"\n onBabiesAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of babyAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"option.code\"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span\n class=\"input-group--icon\"\n >\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"btn__group\">\n <button\n type=\"submit\"\n class=\"btn btn__secondary js-apply-guests1\"\n role=\"button\"\n (click)=\"applyGuestsFromViewChildren()\"\n >\n <span>{{ guests.btn?.label }}</span>\n </button>\n </div>\n </div>\n }\n @if (promoInput) {\n <div class=\"input-group\">\n <label class=\"input-group--label\" for=\"email\">{{\n promoInput.placeholder\n }}</label>\n <input\n type=\"text\"\n class=\"input-control\"\n name=\"email\"\n id=\"email\"\n placeholder=\"...\"\n formControlName=\"promo\"\n />\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-promo.svg#icon-promo\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (button) {\n <div class=\"btn__group\">\n <a\n class=\"btn btn__primary\"\n [attr.target]=\"openInNewWindow ? '_blank' : '_self'\"\n [attr.aria-label]=\"button.label\"\n [href]=\"generatedUrl\"\n (click)=\"updateGeneratedUrl(); closeModal()\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: ["@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.container{max-width:100%}.modal{opacity:1!important;pointer-events:all!important}.modal.modal__reservar{background:var(--white);display:flex;isolation:isolate}.modal--open.reservar .modal.modal__reservar{opacity:1;pointer-events:auto}.modal.modal__reservar .modal__inner{display:flex;justify-content:center;width:100%;position:relative}.modal.modal__reservar .modal__box{overflow-x:clip;padding-block:6rem 15.3rem;width:100%;background:var(--white);display:flex;flex-direction:column;gap:3rem;align-items:center;height:max-content;min-height:100%}@media (min-width: 540px){.modal.modal__reservar .modal__box{padding-block:6rem 14.3rem;gap:4rem}}@media (min-width: 768px){.modal.modal__reservar .modal__box{max-width:48rem;padding-block:10rem 18.505rem;gap:5rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__box{padding-block:10rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__box{max-width:60rem;padding-block:13rem}}@media (min-width: 1800px){.modal.modal__reservar .modal__box{padding-block:18rem}}.modal.modal__reservar .modal__box h2{text-align:center;width:min-content;font-size:4.6rem;line-height:1}@media (min-width: 540px){.modal.modal__reservar .modal__box h2{font-size:6.4rem;line-height:1}}@media (min-width: 768px){.modal.modal__reservar .modal__box h2{font-size:8rem;line-height:1}}@media (min-width: 1680px){.modal.modal__reservar .modal__box h2{font-size:9rem;line-height:1}}.modal.modal__reservar .modal__close{top:2rem}@media (min-width: 540px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 768px){.modal.modal__reservar .modal__close{top:4rem;right:4rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__close{top:5rem;right:5rem}}.modal.modal__reservar .modal__reservar-graphic{opacity:0;pointer-events:none;position:fixed;inset:0;z-index:-1;overflow:clip}@media (min-width: 1024px){.modal.modal__reservar .modal__reservar-graphic{opacity:1}}.modal.modal__reservar .modal__reservar-graphic img{animation:zoomInOut 5s infinite ease-in-out;transform-origin:center}.modal.modal__reservar .modal__reservar-form .btn__group{justify-content:center}.modal.modal__reservar .modal__reservar-form{display:flex;flex-direction:column;gap:3rem;width:100%;max-width:28rem}.modal.modal__reservar .modal__reservar-form .sub-fields{display:none;background:var(--cream);transform:translateY(-1rem);margin-inline:-20rem;padding:3rem 20rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group{display:flex;flex-direction:column;align-items:stretch;margin-bottom:2rem;gap:1.2rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .select-control,.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-control{width:100%;border-color:var(--grey);background:var(--white)}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label{padding-top:1.1rem;padding-bottom:.8rem;line-height:1;background:transparent}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range--small{font-size:1.4rem;line-height:1}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--inner{position:relative;max-height:fit-content;width:100%}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box{display:none;width:100%;margin-top:0rem;margin-left:0;background:var(--white);padding:2.5rem 2rem 2.4rem 1.8rem;border:1px solid var(--grey)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box--heading{font-size:1.6rem;line-height:1;text-transform:uppercase;margin-bottom:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner{position:relative}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .select-control{height:3.8rem;padding:1rem 2rem 1rem 1rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .label{font-size:1.4rem;line-height:1;margin-bottom:.6rem;display:block}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon{top:3.2rem;right:.5rem;transform:translateY(0)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon svg.down-arrow{display:block!important}.modal.modal__reservar .modal__reservar-form .sub-fields[style=\"display: block;\"]{display:flex!important;flex-direction:column}.js-personas-subfields.final .input-group--label{padding-top:1.1rem;padding-bottom:3.2rem;line-height:1;background:transparent}:host ::ng-deep .p-calendar{width:100%}:host ::ng-deep .p-inputtext{background:transparent;border:none;padding:1rem 0 0!important}:host ::ng-deep input:focus-visible{outline:none!important}:host ::ng-deep .p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{box-shadow:0 0 0 .2rem transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i2.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
324
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonEngineModalV2Component, isStandalone: true, selector: "lib-babylon-engine-modal-v2", inputs: { title: "title", subtitle: "subtitle", datepickerData: "datepickerData", guestsInput: "guestsInput", promoInput: "promoInput", button: "button", guests: "guests", openInNewWindow: "openInNewWindow", defaultAdults: "defaultAdults", disabledDateRanges: "disabledDateRanges" }, outputs: { close: "close" }, viewQueries: [{ propertyName: "datepicker", first: true, predicate: ["datepicker"], descendants: true }], ngImport: i0, template: "<div class=\"modal modal__reservar\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__close js-close\"\n data-modal_name=\"reservar\"\n role=\"button\"\n (click)=\"closeModal()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use href=\"/assets/babylon/svg/icon-close.svg#icon-close\"></use>\n </svg>\n </div>\n <figure class=\"modal__reservar-graphic\">\n <img src=\"/assets/babylon/images/img-40.webp\" />\n </figure>\n <div class=\"modal__box\">\n @if (title) {\n <h2>{{ title }}</h2>\n }\n <div class=\"modal__reservar-form\" [formGroup]=\"form\">\n @if (datepickerData) {\n <div class=\"input-group\" (click)=\"openCalendar()\">\n <label class=\"input-group--label\" for=\"In-date\">{{\n datepickerData.placeholder\n }}</label>\n\n <p-calendar\n class=\"input-control\"\n [showOtherMonths]=\"false\"\n dateFormat=\"dd-mm-yy\"\n selectionMode=\"range\"\n [placeholder]=\"displayDates\"\n formControlName=\"dates\"\n [numberOfMonths]=\"2\"\n #datepicker\n [readonlyInput]=\"true\"\n [showOnFocus]=\"false\"\n (onSelect)=\"onDateSelect()\"\n [disabledDates]=\"disabledDates\"\n ></p-calendar>\n <span\n class=\"input-group--icon\"\n (click)=\"openCalendar()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-calender.svg#icon-calender\"\n ></use>\n </svg>\n </span>\n </div>\n }\n\n @if (guestsInput) {\n <div\n class=\"input-group js-personas-subfields\"\n role=\"button\"\n (click)=\"togglePersonas()\"\n [class.open]=\"showSubfields\"\n [class.final]=\"finalizedGuests\"\n >\n <span class=\"input-control\">{{\n guestsValue || '01'\n }}</span>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"persons\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests) {\n <div\n class=\"sub-fields\"\n [style.display]=\"showSubfields ? 'block' : 'none'\"\n >\n @if (guests.adultsDropdown) {\n <div class=\"input-group\">\n <label\n class=\"input-group--label\"\n for=\"adult1\"\n >{{ guests.adultsDropdown.title }}</label\n >\n <select\n class=\"select-control\"\n name=\"Adultos\"\n id=\"adult1\"\n #adult1\n formControlName=\"adults\"\n (change)=\"onAdultsChange($event)\"\n >\n <!-- <option value=\"0\" selected>00</option> -->\n @for (\n option of guests.adultsDropdown.options;\n track $index\n ) {\n <option [ngValue]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests.kidsDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner childAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"child1\"\n >\n {{ guests.kidsDropdown.title }}\n @if (childrenAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ childrenAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Ni\u00F1os\"\n id=\"child1\"\n #child1\n [value]=\"guestsValueSeparates.kids\"\n (change)=\"onChildrenChange($event)\"\n >\n @for (\n option of guests.kidsDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"user\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box children-list\"\n [style.display]=\"\n showChildrenAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n childAge of childrenAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'children-age' +\n ($index + 1)\n \"\n >{{\n guests.kidsLabel ||\n 'Nino'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'children-age' +\n ($index + 1)\n \"\n [id]=\"\n 'children-age' +\n ($index + 1)\n \"\n [value]=\"childAge\"\n (change)=\"\n onChildAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of childAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"\n option.code\n \"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (guests.babiesDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner babiesAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"babies1\"\n >\n {{ guests.babiesDropdown.title }}\n @if (babiesAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ babiesAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Beb\u00E9s\"\n id=\"babies1\"\n #babies1\n [value]=\"guestsValueSeparates.infants\"\n (change)=\"onBabiesChange($event)\"\n >\n @for (\n option of guests.babiesDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"baby\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box babies-list\"\n [style.display]=\"\n showBabiesAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n babyAge of babiesAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'babies-age' +\n ($index + 1)\n \"\n >{{\n guests.babiesLabel ||\n 'Bebe'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [id]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [value]=\"babyAge\"\n (change)=\"\n onBabiesAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of babyAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"\n option.code\n \"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"btn__group\">\n <button\n type=\"submit\"\n class=\"btn btn__secondary js-apply-guests1\"\n role=\"button\"\n (click)=\"applyGuestsFromViewChildren()\"\n >\n <span>{{ guests.btn?.label }}</span>\n </button>\n </div>\n </div>\n }\n @if (promoInput) {\n <div class=\"input-group\">\n <label class=\"input-group--label\" for=\"email\">{{\n promoInput.placeholder\n }}</label>\n <input\n type=\"text\"\n class=\"input-control\"\n name=\"email\"\n id=\"email\"\n placeholder=\"...\"\n formControlName=\"promo\"\n />\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-promo.svg#icon-promo\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (button) {\n <div class=\"btn__group\">\n <a\n class=\"btn btn__primary\"\n [attr.target]=\"openInNewWindow ? '_blank' : '_self'\"\n [attr.aria-label]=\"button.label\"\n [href]=\"generatedUrl\"\n (click)=\"updateGeneratedUrl(); closeModal()\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: ["@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.container{max-width:100%}.modal{opacity:1!important;pointer-events:all!important}.modal.modal__reservar{background:var(--white);display:flex;isolation:isolate}.modal--open.reservar .modal.modal__reservar{opacity:1;pointer-events:auto}.modal.modal__reservar .modal__inner{display:flex;justify-content:center;width:100%;position:relative}.modal.modal__reservar .modal__box{overflow-x:clip;padding-block:6rem 15.3rem;width:100%;background:var(--white);display:flex;flex-direction:column;gap:3rem;align-items:center;height:max-content;min-height:100%}@media (min-width: 540px){.modal.modal__reservar .modal__box{padding-block:6rem 14.3rem;gap:4rem}}@media (min-width: 768px){.modal.modal__reservar .modal__box{max-width:48rem;padding-block:10rem 18.505rem;gap:5rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__box{padding-block:10rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__box{max-width:60rem;padding-block:13rem}}@media (min-width: 1800px){.modal.modal__reservar .modal__box{padding-block:18rem}}.modal.modal__reservar .modal__box h2{text-align:center;width:min-content;font-size:4.6rem;line-height:1}@media (min-width: 540px){.modal.modal__reservar .modal__box h2{font-size:6.4rem;line-height:1}}@media (min-width: 768px){.modal.modal__reservar .modal__box h2{font-size:8rem;line-height:1}}@media (min-width: 1680px){.modal.modal__reservar .modal__box h2{font-size:9rem;line-height:1}}.modal.modal__reservar .modal__close{top:2rem}@media (min-width: 540px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 768px){.modal.modal__reservar .modal__close{top:4rem;right:4rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__close{top:5rem;right:5rem}}.modal.modal__reservar .modal__reservar-graphic{opacity:0;pointer-events:none;position:fixed;inset:0;z-index:-1;overflow:clip}@media (min-width: 1024px){.modal.modal__reservar .modal__reservar-graphic{opacity:1}}.modal.modal__reservar .modal__reservar-graphic img{animation:zoomInOut 5s infinite ease-in-out;transform-origin:center}.modal.modal__reservar .modal__reservar-form .btn__group{justify-content:center}.modal.modal__reservar .modal__reservar-form{display:flex;flex-direction:column;gap:3rem;width:100%;max-width:28rem}.modal.modal__reservar .modal__reservar-form .sub-fields{display:none;background:var(--cream);transform:translateY(-1rem);margin-inline:-20rem;padding:3rem 20rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group{display:flex;flex-direction:column;align-items:stretch;margin-bottom:2rem;gap:1.2rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .select-control,.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-control{width:100%;border-color:var(--grey);background:var(--white)}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label{padding-top:1.1rem;padding-bottom:.8rem;line-height:1;background:transparent}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range--small{font-size:1.4rem;line-height:1}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--inner{position:relative;max-height:fit-content;width:100%}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box{display:none;width:100%;margin-top:0rem;margin-left:0;background:var(--white);padding:2.5rem 2rem 2.4rem 1.8rem;border:1px solid var(--grey)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box--heading{font-size:1.6rem;line-height:1;text-transform:uppercase;margin-bottom:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner{position:relative}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .select-control{height:3.8rem;padding:1rem 2rem 1rem 1rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .label{font-size:1.4rem;line-height:1;margin-bottom:.6rem;display:block}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon{top:3.2rem;right:.5rem;transform:translateY(0)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon svg.down-arrow{display:block!important}.modal.modal__reservar .modal__reservar-form .sub-fields[style=\"display: block;\"]{display:flex!important;flex-direction:column}.js-personas-subfields.final .input-group--label{padding-top:1.1rem;padding-bottom:3.2rem;line-height:1;background:transparent}:host ::ng-deep .p-calendar{width:100%}:host ::ng-deep .p-inputtext{background:transparent;border:none;padding:1rem 0 0!important}:host ::ng-deep input:focus-visible{outline:none!important}:host ::ng-deep .p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{box-shadow:0 0 0 .2rem transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i2.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: DialogModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
299
325
  }
300
326
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonEngineModalV2Component, decorators: [{
301
327
  type: Component,
@@ -306,7 +332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
306
332
  DialogModule,
307
333
  DropdownModule,
308
334
  CommonModule,
309
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal modal__reservar\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__close js-close\"\n data-modal_name=\"reservar\"\n role=\"button\"\n (click)=\"closeModal()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use href=\"/assets/babylon/svg/icon-close.svg#icon-close\"></use>\n </svg>\n </div>\n <figure class=\"modal__reservar-graphic\">\n <img src=\"/assets/babylon/images/img-40.webp\" />\n </figure>\n <div class=\"modal__box\">\n @if (title) {\n <h2>{{ title }}</h2>\n }\n <div class=\"modal__reservar-form\" [formGroup]=\"form\">\n @if (datepickerData) {\n <div class=\"input-group\" (click)=\"openCalendar()\">\n <label class=\"input-group--label\" for=\"In-date\">{{\n datepickerData.placeholder\n }}</label>\n\n <p-calendar\n class=\"input-control\"\n [showOtherMonths]=\"false\"\n dateFormat=\"dd-mm-yy\"\n selectionMode=\"range\"\n [placeholder]=\"displayDates\"\n formControlName=\"dates\"\n [numberOfMonths]=\"2\"\n #datepicker\n [readonlyInput]=\"true\"\n [showOnFocus]=\"false\"\n (onSelect)=\"onDateSelect()\"\n ></p-calendar>\n <span\n class=\"input-group--icon\"\n (click)=\"openCalendar()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-calender.svg#icon-calender\"\n ></use>\n </svg>\n </span>\n </div>\n }\n\n @if (guestsInput) {\n <div\n class=\"input-group js-personas-subfields\"\n role=\"button\"\n (click)=\"togglePersonas()\"\n [class.open]=\"showSubfields\"\n [class.final]=\"finalizedGuests\"\n >\n <span class=\"input-control\">{{\n guestsValue || '01'\n }}</span>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"persons\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests) {\n <div\n class=\"sub-fields\"\n [style.display]=\"showSubfields ? 'block' : 'none'\"\n >\n @if (guests.adultsDropdown) {\n <div class=\"input-group\">\n <label\n class=\"input-group--label\"\n for=\"adult1\"\n >{{ guests.adultsDropdown.title }}</label\n >\n <select\n class=\"select-control\"\n name=\"Adultos\"\n id=\"adult1\"\n #adult1\n formControlName=\"adults\"\n (change)=\"onAdultsChange($event)\"\n >\n <!-- <option value=\"0\" selected>00</option> -->\n @for (\n option of guests.adultsDropdown.options;\n track $index\n ) {\n <option [ngValue]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests.kidsDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner childAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"child1\"\n >\n {{ guests.kidsDropdown.title }}\n @if (childrenAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ childrenAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Ni\u00F1os\"\n id=\"child1\"\n #child1\n [value]=\"guestsValueSeparates.kids\"\n (change)=\"onChildrenChange($event)\"\n >\n @for (\n option of guests.kidsDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"user\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box children-list\"\n [style.display]=\"\n showChildrenAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n childAge of childrenAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'children-age' +\n ($index + 1)\n \"\n >{{ guests.kidsLabel || 'Nino' }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'children-age' +\n ($index + 1)\n \"\n [id]=\"\n 'children-age' +\n ($index + 1)\n \"\n [value]=\"childAge\"\n (change)=\"\n onChildAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of childAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"option.code\"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span\n class=\"input-group--icon\"\n >\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (guests.babiesDropdown) {\n <div class=\"input-group\">\n <div class=\"input-group--inner babiesAge-group-list\">\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"babies1\"\n >\n {{ guests.babiesDropdown.title }}\n @if (babiesAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ babiesAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Beb\u00E9s\"\n id=\"babies1\"\n #babies1\n [value]=\"guestsValueSeparates.infants\"\n (change)=\"onBabiesChange($event)\"\n >\n @for (\n option of guests.babiesDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"baby\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box babies-list\"\n [style.display]=\"\n showBabiesAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n babyAge of babiesAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'babies-age' +\n ($index + 1)\n \"\n >{{\n guests.babiesLabel ||\n 'Bebe'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [id]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [value]=\"babyAge\"\n (change)=\"\n onBabiesAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of babyAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"option.code\"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span\n class=\"input-group--icon\"\n >\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"btn__group\">\n <button\n type=\"submit\"\n class=\"btn btn__secondary js-apply-guests1\"\n role=\"button\"\n (click)=\"applyGuestsFromViewChildren()\"\n >\n <span>{{ guests.btn?.label }}</span>\n </button>\n </div>\n </div>\n }\n @if (promoInput) {\n <div class=\"input-group\">\n <label class=\"input-group--label\" for=\"email\">{{\n promoInput.placeholder\n }}</label>\n <input\n type=\"text\"\n class=\"input-control\"\n name=\"email\"\n id=\"email\"\n placeholder=\"...\"\n formControlName=\"promo\"\n />\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-promo.svg#icon-promo\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (button) {\n <div class=\"btn__group\">\n <a\n class=\"btn btn__primary\"\n [attr.target]=\"openInNewWindow ? '_blank' : '_self'\"\n [attr.aria-label]=\"button.label\"\n [href]=\"generatedUrl\"\n (click)=\"updateGeneratedUrl(); closeModal()\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: ["@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.container{max-width:100%}.modal{opacity:1!important;pointer-events:all!important}.modal.modal__reservar{background:var(--white);display:flex;isolation:isolate}.modal--open.reservar .modal.modal__reservar{opacity:1;pointer-events:auto}.modal.modal__reservar .modal__inner{display:flex;justify-content:center;width:100%;position:relative}.modal.modal__reservar .modal__box{overflow-x:clip;padding-block:6rem 15.3rem;width:100%;background:var(--white);display:flex;flex-direction:column;gap:3rem;align-items:center;height:max-content;min-height:100%}@media (min-width: 540px){.modal.modal__reservar .modal__box{padding-block:6rem 14.3rem;gap:4rem}}@media (min-width: 768px){.modal.modal__reservar .modal__box{max-width:48rem;padding-block:10rem 18.505rem;gap:5rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__box{padding-block:10rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__box{max-width:60rem;padding-block:13rem}}@media (min-width: 1800px){.modal.modal__reservar .modal__box{padding-block:18rem}}.modal.modal__reservar .modal__box h2{text-align:center;width:min-content;font-size:4.6rem;line-height:1}@media (min-width: 540px){.modal.modal__reservar .modal__box h2{font-size:6.4rem;line-height:1}}@media (min-width: 768px){.modal.modal__reservar .modal__box h2{font-size:8rem;line-height:1}}@media (min-width: 1680px){.modal.modal__reservar .modal__box h2{font-size:9rem;line-height:1}}.modal.modal__reservar .modal__close{top:2rem}@media (min-width: 540px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 768px){.modal.modal__reservar .modal__close{top:4rem;right:4rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__close{top:5rem;right:5rem}}.modal.modal__reservar .modal__reservar-graphic{opacity:0;pointer-events:none;position:fixed;inset:0;z-index:-1;overflow:clip}@media (min-width: 1024px){.modal.modal__reservar .modal__reservar-graphic{opacity:1}}.modal.modal__reservar .modal__reservar-graphic img{animation:zoomInOut 5s infinite ease-in-out;transform-origin:center}.modal.modal__reservar .modal__reservar-form .btn__group{justify-content:center}.modal.modal__reservar .modal__reservar-form{display:flex;flex-direction:column;gap:3rem;width:100%;max-width:28rem}.modal.modal__reservar .modal__reservar-form .sub-fields{display:none;background:var(--cream);transform:translateY(-1rem);margin-inline:-20rem;padding:3rem 20rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group{display:flex;flex-direction:column;align-items:stretch;margin-bottom:2rem;gap:1.2rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .select-control,.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-control{width:100%;border-color:var(--grey);background:var(--white)}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label{padding-top:1.1rem;padding-bottom:.8rem;line-height:1;background:transparent}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range--small{font-size:1.4rem;line-height:1}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--inner{position:relative;max-height:fit-content;width:100%}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box{display:none;width:100%;margin-top:0rem;margin-left:0;background:var(--white);padding:2.5rem 2rem 2.4rem 1.8rem;border:1px solid var(--grey)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box--heading{font-size:1.6rem;line-height:1;text-transform:uppercase;margin-bottom:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner{position:relative}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .select-control{height:3.8rem;padding:1rem 2rem 1rem 1rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .label{font-size:1.4rem;line-height:1;margin-bottom:.6rem;display:block}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon{top:3.2rem;right:.5rem;transform:translateY(0)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon svg.down-arrow{display:block!important}.modal.modal__reservar .modal__reservar-form .sub-fields[style=\"display: block;\"]{display:flex!important;flex-direction:column}.js-personas-subfields.final .input-group--label{padding-top:1.1rem;padding-bottom:3.2rem;line-height:1;background:transparent}:host ::ng-deep .p-calendar{width:100%}:host ::ng-deep .p-inputtext{background:transparent;border:none;padding:1rem 0 0!important}:host ::ng-deep input:focus-visible{outline:none!important}:host ::ng-deep .p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{box-shadow:0 0 0 .2rem transparent!important}\n"] }]
335
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal modal__reservar\">\n <div class=\"modal__inner\">\n <div\n class=\"modal__close js-close\"\n data-modal_name=\"reservar\"\n role=\"button\"\n (click)=\"closeModal()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use href=\"/assets/babylon/svg/icon-close.svg#icon-close\"></use>\n </svg>\n </div>\n <figure class=\"modal__reservar-graphic\">\n <img src=\"/assets/babylon/images/img-40.webp\" />\n </figure>\n <div class=\"modal__box\">\n @if (title) {\n <h2>{{ title }}</h2>\n }\n <div class=\"modal__reservar-form\" [formGroup]=\"form\">\n @if (datepickerData) {\n <div class=\"input-group\" (click)=\"openCalendar()\">\n <label class=\"input-group--label\" for=\"In-date\">{{\n datepickerData.placeholder\n }}</label>\n\n <p-calendar\n class=\"input-control\"\n [showOtherMonths]=\"false\"\n dateFormat=\"dd-mm-yy\"\n selectionMode=\"range\"\n [placeholder]=\"displayDates\"\n formControlName=\"dates\"\n [numberOfMonths]=\"2\"\n #datepicker\n [readonlyInput]=\"true\"\n [showOnFocus]=\"false\"\n (onSelect)=\"onDateSelect()\"\n [disabledDates]=\"disabledDates\"\n ></p-calendar>\n <span\n class=\"input-group--icon\"\n (click)=\"openCalendar()\"\n >\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-calender.svg#icon-calender\"\n ></use>\n </svg>\n </span>\n </div>\n }\n\n @if (guestsInput) {\n <div\n class=\"input-group js-personas-subfields\"\n role=\"button\"\n (click)=\"togglePersonas()\"\n [class.open]=\"showSubfields\"\n [class.final]=\"finalizedGuests\"\n >\n <span class=\"input-control\">{{\n guestsValue || '01'\n }}</span>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"persons\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests) {\n <div\n class=\"sub-fields\"\n [style.display]=\"showSubfields ? 'block' : 'none'\"\n >\n @if (guests.adultsDropdown) {\n <div class=\"input-group\">\n <label\n class=\"input-group--label\"\n for=\"adult1\"\n >{{ guests.adultsDropdown.title }}</label\n >\n <select\n class=\"select-control\"\n name=\"Adultos\"\n id=\"adult1\"\n #adult1\n formControlName=\"adults\"\n (change)=\"onAdultsChange($event)\"\n >\n <!-- <option value=\"0\" selected>00</option> -->\n @for (\n option of guests.adultsDropdown.options;\n track $index\n ) {\n <option [ngValue]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-persons.svg#icon-persons\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (guests.kidsDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner childAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"child1\"\n >\n {{ guests.kidsDropdown.title }}\n @if (childrenAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ childrenAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Ni\u00F1os\"\n id=\"child1\"\n #child1\n [value]=\"guestsValueSeparates.kids\"\n (change)=\"onChildrenChange($event)\"\n >\n @for (\n option of guests.kidsDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"user\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box children-list\"\n [style.display]=\"\n showChildrenAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n childAge of childrenAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'children-age' +\n ($index + 1)\n \"\n >{{\n guests.kidsLabel ||\n 'Nino'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'children-age' +\n ($index + 1)\n \"\n [id]=\"\n 'children-age' +\n ($index + 1)\n \"\n [value]=\"childAge\"\n (change)=\"\n onChildAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of childAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"\n option.code\n \"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n @if (guests.babiesDropdown) {\n <div class=\"input-group\">\n <div\n class=\"input-group--inner babiesAge-group-list\"\n >\n <label\n class=\"input-group--label input-group--label--range\"\n for=\"babies1\"\n >\n {{ guests.babiesDropdown.title }}\n @if (babiesAgeRangeLabel) {\n <small\n class=\"input-group--label--range--small\"\n >\n / {{ babiesAgeRangeLabel }}\n </small>\n }\n </label>\n <select\n class=\"select-control\"\n name=\"Beb\u00E9s\"\n id=\"babies1\"\n #babies1\n [value]=\"guestsValueSeparates.infants\"\n (change)=\"onBabiesChange($event)\"\n >\n @for (\n option of guests.babiesDropdown\n .options;\n track $index\n ) {\n <option [value]=\"option.code\">\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"baby\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-user.svg#icon-user\"\n ></use>\n </svg>\n </span>\n </div>\n <div\n class=\"age-group-box babies-list\"\n [style.display]=\"\n showBabiesAges ? 'block' : 'none'\n \"\n >\n <legend class=\"age-group-box--heading\">\n {{ guests.agesLabel }}\n </legend>\n <div class=\"age-group\">\n @for (\n babyAge of babiesAgeSelections;\n track $index\n ) {\n <div class=\"input-group-inner\">\n <label\n class=\"label\"\n [for]=\"\n 'babies-age' +\n ($index + 1)\n \"\n >{{\n guests.babiesLabel ||\n 'Bebe'\n }}\n {{ $index + 1 }}</label\n >\n <select\n class=\"select-control\"\n [name]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [id]=\"\n 'babies-age' +\n ($index + 1)\n \"\n [value]=\"babyAge\"\n (change)=\"\n onBabiesAgeChange(\n $index,\n $event\n )\n \"\n >\n @for (\n option of babyAgeOptions;\n track option.code\n ) {\n <option\n [value]=\"\n option.code\n \"\n >\n {{ option.name }}\n </option>\n }\n </select>\n <span class=\"input-group--icon\">\n <svg\n aria-hidden=\"true\"\n class=\"down-arrow\"\n focusable=\"false\"\n >\n <use\n href=\"/assets/babylon/svg/icon-arrow.svg#icon-arrow\"\n ></use>\n </svg>\n </span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n <div class=\"btn__group\">\n <button\n type=\"submit\"\n class=\"btn btn__secondary js-apply-guests1\"\n role=\"button\"\n (click)=\"applyGuestsFromViewChildren()\"\n >\n <span>{{ guests.btn?.label }}</span>\n </button>\n </div>\n </div>\n }\n @if (promoInput) {\n <div class=\"input-group\">\n <label class=\"input-group--label\" for=\"email\">{{\n promoInput.placeholder\n }}</label>\n <input\n type=\"text\"\n class=\"input-control\"\n name=\"email\"\n id=\"email\"\n placeholder=\"...\"\n formControlName=\"promo\"\n />\n <span class=\"input-group--icon\">\n <svg aria-hidden=\"true\" focusable=\"false\">\n <use\n href=\"/assets/babylon/svg/icon-promo.svg#icon-promo\"\n ></use>\n </svg>\n </span>\n </div>\n }\n @if (button) {\n <div class=\"btn__group\">\n <a\n class=\"btn btn__primary\"\n [attr.target]=\"openInNewWindow ? '_blank' : '_self'\"\n [attr.aria-label]=\"button.label\"\n [href]=\"generatedUrl\"\n (click)=\"updateGeneratedUrl(); closeModal()\"\n >\n <span>{{ button.label }}</span>\n </a>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: ["@media (min-width: 1280px){.order-custom-xl-xxl-1{order:1}.order-custom-xl-xxl-2{order:2}}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width: 540px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width: 768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width: 1025px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}@media (min-width: 1366px){.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.m-xxl-auto{margin:auto!important}.mt-xxl-auto,.my-xxl-auto{margin-top:auto!important}.mr-xxl-auto,.mx-xxl-auto{margin-right:auto!important}.mb-xxl-auto,.my-xxl-auto{margin-bottom:auto!important}.ml-xxl-auto,.mx-xxl-auto{margin-left:auto!important}}@media (min-width: 1680px){.flex-xxxl-row{flex-direction:row!important}.flex-xxxl-column{flex-direction:column!important}.flex-xxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxl-wrap{flex-wrap:wrap!important}.flex-xxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxl-fill{flex:1 1 auto!important}.flex-xxxl-grow-0{flex-grow:0!important}.flex-xxxl-grow-1{flex-grow:1!important}.flex-xxxl-shrink-0{flex-shrink:0!important}.flex-xxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxl-start{justify-content:flex-start!important}.justify-content-xxxl-end{justify-content:flex-end!important}.justify-content-xxxl-center{justify-content:center!important}.justify-content-xxxl-between{justify-content:space-between!important}.justify-content-xxxl-around{justify-content:space-around!important}.align-items-xxxl-start{align-items:flex-start!important}.align-items-xxxl-end{align-items:flex-end!important}.align-items-xxxl-center{align-items:center!important}.align-items-xxxl-baseline{align-items:baseline!important}.align-items-xxxl-stretch{align-items:stretch!important}.align-content-xxxl-start{align-content:flex-start!important}.align-content-xxxl-end{align-content:flex-end!important}.align-content-xxxl-center{align-content:center!important}.align-content-xxxl-between{align-content:space-between!important}.align-content-xxxl-around{align-content:space-around!important}.align-content-xxxl-stretch{align-content:stretch!important}.align-self-xxxl-auto{align-self:auto!important}.align-self-xxxl-start{align-self:flex-start!important}.align-self-xxxl-end{align-self:flex-end!important}.align-self-xxxl-center{align-self:center!important}.align-self-xxxl-baseline{align-self:baseline!important}.align-self-xxxl-stretch{align-self:stretch!important}.m-xxxl-auto{margin:auto!important}.mt-xxxl-auto,.my-xxxl-auto{margin-top:auto!important}.mr-xxxl-auto,.mx-xxxl-auto{margin-right:auto!important}.mb-xxxl-auto,.my-xxxl-auto{margin-bottom:auto!important}.ml-xxxl-auto,.mx-xxxl-auto{margin-left:auto!important}}@media (min-width: 1921px){.flex-xxxxl-row{flex-direction:row!important}.flex-xxxxl-column{flex-direction:column!important}.flex-xxxxl-row-reverse{flex-direction:row-reverse!important}.flex-xxxxl-column-reverse{flex-direction:column-reverse!important}.flex-xxxxl-wrap{flex-wrap:wrap!important}.flex-xxxxl-nowrap{flex-wrap:nowrap!important}.flex-xxxxl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xxxxl-fill{flex:1 1 auto!important}.flex-xxxxl-grow-0{flex-grow:0!important}.flex-xxxxl-grow-1{flex-grow:1!important}.flex-xxxxl-shrink-0{flex-shrink:0!important}.flex-xxxxl-shrink-1{flex-shrink:1!important}.justify-content-xxxxl-start{justify-content:flex-start!important}.justify-content-xxxxl-end{justify-content:flex-end!important}.justify-content-xxxxl-center{justify-content:center!important}.justify-content-xxxxl-between{justify-content:space-between!important}.justify-content-xxxxl-around{justify-content:space-around!important}.align-items-xxxxl-start{align-items:flex-start!important}.align-items-xxxxl-end{align-items:flex-end!important}.align-items-xxxxl-center{align-items:center!important}.align-items-xxxxl-baseline{align-items:baseline!important}.align-items-xxxxl-stretch{align-items:stretch!important}.align-content-xxxxl-start{align-content:flex-start!important}.align-content-xxxxl-end{align-content:flex-end!important}.align-content-xxxxl-center{align-content:center!important}.align-content-xxxxl-between{align-content:space-between!important}.align-content-xxxxl-around{align-content:space-around!important}.align-content-xxxxl-stretch{align-content:stretch!important}.align-self-xxxxl-auto{align-self:auto!important}.align-self-xxxxl-start{align-self:flex-start!important}.align-self-xxxxl-end{align-self:flex-end!important}.align-self-xxxxl-center{align-self:center!important}.align-self-xxxxl-baseline{align-self:baseline!important}.align-self-xxxxl-stretch{align-self:stretch!important}.m-xxxxl-auto{margin:auto!important}.mt-xxxxl-auto,.my-xxxxl-auto{margin-top:auto!important}.mr-xxxxl-auto,.mx-xxxxl-auto{margin-right:auto!important}.mb-xxxxl-auto,.my-xxxxl-auto{margin-bottom:auto!important}.ml-xxxxl-auto,.mx-xxxxl-auto{margin-left:auto!important}}.mt--0{margin-top:0!important}.mb--0{margin-bottom:0!important}.pt--0{padding-top:0}.pb--0{padding-bottom:0}.mblock--0{margin-block:0px}.pblock--0{padding-block:0px}.mt--10{margin-top:10px!important}.mb--10{margin-bottom:10px!important}.pt--10{padding-top:10px}.pb--10{padding-bottom:10px}.mblock--10{margin-block:10px}.pblock--10{padding-block:10px}.mt--20{margin-top:20px!important}.mb--20{margin-bottom:20px!important}.pt--20{padding-top:20px}.pb--20{padding-bottom:20px}.mblock--20{margin-block:20px}.pblock--20{padding-block:20px}.mt--25{margin-top:25px!important}.mb--25{margin-bottom:25px!important}.pt--25{padding-top:25px}.pb--25{padding-bottom:25px}.mblock--25{margin-block:25px}.pblock--25{padding-block:25px}.mt--30{margin-top:30px!important}.mb--30{margin-bottom:30px!important}.pt--30{padding-top:30px}.pb--30{padding-bottom:30px}.mblock--30{margin-block:30px}.pblock--30{padding-block:30px}.mt--40{margin-top:40px!important}.mb--40{margin-bottom:40px!important}.pt--40{padding-top:40px}.pb--40{padding-bottom:40px}.mblock--40{margin-block:40px}.pblock--40{padding-block:40px}.mt--50{margin-top:50px!important}.mb--50{margin-bottom:50px!important}.pt--50{padding-top:50px}.pb--50{padding-bottom:50px}.mblock--50{margin-block:50px}.pblock--50{padding-block:50px}.mt--60{margin-top:60px!important}.mb--60{margin-bottom:60px!important}.pt--60{padding-top:60px}.pb--60{padding-bottom:60px}.mblock--60{margin-block:60px}.pblock--60{padding-block:60px}.mt--70{margin-top:70px!important}.mb--70{margin-bottom:70px!important}.pt--70{padding-top:70px}.pb--70{padding-bottom:70px}.mblock--70{margin-block:70px}.pblock--70{padding-block:70px}.mt--80{margin-top:80px!important}.mb--80{margin-bottom:80px!important}.pt--80{padding-top:80px}.pb--80{padding-bottom:80px}.mblock--80{margin-block:80px}.pblock--80{padding-block:80px}.mt--90{margin-top:90px!important}.mb--90{margin-bottom:90px!important}.pt--90{padding-top:90px}.pb--90{padding-bottom:90px}.mblock--90{margin-block:90px}.pblock--90{padding-block:90px}.mt--100{margin-top:100px!important}.mb--100{margin-bottom:100px!important}.pt--100{padding-top:100px}.pb--100{padding-bottom:100px}.mblock--100{margin-block:100px}.pblock--100{padding-block:100px}.mt--150{margin-top:150px!important}.mb--150{margin-bottom:150px!important}.pt--150{padding-top:150px}.pb--150{padding-bottom:150px}.mblock--150{margin-block:150px}.pblock--150{padding-block:150px}.mt--180{margin-top:180px!important}.mb--180{margin-bottom:180px!important}.pt--180{padding-top:180px}.pb--180{padding-bottom:180px}.mblock--180{margin-block:180px}.pblock--180{padding-block:180px}@keyframes move-right{0%{right:30px}50%{right:20px}to{right:30px}}:root{--font-title: \"the-seasons\", Helvetica, sans-serif;--font-pretitle: \"Poppins\", Helvetica, sans-serif;--font-text: \"Poppins\", Helvetica, sans-serif;--font-claim: \"turbinado-pro\", Helvetica, sans-serif;--cl_corp: #24262d;--cl_accent: #aa8453;--cl_icon: #978667;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #24262d;--cl_breadcrumb-hover: #978667;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #fdfbf8;--cl_background_white: #fff;--cl_background_dark: #19314b;--cl_background_gray: #eee;--cl_background_dark-opacity: #19314bbf;--cl_background_dark-opacity-v2: #1326398b;--cl_background_body-transparent: #ffffffe7;--cl_title: #978667;--cl_subtitle: #19314b;--cl_pretitle: #19314b;--cl_text: #3c3b3b;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_text-disable: #888;--w_title: 600;--w_text: 300;--w_subtitle: 300;--w_pretitle: 300;--padding-bottom-slider: 0px;--lh_pretitle-slider: 1.2;--lh_title-slider: 1.2;--cl_header-bg-nosticky: #0000001a;--cl_header-text-nosticky: #fff;--cl_header-bg-sticky: #eee;--cl_header-text-sticky: #19314b;--cl_header-bg-mobile: #b6b6b6;--cl_headerBottom-bg-mobile: #b6b6b6;--cl_header-text-mobile: #19314b;--cl_menu-modal-bg: #19314b;--cl_menu-modal-items: #978667;--cl_menu-modal-items-hover: #fff;--cl_menu-modal-text: #fff;--cl_menu-modal-text-hover: #fff;--ls_menu-modal-items: 1px;--w_menu-modal-items: 300;--hg_menu-img-height: 15rem;--cl_submenu-bg: #19314b;--cl_submenu-text: #fff;--cl_submenu-hover: #978667;--w_btn: 400;--size_btn: 14px;--size_link: 14px;--ls_link: 1px;--ls_btn: 1px;--upper_btn: uppercase;--upper_link: uppercase;--font-btn: \"Poppins\", Helvetica, sans-serif;--font-link: \"Poppins\", Helvetica, sans-serif;--cl_btn-box: #19314b;--cl_btn-box-text: #19314b;--cl_btn-box-hover: #978667;--cl_btn-box-text-hover: #fff;--cl_btn-call: #19314bf2;--cl_btn-call-text: #fff;--cl_btn-call-hover: #978667;--cl_btn-call-text-hover: #fff;--cl_btn-link: #19314b;--cl_btn-link-hover: #978667;--cl_btn-arrow: #19314b;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #978667;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #24262d;--cl_btn-dots-active: #978667;--cl_btn-dots-hover: #978667;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #978667;--cl_btn-light-text-hover: #978667;--cl_footer-bg: #19314b;--cl_footer-bg-bottom: #0a1d31;--cl_footer-bg-logos: #f8f7f3;--cl_footer-scroll: #978667;--cl_footer-text: #fff;--cl_footer-text-hover: #978667;--btn_radius: 5px;--img_radius: 5px;--img_border: #fff;--img_border-width: 1px;--dropdown-radius: 20px;--cl_background_dropdown: #fdfbf8;--cl_border-dropdown: #d9e1e6;--font-size-engine-text: 14px;--cl_engine-text: #19314b;--cl_engine-bg-nosticky: #ffffffcf;--cl_engine-text-nosticky: #19314b;--cl_engine-bg-sticky: #ffffff00;--cl_engine-text-sticky: #19314b;--cl_engine-bg-modal: #19314bbf;--cl_engine-input-bg: #ebebeb;--cl_engine-input-bg-select: #ebebeb;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a;--cl_error: #ff7173;--cl_desde: #bcbbc3;--cl_price: #19314b;--cl_badget: #ff8874;--cl_badget-text: #fff;--alg-service-room-detail: center;--cl_alert-text: #19314b;--cl_alert-text-error: #fff;--cl_alert-background: #fff;--cl_alert-background-error: rgb(230, 92, 92);--mdc-checkbox-disabled-selected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-disabled-unselected-icon-color: rgba(0, 0, 0, .38);--mdc-checkbox-selected-checkmark-color: white;--mdc-checkbox-selected-focus-icon-color: var(--cl_corp);--mdc-checkbox-selected-hover-icon-color: var(--cl_corp);--mdc-checkbox-selected-icon-color: var(--cl_corp);--mdc-checkbox-selected-pressed-icon-color: var(--cl_corp);--mdc-checkbox-unselected-focus-icon-color: #212121;--mdc-checkbox-unselected-hover-icon-color: #212121;--mdc-checkbox-unselected-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-unselected-pressed-icon-color: rgba(0, 0, 0, .54);--mdc-checkbox-selected-focus-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-hover-state-layer-color: var(--cl_corp);--mdc-checkbox-selected-pressed-state-layer-color: var(--cl_corp);--mdc-checkbox-unselected-focus-state-layer-color: black;--mdc-checkbox-unselected-hover-state-layer-color: black;--mdc-checkbox-unselected-pressed-state-layer-color: black;--mat-checkbox-disabled-label-color: rgba(0, 0, 0, .38);--primary: #4a4a49;--cream: #f9f8f5;--white: #ffffff;--black: #000000;--whatsapp: #24cc63;--logo: #616161;--grey: #dcdcdc;--darkgrey: #1e1e1e;--instagram: #61bdff;--facebook: #3782f4;--twitter: #4a4a49;--youtube: #d9464b;--tripadvisor: #34e0a1;--booking: #0c3b7c;--silver: #c0bebe;--gold: #ffca64;--platinum: #b5d9e2}.cs_dark{--cl_corp: #181818;--cl_accent: #aa8453;--cl_icon: #aa8453;--cl_icon-light: #fff;--cl_border-light: #ededed;--cl_border-dark: #d9e1e6;--cl_shadow: rgba(0, 0, 0, .1);--cl_breadcrumb: #fff;--cl_breadcrumb-hover: #aa8453;--cl_preload-bg: #ededed;--cl_preload: #24262d;--cl_background_body: #181818;--cl_background_white: transparent;--cl_background_dark: #aa8453;--cl_background_gray: #333;--type-align: center;--cl_title: #fff;--cl_subtitle: #aa8453;--cl_pretitle: #aa8453;--cl_text: #fff;--cl_title-light: #fff;--cl_subtitle-light: #fff;--cl_pretitle-light: #fff;--cl_text-light: #fff;--cl_header-bg: #aa8453;--cl_header-text-light: #fff;--cl_menu-bg: #79582c;--cl_menu-text: #fff;--cl_btn-box: #aa8453;--cl_btn-box-text: #aa8453;--cl_btn-box-hover: #79582c;--cl_btn-box-text-hover: #fff;--cl_btn-call: #aa8453;--cl_btn-call-text: white;--cl_btn-call-hover: #79582c;--cl_btn-call-text-hover: #fff;--cl_btn-link: #aa8453;--cl_btn-link-hover: #79582c;--cl_btn-arrow: #ffffff3a;--cl_btn-arrow-icon: #fff;--cl_btn-arrow-hover: #79582c;--cl_btn-arrow-icon-hover: #fff;--cl_btn-dots: #eee;--cl_btn-dots-active: #79582c;--cl_btn-dots-hover: #79582c;--cl_btn-light: #fff;--cl_btn-light-text: #fff;--cl_btn-light-hover: #79582c;--cl_btn-light-text-hover: #79582c;--cl_footer-bg: #aa8453;--cl_footer-bg-bottom: #79582c;--cl_footer-scroll: #aa8453;--cl_footer-text: #fff;--cl_footer-text-hover: #aa8453;--btn_radius: 1px;--img_radius: 0px;--img_border: #fff;--img_border-width: 2px;--cl_engine-bg: #181818;--cl_engine-input-bg: #79582c;--cl_engine-input-bg-hover: #081523;--cl_engine-text: #fff;--cl_dropdown: #19314b;--cl_dropdown-text: #5a5a5a;--cl_dropdown-hover: #19314b;--cl_dropdown-radius: 20px;--cl_newsletter-input-background: #d1d1d1;--cl_newsletter-input-text: #5a5a5a}.container{max-width:100%}.modal{opacity:1!important;pointer-events:all!important}.modal.modal__reservar{background:var(--white);display:flex;isolation:isolate}.modal--open.reservar .modal.modal__reservar{opacity:1;pointer-events:auto}.modal.modal__reservar .modal__inner{display:flex;justify-content:center;width:100%;position:relative}.modal.modal__reservar .modal__box{overflow-x:clip;padding-block:6rem 15.3rem;width:100%;background:var(--white);display:flex;flex-direction:column;gap:3rem;align-items:center;height:max-content;min-height:100%}@media (min-width: 540px){.modal.modal__reservar .modal__box{padding-block:6rem 14.3rem;gap:4rem}}@media (min-width: 768px){.modal.modal__reservar .modal__box{max-width:48rem;padding-block:10rem 18.505rem;gap:5rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__box{padding-block:10rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__box{max-width:60rem;padding-block:13rem}}@media (min-width: 1800px){.modal.modal__reservar .modal__box{padding-block:18rem}}.modal.modal__reservar .modal__box h2{text-align:center;width:min-content;font-size:4.6rem;line-height:1}@media (min-width: 540px){.modal.modal__reservar .modal__box h2{font-size:6.4rem;line-height:1}}@media (min-width: 768px){.modal.modal__reservar .modal__box h2{font-size:8rem;line-height:1}}@media (min-width: 1680px){.modal.modal__reservar .modal__box h2{font-size:9rem;line-height:1}}.modal.modal__reservar .modal__close{top:2rem}@media (min-width: 540px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 768px){.modal.modal__reservar .modal__close{top:4rem;right:4rem}}@media (min-width: 1024px){.modal.modal__reservar .modal__close{top:3rem;right:3rem}}@media (min-width: 1680px){.modal.modal__reservar .modal__close{top:5rem;right:5rem}}.modal.modal__reservar .modal__reservar-graphic{opacity:0;pointer-events:none;position:fixed;inset:0;z-index:-1;overflow:clip}@media (min-width: 1024px){.modal.modal__reservar .modal__reservar-graphic{opacity:1}}.modal.modal__reservar .modal__reservar-graphic img{animation:zoomInOut 5s infinite ease-in-out;transform-origin:center}.modal.modal__reservar .modal__reservar-form .btn__group{justify-content:center}.modal.modal__reservar .modal__reservar-form{display:flex;flex-direction:column;gap:3rem;width:100%;max-width:28rem}.modal.modal__reservar .modal__reservar-form .sub-fields{display:none;background:var(--cream);transform:translateY(-1rem);margin-inline:-20rem;padding:3rem 20rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group{display:flex;flex-direction:column;align-items:stretch;margin-bottom:2rem;gap:1.2rem}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .select-control,.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-control{width:100%;border-color:var(--grey);background:var(--white)}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label{padding-top:1.1rem;padding-bottom:.8rem;line-height:1;background:transparent}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--label--range--small{font-size:1.4rem;line-height:1}.modal.modal__reservar .modal__reservar-form .sub-fields>.input-group .input-group--inner{position:relative;max-height:fit-content;width:100%}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box{display:none;width:100%;margin-top:0rem;margin-left:0;background:var(--white);padding:2.5rem 2rem 2.4rem 1.8rem;border:1px solid var(--grey)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group-box--heading{font-size:1.6rem;line-height:1;text-transform:uppercase;margin-bottom:2rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner{position:relative}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .select-control{height:3.8rem;padding:1rem 2rem 1rem 1rem}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .label{font-size:1.4rem;line-height:1;margin-bottom:.6rem;display:block}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon{top:3.2rem;right:.5rem;transform:translateY(0)}.modal.modal__reservar .modal__reservar-form .sub-fields .age-group .input-group-inner .input-group--icon svg.down-arrow{display:block!important}.modal.modal__reservar .modal__reservar-form .sub-fields[style=\"display: block;\"]{display:flex!important;flex-direction:column}.js-personas-subfields.final .input-group--label{padding-top:1.1rem;padding-bottom:3.2rem;line-height:1;background:transparent}:host ::ng-deep .p-calendar{width:100%}:host ::ng-deep .p-inputtext{background:transparent;border:none;padding:1rem 0 0!important}:host ::ng-deep input:focus-visible{outline:none!important}:host ::ng-deep .p-calendar:not(.p-calendar-disabled).p-focus>.p-inputtext{box-shadow:0 0 0 .2rem transparent!important}\n"] }]
310
336
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { datepicker: [{
311
337
  type: ViewChild,
312
338
  args: ['datepicker']
@@ -328,7 +354,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
328
354
  type: Input
329
355
  }], defaultAdults: [{
330
356
  type: Input
357
+ }], disabledDateRanges: [{
358
+ type: Input
331
359
  }], close: [{
332
360
  type: Output
333
361
  }] } });
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUtbW9kYWwtdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQXdCMUMsTUFBTSxPQUFPLDZCQUE2QjtJQTREdEMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRGpDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFD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d0JBQ2QsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7cUJBQ2YsbUJBR2dCLHVCQUF1QixDQUFDLE1BQU07c0ZBR3RCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFFZCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhbGVuZGFyLCBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFieWxvbkJ1dHRvbkksIEJhYnlsb25JbnB1dEkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25HdWVzdHNQb3B1cEkgfSBmcm9tICcuLi9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC5pbnRlcmZhY2UnO1xuXG50eXBlIEFnZU9wdGlvbiA9IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1lbmdpbmUtbW9kYWwtdjInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkVuZ2luZU1vZGFsVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlcicpIGRhdGVwaWNrZXIhOiBDYWxlbmRhcjtcblxuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJEYXRhPzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBndWVzdHNJbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgcHJvbW9JbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgYnV0dG9uPzogQmFieWxvbkJ1dHRvbkk7XG4gICAgQElucHV0KCkgZ3Vlc3RzPzogQmFieWxvbkd1ZXN0c1BvcHVwSTtcbiAgICBASW5wdXQoKSBvcGVuSW5OZXdXaW5kb3c/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRlZmF1bHRBZHVsdHMgPSAxO1xuXG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBkYXRlczogbmV3IEZvcm1Db250cm9sPERhdGVbXSB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBndWVzdHM6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcwMScsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBhZHVsdHM6IG5ldyBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPigxLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgcHJvbW86IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKSxcbiAgICB9KTtcblxuICAgIGdlbmVyYXRlZFVybCA9ICcnO1xuICAgIGd1ZXN0c1ZhbHVlID0gJzAxJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFsbGJhY2tDaGlsZEFnZU9wdGlvbnM6IEFnZU9wdGlvbltdID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6IDEyIH0sXG4gICAgICAgIChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWdlID0gaW5kZXggKyAzO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvZGU6IGFnZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBhZ2UgPCAxMCA/IGAwJHthZ2V9YCA6IGAke2FnZX1gLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhbGxiYWNrQmFieUFnZU9wdGlvbnM6IEFnZU9wdGlvbltdID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6IDMgfSxcbiAgICAgICAgKF8sIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgY29kZTogaW5kZXgsXG4gICAgICAgICAgICBuYW1lOiBpbmRleCA8IDEwID8gYDAke2luZGV4fWAgOiBgJHtpbmRleH1gLFxuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBndWVzdHNWYWx1ZVNlcGFyYXRlcyA9IHtcbiAgICAgICAgYWR1bHRzOiAxLFxuICAgICAgICBraWRzOiAwLFxuICAgICAgICBpbmZhbnRzOiAwLFxuICAgIH07XG5cbiAgICBjaGlsZHJlbkFnZVNlbGVjdGlvbnM6IG51bWJlcltdID0gW107XG4gICAgYmFiaWVzQWdlU2VsZWN0aW9uczogbnVtYmVyW10gPSBbXTtcblxuICAgIHNob3dTdWJmaWVsZHMgPSBmYWxzZTtcbiAgICBzaG93Q2hpbGRyZW5BZ2VzID0gZmFsc2U7XG4gICAgc2hvd0JhYmllc0FnZXMgPSBmYWxzZTtcbiAgICBmaW5hbGl6ZWRHdWVzdHMgPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IHRvbW9ycm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgdG9tb3Jyb3cuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyAxKTtcblxuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBkYXRlczogW3RvZGF5LCB0b21vcnJvd10sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdEFkdWx0cyh0aGlzLmRlZmF1bHRBZHVsdHMpO1xuICAgICAgICB0aGlzLnN5bmNDaGlsZHJlbkFnZVNlbGVjdGlvbnModGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzKTtcbiAgICAgICAgdGhpcy5zeW5jQmFiaWVzQWdlU2VsZWN0aW9ucyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMpO1xuXG4gICAgICAgIHRoaXMuZm9ybVxuICAgICAgICAgICAgLmdldCgnYWR1bHRzJylcbiAgICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN5bmNBZHVsdHNTZWxlY3Rpb24odmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybVxuICAgICAgICAgICAgLmdldCgncHJvbW8nKVxuICAgICAgICAgICAgPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb3BlbkNhbGVuZGFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXIub3ZlcmxheVZpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uRGF0ZVNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRhdGVwaWNrZXIudmFsdWU7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgZGF0ZXM6IHZhbHVlIGFzIERhdGVbXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlUGVyc29uYXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd1N1YmZpZWxkcyA9ICF0aGlzLnNob3dTdWJmaWVsZHM7XG4gICAgfVxuXG4gICAgb25BZHVsdHNDaGFuZ2UoX2V2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBIYW5kbGVkIGJ5IHRoZSBhZHVsdHMgRm9ybUNvbnRyb2wgc3Vic2NyaXB0aW9uLlxuICAgIH1cblxuICAgIG9uQ2hpbGRyZW5DaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcyA9IHRoaXMuZ2V0U2VsZWN0VmFsdWUoZXZlbnQpO1xuICAgICAgICB0aGlzLnN5bmNDaGlsZHJlbkFnZVNlbGVjdGlvbnModGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoR3Vlc3RzVmFsdWUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25CYWJpZXNDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyA9IHRoaXMuZ2V0U2VsZWN0VmFsdWUoZXZlbnQpO1xuICAgICAgICB0aGlzLnN5bmNCYWJpZXNBZ2VTZWxlY3Rpb25zKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyk7XG4gICAgICAgIHRoaXMucmVmcmVzaEd1ZXN0c1ZhbHVlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdGVkVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uQ2hpbGRBZ2VDaGFuZ2UoaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRBZ2VTZWxlY3RWYWx1ZShldmVudCk7XG4gICAgICAgIHRoaXMuY2hpbGRyZW5BZ2VTZWxlY3Rpb25zW2luZGV4XSA9IE51bWJlci5pc05hTih2YWx1ZSlcbiAgICAgICAgICAgID8gdGhpcy5nZXREZWZhdWx0Q2hpbGRBZ2UoKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25CYWJpZXNBZ2VDaGFuZ2UoaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRBZ2VTZWxlY3RWYWx1ZShldmVudCk7XG4gICAgICAgIHRoaXMuYmFiaWVzQWdlU2VsZWN0aW9uc1tpbmRleF0gPSBOdW1iZXIuaXNOYU4odmFsdWUpXG4gICAgICAgICAgICA/IHRoaXMuZ2V0RGVmYXVsdEJhYnlBZ2UoKVxuICAgICAgICAgICAgOiB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgYXBwbHlHdWVzdHMoYWR1bHRzOiBhbnksIGNoaWxkcmVuOiBhbnksIGJhYmllczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzID0gTnVtYmVyKGFkdWx0cykgfHwgMDtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzID0gTnVtYmVyKGNoaWxkcmVuKSB8fCAwO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMgPSBOdW1iZXIoYmFiaWVzKSB8fCAwO1xuICAgICAgICB0aGlzLnN5bmNDaGlsZHJlbkFnZVNlbGVjdGlvbnModGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzKTtcbiAgICAgICAgdGhpcy5zeW5jQmFiaWVzQWdlU2VsZWN0aW9ucyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMpO1xuICAgICAgICB0aGlzLnJlZnJlc2hHdWVzdHNWYWx1ZSgpO1xuXG4gICAgICAgIHRoaXMuc2hvd1N1YmZpZWxkcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmFsaXplZEd1ZXN0cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlR2VuZXJhdGVkVXJsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYnV0dG9uPy51cmwpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgICAgIGNvbnN0IGRhdGVzID0gdGhpcy5mb3JtLmdldCgnZGF0ZXMnKT8udmFsdWU7XG4gICAgICAgIGNvbnN0IHByb21vID0gdGhpcy5mb3JtLmdldCgncHJvbW8nKT8udmFsdWU7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShkYXRlcykgJiZcbiAgICAgICAgICAgIGRhdGVzLmxlbmd0aCA9PT0gMiAmJlxuICAgICAgICAgICAgZGF0ZXNbMF0gaW5zdGFuY2VvZiBEYXRlICYmXG4gICAgICAgICAgICBkYXRlc1sxXSBpbnN0YW5jZW9mIERhdGVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlaW4gPSB0aGlzLmZvcm1hdERhdGUoZGF0ZXNbMF0pO1xuICAgICAgICAgICAgY29uc3QgZGF0ZW91dCA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlc1sxXSk7XG5cbiAgICAgICAgICAgIHBhcmFtcy5zZXQoJ2RhdGVpbicsIGRhdGVpbik7XG4gICAgICAgICAgICBwYXJhbXMuc2V0KCdkYXRlb3V0JywgZGF0ZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICBwYXJhbXMuc2V0KCdhZHVsdG9zJywgU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzKSk7XG4gICAgICAgIHBhcmFtcy5zZXQoJ2NoaWxkcmVuJywgU3RyaW5nKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcykpO1xuICAgICAgICBwYXJhbXMuc2V0KCdiYWJpZXMnLCBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzKSk7XG4gICAgICAgIHRoaXMuYXBwZW5kR3Vlc3RBZ2VzKHBhcmFtcyk7XG5cbiAgICAgICAgaWYgKHByb21vKSB7XG4gICAgICAgICAgICBwYXJhbXMuc2V0KCdwcm9tJywgcHJvbW8pO1xuICAgICAgICAgICAgcGFyYW1zLnNldCgncHJvbV9jbGVhbicsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJhbXMuc2V0KCdwcm9tX2NsZWFuJywgJzEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkVXJsID0gYCR7dGhpcy5idXR0b24udXJsfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZGF0ZVxuICAgICAgICAgICAgLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnLCB7XG4gICAgICAgICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgIH1cblxuICAgIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cblxuICAgIGdldCBkaXNwbGF5RGF0ZXMoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSB0aGlzLmZvcm0uZ2V0KCdkYXRlcycpPy52YWx1ZTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheShkYXRlcykgfHxcbiAgICAgICAgICAgIGRhdGVzLmxlbmd0aCAhPT0gMiB8fFxuICAgICAgICAgICAgIShkYXRlc1swXSBpbnN0YW5jZW9mIERhdGUpIHx8XG4gICAgICAgICAgICAhKGRhdGVzWzFdIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZm9ybWF0RGF0ZShkYXRlc1swXSl9IC0gJHt0aGlzLmZvcm1hdERhdGUoZGF0ZXNbMV0pfWA7XG4gICAgfVxuXG4gICAgYXBwbHlHdWVzdHNGcm9tVmlld0NoaWxkcmVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFwcGx5R3Vlc3RzKFxuICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMsXG4gICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMsXG4gICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0QWR1bHRzKGRlZmF1bHRBZHVsdHM6IG51bWJlciB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlZmF1bHRBZHVsdHMgPSBOdW1iZXIoZGVmYXVsdEFkdWx0cykgfHwgMTtcbiAgICAgICAgdGhpcy5zeW5jQWR1bHRzU2VsZWN0aW9uKHRoaXMuZ2V0RGVmYXVsdEFkdWx0VmFsdWUoKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkQWdlT3B0aW9ucygpOiBBZ2VPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXN0cz8uYWdlc0Ryb3Bkb3duPy5vcHRpb25zPy5sZW5ndGhcbiAgICAgICAgICAgID8gKHRoaXMuZ3Vlc3RzLmFnZXNEcm9wZG93bi5vcHRpb25zIGFzIEFnZU9wdGlvbltdKVxuICAgICAgICAgICAgOiB0aGlzLmZhbGxiYWNrQ2hpbGRBZ2VPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBiYWJ5QWdlT3B0aW9ucygpOiBBZ2VPcHRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXN0cz8uYmFiaWVzQWdlc0Ryb3Bkb3duPy5vcHRpb25zPy5sZW5ndGhcbiAgICAgICAgICAgID8gKHRoaXMuZ3Vlc3RzLmJhYmllc0FnZXNEcm9wZG93bi5vcHRpb25zIGFzIEFnZU9wdGlvbltdKVxuICAgICAgICAgICAgOiB0aGlzLmZhbGxiYWNrQmFieUFnZU9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuQWdlUmFuZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBZ2VSYW5nZUxhYmVsKHRoaXMuY2hpbGRBZ2VPcHRpb25zKTtcbiAgICB9XG5cbiAgICBnZXQgYmFiaWVzQWdlUmFuZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBZ2VSYW5nZUxhYmVsKHRoaXMuYmFieUFnZU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGdldCBhZ2VVbml0TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3RzPy5hZ2VVbml0TGFiZWw/LnRyaW0oKSB8fCAnYcOxb3MnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0VmFsdWUoZXZlbnQ6IEV2ZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICByZXR1cm4gTnVtYmVyKHRhcmdldD8udmFsdWUgPz8gMCkgfHwgMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFnZVNlbGVjdFZhbHVlKGV2ZW50OiBFdmVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCB8IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcih0YXJnZXQ/LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlZmF1bHRBZHVsdFZhbHVlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyZWREZWZhdWx0ID0gTnVtYmVyKHRoaXMuZGVmYXVsdEFkdWx0cykgfHwgMTtcbiAgICAgICAgY29uc3QgZGVmYXVsdE9wdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmd1ZXN0cz8uYWR1bHRzRHJvcGRvd24/Lm9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gTnVtYmVyKG9wdGlvbi5jb2RlKSA9PT0gY29uZmlndXJlZERlZmF1bHRcbiAgICAgICAgICAgICkgPz8gdGhpcy5ndWVzdHM/LmFkdWx0c0Ryb3Bkb3duPy5vcHRpb25zPy5bMF07XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihkZWZhdWx0T3B0aW9uPy5jb2RlID8/IGNvbmZpZ3VyZWREZWZhdWx0KSB8fCAxO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdENoaWxkQWdlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5jaGlsZEFnZU9wdGlvbnNbMF0/LmNvZGUgPz8gMykgfHwgMztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlZmF1bHRCYWJ5QWdlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5iYWJ5QWdlT3B0aW9uc1swXT8uY29kZSA/PyAwKSB8fCAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWdlUmFuZ2VMYWJlbChvcHRpb25zOiBBZ2VPcHRpb25bXSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gb3B0aW9ucz8uWzBdPy5jb2RlO1xuICAgICAgICBjb25zdCBsYXN0ID0gb3B0aW9ucz8uW29wdGlvbnMubGVuZ3RoIC0gMV0/LmNvZGU7XG5cbiAgICAgICAgaWYgKGZpcnN0ID09PSB1bmRlZmluZWQgfHwgbGFzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7Zmlyc3R9LSR7bGFzdH0gJHt0aGlzLmFnZVVuaXRMYWJlbH1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY0NoaWxkcmVuQWdlU2VsZWN0aW9ucyhjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuQWdlU2VsZWN0aW9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW5BZ2VzID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0QWdlID0gdGhpcy5nZXREZWZhdWx0Q2hpbGRBZ2UoKTtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlcyA9IHRoaXMuY2hpbGRyZW5BZ2VTZWxlY3Rpb25zLnNsaWNlKDAsIGNvdW50KTtcblxuICAgICAgICB3aGlsZSAobmV4dFZhbHVlcy5sZW5ndGggPCBjb3VudCkge1xuICAgICAgICAgICAgbmV4dFZhbHVlcy5wdXNoKGRlZmF1bHRBZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGlsZHJlbkFnZVNlbGVjdGlvbnMgPSBuZXh0VmFsdWVzO1xuICAgICAgICB0aGlzLnNob3dDaGlsZHJlbkFnZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY0JhYmllc0FnZVNlbGVjdGlvbnMoY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoY291bnQgPD0gMCkge1xuICAgICAgICAgICAgdGhpcy5iYWJpZXNBZ2VTZWxlY3Rpb25zID0gW107XG4gICAgICAgICAgICB0aGlzLnNob3dCYWJpZXNBZ2VzID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0QWdlID0gdGhpcy5nZXREZWZhdWx0QmFieUFnZSgpO1xuICAgICAgICBjb25zdCBuZXh0VmFsdWVzID0gdGhpcy5iYWJpZXNBZ2VTZWxlY3Rpb25zLnNsaWNlKDAsIGNvdW50KTtcblxuICAgICAgICB3aGlsZSAobmV4dFZhbHVlcy5sZW5ndGggPCBjb3VudCkge1xuICAgICAgICAgICAgbmV4dFZhbHVlcy5wdXNoKGRlZmF1bHRBZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5iYWJpZXNBZ2VTZWxlY3Rpb25zID0gbmV4dFZhbHVlcztcbiAgICAgICAgdGhpcy5zaG93QmFiaWVzQWdlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoR3Vlc3RzVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvdGFsID1cbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzICtcbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcyArXG4gICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHM7XG5cbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZSA9IHRvdGFsIDwgMTAgPyBgMCR7dG90YWx9YCA6IFN0cmluZyh0b3RhbCk7XG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ2d1ZXN0cycpPy5zZXRWYWx1ZSh0aGlzLmd1ZXN0c1ZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNBZHVsdHNTZWxlY3Rpb24oXG4gICAgICAgIGFkdWx0czogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgdXBkYXRlQ29udHJvbCA9IGZhbHNlXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRBZHVsdHMgPSBOdW1iZXIoYWR1bHRzKSB8fCAwO1xuXG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuYWR1bHRzID0gbmV4dEFkdWx0cztcblxuICAgICAgICBpZiAodXBkYXRlQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgnYWR1bHRzJyk/LnNldFZhbHVlKG5leHRBZHVsdHMsIHtcbiAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZnJlc2hHdWVzdHNWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZEd1ZXN0QWdlcyhwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyk6IHZvaWQge1xuICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMgfSkuZm9yRWFjaChcbiAgICAgICAgICAgIChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoXG4gICAgICAgICAgICAgICAgICAgICdndWVzdEFnZXMnLFxuICAgICAgICAgICAgICAgICAgICBTdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJhYmllc0FnZVNlbGVjdGlvbnNbaW5kZXhdID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREZWZhdWx0QmFieUFnZSgpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcyB9KS5mb3JFYWNoKFxuICAgICAgICAgICAgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJ2d1ZXN0QWdlcycsXG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5BZ2VTZWxlY3Rpb25zW2luZGV4XSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdENoaWxkQWdlKClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsIG1vZGFsX19yZXNlcnZhclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbF9faW5uZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtb2RhbF9fY2xvc2UganMtY2xvc2VcIlxuICAgICAgICAgICAgZGF0YS1tb2RhbF9uYW1lPVwicmVzZXJ2YXJcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDx1c2UgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1jbG9zZS5zdmcjaWNvbi1jbG9zZVwiPjwvdXNlPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZmlndXJlIGNsYXNzPVwibW9kYWxfX3Jlc2VydmFyLWdyYXBoaWNcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9iYWJ5bG9uL2ltYWdlcy9pbWctNDAud2VicFwiIC8+XG4gICAgICAgIDwvZmlndXJlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2JveFwiPlxuICAgICAgICAgICAgQGlmICh0aXRsZSkge1xuICAgICAgICAgICAgICAgIDxoMj57eyB0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX3Jlc2VydmFyLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICAgICAgICAgICAgICBAaWYgKGRhdGVwaWNrZXJEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIChjbGljayk9XCJvcGVuQ2FsZW5kYXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsXCIgZm9yPVwiSW4tZGF0ZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZXBpY2tlckRhdGEucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93T3RoZXJNb250aHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC1tbS15eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZT1cInJhbmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGlzcGxheURhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW251bWJlck9mTW9udGhzXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkYXRlcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5SW5wdXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwib25EYXRlU2VsZWN0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC1jYWxlbmRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tY2FsZW5kZXIuc3ZnI2ljb24tY2FsZW5kZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoZ3Vlc3RzSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cCBqcy1wZXJzb25hcy1zdWJmaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGVyc29uYXMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJzaG93U3ViZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maW5hbF09XCJmaW5hbGl6ZWRHdWVzdHNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWNvbnRyb2xcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXN0c1ZhbHVlIHx8ICcwMSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXJzb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1wZXJzb25zLnN2ZyNpY29uLXBlcnNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvd24tYXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChndWVzdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWItZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInNob3dTdWJmaWVsZHMgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChndWVzdHMuYWR1bHRzRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLS1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJhZHVsdDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGd1ZXN0cy5hZHVsdHNEcm9wZG93bi50aXRsZSB9fTwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZHVsdG9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWR1bHQxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNhZHVsdDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkdWx0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQWR1bHRzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxvcHRpb24gdmFsdWU9XCIwXCIgc2VsZWN0ZWQ+MDA8L29wdGlvbj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24gb2YgZ3Vlc3RzLmFkdWx0c0Ryb3Bkb3duLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm9wdGlvbi5jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLXBlcnNvbnMuc3ZnI2ljb24tcGVyc29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZ3Vlc3RzLmtpZHNEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLS1pbm5lciBjaGlsZEFnZS1ncm91cC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0tbGFiZWwgaW5wdXQtZ3JvdXAtLWxhYmVsLS1yYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiY2hpbGQxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBndWVzdHMua2lkc0Ryb3Bkb3duLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjaGlsZHJlbkFnZVJhbmdlTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLS1sYWJlbC0tcmFuZ2UtLXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyB7eyBjaGlsZHJlbkFnZVJhbmdlTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJOacOxb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2hpbGQxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjY2hpbGQxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGlsZHJlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIGd1ZXN0cy5raWRzRHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLmNvZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi11c2VyLnN2ZyNpY29uLXVzZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC91c2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFnZS1ncm91cC1ib3ggY2hpbGRyZW4tbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q2hpbGRyZW5BZ2VzID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImFnZS1ncm91cC1ib3gtLWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBndWVzdHMuYWdlc0xhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xlZ2VuZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZ2UtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRBZ2Ugb2YgY2hpbGRyZW5BZ2VTZWxlY3Rpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hpbGRyZW4tYWdlJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaW5kZXggKyAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGd1ZXN0cy5raWRzTGFiZWwgfHwgJ05pbm8nIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJGluZGV4ICsgMSB9fTwvbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoaWxkcmVuLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoaWxkcmVuLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjaGlsZEFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGlsZEFnZUNoYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIGNoaWxkQWdlT3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgb3B0aW9uLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy5zdmcjaWNvbi1hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChndWVzdHMuYmFiaWVzRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLS1pbm5lciBiYWJpZXNBZ2UtZ3JvdXAtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0tbGFiZWwgaW5wdXQtZ3JvdXAtLWxhYmVsLS1yYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYmFiaWVzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ3Vlc3RzLmJhYmllc0Ryb3Bkb3duLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChiYWJpZXNBZ2VSYW5nZUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0tbGFiZWwtLXJhbmdlLS1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8ge3sgYmFiaWVzQWdlUmFuZ2VMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIkJlYsOpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJiYWJpZXMxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYmFiaWVzMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQmFiaWVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24gb2YgZ3Vlc3RzLmJhYmllc0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFieVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tdXNlci5zdmcjaWNvbi11c2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZ2UtZ3JvdXAtYm94IGJhYmllcy1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dCYWJpZXNBZ2VzID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImFnZS1ncm91cC1ib3gtLWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBndWVzdHMuYWdlc0xhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xlZ2VuZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZ2UtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFieUFnZSBvZiBiYWJpZXNBZ2VTZWxlY3Rpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFiaWVzLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdHMuYmFiaWVzTGFiZWwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JlYmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkaW5kZXggKyAxIH19PC9sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFiaWVzLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhYmllcy1hZ2UnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFieUFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CYWJpZXNBZ2VDaGFuZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBvZiBiYWJ5QWdlT3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgb3B0aW9uLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy5zdmcjaWNvbi1hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3NlY29uZGFyeSBqcy1hcHBseS1ndWVzdHMxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUd1ZXN0c0Zyb21WaWV3Q2hpbGRyZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBndWVzdHMuYnRuPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChwcm9tb0lucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsXCIgZm9yPVwiZW1haWxcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb21vSW5wdXQucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb21vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLXByb21vLnN2ZyNpY29uLXByb21vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwib3BlbkluTmV3V2luZG93ID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2VuZXJhdGVkVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlR2VuZXJhdGVkVXJsKCk7IGNsb3NlTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnV0dG9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1lbmdpbmUtbW9kYWwtdjIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQXdCMUMsTUFBTSxPQUFPLDZCQUE2QjtJQTZEdEMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFsRGpDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLHVCQUFrQixHQUF5QixFQUFFLENBQUM7UUFFN0Ms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QUFrQixFQUFFLENBQ2hDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQzsrR0FoYlEsNkJBQTZCO21HQUE3Qiw2QkFBNkIsMGZDOUMxQyxvc3RCQXNhQSw2KzhCRG5ZUSxXQUFXLDY4QkFDWCxtQkFBbUIsK1VBQ25CLGNBQWMsMHpDQUNkLFlBQVksOEJBQ1osY0FBYyw4QkFDZCxZQUFZOzs0RkFNUCw2QkFBNkI7a0JBZnpDLFNBQVM7K0JBQ0ksNkJBQTZCLGNBQzNCLElBQUksV0FDUDt3QkFDTCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsWUFBWTtxQkFDZixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTTtzRkFHdEIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUVkLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhbGVuZGFyLCBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFieWxvbkJ1dHRvbkksIEJhYnlsb25JbnB1dEkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEJhYnlsb25HdWVzdHNQb3B1cEkgfSBmcm9tICcuLi9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC9iYWJ5bG9uLWd1ZXN0cy1wb3B1cC5pbnRlcmZhY2UnO1xuXG50eXBlIEFnZU9wdGlvbiA9IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1lbmdpbmUtbW9kYWwtdjInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQ2FsZW5kYXJNb2R1bGUsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWVuZ2luZS1tb2RhbC12Mi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2JhYnlsb24tZW5naW5lLW1vZGFsLXYyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkVuZ2luZU1vZGFsVjJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlcicpIGRhdGVwaWNrZXIhOiBDYWxlbmRhcjtcblxuICAgIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRhdGVwaWNrZXJEYXRhPzogQmFieWxvbklucHV0STtcbiAgICBASW5wdXQoKSBndWVzdHNJbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgcHJvbW9JbnB1dD86IEJhYnlsb25JbnB1dEk7XG4gICAgQElucHV0KCkgYnV0dG9uPzogQmFieWxvbkJ1dHRvbkk7XG4gICAgQElucHV0KCkgZ3Vlc3RzPzogQmFieWxvbkd1ZXN0c1BvcHVwSTtcbiAgICBASW5wdXQoKSBvcGVuSW5OZXdXaW5kb3c/OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRlZmF1bHRBZHVsdHMgPSAxO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkRGF0ZVJhbmdlczogRGlzYWJsZWREYXRlUmFuZ2VJW10gPSBbXTtcblxuICAgIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgZGF0ZXM6IG5ldyBGb3JtQ29udHJvbDxEYXRlW10gfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgZ3Vlc3RzOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignMDEnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgYWR1bHRzOiBuZXcgRm9ybUNvbnRyb2w8bnVtYmVyIHwgbnVsbD4oMSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgIHByb21vOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyksXG4gICAgfSk7XG5cbiAgICBnZW5lcmF0ZWRVcmwgPSAnJztcbiAgICBndWVzdHNWYWx1ZSA9ICcwMSc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhbGxiYWNrQ2hpbGRBZ2VPcHRpb25zOiBBZ2VPcHRpb25bXSA9IEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiAxMiB9LFxuICAgICAgICAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFnZSA9IGluZGV4ICsgMztcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2RlOiBhZ2UsXG4gICAgICAgICAgICAgICAgbmFtZTogYWdlIDwgMTAgPyBgMCR7YWdlfWAgOiBgJHthZ2V9YCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYWxsYmFja0JhYnlBZ2VPcHRpb25zOiBBZ2VPcHRpb25bXSA9IEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiAzIH0sXG4gICAgICAgIChfLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgIGNvZGU6IGluZGV4LFxuICAgICAgICAgICAgbmFtZTogaW5kZXggPCAxMCA/IGAwJHtpbmRleH1gIDogYCR7aW5kZXh9YCxcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMgPSB7XG4gICAgICAgIGFkdWx0czogMSxcbiAgICAgICAga2lkczogMCxcbiAgICAgICAgaW5mYW50czogMCxcbiAgICB9O1xuXG4gICAgY2hpbGRyZW5BZ2VTZWxlY3Rpb25zOiBudW1iZXJbXSA9IFtdO1xuICAgIGJhYmllc0FnZVNlbGVjdGlvbnM6IG51bWJlcltdID0gW107XG5cbiAgICBzaG93U3ViZmllbGRzID0gZmFsc2U7XG4gICAgc2hvd0NoaWxkcmVuQWdlcyA9IGZhbHNlO1xuICAgIHNob3dCYWJpZXNBZ2VzID0gZmFsc2U7XG4gICAgZmluYWxpemVkR3Vlc3RzID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBkaXNhYmxlZERhdGVzOiBEYXRlW10gPSBbXTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXREaXNhYmxlZERhdGVzKCk7XG5cbiAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBjb25zdCB0b21vcnJvdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRvbW9ycm93LnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgMSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZGF0ZXM6IFt0b2RheSwgdG9tb3Jyb3ddLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNldERlZmF1bHRBZHVsdHModGhpcy5kZWZhdWx0QWR1bHRzKTtcbiAgICAgICAgdGhpcy5zeW5jQ2hpbGRyZW5BZ2VTZWxlY3Rpb25zKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcyk7XG4gICAgICAgIHRoaXMuc3luY0JhYmllc0FnZVNlbGVjdGlvbnModGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzKTtcblxuICAgICAgICB0aGlzLmZvcm1cbiAgICAgICAgICAgIC5nZXQoJ2FkdWx0cycpXG4gICAgICAgICAgICA/LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zeW5jQWR1bHRzU2VsZWN0aW9uKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm1cbiAgICAgICAgICAgIC5nZXQoJ3Byb21vJylcbiAgICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGluaXREaXNhYmxlZERhdGVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWREYXRlUmFuZ2VzIHx8IHRoaXMuZGlzYWJsZWREYXRlUmFuZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZERhdGVzID0gW107XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlzYWJsZWQ6IERhdGVbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuZGlzYWJsZWREYXRlUmFuZ2VzLmZvckVhY2goKHJhbmdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGFydERhdGUgPSB0eXBlb2YgcmFuZ2Uuc3RhcnQgPT09ICdzdHJpbmcnID8gbmV3IERhdGUocmFuZ2Uuc3RhcnQpIDogcmFuZ2Uuc3RhcnQ7XG4gICAgICAgICAgICBjb25zdCBlbmREYXRlID0gdHlwZW9mIHJhbmdlLmVuZCA9PT0gJ3N0cmluZycgPyBuZXcgRGF0ZShyYW5nZS5lbmQpIDogcmFuZ2UuZW5kO1xuXG4gICAgICAgICAgICBpZiAoc3RhcnREYXRlICYmIGVuZERhdGUgJiYgIWlzTmFOKHN0YXJ0RGF0ZS5nZXRUaW1lKCkpICYmICFpc05hTihlbmREYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZERhdGVSYW5nZShkaXNhYmxlZCwgc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kaXNhYmxlZERhdGVzID0gZGlzYWJsZWQ7XG4gICAgfVxuICAgIHByaXZhdGUgYWRkRGF0ZVJhbmdlKHRhcmdldEFycmF5OiBEYXRlW10sIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgICAgIGNvbnN0IGxpbWl0RGF0ZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xuXG4gICAgICAgIHdoaWxlIChjdXJyZW50RGF0ZSA8PSBsaW1pdERhdGUpIHtcbiAgICAgICAgICAgIHRhcmdldEFycmF5LnB1c2gobmV3IERhdGUoY3VycmVudERhdGUpKTtcbiAgICAgICAgICAgIGN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcGVuQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5vdmVybGF5VmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25EYXRlU2VsZWN0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGF0ZXBpY2tlci52YWx1ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBkYXRlczogdmFsdWUgYXMgRGF0ZVtdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB0b2dnbGVQZXJzb25hcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93U3ViZmllbGRzID0gIXRoaXMuc2hvd1N1YmZpZWxkcztcbiAgICB9XG5cbiAgICBvbkFkdWx0c0NoYW5nZShfZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIC8vIEhhbmRsZWQgYnkgdGhlIGFkdWx0cyBGb3JtQ29udHJvbCBzdWJzY3JpcHRpb24uXG4gICAgfVxuXG4gICAgb25DaGlsZHJlbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzID0gdGhpcy5nZXRTZWxlY3RWYWx1ZShldmVudCk7XG4gICAgICAgIHRoaXMuc3luY0NoaWxkcmVuQWdlU2VsZWN0aW9ucyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMpO1xuICAgICAgICB0aGlzLnJlZnJlc2hHdWVzdHNWYWx1ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkJhYmllc0NoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzID0gdGhpcy5nZXRTZWxlY3RWYWx1ZShldmVudCk7XG4gICAgICAgIHRoaXMuc3luY0JhYmllc0FnZVNlbGVjdGlvbnModGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5pbmZhbnRzKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoR3Vlc3RzVmFsdWUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVHZW5lcmF0ZWRVcmwoKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25DaGlsZEFnZUNoYW5nZShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEFnZVNlbGVjdFZhbHVlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkFnZVNlbGVjdGlvbnNbaW5kZXhdID0gTnVtYmVyLmlzTmFOKHZhbHVlKVxuICAgICAgICAgICAgPyB0aGlzLmdldERlZmF1bHRDaGlsZEFnZSgpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkJhYmllc0FnZUNoYW5nZShpbmRleDogbnVtYmVyLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEFnZVNlbGVjdFZhbHVlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5iYWJpZXNBZ2VTZWxlY3Rpb25zW2luZGV4XSA9IE51bWJlci5pc05hTih2YWx1ZSlcbiAgICAgICAgICAgID8gdGhpcy5nZXREZWZhdWx0QmFieUFnZSgpXG4gICAgICAgICAgICA6IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBhcHBseUd1ZXN0cyhhZHVsdHM6IGFueSwgY2hpbGRyZW46IGFueSwgYmFiaWVzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgPSBOdW1iZXIoYWR1bHRzKSB8fCAwO1xuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMgPSBOdW1iZXIoY2hpbGRyZW4pIHx8IDA7XG4gICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyA9IE51bWJlcihiYWJpZXMpIHx8IDA7XG4gICAgICAgIHRoaXMuc3luY0NoaWxkcmVuQWdlU2VsZWN0aW9ucyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmtpZHMpO1xuICAgICAgICB0aGlzLnN5bmNCYWJpZXNBZ2VTZWxlY3Rpb25zKHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyk7XG4gICAgICAgIHRoaXMucmVmcmVzaEd1ZXN0c1ZhbHVlKCk7XG5cbiAgICAgICAgdGhpcy5zaG93U3ViZmllbGRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluYWxpemVkR3Vlc3RzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUdlbmVyYXRlZFVybCgpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVHZW5lcmF0ZWRVcmwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5idXR0b24/LnVybCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgY29uc3QgZGF0ZXMgPSB0aGlzLmZvcm0uZ2V0KCdkYXRlcycpPy52YWx1ZTtcbiAgICAgICAgY29uc3QgcHJvbW8gPSB0aGlzLmZvcm0uZ2V0KCdwcm9tbycpPy52YWx1ZTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGRhdGVzKSAmJlxuICAgICAgICAgICAgZGF0ZXMubGVuZ3RoID09PSAyICYmXG4gICAgICAgICAgICBkYXRlc1swXSBpbnN0YW5jZW9mIERhdGUgJiZcbiAgICAgICAgICAgIGRhdGVzWzFdIGluc3RhbmNlb2YgRGF0ZVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVpbiA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlc1swXSk7XG4gICAgICAgICAgICBjb25zdCBkYXRlb3V0ID0gdGhpcy5mb3JtYXREYXRlKGRhdGVzWzFdKTtcblxuICAgICAgICAgICAgcGFyYW1zLnNldCgnZGF0ZWluJywgZGF0ZWluKTtcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoJ2RhdGVvdXQnLCBkYXRlb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtcy5zZXQoJ2FkdWx0b3MnLCBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMpKTtcbiAgICAgICAgcGFyYW1zLnNldCgnY2hpbGRyZW4nLCBTdHJpbmcodGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzKSk7XG4gICAgICAgIHBhcmFtcy5zZXQoJ2JhYmllcycsIFN0cmluZyh0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmluZmFudHMpKTtcbiAgICAgICAgdGhpcy5hcHBlbmRHdWVzdEFnZXMocGFyYW1zKTtcblxuICAgICAgICBpZiAocHJvbW8pIHtcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoJ3Byb20nLCBwcm9tbyk7XG4gICAgICAgICAgICBwYXJhbXMuc2V0KCdwcm9tX2NsZWFuJywgJzAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5zZXQoJ3Byb21fY2xlYW4nLCAnMScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZW5lcmF0ZWRVcmwgPSBgJHt0aGlzLmJ1dHRvbi51cmx9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBkYXRlXG4gICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCdlcy1FUycsIHtcbiAgICAgICAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgICAgICAgICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICctJyk7XG4gICAgfVxuXG4gICAgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc3BsYXlEYXRlcygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkYXRlcyA9IHRoaXMuZm9ybS5nZXQoJ2RhdGVzJyk/LnZhbHVlO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KGRhdGVzKSB8fFxuICAgICAgICAgICAgZGF0ZXMubGVuZ3RoICE9PSAyIHx8XG4gICAgICAgICAgICAhKGRhdGVzWzBdIGluc3RhbmNlb2YgRGF0ZSkgfHxcbiAgICAgICAgICAgICEoZGF0ZXNbMV0gaW5zdGFuY2VvZiBEYXRlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5mb3JtYXREYXRlKGRhdGVzWzBdKX0gLSAke3RoaXMuZm9ybWF0RGF0ZShkYXRlc1sxXSl9YDtcbiAgICB9XG5cbiAgICBhcHBseUd1ZXN0c0Zyb21WaWV3Q2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwbHlHdWVzdHMoXG4gICAgICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlU2VwYXJhdGVzLmFkdWx0cyxcbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMua2lkcyxcbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50c1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldERlZmF1bHRBZHVsdHMoZGVmYXVsdEFkdWx0czogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEFkdWx0cyA9IE51bWJlcihkZWZhdWx0QWR1bHRzKSB8fCAxO1xuICAgICAgICB0aGlzLnN5bmNBZHVsdHNTZWxlY3Rpb24odGhpcy5nZXREZWZhdWx0QWR1bHRWYWx1ZSgpLCB0cnVlKTtcbiAgICB9XG5cbiAgICBnZXQgY2hpbGRBZ2VPcHRpb25zKCk6IEFnZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3RzPy5hZ2VzRHJvcGRvd24/Lm9wdGlvbnM/Lmxlbmd0aFxuICAgICAgICAgICAgPyAodGhpcy5ndWVzdHMuYWdlc0Ryb3Bkb3duLm9wdGlvbnMgYXMgQWdlT3B0aW9uW10pXG4gICAgICAgICAgICA6IHRoaXMuZmFsbGJhY2tDaGlsZEFnZU9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGJhYnlBZ2VPcHRpb25zKCk6IEFnZU9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3RzPy5iYWJpZXNBZ2VzRHJvcGRvd24/Lm9wdGlvbnM/Lmxlbmd0aFxuICAgICAgICAgICAgPyAodGhpcy5ndWVzdHMuYmFiaWVzQWdlc0Ryb3Bkb3duLm9wdGlvbnMgYXMgQWdlT3B0aW9uW10pXG4gICAgICAgICAgICA6IHRoaXMuZmFsbGJhY2tCYWJ5QWdlT3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgY2hpbGRyZW5BZ2VSYW5nZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFnZVJhbmdlTGFiZWwodGhpcy5jaGlsZEFnZU9wdGlvbnMpO1xuICAgIH1cblxuICAgIGdldCBiYWJpZXNBZ2VSYW5nZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFnZVJhbmdlTGFiZWwodGhpcy5iYWJ5QWdlT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0IGFnZVVuaXRMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdHM/LmFnZVVuaXRMYWJlbD8udHJpbSgpIHx8ICdhw7Fvcyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RWYWx1ZShldmVudDogRXZlbnQpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQgfCBudWxsO1xuXG4gICAgICAgIHJldHVybiBOdW1iZXIodGFyZ2V0Py52YWx1ZSA/PyAwKSB8fCAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWdlU2VsZWN0VmFsdWUoZXZlbnQ6IEV2ZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50IHwgbnVsbDtcblxuICAgICAgICByZXR1cm4gTnVtYmVyKHRhcmdldD8udmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdEFkdWx0VmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29uZmlndXJlZERlZmF1bHQgPSBOdW1iZXIodGhpcy5kZWZhdWx0QWR1bHRzKSB8fCAxO1xuICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9uID1cbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzPy5hZHVsdHNEcm9wZG93bj8ub3B0aW9ucz8uZmluZChcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiBOdW1iZXIob3B0aW9uLmNvZGUpID09PSBjb25maWd1cmVkRGVmYXVsdFxuICAgICAgICAgICAgKSA/PyB0aGlzLmd1ZXN0cz8uYWR1bHRzRHJvcGRvd24/Lm9wdGlvbnM/LlswXTtcblxuICAgICAgICByZXR1cm4gTnVtYmVyKGRlZmF1bHRPcHRpb24/LmNvZGUgPz8gY29uZmlndXJlZERlZmF1bHQpIHx8IDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0Q2hpbGRBZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmNoaWxkQWdlT3B0aW9uc1swXT8uY29kZSA/PyAzKSB8fCAzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdEJhYnlBZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmJhYnlBZ2VPcHRpb25zWzBdPy5jb2RlID8/IDApIHx8IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZ2VSYW5nZUxhYmVsKG9wdGlvbnM6IEFnZU9wdGlvbltdKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBvcHRpb25zPy5bMF0/LmNvZGU7XG4gICAgICAgIGNvbnN0IGxhc3QgPSBvcHRpb25zPy5bb3B0aW9ucy5sZW5ndGggLSAxXT8uY29kZTtcblxuICAgICAgICBpZiAoZmlyc3QgPT09IHVuZGVmaW5lZCB8fCBsYXN0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtmaXJzdH0tJHtsYXN0fSAke3RoaXMuYWdlVW5pdExhYmVsfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jQ2hpbGRyZW5BZ2VTZWxlY3Rpb25zKGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNvdW50IDw9IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5BZ2VTZWxlY3Rpb25zID0gW107XG4gICAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbkFnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRBZ2UgPSB0aGlzLmdldERlZmF1bHRDaGlsZEFnZSgpO1xuICAgICAgICBjb25zdCBuZXh0VmFsdWVzID0gdGhpcy5jaGlsZHJlbkFnZVNlbGVjdGlvbnMuc2xpY2UoMCwgY291bnQpO1xuXG4gICAgICAgIHdoaWxlIChuZXh0VmFsdWVzLmxlbmd0aCA8IGNvdW50KSB7XG4gICAgICAgICAgICBuZXh0VmFsdWVzLnB1c2goZGVmYXVsdEFnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoaWxkcmVuQWdlU2VsZWN0aW9ucyA9IG5leHRWYWx1ZXM7XG4gICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuQWdlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jQmFiaWVzQWdlU2VsZWN0aW9ucyhjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJhYmllc0FnZVNlbGVjdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0JhYmllc0FnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRBZ2UgPSB0aGlzLmdldERlZmF1bHRCYWJ5QWdlKCk7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZXMgPSB0aGlzLmJhYmllc0FnZVNlbGVjdGlvbnMuc2xpY2UoMCwgY291bnQpO1xuXG4gICAgICAgIHdoaWxlIChuZXh0VmFsdWVzLmxlbmd0aCA8IGNvdW50KSB7XG4gICAgICAgICAgICBuZXh0VmFsdWVzLnB1c2goZGVmYXVsdEFnZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJhYmllc0FnZVNlbGVjdGlvbnMgPSBuZXh0VmFsdWVzO1xuICAgICAgICB0aGlzLnNob3dCYWJpZXNBZ2VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hHdWVzdHNWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdG90YWwgPVxuICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgK1xuICAgICAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzICtcbiAgICAgICAgICAgIHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cztcblxuICAgICAgICB0aGlzLmd1ZXN0c1ZhbHVlID0gdG90YWwgPCAxMCA/IGAwJHt0b3RhbH1gIDogU3RyaW5nKHRvdGFsKTtcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnZ3Vlc3RzJyk/LnNldFZhbHVlKHRoaXMuZ3Vlc3RzVmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY0FkdWx0c1NlbGVjdGlvbihcbiAgICAgICAgYWR1bHRzOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICB1cGRhdGVDb250cm9sID0gZmFsc2VcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV4dEFkdWx0cyA9IE51bWJlcihhZHVsdHMpIHx8IDA7XG5cbiAgICAgICAgdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5hZHVsdHMgPSBuZXh0QWR1bHRzO1xuXG4gICAgICAgIGlmICh1cGRhdGVDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KCdhZHVsdHMnKT8uc2V0VmFsdWUobmV4dEFkdWx0cywge1xuICAgICAgICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVmcmVzaEd1ZXN0c1ZhbHVlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlR2VuZXJhdGVkVXJsKCk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwZW5kR3Vlc3RBZ2VzKHBhcmFtczogVVJMU2VhcmNoUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50cyB9KS5mb3JFYWNoKFxuICAgICAgICAgICAgKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJ2d1ZXN0QWdlcycsXG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYmFiaWVzQWdlU2VsZWN0aW9uc1tpbmRleF0gPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldERlZmF1bHRCYWJ5QWdlKClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5ndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzIH0pLmZvckVhY2goXG4gICAgICAgICAgICAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKFxuICAgICAgICAgICAgICAgICAgICAnZ3Vlc3RBZ2VzJyxcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbkFnZVNlbGVjdGlvbnNbaW5kZXhdID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREZWZhdWx0Q2hpbGRBZ2UoKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG5leHBvcnQgaW50ZXJmYWNlIERpc2FibGVkRGF0ZVJhbmdlSSB7XG4gICAgc3RhcnQ6IERhdGUgfCBzdHJpbmc7IC8vIFBlcm1pdGUgb2JqZXRvcyBEYXRlIG8gc3RyaW5ncyBZWVlZLU1NLUREXG4gICAgZW5kOiBEYXRlIHwgc3RyaW5nO1xufSIsIjxkaXYgY2xhc3M9XCJtb2RhbCBtb2RhbF9fcmVzZXJ2YXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWxfX2lubmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibW9kYWxfX2Nsb3NlIGpzLWNsb3NlXCJcbiAgICAgICAgICAgIGRhdGEtbW9kYWxfbmFtZT1cInJlc2VydmFyXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzdmcgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8dXNlIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tY2xvc2Uuc3ZnI2ljb24tY2xvc2VcIj48L3VzZT5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZpZ3VyZSBjbGFzcz1cIm1vZGFsX19yZXNlcnZhci1ncmFwaGljXCI+XG4gICAgICAgICAgICA8aW1nIHNyYz1cIi9hc3NldHMvYmFieWxvbi9pbWFnZXMvaW1nLTQwLndlYnBcIiAvPlxuICAgICAgICA8L2ZpZ3VyZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsX19ib3hcIj5cbiAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8aDI+e3sgdGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsX19yZXNlcnZhci1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgICAgICAgICAgQGlmIChkYXRlcGlja2VyRGF0YSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWdyb3VwLS1sYWJlbFwiIGZvcj1cIkluLWRhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVwaWNrZXJEYXRhLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd090aGVyTW9udGhzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQtbW0teXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU9XCJyYW5nZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRpc3BsYXlEYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJPZk1vbnRoc109XCIyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seUlucHV0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uRGF0ZVNlbGVjdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtY2FsZW5kYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuQ2FsZW5kYXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWNhbGVuZGVyLnN2ZyNpY29uLWNhbGVuZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKGd1ZXN0c0lucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAganMtcGVyc29uYXMtc3ViZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBlcnNvbmFzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm9wZW5dPVwic2hvd1N1YmZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmluYWxdPVwiZmluYWxpemVkR3Vlc3RzXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1jb250cm9sXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdHNWYWx1ZSB8fCAnMDEnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGVyc29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tcGVyc29ucy5zdmcjaWNvbi1wZXJzb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy5zdmcjaWNvbi1hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoZ3Vlc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ViLWZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJzaG93U3ViZmllbGRzID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZ3Vlc3RzLmFkdWx0c0Ryb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiYWR1bHQxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBndWVzdHMuYWR1bHRzRHJvcGRvd24udGl0bGUgfX08L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiQWR1bHRvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFkdWx0MVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYWR1bHQxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZHVsdHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkFkdWx0c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8b3B0aW9uIHZhbHVlPVwiMFwiIHNlbGVjdGVkPjAwPC9vcHRpb24+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIGd1ZXN0cy5hZHVsdHNEcm9wZG93bi5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJvcHRpb24uY29kZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1wZXJzb25zLnN2ZyNpY29uLXBlcnNvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGd1ZXN0cy5raWRzRHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0taW5uZXIgY2hpbGRBZ2UtZ3JvdXAtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsIGlucHV0LWdyb3VwLS1sYWJlbC0tcmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImNoaWxkMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ3Vlc3RzLmtpZHNEcm9wZG93bi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY2hpbGRyZW5BZ2VSYW5nZUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1ncm91cC0tbGFiZWwtLXJhbmdlLS1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8ge3sgY2hpbGRyZW5BZ2VSYW5nZUxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiTmnDsW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNoaWxkMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2NoaWxkMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJndWVzdHNWYWx1ZVNlcGFyYXRlcy5raWRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hpbGRyZW5DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBvZiBndWVzdHMua2lkc0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi5jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvYXNzZXRzL2JhYnlsb24vc3ZnL2ljb24tdXNlci5zdmcjaWNvbi11c2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZ2UtZ3JvdXAtYm94IGNoaWxkcmVuLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NoaWxkcmVuQWdlcyA/ICdibG9jaycgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJhZ2UtZ3JvdXAtYm94LS1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ3Vlc3RzLmFnZXNMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWdlLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQWdlIG9mIGNoaWxkcmVuQWdlU2VsZWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoaWxkcmVuLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdHMua2lkc0xhYmVsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmlubydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICRpbmRleCArIDEgfX08L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGlsZHJlbi1hZ2UnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGlsZHJlbi1hZ2UnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY2hpbGRBZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hpbGRBZ2VDaGFuZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiBvZiBjaGlsZEFnZU9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrIG9wdGlvbi5jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRvd24tYXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLWFycm93LnN2ZyNpY29uLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGd1ZXN0cy5iYWJpZXNEcm9wZG93bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWdyb3VwLS1pbm5lciBiYWJpZXNBZ2UtZ3JvdXAtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsIGlucHV0LWdyb3VwLS1sYWJlbC0tcmFuZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImJhYmllczFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGd1ZXN0cy5iYWJpZXNEcm9wZG93bi50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYmFiaWVzQWdlUmFuZ2VMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsLS1yYW5nZS0tc21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIHt7IGJhYmllc0FnZVJhbmdlTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJCZWLDqXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYmFiaWVzMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JhYmllczFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ3Vlc3RzVmFsdWVTZXBhcmF0ZXMuaW5mYW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkJhYmllc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIGd1ZXN0cy5iYWJpZXNEcm9wZG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJvcHRpb24uY29kZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhYnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLXVzZXIuc3ZnI2ljb24tdXNlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWdlLWdyb3VwLWJveCBiYWJpZXMtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93QmFiaWVzQWdlcyA/ICdibG9jaycgOiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJhZ2UtZ3JvdXAtYm94LS1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ3Vlc3RzLmFnZXNMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWdlLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhYnlBZ2Ugb2YgYmFiaWVzQWdlU2VsZWN0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2sgJGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhYmllcy1hZ2UnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpbmRleCArIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3RzLmJhYmllc0xhYmVsIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmViZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICRpbmRleCArIDEgfX08L2xhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWJpZXMtYWdlJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkaW5kZXggKyAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFiaWVzLWFnZScgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGluZGV4ICsgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYWJ5QWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJhYmllc0FnZUNoYW5nZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRldmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uIG9mIGJhYnlBZ2VPcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBvcHRpb24uY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmNvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi9hc3NldHMvYmFieWxvbi9zdmcvaWNvbi1hcnJvdy5zdmcjaWNvbi1hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3VzZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG5fX3NlY29uZGFyeSBqcy1hcHBseS1ndWVzdHMxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUd1ZXN0c0Zyb21WaWV3Q2hpbGRyZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBndWVzdHMuYnRuPy5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChwcm9tb0lucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtZ3JvdXAtLWxhYmVsXCIgZm9yPVwiZW1haWxcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb21vSW5wdXQucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByb21vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLS1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiL2Fzc2V0cy9iYWJ5bG9uL3N2Zy9pY29uLXByb21vLnN2ZyNpY29uLXByb21vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdXNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bl9fZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuX19wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YXJnZXRdPVwib3BlbkluTmV3V2luZG93ID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJ1dHRvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2VuZXJhdGVkVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlR2VuZXJhdGVkVXJsKCk7IGNsb3NlTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnV0dG9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==