myrta-ui 13.0.4 → 13.0.6
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/esm2020/lib/components/form/select/select.component.mjs +7 -4
- package/esm2020/lib/components/popup/directives/popup-trigger.directive.mjs +6 -1
- package/fesm2015/myrta-ui.mjs +11 -3
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +11 -3
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/form/select/select.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -20,7 +20,8 @@ import * as i9 from "@angular/common";
|
|
|
20
20
|
import * as i10 from "../../popup/directives/popup-trigger.directive";
|
|
21
21
|
import * as i11 from "@angular/forms";
|
|
22
22
|
export class SelectComponent {
|
|
23
|
-
constructor() {
|
|
23
|
+
constructor(_detector) {
|
|
24
|
+
this._detector = _detector;
|
|
24
25
|
this.searchValue = '';
|
|
25
26
|
this.isOpen = false;
|
|
26
27
|
this.originSelected = [];
|
|
@@ -73,6 +74,7 @@ export class SelectComponent {
|
|
|
73
74
|
set items(items) {
|
|
74
75
|
this.originItems = items;
|
|
75
76
|
this._updateSelected(this.originItems, this.originSelected);
|
|
77
|
+
this._detector.detectChanges();
|
|
76
78
|
}
|
|
77
79
|
ngOnInit() {
|
|
78
80
|
if (this.optionValidation) {
|
|
@@ -211,6 +213,7 @@ export class SelectComponent {
|
|
|
211
213
|
this.selected = getInnerSelected(items, [selected], this.bindValue);
|
|
212
214
|
}
|
|
213
215
|
this.innerItems = getInnerItems(items, this.selected, this.bindValue);
|
|
216
|
+
this._detector.detectChanges();
|
|
214
217
|
}
|
|
215
218
|
_updateValue(selectedItems) {
|
|
216
219
|
const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
|
|
@@ -227,7 +230,7 @@ export class SelectComponent {
|
|
|
227
230
|
this.onTouched = fn;
|
|
228
231
|
}
|
|
229
232
|
}
|
|
230
|
-
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
233
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
231
234
|
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", hideSelected: "hideSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange", scrollContainer: "scrollContainer", scrollStrategy: "scrollStrategy" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
|
|
232
235
|
{
|
|
233
236
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -244,7 +247,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
244
247
|
multi: true,
|
|
245
248
|
},
|
|
246
249
|
], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
|
|
247
|
-
}], propDecorators: { fields: [{
|
|
250
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
|
|
248
251
|
type: Input
|
|
249
252
|
}], items: [{
|
|
250
253
|
type: Input
|
|
@@ -336,4 +339,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
336
339
|
}], modelChange: [{
|
|
337
340
|
type: Output
|
|
338
341
|
}] } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLFNBQVMsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWdCckQsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFhUyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsYUFBUSxH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QUFxQjtnQkFDRSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUNGLGVBQWU7c0JBQS9DLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUVkLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNlbGVjdFNpemVFbnVtLCBTZWxlY3RTaXplVHlwZXMgfSBmcm9tICcuL2VudW1zJztcclxuaW1wb3J0IHsgUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wb3B1cC9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdElubmVySXRlbU1vZGVsLCBBZGRPcHRpb25GbiwgQ3VzdG9tU2VhcmNoRm4sIFNlbGVjdEl0ZW1Nb2RlbCwgVGVtcGxhdGVPdXRwdXRNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtc2VsZWN0ZWQtaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgZ2V0SW5uZXJJdGVtcyB9IGZyb20gJy4vaGVscGVycy9nZXQtaW5uZXItaXRlbXMuaGVscGVyJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IFBvc2l0aW9uRW51bSwgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcbmltcG9ydCB7IGdldElubmVyU2VsZWN0ZWQgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLXNlbGVjdGVkLmhlbHBlcic7XHJcbmltcG9ydCB7IE1yeEZvcm1WYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFNlbGVjdFZhbHVlVHlwZXMsIFNlbGVjdFZhbHVlV2l0aElkIH0gZnJvbSAnLi9zZWxlY3QuZW51bSc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50Lmxlc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcbiAgcHVibGljIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIG9yaWdpblNlbGVjdGVkOiBhbnkgfCBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBvcmlnaW5JdGVtczogU2VsZWN0SXRlbU1vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWQ6IFNlbGVjdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIGlubmVySXRlbXM6IFNlbGVjdElubmVySXRlbU1vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZm9ybSA9IG5ldyBNcnhGb3JtVmFsaWRhdG9yKCk7XHJcbiAgcHVibGljIG1vZGVsID0ge1xyXG4gICAgbGFiZWw6ICcnLFxyXG4gIH07XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZXQgaXRlbXMoaXRlbXM6IGFueVtdKSB7XHJcbiAgICB0aGlzLm9yaWdpbkl0ZW1zID0gaXRlbXM7XHJcbiAgICB0aGlzLl91cGRhdGVTZWxlY3RlZCh0aGlzLm9yaWdpbkl0ZW1zLCB0aGlzLm9yaWdpblNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xvc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNpemU6IFNlbGVjdFNpemVUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJpbmRJY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBlbXB0eVRleHQ6IHN0cmluZyA9ICfQndC1INC90LDQudC00LXQvdC+JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0YvQsdC10YDQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSBtdWx0aUNvbGxhcHNlQ291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgnaXNFeHRyYU9wdGlvbicpIG9wdGlvblZhbGlkYXRpb246IHsgbGFiZWw6IHsgcmVxdWlyZWQ6IGJvb2xlYW4sIG1pbkxlbmd0aDogbnVtYmVyIH0gfSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGV4dHJhT3B0aW9uUGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSB1c2U6ICdkZWZhdWx0JyB8ICdsaW5rJyA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBzb3J0SWNvbjogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBzb3J0UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRnVsbFdpZHRoRHJvcGRvd246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHdpdGhvdXRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBhZGRPcHRpb24hOiBBZGRPcHRpb25GbjtcclxuICBASW5wdXQoKSBjdXN0b21TZWFyY2hGbj86IEN1c3RvbVNlYXJjaEZuO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uVHlwZSA9IFBvc2l0aW9uRW51bS5Cb3R0b21TdGFydDtcclxuXHJcbiAgQElucHV0KCkgc2luZ2xlQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNjcm9sbENvbnRhaW5lcj86IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc2Nyb2xsU3RyYXRlZ3k6ICdyZXBvc2l0aW9uJyB8ICdjbG9zZScgPSAnY2xvc2UnO1xyXG5cclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogUG9wdXBDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRlbXBsYXRlJykgb3B0aW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdsYWJlbFRlbXBsYXRlJykgbGFiZWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwSGVhZGVyVGVtcGxhdGUnKSBwb3B1cEhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgncG9wdXBGb290ZXJUZW1wbGF0ZScpIHBvcHVwRm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVR5cGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25WYWxpZGF0aW9uKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5pbml0RmllbGRzKHRoaXMubW9kZWwsIHRoaXMub3B0aW9uVmFsaWRhdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtTZWxlY3RTaXplRW51bVt0aGlzLnNpemVdfSAke3RoaXMucmVhZG9ubHlDbGFzc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFNlbGVjdGVkTGFiZWxzKCk6IFNlbGVjdElubmVySXRlbU1vZGVsW10ge1xyXG4gICAgaWYgKHRoaXMud2l0aG91dFNlbGVjdGVkKSB7XHJcbiAgICAgIHJldHVybiBbXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaSA9PiBpLl9fc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWx0ZXJlZEl0ZW1zKCk6IFNlbGVjdElubmVySXRlbU1vZGVsW10ge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU2VhcmNoRm4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU2VhcmNoRm4/Lih0aGlzLnNlYXJjaFZhbHVlLCBpdGVtLl9fb3JpZ2luKSA/PyBmYWxzZVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJdGVtcy5maWx0ZXIoaSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZVNlbGVjdGVkKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5iaW5kTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luW3RoaXMuYmluZExhYmVsXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpICYmICFpLl9fc2VsZWN0ZWQ7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaS5fX29yaWdpblsnbGFiZWwnXSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblsnbGFiZWwnXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpICYmICFpLl9fc2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkgJiYgIWkuX19zZWxlY3RlZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5iaW5kTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luW3RoaXMuYmluZExhYmVsXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGkuX19vcmlnaW5bJ2xhYmVsJ10pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bJ2xhYmVsJ10pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW4pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZT8ubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJY29uU2l6ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2l6ZSA9PT0gJ21lZGl1bScgPyAnaWNvbi1mb250LTE2JyA6ICdpY29uLWZvbnQtMjQnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0KGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVDaGFuZ2UpIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy51c2UgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZCA/ICFpLl9fc2VsZWN0ZWQgOiBmYWxzZX07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWR9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7Li4uaSwgX19zZWxlY3RlZDogaS5fX2lkID09PSBpdGVtLl9faWQgPyAhaS5fX3NlbGVjdGVkIDogaS5fX3NlbGVjdGVkfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bi51cGRhdGVQb3B1cCgpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuaW5uZXJJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJJdGVtKGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLm9uVW5zZWxlY3QoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25VbnNlbGVjdChpdGVtOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5pbm5lckl0ZW1zLmZvckVhY2goaSA9PiB7XHJcbiAgICAgIGlmIChpLl9faWQgPT09IGl0ZW0uX19pZCkge1xyXG4gICAgICAgIGkuX19zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLmlubmVySXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaXRlbSA9PiAoey4uLml0ZW0sIF9fc2VsZWN0ZWQ6IGZhbHNlfSkpO1xyXG5cclxuICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlUG9wdXAoZmFsc2UpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKFtdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cChpc09wZW46IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNPcGVuID0gaXNPcGVuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzT3B0aW9uKG9wdGlvbjogU2VsZWN0SW5uZXJJdGVtTW9kZWwpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB7XHJcbiAgICByZXR1cm4gb3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzTGFiZWwobGFiZWw6IFNlbGVjdElubmVySXRlbU1vZGVsKTogU2VsZWN0SW5uZXJJdGVtTW9kZWwge1xyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUoc2VsZWN0ZWQ6IGFueSB8IGFueVtdID0gW10pOiB2b2lkIHtcclxuICAgIHRoaXMub3JpZ2luU2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGVkKHRoaXMub3JpZ2luSXRlbXMsIHRoaXMub3JpZ2luU2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVRleHRWYWx1ZUVtcHR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLmluaXRNb2RlbENoYW5nZWQodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25BZGROZXdDdXN0b21PcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLmFkZE9wdGlvbih0aGlzLm1vZGVsLmxhYmVsKTtcclxuICAgICAgdGhpcy5tb2RlbC5sYWJlbCA9ICcnO1xyXG5cclxuICAgICAgdGhpcy5jaGFuZ2VUZXh0VmFsdWVFbXB0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2VsZWN0ZWQoaXRlbXM6IGFueVtdID0gW10sIHNlbGVjdGVkOiBhbnlbXSA9IFtdKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KHRoaXMub3JpZ2luU2VsZWN0ZWQpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBnZXRJbm5lclNlbGVjdGVkKGl0ZW1zLCBzZWxlY3RlZCwgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGdldElubmVyU2VsZWN0ZWQoaXRlbXMsIFtzZWxlY3RlZF0sIHRoaXMuYmluZFZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5uZXJJdGVtcyA9IGdldElubmVySXRlbXMoaXRlbXMsIHRoaXMuc2VsZWN0ZWQsIHRoaXMuYmluZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKHNlbGVjdGVkSXRlbXM6IFNlbGVjdElubmVySXRlbU1vZGVsW10pIHtcclxuICAgIGNvbnN0IGNsZWFyZWRTZWxlY3RlZCA9IGdldFNlbGVjdGVkSXRlbXMoc2VsZWN0ZWRJdGVtcywgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgY29uc3Qgb3V0cHV0U2VsZWN0ZWQgPSB0aGlzLm11bHRpcGxlID8gY2xlYXJlZFNlbGVjdGVkIDogY2xlYXJlZFNlbGVjdGVkLmxlbmd0aCA/IGNsZWFyZWRTZWxlY3RlZFswXSA6IG51bGw7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQob3V0cHV0U2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogb3V0cHV0U2VsZWN0ZWQsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIHRoaXMub25DaGFuZ2Uob3V0cHV0U2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gIGNsYXNzPVwibXJ4LXNlbGVjdFwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fd3JhcHBlclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidXNlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkZWZhdWx0J1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRcIlxyXG4gICAgICAgICAgW21yeFBvcHVwVHJpZ2dlcl09XCJkcm9wZG93blwiXHJcbiAgICAgICAgICBbcG9wdXBQb3NpdGlvbl09XCJwb3B1cFBvc2l0aW9uXCJcclxuICAgICAgICAgIFtzY3JvbGxDb250YWluZXJSZWZdPVwic2Nyb2xsQ29udGFpbmVyXCJcclxuICAgICAgICAgIFtzY3JvbGxTdHJhdGVneV09XCJzY3JvbGxTdHJhdGVneVwiXHJcbiAgICAgICAgICBbaXNGdWxsV2lkdGhEcm9wZG93bl09XCJpc0Z1bGxXaWR0aERyb3Bkb3duXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fdmFsdWVzXCIgKm5nSWY9XCJtdWx0aXBsZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aUNvbGxhcHNlQ291bnQgJiYgZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoID49IG11bHRpQ29sbGFwc2VDb3VudDsgZWxzZSBtdWx0aXBsZU5vdENvbGxhcHNlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2JhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwPtCS0YvQsdGA0LDQvdC+OiB7eyBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRpc2FibGVkICYmICFyZWFkb25seVwiIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMTZcIiAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aXBsZU5vdENvbGxhcHNlPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsczsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0TGFiZWxUcGxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3QsIGNsZWFyOiBjbGVhckl0ZW0uYmluZCh0aGlzKX1cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsVHBsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRMYWJlbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fdmFsdWVcIiAqbmdJZj1cIiFtdWx0aXBsZVwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0U2VsZWN0ZWRMYWJlbHNcIj5cclxuICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8bXJ4LWxvYWRlclxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCJzaXplID09PSAnbGFyZ2UnID8gJ3NtYWxsJyA6ICdleHRyYS1zbWFsbCdcIlxyXG4gICAgICAgICAgICAgIFtjb2xvcl09XCInYnJhbmQnXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWxvYWRlcj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cImdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCAmJiBjbGVhcmFibGVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hldnJvbi1kb3duIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm9wZW5lZF09XCJpc09wZW5cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua1wiXHJcbiAgICAgICAgICBbbXJ4UG9wdXBUcmlnZ2VyXT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgIFtwb3B1cFBvc2l0aW9uXT1cInBvcHVwUG9zaXRpb25cIlxyXG4gICAgICAgICAgW2lzRnVsbFdpZHRoRHJvcGRvd25dPVwiaXNGdWxsV2lkdGhEcm9wZG93blwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxwICpuZ0lmPVwic29ydFBsYWNlaG9sZGVyXCI+e3sgc29ydFBsYWNlaG9sZGVyIH19PC9wPlxyXG5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAqbmdJZj1cInNvcnRJY29uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIHt7c29ydEljb24gPT09ICdhc2MnID8gJ2ljb24tc29ydGluZy11cCcgOiAnaWNvbi1zb3J0aW5nLWRvd24nfX1cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJnZXRJY29uU2l6ZVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fY29udHJvbHNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX192YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBiaW5kTGFiZWwgPyBpdGVtLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBpdGVtLl9fb3JpZ2luWydsYWJlbCddIHx8IGl0ZW0uX19vcmlnaW4gfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGV2cm9uLWRvd24gbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3Mub3BlbmVkXT1cImlzT3BlblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG1yeC1wb3B1cCAjZHJvcGRvd24gW2Nsb3NlQWZ0ZXJDbGlja109XCJjbG9zYWJsZVwiICh0b2dnbGUpPVwidG9nZ2xlUG9wdXAoJGV2ZW50KVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyZWRJdGVtcy5sZW5ndGhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXM7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICAgIDxtcngtcG9wdXAtaXRlbSBbY3VzdG9tXT1cInRydWVcIiBbaWRdPVwiaXRlbS5fX2lkXCIgKGNsaWNrZWQpPVwib25TZWxlY3QoaXRlbSlcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdE9wdGlvblRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTogaXRlbSwgZmlyc3QsIGxhc3R9XCJcclxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9tcngtcG9wdXAtaXRlbT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbHRlcmVkSXRlbXMubGVuZ3RoXCI+XHJcbiAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtjdXN0b21dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19lbXB0eVwiPnt7IGVtcHR5VGV4dCB9fTwvZGl2PlxyXG4gICAgICAgIDwvbXJ4LXBvcHVwLWl0ZW0+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoYWJsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19zZWFyY2hcIj5cclxuICAgICAgICAgICAgPG1yeC1pbnB1dC1zZWFyY2hcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWlucHV0LXNlYXJjaD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb3B1cEhlYWRlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcHVwSGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhYWRkT3B0aW9uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2V4dHJhLW9wdGlvblwiPlxyXG4gICAgICAgICAgICA8bXJ4LWlucHV0LXRleHRcclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3Jvdy0xXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImV4dHJhT3B0aW9uUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwubGFiZWxcIlxyXG4gICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMzAwXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZF09XCIhIWZvcm0uZXJyb3JzWydsYWJlbCddXCJcclxuICAgICAgICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZm9ybS5lcnJvcnNbJ2xhYmVsJ11cIlxyXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVRleHRWYWx1ZUVtcHR5KClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaW5wdXQtdGV4dD5cclxuXHJcbiAgICAgICAgICAgIDxtcngtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIGljb249XCI8c3BhbiBjbGFzcz0nbXJ4LWljb24gaWNvbi1wbHVzIGljb24tZm9udC0yNCc+PC9zcGFuPlwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkTmV3Q3VzdG9tT3B0aW9uKClcIlxyXG4gICAgICAgICAgICA+PC9tcngtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb3B1cEZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBvcHVwRm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbXJ4LXBvcHVwPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW52YWxpZCAmJiBpc0ludmFsaWRNZXNzYWdlXCI+XHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2UgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCI+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtmaWVsZHNdPVwiZmllbGRzXCIgW2lkXT1cInV1aWRcIiBbdHlwZV09XCInaW5wdXQnXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc0xhYmVsKGl0ZW0pIGFzIGxhYmVsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2JhZGdlXCI+XHJcbiAgICAgIDxwPnt7IGJpbmRMYWJlbCA/IGxhYmVsLl9fb3JpZ2luW2JpbmRMYWJlbF0gOiBsYWJlbC5fX29yaWdpblsnbGFiZWwnXSB8fCBsYWJlbC5fX29yaWdpbiB9fTwvcD5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNlwiIChjbGljayk9XCJvblVuc2VsZWN0KGxhYmVsKVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0T3B0aW9uVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzT3B0aW9uKGl0ZW0pIGFzIG9wdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19pdGVtXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9faXRlbS0tY29udGVudFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJiaW5kSWNvbiAmJiBvcHRpb24uX19vcmlnaW5bYmluZEljb25dXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZm9udC0yNFwiIFtjbGFzc109XCJvcHRpb25bYmluZEljb25dXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8cD57eyBiaW5kTGFiZWwgPyBvcHRpb24uX19vcmlnaW5bYmluZExhYmVsXSA6IG9wdGlvbi5fX29yaWdpblsnbGFiZWwnXSB8fCBvcHRpb24uX19vcmlnaW4gfX08L3A+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbi5fX3NlbGVjdGVkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZWNrIGljb24tZm9udC0yNFwiPjwvc3Bhbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
342
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLFNBQVMsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWdCckQsTUFBTSxPQUFPLGVBQWU7SUEwRTFCLFlBQW9CLFNBQTRCO1FBQTVCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBekV6QyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLG1CQUFjLEdBQWdCLEVBQUUsQ0FB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QUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRVcsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBQ0MsYUFBYTtzQkFBM0MsWUFBWTt1QkFBQyxlQUFlO2dCQUNRLG1CQUFtQjtzQkFBdkQsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBQ0UsbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRixlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFZCxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RTaXplRW51bSwgU2VsZWN0U2l6ZVR5cGVzIH0gZnJvbSAnLi9lbnVtcyc7XHJcbmltcG9ydCB7IFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcG9wdXAvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RJbm5lckl0ZW1Nb2RlbCwgQWRkT3B0aW9uRm4sIEN1c3RvbVNlYXJjaEZuLCBTZWxlY3RJdGVtTW9kZWwsIFRlbXBsYXRlT3V0cHV0TW9kZWwgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IGdldFNlbGVjdGVkSXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LXNlbGVjdGVkLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IGdldElubmVySXRlbXMgfSBmcm9tICcuL2hlbHBlcnMvZ2V0LWlubmVyLWl0ZW1zLmhlbHBlcic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkVudW0sIFBvc2l0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW1zL292ZXJsYXknO1xyXG5pbXBvcnQgeyBnZXRJbm5lclNlbGVjdGVkIH0gZnJvbSAnLi9oZWxwZXJzL2dldC1pbm5lci1zZWxlY3RlZC5oZWxwZXInO1xyXG5pbXBvcnQgeyBNcnhGb3JtVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZVR5cGVzLCBTZWxlY3RWYWx1ZVdpdGhJZCB9IGZyb20gJy4vc2VsZWN0LmVudW0nO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIHB1YmxpYyBzZWFyY2hWYWx1ZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBvcmlnaW5TZWxlY3RlZDogYW55IHwgYW55W10gPSBbXTtcclxuICBwdWJsaWMgb3JpZ2luSXRlbXM6IFNlbGVjdEl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkOiBTZWxlY3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBpbm5lckl0ZW1zOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbFtdID0gW107XHJcbiAgcHVibGljIGZvcm0gPSBuZXcgTXJ4Rm9ybVZhbGlkYXRvcigpO1xyXG4gIHB1YmxpYyBtb2RlbCA9IHtcclxuICAgIGxhYmVsOiAnJyxcclxuICB9O1xyXG5cclxuICAvLyBTQVZFIFNUQVRFXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgdGhpcy5vcmlnaW5JdGVtcyA9IGl0ZW1zO1xyXG4gICAgXHJcbiAgICB0aGlzLl91cGRhdGVTZWxlY3RlZCh0aGlzLm9yaWdpbkl0ZW1zLCB0aGlzLm9yaWdpblNlbGVjdGVkKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNsZWFyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xvc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNpemU6IFNlbGVjdFNpemVUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgYmluZFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBiaW5kTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGJpbmRJY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBlbXB0eVRleHQ6IHN0cmluZyA9ICfQndC1INC90LDQudC00LXQvdC+JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ9CS0YvQsdC10YDQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSc7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSBtdWx0aUNvbGxhcHNlQ291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgnaXNFeHRyYU9wdGlvbicpIG9wdGlvblZhbGlkYXRpb246IHsgbGFiZWw6IHsgcmVxdWlyZWQ6IGJvb2xlYW4sIG1pbkxlbmd0aDogbnVtYmVyIH0gfSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGV4dHJhT3B0aW9uUGxhY2Vob2xkZXI6IHN0cmluZyA9ICfQktCy0LXQtNC40YLQtSDQt9C90LDRh9C10L3QuNC1JztcclxuICBASW5wdXQoKSB1c2U6ICdkZWZhdWx0JyB8ICdsaW5rJyA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBzb3J0SWNvbjogJ2FzYycgfCAnZGVzYycgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBzb3J0UGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRnVsbFdpZHRoRHJvcGRvd246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHdpdGhvdXRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpZGVTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBhZGRPcHRpb24hOiBBZGRPcHRpb25GbjtcclxuICBASW5wdXQoKSBjdXN0b21TZWFyY2hGbj86IEN1c3RvbVNlYXJjaEZuO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uVHlwZSA9IFBvc2l0aW9uRW51bS5Cb3R0b21TdGFydDtcclxuXHJcbiAgQElucHV0KCkgc2luZ2xlQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNjcm9sbENvbnRhaW5lcj86IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc2Nyb2xsU3RyYXRlZ3k6ICdyZXBvc2l0aW9uJyB8ICdjbG9zZScgPSAnY2xvc2UnO1xyXG5cclxuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogUG9wdXBDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRlbXBsYXRlJykgb3B0aW9uVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdsYWJlbFRlbXBsYXRlJykgbGFiZWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFRlbXBsYXRlT3V0cHV0TW9kZWw+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3BvcHVwSGVhZGVyVGVtcGxhdGUnKSBwb3B1cEhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8VGVtcGxhdGVPdXRwdXRNb2RlbD47XHJcbiAgQENvbnRlbnRDaGlsZCgncG9wdXBGb290ZXJUZW1wbGF0ZScpIHBvcHVwRm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZU91dHB1dE1vZGVsPjtcclxuICBAQ29udGVudENoaWxkKCdjb250ZW50VGVtcGxhdGUnKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVR5cGVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2VsZWN0VmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wdGlvblZhbGlkYXRpb24pIHtcclxuICAgICAgdGhpcy5mb3JtLmluaXRGaWVsZHModGhpcy5tb2RlbCwgdGhpcy5vcHRpb25WYWxpZGF0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgP1xyXG4gICAgICAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOlxyXG4gICAgICB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke1NlbGVjdFNpemVFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0U2VsZWN0ZWRMYWJlbHMoKTogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSB7XHJcbiAgICBpZiAodGhpcy53aXRob3V0U2VsZWN0ZWQpIHtcclxuICAgICAgcmV0dXJuIFtdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lckl0ZW1zLmZpbHRlcihpID0+IGkuX19zZWxlY3RlZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpbHRlcmVkSXRlbXMoKTogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSB7XHJcbiAgICBpZiAodGhpcy5jdXN0b21TZWFyY2hGbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lckl0ZW1zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21TZWFyY2hGbj8uKHRoaXMuc2VhcmNoVmFsdWUsIGl0ZW0uX19vcmlnaW4pID8/IGZhbHNlXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbm5lckl0ZW1zLmZpbHRlcihpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5oaWRlU2VsZWN0ZWQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmJpbmRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bdGhpcy5iaW5kTGFiZWxdKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkgJiYgIWkuX19zZWxlY3RlZDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpLl9fb3JpZ2luWydsYWJlbCddKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhpLl9fb3JpZ2luWydsYWJlbCddKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSkgJiYgIWkuX19zZWxlY3RlZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW4pLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSAmJiAhaS5fX3NlbGVjdGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLmJpbmRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGkuX19vcmlnaW5bdGhpcy5iaW5kTGFiZWxdKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaS5fX29yaWdpblsnbGFiZWwnXSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpblsnbGFiZWwnXSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaS5fX29yaWdpbikudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNJbnZhbGlkTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlPy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEljb25TaXplKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbWVkaXVtJyA/ICdpY29uLWZvbnQtMTYnIDogJ2ljb24tZm9udC0yNCc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3QoaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmlubmVySXRlbXMgPSB0aGlzLmlubmVySXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUNoYW5nZSkge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnVzZSA9PT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgICAgICByZXR1cm4gey4uLmksIF9fc2VsZWN0ZWQ6IGkuX19pZCA9PT0gaXRlbS5fX2lkID8gIWkuX19zZWxlY3RlZCA6IGZhbHNlfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW5uZXJJdGVtcyA9IHRoaXMuaW5uZXJJdGVtcy5tYXAoaSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsuLi5pLCBfX3NlbGVjdGVkOiBpLl9faWQgPT09IGl0ZW0uX19pZCA/ICFpLl9fc2VsZWN0ZWQgOiBpLl9fc2VsZWN0ZWR9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvcHVwKCk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUodGhpcy5pbm5lckl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckl0ZW0oaXRlbTogU2VsZWN0SW5uZXJJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMub25VbnNlbGVjdChpdGVtKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVuc2VsZWN0KGl0ZW06IFNlbGVjdElubmVySXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLmlubmVySXRlbXMuZm9yRWFjaChpID0+IHtcclxuICAgICAgaWYgKGkuX19pZCA9PT0gaXRlbS5fX2lkKSB7XHJcbiAgICAgICAgaS5fX3NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHRoaXMuaW5uZXJJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGVhcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5pbm5lckl0ZW1zID0gdGhpcy5pbm5lckl0ZW1zLm1hcChpdGVtID0+ICh7Li4uaXRlbSwgX19zZWxlY3RlZDogZmFsc2V9KSk7XHJcblxyXG4gICAgdGhpcy5kcm9wZG93bi50b2dnbGVQb3B1cChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUoW10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKGlzT3BlbjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc09wZW4gPSBpc09wZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNPcHRpb24ob3B0aW9uOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCk6IFNlbGVjdElubmVySXRlbU1vZGVsIHtcclxuICAgIHJldHVybiBvcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXNMYWJlbChsYWJlbDogU2VsZWN0SW5uZXJJdGVtTW9kZWwpOiBTZWxlY3RJbm5lckl0ZW1Nb2RlbCB7XHJcbiAgICByZXR1cm4gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShzZWxlY3RlZDogYW55IHwgYW55W10gPSBbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmlnaW5TZWxlY3RlZCA9IHNlbGVjdGVkO1xyXG4gICAgdGhpcy5fdXBkYXRlU2VsZWN0ZWQodGhpcy5vcmlnaW5JdGVtcywgdGhpcy5vcmlnaW5TZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVGV4dFZhbHVlRW1wdHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uaW5pdE1vZGVsQ2hhbmdlZCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkFkZE5ld0N1c3RvbU9wdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuYWRkT3B0aW9uKHRoaXMubW9kZWwubGFiZWwpO1xyXG4gICAgICB0aGlzLm1vZGVsLmxhYmVsID0gJyc7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZVRleHRWYWx1ZUVtcHR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVTZWxlY3RlZChpdGVtczogYW55W10gPSBbXSwgc2VsZWN0ZWQ6IGFueVtdID0gW10pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy5vcmlnaW5TZWxlY3RlZCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGdldElubmVyU2VsZWN0ZWQoaXRlbXMsIHNlbGVjdGVkLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkID0gZ2V0SW5uZXJTZWxlY3RlZChpdGVtcywgW3NlbGVjdGVkXSwgdGhpcy5iaW5kVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbm5lckl0ZW1zID0gZ2V0SW5uZXJJdGVtcyhpdGVtcywgdGhpcy5zZWxlY3RlZCwgdGhpcy5iaW5kVmFsdWUpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWUoc2VsZWN0ZWRJdGVtczogU2VsZWN0SW5uZXJJdGVtTW9kZWxbXSkge1xyXG4gICAgY29uc3QgY2xlYXJlZFNlbGVjdGVkID0gZ2V0U2VsZWN0ZWRJdGVtcyhzZWxlY3RlZEl0ZW1zLCB0aGlzLmJpbmRWYWx1ZSk7XHJcbiAgICBjb25zdCBvdXRwdXRTZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUgPyBjbGVhcmVkU2VsZWN0ZWQgOiBjbGVhcmVkU2VsZWN0ZWQubGVuZ3RoID8gY2xlYXJlZFNlbGVjdGVkWzBdIDogbnVsbDtcclxuXHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBvdXRwdXRTZWxlY3RlZCwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShvdXRwdXRTZWxlY3RlZCk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2NsYXNzLi1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLi1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCJpbnZhbGlkXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbiAgY2xhc3M9XCJtcngtc2VsZWN0XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X193cmFwcGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ1c2VcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlZmF1bHQnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dFwiXHJcbiAgICAgICAgICBbbXJ4UG9wdXBUcmlnZ2VyXT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgIFtwb3B1cFBvc2l0aW9uXT1cInBvcHVwUG9zaXRpb25cIlxyXG4gICAgICAgICAgW3Njcm9sbENvbnRhaW5lclJlZl09XCJzY3JvbGxDb250YWluZXJcIlxyXG4gICAgICAgICAgW3Njcm9sbFN0cmF0ZWd5XT1cInNjcm9sbFN0cmF0ZWd5XCJcclxuICAgICAgICAgIFtpc0Z1bGxXaWR0aERyb3Bkb3duXT1cImlzRnVsbFdpZHRoRHJvcGRvd25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRTZWxlY3RlZExhYmVscy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZXNcIiAqbmdJZj1cIm11bHRpcGxlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpQ29sbGFwc2VDb3VudCAmJiBnZXRTZWxlY3RlZExhYmVscy5sZW5ndGggPj0gbXVsdGlDb2xsYXBzZUNvdW50OyBlbHNlIG11bHRpcGxlTm90Q29sbGFwc2VcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHA+0JLRi9Cx0YDQsNC90L46IHt7IGdldFNlbGVjdGVkTGFiZWxzLmxlbmd0aCB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGlzYWJsZWQgJiYgIXJlYWRvbmx5XCIgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0xNlwiIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlTm90Q29sbGFwc2U+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzOyBsZXQgZmlyc3QgPSBmaXJzdDsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRMYWJlbFRwbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdCwgY2xlYXI6IGNsZWFySXRlbS5iaW5kKHRoaXMpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFiZWxUcGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdExhYmVsVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X192YWx1ZVwiICpuZ0lmPVwiIW11bHRpcGxlXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRTZWxlY3RlZExhYmVsc1wiPlxyXG4gICAgICAgICAgICAgICAge3sgYmluZExhYmVsID8gaXRlbS5fX29yaWdpbltiaW5kTGFiZWxdIDogaXRlbS5fX29yaWdpblsnbGFiZWwnXSB8fCBpdGVtLl9fb3JpZ2luIH19XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFnZXRTZWxlY3RlZExhYmVscy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0X19wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzXCI+XHJcbiAgICAgICAgICAgIDxtcngtbG9hZGVyXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cInNpemUgPT09ICdsYXJnZScgPyAnc21hbGwnIDogJ2V4dHJhLXNtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cIidicmFuZCdcIlxyXG4gICAgICAgICAgICA+PC9tcngtbG9hZGVyPlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoICYmIGNsZWFyYWJsZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIG1yeC1zZWxlY3RfX2lucHV0X19jb250cm9scy0taWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jaGV2cm9uLWRvd24gbXJ4LXNlbGVjdF9faW5wdXRfX2NvbnRyb2xzLS1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3Mub3BlbmVkXT1cImlzT3BlblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xpbmsnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rXCJcclxuICAgICAgICAgIFttcnhQb3B1cFRyaWdnZXJdPVwiZHJvcGRvd25cIlxyXG4gICAgICAgICAgW3BvcHVwUG9zaXRpb25dPVwicG9wdXBQb3NpdGlvblwiXHJcbiAgICAgICAgICBbaXNGdWxsV2lkdGhEcm9wZG93bl09XCJpc0Z1bGxXaWR0aERyb3Bkb3duXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9faW5wdXQtbGlua19fY29udHJvbHNcIj5cclxuICAgICAgICAgICAgPHAgKm5nSWY9XCJzb3J0UGxhY2Vob2xkZXJcIj57eyBzb3J0UGxhY2Vob2xkZXIgfX08L3A+XHJcblxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic29ydEljb25cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24ge3tzb3J0SWNvbiA9PT0gJ2FzYycgPyAnaWNvbi1zb3J0aW5nLXVwJyA6ICdpY29uLXNvcnRpbmctZG93bid9fVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEljb25TaXplXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dC1saW5rX19jb250cm9sc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U2VsZWN0ZWRMYWJlbHMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2lucHV0LWxpbmtfX3ZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldFNlbGVjdGVkTGFiZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGJpbmRMYWJlbCA/IGl0ZW0uX19vcmlnaW5bYmluZExhYmVsXSA6IGl0ZW0uX19vcmlnaW5bJ2xhYmVsJ10gfHwgaXRlbS5fX29yaWdpbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNoZXZyb24tZG93biBtcngtc2VsZWN0X19pbnB1dF9fY29udHJvbHMtLWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5vcGVuZWRdPVwiaXNPcGVuXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SWNvblNpemVcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bXJ4LXBvcHVwICNkcm9wZG93biBbY2xvc2VBZnRlckNsaWNrXT1cImNsb3NhYmxlXCIgKHRvZ2dsZSk9XCJ0b2dnbGVQb3B1cCgkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJlZEl0ZW1zLmxlbmd0aFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtczsgbGV0IGZpcnN0ID0gZmlyc3Q7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgICAgPG1yeC1wb3B1cC1pdGVtIFtjdXN0b21dPVwidHJ1ZVwiIFtpZF09XCJpdGVtLl9faWRcIiAoY2xpY2tlZCk9XCJvblNlbGVjdChpdGVtKVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGZpcnN0LCBsYXN0fVwiXHJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uVGVtcGxhdGVcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0T3B0aW9uVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtLCBmaXJzdCwgbGFzdH1cIlxyXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L21yeC1wb3B1cC1pdGVtPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyZWRJdGVtcy5sZW5ndGhcIj5cclxuICAgICAgICA8bXJ4LXBvcHVwLWl0ZW0gW2N1c3RvbV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2VtcHR5XCI+e3sgZW1wdHlUZXh0IH19PC9kaXY+XHJcbiAgICAgICAgPC9tcngtcG9wdXAtaXRlbT5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hhYmxlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX3NlYXJjaFwiPlxyXG4gICAgICAgICAgICA8bXJ4LWlucHV0LXNlYXJjaFxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgICA+PC9tcngtaW5wdXQtc2VhcmNoPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50VGVtcGxhdGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvcHVwSGVhZGVyVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wdXBIZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISFhZGRPcHRpb25cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19kcm9wZG93bl9fZXh0cmEtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgIDxtcngtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93LTFcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZXh0cmFPcHRpb25QbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgW21heGxlbmd0aF09XCIzMDBcIlxyXG4gICAgICAgICAgICAgIFtpbnZhbGlkXT1cIiEhZm9ybS5lcnJvcnNbJ2xhYmVsJ11cIlxyXG4gICAgICAgICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJmb3JtLmVycm9yc1snbGFiZWwnXVwiXHJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlVGV4dFZhbHVlRW1wdHkoKVwiXHJcbiAgICAgICAgICAgID48L21yeC1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgICAgICAgPG1yeC1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbk9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cIjxzcGFuIGNsYXNzPSdtcngtaWNvbiBpY29uLXBsdXMgaWNvbi1mb250LTI0Jz48L3NwYW4+XCJcclxuICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGROZXdDdXN0b21PcHRpb24oKVwiXHJcbiAgICAgICAgICAgID48L21yeC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvcHVwRm9vdGVyVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicG9wdXBGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9tcngtcG9wdXA+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnZhbGlkICYmIGlzSW52YWxpZE1lc3NhZ2VcIj5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZSBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIj48L21yeC1lcnJvci1tZXNzYWdlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgW2ZpZWxkc109XCJmaWVsZHNcIiBbaWRdPVwidXVpZFwiIFt0eXBlXT1cIidpbnB1dCdcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzTGFiZWwoaXRlbSkgYXMgbGFiZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtc2VsZWN0X19pbnB1dF9fYmFkZ2VcIj5cclxuICAgICAgPHA+e3sgYmluZExhYmVsID8gbGFiZWwuX19vcmlnaW5bYmluZExhYmVsXSA6IGxhYmVsLl9fb3JpZ2luWydsYWJlbCddIHx8IGxhYmVsLl9fb3JpZ2luIH19PC9wPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2UgaWNvbi1mb250LTE2XCIgKGNsaWNrKT1cIm9uVW5zZWxlY3QobGFiZWwpXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNPcHRpb24oaXRlbSkgYXMgb3B0aW9uXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXNlbGVjdF9fZHJvcGRvd25fX2l0ZW1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1zZWxlY3RfX2Ryb3Bkb3duX19pdGVtLS1jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJpbmRJY29uICYmIG9wdGlvbi5fX29yaWdpbltiaW5kSWNvbl1cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1mb250LTI0XCIgW2NsYXNzXT1cIm9wdGlvbltiaW5kSWNvbl1cIj48L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxwPnt7IGJpbmRMYWJlbCA/IG9wdGlvbi5fX29yaWdpbltiaW5kTGFiZWxdIDogb3B0aW9uLl9fb3JpZ2luWydsYWJlbCddIHx8IG9wdGlvbi5fX29yaWdpbiB9fTwvcD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLl9fc2VsZWN0ZWRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2hlY2sgaWNvbi1mb250LTI0XCI+PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -56,6 +56,11 @@ export class PopupTriggerDirective {
|
|
|
56
56
|
const templatePortal = new TemplatePortal(this.popupPanel.templateRef, this.viewContainerRef);
|
|
57
57
|
this._overlayRef.attach(templatePortal);
|
|
58
58
|
this.popupPanel.toggle.emit(true);
|
|
59
|
+
setTimeout(() => {
|
|
60
|
+
if (this._overlayRef) {
|
|
61
|
+
this._overlayRef.updatePosition();
|
|
62
|
+
}
|
|
63
|
+
}, 0);
|
|
59
64
|
this._subscriberDetach$ = this._overlayRef.detachments().subscribe(_ => {
|
|
60
65
|
this._isDropdownOpen = false;
|
|
61
66
|
this.popupPanel.toggle.emit(false);
|
|
@@ -161,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
161
166
|
type: HostListener,
|
|
162
167
|
args: ['window:resize', ['$event']]
|
|
163
168
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAvZGlyZWN0aXZlcy9wb3B1cC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQVN2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLHdCQUF3QixDQUFDOzs7QUFRNUUsTUFBTSxPQUFPLHFCQUFxQjtJQXdCaEMsWUFDVSxPQUFnQixFQUNoQixVQUFtQyxFQUNuQyxnQkFBa0MsRUFDbEMsVUFBeUMsRUFDekMsZ0JBQWtDO1FBSmxDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUJwQyx1QkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCx1QkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl2QixrQkFBYSxHQUFpQixjQUFjLENBQUM7UUFFN0Msd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFvQixPQUFPLENBQUM7UUFHNUMsbUJBQWMsR0FBMkIsT0FBTyxDQUFDO0lBa0IxRCxDQUFDO0lBZkQsSUFBSSxtQkFBbUI7UUFDckIsT0FB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Q1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSxlQUFlO3FCQUMzQjtpQkFDRjtpT0FPa0MsVUFBVTtzQkFBMUMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ2YsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkF3SUMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFjbkMsWUFBWTtzQkFEbEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcG9wdXAvcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBPdmVybGF5LFxyXG4gIE92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLFxyXG4gIE92ZXJsYXlSZWYsXHJcbiAgUG9zaXRpb25TdHJhdGVneSxcclxuICBTY3JvbGxEaXNwYXRjaGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBvc2l0aW9uU3RyYXRlZ3lFbnVtLCBQb3NpdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy9vdmVybGF5JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW21yeFBvcHVwVHJpZ2dlcl0nLFxyXG4gIGhvc3Q6IHtcclxuICAgICcoY2xpY2spJzogJ3RvZ2dsZVBvcHVwKCknXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wdXBUcmlnZ2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9zdWJzY3JpYmVyRGV0YWNoJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgX3N1YnNjcmliZXJBdHRhY2gkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBfaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9vdmVybGF5UmVmITogT3ZlcmxheVJlZjtcclxuXHJcbiAgQElucHV0KCdtcnhQb3B1cFRyaWdnZXInKSBwdWJsaWMgcG9wdXBQYW5lbCE6IFBvcHVwQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIHBvcHVwUG9zaXRpb246IFBvc2l0aW9uVHlwZSA9ICdib3R0b20tc3RhcnQnO1xyXG5cclxuICBASW5wdXQoKSBpc0Z1bGxXaWR0aERyb3Bkb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWluV2lkdGhEcm9wZG93bjogbnVtYmVyIHwgc3RyaW5nID0gJzEyMHB4JztcclxuICBASW5wdXQoKSBtYXhXaWR0aERyb3Bkb3duITogbnVtYmVyIHwgc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbENvbnRhaW5lclJlZj86IEVsZW1lbnRSZWY7XHJcbiAgQElucHV0KCkgc2Nyb2xsU3RyYXRlZ3k6ICdyZXBvc2l0aW9uJyB8ICdjbG9zZScgPSAnY2xvc2UnO1xyXG5cclxuXHJcbiAgZ2V0IGdldE1pbldpZHRoRHJvcGRvd24oKTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmlzRnVsbFdpZHRoRHJvcGRvd24gPyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA6IHRoaXMubWluV2lkdGhEcm9wZG93bjtcclxuICB9XHJcblxyXG4gIGdldCBnZXRNYXhXaWR0aERyb3Bkb3duKCk6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0Z1bGxXaWR0aERyb3Bkb3duID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLm1heFdpZHRoRHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGRpc3BhdGNoZXI6IE92ZXJsYXlPdXRzaWRlQ2xpY2tEaXNwYXRjaGVyLFxyXG4gICAgcHJpdmF0ZSBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBvcHVwUGFuZWwuX3RvZ2dsZUlubmVyLnN1YnNjcmliZShpc09wZW4gPT4ge1xyXG4gICAgICBpZiAoaXNPcGVuICYmICF0aGlzLl9pc0Ryb3Bkb3duT3Blbikge1xyXG4gICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFpc09wZW4gJiYgdGhpcy5faXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5wb3B1cFBhbmVsLl91cGRhdGVJbm5lci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBhc3luY1NjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB0aGlzLnVwZGF0ZVBvc2l0aW9uKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVQb3B1cCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzRHJvcGRvd25PcGVuID8gdGhpcy5kZXN0cm95RHJvcGRvd24oKSA6IHRoaXMub3BlbkRyb3Bkb3duKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuRHJvcGRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZGVPdGhlck92ZXJsYXlzKCk7XHJcblxyXG4gICAgdGhpcy5faXNEcm9wZG93bk9wZW4gPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5nZXRQb3NpdGlvblN0cmF0ZWd5KCksXHJcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3kgPT09ICdyZXBvc2l0aW9uJyA/IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSA6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdtcngtcG9wdXAnLFxyXG4gICAgICBtaW5XaWR0aDogdGhpcy5nZXRNaW5XaWR0aERyb3Bkb3duLFxyXG4gICAgICBtYXhXaWR0aDogdGhpcy5nZXRNYXhXaWR0aERyb3Bkb3duLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgdGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXHJcbiAgICAgIHRoaXMucG9wdXBQYW5lbC50ZW1wbGF0ZVJlZixcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKHRlbXBsYXRlUG9ydGFsKTtcclxuXHJcbiAgICB0aGlzLnBvcHVwUGFuZWwudG9nZ2xlLmVtaXQodHJ1ZSk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaWJlckRldGFjaCQgPSB0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLl9pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBvcHVwUGFuZWwudG9nZ2xlLmVtaXQoZmFsc2UpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKCkuc3Vic2NyaWJlKChzY3JvbGxhYmxlKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzY3JvbGxhYmxlICYmXHJcbiAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXJSZWYgJiZcclxuICAgICAgICBzY3JvbGxhYmxlLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50ID09PSB0aGlzLnNjcm9sbENvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRHJvcGRvd24oKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lEcm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xyXG4gICAgICAgIG1pbldpZHRoOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBQb3NpdGlvblN0cmF0ZWd5IHtcclxuICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLm92ZXJsYXlcclxuICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhQb3NpdGlvblN0cmF0ZWd5RW51bVt0aGlzLnBvcHVwUG9zaXRpb25dKTtcclxuXHJcbiAgICBpZiAodGhpcy5zY3JvbGxDb250YWluZXJSZWYpIHtcclxuICAgICAgb3ZlcmxheS53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnMoW3RoaXMuc2Nyb2xsQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnRdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3ZlcmxheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveURyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmIHx8ICF0aGlzLl9pc0Ryb3Bkb3duT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZU90aGVyT3ZlcmxheXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BhdGNoZXIuX2F0dGFjaGVkT3ZlcmxheXMuZm9yRWFjaCgob3ZlcmxheTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChvdmVybGF5LmdldENvbmZpZygpLnBhbmVsQ2xhc3MgPT09ICdtcngtcG9wdXAnKSB7XHJcbiAgICAgICAgb3ZlcmxheS5kZXRhY2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXJEZXRhY2gkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVyQXR0YWNoJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljayhldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5tcngtcG9wdXAnKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kZXN0cm95RHJvcGRvd24oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQuY2xvc2VzdCgnLm1yeC1wb3B1cC1pdGVtJykgJiYgdGhpcy5wb3B1cFBhbmVsLmNsb3NlQWZ0ZXJDbGljaykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlc3Ryb3lEcm9wZG93bigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlUmVzaXplKCkge1xyXG4gICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcG9wdXAvZGlyZWN0aXZlcy9wb3B1cC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUErQixNQUFNLGVBQWUsQ0FBQztBQVN2SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFnQixNQUFNLHdCQUF3QixDQUFDOzs7QUFRNUUsTUFBTSxPQUFPLHFCQUFxQjtJQXdCaEMsWUFDVSxPQUFnQixFQUNoQixVQUFtQyxFQUNuQyxnQkFBa0MsRUFDbEMsVUFBeUMsRUFDekMsZ0JBQWtDO1FBSmxDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBNUJwQyx1QkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCx1QkFBa0IsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl2QixrQkFBYSxHQUFpQixjQUFjLENBQUM7UUFFN0Msd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFvQixPQUFPLENBQUM7UUFHNUMsbUJBQWMsR0FBMkIsT0FBTyxDQUFDO0lBa0IxRCxDQUFDO0lBZkQsSUFBSSxtQkFBbUI7UUFDckIsT0FB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QjtTQUNGO0lBQ0gsQ0FBQztJQUdNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O2tIQTFLVSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLElBQUksRUFBRTt3QkFDSixTQUFTLEVBQUUsZUFBZTtxQkFDM0I7aUJBQ0Y7aU9BT2tDLFVBQVU7c0JBQTFDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUNmLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBOElDLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBY25DLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT3ZlcmxheSxcclxuICBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcclxuICBPdmVybGF5UmVmLFxyXG4gIFBvc2l0aW9uU3RyYXRlZ3ksXHJcbiAgU2Nyb2xsRGlzcGF0Y2hlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5RW51bSwgUG9zaXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bXMvb3ZlcmxheSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1ttcnhQb3B1cFRyaWdnZXJdJyxcclxuICBob3N0OiB7XHJcbiAgICAnKGNsaWNrKSc6ICd0b2dnbGVQb3B1cCgpJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwVHJpZ2dlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlckRldGFjaCQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9zdWJzY3JpYmVyQXR0YWNoJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgX2lzRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiE6IE92ZXJsYXlSZWY7XHJcblxyXG4gIEBJbnB1dCgnbXJ4UG9wdXBUcmlnZ2VyJykgcHVibGljIHBvcHVwUGFuZWwhOiBQb3B1cENvbXBvbmVudDtcclxuICBASW5wdXQoKSBwb3B1cFBvc2l0aW9uOiBQb3NpdGlvblR5cGUgPSAnYm90dG9tLXN0YXJ0JztcclxuXHJcbiAgQElucHV0KCkgaXNGdWxsV2lkdGhEcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1pbldpZHRoRHJvcGRvd246IG51bWJlciB8IHN0cmluZyA9ICcxMjBweCc7XHJcbiAgQElucHV0KCkgbWF4V2lkdGhEcm9wZG93biE6IG51bWJlciB8IHN0cmluZztcclxuICBASW5wdXQoKSBzY3JvbGxDb250YWluZXJSZWY/OiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNjcm9sbFN0cmF0ZWd5OiAncmVwb3NpdGlvbicgfCAnY2xvc2UnID0gJ2Nsb3NlJztcclxuXHJcblxyXG4gIGdldCBnZXRNaW5XaWR0aERyb3Bkb3duKCk6IHN0cmluZyB8IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0Z1bGxXaWR0aERyb3Bkb3duID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLm1pbldpZHRoRHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0TWF4V2lkdGhEcm9wZG93bigpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNGdWxsV2lkdGhEcm9wZG93biA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogdGhpcy5tYXhXaWR0aERyb3Bkb3duO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBPdmVybGF5T3V0c2lkZUNsaWNrRGlzcGF0Y2hlcixcclxuICAgIHByaXZhdGUgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlclxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5wb3B1cFBhbmVsLl90b2dnbGVJbm5lci5zdWJzY3JpYmUoaXNPcGVuID0+IHtcclxuICAgICAgaWYgKGlzT3BlbiAmJiAhdGhpcy5faXNEcm9wZG93bk9wZW4pIHtcclxuICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghaXNPcGVuICYmIHRoaXMuX2lzRHJvcGRvd25PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucG9wdXBQYW5lbC5fdXBkYXRlSW5uZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgYXN5bmNTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gdGhpcy51cGRhdGVQb3NpdGlvbigpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlUG9wdXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pc0Ryb3Bkb3duT3BlbiA/IHRoaXMuZGVzdHJveURyb3Bkb3duKCkgOiB0aGlzLm9wZW5Ecm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgdGhpcy5oaWRlT3RoZXJPdmVybGF5cygpO1xyXG5cclxuICAgIHRoaXMuX2lzRHJvcGRvd25PcGVuID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpLFxyXG4gICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLnNjcm9sbFN0cmF0ZWd5ID09PSAncmVwb3NpdGlvbicgPyB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCkgOiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxyXG4gICAgICBwYW5lbENsYXNzOiAnbXJ4LXBvcHVwJyxcclxuICAgICAgbWluV2lkdGg6IHRoaXMuZ2V0TWluV2lkdGhEcm9wZG93bixcclxuICAgICAgbWF4V2lkdGg6IHRoaXMuZ2V0TWF4V2lkdGhEcm9wZG93bixcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxyXG4gICAgICB0aGlzLnBvcHVwUGFuZWwudGVtcGxhdGVSZWYsXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZlxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0ZW1wbGF0ZVBvcnRhbCk7XHJcblxyXG4gICAgdGhpcy5wb3B1cFBhbmVsLnRvZ2dsZS5lbWl0KHRydWUpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfSwgMCk7XHJcblxyXG4gICAgdGhpcy5fc3Vic2NyaWJlckRldGFjaCQgPSB0aGlzLl9vdmVybGF5UmVmLmRldGFjaG1lbnRzKCkuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLl9pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBvcHVwUGFuZWwudG9nZ2xlLmVtaXQoZmFsc2UpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnNjcm9sbGVkKCkuc3Vic2NyaWJlKChzY3JvbGxhYmxlKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzY3JvbGxhYmxlICYmXHJcbiAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXJSZWYgJiZcclxuICAgICAgICBzY3JvbGxhYmxlLmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50ID09PSB0aGlzLnNjcm9sbENvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlRHJvcGRvd24oKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lEcm9wZG93bigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVBvc2l0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcclxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoe1xyXG4gICAgICAgIG1pbldpZHRoOiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBQb3NpdGlvblN0cmF0ZWd5IHtcclxuICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLm92ZXJsYXlcclxuICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKVxyXG4gICAgICAud2l0aFBvc2l0aW9ucyhQb3NpdGlvblN0cmF0ZWd5RW51bVt0aGlzLnBvcHVwUG9zaXRpb25dKTtcclxuXHJcbiAgICBpZiAodGhpcy5zY3JvbGxDb250YWluZXJSZWYpIHtcclxuICAgICAgb3ZlcmxheS53aXRoU2Nyb2xsYWJsZUNvbnRhaW5lcnMoW3RoaXMuc2Nyb2xsQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnRdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3ZlcmxheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveURyb3Bkb3duKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmIHx8ICF0aGlzLl9pc0Ryb3Bkb3duT3Blbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZU90aGVyT3ZlcmxheXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BhdGNoZXIuX2F0dGFjaGVkT3ZlcmxheXMuZm9yRWFjaCgob3ZlcmxheTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChvdmVybGF5LmdldENvbmZpZygpLnBhbmVsQ2xhc3MgPT09ICdtcngtcG9wdXAnKSB7XHJcbiAgICAgICAgb3ZlcmxheS5kZXRhY2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3N1YnNjcmliZXJEZXRhY2gkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9zdWJzY3JpYmVyQXR0YWNoJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVDbGljayhldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkgcmV0dXJuO1xyXG5cclxuICAgIGlmICghZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5tcngtcG9wdXAnKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kZXN0cm95RHJvcGRvd24oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQuY2xvc2VzdCgnLm1yeC1wb3B1cC1pdGVtJykgJiYgdGhpcy5wb3B1cFBhbmVsLmNsb3NlQWZ0ZXJDbGljaykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlc3Ryb3lEcm9wZG93bigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlUmVzaXplKCkge1xyXG4gICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/fesm2015/myrta-ui.mjs
CHANGED
|
@@ -1937,6 +1937,11 @@ class PopupTriggerDirective {
|
|
|
1937
1937
|
const templatePortal = new TemplatePortal(this.popupPanel.templateRef, this.viewContainerRef);
|
|
1938
1938
|
this._overlayRef.attach(templatePortal);
|
|
1939
1939
|
this.popupPanel.toggle.emit(true);
|
|
1940
|
+
setTimeout(() => {
|
|
1941
|
+
if (this._overlayRef) {
|
|
1942
|
+
this._overlayRef.updatePosition();
|
|
1943
|
+
}
|
|
1944
|
+
}, 0);
|
|
1940
1945
|
this._subscriberDetach$ = this._overlayRef.detachments().subscribe(_ => {
|
|
1941
1946
|
this._isDropdownOpen = false;
|
|
1942
1947
|
this.popupPanel.toggle.emit(false);
|
|
@@ -12753,7 +12758,8 @@ const getInnerSelected = (items, selected, bindValue) => {
|
|
|
12753
12758
|
};
|
|
12754
12759
|
|
|
12755
12760
|
class SelectComponent {
|
|
12756
|
-
constructor() {
|
|
12761
|
+
constructor(_detector) {
|
|
12762
|
+
this._detector = _detector;
|
|
12757
12763
|
this.searchValue = '';
|
|
12758
12764
|
this.isOpen = false;
|
|
12759
12765
|
this.originSelected = [];
|
|
@@ -12806,6 +12812,7 @@ class SelectComponent {
|
|
|
12806
12812
|
set items(items) {
|
|
12807
12813
|
this.originItems = items;
|
|
12808
12814
|
this._updateSelected(this.originItems, this.originSelected);
|
|
12815
|
+
this._detector.detectChanges();
|
|
12809
12816
|
}
|
|
12810
12817
|
ngOnInit() {
|
|
12811
12818
|
if (this.optionValidation) {
|
|
@@ -12946,6 +12953,7 @@ class SelectComponent {
|
|
|
12946
12953
|
this.selected = getInnerSelected(items, [selected], this.bindValue);
|
|
12947
12954
|
}
|
|
12948
12955
|
this.innerItems = getInnerItems(items, this.selected, this.bindValue);
|
|
12956
|
+
this._detector.detectChanges();
|
|
12949
12957
|
}
|
|
12950
12958
|
_updateValue(selectedItems) {
|
|
12951
12959
|
const clearedSelected = getSelectedItems(selectedItems, this.bindValue);
|
|
@@ -12962,7 +12970,7 @@ class SelectComponent {
|
|
|
12962
12970
|
this.onTouched = fn;
|
|
12963
12971
|
}
|
|
12964
12972
|
}
|
|
12965
|
-
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12973
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
12966
12974
|
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectComponent, selector: "mrx-select", inputs: { fields: "fields", items: "items", multiple: "multiple", isLoading: "isLoading", searchable: "searchable", clearable: "clearable", closable: "closable", size: "size", bindValue: "bindValue", bindLabel: "bindLabel", bindIcon: "bindIcon", emptyText: "emptyText", placeholder: "placeholder", searchPlaceholder: "searchPlaceholder", multiCollapseCount: "multiCollapseCount", optionValidation: ["isExtraOption", "optionValidation"], extraOptionPlaceholder: "extraOptionPlaceholder", use: "use", sortIcon: "sortIcon", sortPlaceholder: "sortPlaceholder", isFullWidthDropdown: "isFullWidthDropdown", withoutSelected: "withoutSelected", hideSelected: "hideSelected", addOption: "addOption", customSearchFn: "customSearchFn", disabled: "disabled", readonly: "readonly", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", popupPosition: "popupPosition", singleChange: "singleChange", scrollContainer: "scrollContainer", scrollStrategy: "scrollStrategy" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
|
|
12967
12975
|
{
|
|
12968
12976
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -12979,7 +12987,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
12979
12987
|
multi: true,
|
|
12980
12988
|
},
|
|
12981
12989
|
], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
|
|
12982
|
-
}], propDecorators: { fields: [{
|
|
12990
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
|
|
12983
12991
|
type: Input
|
|
12984
12992
|
}], items: [{
|
|
12985
12993
|
type: Input
|