@taiga-ui/addon-commerce 4.5.0-canary.50decb3 → 4.5.0-canary.6ead1e6

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.
@@ -210,7 +210,7 @@ class TuiInputCardGroup extends TuiControl {
210
210
  tuiAsControl(TuiInputCardGroup),
211
211
  tuiDropdownOptionsProvider({ limitWidth: 'fixed' }),
212
212
  TuiHoveredService,
213
- ], viewQueries: [{ propertyName: "inputCard", first: true, predicate: ["inputCard"], descendants: true }, { propertyName: "inputExpire", first: true, predicate: ["inputExpire"], descendants: true }, { propertyName: "inputCVC", first: true, predicate: ["inputCVC"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiDropdownDirective }, { directive: i3.TuiWithTextfieldDropdown }, { directive: i2.TuiWithDropdownOpen }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.silent.prevent)=\"(0)\"\n >\n <input\n #inputCard\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [autocomplete]=\"autocomplete ? 'cc-number' : 'off'\"\n [class.t-input_hidden]=\"!card.length && focus()\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"(0)\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style.transform]=\"transform(ghost)\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cardNumberText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputExpire\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n placeholder=\"00/00\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [attr.name]=\"autocomplete ? 'ccexpiryyear' : null\"\n [autocomplete]=\"autocomplete ? 'cc-exp' : 'off'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"expireFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputCVC\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [autocomplete]=\"autocomplete ? 'cc-csc' : 'off'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown.content\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n (click)=\"toggle()\"\n />\n</div>\n", styles: [":host{position:relative;display:block;block-size:var(--tui-height-l);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:clip}:host :host-context(tui-root._mobile){inline-size:18rem}.t-outline{block-size:100%;inline-size:100%}.t-wrapper{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;inline-size:100%;block-size:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate3d(100%,0,0)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate3d(100%,0,0)}.t-wrapper_active{transform:translate3d(6.5625rem,0,0)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate3d(4.125rem,0,0)}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:1.25rem var(--tui-padding-l) 0;box-sizing:border-box;font:var(--tui-font-text-m);line-height:2.25rem;color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate3d(100%,0,0)}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border:0;margin:0;padding:1.25rem var(--tui-padding-l) 0;outline:none;background:transparent;box-sizing:border-box;font:var(--tui-font-text-m);color:var(--tui-text-primary)}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background)!important;box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input.t-input.t-input_card:not(.t-input_hidden),.t-input.t-input.t-input_card:not(.t-input_hidden)::placeholder,.t-input.t-input.t-input_card:not(.t-input_hidden):-webkit-autofill{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;block-size:100%}.t-icon-outlet{display:flex;margin-right:.25rem}.t-icon{cursor:pointer;border:.25rem solid transparent}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1.125rem 1rem;font:var(--tui-font-text-m);line-height:1.25rem;color:var(--tui-text-secondary)}.t-label_raised{font-size:.8156rem;transform:translateY(-.7em)}:host([data-mode=\"invalid\"]) .t-label{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: TuiFormatCardPipe, name: "tuiFormatCard" }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
213
+ ], viewQueries: [{ propertyName: "inputCard", first: true, predicate: ["inputCard"], descendants: true }, { propertyName: "inputExpire", first: true, predicate: ["inputExpire"], descendants: true }, { propertyName: "inputCVC", first: true, predicate: ["inputCVC"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.TuiAppearance }, { directive: i2.TuiDropdownDirective }, { directive: i3.TuiWithTextfieldDropdown }, { directive: i2.TuiWithDropdownOpen }], ngImport: i0, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.silent.prevent)=\"(0)\"\n >\n <input\n #inputCard\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [autocomplete]=\"autocomplete ? 'cc-number' : 'off'\"\n [class.t-input_filled]=\"card.length\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"(0)\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style.transform]=\"transform(ghost)\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cardNumberText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputExpire\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n placeholder=\"00/00\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [attr.name]=\"autocomplete ? 'ccexpiryyear' : null\"\n [autocomplete]=\"autocomplete ? 'cc-exp' : 'off'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"expireFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputCVC\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [autocomplete]=\"autocomplete ? 'cc-csc' : 'off'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown.content\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n (click)=\"toggle()\"\n />\n</div>\n", styles: [":host{position:relative;display:block;block-size:var(--tui-height-l);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:clip}:host :host-context(tui-root._mobile){inline-size:18rem}:host[tuiAppearance][data-appearance]:has(:-webkit-autofill){background:var(--tui-service-autofill-background)!important}.t-outline{block-size:100%;inline-size:100%}.t-wrapper{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;inline-size:100%;block-size:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate3d(100%,0,0)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate3d(100%,0,0)}.t-wrapper_active{transform:translate3d(6.5625rem,0,0)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate3d(4.125rem,0,0)}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:1.25rem var(--tui-padding-l) 0;box-sizing:border-box;font:var(--tui-font-text-m);line-height:2.25rem;color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate3d(100%,0,0)}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border:0;margin:0;padding:1.25rem var(--tui-padding-l) 0;outline:none;background:transparent;box-sizing:border-box;font:var(--tui-font-text-m);color:var(--tui-text-primary)}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;-webkit-transition:background-color 600000s 0s;transition:background-color 600000s 0s}.t-input.t-input.t-input_card:not(:-webkit-autofill):not(:focus:placeholder-shown),.t-input.t-input.t-input_card.t-input_filled{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;block-size:100%}.t-icon-outlet{display:flex;margin-right:.25rem}.t-icon{cursor:pointer;border:.25rem solid transparent}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;margin:1.125rem 1rem;font:var(--tui-font-text-m);line-height:1.25rem;color:var(--tui-text-secondary)}input:-webkit-autofill~.t-label,.t-label_raised{font-size:.8156rem;transform:translateY(-.7em)}:host([data-mode=\"invalid\"]) .t-label{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAppearance, selector: "[tuiAppearance]", inputs: ["tuiAppearance", "tuiAppearanceState", "tuiAppearanceFocus"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "pipe", type: TuiFormatCardPipe, name: "tuiFormatCard" }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
214
214
  }
215
215
  __decorate([
216
216
  tuiPure
@@ -222,20 +222,20 @@ export { TuiInputCardGroup };
222
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputCardGroup, decorators: [{
223
223
  type: Component,
224
224
  args: [{ standalone: true, selector: 'tui-input-card-group', imports: [
225
- NgIf,
226
225
  FormsModule,
227
226
  MaskitoDirective,
228
- WaResizeObserver,
227
+ NgIf,
229
228
  PolymorpheusOutlet,
230
229
  PolymorpheusTemplate,
231
230
  TuiActiveZone,
231
+ TuiAppearance,
232
+ TuiChevron,
232
233
  TuiFormatCardPipe,
233
- TuiMapperPipe,
234
- TuiLet,
235
234
  TuiIcon,
236
- TuiChevron,
237
- TuiAppearance,
238
235
  TuiIconPipe,
236
+ TuiLet,
237
+ TuiMapperPipe,
238
+ WaResizeObserver,
239
239
  ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
240
240
  tuiAsDataListHost(TuiInputCardGroup),
241
241
  tuiAsControl(TuiInputCardGroup),
@@ -250,7 +250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
250
250
  'data-size': 'l',
251
251
  '[attr.data-mode]': 'mode()',
252
252
  '(mousedown)': 'onMouseDown($event)',
253
- }, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.silent.prevent)=\"(0)\"\n >\n <input\n #inputCard\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [autocomplete]=\"autocomplete ? 'cc-number' : 'off'\"\n [class.t-input_hidden]=\"!card.length && focus()\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"(0)\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style.transform]=\"transform(ghost)\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cardNumberText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputExpire\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n placeholder=\"00/00\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [attr.name]=\"autocomplete ? 'ccexpiryyear' : null\"\n [autocomplete]=\"autocomplete ? 'cc-exp' : 'off'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"expireFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputCVC\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [autocomplete]=\"autocomplete ? 'cc-csc' : 'off'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown.content\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n (click)=\"toggle()\"\n />\n</div>\n", styles: [":host{position:relative;display:block;block-size:var(--tui-height-l);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:clip}:host :host-context(tui-root._mobile){inline-size:18rem}.t-outline{block-size:100%;inline-size:100%}.t-wrapper{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;inline-size:100%;block-size:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate3d(100%,0,0)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate3d(100%,0,0)}.t-wrapper_active{transform:translate3d(6.5625rem,0,0)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate3d(4.125rem,0,0)}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:1.25rem var(--tui-padding-l) 0;box-sizing:border-box;font:var(--tui-font-text-m);line-height:2.25rem;color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate3d(100%,0,0)}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border:0;margin:0;padding:1.25rem var(--tui-padding-l) 0;outline:none;background:transparent;box-sizing:border-box;font:var(--tui-font-text-m);color:var(--tui-text-primary)}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;border-color:var(--tui-service-autofill-background)!important;box-shadow:0 0 0 100rem var(--tui-service-autofill-background) inset!important}.t-input.t-input.t-input_card:not(.t-input_hidden),.t-input.t-input.t-input_card:not(.t-input_hidden)::placeholder,.t-input.t-input.t-input_card:not(.t-input_hidden):-webkit-autofill{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;block-size:100%}.t-icon-outlet{display:flex;margin-right:.25rem}.t-icon{cursor:pointer;border:.25rem solid transparent}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:1.125rem 1rem;font:var(--tui-font-text-m);line-height:1.25rem;color:var(--tui-text-secondary)}.t-label_raised{font-size:.8156rem;transform:translateY(-.7em)}:host([data-mode=\"invalid\"]) .t-label{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"] }]
253
+ }, template: "<div class=\"t-wrapper\">\n <label\n *tuiLet=\"value()?.card | tuiFormatCard: cardPrefilled as formattedCard\"\n (click.silent.prevent)=\"(0)\"\n >\n <input\n #inputCard\n automation-id=\"tui-input-card-group__card\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input t-input_card\"\n [attr.aria-invalid]=\"!cardPrefilled && !(this.card | tuiMapper: cardValidator)\"\n [attr.id]=\"id + '_card'\"\n [autocomplete]=\"autocomplete ? 'cc-number' : 'off'\"\n [class.t-input_filled]=\"card.length\"\n [class.t-input_inert]=\"cardPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCard\"\n [ngModel]=\"formattedCard\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cardPrefilled ? '' : exampleText\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"cardFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCardChange($event)\"\n />\n <span\n aria-hidden=\"true\"\n translate=\"no\"\n class=\"t-collapsed\"\n [attr.data-before]=\"masked\"\n [class.t-collapsed_enable-mask]=\"cardCollapsed\"\n (waResizeObserver)=\"(0)\"\n >\n <span\n #ghost\n class=\"t-ghost\"\n [textContent]=\"formattedCard.slice(-tailLength)\"\n ></span>\n\n <span class=\"t-collapsed-wrapper\">\n <span\n class=\"t-value\"\n [style.transform]=\"transform(ghost)\"\n >\n {{ formattedCard }}\n </span>\n </span>\n </span>\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cardNumberText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_expire\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputExpire\n automation-id=\"tui-input-card-group__expire\"\n inputmode=\"numeric\"\n maxlength=\"5\"\n placeholder=\"00/00\"\n translate=\"no\"\n class=\"t-input\"\n [attr.id]=\"id + '_expire'\"\n [attr.name]=\"autocomplete ? 'ccexpiryyear' : null\"\n [autocomplete]=\"autocomplete ? 'cc-exp' : 'off'\"\n [class.t-input_inert]=\"!expireFocusable\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskExpire\"\n [ngModel]=\"expire\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly()\"\n [tabIndex]=\"expireFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onExpireChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.expiryText }}\n </div>\n </label>\n</div>\n<div\n class=\"t-wrapper t-wrapper_cvc\"\n [class.t-wrapper_active]=\"cardCollapsed\"\n>\n <label (click.silent.prevent)=\"(0)\">\n <input\n #inputCVC\n automation-id=\"tui-input-card-group__cvc\"\n inputmode=\"numeric\"\n translate=\"no\"\n type=\"text\"\n class=\"t-input\"\n [attr.id]=\"id + '_cvc'\"\n [autocomplete]=\"autocomplete ? 'cc-csc' : 'off'\"\n [class.t-input_cvc_hidden]=\"cvcHidden\"\n [class.t-input_prefilled]=\"cvcPrefilled\"\n [disabled]=\"disabled()\"\n [maskito]=\"maskCVC\"\n [ngModel]=\"cvc\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"cvcPrefilled ? '\u2022\u2022\u2022' : exampleTextCVC\"\n [readOnly]=\"readOnly() || cvcPrefilled\"\n [tabIndex]=\"cvcFocusable ? 0 : -1\"\n (focus)=\"(0)\"\n (ngModelChange)=\"onCVCChange($event)\"\n />\n <div\n class=\"t-label\"\n [class.t-label_raised]=\"labelRaised()\"\n >\n {{ texts()?.cvcText }}\n </div>\n </label>\n</div>\n<div class=\"t-icons\">\n <div\n *ngIf=\"content\"\n class=\"t-icon-outlet\"\n >\n <img\n *polymorpheusOutlet=\"content as src\"\n alt=\"\"\n automation-id=\"tui-input-card-group__icon\"\n class=\"t-card\"\n [src]=\"src | tuiIcon\"\n />\n </div>\n <tui-icon\n *ngIf=\"hasCleaner()\"\n automation-id=\"tui-input-card-group__cleaner\"\n tuiAppearance=\"icon\"\n class=\"t-icon\"\n [icon]=\"icons.close\"\n (click)=\"clear()\"\n />\n <tui-icon\n *ngIf=\"dropdown.content\"\n automation-id=\"tui-input-card-group__dropdown\"\n tuiAppearance=\"icon\"\n tuiChevron\n (click)=\"toggle()\"\n />\n</div>\n", styles: [":host{position:relative;display:block;block-size:var(--tui-height-l);inline-size:29.5rem;border-radius:var(--tui-radius-l);overflow:clip}:host :host-context(tui-root._mobile){inline-size:18rem}:host[tuiAppearance][data-appearance]:has(:-webkit-autofill){background:var(--tui-service-autofill-background)!important}.t-outline{block-size:100%;inline-size:100%}.t-wrapper{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;inline-size:100%;block-size:100%}.t-wrapper_cvc{margin-left:7.1875rem;transform:translate3d(100%,0,0)}:host-context(tui-root._mobile) .t-wrapper_cvc{margin-left:4.0625rem}.t-wrapper_expire{transform:translate3d(100%,0,0)}.t-wrapper_active{transform:translate3d(6.5625rem,0,0)}:host-context(tui-root._mobile) .t-wrapper_active{transform:translate3d(4.125rem,0,0)}.t-card{inline-size:2rem;block-size:2rem}.t-collapsed{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;padding:1.25rem var(--tui-padding-l) 0;box-sizing:border-box;font:var(--tui-font-text-m);line-height:2.25rem;color:var(--tui-text-primary);white-space:nowrap;pointer-events:none}.t-collapsed_enable-mask:before{content:attr(data-before)}.t-collapsed_enable-mask .t-collapsed-wrapper{left:1.375rem}.t-collapsed-wrapper{position:absolute;top:0;display:block;inline-size:100%;block-size:100%;overflow:hidden}.t-value{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;bottom:0;right:100%;display:block;transform:translate3d(100%,0,0)}.t-input{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border:0;margin:0;padding:1.25rem var(--tui-padding-l) 0;outline:none;background:transparent;box-sizing:border-box;font:var(--tui-font-text-m);color:var(--tui-text-primary)}.t-input::placeholder{color:var(--tui-text-tertiary)}.t-input:-webkit-autofill{-webkit-text-fill-color:var(--tui-text-primary)!important;caret-color:var(--tui-text-primary)!important;-webkit-transition:background-color 600000s 0s;transition:background-color 600000s 0s}.t-input.t-input.t-input_card:not(:-webkit-autofill):not(:focus:placeholder-shown),.t-input.t-input.t-input_card.t-input_filled{caret-color:var(--tui-text-primary);color:transparent!important;-webkit-text-fill-color:transparent!important}.t-input.t-input.t-input_card::-webkit-credit-card-auto-fill-button{content:none!important;position:absolute;left:-62.4375rem;top:-62.4375rem;z-index:-999;display:none!important;background:transparent!important;pointer-events:none!important}.t-input_inert{pointer-events:none}.t-input_cvc_hidden{-webkit-text-security:disc}.t-icons{position:absolute;right:.75rem;display:flex;align-items:center;block-size:100%}.t-icon-outlet{display:flex;margin-right:.25rem}.t-icon{cursor:pointer;border:.25rem solid transparent}.t-label{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;margin:1.125rem 1rem;font:var(--tui-font-text-m);line-height:1.25rem;color:var(--tui-text-secondary)}input:-webkit-autofill~.t-label,.t-label_raised{font-size:.8156rem;transform:translateY(-.7em)}:host([data-mode=\"invalid\"]) .t-label{color:var(--tui-text-negative)}:host([data-focus=\"true\"]) .t-label{color:var(--tui-text-primary)}.t-ghost{visibility:hidden}\n"] }]
254
254
  }], propDecorators: { inputCard: [{
255
255
  type: ViewChild,
256
256
  args: ['inputCard']
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
275
275
  }], codeLength: [{
276
276
  type: Input
277
277
  }], isFocusable: [], getPaymentSystem: [] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFckMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEdBQ2xCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVB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YW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHR5cGUge0VsZW1lbnRSZWYsIFNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXNraXRvRGlyZWN0aXZlfSBmcm9tICdAbWFza2l0by9hbmd1bGFyJztcbmltcG9ydCB7V2FSZXNpemVPYnNlcnZlcn0gZnJvbSAnQG5nLXdlYi1hcGlzL3Jlc2l6ZS1vYnNlcnZlcic7XG5pbXBvcnQge1xuICAgIFRVSV9NQVNLX0NBUkQsXG4gICAgVFVJX01BU0tfQ1ZDLFxuICAgIFRVSV9NQVNLX0VYUElSRSxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUZvcm1hdENhcmRQaXBlfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvcGlwZXMnO1xuaW1wb3J0IHtUVUlfUEFZTUVOVF9TWVNURU1fSUNPTlN9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aVBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90eXBlcyc7XG5pbXBvcnQge3R1aUFzQ29udHJvbCwgVHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB7VFVJX05PTl9ESUdJVF9SRUdFWFB9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpQWN0aXZlWm9uZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2FjdGl2ZS16b25lJztcbmltcG9ydCB7dHVpSG92ZXJlZCwgVHVpSG92ZXJlZFNlcnZpY2V9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9ob3ZlcmVkJztcbmltcG9ydCB7VHVpTGV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvbGV0JztcbmltcG9ydCB7dHVpVHlwZWRGcm9tRXZlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvb2JzZXJ2YWJsZXMnO1xuaW1wb3J0IHtUdWlNYXBwZXJQaXBlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3BpcGVzL21hcHBlcic7XG5pbXBvcnQge3R1aUluamVjdElkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3NlcnZpY2VzJztcbmltcG9ydCB0eXBlIHtUdWlCb29sZWFuSGFuZGxlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnQsIHR1aUlzRWxlbWVudCwgdHVpSXNJbnB1dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHt0dWlJc05hdGl2ZUZvY3VzZWQsIHR1aUlzTmF0aXZlRm9jdXNlZElufSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7dHVpQXNEYXRhTGlzdEhvc3R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpSWNvbiwgVHVpSWNvblBpcGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQge1xuICAgIFRVSV9URVhURklFTERfT1BUSU9OUyxcbiAgICBUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd24sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVHVpQXBwZWFyYW5jZSxcbiAgICB0dWlBcHBlYXJhbmNlLFxuICAgIHR1aUFwcGVhcmFuY2VGb2N1cyxcbiAgICB0dWlBcHBlYXJhbmNlU3RhdGUsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvYXBwZWFyYW5jZSc7XG5pbXBvcnQge1xuICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIHR1aURyb3Bkb3duT3BlbixcbiAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcixcbiAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB7VFVJX0NPTU1PTl9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7VHVpQ2hldnJvbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9kaXJlY3RpdmVzL2NoZXZyb24nO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNPdXRsZXQsIFBvbHltb3JwaGV1c1RlbXBsYXRlfSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7bWFwLCBtZXJnZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX0NBUkRfR1JPVVBfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwLm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfSU5QVVRfQ0FSRF9HUk9VUF9URVhUU30gZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwLnByb3ZpZGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVpQ2FyZCB7XG4gICAgY2FyZDogc3RyaW5nO1xuICAgIGN2Yzogc3RyaW5nO1xuICAgIGV4cGlyZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWNhcmQtZ3JvdXAnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hc2tpdG9EaXJlY3RpdmUsXG4gICAgICAgIFdhUmVzaXplT2JzZXJ2ZXIsXG4gICAgICAgIFBvbHltb3JwaGV1c091dGxldCxcbiAgICAgICAgUG9seW1vcnBoZXVzVGVtcGxhdGUsXG4gICAgICAgIFR1aUFjdGl2ZVpvbmUsXG4gICAgICAgIFR1aUZvcm1hdENhcmRQaXBlLFxuICAgICAgICBUdWlNYXBwZXJQaXBlLFxuICAgICAgICBUdWlMZXQsXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aUNoZXZyb24sXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aUljb25QaXBlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWNhcmQtZ3JvdXAudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtY2FyZC1ncm91cC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUlucHV0Q2FyZEdyb3VwKSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0Q2FyZEdyb3VwKSxcbiAgICAgICAgdHVpRHJvcGRvd25PcHRpb25zUHJvdmlkZXIoe2xpbWl0V2lkdGg6ICdmaXhlZCd9KSxcbiAgICAgICAgVHVpSG92ZXJlZFNlcnZpY2UsXG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICBUdWlBcHBlYXJhbmNlLFxuICAgICAgICBUdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgVHVpV2l0aFRleHRmaWVsZERyb3Bkb3duLFxuICAgICAgICBUdWlXaXRoRHJvcGRvd25PcGVuLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnZGF0YS1zaXplJzogJ2wnLFxuICAgICAgICAnW2F0dHIuZGF0YS1tb2RlXSc6ICdtb2RlKCknLFxuICAgICAgICAnKG1vdXNlZG93biknOiAnb25Nb3VzZURvd24oJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkR3JvdXBcbiAgICBleHRlbmRzIFR1aUNvbnRyb2w8VHVpQ2FyZCB8IG51bGw+XG4gICAgaW1wbGVtZW50cyBUdWlEYXRhTGlzdEhvc3Q8UGFydGlhbDxUdWlDYXJkPj5cbntcbiAgICBAVmlld0NoaWxkKCdpbnB1dENhcmQnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRDYXJkPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RXhwaXJlJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0RXhwaXJlPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Q1ZDJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q1ZDPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByaXZhdGUgZXhwaXJlUHJlZmlsbGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50U3lzdGVtcyA9IGluamVjdChUVUlfUEFZTUVOVF9TWVNURU1fSUNPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdChUVUlfSU5QVVRfQ0FSRF9HUk9VUF9PUFRJT05TKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG92ZXIgPSB0dWlIb3ZlcmVkKCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkSW4gPSB0b1NpZ25hbChcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmVsLCAnZm9jdXNpbicpLFxuICAgICAgICAgICAgdHVpVHlwZWRGcm9tRXZlbnQodGhpcy5lbCwgJ2ZvY3Vzb3V0JyksXG4gICAgICAgICkucGlwZShtYXAoKCkgPT4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbCkpKSxcbiAgICAgICAge2luaXRpYWxWYWx1ZTogZmFsc2V9LFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgZXhhbXBsZVRleHRDVkMgPSB0aGlzLm9wdGlvbnMuZXhhbXBsZVRleHRDVkM7XG4gICAgcHJvdGVjdGVkIGN2Y0hpZGRlbiA9IHRoaXMub3B0aW9ucy5jdmNIaWRkZW47XG4gICAgcHJvdGVjdGVkIG1hc2tDVkMgPSBUVUlfTUFTS19DVkMoMyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duID0gaW5qZWN0KFR1aURyb3Bkb3duRGlyZWN0aXZlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFza0NhcmQgPSBUVUlfTUFTS19DQVJEO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXNrRXhwaXJlID0gVFVJX01BU0tfRVhQSVJFO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IGluamVjdChUVUlfQ09NTU9OX0lDT05TKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dHMgPSB0b1NpZ25hbChpbmplY3QoVFVJX0lOUFVUX0NBUkRfR1JPVVBfVEVYVFMpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbiA9IHR1aURyb3Bkb3duT3BlbigpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSB0dWlBcHBlYXJhbmNlKFxuICAgICAgICBpbmplY3QoVFVJX1RFWFRGSUVMRF9PUFRJT05TKS5hcHBlYXJhbmNlLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhdGU6IFNpZ25hbDx1bmtub3duPiA9IHR1aUFwcGVhcmFuY2VTdGF0ZShcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgIGNvbXB1dGVkKCgpID0+ICh0aGlzLmRpc2FibGVkKCkgPyAnZGlzYWJsZWQnIDogdGhpcy5ob3ZlcigpID8gJ2hvdmVyJyA6IG51bGwpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvY3VzID0gdHVpQXBwZWFyYW5jZUZvY3VzKFxuICAgICAgICBjb21wdXRlZCgoKSA9PiB0aGlzLm9wZW4oKSB8fCB0aGlzLmZvY3VzZWRJbigpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsUmFpc2VkID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICh0aGlzLmZvY3VzKCkgJiYgIXRoaXMucmVhZE9ubHkoKSkgfHwgISF0aGlzLnZhbHVlKCk/LmNhcmQsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBoYXNDbGVhbmVyID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+ICEhdGhpcy52YWx1ZSgpPy5jYXJkICYmIHRoaXMuaW50ZXJhY3RpdmUoKSxcbiAgICApO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhhbXBsZVRleHQgPSB0aGlzLm9wdGlvbnMuZXhhbXBsZVRleHQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYXJkVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gdGhpcy5vcHRpb25zLmNhcmRWYWxpZGF0b3I7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uOiBQb2x5bW9ycGhldXNDb250ZW50ID0gdGhpcy5vcHRpb25zLmljb247XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IHR1aUluamVjdElkKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvY29tcGxldGUgPSB0aGlzLm9wdGlvbnMuYXV0b2NvbXBsZXRlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGJpbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBjb2RlTGVuZ3RoKGxlbmd0aDogMyB8IDQpIHtcbiAgICAgICAgdGhpcy5leGFtcGxlVGV4dENWQyA9ICcwJy5yZXBlYXQobGVuZ3RoKTtcbiAgICAgICAgdGhpcy5tYXNrQ1ZDID0gVFVJX01BU0tfQ1ZDKGxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBiaW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmQubGVuZ3RoIDwgNiA/IG51bGwgOiB0aGlzLmNhcmQuc2xpY2UoMCwgNik7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aUNhcmQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSAhIXRoaXMuZXhwaXJlICYmIHRoaXMuY2FyZFByZWZpbGxlZDtcbiAgICB9XG5cbiAgICAvKiogUHVibGljIEFQSSBmb3IgbWFudWFsIGZvY3VzIG1hbmFnZW1lbnQgKi9cbiAgICBwdWJsaWMgZm9jdXNDYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2FyZD8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c0V4cGlyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb2N1c0NWQygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENWQz8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVPcHRpb24ob3B0aW9uOiBQYXJ0aWFsPFR1aUNhcmQ+IHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y2FyZCA9ICcnLCBleHBpcmUgPSAnJywgY3ZjID0gJyd9ID0gb3B0aW9uIHx8IHt9O1xuICAgICAgICBjb25zdCB7YmlufSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgICAgKCFjYXJkICYmIHRoaXMuaW5wdXRDYXJkPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKCFleHBpcmUgJiYgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDVkM/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZSh7Y2FyZCwgZXhwaXJlLCBjdmN9KTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5vcGVuLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuZXhwaXJlUHJlZmlsbGVkID0gISFleHBpcmU7XG5cbiAgICAgICAgZWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhwaXJlUHJlZmlsbGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXNDYXJkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb250ZW50KCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICBjb25zdCBzeXN0ZW0gPSB0aGlzLmdldFBheW1lbnRTeXN0ZW0odGhpcy5jYXJkKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pY29uIHx8IChzeXN0ZW0gJiYgdGhpcy5wYXltZW50U3lzdGVtc1tzeXN0ZW1dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNhcmQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUoKT8uY2FyZCB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGV4cGlyZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpPy5leHBpcmUgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjdmMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUoKT8uY3ZjIHx8ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FyZENvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c2FibGUodGhpcy5jYXJkKSAmJlxuICAgICAgICAgICAgIXR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmlucHV0Q2FyZD8ubmF0aXZlRWxlbWVudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHRhaWxMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZC5sZW5ndGggJSA0ID4gMCA/IDUgOiA0O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FyZFByZWZpbGxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jYXJkLm1hdGNoKFRVSV9OT05fRElHSVRfUkVHRVhQKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGN2Y1ByZWZpbGxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jdmMubWF0Y2goVFVJX05PTl9ESUdJVF9SRUdFWFApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FyZEZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNhcmRQcmVmaWxsZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBleHBpcmVGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCkgJiYgIXRoaXMuZXhwaXJlUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY3ZjRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZSh0aGlzLmNhcmQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbWFza2VkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRQcmVmaWxsZWQgPyBgKiR7dGhpcy5jYXJkLnNsaWNlKC00KX1gIDogJyonO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNhcmRDaGFuZ2UoY2FyZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgYmlufSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGNhcmQuc3BsaXQoJyAnKS5qb2luKCcnKTtcblxuICAgICAgICBpZiAodmFsdWUoKT8uY2FyZCA9PT0gcGFyc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVByb3BlcnR5KHBhcnNlZCwgJ2NhcmQnKTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcblxuICAgICAgICBpZiAodGhpcy5jYXJkVmFsaWRhdG9yKHRoaXMuY2FyZCkgJiYgIXZhbHVlKCk/LmV4cGlyZSAmJiB0aGlzLmlucHV0RXhwaXJlKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzRXhwaXJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25FeHBpcmVDaGFuZ2UoZXhwaXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShleHBpcmUsICdleHBpcmUnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBOdW1iZXIodGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCkgPT09IDUgLy8gTU0vWVlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQ1ZDKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DVkNDaGFuZ2UoY3ZjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShjdmMsICdjdmMnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJhbnNmb3JtKHtvZmZzZXRXaWR0aH06IEhUTUxTcGFuRWxlbWVudCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRDb2xsYXBzZWQgPyBgdHJhbnNsYXRlM2QoJHtvZmZzZXRXaWR0aH1weCwgMCwgMClgIDogJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0dWlJc0VsZW1lbnQoZXZlbnQudGFyZ2V0KSAmJiB0dWlJc0lucHV0KGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3Blbi5zZXQoIXRoaXMub3BlbigpKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgaXNGb2N1c2FibGUoY2FyZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRWYWxpZGF0b3IoY2FyZCkgfHwgdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXRQYXltZW50U3lzdGVtKHZhbHVlOiBzdHJpbmcpOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucGF5bWVudFN5c3RlbUhhbmRsZXIodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQmluKG9sZEJpbjogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7YmlufSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGJpbiAhPT0gb2xkQmluICYmICF0aGlzLmNhcmRQcmVmaWxsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmluQ2hhbmdlLmVtaXQoYmluKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvcGVydHkodmFsdWU6IHN0cmluZywgcHJvcE5hbWU6ICdjYXJkJyB8ICdjdmMnIHwgJ2V4cGlyZScpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NhcmQgPSAnJywgZXhwaXJlID0gJycsIGN2YyA9ICcnfSA9IHRoaXMudmFsdWUoKSB8fCB7fTtcbiAgICAgICAgY29uc3QgbmV3VmFsdWU6IFR1aUNhcmQgPSB7Y2FyZCwgZXhwaXJlLCBjdmN9O1xuXG4gICAgICAgIG5ld1ZhbHVlW3Byb3BOYW1lXSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UobmV3VmFsdWUuZXhwaXJlIHx8IG5ld1ZhbHVlLmN2YyB8fCBuZXdWYWx1ZS5jYXJkID8gbmV3VmFsdWUgOiBudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZvY3VzSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgICAgKHRoaXMuY2FyZEZvY3VzYWJsZSAmJiB0aGlzLmlucHV0Q2FyZD8ubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgICh0aGlzLmV4cGlyZUZvY3VzYWJsZSAmJiB0aGlzLmlucHV0RXhwaXJlPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy5pbnB1dENWQz8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBlbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0LXdyYXBwZXJcIj5cbiAgICA8bGFiZWxcbiAgICAgICAgKnR1aUxldD1cInZhbHVlKCk/LmNhcmQgfCB0dWlGb3JtYXRDYXJkOiBjYXJkUHJlZmlsbGVkIGFzIGZvcm1hdHRlZENhcmRcIlxuICAgICAgICAoY2xpY2suc2lsZW50LnByZXZlbnQpPVwiKDApXCJcbiAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0Q2FyZFxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwX19jYXJkXCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0IHQtaW5wdXRfY2FyZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiIWNhcmRQcmVmaWxsZWQgJiYgISh0aGlzLmNhcmQgfCB0dWlNYXBwZXI6IGNhcmRWYWxpZGF0b3IpXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImlkICsgJ19jYXJkJ1wiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZSA/ICdjYy1udW1iZXInIDogJ29mZidcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaW5wdXRfaGlkZGVuXT1cIiFjYXJkLmxlbmd0aCAmJiBmb2N1cygpXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWlucHV0X2luZXJ0XT1cImNhcmRQcmVmaWxsZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgW21hc2tpdG9dPVwibWFza0NhcmRcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybWF0dGVkQ2FyZFwiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjYXJkUHJlZmlsbGVkID8gJycgOiBleGFtcGxlVGV4dFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FyZEZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiKDApXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2FyZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtY29sbGFwc2VkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtYmVmb3JlXT1cIm1hc2tlZFwiXG4gICAgICAgICAgICBbY2xhc3MudC1jb2xsYXBzZWRfZW5hYmxlLW1hc2tdPVwiY2FyZENvbGxhcHNlZFwiXG4gICAgICAgICAgICAod2FSZXNpemVPYnNlcnZlcik9XCIoMClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICNnaG9zdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1naG9zdFwiXG4gICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cImZvcm1hdHRlZENhcmQuc2xpY2UoLXRhaWxMZW5ndGgpXCJcbiAgICAgICAgICAgID48L3NwYW4+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb2xsYXBzZWQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC12YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhbnNmb3JtKGdob3N0KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmb3JtYXR0ZWRDYXJkIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1sYWJlbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1sYWJlbF9yYWlzZWRdPVwibGFiZWxSYWlzZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHRleHRzKCk/LmNhcmROdW1iZXJUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cInQtd3JhcHBlciB0LXdyYXBwZXJfZXhwaXJlXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX2FjdGl2ZV09XCJjYXJkQ29sbGFwc2VkXCJcbj5cbiAgICA8bGFiZWwgKGNsaWNrLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dEV4cGlyZVxuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwX19leHBpcmVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI1XCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMDAvMDBcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImlkICsgJ19leHBpcmUnXCJcbiAgICAgICAgICAgIFthdHRyLm5hbWVdPVwiYXV0b2NvbXBsZXRlID8gJ2NjZXhwaXJ5eWVhcicgOiBudWxsXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8gJ2NjLWV4cCcgOiAnb2ZmJ1wiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCIhZXhwaXJlRm9jdXNhYmxlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFttYXNraXRvXT1cIm1hc2tFeHBpcmVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZXhwaXJlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KClcIlxuICAgICAgICAgICAgW3RhYkluZGV4XT1cImV4cGlyZUZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiKDApXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRXhwaXJlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnQtbGFiZWxfcmFpc2VkXT1cImxhYmVsUmFpc2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0ZXh0cygpPy5leHBpcnlUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cInQtd3JhcHBlciB0LXdyYXBwZXJfY3ZjXCJcbiAgICBbY2xhc3MudC13cmFwcGVyX2FjdGl2ZV09XCJjYXJkQ29sbGFwc2VkXCJcbj5cbiAgICA8bGFiZWwgKGNsaWNrLnNpbGVudC5wcmV2ZW50KT1cIigwKVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICNpbnB1dENWQ1xuICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwX19jdmNcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2N2YydcIlxuICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPyAnY2MtY3NjJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWlucHV0X2N2Y19oaWRkZW5dPVwiY3ZjSGlkZGVuXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWlucHV0X3ByZWZpbGxlZF09XCJjdmNQcmVmaWxsZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgW21hc2tpdG9dPVwibWFza0NWQ1wiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJjdmNcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY3ZjUHJlZmlsbGVkID8gJ+KAouKAouKAoicgOiBleGFtcGxlVGV4dENWQ1wiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKSB8fCBjdmNQcmVmaWxsZWRcIlxuICAgICAgICAgICAgW3RhYkluZGV4XT1cImN2Y0ZvY3VzYWJsZSA/IDAgOiAtMVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiKDApXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ1ZDQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInQtbGFiZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnQtbGFiZWxfcmFpc2VkXT1cImxhYmVsUmFpc2VkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0ZXh0cygpPy5jdmNUZXh0IH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0LWljb25zXCI+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNvbnRlbnRcIlxuICAgICAgICBjbGFzcz1cInQtaWNvbi1vdXRsZXRcIlxuICAgID5cbiAgICAgICAgPGltZ1xuICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnQgYXMgc3JjXCJcbiAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2ljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNhcmRcIlxuICAgICAgICAgICAgW3NyY109XCJzcmMgfCB0dWlJY29uXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8dHVpLWljb25cbiAgICAgICAgKm5nSWY9XCJoYXNDbGVhbmVyKClcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2NsZWFuZXJcIlxuICAgICAgICB0dWlBcHBlYXJhbmNlPVwiaWNvblwiXG4gICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgW2ljb25dPVwiaWNvbnMuY2xvc2VcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gICAgLz5cbiAgICA8dHVpLWljb25cbiAgICAgICAgKm5nSWY9XCJkcm9wZG93bi5jb250ZW50XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwX19kcm9wZG93blwiXG4gICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgdHVpQ2hldnJvblxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIC8+XG48L2Rpdj5cbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXAvaW5wdXQtY2FyZC1ncm91cC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFckMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEdBQ2xCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekUsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVB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bmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7RWxlbWVudFJlZiwgU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hc2tpdG9EaXJlY3RpdmV9IGZyb20gJ0BtYXNraXRvL2FuZ3VsYXInO1xuaW1wb3J0IHtXYVJlc2l6ZU9ic2VydmVyfSBmcm9tICdAbmctd2ViLWFwaXMvcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfQ0FSRCxcbiAgICBUVUlfTUFTS19DVkMsXG4gICAgVFVJX01BU0tfRVhQSVJFLFxufSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpRm9ybWF0Q2FyZFBpcGV9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9waXBlcyc7XG5pbXBvcnQge1RVSV9QQVlNRU5UX1NZU1RFTV9JQ09OU30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpUGF5bWVudFN5c3RlbX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3R5cGVzJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfTk9OX0RJR0lUX1JFR0VYUH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlBY3RpdmVab25lfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYWN0aXZlLXpvbmUnO1xuaW1wb3J0IHt0dWlIb3ZlcmVkLCBUdWlIb3ZlcmVkU2VydmljZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2hvdmVyZWQnO1xuaW1wb3J0IHtUdWlMZXR9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9sZXQnO1xuaW1wb3J0IHt0dWlUeXBlZEZyb21FdmVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1R1aU1hcHBlclBpcGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvcGlwZXMvbWFwcGVyJztcbmltcG9ydCB7dHVpSW5qZWN0SWR9IGZyb20gJ0B0YWlnYS11aS9jZGsvc2VydmljZXMnO1xuaW1wb3J0IHR5cGUge1R1aUJvb2xlYW5IYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudCwgdHVpSXNFbGVtZW50LCB0dWlJc0lucHV0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZCwgdHVpSXNOYXRpdmVGb2N1c2VkSW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHR5cGUge1R1aURhdGFMaXN0SG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHt0dWlBc0RhdGFMaXN0SG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlJY29uLCBUdWlJY29uUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9PUFRJT05TLFxuICAgIFR1aVdpdGhUZXh0ZmllbGREcm9wZG93bixcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUdWlBcHBlYXJhbmNlLFxuICAgIHR1aUFwcGVhcmFuY2UsXG4gICAgdHVpQXBwZWFyYW5jZUZvY3VzLFxuICAgIHR1aUFwcGVhcmFuY2VTdGF0ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9hcHBlYXJhbmNlJztcbmltcG9ydCB7XG4gICAgVHVpRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgdHVpRHJvcGRvd25PcGVuLFxuICAgIHR1aURyb3Bkb3duT3B0aW9uc1Byb3ZpZGVyLFxuICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZHJvcGRvd24nO1xuaW1wb3J0IHtUVUlfQ09NTU9OX0lDT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuaW1wb3J0IHtUdWlDaGV2cm9ufSBmcm9tICdAdGFpZ2EtdWkva2l0L2RpcmVjdGl2ZXMvY2hldnJvbic7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldCwgUG9seW1vcnBoZXVzVGVtcGxhdGV9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHttYXAsIG1lcmdlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUVUlfSU5QVVRfQ0FSRF9HUk9VUF9PUFRJT05TfSBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAub3B0aW9ucyc7XG5pbXBvcnQge1RVSV9JTlBVVF9DQVJEX0dST1VQX1RFWFRTfSBmcm9tICcuL2lucHV0LWNhcmQtZ3JvdXAucHJvdmlkZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBUdWlDYXJkIHtcbiAgICBjYXJkOiBzdHJpbmc7XG4gICAgY3ZjOiBzdHJpbmc7XG4gICAgZXhwaXJlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtY2FyZC1ncm91cCcsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWFza2l0b0RpcmVjdGl2ZSxcbiAgICAgICAgTmdJZixcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBQb2x5bW9ycGhldXNUZW1wbGF0ZSxcbiAgICAgICAgVHVpQWN0aXZlWm9uZSxcbiAgICAgICAgVHVpQXBwZWFyYW5jZSxcbiAgICAgICAgVHVpQ2hldnJvbixcbiAgICAgICAgVHVpRm9ybWF0Q2FyZFBpcGUsXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aUljb25QaXBlLFxuICAgICAgICBUdWlMZXQsXG4gICAgICAgIFR1aU1hcHBlclBpcGUsXG4gICAgICAgIFdhUmVzaXplT2JzZXJ2ZXIsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtY2FyZC1ncm91cC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jYXJkLWdyb3VwLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNEYXRhTGlzdEhvc3QoVHVpSW5wdXRDYXJkR3JvdXApLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDYXJkR3JvdXApLFxuICAgICAgICB0dWlEcm9wZG93bk9wdGlvbnNQcm92aWRlcih7bGltaXRXaWR0aDogJ2ZpeGVkJ30pLFxuICAgICAgICBUdWlIb3ZlcmVkU2VydmljZSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBUdWlXaXRoVGV4dGZpZWxkRHJvcGRvd24sXG4gICAgICAgIFR1aVdpdGhEcm9wZG93bk9wZW4sXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdkYXRhLXNpemUnOiAnbCcsXG4gICAgICAgICdbYXR0ci5kYXRhLW1vZGVdJzogJ21vZGUoKScsXG4gICAgICAgICcobW91c2Vkb3duKSc6ICdvbk1vdXNlRG93bigkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENhcmRHcm91cFxuICAgIGV4dGVuZHMgVHVpQ29udHJvbDxUdWlDYXJkIHwgbnVsbD5cbiAgICBpbXBsZW1lbnRzIFR1aURhdGFMaXN0SG9zdDxQYXJ0aWFsPFR1aUNhcmQ+Plxue1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Q2FyZCcpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dENhcmQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFeHBpcmUnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRFeHBpcmU/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRDVkMnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRDVkM/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSBleHBpcmVQcmVmaWxsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnRTeXN0ZW1zID0gaW5qZWN0KFRVSV9QQVlNRU5UX1NZU1RFTV9JQ09OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9DQVJEX0dST1VQX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3ZlciA9IHR1aUhvdmVyZWQoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWRJbiA9IHRvU2lnbmFsKFxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIHR1aVR5cGVkRnJvbUV2ZW50KHRoaXMuZWwsICdmb2N1c2luJyksXG4gICAgICAgICAgICB0dWlUeXBlZEZyb21FdmVudCh0aGlzLmVsLCAnZm9jdXNvdXQnKSxcbiAgICAgICAgKS5waXBlKG1hcCgoKSA9PiB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLmVsKSkpLFxuICAgICAgICB7aW5pdGlhbFZhbHVlOiBmYWxzZX0sXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBleGFtcGxlVGV4dENWQyA9IHRoaXMub3B0aW9ucy5leGFtcGxlVGV4dENWQztcbiAgICBwcm90ZWN0ZWQgY3ZjSGlkZGVuID0gdGhpcy5vcHRpb25zLmN2Y0hpZGRlbjtcbiAgICBwcm90ZWN0ZWQgbWFza0NWQyA9IFRVSV9NQVNLX0NWQygzKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24gPSBpbmplY3QoVHVpRHJvcGRvd25EaXJlY3RpdmUpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtYXNrQ2FyZCA9IFRVSV9NQVNLX0NBUkQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG1hc2tFeHBpcmUgPSBUVUlfTUFTS19FWFBJUkU7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zID0gaW5qZWN0KFRVSV9DT01NT05fSUNPTlMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyA9IHRvU2lnbmFsKGluamVjdChUVUlfSU5QVVRfQ0FSRF9HUk9VUF9URVhUUykpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcGVuID0gdHVpRHJvcGRvd25PcGVuKCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwZWFyYW5jZSA9IHR1aUFwcGVhcmFuY2UoXG4gICAgICAgIGluamVjdChUVUlfVEVYVEZJRUxEX09QVElPTlMpLmFwcGVhcmFuY2UsXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzdGF0ZTogU2lnbmFsPHVua25vd24+ID0gdHVpQXBwZWFyYW5jZVN0YXRlKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgICAgICAgY29tcHV0ZWQoKCkgPT4gKHRoaXMuZGlzYWJsZWQoKSA/ICdkaXNhYmxlZCcgOiB0aGlzLmhvdmVyKCkgPyAnaG92ZXInIDogbnVsbCkpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9jdXMgPSB0dWlBcHBlYXJhbmNlRm9jdXMoXG4gICAgICAgIGNvbXB1dGVkKCgpID0+IHRoaXMub3BlbigpIHx8IHRoaXMuZm9jdXNlZEluKCkpLFxuICAgICk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWxSYWlzZWQgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gKHRoaXMuZm9jdXMoKSAmJiAhdGhpcy5yZWFkT25seSgpKSB8fCAhIXRoaXMudmFsdWUoKT8uY2FyZCxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0NsZWFuZXIgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT4gISF0aGlzLnZhbHVlKCk/LmNhcmQgJiYgdGhpcy5pbnRlcmFjdGl2ZSgpLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleGFtcGxlVGV4dCA9IHRoaXMub3B0aW9ucy5leGFtcGxlVGV4dDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhcmRWYWxpZGF0b3I6IFR1aUJvb2xlYW5IYW5kbGVyPHN0cmluZz4gPSB0aGlzLm9wdGlvbnMuY2FyZFZhbGlkYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IFBvbHltb3JwaGV1c0NvbnRlbnQgPSB0aGlzLm9wdGlvbnMuaWNvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gdHVpSW5qZWN0SWQoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZSA9IHRoaXMub3B0aW9ucy5hdXRvY29tcGxldGU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmluQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGNvZGVMZW5ndGgobGVuZ3RoOiAzIHwgNCkge1xuICAgICAgICB0aGlzLmV4YW1wbGVUZXh0Q1ZDID0gJzAnLnJlcGVhdChsZW5ndGgpO1xuICAgICAgICB0aGlzLm1hc2tDVkMgPSBUVUlfTUFTS19DVkMobGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJpbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZC5sZW5ndGggPCA2ID8gbnVsbCA6IHRoaXMuY2FyZC5zbGljZSgwLCA2KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVHVpQ2FyZCB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2Jpbn0gPSB0aGlzO1xuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuICAgICAgICB0aGlzLmV4cGlyZVByZWZpbGxlZCA9ICEhdGhpcy5leHBpcmUgJiYgdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIC8qKiBQdWJsaWMgQVBJIGZvciBtYW51YWwgZm9jdXMgbWFuYWdlbWVudCAqL1xuICAgIHB1YmxpYyBmb2N1c0NhcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRDYXJkPy5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzRXhwaXJlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0RXhwaXJlPy5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzQ1ZDKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZU9wdGlvbihvcHRpb246IFBhcnRpYWw8VHVpQ2FyZD4gfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjYXJkID0gJycsIGV4cGlyZSA9ICcnLCBjdmMgPSAnJ30gPSBvcHRpb24gfHwge307XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICAoIWNhcmQgJiYgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAoIWV4cGlyZSAmJiB0aGlzLmlucHV0RXhwaXJlPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgdGhpcy5pbnB1dENWQz8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHtjYXJkLCBleHBpcmUsIGN2Y30pO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuICAgICAgICB0aGlzLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSAhIWV4cGlyZTtcblxuICAgICAgICBlbGVtZW50Py5mb2N1cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leHBpcmVQcmVmaWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgdGhpcy5mb2N1c0NhcmQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRlbnQoKTogUG9seW1vcnBoZXVzQ29udGVudCB7XG4gICAgICAgIGNvbnN0IHN5c3RlbSA9IHRoaXMuZ2V0UGF5bWVudFN5c3RlbSh0aGlzLmNhcmQpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmljb24gfHwgKHN5c3RlbSAmJiB0aGlzLnBheW1lbnRTeXN0ZW1zW3N5c3RlbV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpPy5jYXJkIHx8ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZXhwaXJlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlKCk/LmV4cGlyZSB8fCAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGN2YygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpPy5jdmMgfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYXJkQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzYWJsZSh0aGlzLmNhcmQpICYmXG4gICAgICAgICAgICAhdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMuaW5wdXRDYXJkPy5uYXRpdmVFbGVtZW50KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgdGFpbExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkLmxlbmd0aCAlIDQgPiAwID8gNSA6IDQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYXJkUHJlZmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmNhcmQubWF0Y2goVFVJX05PTl9ESUdJVF9SRUdFWFApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY3ZjUHJlZmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN2Yy5tYXRjaChUVUlfTk9OX0RJR0lUX1JFR0VYUCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjYXJkRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuY2FyZFByZWZpbGxlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGV4cGlyZUZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2FibGUodGhpcy5jYXJkKSAmJiAhdGhpcy5leHBpcmVQcmVmaWxsZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjdmNGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBtYXNrZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZFByZWZpbGxlZCA/IGAqJHt0aGlzLmNhcmQuc2xpY2UoLTQpfWAgOiAnKic7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2FyZENoYW5nZShjYXJkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBiaW59ID0gdGhpcztcbiAgICAgICAgY29uc3QgcGFyc2VkID0gY2FyZC5zcGxpdCgnICcpLmpvaW4oJycpO1xuXG4gICAgICAgIGlmICh2YWx1ZSgpPy5jYXJkID09PSBwYXJzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcGVydHkocGFyc2VkLCAnY2FyZCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmNhcmRWYWxpZGF0b3IodGhpcy5jYXJkKSAmJiAhdmFsdWUoKT8uZXhwaXJlICYmIHRoaXMuaW5wdXRFeHBpcmUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFeHBpcmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkV4cGlyZUNoYW5nZShleHBpcmU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByb3BlcnR5KGV4cGlyZSwgJ2V4cGlyZScpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIE51bWJlcih0aGlzLmlucHV0RXhwaXJlPy5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0KSA9PT0gNSAvLyBNTS9ZWVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNDVkMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNWQ0NoYW5nZShjdmM6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVByb3BlcnR5KGN2YywgJ2N2YycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFuc2Zvcm0oe29mZnNldFdpZHRofTogSFRNTFNwYW5FbGVtZW50KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZENvbGxhcHNlZCA/IGB0cmFuc2xhdGUzZCgke29mZnNldFdpZHRofXB4LCAwLCAwKWAgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzRWxlbWVudChldmVudC50YXJnZXQpICYmIHR1aUlzSW5wdXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnNldCghdGhpcy5vcGVuKCkpO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBpc0ZvY3VzYWJsZShjYXJkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FyZFZhbGlkYXRvcihjYXJkKSB8fCB0aGlzLmNhcmRQcmVmaWxsZWQ7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGdldFBheW1lbnRTeXN0ZW0odmFsdWU6IHN0cmluZyk6IFR1aVBheW1lbnRTeXN0ZW0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5wYXltZW50U3lzdGVtSGFuZGxlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVCaW4ob2xkQmluOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcblxuICAgICAgICBpZiAoYmluICE9PSBvbGRCaW4gJiYgIXRoaXMuY2FyZFByZWZpbGxlZCkge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChiaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nLCBwcm9wTmFtZTogJ2NhcmQnIHwgJ2N2YycgfCAnZXhwaXJlJyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7Y2FyZCA9ICcnLCBleHBpcmUgPSAnJywgY3ZjID0gJyd9ID0gdGhpcy52YWx1ZSgpIHx8IHt9O1xuICAgICAgICBjb25zdCBuZXdWYWx1ZTogVHVpQ2FyZCA9IHtjYXJkLCBleHBpcmUsIGN2Y307XG5cbiAgICAgICAgbmV3VmFsdWVbcHJvcE5hbWVdID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZS5leHBpcmUgfHwgbmV3VmFsdWUuY3ZjIHx8IG5ld1ZhbHVlLmNhcmQgPyBuZXdWYWx1ZSA6IG51bGwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgICAgICAodGhpcy5jYXJkRm9jdXNhYmxlICYmIHRoaXMuaW5wdXRDYXJkPy5uYXRpdmVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKHRoaXMuZXhwaXJlRm9jdXNhYmxlICYmIHRoaXMuaW5wdXRFeHBpcmU/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgIDxsYWJlbFxuICAgICAgICAqdHVpTGV0PVwidmFsdWUoKT8uY2FyZCB8IHR1aUZvcm1hdENhcmQ6IGNhcmRQcmVmaWxsZWQgYXMgZm9ybWF0dGVkQ2FyZFwiXG4gICAgICAgIChjbGljay5zaWxlbnQucHJldmVudCk9XCIoMClcIlxuICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRDYXJkXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2NhcmRcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXQgdC1pbnB1dF9jYXJkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCIhY2FyZFByZWZpbGxlZCAmJiAhKHRoaXMuY2FyZCB8IHR1aU1hcHBlcjogY2FyZFZhbGlkYXRvcilcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2NhcmQnXCJcbiAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8gJ2NjLW51bWJlcicgOiAnb2ZmJ1wiXG4gICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9maWxsZWRdPVwiY2FyZC5sZW5ndGhcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaW5wdXRfaW5lcnRdPVwiY2FyZFByZWZpbGxlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbbWFza2l0b109XCJtYXNrQ2FyZFwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJmb3JtYXR0ZWRDYXJkXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNhcmRQcmVmaWxsZWQgPyAnJyA6IGV4YW1wbGVUZXh0XCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpXCJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJjYXJkRm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jb2xsYXBzZWRcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1iZWZvcmVdPVwibWFza2VkXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWNvbGxhcHNlZF9lbmFibGUtbWFza109XCJjYXJkQ29sbGFwc2VkXCJcbiAgICAgICAgICAgICh3YVJlc2l6ZU9ic2VydmVyKT1cIigwKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgI2dob3N0XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWdob3N0XCJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiZm9ybWF0dGVkQ2FyZC5zbGljZSgtdGFpbExlbmd0aClcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNvbGxhcHNlZC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ0cmFuc2Zvcm0oZ2hvc3QpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdHRlZENhcmQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWxhYmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWxhYmVsX3JhaXNlZF09XCJsYWJlbFJhaXNlZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdGV4dHMoKT8uY2FyZE51bWJlclRleHQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9leHBpcmVcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfYWN0aXZlXT1cImNhcmRDb2xsYXBzZWRcIlxuPlxuICAgIDxsYWJlbCAoY2xpY2suc2lsZW50LnByZXZlbnQpPVwiKDApXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0RXhwaXJlXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2V4cGlyZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjVcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwMC8wMFwiXG4gICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXRcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQgKyAnX2V4cGlyZSdcIlxuICAgICAgICAgICAgW2F0dHIubmFtZV09XCJhdXRvY29tcGxldGUgPyAnY2NleHBpcnl5ZWFyJyA6IG51bGxcIlxuICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPyAnY2MtZXhwJyA6ICdvZmYnXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWlucHV0X2luZXJ0XT1cIiFleHBpcmVGb2N1c2FibGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgW21hc2tpdG9dPVwibWFza0V4cGlyZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJleHBpcmVcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwiZXhwaXJlRm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FeHBpcmVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1sYWJlbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1sYWJlbF9yYWlzZWRdPVwibGFiZWxSYWlzZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHRleHRzKCk/LmV4cGlyeVRleHQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PlxuPGRpdlxuICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9jdmNcIlxuICAgIFtjbGFzcy50LXdyYXBwZXJfYWN0aXZlXT1cImNhcmRDb2xsYXBzZWRcIlxuPlxuICAgIDxsYWJlbCAoY2xpY2suc2lsZW50LnByZXZlbnQpPVwiKDApXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0Q1ZDXG4gICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2N2Y1wiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dFwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJpZCArICdfY3ZjJ1wiXG4gICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZSA/ICdjYy1jc2MnIDogJ29mZidcIlxuICAgICAgICAgICAgW2NsYXNzLnQtaW5wdXRfY3ZjX2hpZGRlbl09XCJjdmNIaWRkZW5cIlxuICAgICAgICAgICAgW2NsYXNzLnQtaW5wdXRfcHJlZmlsbGVkXT1cImN2Y1ByZWZpbGxlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbbWFza2l0b109XCJtYXNrQ1ZDXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImN2Y1wiXG4gICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjdmNQcmVmaWxsZWQgPyAn4oCi4oCi4oCiJyA6IGV4YW1wbGVUZXh0Q1ZDXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seSgpIHx8IGN2Y1ByZWZpbGxlZFwiXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwiY3ZjRm9jdXNhYmxlID8gMCA6IC0xXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DVkNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidC1sYWJlbFwiXG4gICAgICAgICAgICBbY2xhc3MudC1sYWJlbF9yYWlzZWRdPVwibGFiZWxSYWlzZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHRleHRzKCk/LmN2Y1RleHQgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInQtaWNvbnNcIj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY29udGVudFwiXG4gICAgICAgIGNsYXNzPVwidC1pY29uLW91dGxldFwiXG4gICAgPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiY29udGVudCBhcyBzcmNcIlxuICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtY2FyZC1ncm91cF9faWNvblwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY2FyZFwiXG4gICAgICAgICAgICBbc3JjXT1cInNyYyB8IHR1aUljb25cIlxuICAgICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDx0dWktaWNvblxuICAgICAgICAqbmdJZj1cImhhc0NsZWFuZXIoKVwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtY2FyZC1ncm91cF9fY2xlYW5lclwiXG4gICAgICAgIHR1aUFwcGVhcmFuY2U9XCJpY29uXCJcbiAgICAgICAgY2xhc3M9XCJ0LWljb25cIlxuICAgICAgICBbaWNvbl09XCJpY29ucy5jbG9zZVwiXG4gICAgICAgIChjbGljayk9XCJjbGVhcigpXCJcbiAgICAvPlxuICAgIDx0dWktaWNvblxuICAgICAgICAqbmdJZj1cImRyb3Bkb3duLmNvbnRlbnRcIlxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBfX2Ryb3Bkb3duXCJcbiAgICAgICAgdHVpQXBwZWFyYW5jZT1cImljb25cIlxuICAgICAgICB0dWlDaGV2cm9uXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgLz5cbjwvZGl2PlxuIl19
@@ -13,12 +13,12 @@ class TuiThumbnailCard {
13
13
  this.monoHandler = this.options.monoHandler;
14
14
  }
15
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThumbnailCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiThumbnailCard, isStandalone: true, selector: "tui-thumbnail-card", inputs: { size: "size", paymentSystem: "paymentSystem", iconStart: "iconStart", iconEnd: "iconEnd", monoHandler: "monoHandler" }, host: { properties: { "attr.data-size": "size" } }, ngImport: i0, template: "<div class=\"t-front\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-left\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconStart\"\n />\n </div>\n <div\n *ngIf=\"iconEnd\"\n class=\"t-right\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconEnd\"\n />\n </div>\n <div class=\"t-left t-icon\">\n <ng-content select=\"img\" />\n </div>\n <ng-content />\n <ng-container *ngIf=\"paymentSystem\">\n <tui-icon\n *ngIf=\"monoHandler(paymentSystem); else colored\"\n class=\"t-logo\"\n [icon]=\"options.icons[paymentSystem]\"\n />\n <ng-template #colored>\n <img\n class=\"t-logo\"\n [alt]=\"paymentSystem\"\n [src]=\"options.icons[paymentSystem] | tuiIcon\"\n />\n </ng-template>\n </ng-container>\n</div>\n<div class=\"t-back\"></div>\n", styles: [":host{position:relative;display:inline-flex;flex-shrink:0;background:#000;color:#fff;transform-style:preserve-3d;overflow:hidden}:host:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\"}:host[data-size=s]{inline-size:2.5rem;block-size:1.625rem;border-radius:.25rem;font-size:0}:host[data-size=s] .t-left{transform:translate(.125rem,.125rem) scale(.625)}:host[data-size=s] .t-right{display:none}:host[data-size=s] .t-logo{bottom:-.375rem;transform:scale(.55)}:host[data-size=m]{inline-size:3rem;block-size:2rem;border-radius:.3125rem;text-indent:.1875rem;font:normal .5625rem/.875rem var(--tui-font-text)}:host[data-size=m] .t-left{transform:translate(.1875rem,.25rem) scale(.75)}:host[data-size=m] .t-right{transform:translate(-.1875rem,.1875rem) scale(.875)}:host[data-size=m] .t-right .t-icon{transform:scale(.714)}:host[data-size=m] .t-logo{bottom:-.3125rem;transform:scale(.55)}:host[data-size=l]{inline-size:3.375rem;block-size:2.25rem;border-radius:.375rem;text-indent:.3125rem;font:normal .625rem/1.125rem var(--tui-font-text)}:host[data-size=l] .t-left{transform:translate(.1875rem,.1875rem)}:host[data-size=l] .t-right{transform:translate(-.1875rem,.1875rem)}:host[data-size=l] .t-logo{bottom:-.1875rem;transform:scale(.75)}.t-left,.t-right{position:absolute;top:0;display:flex}.t-left{left:0;transform-origin:top left}.t-right{right:0;transform-origin:top right}.t-right:before{content:\"\";position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-radius:100%;background:currentColor;opacity:.35}.t-right .t-icon{color:#fff;transform:scale(.625)}.t-logo{position:absolute;right:.1875rem;inline-size:1.5rem;block-size:1.5rem;transform-origin:right}.t-icon{inline-size:1rem;block-size:1rem}.t-front{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;align-items:flex-end;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:inset 0 0 0 1px var(--tui-background-neutral-1);border-radius:inherit}.t-back{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px);background:#b0b0b0;border-radius:inherit}.t-back:after{position:absolute;left:0;right:0;content:\"\";top:20%;bottom:60%;background:#959595}\n"], dependencies: [{ kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiThumbnailCard, isStandalone: true, selector: "tui-thumbnail-card", inputs: { size: "size", paymentSystem: "paymentSystem", iconStart: "iconStart", iconEnd: "iconEnd", monoHandler: "monoHandler" }, host: { properties: { "attr.data-size": "size" } }, ngImport: i0, template: "<div class=\"t-front\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-left\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconStart\"\n />\n </div>\n <div\n *ngIf=\"iconEnd\"\n class=\"t-right\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconEnd\"\n />\n </div>\n <div class=\"t-left t-icon\">\n <ng-content select=\"img\" />\n </div>\n <ng-content />\n <ng-container *ngIf=\"paymentSystem\">\n <tui-icon\n *ngIf=\"monoHandler(paymentSystem); else colored\"\n class=\"t-logo\"\n [icon]=\"options.icons[paymentSystem]\"\n />\n <ng-template #colored>\n <img\n class=\"t-logo\"\n [alt]=\"paymentSystem\"\n [src]=\"options.icons[paymentSystem] | tuiIcon\"\n />\n </ng-template>\n </ng-container>\n</div>\n<div class=\"t-back\"></div>\n", styles: [":host{position:relative;display:inline-flex;flex-shrink:0;background:#000;color:#fff;transform-style:preserve-3d;overflow:hidden}:host:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\"}:host[data-size=s]{inline-size:2.5rem;block-size:1.625rem;border-radius:.25rem;font-size:0}:host[data-size=s] .t-left{transform:translate(.125rem,.125rem) scale(.625)}:host[data-size=s] .t-right{display:none}:host[data-size=s] .t-logo{bottom:-.375rem;transform:scale(.55)}:host[data-size=m]{inline-size:3rem;block-size:2rem;border-radius:.3125rem;text-indent:.1875rem;font:normal .5625rem/.875rem var(--tui-font-text)}:host[data-size=m] .t-left{transform:translate(.1875rem,.25rem) scale(.75)}:host[data-size=m] .t-right{transform:translate(-.1875rem,.1875rem) scale(.875)}:host[data-size=m] .t-right .t-icon{transform:scale(.714)}:host[data-size=m] .t-logo{bottom:-.3125rem;transform:scale(.55)}:host[data-size=l]{inline-size:3.375rem;block-size:2.25rem;border-radius:.375rem;text-indent:.3125rem;font:normal .625rem/1.125rem var(--tui-font-text)}:host[data-size=l] .t-left{transform:translate(.1875rem,.1875rem)}:host[data-size=l] .t-right{transform:translate(-.1875rem,.1875rem)}:host[data-size=l] .t-logo{bottom:-.1875rem;transform:scale(.75)}.t-left,.t-right{position:absolute;top:0;display:flex}.t-left{left:0;transform-origin:top left}.t-right{right:0;transform-origin:top right}.t-right:before{content:\"\";position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-radius:100%;background:currentColor;opacity:.35}.t-right .t-icon{color:#fff;transform:scale(.625)}.t-logo{position:absolute;right:.1875rem;inline-size:1.5rem;block-size:1.5rem;transform-origin:right}.t-icon{inline-size:1rem;block-size:1rem}.t-front{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;align-items:flex-end;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:inset 0 0 0 1px var(--tui-background-neutral-1);border-radius:inherit}.t-back{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px);background:#b0b0b0;border-radius:inherit}.t-back:after{position:absolute;left:0;right:0;content:\"\";top:20%;bottom:60%;background:#959595}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17
17
  }
18
18
  export { TuiThumbnailCard };
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThumbnailCard, decorators: [{
20
20
  type: Component,
21
- args: [{ standalone: true, selector: 'tui-thumbnail-card', imports: [TuiIcon, NgIf, TuiIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
21
+ args: [{ standalone: true, selector: 'tui-thumbnail-card', imports: [NgIf, TuiIcon, TuiIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
22
22
  '[attr.data-size]': 'size',
23
23
  }, template: "<div class=\"t-front\">\n <div\n *ngIf=\"iconStart\"\n class=\"t-left\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconStart\"\n />\n </div>\n <div\n *ngIf=\"iconEnd\"\n class=\"t-right\"\n >\n <tui-icon\n class=\"t-icon\"\n [icon]=\"iconEnd\"\n />\n </div>\n <div class=\"t-left t-icon\">\n <ng-content select=\"img\" />\n </div>\n <ng-content />\n <ng-container *ngIf=\"paymentSystem\">\n <tui-icon\n *ngIf=\"monoHandler(paymentSystem); else colored\"\n class=\"t-logo\"\n [icon]=\"options.icons[paymentSystem]\"\n />\n <ng-template #colored>\n <img\n class=\"t-logo\"\n [alt]=\"paymentSystem\"\n [src]=\"options.icons[paymentSystem] | tuiIcon\"\n />\n </ng-template>\n </ng-container>\n</div>\n<div class=\"t-back\"></div>\n", styles: [":host{position:relative;display:inline-flex;flex-shrink:0;background:#000;color:#fff;transform-style:preserve-3d;overflow:hidden}:host:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\"}:host[data-size=s]{inline-size:2.5rem;block-size:1.625rem;border-radius:.25rem;font-size:0}:host[data-size=s] .t-left{transform:translate(.125rem,.125rem) scale(.625)}:host[data-size=s] .t-right{display:none}:host[data-size=s] .t-logo{bottom:-.375rem;transform:scale(.55)}:host[data-size=m]{inline-size:3rem;block-size:2rem;border-radius:.3125rem;text-indent:.1875rem;font:normal .5625rem/.875rem var(--tui-font-text)}:host[data-size=m] .t-left{transform:translate(.1875rem,.25rem) scale(.75)}:host[data-size=m] .t-right{transform:translate(-.1875rem,.1875rem) scale(.875)}:host[data-size=m] .t-right .t-icon{transform:scale(.714)}:host[data-size=m] .t-logo{bottom:-.3125rem;transform:scale(.55)}:host[data-size=l]{inline-size:3.375rem;block-size:2.25rem;border-radius:.375rem;text-indent:.3125rem;font:normal .625rem/1.125rem var(--tui-font-text)}:host[data-size=l] .t-left{transform:translate(.1875rem,.1875rem)}:host[data-size=l] .t-right{transform:translate(-.1875rem,.1875rem)}:host[data-size=l] .t-logo{bottom:-.1875rem;transform:scale(.75)}.t-left,.t-right{position:absolute;top:0;display:flex}.t-left{left:0;transform-origin:top left}.t-right{right:0;transform-origin:top right}.t-right:before{content:\"\";position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-radius:100%;background:currentColor;opacity:.35}.t-right .t-icon{color:#fff;transform:scale(.625)}.t-logo{position:absolute;right:.1875rem;inline-size:1.5rem;block-size:1.5rem;transform-origin:right}.t-icon{inline-size:1rem;block-size:1rem}.t-front{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;align-items:flex-end;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:inset 0 0 0 1px var(--tui-background-neutral-1);border-radius:inherit}.t-back{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px);background:#b0b0b0;border-radius:inherit}.t-back:after{position:absolute;left:0;right:0;content:\"\";top:20%;bottom:60%;background:#959595}\n"] }]
24
24
  }], propDecorators: { size: [{
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
32
32
  }], monoHandler: [{
33
33
  type: Input
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy90aHVtYm5haWwtY2FyZC90aHVtYm5haWwtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL3RodW1ibmFpbC1jYXJkL3RodW1ibmFpbC1jYXJkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBR3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUVwRSxNQVdhLGdCQUFnQjtJQVg3QjtRQVl1QixZQUFPLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHekQsU0FBSSxHQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUc5QyxrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFHOUMsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUdmLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHYixnQkFBVyxHQUF3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUN0RjsrR0FqQlksZ0JBQWdCO21HQUFoQixnQkFBZ0Isb1FDcEI3Qix3K0JBdUNBLGswRUQzQmMsT0FBTyxxRkFBRSxJQUFJLHdGQUFFLFdBQVc7O1NBUTNCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQVg1QixTQUFTO2lDQUNNLElBQUksWUFDTixvQkFBb0IsV0FDckIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixrQkFBa0IsRUFBRSxNQUFNO3FCQUM3Qjs4QkFNTSxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aVBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtUdWlJY29uLCBUdWlJY29uUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfVEhVTUJOQUlMX0NBUkRfT1BUSU9OU30gZnJvbSAnLi90aHVtYm5haWwtY2FyZC5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS10aHVtYm5haWwtY2FyZCcsXG4gICAgaW1wb3J0czogW1R1aUljb24sIE5nSWYsIFR1aUljb25QaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLWNhcmQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGh1bWJuYWlsLWNhcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGh1bWJuYWlsQ2FyZCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1RIVU1CTkFJTF9DQVJEX09QVElPTlMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUyA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGF5bWVudFN5c3RlbTogVHVpUGF5bWVudFN5c3RlbSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvblN0YXJ0ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uRW5kID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb25vSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpUGF5bWVudFN5c3RlbT4gPSB0aGlzLm9wdGlvbnMubW9ub0hhbmRsZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwidC1mcm9udFwiPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpY29uU3RhcnRcIlxuICAgICAgICBjbGFzcz1cInQtbGVmdFwiXG4gICAgPlxuICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25TdGFydFwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImljb25FbmRcIlxuICAgICAgICBjbGFzcz1cInQtcmlnaHRcIlxuICAgID5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJpY29uRW5kXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1sZWZ0IHQtaWNvblwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbWdcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBheW1lbnRTeXN0ZW1cIj5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAqbmdJZj1cIm1vbm9IYW5kbGVyKHBheW1lbnRTeXN0ZW0pOyBlbHNlIGNvbG9yZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWxvZ29cIlxuICAgICAgICAgICAgW2ljb25dPVwib3B0aW9ucy5pY29uc1twYXltZW50U3lzdGVtXVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sb3JlZD5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtbG9nb1wiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJwYXltZW50U3lzdGVtXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbnMuaWNvbnNbcGF5bWVudFN5c3RlbV0gfCB0dWlJY29uXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0LWJhY2tcIj48L2Rpdj5cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tY29tbWVyY2UvY29tcG9uZW50cy90aHVtYm5haWwtY2FyZC90aHVtYm5haWwtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL3RodW1ibmFpbC1jYXJkL3RodW1ibmFpbC1jYXJkLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBR3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUVwRSxNQVdhLGdCQUFnQjtJQVg3QjtRQVl1QixZQUFPLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFHekQsU0FBSSxHQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUc5QyxrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFHOUMsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUdmLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHYixnQkFBVyxHQUF3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztLQUN0RjsrR0FqQlksZ0JBQWdCO21HQUFoQixnQkFBZ0Isb1FDcEI3Qix3K0JBdUNBLGswRUQzQmMsSUFBSSw2RkFBRSxPQUFPLGdGQUFFLFdBQVc7O1NBUTNCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQVg1QixTQUFTO2lDQUNNLElBQUksWUFDTixvQkFBb0IsV0FDckIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixrQkFBa0IsRUFBRSxNQUFNO3FCQUM3Qjs4QkFNTSxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1R1aVBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90eXBlcyc7XG5pbXBvcnQgdHlwZSB7VHVpQm9vbGVhbkhhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHtUdWlJY29uLCBUdWlJY29uUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB0eXBlIHtUdWlTaXplTCwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfVEhVTUJOQUlMX0NBUkRfT1BUSU9OU30gZnJvbSAnLi90aHVtYm5haWwtY2FyZC5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS10aHVtYm5haWwtY2FyZCcsXG4gICAgaW1wb3J0czogW05nSWYsIFR1aUljb24sIFR1aUljb25QaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLWNhcmQudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGh1bWJuYWlsLWNhcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGh1bWJuYWlsQ2FyZCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX1RIVU1CTkFJTF9DQVJEX09QVElPTlMpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZUwgfCBUdWlTaXplUyA9IHRoaXMub3B0aW9ucy5zaXplO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGF5bWVudFN5c3RlbTogVHVpUGF5bWVudFN5c3RlbSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvblN0YXJ0ID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uRW5kID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb25vSGFuZGxlcjogVHVpQm9vbGVhbkhhbmRsZXI8VHVpUGF5bWVudFN5c3RlbT4gPSB0aGlzLm9wdGlvbnMubW9ub0hhbmRsZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwidC1mcm9udFwiPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpY29uU3RhcnRcIlxuICAgICAgICBjbGFzcz1cInQtbGVmdFwiXG4gICAgPlxuICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgIFtpY29uXT1cImljb25TdGFydFwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cImljb25FbmRcIlxuICAgICAgICBjbGFzcz1cInQtcmlnaHRcIlxuICAgID5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJpY29uRW5kXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1sZWZ0IHQtaWNvblwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbWdcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBheW1lbnRTeXN0ZW1cIj5cbiAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAqbmdJZj1cIm1vbm9IYW5kbGVyKHBheW1lbnRTeXN0ZW0pOyBlbHNlIGNvbG9yZWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWxvZ29cIlxuICAgICAgICAgICAgW2ljb25dPVwib3B0aW9ucy5pY29uc1twYXltZW50U3lzdGVtXVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29sb3JlZD5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtbG9nb1wiXG4gICAgICAgICAgICAgICAgW2FsdF09XCJwYXltZW50U3lzdGVtXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIm9wdGlvbnMuaWNvbnNbcGF5bWVudFN5c3RlbV0gfCB0dWlJY29uXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0LWJhY2tcIj48L2Rpdj5cbiJdfQ==