@carefirst/library 1.0.2 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
2
  import { checkTruthAttribute, validateStringValue } from '../../utils/attribute.util';
3
3
  import { IconsC } from '../../interfaces/icon.interface';
4
4
  import * as i0 from "@angular/core";
@@ -16,6 +16,12 @@ export class ButtonComponent {
16
16
  iconStart;
17
17
  iconEnd;
18
18
  loading;
19
+ get parentEvents() {
20
+ if (this.disabled) {
21
+ return 'none';
22
+ }
23
+ return 'auto';
24
+ }
19
25
  inputType = 'primary';
20
26
  inputFontSize = undefined;
21
27
  inputDisabled = false;
@@ -26,22 +32,23 @@ export class ButtonComponent {
26
32
  inputIconEnd = undefined;
27
33
  inputLoading = false;
28
34
  ngOnChanges(changes) {
29
- this.inputType = validateStringValue(changes, 'type', ['primary', 'secondary', 'tertiary']) || 'primary';
30
- this.inputFontSize = validateStringValue(changes, 'fontSize', ['small', 'large']);
31
- this.inputDisabled = checkTruthAttribute(changes, 'disabled');
32
- this.inputAlert = checkTruthAttribute(changes, 'alert');
33
- this.inputAction = checkTruthAttribute(changes, 'action');
34
- this.inputSnug = checkTruthAttribute(changes, 'snug');
35
- this.inputIconStart = validateStringValue(changes, 'iconStart', IconsC.slice());
36
- this.inputIconEnd = validateStringValue(changes, 'iconEnd', IconsC.slice());
37
- this.inputLoading = checkTruthAttribute(changes, 'loading');
35
+ this.inputType =
36
+ validateStringValue(changes, 'type', ['primary', 'secondary', 'tertiary'], this.inputType) || 'primary';
37
+ this.inputFontSize = validateStringValue(changes, 'fontSize', ['small', 'large'], this.inputFontSize);
38
+ this.inputDisabled = checkTruthAttribute(changes, 'disabled', this.inputDisabled);
39
+ this.inputAlert = checkTruthAttribute(changes, 'alert', this.inputAlert);
40
+ this.inputAction = checkTruthAttribute(changes, 'action', this.inputAction);
41
+ this.inputSnug = checkTruthAttribute(changes, 'snug', this.inputSnug);
42
+ this.inputIconStart = validateStringValue(changes, 'iconStart', IconsC.slice(), this.inputIconStart);
43
+ this.inputIconEnd = validateStringValue(changes, 'iconEnd', IconsC.slice(), this.inputIconEnd);
44
+ this.inputLoading = checkTruthAttribute(changes, 'loading', this.inputLoading);
38
45
  }
39
46
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", snug: "snug", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading" }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }, { kind: "directive", type: i4.ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: ["cfButtonLoader"] }] });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", snug: "snug", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading" }, host: { properties: { "style.pointer-events": "this.parentEvents" } }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "iconColor"] }, { kind: "directive", type: i4.ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: ["cfButtonLoader"] }] });
41
48
  }
42
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonComponent, decorators: [{
43
50
  type: Component,
44
- args: [{ selector: 'cf-btn', template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"] }]
51
+ args: [{ selector: 'cf-btn', template: "<ion-button\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug\n }\"\n [disabled]=\"inputDisabled\"\n *cfButtonLoader=\"inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p>\n <ng-content></ng-content>\n </p>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem}ion-button[class^=cf-button-]>p{width:-moz-fit-content;width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .7rem;--padding-bottom: .7rem;--padding-start: 2.1rem;--padding-end: 2.1rem}ion-button[class^=cf-button-].snug{width:-moz-fit-content;width:fit-content;min-height:-moz-fit-content;min-height:fit-content}ion-button[class^=cf-button-].text-large>p{font-size:1.6rem}ion-button[class^=cf-button-].text-small>p{font-size:1rem}.cf-button-primary{--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary p{color:var(--button-text-color)}.cf-button-primary[class*=disabled]{opacity:100%;--background: var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-text-color-alt2)}.cf-button-primary[class*=disabled] p{color:var(--button-text-color)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-secondary{--background: transparent;border:.2rem solid var(--cf-app-color-primary);--button-text-color: var(--cf-app-color-primary)}.cf-button-secondary p{color:var(--button-text-color)}.cf-button-secondary[class*=disabled]{opacity:100%;border:.2rem solid var(--cf-app-system-color-disabled);--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled] p{color:var(--button-text-color)}.cf-button-secondary.alert:not([class*=disabled]){border:.2rem solid var(--cf-app-system-color-error);--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled]) p{color:var(--button-text-color)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--cf-app-color-primary)}.cf-button-tertiary p{color:var(--button-text-color)}.cf-button-tertiary[class*=disabled]{opacity:100%;--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary[class*=disabled] p{color:var(--button-text-color)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.alert:not([class*=disabled]) p{color:var(--button-text-color)}\n"] }]
45
52
  }], propDecorators: { type: [{
46
53
  type: Input
47
54
  }], disabled: [{
@@ -60,5 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
67
  type: Input
61
68
  }], loading: [{
62
69
  type: Input
70
+ }], parentEvents: [{
71
+ type: HostBinding,
72
+ args: ['style.pointer-events']
63
73
  }] } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsTUFBTSxFQUFlLE1BQU0saUNBQWlDLENBQUM7Ozs7OztBQU90RSxNQUFNLE9BQU8sZUFBZTtJQUNqQixJQUFJLEdBQXlDLFNBQVMsQ0FBQztJQUN2RCxRQUFRLENBQWdDO0lBQ3hDLEtBQUssQ0FBZ0M7SUFDckMsTUFBTSxDQUFnQztJQUN0QyxJQUFJLENBQWdDO0lBQ3BDLFFBQVEsQ0FBcUI7SUFDN0IsU0FBUyxDQUFzQjtJQUMvQixPQUFPLENBQXNCO0lBQzdCLE9BQU8sQ0FBZ0M7SUFHaEQsU0FBUyxHQUFxQixTQUFTLENBQUM7SUFDeEMsYUFBYSxHQUFxQyxTQUFTLENBQUM7SUFDNUQsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixjQUFjLEdBQXNDLFNBQVMsQ0FBQztJQUM5RCxZQUFZLEdBQW9DLFNBQVMsQ0FBQztJQUMxRCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBT3JCLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUF1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUUvSSxJQUFJLENBQUMsYUFBYSxHQUFHLG1CQUFtQixDQUFvQixPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFckcsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBUyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQVMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUVwRixJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO3dHQTlDVSxlQUFlOzRGQUFmLGVBQWUseVBDbkI1Qixtd0JBbUJBOzs0RkRBYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFFBQVE7OEJBS1QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IC0gQnV0dG9uXG4gKlxuICogQGZpbGUgICAgICAgICAgYnV0dG9uLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBCdXR0b25cbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyMyAtIDExIC0gMDdcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1idG4gdHlwZT1cIidwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5J1wiIGZvbnRTaXplPVwiJ3NtYWxsJyB8ICdsYXJnZSdcIiAlZGlzYWJsZWQlICVhbGVydCUgJWFjdGlvbiUgJXNudWclPlRFWFQ8L2NmLWJ0bj5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCB0eXBlIFNpbXBsZUNoYW5nZXMsIHR5cGUgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IHsgSWNvbnNDLCB0eXBlIEljb25zVCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaWNvbi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHR5cGU6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JyA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhbGVydD86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFjdGlvbj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHNudWc/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmb250U2l6ZT86ICdzbWFsbCcgfCAnbGFyZ2UnO1xuICBASW5wdXQoKSBpY29uU3RhcnQ/OiBJY29uc1QgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGljb25FbmQ/OiBJY29uc1QgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGxvYWRpbmc/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dFR5cGU6IHR5cGVvZiB0aGlzLnR5cGUgPSAncHJpbWFyeSc7XG4gIGlucHV0Rm9udFNpemU6IHR5cGVvZiB0aGlzLmZvbnRTaXplIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dERpc2FibGVkID0gZmFsc2U7XG4gIGlucHV0QWxlcnQgPSBmYWxzZTtcbiAgaW5wdXRBY3Rpb24gPSBmYWxzZTtcbiAgaW5wdXRTbnVnID0gZmFsc2U7XG4gIGlucHV0SWNvblN0YXJ0OiB0eXBlb2YgdGhpcy5pY29uU3RhcnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlucHV0SWNvbkVuZDogdHlwZW9mIHRoaXMuaWNvbkVuZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgaW5wdXRMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBUeXBlXG4gICAgdGhpcy5pbnB1dFR5cGUgPSB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5Jz4oY2hhbmdlcywgJ3R5cGUnLCBbJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JywgJ3RlcnRpYXJ5J10pIHx8ICdwcmltYXJ5JztcbiAgICAvLy0tLSBGb250IFNpemVcbiAgICB0aGlzLmlucHV0Rm9udFNpemUgPSB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCdzbWFsbCcgfCAnbGFyZ2UnPihjaGFuZ2VzLCAnZm9udFNpemUnLCBbJ3NtYWxsJywgJ2xhcmdlJ10pO1xuICAgIC8vLS0tIERpc2FibGVkXG4gICAgdGhpcy5pbnB1dERpc2FibGVkID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZGlzYWJsZWQnKTtcbiAgICAvLy0tLSBBbGVydFxuICAgIHRoaXMuaW5wdXRBbGVydCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2FsZXJ0Jyk7XG4gICAgLy8tLS0gQWN0aW9uXG4gICAgdGhpcy5pbnB1dEFjdGlvbiA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2FjdGlvbicpO1xuICAgIC8vLS0tIFNudWdcbiAgICB0aGlzLmlucHV0U251ZyA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ3NudWcnKTtcbiAgICAvLy0tLSBJY29uIFN0YXJ0XG4gICAgdGhpcy5pbnB1dEljb25TdGFydCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvblN0YXJ0JywgSWNvbnNDLnNsaWNlKCkpO1xuICAgIC8vLS0tIEljb24gU3RhcnRcbiAgICB0aGlzLmlucHV0SWNvbkVuZCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvbkVuZCcsIEljb25zQy5zbGljZSgpKTtcbiAgICAvLy0tLSBMb2FkaW5nXG4gICAgdGhpcy5pbnB1dExvYWRpbmcgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICdsb2FkaW5nJyk7XG4gIH1cbn1cbiIsIjxpb24tYnV0dG9uXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnY2YtYnV0dG9uLXByaW1hcnknOiBpbnB1dFR5cGUgPT09ICdwcmltYXJ5JyxcbiAgICAnY2YtYnV0dG9uLXNlY29uZGFyeSc6IGlucHV0VHlwZSA9PT0gJ3NlY29uZGFyeScsXG4gICAgJ2NmLWJ1dHRvbi10ZXJ0aWFyeSc6IGlucHV0VHlwZSA9PT0gJ3RlcnRpYXJ5JyxcbiAgICAndGV4dC1sYXJnZSc6IGlucHV0Rm9udFNpemUgPT09ICdsYXJnZScsXG4gICAgJ3RleHQtc21hbGwnOiBpbnB1dEZvbnRTaXplID09PSAnc21hbGwnLFxuICAgIGFsZXJ0OiBpbnB1dEFsZXJ0LFxuICAgIGFjdGlvbjogaW5wdXRBY3Rpb24sXG4gICAgc251ZzogaW5wdXRTbnVnXG4gIH1cIlxuICBbZGlzYWJsZWRdPVwiaW5wdXREaXNhYmxlZFwiXG4gICpjZkJ1dHRvbkxvYWRlcj1cImlucHV0TG9hZGluZ1wiPlxuICA8Y2YtaWNvbiAqbmdJZj1cImlucHV0SWNvblN0YXJ0XCIgW2ljb25dPVwiaW5wdXRJY29uU3RhcnRcIiBzdHlsZT1cIi0tY2Ytc3ZnLW92ZXJ3cml0ZS1zdHJva2UtY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG9yKVwiPjwvY2YtaWNvbj5cbiAgPHA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3A+XG4gIDxjZi1pY29uICpuZ0lmPVwiaW5wdXRJY29uRW5kXCIgW2ljb25dPVwiaW5wdXRJY29uRW5kXCIgc3R5bGU9XCItLWNmLXN2Zy1vdmVyd3JpdGUtc3Ryb2tlLWNvbG9yOiB2YXIoLS1idXR0b24tdGV4dC1jb2xvcilcIj48L2NmLWljb24+XG48L2lvbi1idXR0b24+XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE1BQU0sRUFBZSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7QUFPdEUsTUFBTSxPQUFPLGVBQWU7SUFDakIsSUFBSSxHQUF5QyxTQUFTLENBQUM7SUFDdkQsUUFBUSxDQUFnQztJQUN4QyxLQUFLLENBQWdDO0lBQ3JDLE1BQU0sQ0FBZ0M7SUFDdEMsSUFBSSxDQUFnQztJQUNwQyxRQUFRLENBQXFCO0lBQzdCLFNBQVMsQ0FBc0I7SUFDL0IsT0FBTyxDQUFzQjtJQUM3QixPQUFPLENBQWdDO0lBRWhELElBQXlDLFlBQVk7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBR0QsU0FBUyxHQUFxQixTQUFTLENBQUM7SUFDeEMsYUFBYSxHQUFxQyxTQUFTLENBQUM7SUFDNUQsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixjQUFjLEdBQXNDLFNBQVMsQ0FBQztJQUM5RCxZQUFZLEdBQW9DLFNBQVMsQ0FBQztJQUMxRCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBT3JCLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsU0FBUztZQUNaLG1CQUFtQixDQUF1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO1FBRWhKLElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQW9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpILElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxtQkFBbUIsQ0FBUyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBUyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdkcsSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRixDQUFDO3dHQXREVSxlQUFlOzRGQUFmLGVBQWUsZ1VDbkI1Qixtd0JBbUJBOzs0RkRBYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFFBQVE7OEJBS1QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRW1DLFlBQVk7c0JBQXBELFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgTGlicmFyeSAtIEJ1dHRvblxuICpcbiAqIEBmaWxlICAgICAgICAgIGJ1dHRvbi5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgQnV0dG9uXG4gKiBAYXV0aG9yICAgICAgICBKYWNxdWVzIENvZXR6ZWVcbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMSAtIDA3XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtYnRuIHR5cGU9XCIncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeSdcIiBmb250U2l6ZT1cIidzbWFsbCcgfCAnbGFyZ2UnXCIgJWRpc2FibGVkJSAlYWxlcnQlICVhY3Rpb24lICVzbnVnJT5URVhUPC9jZi1idG4+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgdHlwZSBTaW1wbGVDaGFuZ2VzLCB0eXBlIE9uQ2hhbmdlcywgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoZWNrVHJ1dGhBdHRyaWJ1dGUsIHZhbGlkYXRlU3RyaW5nVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5pbXBvcnQgeyBJY29uc0MsIHR5cGUgSWNvbnNUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pY29uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFsZXJ0PzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYWN0aW9uPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc251Zz86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGZvbnRTaXplPzogJ3NtYWxsJyB8ICdsYXJnZSc7XG4gIEBJbnB1dCgpIGljb25TdGFydD86IEljb25zVCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaWNvbkVuZD86IEljb25zVCB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbG9hZGluZz86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIGdldCBwYXJlbnRFdmVudHMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICdub25lJztcbiAgICB9XG4gICAgcmV0dXJuICdhdXRvJztcbiAgfVxuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dFR5cGU6IHR5cGVvZiB0aGlzLnR5cGUgPSAncHJpbWFyeSc7XG4gIGlucHV0Rm9udFNpemU6IHR5cGVvZiB0aGlzLmZvbnRTaXplIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBpbnB1dERpc2FibGVkID0gZmFsc2U7XG4gIGlucHV0QWxlcnQgPSBmYWxzZTtcbiAgaW5wdXRBY3Rpb24gPSBmYWxzZTtcbiAgaW5wdXRTbnVnID0gZmFsc2U7XG4gIGlucHV0SWNvblN0YXJ0OiB0eXBlb2YgdGhpcy5pY29uU3RhcnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlucHV0SWNvbkVuZDogdHlwZW9mIHRoaXMuaWNvbkVuZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgaW5wdXRMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBUeXBlXG4gICAgdGhpcy5pbnB1dFR5cGUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICd0ZXJ0aWFyeSc+KGNoYW5nZXMsICd0eXBlJywgWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeSddLCB0aGlzLmlucHV0VHlwZSkgfHwgJ3ByaW1hcnknO1xuICAgIC8vLS0tIEZvbnQgU2l6ZVxuICAgIHRoaXMuaW5wdXRGb250U2l6ZSA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8J3NtYWxsJyB8ICdsYXJnZSc+KGNoYW5nZXMsICdmb250U2l6ZScsIFsnc21hbGwnLCAnbGFyZ2UnXSwgdGhpcy5pbnB1dEZvbnRTaXplKTtcbiAgICAvLy0tLSBEaXNhYmxlZFxuICAgIHRoaXMuaW5wdXREaXNhYmxlZCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2Rpc2FibGVkJywgdGhpcy5pbnB1dERpc2FibGVkKTtcbiAgICAvLy0tLSBBbGVydFxuICAgIHRoaXMuaW5wdXRBbGVydCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2FsZXJ0JywgdGhpcy5pbnB1dEFsZXJ0KTtcbiAgICAvLy0tLSBBY3Rpb25cbiAgICB0aGlzLmlucHV0QWN0aW9uID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnYWN0aW9uJywgdGhpcy5pbnB1dEFjdGlvbik7XG4gICAgLy8tLS0gU251Z1xuICAgIHRoaXMuaW5wdXRTbnVnID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnc251ZycsIHRoaXMuaW5wdXRTbnVnKTtcbiAgICAvLy0tLSBJY29uIFN0YXJ0XG4gICAgdGhpcy5pbnB1dEljb25TdGFydCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvblN0YXJ0JywgSWNvbnNDLnNsaWNlKCksIHRoaXMuaW5wdXRJY29uU3RhcnQpO1xuICAgIC8vLS0tIEljb24gU3RhcnRcbiAgICB0aGlzLmlucHV0SWNvbkVuZCA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8SWNvbnNUPihjaGFuZ2VzLCAnaWNvbkVuZCcsIEljb25zQy5zbGljZSgpLCB0aGlzLmlucHV0SWNvbkVuZCk7XG4gICAgLy8tLS0gTG9hZGluZ1xuICAgIHRoaXMuaW5wdXRMb2FkaW5nID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbG9hZGluZycsIHRoaXMuaW5wdXRMb2FkaW5nKTtcbiAgfVxufVxuIiwiPGlvbi1idXR0b25cbiAgW25nQ2xhc3NdPVwie1xuICAgICdjZi1idXR0b24tcHJpbWFyeSc6IGlucHV0VHlwZSA9PT0gJ3ByaW1hcnknLFxuICAgICdjZi1idXR0b24tc2Vjb25kYXJ5JzogaW5wdXRUeXBlID09PSAnc2Vjb25kYXJ5JyxcbiAgICAnY2YtYnV0dG9uLXRlcnRpYXJ5JzogaW5wdXRUeXBlID09PSAndGVydGlhcnknLFxuICAgICd0ZXh0LWxhcmdlJzogaW5wdXRGb250U2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAndGV4dC1zbWFsbCc6IGlucHV0Rm9udFNpemUgPT09ICdzbWFsbCcsXG4gICAgYWxlcnQ6IGlucHV0QWxlcnQsXG4gICAgYWN0aW9uOiBpbnB1dEFjdGlvbixcbiAgICBzbnVnOiBpbnB1dFNudWdcbiAgfVwiXG4gIFtkaXNhYmxlZF09XCJpbnB1dERpc2FibGVkXCJcbiAgKmNmQnV0dG9uTG9hZGVyPVwiaW5wdXRMb2FkaW5nXCI+XG4gIDxjZi1pY29uICpuZ0lmPVwiaW5wdXRJY29uU3RhcnRcIiBbaWNvbl09XCJpbnB1dEljb25TdGFydFwiIHN0eWxlPVwiLS1jZi1zdmctb3ZlcndyaXRlLXN0cm9rZS1jb2xvcjogdmFyKC0tYnV0dG9uLXRleHQtY29sb3IpXCI+PC9jZi1pY29uPlxuICA8cD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvcD5cbiAgPGNmLWljb24gKm5nSWY9XCJpbnB1dEljb25FbmRcIiBbaWNvbl09XCJpbnB1dEljb25FbmRcIiBzdHlsZT1cIi0tY2Ytc3ZnLW92ZXJ3cml0ZS1zdHJva2UtY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0LWNvbG9yKVwiPjwvY2YtaWNvbj5cbjwvaW9uLWJ1dHRvbj5cbiJdfQ==