vcomply-workflow-engine 6.1.78 → 6.1.80

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.
@@ -7,8 +7,7 @@ import * as i2 from "@angular/forms";
7
7
  import * as i3 from "@angular/common";
8
8
  import * as i4 from "../frequency-lifecycle/frequency-lifecycle.component";
9
9
  import * as i5 from "../frequency-due-date/frequency-due-date.component";
10
- import * as i6 from "../frequency-checkbox-list/frequency-checkbox-list.component";
11
- import * as i7 from "../frequency-radio-list/frequency-radio-list.component";
10
+ import * as i6 from "../frequency-radio-list/frequency-radio-list.component";
12
11
  export class FrequencyRandomComponent {
13
12
  constructor(frequencyService) {
14
13
  this.frequencyService = frequencyService;
@@ -244,11 +243,11 @@ export class FrequencyRandomComponent {
244
243
  };
245
244
  }
246
245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyRandomComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyRandomComponent, selector: "app-frequency-random", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "<!-- <p>frequency-random works!</p> -->\n<div class=\"frequency-random\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">TYPE:</div> \n <app-frequency-radio-list\n [radioList]=\"randomType\" \n [selectedIndex]=\"randomTypeSelected\" \n (selectedRadio)=\"randomChecked($event)\"\n [name]=\"'random'\"\n class=\"random-radio\"\n [mode]=\"mode\"\n ></app-frequency-radio-list>\n <app-frequency-radio-list\n *ngIf=\"randomTypeSelected == 2\" \n [radioList]=\"quarterlyMonth\"\n [name]=\"'quarter'\" \n [selectedIndex]=\"randomQuarterlySelected\" \n (selectedRadio)=\"randomQuarterlyChecked($event)\"\n class=\"quarterly-radio\"\n [mode]=\"mode\"\n >\n </app-frequency-radio-list>\n <app-frequency-checkbox-list\n *ngIf=\"randomTypeSelected == 1\" \n [id]=\"8\"\n [listArray]=\"monthNameArray\"\n [selectedIndex]=\"selectedMonthly\"\n (selectedCheckbox)=\"onMonthSelected($event)\"\n class=\"monthly-checkbox\"\n [mode]=\"mode\"\n ></app-frequency-checkbox-list>\n <div class=\"frequency-random-message vx-p-3 vx-d-flex vx-align-center\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">Random occurrence for</div>\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"randomInstances\" (change)=\"randomInstance($event, randomTypeSelected)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">instances. Note, the maximum number of occurrences for <span class=\"vx-fw-500\">{{ randomType[randomTypeSelected].toLowerCase() }}</span> is {{ randomTypeMax[randomTypeSelected] }}.</div>\n </div>\n <app-frequency-due-date\n [id] = '8'\n [pageName]=\"'random'\"\n [mode]=\"mode\"\n [isDeactivated]=\"false\"\n [completedValue]=\"randomWindow\"\n [notCompletedValue]=\"randomFailed\"\n (valueChange)=\"onValueChange($event)\"\n [mode]=\"mode\"\n ></app-frequency-due-date>\n <app-frequency-lifecycle\n [id]=\"8\"\n [startDate]=\"randomlyLifeCycleStart\"\n [endDate]=\"randomlyLifeCycleEndTime\"\n [occurrance]=\"randomlyLifecycleOccurance\"\n [selectedLifecycleType]=\"randomlySeletedLifecycleType\"\n (selectedOccurance)=\"lifecycleChange($event)\"\n [mode]=\"mode\"\n ></app-frequency-lifecycle>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-random{position:relative}::ng-deep .frequency-random-message{background:#fff;border-radius:0 0 .25rem .25rem;border:1px solid #f1f1f1;position:relative;top:-5px}::ng-deep .frequency-random-message input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-random-message input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-random-message input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio{top:0}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio-item{border-right:none;height:3.5rem;width:auto!important;margin-right:.25rem}\n"], dependencies: [{ kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FrequencyLifecycleComponent, selector: "app-frequency-lifecycle", inputs: ["startDate", "endDate", "endBy", "occurrance", "selectedLifecycleType", "id", "mode"], outputs: ["selectedOccurance"] }, { kind: "component", type: i5.FrequencyDueDateComponent, selector: "app-frequency-due-date", inputs: ["mode", "pageType", "completedRequired", "notCompletedRequired", "completedValue", "notCompletedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "component", type: i6.FrequencyCheckboxListComponent, selector: "app-frequency-checkbox-list", inputs: ["id", "listArray", "selectedIndex", "mode"], outputs: ["selectedCheckbox"] }, { kind: "component", type: i7.FrequencyRadioListComponent, selector: "app-frequency-radio-list", inputs: ["radioList", "selectedIndex", "name", "mode"], outputs: ["selectedRadio"] }] }); }
246
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyRandomComponent, selector: "app-frequency-random", inputs: { mode: "mode", startDate: "startDate", frequencyData: "frequencyData" }, outputs: { frequencyDetails: "frequencyDetails" }, ngImport: i0, template: "<!-- <p>frequency-random works!</p> -->\n<div class=\"frequency-random\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">TYPE:</div>\n <app-frequency-radio-list [radioList]=\"randomType\" [selectedIndex]=\"randomTypeSelected\"\n (selectedRadio)=\"randomChecked($event)\" [name]=\"'random'\" class=\"random-radio\"\n [mode]=\"mode\"></app-frequency-radio-list>\n <app-frequency-radio-list *ngIf=\"randomTypeSelected == 2\" [radioList]=\"quarterlyMonth\" [name]=\"'quarter'\"\n [selectedIndex]=\"randomQuarterlySelected\" (selectedRadio)=\"randomQuarterlyChecked($event)\"\n class=\"quarterly-radio\" [mode]=\"mode\">\n </app-frequency-radio-list>\n\n <!-- disable monthly checkbox list in v1 -->\n <!-- <app-frequency-checkbox-list\n *ngIf=\"randomTypeSelected == 1\" \n [id]=\"8\"\n [listArray]=\"monthNameArray\"\n [selectedIndex]=\"selectedMonthly\"\n (selectedCheckbox)=\"onMonthSelected($event)\"\n class=\"monthly-checkbox\"\n [mode]=\"mode\"\n ></app-frequency-checkbox-list> -->\n <div class=\"frequency-random-message vx-p-3 vx-d-flex vx-align-center\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">Random occurrence for</div>\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"randomInstances\"\n (change)=\"randomInstance($event, randomTypeSelected)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n oninput=\"this.value = Math.abs(this.value)\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">instances. Note, the maximum number of occurrences for <span\n class=\"vx-fw-500\">{{ randomType[randomTypeSelected].toLowerCase() }}</span> is {{\n randomTypeMax[randomTypeSelected] }}.</div>\n </div>\n <app-frequency-due-date [id]='8' [pageName]=\"'random'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"randomWindow\" [notCompletedValue]=\"randomFailed\" (valueChange)=\"onValueChange($event)\"\n [mode]=\"mode\"></app-frequency-due-date>\n <app-frequency-lifecycle [id]=\"8\" [startDate]=\"randomlyLifeCycleStart\" [endDate]=\"randomlyLifeCycleEndTime\"\n [occurrance]=\"randomlyLifecycleOccurance\" [selectedLifecycleType]=\"randomlySeletedLifecycleType\"\n (selectedOccurance)=\"lifecycleChange($event)\" [mode]=\"mode\"></app-frequency-lifecycle>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-random{position:relative}::ng-deep .frequency-random-message{background:#fff;border-radius:0 0 .25rem .25rem;border:1px solid #f1f1f1;position:relative;top:-5px}::ng-deep .frequency-random-message input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-random-message input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-random-message input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio{top:0}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio-item{border-right:none;height:3.5rem;width:auto!important;margin-right:.25rem}\n"], dependencies: [{ kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.FrequencyLifecycleComponent, selector: "app-frequency-lifecycle", inputs: ["startDate", "endDate", "endBy", "occurrance", "selectedLifecycleType", "id", "mode"], outputs: ["selectedOccurance"] }, { kind: "component", type: i5.FrequencyDueDateComponent, selector: "app-frequency-due-date", inputs: ["mode", "pageType", "completedRequired", "notCompletedRequired", "completedValue", "notCompletedValue", "deactivateValue", "isDeactivated", "id", "pageName"], outputs: ["valueChange"] }, { kind: "component", type: i6.FrequencyRadioListComponent, selector: "app-frequency-radio-list", inputs: ["radioList", "selectedIndex", "name", "mode"], outputs: ["selectedRadio"] }] }); }
248
247
  }
249
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyRandomComponent, decorators: [{
250
249
  type: Component,
251
- args: [{ selector: 'app-frequency-random', template: "<!-- <p>frequency-random works!</p> -->\n<div class=\"frequency-random\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">TYPE:</div> \n <app-frequency-radio-list\n [radioList]=\"randomType\" \n [selectedIndex]=\"randomTypeSelected\" \n (selectedRadio)=\"randomChecked($event)\"\n [name]=\"'random'\"\n class=\"random-radio\"\n [mode]=\"mode\"\n ></app-frequency-radio-list>\n <app-frequency-radio-list\n *ngIf=\"randomTypeSelected == 2\" \n [radioList]=\"quarterlyMonth\"\n [name]=\"'quarter'\" \n [selectedIndex]=\"randomQuarterlySelected\" \n (selectedRadio)=\"randomQuarterlyChecked($event)\"\n class=\"quarterly-radio\"\n [mode]=\"mode\"\n >\n </app-frequency-radio-list>\n <app-frequency-checkbox-list\n *ngIf=\"randomTypeSelected == 1\" \n [id]=\"8\"\n [listArray]=\"monthNameArray\"\n [selectedIndex]=\"selectedMonthly\"\n (selectedCheckbox)=\"onMonthSelected($event)\"\n class=\"monthly-checkbox\"\n [mode]=\"mode\"\n ></app-frequency-checkbox-list>\n <div class=\"frequency-random-message vx-p-3 vx-d-flex vx-align-center\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">Random occurrence for</div>\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"randomInstances\" (change)=\"randomInstance($event, randomTypeSelected)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\" oninput=\"this.value = Math.abs(this.value)\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">instances. Note, the maximum number of occurrences for <span class=\"vx-fw-500\">{{ randomType[randomTypeSelected].toLowerCase() }}</span> is {{ randomTypeMax[randomTypeSelected] }}.</div>\n </div>\n <app-frequency-due-date\n [id] = '8'\n [pageName]=\"'random'\"\n [mode]=\"mode\"\n [isDeactivated]=\"false\"\n [completedValue]=\"randomWindow\"\n [notCompletedValue]=\"randomFailed\"\n (valueChange)=\"onValueChange($event)\"\n [mode]=\"mode\"\n ></app-frequency-due-date>\n <app-frequency-lifecycle\n [id]=\"8\"\n [startDate]=\"randomlyLifeCycleStart\"\n [endDate]=\"randomlyLifeCycleEndTime\"\n [occurrance]=\"randomlyLifecycleOccurance\"\n [selectedLifecycleType]=\"randomlySeletedLifecycleType\"\n (selectedOccurance)=\"lifecycleChange($event)\"\n [mode]=\"mode\"\n ></app-frequency-lifecycle>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-random{position:relative}::ng-deep .frequency-random-message{background:#fff;border-radius:0 0 .25rem .25rem;border:1px solid #f1f1f1;position:relative;top:-5px}::ng-deep .frequency-random-message input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-random-message input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-random-message input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio{top:0}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio-item{border-right:none;height:3.5rem;width:auto!important;margin-right:.25rem}\n"] }]
250
+ args: [{ selector: 'app-frequency-random', template: "<!-- <p>frequency-random works!</p> -->\n<div class=\"frequency-random\">\n <div class=\"vx-fs-11 vx-fw-500 vx-label-txt vx-tt-uppercase vx-mb-1\">TYPE:</div>\n <app-frequency-radio-list [radioList]=\"randomType\" [selectedIndex]=\"randomTypeSelected\"\n (selectedRadio)=\"randomChecked($event)\" [name]=\"'random'\" class=\"random-radio\"\n [mode]=\"mode\"></app-frequency-radio-list>\n <app-frequency-radio-list *ngIf=\"randomTypeSelected == 2\" [radioList]=\"quarterlyMonth\" [name]=\"'quarter'\"\n [selectedIndex]=\"randomQuarterlySelected\" (selectedRadio)=\"randomQuarterlyChecked($event)\"\n class=\"quarterly-radio\" [mode]=\"mode\">\n </app-frequency-radio-list>\n\n <!-- disable monthly checkbox list in v1 -->\n <!-- <app-frequency-checkbox-list\n *ngIf=\"randomTypeSelected == 1\" \n [id]=\"8\"\n [listArray]=\"monthNameArray\"\n [selectedIndex]=\"selectedMonthly\"\n (selectedCheckbox)=\"onMonthSelected($event)\"\n class=\"monthly-checkbox\"\n [mode]=\"mode\"\n ></app-frequency-checkbox-list> -->\n <div class=\"frequency-random-message vx-p-3 vx-d-flex vx-align-center\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">Random occurrence for</div>\n <input class=\"countNum\" type=\"number\" [(ngModel)]=\"randomInstances\"\n (change)=\"randomInstance($event, randomTypeSelected)\" onkeydown=\"return event.keyCode !== 190\" min=\"0\"\n oninput=\"this.value = Math.abs(this.value)\">\n <div class=\"vx-fs-13 vx-paragraph-txt\">instances. Note, the maximum number of occurrences for <span\n class=\"vx-fw-500\">{{ randomType[randomTypeSelected].toLowerCase() }}</span> is {{\n randomTypeMax[randomTypeSelected] }}.</div>\n </div>\n <app-frequency-due-date [id]='8' [pageName]=\"'random'\" [mode]=\"mode\" [isDeactivated]=\"false\"\n [completedValue]=\"randomWindow\" [notCompletedValue]=\"randomFailed\" (valueChange)=\"onValueChange($event)\"\n [mode]=\"mode\"></app-frequency-due-date>\n <app-frequency-lifecycle [id]=\"8\" [startDate]=\"randomlyLifeCycleStart\" [endDate]=\"randomlyLifeCycleEndTime\"\n [occurrance]=\"randomlyLifecycleOccurance\" [selectedLifecycleType]=\"randomlySeletedLifecycleType\"\n (selectedOccurance)=\"lifecycleChange($event)\" [mode]=\"mode\"></app-frequency-lifecycle>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .frequency-random{position:relative}::ng-deep .frequency-random-message{background:#fff;border-radius:0 0 .25rem .25rem;border:1px solid #f1f1f1;position:relative;top:-5px}::ng-deep .frequency-random-message input.countNum{-moz-appearance:textfield;border:none;border-bottom:1px solid #DBDBDB;color:#161b2f;display:inline-block;font-size:13px;text-align:center;width:2.75rem;padding:.125rem;margin:0 .5rem;outline:none}::ng-deep .frequency-random-message input.countNum::-webkit-inner-spin-button,::ng-deep .frequency-random-message input.countNum::-webkit-outer-spin-button{-webkit-appearance:none}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio{top:0}::ng-deep .frequency-random app-frequency-radio-list.random-radio .frequency-radio-item{border-right:none;height:3.5rem;width:auto!important;margin-right:.25rem}\n"] }]
252
251
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { mode: [{
253
252
  type: Input
254
253
  }], startDate: [{
@@ -258,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
258
257
  }], frequencyDetails: [{
259
258
  type: Output
260
259
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktcmFuZG9tL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJhbmRvbS9mcmVxdWVuY3ktcmFuZG9tLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7O0FBT2pFLE1BQU0sT0FBTyx3QkFBd0I7SUFtQ25DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEM3QyxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRXhCLDRDQUE0QztRQUU1QyxtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsa0JBQWEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxDQUFD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O2dCQUdJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1yYW5kb20nLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5UmFuZG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG5cbiAgLy8wOiB3ZWVrbHkgMTogbW9udGhseSAyOnF1YXJ0ZXJseSAzOiB5ZWFybHlcblxuICBtb250aE5hbWVBcnJheTogQXJyYXk8YW55PiA9IFtdO1xuICBzZWxlY3RlZE1vbnRobHk6IEFycmF5PG51bWJlcj4gPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcbiAgcmFuZG9tVHlwZU1heCA9IFszLCAxMCwgMzAsIDkwXTtcbiAgcmFuZG9tVHlwZSA9IFsnV2Vla2x5JywgJ01vbnRobHknLCAnUXVhcnRlcmx5JywgJ1llYXJseSddO1xuICByYW5kb21JbnN0YW5jZXMgPSAwO1xuICBkZWZhdWx0UmFuZG9tSW5zdGFuY2UgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgcmFuZG9tbHlEYXkgPSBuZXcgRGF0ZSgpLmdldERhdGUoKTtcbiAgcmFuZG9tbHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKCk7XG4gIHJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKFxuICAgIHRoaXMucmFuZG9tbHlMaWZlQ3ljbGVTdGFydC5nZXRUaW1lKCkgKyA4NjQwMDAwMFxuICApO1xuICByYW5kb21seUxpZmVjeWNsZU9jY3VyYW5jZSA9IDEwO1xuICByYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcbiAgcmFuZG9tVHlwZVNlbGVjdGVkID0gMDtcbiAgcmFuZG9tV2luZG93ID0gMjtcbiAgcmFuZG9tRmFpbGVkID0gMjtcbiAgcmFuZG9tTW9udGhTZWxlY3RlZCA9IFtdO1xuICByYW5kb21RdWFydGVybHlTZWxlY3RlZCA9IDE7XG4gIHF1YXJ0ZXJseUdyb3VwID0gWzAsIDMsIDYsIDksIDEsIDQsIDcsIDEwLCAyLCA1LCA4LCAxMV07XG4gIHJhbmRvbVR5cGVJbnN0YW5jZXMgPSBbMiwgNSwgMTUsIDQ1XTtcbiAgZnJlcXVlbmN5SW5mbzogYW55O1xuICBzaG9ydE1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHF1YXJ0ZXJseU1vbnRoOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgQElucHV0KCkgc3RhcnREYXRlID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gIEBJbnB1dCgpIGZyZXF1ZW5jeURhdGE6IGFueTtcbiAgbGlmZWN5Y2xlRGV0YWlsczogYW55ID0gJzAwMDAtMDAtMDB+fjAnO1xuXG4gIEBPdXRwdXQoKSBmcmVxdWVuY3lEZXRhaWxzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhOYW1lQXJyYXkgPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheSldO1xuICAgIHRoaXMucXVhcnRlcmx5TW9udGggPSBbLi4ubmV3IFNldCh0aGlzLmZyZXF1ZW5jeVNlcnZpY2UucXVhcnRlcmx5TW9udGgpXTtcbiAgICB0aGlzLnNob3J0TW9udGggPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UubW9udGhBcnJheS5tYXAoKG1vbnRoOiBzdHJpbmcpID0+XG4gICAgICBtb250aC5zdWJzdHJpbmcoMCwgMylcbiAgICApO1xuICAgIGNvbnN0IGluZGV4T2ZNb250aCA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihuZXcgRGF0ZSgpLmdldE1vbnRoKCkpO1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgaW5kZXhPZk1vbnRoIDwgNCA/IDAgOiBpbmRleE9mTW9udGggPiAzICYmIGluZGV4T2ZNb250aCA8IDggPyAxIDogMjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybiAhPSAnJyAmJlxuICAgICAgcGFyc2VJbnQodGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKVswXSkgPT09IDhcbiAgICApIHtcbiAgICAgIHRoaXMucG9wdWxhdGVGcmVxdWVuY3koKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRSYW5kb21JbnN0YW5jZXMoKTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldFJhbmRvbUluc3RhbmNlcygpIHtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHRoaXMucmFuZG9tVHlwZUluc3RhbmNlc1t0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZF07XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgY29uc3QgbGlmZWN5Y2xlSW5mbyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGUuc3BsaXQoJ35+Jyk7XG4gICAgdGhpcy5yYW5kb21XaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMucmFuZG9tRmFpbGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZDtcbiAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzNdKTtcbiAgICB0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzFdKSAtIDE7XG4gICAgaWYgKHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhseSA9IGZyZXF1ZW5jeVNlbGVjdGVkWzJdXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGVsZTogYW55KSA9PiBwYXJzZUludChlbGUpIC0gMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9PSAyKSB7XG4gICAgICBjb25zdCBtb250aFJhbmRvbSA9IHBhcnNlSW50KGZyZXF1ZW5jeVNlbGVjdGVkWzJdLnNwbGl0KCcsJylbMF0pO1xuICAgICAgY29uc3QgaW5kZXhSYW5kb20gPSB0aGlzLnF1YXJ0ZXJseUdyb3VwLmluZGV4T2YobW9udGhSYW5kb20gLSAxKTtcbiAgICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPVxuICAgICAgICBpbmRleFJhbmRvbSA8IDQgPyAwIDogaW5kZXhSYW5kb20gPiAzICYmIGluZGV4UmFuZG9tIDwgOCA/IDEgOiAyO1xuICAgIH1cbiAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlU3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlICogMTAwMCk7XG4gICAgdGhpcy5zdGFydERhdGUgPVxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnN0YXJ0RnJvbSA/PyB0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnREYXRlO1xuICAgIGlmIChOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSkgPiAwKSB7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gTnVtYmVyKGxpZmVjeWNsZUluZm9bMV0pO1xuICAgIH1cbiAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlO1xuICAgIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIGNvbnN0IGRhdGVTZWxlY3RlZCA9IG1vbWVudChcbiAgICAgICAgbGlmZWN5Y2xlSW5mb1swXSArICcgJyArIERFRkFVTFRfVElNRSxcbiAgICAgICAgJ0RELU1NTU0tWVlZWSBISDptbSBhJ1xuICAgICAgKS51bml4KCk7XG4gICAgICB0aGlzLnJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZSA9IG5ldyBEYXRlKGRhdGVTZWxlY3RlZCAqIDEwMDApO1xuICAgIH1cbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZSA9PSAnMDAwMC0wMC0wMH5+MCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDI7XG4gICAgfSBlbHNlIGlmIChsaWZlY3ljbGVJbmZvWzBdICE9PSAnMDAwMC0wMC0wMCcpIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZSA9IDE7XG4gICAgfVxuICB9XG5cbiAgb25Nb250aFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuY2hlY2tlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRobHkucHVzaChldmVudC5pbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aGx5ID0gdGhpcy5zZWxlY3RlZE1vbnRobHkuZmlsdGVyKFxuICAgICAgICAoZWxlKSA9PiBlbGUgIT09IGV2ZW50LmluZGV4XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLnJhbmRvbVdpbmRvdyA9IGV2ZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUZhaWxlZCA9IGV2ZW50LnZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgcmFuZG9tQ2hlY2tlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5yYW5kb21UeXBlU2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUluc3RhbmNlcygpO1xuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICByYW5kb21JbnN0YW5jZShldmVudDogYW55LCB0eXBlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICAhTnVtYmVyLmlzTmFOKE51bWJlcihldmVudC50YXJnZXQudmFsdWUpKSAmJlxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlICE9PSAnMCcgJiZcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPiAwICYmXG4gICAgICBwYXJzZUludChldmVudC50YXJnZXQudmFsdWUpIDwgdGhpcy5yYW5kb21UeXBlTWF4W3R5cGVdICsgMVxuICAgICkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyA9XG4gICAgICAgIHRoaXMuZGVmYXVsdFJhbmRvbUluc3RhbmNlW3RoaXMucmFuZG9tVHlwZVNlbGVjdGVkXTtcbiAgICB9XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGxpZmVjeWNsZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IGV2ZW50LmVuZHNCeSArICd+fjAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+ficgKyBldmVudC5lbmRhZnRlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9ICcwMDAwLTAwLTAwfn4wJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmIChldmVudC5zdGFydEZyb20udG9TdHJpbmcoKS5sZW5ndGggPiAxMCkge1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBNYXRoLmZsb29yKGV2ZW50LnN0YXJ0RnJvbSAvIDEwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tKTtcbiAgICB9XG4gICAgbGV0IGVuZEJ5RGF0ZSA9IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwICsgODY0MDAwMDApO1xuICAgIGlmIChldmVudC50eXBlID09PSAwKSB7XG4gICAgICBlbmRCeURhdGUgPSBldmVudC5lbmRzQnlcbiAgICAgICAgPyBtb21lbnQoZXZlbnQuZW5kc0J5ICsgJyAwMDowMDowMCcsICdERC1NTU0tWVlZWSBISDptbTpzcycpLnVuaXgoKVxuICAgICAgICA6IGVuZEJ5RGF0ZTtcbiAgICB9XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZF90aW1lX3V0YyA9IGVuZEJ5RGF0ZTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgc2VsZWN0ZWRNb250aChldmVudDogYW55KSB7XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIHJhbmRvbVF1YXJ0ZXJseUNoZWNrZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0UmFuZG9tRnJlcXVlbmN5KCkge1xuICAgIC8vMDogd2Vla2x5IDE6IG1vbnRobHkgMjpxdWFydGVybHkgMzogeWVhcmx5XG4gICAgbGV0IHNlbGVjdGVkTW9udGg6IGFueSA9IFtdXG4gICAgbGV0IGZyZXF1ZW5jeURldGFpbHM7XG4gICAgc3dpdGNoICh0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRXZWVrbHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldE1vbnRobHlGcmVxdWVuY3koKTtcbiAgICAgICAgc2VsZWN0ZWRNb250aCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCk7XG4gICAgICAgIHNlbGVjdGVkTW9udGggPSBmcmVxdWVuY3lEZXRhaWxzLm1vbnRoU2VxdWVuY2U7XG4gICAgICAgIHNlbGVjdGVkTW9udGggPSBzZWxlY3RlZE1vbnRoLm1hcCgoZWxlOiBhbnkpID0+IGVsZSAtIDEpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRZZWFybHlGcmVxdWVuY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID0gZnJlcXVlbmN5RGV0YWlscz8ucGF0dGVybjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGxhY2Vob2xkZXIgPSBmcmVxdWVuY3lEZXRhaWxzPy5wbGFjZWhvbGRlcjtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uY2FzZSA9ICdyYW5kb20nO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMucmFuZG9tRmFpbGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLnJhbmRvbVdpbmRvdztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc2VsZWN0ZWRNb250aCA9IHNlbGVjdGVkTW9udGg7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmxpZmVjeWNsZURldGFpbHMgPSB0aGlzLmxpZmVjeWNsZURldGFpbHM7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnN0YXJ0RnJvbSA9IHRoaXMuc3RhcnREYXRlO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yYW5kb21UeXBlU2VsZWN0ZWQgPSB0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmFuZG9tSW5zdGFuY2VzID0gdGhpcy5yYW5kb21JbnN0YW5jZXM7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIGdldFdlZWtseUZyZXF1ZW5jeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogOCArICd+JyArIDEgKyAnficgKyAwICsgJ34nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5IHdlZWsgZm9yICcgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyArICcgcmFuZG9tIGluc3RhbmNlcycsXG4gICAgfTtcbiAgfVxuXG4gIGdldE1vbnRobHlGcmVxdWVuY3koKSB7XG4gICAgdGhpcy5zZWxlY3RlZE1vbnRobHkgPSB0aGlzLnNlbGVjdGVkTW9udGhseS5zb3J0KChuMSwgbjIpID0+IG4xIC0gbjIpO1xuICAgIGNvbnN0IHNlbGVjdGVkTW9udGggPSB0aGlzLnNlbGVjdGVkTW9udGhseS5tYXAoKGVsZSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2hvcnRNb250aFtlbGVdO1xuICAgIH0pO1xuICAgIGNvbnN0IG1vbnRoSW5kZXggPSB0aGlzLnNlbGVjdGVkTW9udGhseS5tYXAoKGVsZSkgPT4gZWxlICsgMSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIDggKyAnficgKyAyICsgJ34nICsgbW9udGhJbmRleC5qb2luKCcsJykgKyAnficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgJyArXG4gICAgICAgIHNlbGVjdGVkTW9udGguam9pbignLCAnKSArXG4gICAgICAgICcgZm9yICcgK1xuICAgICAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyArXG4gICAgICAgICcgcmFuZG9tIGluc3RhbmNlcycsXG4gICAgfTtcbiAgfVxuXG4gIGdldFF1YXJ0ZXJseUZyZXF1ZW5jeSgpIHtcbiAgICBsZXQgbW9udGhTZXF1ZW5jZSA9XG4gICAgICB0aGlzLnJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkID09PSAwXG4gICAgICAgID8gdGhpcy5xdWFydGVybHlHcm91cC5zbGljZSgwLCA0KVxuICAgICAgICA6IHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPT09IDFcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDQsIDgpXG4gICAgICAgIDogdGhpcy5xdWFydGVybHlHcm91cC5zbGljZSg4KTtcbiAgICBtb250aFNlcXVlbmNlID0gbW9udGhTZXF1ZW5jZS5tYXAoKGVsZSkgPT4gZWxlICsgMSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46IDggKyAnficgKyAzICsgJ34nICsgbW9udGhTZXF1ZW5jZSArICd+JyArIHRoaXMucmFuZG9tSW5zdGFuY2VzLFxuICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICdFdmVyeSAnICtcbiAgICAgICAgdGhpcy5xdWFydGVybHlNb250aFt0aGlzLnJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkXSArXG4gICAgICAgICcgZm9yICcgK1xuICAgICAgICB0aGlzLnJhbmRvbUluc3RhbmNlcyArXG4gICAgICAgICcgcmFuZG9tIGluc3RhbmNlcycsXG4gICAgICAgIG1vbnRoU2VxdWVuY2VcblxuICAgIH07XG4gIH1cblxuICBnZXRZZWFybHlGcmVxdWVuY3koKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIDggKyAnficgKyA0ICsgJ34xLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMn4nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5IHllYXIgZm9yICcgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyArICcgcmFuZG9tIGluc3RhbmNlcycsXG4gICAgfTtcbiAgfVxufVxuIiwiPCEtLSA8cD5mcmVxdWVuY3ktcmFuZG9tIHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJhbmRvbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+VFlQRTo8L2Rpdj4gXG4gICAgPGFwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdFxuICAgIFtyYWRpb0xpc3RdPVwicmFuZG9tVHlwZVwiIFxuICAgIFtzZWxlY3RlZEluZGV4XT1cInJhbmRvbVR5cGVTZWxlY3RlZFwiIFxuICAgIChzZWxlY3RlZFJhZGlvKT1cInJhbmRvbUNoZWNrZWQoJGV2ZW50KVwiXG4gICAgW25hbWVdPVwiJ3JhbmRvbSdcIlxuICAgIGNsYXNzPVwicmFuZG9tLXJhZGlvXCJcbiAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LXJhZGlvLWxpc3Q+XG4gICAgPGFwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdFxuICAgICAgICAqbmdJZj1cInJhbmRvbVR5cGVTZWxlY3RlZCA9PSAyXCIgIFxuICAgICAgICBbcmFkaW9MaXN0XT1cInF1YXJ0ZXJseU1vbnRoXCJcbiAgICAgICAgW25hbWVdPVwiJ3F1YXJ0ZXInXCIgXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkXCIgXG4gICAgICAgIChzZWxlY3RlZFJhZGlvKT1cInJhbmRvbVF1YXJ0ZXJseUNoZWNrZWQoJGV2ZW50KVwiXG4gICAgICAgIGNsYXNzPVwicXVhcnRlcmx5LXJhZGlvXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgID5cbiAgICA8L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cbiAgICA8YXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0XG4gICAgICAgICpuZ0lmPVwicmFuZG9tVHlwZVNlbGVjdGVkID09IDFcIiAgXG4gICAgICAgIFtpZF09XCI4XCJcbiAgICAgICAgW2xpc3RBcnJheV09XCJtb250aE5hbWVBcnJheVwiXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkTW9udGhseVwiXG4gICAgICAgIChzZWxlY3RlZENoZWNrYm94KT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJtb250aGx5LWNoZWNrYm94XCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmFuZG9tLW1lc3NhZ2UgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHRcIj5SYW5kb20gb2NjdXJyZW5jZSBmb3I8L2Rpdj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiY291bnROdW1cIiB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJyYW5kb21JbnN0YW5jZXNcIiAoY2hhbmdlKT1cInJhbmRvbUluc3RhbmNlKCRldmVudCwgcmFuZG9tVHlwZVNlbGVjdGVkKVwiIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPmluc3RhbmNlcy4gTm90ZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9jY3VycmVuY2VzIGZvciA8c3BhbiBjbGFzcz1cInZ4LWZ3LTUwMFwiPnt7IHJhbmRvbVR5cGVbcmFuZG9tVHlwZVNlbGVjdGVkXS50b0xvd2VyQ2FzZSgpIH19PC9zcGFuPiBpcyB7eyByYW5kb21UeXBlTWF4W3JhbmRvbVR5cGVTZWxlY3RlZF0gfX0uPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGVcbiAgICAgICAgW2lkXSA9ICc4J1xuICAgICAgICBbcGFnZU5hbWVdPVwiJ3JhbmRvbSdcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgW2lzRGVhY3RpdmF0ZWRdPVwiZmFsc2VcIlxuICAgICAgICBbY29tcGxldGVkVmFsdWVdPVwicmFuZG9tV2luZG93XCJcbiAgICAgICAgW25vdENvbXBsZXRlZFZhbHVlXT1cInJhbmRvbUZhaWxlZFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICA+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuICAgIDxhcHAtZnJlcXVlbmN5LWxpZmVjeWNsZVxuICAgICAgICBbaWRdPVwiOFwiXG4gICAgICAgIFtzdGFydERhdGVdPVwicmFuZG9tbHlMaWZlQ3ljbGVTdGFydFwiXG4gICAgICAgIFtlbmREYXRlXT1cInJhbmRvbWx5TGlmZUN5Y2xlRW5kVGltZVwiXG4gICAgICAgIFtvY2N1cnJhbmNlXT1cInJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlXCJcbiAgICAgICAgW3NlbGVjdGVkTGlmZWN5Y2xlVHlwZV09XCJyYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlXCJcbiAgICAgICAgKHNlbGVjdGVkT2NjdXJhbmNlKT1cImxpZmVjeWNsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1saWZlY3ljbGU+XG48L2Rpdj5cbiJdfQ==
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyZXF1ZW5jeS9mcmVxdWVuY3ktcmFuZG9tL2ZyZXF1ZW5jeS1yYW5kb20uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJhbmRvbS9mcmVxdWVuY3ktcmFuZG9tLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLHdCQUF3QjtJQW1DbkMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFsQzdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsNENBQTRDO1FBRTVDLG1CQUFjLEdBQWUsRUFBRSxDQUFDO1FBQ2hDLG9CQUFlLEdBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxrQkFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLENBQUMs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Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnJlcXVlbmN5U2VydmljZSB9IGZyb20gJy4uL2ZyZXF1ZW5jeS5zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XG5pbXBvcnQgeyBERUZBVUxUX1RJTUUgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGltZS5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJhbmRvbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktcmFuZG9tLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LXJhbmRvbS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSYW5kb21Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcblxuICAvLzA6IHdlZWtseSAxOiBtb250aGx5IDI6cXVhcnRlcmx5IDM6IHllYXJseVxuXG4gIG1vbnRoTmFtZUFycmF5OiBBcnJheTxhbnk+ID0gW107XG4gIHNlbGVjdGVkTW9udGhseTogQXJyYXk8bnVtYmVyPiA9IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTFdO1xuICByYW5kb21UeXBlTWF4ID0gWzMsIDEwLCAzMCwgOTBdO1xuICByYW5kb21UeXBlID0gWydXZWVrbHknLCAnTW9udGhseScsICdRdWFydGVybHknLCAnWWVhcmx5J107XG4gIHJhbmRvbUluc3RhbmNlcyA9IDA7XG4gIGRlZmF1bHRSYW5kb21JbnN0YW5jZSA9IFsyLCA1LCAxNSwgNDVdO1xuICByYW5kb21seURheSA9IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpO1xuICByYW5kb21seUxpZmVDeWNsZVN0YXJ0ID0gbmV3IERhdGUoKTtcbiAgcmFuZG9tbHlMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoXG4gICAgdGhpcy5yYW5kb21seUxpZmVDeWNsZVN0YXJ0LmdldFRpbWUoKSArIDg2NDAwMDAwXG4gICk7XG4gIHJhbmRvbWx5TGlmZWN5Y2xlT2NjdXJhbmNlID0gMTA7XG4gIHJhbmRvbWx5U2VsZXRlZExpZmVjeWNsZVR5cGUgPSAyO1xuICByYW5kb21UeXBlU2VsZWN0ZWQgPSAwO1xuICByYW5kb21XaW5kb3cgPSAyO1xuICByYW5kb21GYWlsZWQgPSAyO1xuICByYW5kb21Nb250aFNlbGVjdGVkID0gW107XG4gIHJhbmRvbVF1YXJ0ZXJseVNlbGVjdGVkID0gMTtcbiAgcXVhcnRlcmx5R3JvdXAgPSBbMCwgMywgNiwgOSwgMSwgNCwgNywgMTAsIDIsIDUsIDgsIDExXTtcbiAgcmFuZG9tVHlwZUluc3RhbmNlcyA9IFsyLCA1LCAxNSwgNDVdO1xuICBmcmVxdWVuY3lJbmZvOiBhbnk7XG4gIHNob3J0TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcXVhcnRlcmx5TW9udGg6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XG5cbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tb250aE5hbWVBcnJheSA9IFsuLi5uZXcgU2V0KHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5KV07XG4gICAgdGhpcy5xdWFydGVybHlNb250aCA9IFsuLi5uZXcgU2V0KHRoaXMuZnJlcXVlbmN5U2VydmljZS5xdWFydGVybHlNb250aCldO1xuICAgIHRoaXMuc2hvcnRNb250aCA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS5tb250aEFycmF5Lm1hcCgobW9udGg6IHN0cmluZykgPT5cbiAgICAgIG1vbnRoLnN1YnN0cmluZygwLCAzKVxuICAgICk7XG4gICAgY29uc3QgaW5kZXhPZk1vbnRoID0gdGhpcy5xdWFydGVybHlHcm91cC5pbmRleE9mKG5ldyBEYXRlKCkuZ2V0TW9udGgoKSk7XG4gICAgdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9XG4gICAgICBpbmRleE9mTW9udGggPCA0ID8gMCA6IGluZGV4T2ZNb250aCA+IDMgJiYgaW5kZXhPZk1vbnRoIDwgOCA/IDEgOiAyO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mbyA9IE9iamVjdC5hc3NpZ24odGhpcy5mcmVxdWVuY3lTZXJ2aWNlLmZyZXF1ZW5jeUluZm8pO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpWzBdKSA9PT0gOFxuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldFJhbmRvbUluc3RhbmNlcygpO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0UmFuZG9tSW5zdGFuY2VzKCkge1xuICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzID0gdGhpcy5yYW5kb21UeXBlSW5zdGFuY2VzW3RoaXMucmFuZG9tVHlwZVNlbGVjdGVkXTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcbiAgICBjb25zdCBsaWZlY3ljbGVJbmZvID0gdGhpcy5mcmVxdWVuY3lEYXRhLmxpZmVjeWNsZS5zcGxpdCgnfn4nKTtcbiAgICB0aGlzLnJhbmRvbVdpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XG4gICAgdGhpcy5yYW5kb21GYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xuICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzID0gcGFyc2VJbnQoZnJlcXVlbmN5U2VsZWN0ZWRbM10pO1xuICAgIHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkID0gcGFyc2VJbnQoZnJlcXVlbmN5U2VsZWN0ZWRbMV0pIC0gMTtcbiAgICBpZiAodGhpcy5yYW5kb21UeXBlU2VsZWN0ZWQgPT09IDEpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb250aGx5ID0gZnJlcXVlbmN5U2VsZWN0ZWRbMl1cbiAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgLm1hcCgoZWxlOiBhbnkpID0+IHBhcnNlSW50KGVsZSkgLSAxKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkID09IDIpIHtcbiAgICAgIGNvbnN0IG1vbnRoUmFuZG9tID0gcGFyc2VJbnQoZnJlcXVlbmN5U2VsZWN0ZWRbMl0uc3BsaXQoJywnKVswXSk7XG4gICAgICBjb25zdCBpbmRleFJhbmRvbSA9IHRoaXMucXVhcnRlcmx5R3JvdXAuaW5kZXhPZihtb250aFJhbmRvbSAtIDEpO1xuICAgICAgdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9XG4gICAgICAgIGluZGV4UmFuZG9tIDwgNCA/IDAgOiBpbmRleFJhbmRvbSA+IDMgJiYgaW5kZXhSYW5kb20gPCA4ID8gMSA6IDI7XG4gICAgfVxuICAgIHRoaXMucmFuZG9tbHlMaWZlQ3ljbGVTdGFydCA9IG5ldyBEYXRlKHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGUgKiAxMDAwKTtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9XG4gICAgICB0aGlzLmZyZXF1ZW5jeURhdGEuc3RhcnRGcm9tID8/IHRoaXMuZnJlcXVlbmN5RGF0YS5zdGFydERhdGU7XG4gICAgaWYgKE51bWJlcihsaWZlY3ljbGVJbmZvWzFdKSA+IDApIHtcbiAgICAgIHRoaXMucmFuZG9tbHlMaWZlY3ljbGVPY2N1cmFuY2UgPSBOdW1iZXIobGlmZWN5Y2xlSW5mb1sxXSk7XG4gICAgfVxuICAgIHRoaXMubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMuZnJlcXVlbmN5RGF0YS5saWZlY3ljbGU7XG4gICAgaWYgKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xuICAgICAgY29uc3QgZGF0ZVNlbGVjdGVkID0gbW9tZW50KFxuICAgICAgICBsaWZlY3ljbGVJbmZvWzBdICsgJyAnICsgREVGQVVMVF9USU1FLFxuICAgICAgICAnREQtTU1NTS1ZWVlZIEhIOm1tIGEnXG4gICAgICApLnVuaXgoKTtcbiAgICAgIHRoaXMucmFuZG9tbHlMaWZlQ3ljbGVFbmRUaW1lID0gbmV3IERhdGUoZGF0ZVNlbGVjdGVkICogMTAwMCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGEubGlmZWN5Y2xlID09ICcwMDAwLTAwLTAwfn4wJykge1xuICAgICAgdGhpcy5yYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMjtcbiAgICB9IGVsc2UgaWYgKGxpZmVjeWNsZUluZm9bMF0gIT09ICcwMDAwLTAwLTAwJykge1xuICAgICAgdGhpcy5yYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yYW5kb21seVNlbGV0ZWRMaWZlY3ljbGVUeXBlID0gMTtcbiAgICB9XG4gIH1cblxuICBvbk1vbnRoU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5jaGVja2VkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTW9udGhseS5wdXNoKGV2ZW50LmluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vbnRobHkgPSB0aGlzLnNlbGVjdGVkTW9udGhseS5maWx0ZXIoXG4gICAgICAgIChlbGUpID0+IGVsZSAhPT0gZXZlbnQuaW5kZXhcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2NvbXBsZXRlZCcpIHtcbiAgICAgIHRoaXMucmFuZG9tV2luZG93ID0gZXZlbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFuZG9tRmFpbGVkID0gZXZlbnQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICByYW5kb21DaGVja2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJhbmRvbVR5cGVTZWxlY3RlZCA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMuZ2V0UmFuZG9tSW5zdGFuY2VzKCk7XG4gICAgdGhpcy5nZXRSYW5kb21GcmVxdWVuY3koKTtcbiAgfVxuXG4gIHJhbmRvbUluc3RhbmNlKGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xuICAgIGlmIChcbiAgICAgICFOdW1iZXIuaXNOYU4oTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSkpICYmXG4gICAgICBldmVudC50YXJnZXQudmFsdWUgIT09ICcwJyAmJlxuICAgICAgcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnZhbHVlKSA+IDAgJiZcbiAgICAgIHBhcnNlSW50KGV2ZW50LnRhcmdldC52YWx1ZSkgPCB0aGlzLnJhbmRvbVR5cGVNYXhbdHlwZV0gKyAxXG4gICAgKSB7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzID1cbiAgICAgICAgdGhpcy5kZWZhdWx0UmFuZG9tSW5zdGFuY2VbdGhpcy5yYW5kb21UeXBlU2VsZWN0ZWRdO1xuICAgIH1cbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgbGlmZWN5Y2xlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gZXZlbnQuZW5kc0J5ICsgJ35+MCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxOlxuICAgICAgICB0aGlzLmxpZmVjeWNsZURldGFpbHMgPSAnMDAwMC0wMC0wMH5+JyArIGV2ZW50LmVuZGFmdGVyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5saWZlY3ljbGVEZXRhaWxzID0gJzAwMDAtMDAtMDB+fjAnO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGV2ZW50LnN0YXJ0RnJvbS50b1N0cmluZygpLmxlbmd0aCA+IDEwKSB7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoZXZlbnQuc3RhcnRGcm9tIC8gMTAwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gTWF0aC5mbG9vcihldmVudC5zdGFydEZyb20pO1xuICAgIH1cbiAgICBsZXQgZW5kQnlEYXRlID0gTWF0aC5mbG9vcihuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDAgKyA4NjQwMDAwMCk7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09IDApIHtcbiAgICAgIGVuZEJ5RGF0ZSA9IGV2ZW50LmVuZHNCeVxuICAgICAgICA/IG1vbWVudChldmVudC5lbmRzQnkgKyAnIDAwOjAwOjAwJywgJ0RELU1NTS1ZWVlZIEhIOm1tOnNzJykudW5peCgpXG4gICAgICAgIDogZW5kQnlEYXRlO1xuICAgIH1cbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gZW5kQnlEYXRlO1xuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICBzZWxlY3RlZE1vbnRoKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmdldFJhbmRvbUZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgcmFuZG9tUXVhcnRlcmx5Q2hlY2tlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMuZ2V0UmFuZG9tRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRSYW5kb21GcmVxdWVuY3koKSB7XG4gICAgLy8wOiB3ZWVrbHkgMTogbW9udGhseSAyOnF1YXJ0ZXJseSAzOiB5ZWFybHlcbiAgICBsZXQgc2VsZWN0ZWRNb250aDogYW55ID0gW11cbiAgICBsZXQgZnJlcXVlbmN5RGV0YWlscztcbiAgICBzd2l0Y2ggKHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldFdlZWtseUZyZXF1ZW5jeSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgZnJlcXVlbmN5RGV0YWlscyA9IHRoaXMuZ2V0TW9udGhseUZyZXF1ZW5jeSgpO1xuICAgICAgICBzZWxlY3RlZE1vbnRoID0gdGhpcy5zZWxlY3RlZE1vbnRobHk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBmcmVxdWVuY3lEZXRhaWxzID0gdGhpcy5nZXRRdWFydGVybHlGcmVxdWVuY3koKTtcbiAgICAgICAgc2VsZWN0ZWRNb250aCA9IGZyZXF1ZW5jeURldGFpbHMubW9udGhTZXF1ZW5jZTtcbiAgICAgICAgc2VsZWN0ZWRNb250aCA9IHNlbGVjdGVkTW9udGgubWFwKChlbGU6IGFueSkgPT4gZWxlIC0gMSk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGZyZXF1ZW5jeURldGFpbHMgPSB0aGlzLmdldFllYXJseUZyZXF1ZW5jeSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBhdHRlcm4gPSBmcmVxdWVuY3lEZXRhaWxzPy5wYXR0ZXJuO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9IGZyZXF1ZW5jeURldGFpbHM/LnBsYWNlaG9sZGVyO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ3JhbmRvbSc7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmZhaWxlZEFmdGVyID0gdGhpcy5yYW5kb21GYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMucmFuZG9tV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5zZWxlY3RlZE1vbnRoID0gc2VsZWN0ZWRNb250aDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ubGlmZWN5Y2xlRGV0YWlscyA9IHRoaXMubGlmZWN5Y2xlRGV0YWlscztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uc3RhcnRGcm9tID0gdGhpcy5zdGFydERhdGU7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnJhbmRvbVR5cGVTZWxlY3RlZCA9IHRoaXMucmFuZG9tVHlwZVNlbGVjdGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yYW5kb21JbnN0YW5jZXMgPSB0aGlzLnJhbmRvbUluc3RhbmNlcztcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgZ2V0V2Vla2x5RnJlcXVlbmN5KCkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOiA4ICsgJ34nICsgMSArICd+JyArIDAgKyAnficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgd2VlayBmb3IgJyArIHRoaXMucmFuZG9tSW5zdGFuY2VzICsgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0TW9udGhseUZyZXF1ZW5jeSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkTW9udGhseSA9IHRoaXMuc2VsZWN0ZWRNb250aGx5LnNvcnQoKG4xLCBuMikgPT4gbjEgLSBuMik7XG4gICAgY29uc3Qgc2VsZWN0ZWRNb250aCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5Lm1hcCgoZWxlKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zaG9ydE1vbnRoW2VsZV07XG4gICAgfSk7XG4gICAgY29uc3QgbW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aGx5Lm1hcCgoZWxlKSA9PiBlbGUgKyAxKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgOCArICd+JyArIDIgKyAnficgKyBtb250aEluZGV4LmpvaW4oJywnKSArICd+JyArIHRoaXMucmFuZG9tSW5zdGFuY2VzLFxuICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICdFdmVyeSAnICtcbiAgICAgICAgc2VsZWN0ZWRNb250aC5qb2luKCcsICcpICtcbiAgICAgICAgJyBmb3IgJyArXG4gICAgICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzICtcbiAgICAgICAgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0UXVhcnRlcmx5RnJlcXVlbmN5KCkge1xuICAgIGxldCBtb250aFNlcXVlbmNlID1cbiAgICAgIHRoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWQgPT09IDBcbiAgICAgICAgPyB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDAsIDQpXG4gICAgICAgIDogdGhpcy5yYW5kb21RdWFydGVybHlTZWxlY3RlZCA9PT0gMVxuICAgICAgICA/IHRoaXMucXVhcnRlcmx5R3JvdXAuc2xpY2UoNCwgOClcbiAgICAgICAgOiB0aGlzLnF1YXJ0ZXJseUdyb3VwLnNsaWNlKDgpO1xuICAgIG1vbnRoU2VxdWVuY2UgPSBtb250aFNlcXVlbmNlLm1hcCgoZWxlKSA9PiBlbGUgKyAxKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogOCArICd+JyArIDMgKyAnficgKyBtb250aFNlcXVlbmNlICsgJ34nICsgdGhpcy5yYW5kb21JbnN0YW5jZXMsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V2ZXJ5ICcgK1xuICAgICAgICB0aGlzLnF1YXJ0ZXJseU1vbnRoW3RoaXMucmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWRdICtcbiAgICAgICAgJyBmb3IgJyArXG4gICAgICAgIHRoaXMucmFuZG9tSW5zdGFuY2VzICtcbiAgICAgICAgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICAgICAgbW9udGhTZXF1ZW5jZVxuXG4gICAgfTtcbiAgfVxuXG4gIGdldFllYXJseUZyZXF1ZW5jeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgOCArICd+JyArIDQgKyAnfjEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyficgKyB0aGlzLnJhbmRvbUluc3RhbmNlcyxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAnRXZlcnkgeWVhciBmb3IgJyArIHRoaXMucmFuZG9tSW5zdGFuY2VzICsgJyByYW5kb20gaW5zdGFuY2VzJyxcbiAgICB9O1xuICB9XG59XG4iLCI8IS0tIDxwPmZyZXF1ZW5jeS1yYW5kb20gd29ya3MhPC9wPiAtLT5cbjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmFuZG9tXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5UWVBFOjwvZGl2PlxuICAgIDxhcHAtZnJlcXVlbmN5LXJhZGlvLWxpc3QgW3JhZGlvTGlzdF09XCJyYW5kb21UeXBlXCIgW3NlbGVjdGVkSW5kZXhdPVwicmFuZG9tVHlwZVNlbGVjdGVkXCJcbiAgICAgICAgKHNlbGVjdGVkUmFkaW8pPVwicmFuZG9tQ2hlY2tlZCgkZXZlbnQpXCIgW25hbWVdPVwiJ3JhbmRvbSdcIiBjbGFzcz1cInJhbmRvbS1yYWRpb1wiXG4gICAgICAgIFttb2RlXT1cIm1vZGVcIj48L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cbiAgICA8YXBwLWZyZXF1ZW5jeS1yYWRpby1saXN0ICpuZ0lmPVwicmFuZG9tVHlwZVNlbGVjdGVkID09IDJcIiBbcmFkaW9MaXN0XT1cInF1YXJ0ZXJseU1vbnRoXCIgW25hbWVdPVwiJ3F1YXJ0ZXInXCJcbiAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwicmFuZG9tUXVhcnRlcmx5U2VsZWN0ZWRcIiAoc2VsZWN0ZWRSYWRpbyk9XCJyYW5kb21RdWFydGVybHlDaGVja2VkKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cInF1YXJ0ZXJseS1yYWRpb1wiIFttb2RlXT1cIm1vZGVcIj5cbiAgICA8L2FwcC1mcmVxdWVuY3ktcmFkaW8tbGlzdD5cblxuICAgIDwhLS0gZGlzYWJsZSBtb250aGx5IGNoZWNrYm94IGxpc3QgaW4gdjEgLS0+XG4gICAgPCEtLSA8YXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0XG4gICAgICAgICpuZ0lmPVwicmFuZG9tVHlwZVNlbGVjdGVkID09IDFcIiAgXG4gICAgICAgIFtpZF09XCI4XCJcbiAgICAgICAgW2xpc3RBcnJheV09XCJtb250aE5hbWVBcnJheVwiXG4gICAgICAgIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkTW9udGhseVwiXG4gICAgICAgIChzZWxlY3RlZENoZWNrYm94KT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJtb250aGx5LWNoZWNrYm94XCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgPjwvYXBwLWZyZXF1ZW5jeS1jaGVja2JveC1saXN0PiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJhbmRvbS1tZXNzYWdlIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+UmFuZG9tIG9jY3VycmVuY2UgZm9yPC9kaXY+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImNvdW50TnVtXCIgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwicmFuZG9tSW5zdGFuY2VzXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwicmFuZG9tSW5zdGFuY2UoJGV2ZW50LCByYW5kb21UeXBlU2VsZWN0ZWQpXCIgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIlxuICAgICAgICAgICAgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTMgdngtcGFyYWdyYXBoLXR4dFwiPmluc3RhbmNlcy4gTm90ZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9jY3VycmVuY2VzIGZvciA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnctNTAwXCI+e3sgcmFuZG9tVHlwZVtyYW5kb21UeXBlU2VsZWN0ZWRdLnRvTG93ZXJDYXNlKCkgfX08L3NwYW4+IGlzIHt7XG4gICAgICAgICAgICByYW5kb21UeXBlTWF4W3JhbmRvbVR5cGVTZWxlY3RlZF0gfX0uPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1mcmVxdWVuY3ktZHVlLWRhdGUgW2lkXT0nOCcgW3BhZ2VOYW1lXT1cIidyYW5kb20nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICAgICAgW2NvbXBsZXRlZFZhbHVlXT1cInJhbmRvbVdpbmRvd1wiIFtub3RDb21wbGV0ZWRWYWx1ZV09XCJyYW5kb21GYWlsZWRcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW21vZGVdPVwibW9kZVwiPjwvYXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZT5cbiAgICA8YXBwLWZyZXF1ZW5jeS1saWZlY3ljbGUgW2lkXT1cIjhcIiBbc3RhcnREYXRlXT1cInJhbmRvbWx5TGlmZUN5Y2xlU3RhcnRcIiBbZW5kRGF0ZV09XCJyYW5kb21seUxpZmVDeWNsZUVuZFRpbWVcIlxuICAgICAgICBbb2NjdXJyYW5jZV09XCJyYW5kb21seUxpZmVjeWNsZU9jY3VyYW5jZVwiIFtzZWxlY3RlZExpZmVjeWNsZVR5cGVdPVwicmFuZG9tbHlTZWxldGVkTGlmZWN5Y2xlVHlwZVwiXG4gICAgICAgIChzZWxlY3RlZE9jY3VyYW5jZSk9XCJsaWZlY3ljbGVDaGFuZ2UoJGV2ZW50KVwiIFttb2RlXT1cIm1vZGVcIj48L2FwcC1mcmVxdWVuY3ktbGlmZWN5Y2xlPlxuPC9kaXY+Il19