@alfresco/adf-process-services-cloud 8.1.0-15042271894 → 8.1.0-15043883503
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.
- package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +4 -4
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +4 -4
- package/esm2022/lib/app/services/apps-process-cloud.service.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +4 -4
- package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/form-cloud.module.mjs +5 -5
- package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +4 -4
- package/esm2022/lib/form/services/display-mode.service.mjs +4 -4
- package/esm2022/lib/form/services/form-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-utils.service.mjs +4 -4
- package/esm2022/lib/form/services/process-cloud-content.service.mjs +4 -4
- package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +4 -4
- package/esm2022/lib/group/components/group-cloud.component.mjs +4 -4
- package/esm2022/lib/group/group-cloud.module.mjs +5 -5
- package/esm2022/lib/group/services/identity-group.service.mjs +4 -4
- package/esm2022/lib/people/components/people-cloud.component.mjs +4 -4
- package/esm2022/lib/people/people-cloud.module.mjs +5 -5
- package/esm2022/lib/people/services/identity-user.service.mjs +4 -4
- package/esm2022/lib/process/process-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/services/process-cloud.service.mjs +4 -4
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +4 -4
- package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +4 -4
- package/esm2022/lib/process-services-cloud.module.mjs +5 -5
- package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +5 -5
- package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +4 -4
- package/esm2022/lib/services/base-cloud.service.mjs +4 -4
- package/esm2022/lib/services/local-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/notification-cloud.service.mjs +4 -4
- package/esm2022/lib/services/screen-rendering.service.mjs +4 -4
- package/esm2022/lib/services/user-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/variable-mapper.sevice.mjs +4 -4
- package/esm2022/lib/services/web-socket.service.mjs +4 -4
- package/esm2022/lib/task/services/task-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +5 -7
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +4 -4
- package/esm2022/lib/task/task-form/task-form.module.mjs +5 -5
- package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +5 -5
- package/fesm2022/adf-process-services-cloud.mjs +296 -298
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/common/date-range-filter/date-range-filter.service.d.ts +1 -1
- package/package.json +4 -4
|
@@ -416,15 +416,15 @@ export class PeopleCloudComponent {
|
|
|
416
416
|
getValidationMinLength() {
|
|
417
417
|
return this.searchUserCtrl.errors.minlength.requiredLength;
|
|
418
418
|
}
|
|
419
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
420
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PeopleCloudComponent, isStandalone: true, selector: "adf-cloud-people", inputs: { appName: "appName", mode: "mode", roles: "roles", validate: "validate", readOnly: "readOnly", required: "required", preSelectUsers: "preSelectUsers", excludedUsers: "excludedUsers", groupsRestriction: "groupsRestriction", userChipsCtrl: "userChipsCtrl", searchUserCtrl: "searchUserCtrl", title: "title", placeholder: "placeholder", hideInputOnSingleSelection: "hideInputOnSingleSelection", formFieldAppearance: "formFieldAppearance", formFieldSubscriptSizing: "formFieldSubscriptSizing", showErrors: "showErrors", showFullNameOnHover: "showFullNameOnHover" }, outputs: { selectUser: "selectUser", removeUser: "removeUser", changedUsers: "changedUsers", warning: "warning" }, providers: [FullNamePipe], viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form>\n <mat-form-field\n [subscriptSizing]=\"formFieldSubscriptSizing\"\n [floatLabel]=\"'auto'\"\n class=\"adf-people-cloud\"\n [class.adf-invalid]=\"hasError() && isDirty()\"\n >\n <ng-content *ngIf=\"!title\" select=\"[label]\" />\n <mat-label *ngIf=\"title\">{{ title | translate }}</mat-label>\n <mat-chip-grid #userMultipleChipList data-automation-id=\"adf-cloud-people-chip-list\">\n <mat-chip-row\n *ngFor=\"let user of selectedUsers\"\n [removable]=\"!user.readonly\"\n [attr.data-automation-id]=\"'adf-people-cloud-chip-' + user.username\"\n (removed)=\"onRemove(user)\"\n [disabled]=\"isReadonly() || isValidationLoading()\"\n title=\"{{ (user.readonly ? 'ADF_CLOUD_GROUPS.MANDATORY' : '') | translate }}\"\n [matTooltip]=\"showFullNameOnHover ? (user | fullName : true) : user.email\"\n >\n {{ user | fullName }}\n <mat-icon\n matChipRemove\n *ngIf=\"!(user.readonly || readOnly)\"\n [attr.data-automation-id]=\"'adf-people-cloud-chip-remove-icon-' + user.username\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n <input\n matInput\n [disabled]=\"isReadonly()\"\n [formControl]=\"searchUserCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"userMultipleChipList\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n (focus)=\"setFocus(true)\"\n (blur)=\"setFocus(false); markAsTouched()\"\n class=\"adf-cloud-input\"\n data-automation-id=\"adf-people-cloud-search-input\"\n #userInput\n />\n </mat-chip-grid>\n\n <mat-autocomplete\n autoActiveFirstOption\n class=\"adf-people-cloud-list\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onSelect($event.option.value)\"\n [displayWith]=\"getDisplayName\"\n >\n <ng-container *ngIf=\"(searchUsers$ | async)?.length; else noResults\">\n <mat-option *ngFor=\"let user of searchUsers$ | async; let i = index\" [value]=\"user\" class=\"adf-people-cloud-option-active\">\n <div class=\"adf-people-cloud-row\" id=\"adf-people-cloud-user-{{ user.username }}\" data-automation-id=\"adf-people-cloud-row\">\n <div [outerHTML]=\"user | usernameInitials : 'adf-people-cloud-pic'\"></div>\n <span class=\"adf-people-label-name\"> {{ user | fullName : true }}</span>\n </div>\n </mat-option>\n </ng-container>\n <ng-template #noResults>\n <mat-option\n *ngIf=\"searchUserCtrl.hasError('searchTypingError') && !searchLoading\"\n disabled\n class=\"adf-people-cloud-option-not-active\"\n data-automation-id=\"adf-people-cloud-no-results\"\n >\n <span> {{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: searchedValue } }}</span>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n </mat-form-field>\n\n <mat-progress-bar *ngIf=\"validationLoading\" mode=\"indeterminate\" />\n\n <div class=\"adf-error-container adf-error-messages-container\" *ngIf=\"showErrors\">\n <mat-error *ngIf=\"hasPreselectError() && !isValidationLoading()\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: validateUsersMessage } }}</div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('pattern')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_PATTERN' | translate : { pattern: getValidationPattern() } }}</div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('maxlength')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">\n {{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_MAX_LENGTH' | translate : { requiredLength: getValidationMaxLength() } }}\n </div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('minlength')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">\n {{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_MIN_LENGTH' | translate : { requiredLength: getValidationMinLength() } }}\n </div>\n </mat-error>\n <mat-error\n *ngIf=\"(searchUserCtrl.hasError('required') || userChipsCtrl.hasError('required')) && isDirty()\"\n [@transitionMessages]=\"subscriptAnimationState\"\n class=\"adf-error\"\n >\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.REQUIRED' | translate }}</div>\n </mat-error>\n <mat-error\n *ngIf=\"searchUserCtrl.hasError('searchTypingError') && !this.isFocused\"\n [@transitionMessages]=\"subscriptAnimationState\"\n data-automation-id=\"invalid-users-typing-error\"\n class=\"adf-error\"\n >\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: searchedValue } }}</div>\n </mat-error>\n </div>\n</form>\n", styles: [".adf-people-cloud{width:100%}.adf-people-cloud-option-not-active:not(.adf-people-cloud:active){background:inherit;color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-title{color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-title--focus{color:var(--theme-primary-color)}.adf-people-cloud-list{margin:5px 0;padding:10px 0}.adf-people-cloud-option-active:not(.adf:disabled){color:var(--adf-theme-foreground-text-color)}.adf-people-cloud-option-not-active:not(.adf:active){color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-row{display:flex;align-items:center;column-gap:10px}.adf-people-cloud-pic{background:var(--theme-primary-color);display:flex;justify-content:center;align-items:center;width:40px;height:40px;border-radius:100px;text-transform:uppercase}.adf-start-task-cloud-error{margin-top:-10px;position:absolute;height:20px}.adf-start-task-cloud-error-message{padding-right:8px;height:16px;line-height:1.33;width:auto}.adf-error,.adf-error-text,.adf-error-icon{color:var(--theme-warn-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }, { kind: "pipe", type: FullNamePipe, name: "fullName" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i10.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i10.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i10.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], animations: [
|
|
419
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudComponent, deps: [{ token: i1.IdentityUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
420
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PeopleCloudComponent, isStandalone: true, selector: "adf-cloud-people", inputs: { appName: "appName", mode: "mode", roles: "roles", validate: "validate", readOnly: "readOnly", required: "required", preSelectUsers: "preSelectUsers", excludedUsers: "excludedUsers", groupsRestriction: "groupsRestriction", userChipsCtrl: "userChipsCtrl", searchUserCtrl: "searchUserCtrl", title: "title", placeholder: "placeholder", hideInputOnSingleSelection: "hideInputOnSingleSelection", formFieldAppearance: "formFieldAppearance", formFieldSubscriptSizing: "formFieldSubscriptSizing", showErrors: "showErrors", showFullNameOnHover: "showFullNameOnHover" }, outputs: { selectUser: "selectUser", removeUser: "removeUser", changedUsers: "changedUsers", warning: "warning" }, providers: [FullNamePipe], viewQueries: [{ propertyName: "userInput", first: true, predicate: ["userInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<form>\n <mat-form-field\n [subscriptSizing]=\"formFieldSubscriptSizing\"\n [floatLabel]=\"'auto'\"\n class=\"adf-people-cloud\"\n [class.adf-invalid]=\"hasError() && isDirty()\"\n >\n <ng-content *ngIf=\"!title\" select=\"[label]\" />\n <mat-label *ngIf=\"title\">{{ title | translate }}</mat-label>\n <mat-chip-grid #userMultipleChipList data-automation-id=\"adf-cloud-people-chip-list\">\n <mat-chip-row\n *ngFor=\"let user of selectedUsers\"\n [removable]=\"!user.readonly\"\n [attr.data-automation-id]=\"'adf-people-cloud-chip-' + user.username\"\n (removed)=\"onRemove(user)\"\n [disabled]=\"isReadonly() || isValidationLoading()\"\n title=\"{{ (user.readonly ? 'ADF_CLOUD_GROUPS.MANDATORY' : '') | translate }}\"\n [matTooltip]=\"showFullNameOnHover ? (user | fullName : true) : user.email\"\n >\n {{ user | fullName }}\n <mat-icon\n matChipRemove\n *ngIf=\"!(user.readonly || readOnly)\"\n [attr.data-automation-id]=\"'adf-people-cloud-chip-remove-icon-' + user.username\"\n >\n cancel\n </mat-icon>\n </mat-chip-row>\n <input\n matInput\n [disabled]=\"isReadonly()\"\n [formControl]=\"searchUserCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"userMultipleChipList\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n (focus)=\"setFocus(true)\"\n (blur)=\"setFocus(false); markAsTouched()\"\n class=\"adf-cloud-input\"\n data-automation-id=\"adf-people-cloud-search-input\"\n #userInput\n />\n </mat-chip-grid>\n\n <mat-autocomplete\n autoActiveFirstOption\n class=\"adf-people-cloud-list\"\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onSelect($event.option.value)\"\n [displayWith]=\"getDisplayName\"\n >\n <ng-container *ngIf=\"(searchUsers$ | async)?.length; else noResults\">\n <mat-option *ngFor=\"let user of searchUsers$ | async; let i = index\" [value]=\"user\" class=\"adf-people-cloud-option-active\">\n <div class=\"adf-people-cloud-row\" id=\"adf-people-cloud-user-{{ user.username }}\" data-automation-id=\"adf-people-cloud-row\">\n <div [outerHTML]=\"user | usernameInitials : 'adf-people-cloud-pic'\"></div>\n <span class=\"adf-people-label-name\"> {{ user | fullName : true }}</span>\n </div>\n </mat-option>\n </ng-container>\n <ng-template #noResults>\n <mat-option\n *ngIf=\"searchUserCtrl.hasError('searchTypingError') && !searchLoading\"\n disabled\n class=\"adf-people-cloud-option-not-active\"\n data-automation-id=\"adf-people-cloud-no-results\"\n >\n <span> {{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: searchedValue } }}</span>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n </mat-form-field>\n\n <mat-progress-bar *ngIf=\"validationLoading\" mode=\"indeterminate\" />\n\n <div class=\"adf-error-container adf-error-messages-container\" *ngIf=\"showErrors\">\n <mat-error *ngIf=\"hasPreselectError() && !isValidationLoading()\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: validateUsersMessage } }}</div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('pattern')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_PATTERN' | translate : { pattern: getValidationPattern() } }}</div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('maxlength')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">\n {{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_MAX_LENGTH' | translate : { requiredLength: getValidationMaxLength() } }}\n </div>\n </mat-error>\n <mat-error *ngIf=\"searchUserCtrl.hasError('minlength')\" [@transitionMessages]=\"subscriptAnimationState\" class=\"adf-error\">\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">\n {{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.INVALID_MIN_LENGTH' | translate : { requiredLength: getValidationMinLength() } }}\n </div>\n </mat-error>\n <mat-error\n *ngIf=\"(searchUserCtrl.hasError('required') || userChipsCtrl.hasError('required')) && isDirty()\"\n [@transitionMessages]=\"subscriptAnimationState\"\n class=\"adf-error\"\n >\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_PEOPLE_GROUPS.ERROR.REQUIRED' | translate }}</div>\n </mat-error>\n <mat-error\n *ngIf=\"searchUserCtrl.hasError('searchTypingError') && !this.isFocused\"\n [@transitionMessages]=\"subscriptAnimationState\"\n data-automation-id=\"invalid-users-typing-error\"\n class=\"adf-error\"\n >\n <mat-icon class=\"adf-error-icon\">error_outline</mat-icon>\n <div class=\"adf-error-text\">{{ 'ADF_CLOUD_USERS.ERROR.NOT_FOUND' | translate : { userName: searchedValue } }}</div>\n </mat-error>\n </div>\n</form>\n", styles: [".adf-people-cloud{width:100%}.adf-people-cloud-option-not-active:not(.adf-people-cloud:active){background:inherit;color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-title{color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-title--focus{color:var(--theme-primary-color)}.adf-people-cloud-list{margin:5px 0;padding:10px 0}.adf-people-cloud-option-active:not(.adf:disabled){color:var(--adf-theme-foreground-text-color)}.adf-people-cloud-option-not-active:not(.adf:active){color:var(--adf-theme-foreground-secondary-text-color)}.adf-people-cloud-row{display:flex;align-items:center;column-gap:10px}.adf-people-cloud-pic{background:var(--theme-primary-color);display:flex;justify-content:center;align-items:center;width:40px;height:40px;border-radius:100px;text-transform:uppercase}.adf-start-task-cloud-error{margin-top:-10px;position:absolute;height:20px}.adf-start-task-cloud-error-message{padding-right:8px;height:16px;line-height:1.33;width:auto}.adf-error,.adf-error-text,.adf-error-icon{color:var(--theme-warn-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: InitialUsernamePipe, name: "usernameInitials" }, { kind: "pipe", type: FullNamePipe, name: "fullName" }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i9.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i10.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i10.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i10.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i10.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], animations: [
|
|
421
421
|
trigger('transitionMessages', [
|
|
422
422
|
state('enter', style({ opacity: 1, transform: 'translateY(0%)' })),
|
|
423
423
|
transition('void => enter', [style({ opacity: 0, transform: 'translateY(-100%)' }), animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)')])
|
|
424
424
|
])
|
|
425
425
|
], encapsulation: i0.ViewEncapsulation.None }); }
|
|
426
426
|
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudComponent, decorators: [{
|
|
428
428
|
type: Component,
|
|
429
429
|
args: [{ selector: 'adf-cloud-people', standalone: true, imports: [
|
|
430
430
|
CommonModule,
|
|
@@ -494,4 +494,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
494
494
|
type: ViewChild,
|
|
495
495
|
args: ['userInput']
|
|
496
496
|
}] } });
|
|
497
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakYsT0FBTyxFQUEwQixrQkFBa0IsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFF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UTtzQkFEUCxLQUFLO2dCQVVOLGNBQWM7c0JBRGIsS0FBSztnQkFRTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFRTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLE9BQU87c0JBRE4sTUFBTTtnQkFJQyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVsbE5hbWVQaXBlLCBJbml0aWFsVXNlcm5hbWVQaXBlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IElkZW50aXR5VXNlck1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2lkZW50aXR5LXVzZXIubW9kZWwnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBTdWJzY3JpcHRTaXppbmcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IElkZW50aXR5VXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1wZW9wbGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBJbml0aWFsVXNlcm5hbWVQaXBlLFxuICAgICAgICBGdWxsTmFtZVBpcGUsXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtGdWxsTmFtZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZW9wbGUtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Blb3BsZS1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcigndHJhbnNpdGlvbk1lc3NhZ2VzJywgW1xuICAgICAgICAgICAgc3RhdGUoJ2VudGVyJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDAlKScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBlbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyB9KSwgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknKV0pXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBlb3BsZUNsb3VkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBOYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gSWYgc3BlY2lmaWVkLCB0aGlzIHNob3dzIHRoZSB1c2VycyB3aG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZztcblxuICAgIC8qKiBVc2VyIHNlbGVjdGlvbiBtb2RlIChzaW5nbGUvbXVsdGlwbGUpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogQ29tcG9uZW50U2VsZWN0aW9uTW9kZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIFJvbGUgbmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIGxpc3RlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJvbGVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZmxhZyBlbmFibGVzIHRoZSB2YWxpZGF0aW9uIG9uIHRoZSBwcmVTZWxlY3RVc2VycyBwYXNzZWQgYXMgaW5wdXQuXG4gICAgICogSW4gY2FzZSB0aGUgZmxhZyBpcyB0cnVlIHRoZSBjb21wb25lbnRzIGNhbGwgdGhlIGlkZW50aXR5IHNlcnZpY2UgdG8gdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB0aGUgaW5mb3JtYXRpb24gcGFzc2VkIGFzIGlucHV0LlxuICAgICAqIE90aGVyd2lzZSwgbm8gY2hlY2sgd2lsbCBiZSBkb25lLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsaWRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIGluZm8gaW4gcmVhZG9ubHkgbW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE1hcmsgdGhpcyBmaWVsZCBhcyByZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIHVzZXJzIHRvIGJlIHByZS1zZWxlY3RlZC4gQWxsIHVzZXJzIGluIHRoZVxuICAgICAqIGFycmF5IGFyZSBwcmUtc2VsZWN0ZWQgaW4gbXVsdGkgc2VsZWN0aW9uIG1vZGUsIGJ1dCBvbmx5IHRoZSBmaXJzdCB1c2VyXG4gICAgICogaXMgcHJlLXNlbGVjdGVkIGluIHNpbmdsZSBzZWxlY3Rpb24gbW9kZS5cbiAgICAgKiBNYW5kYXRvcnkgcHJvcGVydGllcyBhcmU6IGlkLCBlbWFpbCwgdXNlcm5hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByZVNlbGVjdFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiB1c2VycyB0byBiZSBleGNsdWRlZC5cbiAgICAgKiBNYW5kYXRvcnkgcHJvcGVydGllcyBhcmU6IGlkLCBlbWFpbCwgdXNlcm5hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4Y2x1ZGVkVXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIGdyb3VwcyB0byByZXN0cmljdCB1c2VyIHNlYXJjaGVzLlxuICAgICAqIE1hbmRhdG9yeSBwcm9wZXJ0eSBpcyBncm91cCBuYW1lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm91cHNSZXN0cmljdGlvbjogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBGb3JtQ29udHJvbCB0byBsaXN0IG9mIHVzZXJzICovXG4gICAgQElucHV0KClcbiAgICB1c2VyQ2hpcHNDdHJsOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSk7XG5cbiAgICAvKiogRm9ybUNvbnRyb2wgdG8gc2VhcmNoIHRoZSB1c2VyICovXG4gICAgQElucHV0KClcbiAgICBzZWFyY2hVc2VyQ3RybCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9KTtcblxuICAgIC8qKlxuICAgICAqIExhYmVsIHRyYW5zbGF0aW9uIGtleVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIGZvciB0aGUgaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBtYXRJbnB1dCBhc3NvY2lhdGVkIHdpdGggdGhlIGNoaXAgZ3JpZCB3aGVuIGEgc2luZ2xlIHVzZXIgaXMgc2VsZWN0ZWQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLlxuICAgICAqIFRoZSBpbnB1dCB3aWxsIGJlIHNob3duIGFnYWluIHdoZW4gdGhlIHVzZXIgaXMgcmVtb3ZlZCB1c2luZyB0aGUgaWNvbiBvbiB0aGUgY2hpcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNYXRlcmlhbCBmb3JtIGZpZWxkIGFwcGVhcmFuY2UgKGZpbGwgLyBvdXRsaW5lKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUZpZWxkQXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIE1hdGVyaWFsIGZvcm0gZmllbGQgc3Vic2NyaXB0IHNpemluZyAoZml4ZWQgLyBkeW5hbWljKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUZpZWxkU3Vic2NyaXB0U2l6aW5nOiBTdWJzY3JpcHRTaXppbmcgPSAnZml4ZWQnO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvcnMgdW5kZXIgdGhlIGZvcm0gZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFcnJvcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgZnVsbCBuYW1lIG9mIHRoZSB1c2VyIG9uIGhvdmVyIGluIHRoZSBjaGlwc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Z1bGxOYW1lT25Ib3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHVzZXIgaXMgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0VXNlciA9IG5ldyBFdmVudEVtaXR0ZXI8SWRlbnRpdHlVc2VyTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgc2VsZWN0ZWQgdXNlciBpcyByZW1vdmVkIGluIG11bHRpIHNlbGVjdGlvbiBtb2RlLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlbW92ZVVzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPElkZW50aXR5VXNlck1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHVzZXIgc2VsZWN0aW9uIGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VkVXNlcnMgPSBuZXcgRXZlbnRFbWl0dGVyPElkZW50aXR5VXNlck1vZGVsW10+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIHdhcm5pbmcgb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHdhcm5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3VzZXJJbnB1dCcpXG4gICAgcHJpdmF0ZSB1c2VySW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICBzZWxlY3RlZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG4gICAgaW52YWxpZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICBzZWFyY2hVc2VycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElkZW50aXR5VXNlck1vZGVsW10+KHRoaXMuc2VhcmNoVXNlcnMpO1xuICAgIHN1YnNjcmlwdEFuaW1hdGlvblN0YXRlOiBzdHJpbmcgPSAnZW50ZXInO1xuICAgIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgICB0b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICB2YWxpZGF0ZVVzZXJzTWVzc2FnZTogc3RyaW5nO1xuICAgIHNlYXJjaGVkVmFsdWUgPSAnJztcblxuICAgIHZhbGlkYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgc2VhcmNoTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgdHlwaW5nVW5pcXVlVmFsdWVOb3RFbXB0eSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRlbnRpdHlVc2VyU2VydmljZTogSWRlbnRpdHlVc2VyU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRTZWFyY2goKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhc1ByZXNlbGVjdGVkVXNlcnNDaGFuZ2VkKGNoYW5nZXMpIHx8IHRoaXMuaGFzTW9kZUNoYW5nZWQoY2hhbmdlcykgfHwgdGhpcy5pc1ZhbGlkYXRpb25DaGFuZ2VkKGNoYW5nZXMpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNQcmVTZWxlY3RVc2VycygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkUHJlU2VsZWN0VXNlcnMoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcmVzZWxlY3RlZFVzZXJzQ2xlYXJlZChjaGFuZ2VzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRVc2VycyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkb25seSgpICYmIHRoaXMuc2VhcmNoVXNlckN0cmwuZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNSZWFkb25seSgpICYmIHRoaXMuc2VhcmNoVXNlckN0cmwuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFVzZXJzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmlzU2luZ2xlTW9kZSgpICYmIHRoaXMudXNlcklucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTdHJlYW0oKTtcbiAgICAgICAgdGhpcy50eXBpbmdVbmlxdWVWYWx1ZU5vdEVtcHR5JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChuYW1lOiBzdHJpbmcpID0+IG5hbWUubGVuZ3RoID49IDEpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobmFtZTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2Uuc2VhcmNoKG5hbWUsIHsgcm9sZXM6IHRoaXMucm9sZXMsIHdpdGhpbkFwcGxpY2F0aW9uOiB0aGlzLmFwcE5hbWUsIGdyb3VwczogdGhpcy5ncm91cHNSZXN0cmljdGlvbiB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKHVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTZWFyY2hVc2VycygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXJzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcigodXNlcikgPT4gIXRoaXMuaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHVzZXIpICYmICF0aGlzLmlzRXhjbHVkZWRVc2VyKHVzZXIpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcjogSWRlbnRpdHlVc2VyTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VycyQubmV4dCh0aGlzLnNlYXJjaFVzZXJzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVN0cmVhbSgpIHtcbiAgICAgICAgY29uc3QgdHlwaW5nVmFsdWVGcm9tQ29udHJvbCQgPSB0aGlzLnNlYXJjaFVzZXJDdHJsLnZhbHVlQ2hhbmdlcztcblxuICAgICAgICBjb25zdCB0eXBpbmdWYWx1ZVR5cGVTdGluZyQgPSB0eXBpbmdWYWx1ZUZyb21Db250cm9sJC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHR5cGluZ1ZhbHVlSGFuZGxlRXJyb3JNZXNzYWdlJCA9IHR5cGluZ1ZhbHVlVHlwZVN0aW5nJC5waXBlKFxuICAgICAgICAgICAgdGFwKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VHlwaW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHR5cGluZ1ZhbHVlRGVib3VuY2VkVW5pcXVlJCA9IHR5cGluZ1ZhbHVlSGFuZGxlRXJyb3JNZXNzYWdlJC5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgICAgICB0aGlzLnR5cGluZ1VuaXF1ZVZhbHVlTm90RW1wdHkkID0gdHlwaW5nVmFsdWVEZWJvdW5jZWRVbmlxdWUkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlc2V0U2VhcmNoVXNlcnMoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRhdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHNlYXJjaFVzZXI6IElkZW50aXR5VXNlck1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVXNlcnMgJiYgdGhpcy5zZWxlY3RlZFVzZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kKChzZWxlY3RlZFVzZXIpID0+IHRoaXMuZXF1YWxzVXNlcnMoc2VsZWN0ZWRVc2VyLCBzZWFyY2hVc2VyKSk7XG5cbiAgICAgICAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4Y2x1ZGVkVXNlcihzZWFyY2hVc2VyOiBJZGVudGl0eVVzZXJNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5leGNsdWRlZFVzZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLmV4Y2x1ZGVkVXNlcnMuZmluZCgoZXhjbHVkZWRVc2VyKSA9PiB0aGlzLmVxdWFsc1VzZXJzKGV4Y2x1ZGVkVXNlciwgc2VhcmNoVXNlcikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRQcmVTZWxlY3RVc2VycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVNb2RlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFt0aGlzLnByZVNlbGVjdFVzZXJzWzBdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMucmVtb3ZlRHVwbGljYXRlZFVzZXJzKHRoaXMucHJlU2VsZWN0VXNlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlckNoaXBzQ3RybC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkVXNlcnNbMF0udXNlcm5hbWUpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZVByZXNlbGVjdFVzZXJzKCk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXNlbGVjdGVkVXNlcnMoKTogSWRlbnRpdHlVc2VyTW9kZWxbXSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTW9kZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXMucHJlU2VsZWN0VXNlcnNbMF1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlRHVwbGljYXRlZFVzZXJzKHRoaXMucHJlU2VsZWN0VXNlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZVByZXNlbGVjdFVzZXJzKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCB1c2VyIG9mIHRoaXMuZ2V0UHJlc2VsZWN0ZWRVc2VycygpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSAoXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNlYXJjaCh1c2VyLnVzZXJuYW1lLCB7IHJvbGVzOiB0aGlzLnJvbGVzLCB3aXRoaW5BcHBsaWNhdGlvbjogdGhpcy5hcHBOYW1lLCBncm91cHM6IHRoaXMuZ3JvdXBzUmVzdHJpY3Rpb24gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgICAgIClbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZXF1YWxzVXNlcnModXNlciwgdmFsaWRhdGlvblJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMucHVzaCh1c2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZFVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrUHJlc2VsZWN0VmFsaWRhdGlvbkVycm9ycygpO1xuICAgIH1cblxuICAgIGVxdWFsc1VzZXJzKHByZXNlbGVjdGVkVXNlcjogSWRlbnRpdHlVc2VyTW9kZWwsIGlkZW50aXR5VXNlcjogSWRlbnRpdHlVc2VyTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHByZXNlbGVjdGVkVXNlciAmJiBpZGVudGl0eVVzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZVByb3BlcnR5SWRlbnRpZmllcnMgPSBbJ2lkJywgJ3VzZXJuYW1lJywgJ2VtYWlsJ107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKHByZXNlbGVjdGVkVXNlcikpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJlc2VsZWN0ZWRVc2VyW3Byb3BlcnR5XSAhPT0gdW5kZWZpbmVkICYmIHVuaXF1ZVByb3BlcnR5SWRlbnRpZmllcnMuaW5jbHVkZXMocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVzZWxlY3RlZFVzZXJbcHJvcGVydHldID09PSBpZGVudGl0eVVzZXJbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVtb3ZlRHVwbGljYXRlZFVzZXJzKHVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKTogSWRlbnRpdHlVc2VyTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB1c2Vycy5maWx0ZXIoXG4gICAgICAgICAgICAodXNlciwgaW5kZXgsIHNlbGYpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPT09IHNlbGYuZmluZEluZGV4KChhdXhVc2VyKSA9PiB1c2VyLmlkID09PSBhdXhVc2VyLmlkICYmIHVzZXIudXNlcm5hbWUgPT09IGF1eFVzZXIudXNlcm5hbWUgJiYgdXNlci5lbWFpbCA9PT0gYXV4VXNlci5lbWFpbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdCh1c2VyOiBJZGVudGl0eVVzZXJNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RVc2VyLmVtaXQodXNlcik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGVNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHVzZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbdXNlcl07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlkZUlucHV0T25TaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICB0aGlzLnVzZXJDaGlwc0NvbnRyb2xWYWx1ZSh0aGlzLnNlbGVjdGVkVXNlcnNbMF0udXNlcm5hbWUpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZWRVc2Vycy5lbWl0KHRoaXMuc2VsZWN0ZWRVc2Vycyk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VhcmNoVXNlcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVtb3ZlKHVzZXJUb1JlbW92ZTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVVc2VyLmVtaXQodXNlclRvUmVtb3ZlKTtcbiAgICAgICAgdGhpcy5yZW1vdmVVc2VyRnJvbVNlbGVjdGVkKHVzZXJUb1JlbW92ZSk7XG4gICAgICAgIHRoaXMuY2hhbmdlZFVzZXJzLmVtaXQodGhpcy5zZWxlY3RlZFVzZXJzKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudXNlckNoaXBzQ29udHJvbFZhbHVlKCcnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXNlckNoaXBzQ29udHJvbFZhbHVlKHRoaXMuc2VsZWN0ZWRVc2Vyc1swXS51c2VybmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB0aGlzLnNlYXJjaFVzZXJDdHJsLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlVXNlckZyb21WYWxpZGF0aW9uKHVzZXJUb1JlbW92ZSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUHJlc2VsZWN0VmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1ByZXNlbGVjdFZhbGlkYXRpb25FcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVkVXNlcnModGhpcy5pbnZhbGlkVXNlcnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmludmFsaWRVc2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlSW52YWxpZFVzZXJzTWVzc2FnZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53YXJuaW5nLmVtaXQoe1xuICAgICAgICAgICAgbWVzc2FnZTogJ0lOVkFMSURfUFJFU0VMRUNURURfVVNFUlMnLFxuICAgICAgICAgICAgdXNlcnM6IHRoaXMuaW52YWxpZFVzZXJzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlVXNlckZyb21TZWxlY3RlZCh7IGlkLCB1c2VybmFtZSwgZW1haWwgfTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kSW5kZXgoKHVzZXIpID0+IHVzZXIuaWQgPT09IGlkICYmIHVzZXIudXNlcm5hbWUgPT09IHVzZXJuYW1lICYmIHVzZXIuZW1haWwgPT09IGVtYWlsKTtcblxuICAgICAgICBpZiAoaW5kZXhUb1JlbW92ZSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVVzZXJGcm9tVmFsaWRhdGlvbih7IGlkLCB1c2VybmFtZSwgZW1haWwgfTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuaW52YWxpZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gaWQgJiYgdXNlci51c2VybmFtZSA9PT0gdXNlcm5hbWUgJiYgdXNlci5lbWFpbCA9PT0gZW1haWwpO1xuXG4gICAgICAgIGlmIChpbmRleFRvUmVtb3ZlICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMuc3BsaWNlKGluZGV4VG9SZW1vdmUsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUludmFsaWRVc2Vyc01lc3NhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgPSAnJztcblxuICAgICAgICB0aGlzLmludmFsaWRVc2Vycy5mb3JFYWNoKChpbnZhbGlkVXNlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5pbnZhbGlkVXNlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgKz0gYCR7aW52YWxpZFVzZXIudXNlcm5hbWV9IGA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgKz0gYCR7aW52YWxpZFVzZXIudXNlcm5hbWV9LCBgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNQcmVzZWxlY3RFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZFVzZXJzICYmIHRoaXMuaW52YWxpZFVzZXJzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0RGlzcGxheU5hbWUodXNlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGdWxsTmFtZVBpcGUucHJvdG90eXBlLnRyYW5zZm9ybSh1c2VyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTXVsdGlwbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnbXVsdGlwbGUnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnc2luZ2xlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2luZ2xlU2VsZWN0aW9uUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2luZ2xlTW9kZSgpICYmIHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGggPT09IDEgJiYgdGhpcy5zZWxlY3RlZFVzZXJzWzBdLnJlYWRvbmx5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzUHJlU2VsZWN0VXNlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZVNlbGVjdFVzZXJzICYmIHRoaXMucHJlU2VsZWN0VXNlcnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc01vZGVDaGFuZ2VkKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNoYW5nZXM/Lm1vZGUgJiYgY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkYXRpb25DaGFuZ2VkKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNoYW5nZXM/LnZhbGlkYXRlICYmIGNoYW5nZXMudmFsaWRhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLnZhbGlkYXRlLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNQcmVzZWxlY3RlZFVzZXJzQ2hhbmdlZChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzPy5wcmVTZWxlY3RVc2VycyAmJiBjaGFuZ2VzLnByZVNlbGVjdFVzZXJzLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5wcmVTZWxlY3RVc2Vycy5wcmV2aW91c1ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzUHJlc2VsZWN0ZWRVc2Vyc0NsZWFyZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gY2hhbmdlcz8ucHJlU2VsZWN0VXNlcnM/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTZWFyY2hVc2VycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hVc2VycyA9IFtdO1xuICAgICAgICB0aGlzLnNlYXJjaFVzZXJzJC5uZXh0KHRoaXMuc2VhcmNoVXNlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VHlwaW5nRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgIHNlYXJjaFR5cGluZ0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgLi4udGhpcy5zZWFyY2hVc2VyQ3RybC5lcnJvcnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1c2VyQ2hpcHNDb250cm9sVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJDaGlwc0N0cmwuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVzZXJDaGlwc0N0cmwubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy51c2VyQ2hpcHNDdHJsLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZFVzZXJzKCk6IElkZW50aXR5VXNlck1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXJzO1xuICAgIH1cblxuICAgIGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRPbmx5IHx8IHRoaXMuaXNTaW5nbGVTZWxlY3Rpb25SZWFkb25seSgpO1xuICAgIH1cblxuICAgIGlzVmFsaWRhdGlvbkxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRhdGlvbkVuYWJsZWQoKSAmJiB0aGlzLnZhbGlkYXRpb25Mb2FkaW5nO1xuICAgIH1cblxuICAgIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaXNUb3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b3VjaGVkO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcnMgJiYgISF0aGlzLnNlbGVjdGVkVXNlcnMubGVuZ3RoO1xuICAgIH1cblxuICAgIGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG91Y2hlZCgpICYmICF0aGlzLmlzU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBzZXRGb2N1cyhpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoVXNlckN0cmwuZXJyb3JzO1xuICAgIH1cblxuICAgIGdldFZhbGlkYXRpb25QYXR0ZXJuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDdHJsLmVycm9ycy5wYXR0ZXJuLnJlcXVpcmVkUGF0dGVybjtcbiAgICB9XG5cbiAgICBnZXRWYWxpZGF0aW9uTWF4TGVuZ3RoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDdHJsLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0VmFsaWRhdGlvbk1pbkxlbmd0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2VyQ3RybC5lcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoO1xuICAgIH1cbn1cbiIsIjxmb3JtPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cImZvcm1GaWVsZFN1YnNjcmlwdFNpemluZ1wiXG4gICAgICAgIFtmbG9hdExhYmVsXT1cIidhdXRvJ1wiXG4gICAgICAgIGNsYXNzPVwiYWRmLXBlb3BsZS1jbG91ZFwiXG4gICAgICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCJoYXNFcnJvcigpICYmIGlzRGlydHkoKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudCAqbmdJZj1cIiF0aXRsZVwiIHNlbGVjdD1cIltsYWJlbF1cIiAvPlxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwidGl0bGVcIj57eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LWNoaXAtZ3JpZCAjdXNlck11bHRpcGxlQ2hpcExpc3QgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWNsb3VkLXBlb3BsZS1jaGlwLWxpc3RcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBzZWxlY3RlZFVzZXJzXCJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cIiF1c2VyLnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1wZW9wbGUtY2xvdWQtY2hpcC0nICsgdXNlci51c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwib25SZW1vdmUodXNlcilcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5KCkgfHwgaXNWYWxpZGF0aW9uTG9hZGluZygpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICh1c2VyLnJlYWRvbmx5ID8gJ0FERl9DTE9VRF9HUk9VUFMuTUFOREFUT1JZJyA6ICcnKSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvd0Z1bGxOYW1lT25Ib3ZlciA/ICh1c2VyIHwgZnVsbE5hbWUgOiB0cnVlKSA6IHVzZXIuZW1haWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHVzZXIgfCBmdWxsTmFtZSB9fVxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISh1c2VyLnJlYWRvbmx5IHx8IHJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLXBlb3BsZS1jbG91ZC1jaGlwLXJlbW92ZS1pY29uLScgKyB1c2VyLnVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHkoKVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFVzZXJDdHJsXCJcbiAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwidXNlck11bHRpcGxlQ2hpcExpc3RcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwic2V0Rm9jdXModHJ1ZSlcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cInNldEZvY3VzKGZhbHNlKTsgbWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jbG91ZC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXBlb3BsZS1jbG91ZC1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICN1c2VySW5wdXRcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cblxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtbGlzdFwiXG4gICAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImdldERpc3BsYXlOYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzZWFyY2hVc2VycyQgfCBhc3luYyk/Lmxlbmd0aDsgZWxzZSBub1Jlc3VsdHNcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBzZWFyY2hVc2VycyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiIFt2YWx1ZV09XCJ1c2VyXCIgY2xhc3M9XCJhZGYtcGVvcGxlLWNsb3VkLW9wdGlvbi1hY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtcm93XCIgaWQ9XCJhZGYtcGVvcGxlLWNsb3VkLXVzZXIte3sgdXNlci51c2VybmFtZSB9fVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1wZW9wbGUtY2xvdWQtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtvdXRlckhUTUxdPVwidXNlciB8IHVzZXJuYW1lSW5pdGlhbHMgOiAnYWRmLXBlb3BsZS1jbG91ZC1waWMnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1wZW9wbGUtbGFiZWwtbmFtZVwiPiB7eyB1c2VyIHwgZnVsbE5hbWUgOiB0cnVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9SZXN1bHRzPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoVXNlckN0cmwuaGFzRXJyb3IoJ3NlYXJjaFR5cGluZ0Vycm9yJykgJiYgIXNlYXJjaExvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtb3B0aW9uLW5vdC1hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtcGVvcGxlLWNsb3VkLW5vLXJlc3VsdHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7ICdBREZfQ0xPVURfVVNFUlMuRVJST1IuTk9UX0ZPVU5EJyB8IHRyYW5zbGF0ZSA6IHsgdXNlck5hbWU6IHNlYXJjaGVkVmFsdWUgfSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwidmFsaWRhdGlvbkxvYWRpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLWNvbnRhaW5lciBhZGYtZXJyb3ItbWVzc2FnZXMtY29udGFpbmVyXCIgKm5nSWY9XCJzaG93RXJyb3JzXCI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNQcmVzZWxlY3RFcnJvcigpICYmICFpc1ZhbGlkYXRpb25Mb2FkaW5nKClcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9VU0VSUy5FUlJPUi5OT1RfRk9VTkQnIHwgdHJhbnNsYXRlIDogeyB1c2VyTmFtZTogdmFsaWRhdGVVc2Vyc01lc3NhZ2UgfSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInNlYXJjaFVzZXJDdHJsLmhhc0Vycm9yKCdwYXR0ZXJuJylcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLklOVkFMSURfUEFUVEVSTicgfCB0cmFuc2xhdGUgOiB7IHBhdHRlcm46IGdldFZhbGlkYXRpb25QYXR0ZXJuKCkgfSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInNlYXJjaFVzZXJDdHJsLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT1cInN1YnNjcmlwdEFuaW1hdGlvblN0YXRlXCIgY2xhc3M9XCJhZGYtZXJyb3JcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1lcnJvci1pY29uXCI+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj5cbiAgICAgICAgICAgICAgICB7eyAnQURGX0NMT1VEX1BFT1BMRV9HUk9VUFMuRVJST1IuSU5WQUxJRF9NQVhfTEVOR1RIJyB8IHRyYW5zbGF0ZSA6IHsgcmVxdWlyZWRMZW5ndGg6IGdldFZhbGlkYXRpb25NYXhMZW5ndGgoKSB9IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcignbWlubGVuZ3RoJylcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLklOVkFMSURfTUlOX0xFTkdUSCcgfCB0cmFuc2xhdGUgOiB7IHJlcXVpcmVkTGVuZ3RoOiBnZXRWYWxpZGF0aW9uTWluTGVuZ3RoKCkgfSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAqbmdJZj1cIihzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcigncmVxdWlyZWQnKSB8fCB1c2VyQ2hpcHNDdHJsLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSAmJiBpc0RpcnR5KClcIlxuICAgICAgICAgICAgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwic3Vic2NyaXB0QW5pbWF0aW9uU3RhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZXJyb3JcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcignc2VhcmNoVHlwaW5nRXJyb3InKSAmJiAhdGhpcy5pc0ZvY3VzZWRcIlxuICAgICAgICAgICAgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwic3Vic2NyaXB0QW5pbWF0aW9uU3RhdGVcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiaW52YWxpZC11c2Vycy10eXBpbmctZXJyb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZXJyb3JcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9VU0VSUy5FUlJPUi5OT1RfRk9VTkQnIHwgdHJhbnNsYXRlIDogeyB1c2VyTmFtZTogc2VhcmNoZWRWYWx1ZSB9IH19PC9kaXY+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
497
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcGVvcGxlL2NvbXBvbmVudHMvcGVvcGxlLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFFSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHakYsT0FBTyxFQUEwQixrQkFBa0IsRUFBbUIsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFF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UTtzQkFEUCxLQUFLO2dCQVVOLGNBQWM7c0JBRGIsS0FBSztnQkFRTixhQUFhO3NCQURaLEtBQUs7Z0JBUU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLGFBQWE7c0JBRFosS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFRTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtOLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsWUFBWTtzQkFEWCxNQUFNO2dCQUtQLE9BQU87c0JBRE4sTUFBTTtnQkFJQyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVsbE5hbWVQaXBlLCBJbml0aWFsVXNlcm5hbWVQaXBlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IElkZW50aXR5VXNlck1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2lkZW50aXR5LXVzZXIubW9kZWwnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBTdWJzY3JpcHRTaXppbmcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IElkZW50aXR5VXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1wZW9wbGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBJbml0aWFsVXNlcm5hbWVQaXBlLFxuICAgICAgICBGdWxsTmFtZVBpcGUsXG4gICAgICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtGdWxsTmFtZVBpcGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wZW9wbGUtY2xvdWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Blb3BsZS1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcigndHJhbnNpdGlvbk1lc3NhZ2VzJywgW1xuICAgICAgICAgICAgc3RhdGUoJ2VudGVyJywgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDAlKScgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBlbnRlcicsIFtzdHlsZSh7IG9wYWNpdHk6IDAsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJyB9KSwgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknKV0pXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBlb3BsZUNsb3VkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBOYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gSWYgc3BlY2lmaWVkLCB0aGlzIHNob3dzIHRoZSB1c2VycyB3aG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZztcblxuICAgIC8qKiBVc2VyIHNlbGVjdGlvbiBtb2RlIChzaW5nbGUvbXVsdGlwbGUpLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogQ29tcG9uZW50U2VsZWN0aW9uTW9kZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIFJvbGUgbmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIGxpc3RlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJvbGVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZmxhZyBlbmFibGVzIHRoZSB2YWxpZGF0aW9uIG9uIHRoZSBwcmVTZWxlY3RVc2VycyBwYXNzZWQgYXMgaW5wdXQuXG4gICAgICogSW4gY2FzZSB0aGUgZmxhZyBpcyB0cnVlIHRoZSBjb21wb25lbnRzIGNhbGwgdGhlIGlkZW50aXR5IHNlcnZpY2UgdG8gdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB0aGUgaW5mb3JtYXRpb24gcGFzc2VkIGFzIGlucHV0LlxuICAgICAqIE90aGVyd2lzZSwgbm8gY2hlY2sgd2lsbCBiZSBkb25lLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsaWRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIGluZm8gaW4gcmVhZG9ubHkgbW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE1hcmsgdGhpcyBmaWVsZCBhcyByZXF1aXJlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIHVzZXJzIHRvIGJlIHByZS1zZWxlY3RlZC4gQWxsIHVzZXJzIGluIHRoZVxuICAgICAqIGFycmF5IGFyZSBwcmUtc2VsZWN0ZWQgaW4gbXVsdGkgc2VsZWN0aW9uIG1vZGUsIGJ1dCBvbmx5IHRoZSBmaXJzdCB1c2VyXG4gICAgICogaXMgcHJlLXNlbGVjdGVkIGluIHNpbmdsZSBzZWxlY3Rpb24gbW9kZS5cbiAgICAgKiBNYW5kYXRvcnkgcHJvcGVydGllcyBhcmU6IGlkLCBlbWFpbCwgdXNlcm5hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByZVNlbGVjdFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiB1c2VycyB0byBiZSBleGNsdWRlZC5cbiAgICAgKiBNYW5kYXRvcnkgcHJvcGVydGllcyBhcmU6IGlkLCBlbWFpbCwgdXNlcm5hbWVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGV4Y2x1ZGVkVXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIGdyb3VwcyB0byByZXN0cmljdCB1c2VyIHNlYXJjaGVzLlxuICAgICAqIE1hbmRhdG9yeSBwcm9wZXJ0eSBpcyBncm91cCBuYW1lXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBncm91cHNSZXN0cmljdGlvbjogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBGb3JtQ29udHJvbCB0byBsaXN0IG9mIHVzZXJzICovXG4gICAgQElucHV0KClcbiAgICB1c2VyQ2hpcHNDdHJsOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSk7XG5cbiAgICAvKiogRm9ybUNvbnRyb2wgdG8gc2VhcmNoIHRoZSB1c2VyICovXG4gICAgQElucHV0KClcbiAgICBzZWFyY2hVc2VyQ3RybCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiBmYWxzZSB9KTtcblxuICAgIC8qKlxuICAgICAqIExhYmVsIHRyYW5zbGF0aW9uIGtleVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIGZvciB0aGUgaW5wdXQgZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRoZSBtYXRJbnB1dCBhc3NvY2lhdGVkIHdpdGggdGhlIGNoaXAgZ3JpZCB3aGVuIGEgc2luZ2xlIHVzZXIgaXMgc2VsZWN0ZWQgaW4gc2luZ2xlIHNlbGVjdGlvbiBtb2RlLlxuICAgICAqIFRoZSBpbnB1dCB3aWxsIGJlIHNob3duIGFnYWluIHdoZW4gdGhlIHVzZXIgaXMgcmVtb3ZlZCB1c2luZyB0aGUgaWNvbiBvbiB0aGUgY2hpcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNYXRlcmlhbCBmb3JtIGZpZWxkIGFwcGVhcmFuY2UgKGZpbGwgLyBvdXRsaW5lKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUZpZWxkQXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIE1hdGVyaWFsIGZvcm0gZmllbGQgc3Vic2NyaXB0IHNpemluZyAoZml4ZWQgLyBkeW5hbWljKVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZm9ybUZpZWxkU3Vic2NyaXB0U2l6aW5nOiBTdWJzY3JpcHRTaXppbmcgPSAnZml4ZWQnO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBlcnJvcnMgdW5kZXIgdGhlIGZvcm0gZmllbGRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dFcnJvcnM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgZnVsbCBuYW1lIG9mIHRoZSB1c2VyIG9uIGhvdmVyIGluIHRoZSBjaGlwc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Z1bGxOYW1lT25Ib3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHVzZXIgaXMgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0VXNlciA9IG5ldyBFdmVudEVtaXR0ZXI8SWRlbnRpdHlVc2VyTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgc2VsZWN0ZWQgdXNlciBpcyByZW1vdmVkIGluIG11bHRpIHNlbGVjdGlvbiBtb2RlLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlbW92ZVVzZXIgPSBuZXcgRXZlbnRFbWl0dGVyPElkZW50aXR5VXNlck1vZGVsPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHVzZXIgc2VsZWN0aW9uIGNoYW5nZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2VkVXNlcnMgPSBuZXcgRXZlbnRFbWl0dGVyPElkZW50aXR5VXNlck1vZGVsW10+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIHdhcm5pbmcgb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHdhcm5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3VzZXJJbnB1dCcpXG4gICAgcHJpdmF0ZSB1c2VySW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICBzZWxlY3RlZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG4gICAgaW52YWxpZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdID0gW107XG5cbiAgICBzZWFyY2hVc2VycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElkZW50aXR5VXNlck1vZGVsW10+KHRoaXMuc2VhcmNoVXNlcnMpO1xuICAgIHN1YnNjcmlwdEFuaW1hdGlvblN0YXRlOiBzdHJpbmcgPSAnZW50ZXInO1xuICAgIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgICB0b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICB2YWxpZGF0ZVVzZXJzTWVzc2FnZTogc3RyaW5nO1xuICAgIHNlYXJjaGVkVmFsdWUgPSAnJztcblxuICAgIHZhbGlkYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgc2VhcmNoTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgdHlwaW5nVW5pcXVlVmFsdWVOb3RFbXB0eSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWRlbnRpdHlVc2VyU2VydmljZTogSWRlbnRpdHlVc2VyU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRTZWFyY2goKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhc1ByZXNlbGVjdGVkVXNlcnNDaGFuZ2VkKGNoYW5nZXMpIHx8IHRoaXMuaGFzTW9kZUNoYW5nZWQoY2hhbmdlcykgfHwgdGhpcy5pc1ZhbGlkYXRpb25DaGFuZ2VkKGNoYW5nZXMpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNQcmVTZWxlY3RVc2VycygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkUHJlU2VsZWN0VXNlcnMoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcmVzZWxlY3RlZFVzZXJzQ2xlYXJlZChjaGFuZ2VzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRVc2VycyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkb25seSgpICYmIHRoaXMuc2VhcmNoVXNlckN0cmwuZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNSZWFkb25seSgpICYmIHRoaXMuc2VhcmNoVXNlckN0cmwuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFVzZXJzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmlzU2luZ2xlTW9kZSgpICYmIHRoaXMudXNlcklucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTdHJlYW0oKTtcbiAgICAgICAgdGhpcy50eXBpbmdVbmlxdWVWYWx1ZU5vdEVtcHR5JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChuYW1lOiBzdHJpbmcpID0+IG5hbWUubGVuZ3RoID49IDEpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobmFtZTogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkZW50aXR5VXNlclNlcnZpY2Uuc2VhcmNoKG5hbWUsIHsgcm9sZXM6IHRoaXMucm9sZXMsIHdpdGhpbkFwcGxpY2F0aW9uOiB0aGlzLmFwcE5hbWUsIGdyb3VwczogdGhpcy5ncm91cHNSZXN0cmljdGlvbiB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKHVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRTZWFyY2hVc2VycygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVzZXJzO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcigodXNlcikgPT4gIXRoaXMuaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHVzZXIpICYmICF0aGlzLmlzRXhjbHVkZWRVc2VyKHVzZXIpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcjogSWRlbnRpdHlVc2VyTW9kZWwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VycyQubmV4dCh0aGlzLnNlYXJjaFVzZXJzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVN0cmVhbSgpIHtcbiAgICAgICAgY29uc3QgdHlwaW5nVmFsdWVGcm9tQ29udHJvbCQgPSB0aGlzLnNlYXJjaFVzZXJDdHJsLnZhbHVlQ2hhbmdlcztcblxuICAgICAgICBjb25zdCB0eXBpbmdWYWx1ZVR5cGVTdGluZyQgPSB0eXBpbmdWYWx1ZUZyb21Db250cm9sJC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHR5cGluZ1ZhbHVlSGFuZGxlRXJyb3JNZXNzYWdlJCA9IHR5cGluZ1ZhbHVlVHlwZVN0aW5nJC5waXBlKFxuICAgICAgICAgICAgdGFwKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VHlwaW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHR5cGluZ1ZhbHVlRGVib3VuY2VkVW5pcXVlJCA9IHR5cGluZ1ZhbHVlSGFuZGxlRXJyb3JNZXNzYWdlJC5waXBlKGRlYm91bmNlVGltZSg1MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICAgICAgICB0aGlzLnR5cGluZ1VuaXF1ZVZhbHVlTm90RW1wdHkkID0gdHlwaW5nVmFsdWVEZWJvdW5jZWRVbmlxdWUkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUudHJpbSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLnJlc2V0U2VhcmNoVXNlcnMoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRhdGlvbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHNlYXJjaFVzZXI6IElkZW50aXR5VXNlck1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVXNlcnMgJiYgdGhpcy5zZWxlY3RlZFVzZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kKChzZWxlY3RlZFVzZXIpID0+IHRoaXMuZXF1YWxzVXNlcnMoc2VsZWN0ZWRVc2VyLCBzZWFyY2hVc2VyKSk7XG5cbiAgICAgICAgICAgIHJldHVybiAhIXJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0V4Y2x1ZGVkVXNlcihzZWFyY2hVc2VyOiBJZGVudGl0eVVzZXJNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5leGNsdWRlZFVzZXJzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLmV4Y2x1ZGVkVXNlcnMuZmluZCgoZXhjbHVkZWRVc2VyKSA9PiB0aGlzLmVxdWFsc1VzZXJzKGV4Y2x1ZGVkVXNlciwgc2VhcmNoVXNlcikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRQcmVTZWxlY3RVc2VycygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTaW5nbGVNb2RlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IFt0aGlzLnByZVNlbGVjdFVzZXJzWzBdXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMucmVtb3ZlRHVwbGljYXRlZFVzZXJzKHRoaXMucHJlU2VsZWN0VXNlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlckNoaXBzQ3RybC5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkVXNlcnNbMF0udXNlcm5hbWUpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy52YWxpZGF0ZVByZXNlbGVjdFVzZXJzKCk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXNlbGVjdGVkVXNlcnMoKTogSWRlbnRpdHlVc2VyTW9kZWxbXSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlTW9kZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXMucHJlU2VsZWN0VXNlcnNbMF1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlRHVwbGljYXRlZFVzZXJzKHRoaXMucHJlU2VsZWN0VXNlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZVByZXNlbGVjdFVzZXJzKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCB1c2VyIG9mIHRoaXMuZ2V0UHJlc2VsZWN0ZWRVc2VycygpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSAoXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNlYXJjaCh1c2VyLnVzZXJuYW1lLCB7IHJvbGVzOiB0aGlzLnJvbGVzLCB3aXRoaW5BcHBsaWNhdGlvbjogdGhpcy5hcHBOYW1lLCBncm91cHM6IHRoaXMuZ3JvdXBzUmVzdHJpY3Rpb24gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgICAgIClbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZXF1YWxzVXNlcnModXNlciwgdmFsaWRhdGlvblJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMucHVzaCh1c2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZFVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrUHJlc2VsZWN0VmFsaWRhdGlvbkVycm9ycygpO1xuICAgIH1cblxuICAgIGVxdWFsc1VzZXJzKHByZXNlbGVjdGVkVXNlcjogSWRlbnRpdHlVc2VyTW9kZWwsIGlkZW50aXR5VXNlcjogSWRlbnRpdHlVc2VyTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHByZXNlbGVjdGVkVXNlciAmJiBpZGVudGl0eVVzZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXF1ZVByb3BlcnR5SWRlbnRpZmllcnMgPSBbJ2lkJywgJ3VzZXJuYW1lJywgJ2VtYWlsJ107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKHByZXNlbGVjdGVkVXNlcikpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJlc2VsZWN0ZWRVc2VyW3Byb3BlcnR5XSAhPT0gdW5kZWZpbmVkICYmIHVuaXF1ZVByb3BlcnR5SWRlbnRpZmllcnMuaW5jbHVkZXMocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVzZWxlY3RlZFVzZXJbcHJvcGVydHldID09PSBpZGVudGl0eVVzZXJbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVtb3ZlRHVwbGljYXRlZFVzZXJzKHVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKTogSWRlbnRpdHlVc2VyTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB1c2Vycy5maWx0ZXIoXG4gICAgICAgICAgICAodXNlciwgaW5kZXgsIHNlbGYpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPT09IHNlbGYuZmluZEluZGV4KChhdXhVc2VyKSA9PiB1c2VyLmlkID09PSBhdXhVc2VyLmlkICYmIHVzZXIudXNlcm5hbWUgPT09IGF1eFVzZXIudXNlcm5hbWUgJiYgdXNlci5lbWFpbCA9PT0gYXV4VXNlci5lbWFpbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdCh1c2VyOiBJZGVudGl0eVVzZXJNb2RlbCk6IHZvaWQge1xuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RVc2VyLmVtaXQodXNlcik7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGVNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNVc2VyQWxyZWFkeVNlbGVjdGVkKHVzZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVXNlcnMgPSBbdXNlcl07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlkZUlucHV0T25TaW5nbGVTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICB0aGlzLnVzZXJDaGlwc0NvbnRyb2xWYWx1ZSh0aGlzLnNlbGVjdGVkVXNlcnNbMF0udXNlcm5hbWUpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZWRVc2Vycy5lbWl0KHRoaXMuc2VsZWN0ZWRVc2Vycyk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0U2VhcmNoVXNlcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVtb3ZlKHVzZXJUb1JlbW92ZTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVVc2VyLmVtaXQodXNlclRvUmVtb3ZlKTtcbiAgICAgICAgdGhpcy5yZW1vdmVVc2VyRnJvbVNlbGVjdGVkKHVzZXJUb1JlbW92ZSk7XG4gICAgICAgIHRoaXMuY2hhbmdlZFVzZXJzLmVtaXQodGhpcy5zZWxlY3RlZFVzZXJzKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudXNlckNoaXBzQ29udHJvbFZhbHVlKCcnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGVJbnB1dE9uU2luZ2xlU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXNlckNoaXBzQ29udHJvbFZhbHVlKHRoaXMuc2VsZWN0ZWRVc2Vyc1swXS51c2VybmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hVc2VyQ3RybC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB0aGlzLnNlYXJjaFVzZXJDdHJsLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkYXRpb25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlVXNlckZyb21WYWxpZGF0aW9uKHVzZXJUb1JlbW92ZSk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUHJlc2VsZWN0VmFsaWRhdGlvbkVycm9ycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja1ByZXNlbGVjdFZhbGlkYXRpb25FcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW52YWxpZFVzZXJzID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVkVXNlcnModGhpcy5pbnZhbGlkVXNlcnMpO1xuXG4gICAgICAgIGlmICh0aGlzLmludmFsaWRVc2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlSW52YWxpZFVzZXJzTWVzc2FnZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53YXJuaW5nLmVtaXQoe1xuICAgICAgICAgICAgbWVzc2FnZTogJ0lOVkFMSURfUFJFU0VMRUNURURfVVNFUlMnLFxuICAgICAgICAgICAgdXNlcnM6IHRoaXMuaW52YWxpZFVzZXJzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlVXNlckZyb21TZWxlY3RlZCh7IGlkLCB1c2VybmFtZSwgZW1haWwgfTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5maW5kSW5kZXgoKHVzZXIpID0+IHVzZXIuaWQgPT09IGlkICYmIHVzZXIudXNlcm5hbWUgPT09IHVzZXJuYW1lICYmIHVzZXIuZW1haWwgPT09IGVtYWlsKTtcblxuICAgICAgICBpZiAoaW5kZXhUb1JlbW92ZSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVc2Vycy5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVVzZXJGcm9tVmFsaWRhdGlvbih7IGlkLCB1c2VybmFtZSwgZW1haWwgfTogSWRlbnRpdHlVc2VyTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuaW52YWxpZFVzZXJzLmZpbmRJbmRleCgodXNlcikgPT4gdXNlci5pZCA9PT0gaWQgJiYgdXNlci51c2VybmFtZSA9PT0gdXNlcm5hbWUgJiYgdXNlci5lbWFpbCA9PT0gZW1haWwpO1xuXG4gICAgICAgIGlmIChpbmRleFRvUmVtb3ZlICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkVXNlcnMuc3BsaWNlKGluZGV4VG9SZW1vdmUsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUludmFsaWRVc2Vyc01lc3NhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgPSAnJztcblxuICAgICAgICB0aGlzLmludmFsaWRVc2Vycy5mb3JFYWNoKChpbnZhbGlkVXNlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5pbnZhbGlkVXNlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgKz0gYCR7aW52YWxpZFVzZXIudXNlcm5hbWV9IGA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVVc2Vyc01lc3NhZ2UgKz0gYCR7aW52YWxpZFVzZXIudXNlcm5hbWV9LCBgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNQcmVzZWxlY3RFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZFVzZXJzICYmIHRoaXMuaW52YWxpZFVzZXJzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0RGlzcGxheU5hbWUodXNlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBGdWxsTmFtZVBpcGUucHJvdG90eXBlLnRyYW5zZm9ybSh1c2VyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTXVsdGlwbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnbXVsdGlwbGUnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTaW5nbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnc2luZ2xlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2luZ2xlU2VsZWN0aW9uUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2luZ2xlTW9kZSgpICYmIHRoaXMuc2VsZWN0ZWRVc2Vycy5sZW5ndGggPT09IDEgJiYgdGhpcy5zZWxlY3RlZFVzZXJzWzBdLnJlYWRvbmx5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzUHJlU2VsZWN0VXNlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZVNlbGVjdFVzZXJzICYmIHRoaXMucHJlU2VsZWN0VXNlcnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc01vZGVDaGFuZ2VkKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNoYW5nZXM/Lm1vZGUgJiYgY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkYXRpb25DaGFuZ2VkKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNoYW5nZXM/LnZhbGlkYXRlICYmIGNoYW5nZXMudmFsaWRhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLnZhbGlkYXRlLnByZXZpb3VzVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNQcmVzZWxlY3RlZFVzZXJzQ2hhbmdlZChjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjaGFuZ2VzPy5wcmVTZWxlY3RVc2VycyAmJiBjaGFuZ2VzLnByZVNlbGVjdFVzZXJzLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5wcmVTZWxlY3RVc2Vycy5wcmV2aW91c1ZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzUHJlc2VsZWN0ZWRVc2Vyc0NsZWFyZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gY2hhbmdlcz8ucHJlU2VsZWN0VXNlcnM/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRTZWFyY2hVc2VycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2hVc2VycyA9IFtdO1xuICAgICAgICB0aGlzLnNlYXJjaFVzZXJzJC5uZXh0KHRoaXMuc2VhcmNoVXNlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VHlwaW5nRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoVXNlckN0cmwuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgIHNlYXJjaFR5cGluZ0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgLi4udGhpcy5zZWFyY2hVc2VyQ3RybC5lcnJvcnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1c2VyQ2hpcHNDb250cm9sVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVzZXJDaGlwc0N0cmwuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVzZXJDaGlwc0N0cmwubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy51c2VyQ2hpcHNDdHJsLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZFVzZXJzKCk6IElkZW50aXR5VXNlck1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXJzO1xuICAgIH1cblxuICAgIGlzUmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRPbmx5IHx8IHRoaXMuaXNTaW5nbGVTZWxlY3Rpb25SZWFkb25seSgpO1xuICAgIH1cblxuICAgIGlzVmFsaWRhdGlvbkxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRhdGlvbkVuYWJsZWQoKSAmJiB0aGlzLnZhbGlkYXRpb25Mb2FkaW5nO1xuICAgIH1cblxuICAgIG1hcmtBc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaXNUb3VjaGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b3VjaGVkO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVXNlcnMgJiYgISF0aGlzLnNlbGVjdGVkVXNlcnMubGVuZ3RoO1xuICAgIH1cblxuICAgIGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVG91Y2hlZCgpICYmICF0aGlzLmlzU2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBzZXRGb2N1cyhpc0ZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoVXNlckN0cmwuZXJyb3JzO1xuICAgIH1cblxuICAgIGdldFZhbGlkYXRpb25QYXR0ZXJuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDdHJsLmVycm9ycy5wYXR0ZXJuLnJlcXVpcmVkUGF0dGVybjtcbiAgICB9XG5cbiAgICBnZXRWYWxpZGF0aW9uTWF4TGVuZ3RoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDdHJsLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0VmFsaWRhdGlvbk1pbkxlbmd0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2VyQ3RybC5lcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RoO1xuICAgIH1cbn1cbiIsIjxmb3JtPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgICBbc3Vic2NyaXB0U2l6aW5nXT1cImZvcm1GaWVsZFN1YnNjcmlwdFNpemluZ1wiXG4gICAgICAgIFtmbG9hdExhYmVsXT1cIidhdXRvJ1wiXG4gICAgICAgIGNsYXNzPVwiYWRmLXBlb3BsZS1jbG91ZFwiXG4gICAgICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCJoYXNFcnJvcigpICYmIGlzRGlydHkoKVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudCAqbmdJZj1cIiF0aXRsZVwiIHNlbGVjdD1cIltsYWJlbF1cIiAvPlxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwidGl0bGVcIj57eyB0aXRsZSB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LWNoaXAtZ3JpZCAjdXNlck11bHRpcGxlQ2hpcExpc3QgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWNsb3VkLXBlb3BsZS1jaGlwLWxpc3RcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBzZWxlY3RlZFVzZXJzXCJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cIiF1c2VyLnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1wZW9wbGUtY2xvdWQtY2hpcC0nICsgdXNlci51c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwib25SZW1vdmUodXNlcilcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRvbmx5KCkgfHwgaXNWYWxpZGF0aW9uTG9hZGluZygpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICh1c2VyLnJlYWRvbmx5ID8gJ0FERl9DTE9VRF9HUk9VUFMuTUFOREFUT1JZJyA6ICcnKSB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwic2hvd0Z1bGxOYW1lT25Ib3ZlciA/ICh1c2VyIHwgZnVsbE5hbWUgOiB0cnVlKSA6IHVzZXIuZW1haWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHVzZXIgfCBmdWxsTmFtZSB9fVxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRDaGlwUmVtb3ZlXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISh1c2VyLnJlYWRvbmx5IHx8IHJlYWRPbmx5KVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLXBlb3BsZS1jbG91ZC1jaGlwLXJlbW92ZS1pY29uLScgKyB1c2VyLnVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZG9ubHkoKVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaFVzZXJDdHJsXCJcbiAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwidXNlck11bHRpcGxlQ2hpcExpc3RcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwic2V0Rm9jdXModHJ1ZSlcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cInNldEZvY3VzKGZhbHNlKTsgbWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jbG91ZC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLXBlb3BsZS1jbG91ZC1zZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICN1c2VySW5wdXRcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cblxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgICAgICAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtbGlzdFwiXG4gICAgICAgICAgICAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImdldERpc3BsYXlOYW1lXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihzZWFyY2hVc2VycyQgfCBhc3luYyk/Lmxlbmd0aDsgZWxzZSBub1Jlc3VsdHNcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBzZWFyY2hVc2VycyQgfCBhc3luYzsgbGV0IGkgPSBpbmRleFwiIFt2YWx1ZV09XCJ1c2VyXCIgY2xhc3M9XCJhZGYtcGVvcGxlLWNsb3VkLW9wdGlvbi1hY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtcm93XCIgaWQ9XCJhZGYtcGVvcGxlLWNsb3VkLXVzZXIte3sgdXNlci51c2VybmFtZSB9fVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1wZW9wbGUtY2xvdWQtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtvdXRlckhUTUxdPVwidXNlciB8IHVzZXJuYW1lSW5pdGlhbHMgOiAnYWRmLXBlb3BsZS1jbG91ZC1waWMnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkZi1wZW9wbGUtbGFiZWwtbmFtZVwiPiB7eyB1c2VyIHwgZnVsbE5hbWUgOiB0cnVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9SZXN1bHRzPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoVXNlckN0cmwuaGFzRXJyb3IoJ3NlYXJjaFR5cGluZ0Vycm9yJykgJiYgIXNlYXJjaExvYWRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1wZW9wbGUtY2xvdWQtb3B0aW9uLW5vdC1hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtcGVvcGxlLWNsb3VkLW5vLXJlc3VsdHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7ICdBREZfQ0xPVURfVVNFUlMuRVJST1IuTk9UX0ZPVU5EJyB8IHRyYW5zbGF0ZSA6IHsgdXNlck5hbWU6IHNlYXJjaGVkVmFsdWUgfSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwidmFsaWRhdGlvbkxvYWRpbmdcIiBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLWNvbnRhaW5lciBhZGYtZXJyb3ItbWVzc2FnZXMtY29udGFpbmVyXCIgKm5nSWY9XCJzaG93RXJyb3JzXCI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNQcmVzZWxlY3RFcnJvcigpICYmICFpc1ZhbGlkYXRpb25Mb2FkaW5nKClcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9VU0VSUy5FUlJPUi5OT1RfRk9VTkQnIHwgdHJhbnNsYXRlIDogeyB1c2VyTmFtZTogdmFsaWRhdGVVc2Vyc01lc3NhZ2UgfSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInNlYXJjaFVzZXJDdHJsLmhhc0Vycm9yKCdwYXR0ZXJuJylcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLklOVkFMSURfUEFUVEVSTicgfCB0cmFuc2xhdGUgOiB7IHBhdHRlcm46IGdldFZhbGlkYXRpb25QYXR0ZXJuKCkgfSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInNlYXJjaFVzZXJDdHJsLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiIFtAdHJhbnNpdGlvbk1lc3NhZ2VzXT1cInN1YnNjcmlwdEFuaW1hdGlvblN0YXRlXCIgY2xhc3M9XCJhZGYtZXJyb3JcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImFkZi1lcnJvci1pY29uXCI+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj5cbiAgICAgICAgICAgICAgICB7eyAnQURGX0NMT1VEX1BFT1BMRV9HUk9VUFMuRVJST1IuSU5WQUxJRF9NQVhfTEVOR1RIJyB8IHRyYW5zbGF0ZSA6IHsgcmVxdWlyZWRMZW5ndGg6IGdldFZhbGlkYXRpb25NYXhMZW5ndGgoKSB9IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcignbWlubGVuZ3RoJylcIiBbQHRyYW5zaXRpb25NZXNzYWdlc109XCJzdWJzY3JpcHRBbmltYXRpb25TdGF0ZVwiIGNsYXNzPVwiYWRmLWVycm9yXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLklOVkFMSURfTUlOX0xFTkdUSCcgfCB0cmFuc2xhdGUgOiB7IHJlcXVpcmVkTGVuZ3RoOiBnZXRWYWxpZGF0aW9uTWluTGVuZ3RoKCkgfSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAqbmdJZj1cIihzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcigncmVxdWlyZWQnKSB8fCB1c2VyQ2hpcHNDdHJsLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSAmJiBpc0RpcnR5KClcIlxuICAgICAgICAgICAgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwic3Vic2NyaXB0QW5pbWF0aW9uU3RhdGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZXJyb3JcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9QRU9QTEVfR1JPVVBTLkVSUk9SLlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hVc2VyQ3RybC5oYXNFcnJvcignc2VhcmNoVHlwaW5nRXJyb3InKSAmJiAhdGhpcy5pc0ZvY3VzZWRcIlxuICAgICAgICAgICAgW0B0cmFuc2l0aW9uTWVzc2FnZXNdPVwic3Vic2NyaXB0QW5pbWF0aW9uU3RhdGVcIlxuICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiaW52YWxpZC11c2Vycy10eXBpbmctZXJyb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJhZGYtZXJyb3JcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhZGYtZXJyb3ItaWNvblwiPmVycm9yX291dGxpbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci10ZXh0XCI+e3sgJ0FERl9DTE9VRF9VU0VSUy5FUlJPUi5OT1RfRk9VTkQnIHwgdHJhbnNsYXRlIDogeyB1c2VyTmFtZTogc2VhcmNoZWRWYWx1ZSB9IH19PC9kaXY+XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -19,15 +19,15 @@ import { PeopleCloudComponent } from './components/people-cloud.component';
|
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
20
|
/** @deprecated use PeopleCloudComponent instead */
|
|
21
21
|
export class PeopleCloudModule {
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
24
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudModule, imports: [PeopleCloudComponent], exports: [PeopleCloudComponent] }); }
|
|
24
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudModule, imports: [PeopleCloudComponent] }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PeopleCloudModule, decorators: [{
|
|
27
27
|
type: NgModule,
|
|
28
28
|
args: [{
|
|
29
29
|
imports: [PeopleCloudComponent],
|
|
30
30
|
exports: [PeopleCloudComponent]
|
|
31
31
|
}]
|
|
32
32
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVvcGxlLWNsb3VkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvcGVvcGxlL3Blb3BsZS1jbG91ZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFM0UsbURBQW1EO0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLFlBSGhCLG9CQUFvQixhQUNwQixvQkFBb0I7Z0hBRXJCLGlCQUFpQixZQUhoQixvQkFBb0I7OzRGQUdyQixpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlb3BsZUNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Blb3BsZS1jbG91ZC5jb21wb25lbnQnO1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIFBlb3BsZUNsb3VkQ29tcG9uZW50IGluc3RlYWQgKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1Blb3BsZUNsb3VkQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbUGVvcGxlQ2xvdWRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBlb3BsZUNsb3VkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -107,13 +107,13 @@ export class IdentityUserService {
|
|
|
107
107
|
get identityHost() {
|
|
108
108
|
return `${this.appConfigService.get('bpmHost')}`;
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdentityUserService, deps: [{ token: i1.JwtHelperService }, { token: i1.OAuth2Service }, { token: i1.AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdentityUserService, providedIn: 'root' }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdentityUserService, decorators: [{
|
|
114
114
|
type: Injectable,
|
|
115
115
|
args: [{
|
|
116
116
|
providedIn: 'root'
|
|
117
117
|
}]
|
|
118
118
|
}], ctorParameters: () => [{ type: i1.JwtHelperService }, { type: i1.OAuth2Service }, { type: i1.AppConfigService }] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wZW9wbGUvc2VydmljZXMvaWRlbnRpdHktdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQUd6QyxNQUFNLDhCQUE4QixHQUFHLDBCQUEwQixDQUFDO0FBV2xFLE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsWUFBb0IsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxnQkFBa0M7UUFBcEgscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFNUk7Ozs7T0FJRztJQUNJLGtCQUFrQjtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQVMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFTLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBUyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQVMsZ0JB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TUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUMzRCxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBZ0I7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxZQUFZO1FBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDckQsQ0FBQzs4R0FoR1EsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgSnd0SGVscGVyU2VydmljZSwgT0F1dGgyU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5cbmNvbnN0IElERU5USVRZX01JQ1JPX1NFUlZJQ0VfSU5HUkVTUyA9ICdpZGVudGl0eS1hZGFwdGVyLXNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSB7XG4gICAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgICB3aXRoaW5BcHBsaWNhdGlvbj86IHN0cmluZztcbiAgICBncm91cHM/OiBzdHJpbmdbXTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eVVzZXJTZXJ2aWNlIHtcbiAgICBxdWVyeVBhcmFtczogeyBzZWFyY2g6IHN0cmluZzsgYXBwbGljYXRpb24/OiBzdHJpbmc7IHJvbGVzPzogc3RyaW5nW107IGdyb3Vwcz86IHN0cmluZ1tdIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dEhlbHBlclNlcnZpY2U6IEp3dEhlbHBlclNlcnZpY2UsIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmFtZSBhbmQgb3RoZXIgYmFzaWMgZGV0YWlscyBvZiB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHVzZXIncyBkZXRhaWxzXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbnRVc2VySW5mbygpOiBJZGVudGl0eVVzZXJNb2RlbCB7XG4gICAgICAgIGNvbnN0IGZhbWlseU5hbWUgPSB0aGlzLmp3dEhlbHBlclNlcnZpY2UuZ2V0VmFsdWVGcm9tTG9jYWxUb2tlbjxzdHJpbmc+KEp3dEhlbHBlclNlcnZpY2UuRkFNSUxZX05BTUUpO1xuICAgICAgICBjb25zdCBnaXZlbk5hbWUgPSB0aGlzLmp3dEhlbHBlclNlcnZpY2UuZ2V0VmFsdWVGcm9tTG9jYWxUb2tlbjxzdHJpbmc+KEp3dEhlbHBlclNlcnZpY2UuR0lWRU5fTkFNRSk7XG4gICAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5qd3RIZWxwZXJTZXJ2aWNlLmdldFZhbHVlRnJvbUxvY2FsVG9rZW48c3RyaW5nPihKd3RIZWxwZXJTZXJ2aWNlLlVTRVJfRU1BSUwpO1xuICAgICAgICBjb25zdCB1c2VybmFtZSA9IHRoaXMuand0SGVscGVyU2VydmljZS5nZXRWYWx1ZUZyb21Mb2NhbFRva2VuPHN0cmluZz4oSnd0SGVscGVyU2VydmljZS5VU0VSX1BSRUZFUlJFRF9VU0VSTkFNRSk7XG4gICAgICAgIHJldHVybiB7IGZpcnN0TmFtZTogZ2l2ZW5OYW1lLCBsYXN0TmFtZTogZmFtaWx5TmFtZSwgZW1haWwsIHVzZXJuYW1lIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHVzZXJzIGJhc2VkIG9uIG5hbWUgaW5wdXQgYW5kIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBTZWFyY2ggcXVlcnkgc3RyaW5nXG4gICAgICogQHBhcmFtIFtmaWx0ZXJzXSBTZWFyY2ggcXVlcnkgZmlsdGVyc1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdXNlcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoKG5hbWU6IHN0cmluZywgZmlsdGVycz86IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICBpZiAobmFtZS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVycz8uZ3JvdXBzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2Vyc1dpdGhHcm91cHMobmFtZSwgZmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVycz8ud2l0aGluQXBwbGljYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJzV2l0aGluQXBwKG5hbWUsIGZpbHRlcnMud2l0aGluQXBwbGljYXRpb24sIGZpbHRlcnM/LnJvbGVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJzPy5yb2xlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoVXNlcnNXaXRoR2xvYmFsUm9sZXMobmFtZSwgZmlsdGVycy5yb2xlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2Vyc0J5TmFtZShuYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoVXNlcnNCeU5hbWUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eVVzZXJNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMuYnVpbGRRdWVyeVBhcmFtKG5hbWUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmludm9rZUlkZW50aXR5VXNlckFwaSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoVXNlcnNXaXRoR2xvYmFsUm9sZXMobmFtZTogc3RyaW5nLCByb2xlczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPElkZW50aXR5VXNlck1vZGVsW10+IHtcbiAgICAgICAgdGhpcy5idWlsZFF1ZXJ5UGFyYW0obmFtZSwgeyByb2xlcyB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzV2l0aGluQXBwKG5hbWU6IHN0cmluZywgd2l0aGluQXBwbGljYXRpb246IHN0cmluZywgcm9sZXM/OiBzdHJpbmdbXSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmJ1aWxkUXVlcnlQYXJhbShuYW1lLCB7IHJvbGVzLCB3aXRoaW5BcHBsaWNhdGlvbiB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzV2l0aEdyb3VwcyhuYW1lOiBzdHJpbmcsIGZpbHRlcnM6IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmJ1aWxkUXVlcnlQYXJhbShuYW1lLCBmaWx0ZXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGludm9rZUlkZW50aXR5VXNlckFwaSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmlkZW50aXR5SG9zdH0vJHtJREVOVElUWV9NSUNST19TRVJWSUNFX0lOR1JFU1N9L3YxL3VzZXJzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMub0F1dGgyU2VydmljZS5nZXQoeyB1cmwsIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRRdWVyeVBhcmFtKG5hbWU6IHN0cmluZywgZmlsdGVycz86IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0geyBzZWFyY2g6IG5hbWUgfTtcbiAgICAgICAgdGhpcy5hZGRPcHRpb25hbFZhbHVlVG9RdWVyeVBhcmFtKCdhcHBsaWNhdGlvbicsIGZpbHRlcnM/LndpdGhpbkFwcGxpY2F0aW9uKTtcbiAgICAgICAgdGhpcy5hZGRPcHRpb25hbENvbW1hVmFsdWVUb1F1ZXJ5UGFyYW0oJ3JvbGUnLCBmaWx0ZXJzPy5yb2xlcyk7XG4gICAgICAgIHRoaXMuYWRkT3B0aW9uYWxDb21tYVZhbHVlVG9RdWVyeVBhcmFtKCdncm91cCcsIGZpbHRlcnM/Lmdyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRPcHRpb25hbENvbW1hVmFsdWVUb1F1ZXJ5UGFyYW0oa2V5OiBzdHJpbmcsIHZhbHVlczogc3RyaW5nW10pIHtcbiAgICAgICAgaWYgKHZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzTm90RW1wdHkgPSB0aGlzLmZpbHRlck91dEVtcHR5VmFsdWUodmFsdWVzKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNOb3RFbXB0eT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNba2V5XSA9IHZhbHVlc05vdEVtcHR5LmpvaW4oJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkT3B0aW9uYWxWYWx1ZVRvUXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWU/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlck91dEVtcHR5VmFsdWUodmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlkZW50aXR5SG9zdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldCgnYnBtSG9zdCcpfWA7XG4gICAgfVxufVxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi9wZW9wbGUvc2VydmljZXMvaWRlbnRpdHktdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQUd6QyxNQUFNLDhCQUE4QixHQUFHLDBCQUEwQixDQUFDO0FBV2xFLE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsWUFBb0IsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxnQkFBa0M7UUFBcEgscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFNUk7Ozs7T0FJRztJQUNJLGtCQUFrQjtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQVMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFTLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBUyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQVMsZ0JB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TUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLGNBQWMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUMzRCxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBZ0I7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxZQUFZO1FBQ3BCLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDckQsQ0FBQzsrR0FoR1EsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7NEZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSwgSnd0SGVscGVyU2VydmljZSwgT0F1dGgyU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5cbmNvbnN0IElERU5USVRZX01JQ1JPX1NFUlZJQ0VfSU5HUkVTUyA9ICdpZGVudGl0eS1hZGFwdGVyLXNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSB7XG4gICAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgICB3aXRoaW5BcHBsaWNhdGlvbj86IHN0cmluZztcbiAgICBncm91cHM/OiBzdHJpbmdbXTtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0eVVzZXJTZXJ2aWNlIHtcbiAgICBxdWVyeVBhcmFtczogeyBzZWFyY2g6IHN0cmluZzsgYXBwbGljYXRpb24/OiBzdHJpbmc7IHJvbGVzPzogc3RyaW5nW107IGdyb3Vwcz86IHN0cmluZ1tdIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dEhlbHBlclNlcnZpY2U6IEp3dEhlbHBlclNlcnZpY2UsIHByaXZhdGUgb0F1dGgyU2VydmljZTogT0F1dGgyU2VydmljZSwgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlKSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbmFtZSBhbmQgb3RoZXIgYmFzaWMgZGV0YWlscyBvZiB0aGUgY3VycmVudCB1c2VyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIHVzZXIncyBkZXRhaWxzXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbnRVc2VySW5mbygpOiBJZGVudGl0eVVzZXJNb2RlbCB7XG4gICAgICAgIGNvbnN0IGZhbWlseU5hbWUgPSB0aGlzLmp3dEhlbHBlclNlcnZpY2UuZ2V0VmFsdWVGcm9tTG9jYWxUb2tlbjxzdHJpbmc+KEp3dEhlbHBlclNlcnZpY2UuRkFNSUxZX05BTUUpO1xuICAgICAgICBjb25zdCBnaXZlbk5hbWUgPSB0aGlzLmp3dEhlbHBlclNlcnZpY2UuZ2V0VmFsdWVGcm9tTG9jYWxUb2tlbjxzdHJpbmc+KEp3dEhlbHBlclNlcnZpY2UuR0lWRU5fTkFNRSk7XG4gICAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5qd3RIZWxwZXJTZXJ2aWNlLmdldFZhbHVlRnJvbUxvY2FsVG9rZW48c3RyaW5nPihKd3RIZWxwZXJTZXJ2aWNlLlVTRVJfRU1BSUwpO1xuICAgICAgICBjb25zdCB1c2VybmFtZSA9IHRoaXMuand0SGVscGVyU2VydmljZS5nZXRWYWx1ZUZyb21Mb2NhbFRva2VuPHN0cmluZz4oSnd0SGVscGVyU2VydmljZS5VU0VSX1BSRUZFUlJFRF9VU0VSTkFNRSk7XG4gICAgICAgIHJldHVybiB7IGZpcnN0TmFtZTogZ2l2ZW5OYW1lLCBsYXN0TmFtZTogZmFtaWx5TmFtZSwgZW1haWwsIHVzZXJuYW1lIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIHVzZXJzIGJhc2VkIG9uIG5hbWUgaW5wdXQgYW5kIGZpbHRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSBTZWFyY2ggcXVlcnkgc3RyaW5nXG4gICAgICogQHBhcmFtIFtmaWx0ZXJzXSBTZWFyY2ggcXVlcnkgZmlsdGVyc1xuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgdXNlcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VhcmNoKG5hbWU6IHN0cmluZywgZmlsdGVycz86IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICBpZiAobmFtZS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVycz8uZ3JvdXBzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2Vyc1dpdGhHcm91cHMobmFtZSwgZmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVycz8ud2l0aGluQXBwbGljYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJzV2l0aGluQXBwKG5hbWUsIGZpbHRlcnMud2l0aGluQXBwbGljYXRpb24sIGZpbHRlcnM/LnJvbGVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJzPy5yb2xlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoVXNlcnNXaXRoR2xvYmFsUm9sZXMobmFtZSwgZmlsdGVycy5yb2xlcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hVc2Vyc0J5TmFtZShuYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoVXNlcnNCeU5hbWUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJZGVudGl0eVVzZXJNb2RlbFtdPiB7XG4gICAgICAgIHRoaXMuYnVpbGRRdWVyeVBhcmFtKG5hbWUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmludm9rZUlkZW50aXR5VXNlckFwaSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoVXNlcnNXaXRoR2xvYmFsUm9sZXMobmFtZTogc3RyaW5nLCByb2xlczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPElkZW50aXR5VXNlck1vZGVsW10+IHtcbiAgICAgICAgdGhpcy5idWlsZFF1ZXJ5UGFyYW0obmFtZSwgeyByb2xlcyB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzV2l0aGluQXBwKG5hbWU6IHN0cmluZywgd2l0aGluQXBwbGljYXRpb246IHN0cmluZywgcm9sZXM/OiBzdHJpbmdbXSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmJ1aWxkUXVlcnlQYXJhbShuYW1lLCB7IHJvbGVzLCB3aXRoaW5BcHBsaWNhdGlvbiB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFVzZXJzV2l0aEdyb3VwcyhuYW1lOiBzdHJpbmcsIGZpbHRlcnM6IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSk6IE9ic2VydmFibGU8SWRlbnRpdHlVc2VyTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmJ1aWxkUXVlcnlQYXJhbShuYW1lLCBmaWx0ZXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5pbnZva2VJZGVudGl0eVVzZXJBcGkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGludm9rZUlkZW50aXR5VXNlckFwaSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmlkZW50aXR5SG9zdH0vJHtJREVOVElUWV9NSUNST19TRVJWSUNFX0lOR1JFU1N9L3YxL3VzZXJzYDtcbiAgICAgICAgcmV0dXJuIHRoaXMub0F1dGgyU2VydmljZS5nZXQoeyB1cmwsIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRRdWVyeVBhcmFtKG5hbWU6IHN0cmluZywgZmlsdGVycz86IElkZW50aXR5VXNlckZpbHRlckludGVyZmFjZSkge1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0geyBzZWFyY2g6IG5hbWUgfTtcbiAgICAgICAgdGhpcy5hZGRPcHRpb25hbFZhbHVlVG9RdWVyeVBhcmFtKCdhcHBsaWNhdGlvbicsIGZpbHRlcnM/LndpdGhpbkFwcGxpY2F0aW9uKTtcbiAgICAgICAgdGhpcy5hZGRPcHRpb25hbENvbW1hVmFsdWVUb1F1ZXJ5UGFyYW0oJ3JvbGUnLCBmaWx0ZXJzPy5yb2xlcyk7XG4gICAgICAgIHRoaXMuYWRkT3B0aW9uYWxDb21tYVZhbHVlVG9RdWVyeVBhcmFtKCdncm91cCcsIGZpbHRlcnM/Lmdyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRPcHRpb25hbENvbW1hVmFsdWVUb1F1ZXJ5UGFyYW0oa2V5OiBzdHJpbmcsIHZhbHVlczogc3RyaW5nW10pIHtcbiAgICAgICAgaWYgKHZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzTm90RW1wdHkgPSB0aGlzLmZpbHRlck91dEVtcHR5VmFsdWUodmFsdWVzKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXNOb3RFbXB0eT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNba2V5XSA9IHZhbHVlc05vdEVtcHR5LmpvaW4oJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkT3B0aW9uYWxWYWx1ZVRvUXVlcnlQYXJhbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWU/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlck91dEVtcHR5VmFsdWUodmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlkZW50aXR5SG9zdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldCgnYnBtSG9zdCcpfWA7XG4gICAgfVxufVxuIl19
|
|
@@ -26,15 +26,15 @@ import * as i3 from "./process-filters/components/process-filter-dialog/process-
|
|
|
26
26
|
export const PROCESS_CLOUD_DIRECTIVES = [StartProcessCloudComponent, ProcessHeaderCloudComponent];
|
|
27
27
|
/** @deprecated use standalone components or PROCESS_CLOUD_DIRECTIVES instead */
|
|
28
28
|
export class ProcessCloudModule {
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
30
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudModule, imports: [i1.ProcessFiltersCloudComponent, i2.EditProcessFilterCloudComponent, i3.ProcessFilterDialogCloudComponent, ProcessListCloudModule, StartProcessCloudComponent, ProcessHeaderCloudComponent], exports: [i1.ProcessFiltersCloudComponent, i2.EditProcessFilterCloudComponent, i3.ProcessFilterDialogCloudComponent, ProcessListCloudModule, StartProcessCloudComponent, ProcessHeaderCloudComponent] }); }
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudModule, imports: [PROCESS_FILTERS_CLOUD_DIRECTIVES, ProcessListCloudModule, PROCESS_CLOUD_DIRECTIVES, ProcessListCloudModule] }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProcessCloudModule, decorators: [{
|
|
34
34
|
type: NgModule,
|
|
35
35
|
args: [{
|
|
36
36
|
imports: [...PROCESS_FILTERS_CLOUD_DIRECTIVES, ProcessListCloudModule, ...PROCESS_CLOUD_DIRECTIVES],
|
|
37
37
|
exports: [...PROCESS_FILTERS_CLOUD_DIRECTIVES, ProcessListCloudModule, ...PROCESS_CLOUD_DIRECTIVES]
|
|
38
38
|
}]
|
|
39
39
|
}] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1jbG91ZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Byb2Nlc3MvcHJvY2Vzcy1jbG91ZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7QUFFekcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSwyQkFBMkIsQ0FBVSxDQUFDO0FBRTNHLGdGQUFnRjtBQUtoRixNQUFNLE9BQU8sa0JBQWtCOytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQix1SEFIb0Isc0JBQXNCLEVBSmhDLDBCQUEwQixFQUFFLDJCQUEyQix3SEFLN0Msc0JBQXNCLEVBTGhDLDBCQUEwQixFQUFFLDJCQUEyQjtnSEFPbkYsa0JBQWtCLFlBSGQsZ0NBQWdDLEVBQUUsc0JBQXNCLEVBQUssd0JBQXdCLEVBQ25ELHNCQUFzQjs7NEZBRTVELGtCQUFrQjtrQkFKOUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxHQUFHLGdDQUFnQyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsd0JBQXdCLENBQUM7b0JBQ25HLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0NBQWdDLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQztpQkFDdEciLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQUk9DRVNTX0ZJTFRFUlNfQ0xPVURfRElSRUNUSVZFUyB9IGZyb20gJy4vcHJvY2Vzcy1maWx0ZXJzL3Byb2Nlc3MtZmlsdGVycy1jbG91ZC5tb2R1bGUnO1xuaW1wb3J0IHsgUHJvY2Vzc0xpc3RDbG91ZE1vZHVsZSB9IGZyb20gJy4vcHJvY2Vzcy1saXN0L3Byb2Nlc3MtbGlzdC1jbG91ZC5tb2R1bGUnO1xuaW1wb3J0IHsgU3RhcnRQcm9jZXNzQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuL3N0YXJ0LXByb2Nlc3MvY29tcG9uZW50cy9zdGFydC1wcm9jZXNzLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9jZXNzSGVhZGVyQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuL3Byb2Nlc3MtaGVhZGVyL2NvbXBvbmVudHMvcHJvY2Vzcy1oZWFkZXItY2xvdWQuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFBST0NFU1NfQ0xPVURfRElSRUNUSVZFUyA9IFtTdGFydFByb2Nlc3NDbG91ZENvbXBvbmVudCwgUHJvY2Vzc0hlYWRlckNsb3VkQ29tcG9uZW50XSBhcyBjb25zdDtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBzdGFuZGFsb25lIGNvbXBvbmVudHMgb3IgUFJPQ0VTU19DTE9VRF9ESVJFQ1RJVkVTIGluc3RlYWQgKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogWy4uLlBST0NFU1NfRklMVEVSU19DTE9VRF9ESVJFQ1RJVkVTLCBQcm9jZXNzTGlzdENsb3VkTW9kdWxlLCAuLi5QUk9DRVNTX0NMT1VEX0RJUkVDVElWRVNdLFxuICAgIGV4cG9ydHM6IFsuLi5QUk9DRVNTX0ZJTFRFUlNfQ0xPVURfRElSRUNUSVZFUywgUHJvY2Vzc0xpc3RDbG91ZE1vZHVsZSwgLi4uUFJPQ0VTU19DTE9VRF9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzQ2xvdWRNb2R1bGUge31cbiJdfQ==
|