@seniorsistemas/angular-components 16.2.0 → 16.2.1
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/bundles/seniorsistemas-angular-components.umd.js +45 -10
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/tooltip/models/mobile-behavior.d.ts +4 -0
- package/components/tooltip/tooltip.directive.d.ts +6 -1
- package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +2 -2
- package/esm2015/components/info-sign/info-sign.component.js +3 -3
- package/esm2015/components/tooltip/models/mobile-behavior.js +6 -0
- package/esm2015/components/tooltip/tooltip.directive.js +38 -8
- package/esm5/components/dynamic-form/components/lookup/lookup.component.js +2 -2
- package/esm5/components/info-sign/info-sign.component.js +3 -3
- package/esm5/components/tooltip/models/mobile-behavior.js +6 -0
- package/esm5/components/tooltip/tooltip.directive.js +38 -8
- package/fesm2015/seniorsistemas-angular-components.js +45 -10
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +45 -10
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApplicationRef, ComponentFactoryResolver, ElementRef, Injector, OnDestroy, OnInit } from "@angular/core";
|
|
2
|
+
import { MobileBehavior } from "./models/mobile-behavior";
|
|
2
3
|
import { TooltipPosition } from "./models/tooltip-position";
|
|
3
4
|
export declare class TooltipDirective implements OnInit, OnDestroy {
|
|
4
5
|
private elementRef;
|
|
@@ -8,16 +9,20 @@ export declare class TooltipDirective implements OnInit, OnDestroy {
|
|
|
8
9
|
tooltip: string;
|
|
9
10
|
position: TooltipPosition;
|
|
10
11
|
showDelay: number;
|
|
12
|
+
displayTime: number;
|
|
11
13
|
escape: boolean;
|
|
14
|
+
mobileBehavior: MobileBehavior;
|
|
12
15
|
private componentRef;
|
|
13
16
|
private showTimeout?;
|
|
14
17
|
private touchTimeout?;
|
|
15
18
|
constructor(elementRef: ElementRef, appRef: ApplicationRef, componentFactoryResolver: ComponentFactoryResolver, injector: Injector);
|
|
16
19
|
ngOnInit(): void;
|
|
17
20
|
ngOnDestroy(): void;
|
|
21
|
+
onClick(): void;
|
|
22
|
+
onDocumentTouchStart(): void;
|
|
18
23
|
onMouseEnter(): void;
|
|
19
24
|
onMouseLeave(): void;
|
|
20
|
-
onTouchStart(
|
|
25
|
+
onTouchStart(): void;
|
|
21
26
|
onTouchEnd(): void;
|
|
22
27
|
private validatePosition;
|
|
23
28
|
private setHideTooltipTimeout;
|
|
@@ -436,7 +436,7 @@ __decorate([
|
|
|
436
436
|
LookupComponent = LookupComponent_1 = __decorate([
|
|
437
437
|
Component({
|
|
438
438
|
selector: "s-lookup",
|
|
439
|
-
template: "<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"true\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"lazyLoadLookup($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\">\n <ng-template let-item pTemplate=\"selectedItem\">\n <span\n class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\"\n [sTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\"\n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n <button\n *ngIf=\"showSearch\"\n pButton\n type=\"button\"\n icon=\"fa fa-search\"\n class=\"button-addon\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\">\n </button>\n</div>\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog>\n <div\n *ngIf=\"dialogVisible\"\n class=\"s-lookup-modal-container\">\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter\"\n [@collapseContent]=\"collapsed \n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\">\n <div\n *ngIf=\"!collapsed\"\n class=\"form-content\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\">\n <div class=\"filter-title sds-section-title\">{{ filterTitle }}</div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [fields]=\"searchFields\"\n [form]=\"formGroupDialog\">\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"filterLabel\"\n (onClick)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n showDelay=\"500\">\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel\"\n (onClick)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n showDelay=\"500\">\n </s-button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\">\n <span\n class=\"fa\"\n [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\">\n </span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div\n class=\"content\"\n [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\">\n </s-empty-state>\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n *sLoadingState=\"loading\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col\n *ngIf=\"multiple\"\n style=\"width: 50px\" />\n <col\n *ngFor=\"let col of columns\"\n [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th\n *ngIf=\"multiple\"\n style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\">\n </s-table-header-checkbox>\n </th>\n <th\n [style.width]=\"col.width\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled?.includes(col.name)\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon\n [field]=\"col.name\"\n *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\">\n </p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\">\n <td\n *ngIf=\"multiple\"\n style=\"width: 50px\"\n tabindex=\"0\">\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\">\n </p-tableCheckbox>\n </td>\n <td\n [style.width]=\"col['width']\"\n *ngFor=\"let col of searchGridFields\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\">\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <ng-container *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getBooleanLabel(rowData, col.name, col.optionsLabel) }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Date'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate: col.calendarLocaleOptions?.dateFormat || \"L\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'LocalDateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Time'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedTime: col.calendarLocaleOptions?.dateFormat || \"LTS\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedNumber: getScale(col.scale) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedCurrency | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Number'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getNumberMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container\n *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\"\n >\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"col.mask && col.mask()\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name))\">\n <span>{{ getFieldValue(rowData, col.name) | sMaskFormatter: col.mask() }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(col.mask && col.mask())\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name)); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{\n searchTotalRecordsLabel ||\n searchTotalRecords?.toString() + (searchTotalRecords === 1 ? recordLabel : recordsLabel)\n }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel\"\n (onClick)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n [disabled]=\"!selected?.length\">\n </s-button>\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"cancelLabel\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\">\n </s-button>\n </p-footer>\n</p-dialog>\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">{{ emptyFieldLabel }}</span>\n</ng-template>\n",
|
|
439
|
+
template: "<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"true\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"lazyLoadLookup($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\">\n <ng-template let-item pTemplate=\"selectedItem\">\n <span\n class=\"ui-autocomplete-token-label ng-tns-c65-43 ng-star-inserted\"\n [sTooltip]=\"lookupDisplayFieldTooltip ? item[lookupDisplayField] : null\"\n tooltipPosition=\"top\">\n {{item[lookupDisplayField]}}\n </span>\n </ng-template>\n </p-autoComplete>\n <button\n *ngIf=\"showSearch\"\n pButton\n type=\"button\"\n icon=\"fa fa-search\"\n class=\"button-addon\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\">\n </button>\n</div>\n<p-dialog\n appendTo=\"body\"\n styleClass=\"s-lookup-modal\"\n [header]=\"searchTitle\"\n [(visible)]=\"dialogVisible\"\n [modal]=\"true\"\n (onHide)=\"hideDialog()\"\n [blockScroll]=\"true\"\n [focusOnShow]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n #dialog>\n <div\n *ngIf=\"dialogVisible\"\n class=\"s-lookup-modal-container\">\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter\"\n [@collapseContent]=\"collapsed \n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\"\n (@collapseContent.done)=\"onToggleDone()\">\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\">\n <div\n *ngIf=\"!collapsed\"\n class=\"form-content\"\n [@childCollapseContent]=\"collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\">\n <div class=\"filter-title sds-section-title\">{{ filterTitle }}</div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [fields]=\"searchFields\"\n [form]=\"formGroupDialog\">\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"filterLabel\"\n (onClick)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"clearLabel\"\n (onClick)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </div>\n </div>\n </div>\n </form>\n </div>\n <div\n *ngIf=\"searchFields && searchFields.length\"\n class=\"filter-toggle\">\n <div class=\"filter-toggle--start-border-mask\"></div>\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\">\n <span\n class=\"fa\"\n [ngClass]=\"{'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed}\"\n aria-hidden=\"true\">\n </span>\n </button>\n <div class=\"filter-toggle--end-border-mask\"></div>\n </div>\n <div\n class=\"content\"\n [ngClass]=\"{'empty-content': !searchTotalRecords && !loading}\">\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!searchTotalRecords && !loading\"\n [title]=\"searchEmptyTitle\"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\">\n </s-empty-state>\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n *sLoadingState=\"loading\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col\n *ngIf=\"multiple\"\n style=\"width: 50px\" />\n <col\n *ngFor=\"let col of columns\"\n [style.width]=\"col.width\" />\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th\n *ngIf=\"multiple\"\n style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\">\n </s-table-header-checkbox>\n </th>\n <th\n [style.width]=\"col.width\"\n *ngFor=\"let col of columns\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled?.includes(col.name)\">\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n <p-sortIcon\n [field]=\"col.name\"\n *ngIf=\"!sortableColumnsDisabled?.includes(col.name)\">\n </p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\">\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick (onDoubleClick)=\"onTableRowDoubleClick(rowData)\">\n <td\n *ngIf=\"multiple\"\n style=\"width: 50px\"\n tabindex=\"0\">\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\">\n </p-tableCheckbox>\n </td>\n <td\n [style.width]=\"col['width']\"\n *ngFor=\"let col of searchGridFields\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\">\n <ng-container *ngSwitchCase=\"'Boolean'\">\n <ng-container *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getBooleanLabel(rowData, col.name, col.optionsLabel) }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Date'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate: col.calendarLocaleOptions?.dateFormat || \"L\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'DateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'LocalDateTime'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedDate | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Time'\">\n <ng-container *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) | localizedTime: col.calendarLocaleOptions?.dateFormat || \"LTS\" | async }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Double'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedNumber: getScale(col.scale) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Money'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedCurrency | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Number'\">\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span> {{ getFieldValue(rowData, col.name) | localizedBignumber: getNumberMaskConfig(col) | async }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Enum'\">\n <ng-container\n *ngIf=\"getLabelForValue(getFieldValue(rowData, col.name), col.options); else emptyTemplate\"\n >\n <span> {{ getLabelForValue(getFieldValue(rowData, col.name), col.options) }} </span>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <ng-container *ngIf=\"col.mask && col.mask()\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name))\">\n <span>{{ getFieldValue(rowData, col.name) | sMaskFormatter: col.mask() }}</span>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!(col.mask && col.mask())\">\n <ng-container *ngIf=\"(isNumber(rowData, col.name) || getFieldValue(rowData, col.name)); else emptyTemplate\">\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{\n searchTotalRecordsLabel ||\n searchTotalRecords?.toString() + (searchTotalRecords === 1 ? recordLabel : recordsLabel)\n }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n <p-footer>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"selectLabel\"\n (onClick)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n [disabled]=\"!selected?.length\">\n </s-button>\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"cancelLabel\"\n (onClick)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n tooltipPosition=\"top\"\n showDelay=\"500\">\n </s-button>\n </p-footer>\n</p-dialog>\n<ng-template #emptyTemplate>\n <span [ngClass]=\"'sds-empty-value'\">{{ emptyFieldLabel }}</span>\n</ng-template>\n",
|
|
440
440
|
providers: [
|
|
441
441
|
{
|
|
442
442
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -470,4 +470,4 @@ LookupComponent = LookupComponent_1 = __decorate([
|
|
|
470
470
|
})
|
|
471
471
|
], LookupComponent);
|
|
472
472
|
export { LookupComponent };
|
|
473
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RyxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pHLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0Ms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bnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBncm91cCwgcXVlcnksIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQmlnbnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZFwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IEhvdGtleSwgSG90a2V5c1NlcnZpY2UgfSBmcm9tIFwiYW5ndWxhcjItaG90a2V5c1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwicHJpbWVuZy9kaWFsb2dcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZSA9IFwiUGVzcXVpc2EgYXZhbsOnYWRhXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlID0gXCJOZW5odW0gcmVnaXN0cm8gZW5jb250cmFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJUaXRsZSA9IFwiRmlsdHJvc1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyTGFiZWwgPSBcIkZpbHRyYXJcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsZWFyTGFiZWwgPSBcIkxpbXBhclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWwgPSBcIkNhbmNlbGFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RMYWJlbCA9IFwiU2VsZWNpb25hclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wdHlGaWVsZExhYmVsID0gXCJOw6NvIGluZm9ybWFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWwgPSBcIiByZWdpc3Ryb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3Jkc0xhYmVsID0gXCIgcmVnaXN0cm9zXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNvcnRhYmxlQ29sdW1uc0Rpc2FibGVkOiBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cFJvd1Byb3BzOiBzdHJpbmdbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkxvb2t1cFJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25VbnNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZDogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwRGlhbG9nOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIHRyYW5zaXRpb25PcHRpb25zID0gXCI0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcIjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgb3JpZ2luYWxGb3JtVmFsdWVzID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5vbkNoYW5nZSgpKTtcbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkJsdXIucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVt0aGlzLmxvb2t1cERpc3BsYXlGaWVsZF07XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlIHx8ICFjdXJyZW50VmFsdWUgfHwgY3VycmVudFZhbHVlID09IHZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoaG91ckZvcm1hdDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImRkL21tL3l5XCIpIHsgLy8gdmFsb3IgcGFkcsOjbyBwYXJhIG8gZm9ybWF0LlxuICAgICAgICAgICAgcmV0dXJuIFwiTFRTXCI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIxMlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhcXGIvLCBcImhcIikgICAgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSEhcXGIvLCBcImhoXCIpOyAgLy8gaG91ciAoMTIgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMjRcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoXFxiLywgXCJIXCIpICAgICAvLyBob3VyICgyNCBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhoXFxiLywgXCJISFwiKTsgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIEEgb3JkZW0gZG9zIHJlcGxhY2VzIMOpIGltcG9ydGFudGUuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkXFxiLywgXCJEXCIpICAgICAgLy8gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZGRcXGIvLCBcIkREXCIpICAgIC8vIGRheSBvZiBtb250aFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9cXGIvLCBcIkRERFwiKSAgICAvLyBkYXkgb2YgdGhlIHllYXIgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvb1xcYi8sIFwiRERERFwiKSAgLy8gZGF5IG9mIHRoZSB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTVxcYi8sIFwiTU1NXCIpICAgIC8vIG1vbnRoIG5hbWUgc2hvcnRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNTVxcYi8sIFwiTU1NTVwiKSAgLy8gbW9udGggbmFtZSBsb25nXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibVxcYi8sIFwiTVwiKSAgICAgIC8vIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibW1cXGIvLCBcIk1NXCIpICAgIC8vIG1vbnRoIG9mIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5XFxiLywgXCJZWVwiKSAgICAgLy8geWVhciAodHdvIGRpZ2l0cylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5eVxcYi8sIFwiWVlZWVwiKTsgLy8geWVhciAoZm91ciBkaWdpdHMpXG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUub25PdmVybGF5QW5pbWF0aW9uRG9uZSA9IChldmVudCkgPT4geyB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgY2hhbmdlcy5zZWFyY2hHcmlkRGF0YSkgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEdyaWREYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb29rdXBTdWdnZXN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwU3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uZXZlbnQsIGZpbHRlckRhdGE6IGZpbHRlcnMgfTtcbiAgICAgICAgY29uc3QgeyBtdWx0aVNvcnRNZXRhIH0gPSBldmVudDtcbiAgICAgICAgdGhpcy5tdWx0aVNvcnRNZXRhID0gbXVsdGlTb3J0TWV0YSB8fCB0aGlzLm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRHcmlkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgLy8gQW8gZGVmaW5pciB1bWEgb3JkZW5hw6fDo28gbmEgdGFiZWxhIGRvIGxvb2t1cCBlc3NlIG3DqXRvZG8gw6kgY2hhbWFkbyAyIHZlemVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzU0ODBcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5tYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0Lm5leHQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRMb29rdXAoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLm9uTG9va3VwUmVxdWVzdC5uZXh0KGV2ZW50LnF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0RpYWxvZygpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5ob3RrZXlzXSk7XG4gICAgICAgIHRoaXMuc2V0SG90a2V5cygpO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZDogYW55ID0gW107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHNlbGVjdGVkID0gc2VsZWN0ZWQuY29uY2F0KHRoaXMudmFsdWUpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnZhbHVlKSBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhpZGVEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IHsgaW5wdXRFTCwgbXVsdGlJbnB1dEVMIH0gPSB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UudW5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZWRIb3RrZXlzXSk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIG11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsc2UgaW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2cubW92ZU9uVG9wKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZy5yZXNldCh0aGlzLm9yaWdpbmFsRm9ybVZhbHVlcyk7XG4gICAgICAgIHRoaXMucmVzZXRUYWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldFRhYmxlKCkge1xuICAgICAgICB0aGlzLnRhYmxlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZCAmJiAodGhpcy5tdWx0aXBsZSA/IHRoaXMuc2VsZWN0ZWQgOiB0aGlzLnNlbGVjdGVkWzBdKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLm9uU2VsZWN0Lm5leHQoc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWQ6IGFueSkge1xuICAgICAgICBpZiAoIXNlbGVjdGVkKSByZXR1cm47XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICBlbHNlIHRoaXMuc2VsZWN0ZWQgPSBbc2VsZWN0ZWRdO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsKTtcbiAgICAgICAgICAgIGZuKHZhbCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdCwgcHJvcCkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExhYmVsRm9yVmFsdWUodmFsdWU6IGFueSwgb3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSkge1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5sYWJlbCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Jvb2xlYW5WYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiB0cnVlO1xuICAgICAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Qm9vbGVhbkxhYmVsKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIG9wdGlvbnNMYWJlbDogQm9vbGVhbk9wdGlvbnNMYWJlbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBvcHRpb25zTGFiZWwudHJ1ZTtcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlKSByZXR1cm4gb3B0aW9uc0xhYmVsLmZhbHNlO1xuICAgICAgICBlbHNlIHJldHVybiB0aGlzLmVtcHR5RmllbGRMYWJlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOdW1iZXIob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gIShuZXcgQmlnTnVtYmVyKHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpKS5pc05hTigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SG90a2V5cygpIHtcbiAgICAgICAgY29uc3QgY2xlYXJIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtsXCIsIHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGZpbmRIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtmXCIsIHRoaXMuc2VhcmNoLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBoaWRlSG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrY1wiLCB0aGlzLmhpZGVEaWFsb2cuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K3NcIiwgdGhpcy5zZWxlY3QuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgY29uc3QgYmluZGVkSG90a2V5cyA9IFtjbGVhckhvdGtleSwgZmluZEhvdGtleSwgaGlkZUhvdGtleSwgc2VsZWN0SG90a2V5XTtcbiAgICAgICAgYmluZGVkSG90a2V5cy5mb3JFYWNoKChob3RrZXk6IEhvdGtleSkgPT4gdGhpcy5ob3RrZXlzU2VydmljZS5hZGQoaG90a2V5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuZXdIb3RrZXkoY29tYm86IHN0cmluZywgZm46IEZ1bmN0aW9uKTogSG90a2V5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3RrZXkoXG4gICAgICAgICAgICBjb21ibyxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXCJJTlBVVFwiLCBcIlNFTEVDVFwiLCBcIlRFWFRBUkVBXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlclRvZ2dsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVEb25lKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgdGFibGUgY29sdW1uIHNpemUuIFRoZSBtaW5pbXVtIHZhbHVlIGlzIDE0LjI4NmVtLCB3aGljaCBpcyBlcXVhbHMgdG8gMjAwcHggZHVvIHRvIHRoZSBjdXJyZW50IGZvbnQgc2l6ZS5cbiAgICAgKiBAcGFyYW0gbGFiZWwgQ29sdW1uIG5hbWUuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbFdpZHRoKGxhYmVsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGxhYmVsLmxlbmd0aDtcbiAgICAgICAgaWYgKHNpemUgPCAxNC4yODYpIHJldHVybiBgMTQuMjg2ZW1gO1xuICAgICAgICByZXR1cm4gYCR7c2l6ZX1lbWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNjYWxlKHNjYWxlOiBhbnkpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Z1bmN0aW9uKHNjYWxlKSA/IHNjYWxlKCkgOiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TnVtYmVyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlUm93RG91YmxlQ2xpY2socm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbcm93RGF0YV07XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxufVxuIl19
|
|
473
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2xvb2t1cC9sb29rdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RyxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pHLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxTQUFTLE1BQU0sY0FBYyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0Ms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bnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBncm91cCwgcXVlcnksIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQmlnbnVtYmVyRmllbGRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZmllbGRzL2JpZ251bWJlci1maWVsZFwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvbmcyLWN1cnJlbmN5LW1hc2tcIjtcbmltcG9ydCB7IEhvdGtleSwgSG90a2V5c1NlcnZpY2UgfSBmcm9tIFwiYW5ndWxhcjItaG90a2V5c1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgeyBTb3J0TWV0YSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSBcInByaW1lbmcvYXV0b2NvbXBsZXRlXCI7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tIFwicHJpbWVuZy9kaWFsb2dcIjtcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBCb29sZWFuT3B0aW9uc0xhYmVsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9ib29sZWFuLWZpZWxkXCI7XG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tIFwiLi4vLi4vY29uZmlndXJhdGlvbnMvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uLy4uXCI7XG5pbXBvcnQgeyBDYWxlbmRhckxvY2FsZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbG9jYWxlL29wdGlvbnMvY2FsZW5kYXJcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1sb29rdXBcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2xvb2t1cC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9sb29rdXAuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9va3VwQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJjb2xsYXBzZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJoaWRkZW5cIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZpc2libGUgPD0+IGhpZGRlblwiLCBbZ3JvdXAoW3F1ZXJ5KFwiQGNoaWxkQ29sbGFwc2VDb250ZW50XCIsIGFuaW1hdGVDaGlsZCgpKSwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpXSldKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJjaGlsZENvbGxhcHNlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIjpsZWF2ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiOmVudGVyXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPD0+ICpcIiwgYW5pbWF0ZShcInt7dHJhbnNpdGlvblBhcmFtc319XCIpKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1sb29rdXAtJHtMb29rdXBDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YUtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlYXJjaCA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBTdWdnZXN0aW9uczogYW55W107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cERpc3BsYXlGaWVsZFRvb2x0aXA6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb29rdXBFbXB0eU1lc3NhZ2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cEFwcGVuZFRvID0gXCJib2R5XCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hUaXRsZSA9IFwiUGVzcXVpc2EgYXZhbsOnYWRhXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hFbXB0eVRpdGxlID0gXCJOZW5odW0gcmVnaXN0cm8gZW5jb250cmFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoRW1wdHlEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoR3JpZERhdGE6IGFueVtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZHM6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpU29ydE1ldGE6IFNvcnRNZXRhW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWx0ZXJUaXRsZSA9IFwiRmlsdHJvc1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsdGVyTGFiZWwgPSBcIkZpbHRyYXJcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsZWFyTGFiZWwgPSBcIkxpbXBhclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuY2VsTGFiZWwgPSBcIkNhbmNlbGFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RMYWJlbCA9IFwiU2VsZWNpb25hclwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wdHlGaWVsZExhYmVsID0gXCJOw6NvIGluZm9ybWFkb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3JkTGFiZWwgPSBcIiByZWdpc3Ryb1wiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVjb3Jkc0xhYmVsID0gXCIgcmVnaXN0cm9zXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VhcmNoVG90YWxSZWNvcmRzTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNvcnRhYmxlQ29sdW1uc0Rpc2FibGVkOiBzdHJpbmdbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxvb2t1cFJvd1Byb3BzOiBzdHJpbmdbXTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbkxvb2t1cFJlcXVlc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uU2VhcmNoUmVxdWVzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvbktleVVwOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBvblNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25VbnNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25DbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKFRhYmxlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgdGFibGU6IFRhYmxlO1xuXG4gICAgQFZpZXdDaGlsZChEaWFsb2csIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBkaWFsb2c6IERpYWxvZztcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBBdXRvQ29tcGxldGU7XG5cbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGNvbGxhcHNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZDogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwRGlhbG9nOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIHRyYW5zaXRpb25PcHRpb25zID0gXCI0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSlcIjtcblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgb3JpZ2luYWxGb3JtVmFsdWVzID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvdGtleXNTZXJ2aWNlOiBIb3RrZXlzU2VydmljZSkgeyB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hHcmlkRmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEZpZWxkcy5tYXAoaXRlbSA9PiBuZXcgRm9ybUZpZWxkKHsgLi4uaXRlbSB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHRoaXMuc2VhcmNoRmllbGRzLm1hcChcbiAgICAgICAgICAgICh2YWx1ZTogRm9ybUZpZWxkKSA9PiBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICAgICAgICBzaXplOiB7IHNtOiAxMiwgbWQ6IDEyLCBsZzogMTIsIHhsOiAxMiB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLnNlYXJjaEdyaWRGaWVsZHMubWFwKChncmlkRmllbGQ6IEZvcm1GaWVsZCkgPT4ge1xuICAgICAgICAgICAgZ3JpZEZpZWxkW1wid2lkdGhcIl0gPSB0aGlzLmdldENvbFdpZHRoKGdyaWRGaWVsZC5sYWJlbCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGVuZGFyT3B0aW9ucyA9IG5ldyBDYWxlbmRhckxvY2FsZU9wdGlvbnMoeyAuLi5ncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zIH0pO1xuXG4gICAgICAgICAgICBpZiAoY2FsZW5kYXJPcHRpb25zPy5kYXRlRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChncmlkRmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5UaW1lOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJPcHRpb25zLmRhdGVGb3JtYXQgPSB0aGlzLl9jb252ZXJ0VG9Nb21lbnRIb3VyRm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5ob3VyRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyT3B0aW9ucy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkRmllbGQuY2FsZW5kYXJMb2NhbGVPcHRpb25zID0gY2FsZW5kYXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZ3JpZEZpZWxkO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtR3JvdXAgPSB0aGlzLnNlYXJjaEZpZWxkcy5yZWR1Y2UoKHJlc3VsdDogYW55LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2ZpZWxkLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKGZpZWxkLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsRm9ybVZhbHVlc1tmaWVsZC5uYW1lXSA9IGZpZWxkLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZyA9IG5ldyBGb3JtR3JvdXAoZm9ybUdyb3VwKTtcblxuICAgICAgICB0aGlzLm9uU2VhcmNoUmVxdWVzdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMubG9hZGluZyA9IHRydWUpKTtcbiAgICAgICAgdGhpcy5vblNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25VbnNlbGVjdC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIHRoaXMub25DbGVhci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4gIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5vbkNoYW5nZSgpKTtcbiAgICAgICAgdGhpcy5vbkZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vbkJsdXIucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZVt0aGlzLmxvb2t1cERpc3BsYXlGaWVsZF07XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBldmVudC50YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlIHx8ICFjdXJyZW50VmFsdWUgfHwgY3VycmVudFZhbHVlID09IHZhbHVlKSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gXCJcIjtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbnZlcnRUb01vbWVudEhvdXJGb3JtYXQoaG91ckZvcm1hdDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImRkL21tL3l5XCIpIHsgLy8gdmFsb3IgcGFkcsOjbyBwYXJhIG8gZm9ybWF0LlxuICAgICAgICAgICAgcmV0dXJuIFwiTFRTXCI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG91ckZvcm1hdCA9PT0gXCIxMlwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYkhcXGIvLCBcImhcIikgICAgIC8vIGhvdXIgKDEyIGhvdXIgdGltZSkgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiSEhcXGIvLCBcImhoXCIpOyAgLy8gaG91ciAoMTIgaG91ciB0aW1lKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhvdXJGb3JtYXQgPT09IFwiMjRcIikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJoXFxiLywgXCJIXCIpICAgICAvLyBob3VyICgyNCBob3VyIHRpbWUpIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcYmhoXFxiLywgXCJISFwiKTsgIC8vIGhvdXIgKDI0IGhvdXIgdGltZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIEEgb3JkZW0gZG9zIHJlcGxhY2VzIMOpIGltcG9ydGFudGUuXG4gICAgICAgIHJldHVybiBmb3JtYXRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJkXFxiLywgXCJEXCIpICAgICAgLy8gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiZGRcXGIvLCBcIkREXCIpICAgIC8vIGRheSBvZiBtb250aFxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcYm9cXGIvLCBcIkRERFwiKSAgICAvLyBkYXkgb2YgdGhlIHllYXIgKG5vIGxlYWRpbmcgemVybylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJvb1xcYi8sIFwiRERERFwiKSAgLy8gZGF5IG9mIHRoZSB5ZWFyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxiTVxcYi8sIFwiTU1NXCIpICAgIC8vIG1vbnRoIG5hbWUgc2hvcnRcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJNTVxcYi8sIFwiTU1NTVwiKSAgLy8gbW9udGggbmFtZSBsb25nXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibVxcYi8sIFwiTVwiKSAgICAgIC8vIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxibW1cXGIvLCBcIk1NXCIpICAgIC8vIG1vbnRoIG9mIHllYXJcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5XFxiLywgXCJZWVwiKSAgICAgLy8geWVhciAodHdvIGRpZ2l0cylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXGJ5eVxcYi8sIFwiWVlZWVwiKTsgLy8geWVhciAoZm91ciBkaWdpdHMpXG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUub25PdmVybGF5QW5pbWF0aW9uRG9uZSA9IChldmVudCkgPT4geyB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1Zpc2libGUgJiYgY2hhbmdlcy5zZWFyY2hHcmlkRGF0YSkgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZERhdGEoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaEdyaWREYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRMb29rdXBTdWdnZXN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwU3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1ha2VTZWFyY2hSZXF1ZXN0UGFyYW1zKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZm9ybUdyb3VwRGlhbG9nLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uZXZlbnQsIGZpbHRlckRhdGE6IGZpbHRlcnMgfTtcbiAgICAgICAgY29uc3QgeyBtdWx0aVNvcnRNZXRhIH0gPSBldmVudDtcbiAgICAgICAgdGhpcy5tdWx0aVNvcnRNZXRhID0gbXVsdGlTb3J0TWV0YSB8fCB0aGlzLm11bHRpU29ydE1ldGE7XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRHcmlkKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgLy8gQW8gZGVmaW5pciB1bWEgb3JkZW5hw6fDo28gbmEgdGFiZWxhIGRvIGxvb2t1cCBlc3NlIG3DqXRvZG8gw6kgY2hhbWFkbyAyIHZlemVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wcmltZWZhY2VzL3ByaW1lbmcvaXNzdWVzLzU0ODBcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5tYWtlU2VhcmNoUmVxdWVzdFBhcmFtcyhldmVudCk7XG4gICAgICAgIHRoaXMub25TZWFyY2hSZXF1ZXN0Lm5leHQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGF6eUxvYWRMb29rdXAoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLm9uTG9va3VwUmVxdWVzdC5uZXh0KGV2ZW50LnF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hvd0RpYWxvZygpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hHcmlkRGF0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5ob3RrZXlzXSk7XG4gICAgICAgIHRoaXMuc2V0SG90a2V5cygpO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZDogYW55ID0gW107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlICYmIHRoaXMudmFsdWUpIHNlbGVjdGVkID0gc2VsZWN0ZWQuY29uY2F0KHRoaXMudmFsdWUpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnZhbHVlKSBzZWxlY3RlZCA9IFt0aGlzLnZhbHVlXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhpZGVEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IHsgaW5wdXRFTCwgbXVsdGlJbnB1dEVMIH0gPSB0aGlzLmF1dG9jb21wbGV0ZTtcbiAgICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaG90a2V5c1NlcnZpY2UudW5wYXVzZShbLi4udGhpcy5ob3RrZXlzU2VydmljZS5wYXVzZWRIb3RrZXlzXSk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIG11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGVsc2UgaW5wdXRFTC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaCgpIHtcbiAgICAgICAgdGhpcy5yZXNldFRhYmxlKCk7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaWFsb2cubW92ZU9uVG9wKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cERpYWxvZy5yZXNldCh0aGlzLm9yaWdpbmFsRm9ybVZhbHVlcyk7XG4gICAgICAgIHRoaXMucmVzZXRUYWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldFRhYmxlKCkge1xuICAgICAgICB0aGlzLnRhYmxlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZCAmJiAodGhpcy5tdWx0aXBsZSA/IHRoaXMuc2VsZWN0ZWQgOiB0aGlzLnNlbGVjdGVkWzBdKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkO1xuICAgICAgICB0aGlzLm9uU2VsZWN0Lm5leHQoc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWQ6IGFueSkge1xuICAgICAgICBpZiAoIXNlbGVjdGVkKSByZXR1cm47XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSkgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgICBlbHNlIHRoaXMuc2VsZWN0ZWQgPSBbc2VsZWN0ZWRdO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodmFsKTtcbiAgICAgICAgICAgIGZuKHZhbCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRWYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdCwgcHJvcCkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExhYmVsRm9yVmFsdWUodmFsdWU6IGFueSwgb3B0aW9uczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSkge1xuICAgICAgICBpZiAoIW9wdGlvbnMpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5sYWJlbCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Jvb2xlYW5WYWx1ZShvYmo6IGFueSwgcGF0aDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRGaWVsZFZhbHVlKG9iaiwgcGF0aCk7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiB0cnVlO1xuICAgICAgICBlbHNlIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Qm9vbGVhbkxhYmVsKG9iajogYW55LCBwYXRoOiBzdHJpbmcsIG9wdGlvbnNMYWJlbDogQm9vbGVhbk9wdGlvbnNMYWJlbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiBvcHRpb25zTGFiZWwudHJ1ZTtcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgPT09IGZhbHNlKSByZXR1cm4gb3B0aW9uc0xhYmVsLmZhbHNlO1xuICAgICAgICBlbHNlIHJldHVybiB0aGlzLmVtcHR5RmllbGRMYWJlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNOdW1iZXIob2JqOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gIShuZXcgQmlnTnVtYmVyKHRoaXMuZ2V0RmllbGRWYWx1ZShvYmosIHBhdGgpKS5pc05hTigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SG90a2V5cygpIHtcbiAgICAgICAgY29uc3QgY2xlYXJIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtsXCIsIHRoaXMuY2xlYXIuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IGZpbmRIb3RrZXkgPSB0aGlzLm5ld0hvdGtleShcImFsdCtzaGlmdCtmXCIsIHRoaXMuc2VhcmNoLmJpbmQodGhpcykpO1xuICAgICAgICBjb25zdCBoaWRlSG90a2V5ID0gdGhpcy5uZXdIb3RrZXkoXCJhbHQrc2hpZnQrY1wiLCB0aGlzLmhpZGVEaWFsb2cuYmluZCh0aGlzKSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdEhvdGtleSA9IHRoaXMubmV3SG90a2V5KFwiYWx0K3NoaWZ0K3NcIiwgdGhpcy5zZWxlY3QuYmluZCh0aGlzKSk7XG5cbiAgICAgICAgY29uc3QgYmluZGVkSG90a2V5cyA9IFtjbGVhckhvdGtleSwgZmluZEhvdGtleSwgaGlkZUhvdGtleSwgc2VsZWN0SG90a2V5XTtcbiAgICAgICAgYmluZGVkSG90a2V5cy5mb3JFYWNoKChob3RrZXk6IEhvdGtleSkgPT4gdGhpcy5ob3RrZXlzU2VydmljZS5hZGQoaG90a2V5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBuZXdIb3RrZXkoY29tYm86IHN0cmluZywgZm46IEZ1bmN0aW9uKTogSG90a2V5IHtcbiAgICAgICAgcmV0dXJuIG5ldyBIb3RrZXkoXG4gICAgICAgICAgICBjb21ibyxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbXCJJTlBVVFwiLCBcIlNFTEVDVFwiLCBcIlRFWFRBUkVBXCJdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlclRvZ2dsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVEb25lKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgdGFibGUgY29sdW1uIHNpemUuIFRoZSBtaW5pbXVtIHZhbHVlIGlzIDE0LjI4NmVtLCB3aGljaCBpcyBlcXVhbHMgdG8gMjAwcHggZHVvIHRvIHRoZSBjdXJyZW50IGZvbnQgc2l6ZS5cbiAgICAgKiBAcGFyYW0gbGFiZWwgQ29sdW1uIG5hbWUuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbFdpZHRoKGxhYmVsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGxhYmVsLmxlbmd0aDtcbiAgICAgICAgaWYgKHNpemUgPCAxNC4yODYpIHJldHVybiBgMTQuMjg2ZW1gO1xuICAgICAgICByZXR1cm4gYCR7c2l6ZX1lbWA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNjYWxlKHNjYWxlOiBhbnkpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Z1bmN0aW9uKHNjYWxlKSA/IHNjYWxlKCkgOiBzY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TnVtYmVyTWFza0NvbmZpZyhjb2w6IEJpZ251bWJlckZpZWxkQ29uZmlnKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY2FsZTogdGhpcy5nZXRTY2FsZShjb2wuc2NhbGUpLFxuICAgICAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogY29sLm51bWJlckxvY2FsZU9wdGlvbnM/LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBwcmVmaXg6IGNvbC5udW1iZXJMb2NhbGVPcHRpb25zPy5jdXJyZW5jeVN5bWJvbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBvblRhYmxlUm93RG91YmxlQ2xpY2socm93RGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBbcm93RGF0YV07XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgfVxufVxuIl19
|
|
@@ -5,9 +5,9 @@ let InfoSignComponent = class InfoSignComponent {
|
|
|
5
5
|
InfoSignComponent = __decorate([
|
|
6
6
|
Component({
|
|
7
7
|
selector: "s-info-sign-component",
|
|
8
|
-
template: "<span class=\"info-sign\">\n <span *ngTemplateOutlet=\"templateRef\"></span>\n <i\n class=\"info-sign__icon fa fa-info-circle\"\n aria-hidden=\"true\"\n [sTooltip]=\"tooltip\"\n [escape]=\"false\"\n tooltipPosition=\"
|
|
9
|
-
styles: [".info-sign{-ms-flex-align:baseline;align-items:baseline;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:start;justify-content:flex-start}.info-sign .info-sign__icon{padding
|
|
8
|
+
template: "<span class=\"info-sign\">\n <span *ngTemplateOutlet=\"templateRef\"></span>\n <i\n class=\"info-sign__icon fa fa-info-circle\"\n aria-hidden=\"true\"\n [sTooltip]=\"tooltip\"\n [escape]=\"false\"\n tooltipPosition=\"top\"\n [displayTime]=\"5000\"\n mobileBehavior=\"tap\"\n showDelay=\"0\">\n </i>\n</span>",
|
|
9
|
+
styles: [".info-sign{-ms-flex-align:baseline;align-items:baseline;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:start;justify-content:flex-start}.info-sign .info-sign__icon{padding:0 12px}"]
|
|
10
10
|
})
|
|
11
11
|
], InfoSignComponent);
|
|
12
12
|
export { InfoSignComponent };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1zaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBT3ZELElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0NBRzdCLENBQUE7QUFIWSxpQkFBaUI7SUFMN0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxnWUFBeUM7O0tBRTVDLENBQUM7R0FDVyxpQkFBaUIsQ0FHN0I7U0FIWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1pbmZvLXNpZ24tY29tcG9uZW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vaW5mby1zaWduLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvU2lnbkNvbXBvbmVudCB7XG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdG9vbHRpcDogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export var MobileBehavior;
|
|
2
|
+
(function (MobileBehavior) {
|
|
3
|
+
MobileBehavior["Pressing"] = "pressing";
|
|
4
|
+
MobileBehavior["Tap"] = "tap";
|
|
5
|
+
})(MobileBehavior || (MobileBehavior = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9iaWxlLWJlaGF2aW9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdG9vbHRpcC9tb2RlbHMvbW9iaWxlLWJlaGF2aW9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdkIsdUNBQXFCLENBQUE7SUFDckIsNkJBQVcsQ0FBQTtBQUNkLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE1vYmlsZUJlaGF2aW9yIHtcbiAgIFByZXNzaW5nID0gXCJwcmVzc2luZ1wiLFxuICAgVGFwID0gXCJ0YXBcIixcbn0iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EmbeddedViewRef, HostListener, Injector, Input, OnDestroy, OnInit } from "@angular/core";
|
|
3
|
+
import { MobileBehavior } from "./models/mobile-behavior";
|
|
3
4
|
import { TooltipPosition } from "./models/tooltip-position";
|
|
4
5
|
import { TooltipComponent } from "./tooltip.component";
|
|
5
6
|
let TooltipDirective = class TooltipDirective {
|
|
@@ -11,6 +12,7 @@ let TooltipDirective = class TooltipDirective {
|
|
|
11
12
|
this.position = TooltipPosition.Top;
|
|
12
13
|
this.showDelay = 500;
|
|
13
14
|
this.escape = false;
|
|
15
|
+
this.mobileBehavior = MobileBehavior.Pressing;
|
|
14
16
|
this.componentRef = null;
|
|
15
17
|
}
|
|
16
18
|
ngOnInit() {
|
|
@@ -19,20 +21,32 @@ let TooltipDirective = class TooltipDirective {
|
|
|
19
21
|
ngOnDestroy() {
|
|
20
22
|
this.destroy();
|
|
21
23
|
}
|
|
24
|
+
// whenever the component with the tooltip is clicked I destroy the tooltip.
|
|
25
|
+
// whenever a key is pressed on the component with the tooltip I destroy the tooltip.
|
|
26
|
+
onClick() {
|
|
27
|
+
if (!navigator.userAgent.match(/Android/i) && !navigator.userAgent.match(/iPhone/i)) {
|
|
28
|
+
this.destroy();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// whenever you touch outside the component with the tooltip I destroy the tooltip.
|
|
32
|
+
onDocumentTouchStart() {
|
|
33
|
+
this.destroy();
|
|
34
|
+
}
|
|
22
35
|
onMouseEnter() {
|
|
23
36
|
this.createTootip();
|
|
24
37
|
}
|
|
25
38
|
onMouseLeave() {
|
|
26
39
|
this.setHideTooltipTimeout();
|
|
27
40
|
}
|
|
28
|
-
onTouchStart(
|
|
29
|
-
$event.preventDefault();
|
|
41
|
+
onTouchStart() {
|
|
30
42
|
window.clearTimeout(this.touchTimeout);
|
|
31
|
-
this.touchTimeout = window.setTimeout(this.createTootip.bind(this),
|
|
43
|
+
this.touchTimeout = window.setTimeout(this.createTootip.bind(this), this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0);
|
|
32
44
|
}
|
|
33
45
|
onTouchEnd() {
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
if (this.mobileBehavior === MobileBehavior.Pressing) {
|
|
47
|
+
window.clearTimeout(this.touchTimeout);
|
|
48
|
+
this.setHideTooltipTimeout();
|
|
49
|
+
}
|
|
36
50
|
}
|
|
37
51
|
validatePosition() {
|
|
38
52
|
const containsPosition = [
|
|
@@ -59,6 +73,9 @@ let TooltipDirective = class TooltipDirective {
|
|
|
59
73
|
document.body.appendChild(domElem);
|
|
60
74
|
this.setTooltipComponentProperties();
|
|
61
75
|
this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);
|
|
76
|
+
if (this.displayTime) {
|
|
77
|
+
window.setTimeout(this.destroy.bind(this), this.displayTime);
|
|
78
|
+
}
|
|
62
79
|
}
|
|
63
80
|
}
|
|
64
81
|
showTooltip() {
|
|
@@ -67,7 +84,7 @@ let TooltipDirective = class TooltipDirective {
|
|
|
67
84
|
}
|
|
68
85
|
}
|
|
69
86
|
setTooltipComponentProperties() {
|
|
70
|
-
const margin =
|
|
87
|
+
const margin = 20;
|
|
71
88
|
const anchorSize = 5;
|
|
72
89
|
if (this.componentRef !== null) {
|
|
73
90
|
this.componentRef.instance.tooltip = this.tooltip;
|
|
@@ -186,9 +203,22 @@ __decorate([
|
|
|
186
203
|
__decorate([
|
|
187
204
|
Input()
|
|
188
205
|
], TooltipDirective.prototype, "showDelay", void 0);
|
|
206
|
+
__decorate([
|
|
207
|
+
Input()
|
|
208
|
+
], TooltipDirective.prototype, "displayTime", void 0);
|
|
189
209
|
__decorate([
|
|
190
210
|
Input()
|
|
191
211
|
], TooltipDirective.prototype, "escape", void 0);
|
|
212
|
+
__decorate([
|
|
213
|
+
Input()
|
|
214
|
+
], TooltipDirective.prototype, "mobileBehavior", void 0);
|
|
215
|
+
__decorate([
|
|
216
|
+
HostListener("click"),
|
|
217
|
+
HostListener("keydown")
|
|
218
|
+
], TooltipDirective.prototype, "onClick", null);
|
|
219
|
+
__decorate([
|
|
220
|
+
HostListener("document:touchstart")
|
|
221
|
+
], TooltipDirective.prototype, "onDocumentTouchStart", null);
|
|
192
222
|
__decorate([
|
|
193
223
|
HostListener("mouseenter")
|
|
194
224
|
], TooltipDirective.prototype, "onMouseEnter", null);
|
|
@@ -196,7 +226,7 @@ __decorate([
|
|
|
196
226
|
HostListener("mouseleave")
|
|
197
227
|
], TooltipDirective.prototype, "onMouseLeave", null);
|
|
198
228
|
__decorate([
|
|
199
|
-
HostListener("touchstart"
|
|
229
|
+
HostListener("touchstart")
|
|
200
230
|
], TooltipDirective.prototype, "onTouchStart", null);
|
|
201
231
|
__decorate([
|
|
202
232
|
HostListener("touchend")
|
|
@@ -207,4 +237,4 @@ TooltipDirective = __decorate([
|
|
|
207
237
|
})
|
|
208
238
|
], TooltipDirective);
|
|
209
239
|
export { TooltipDirective };
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLdkQsSUFBYSxnQkFBZ0IsR0FBN0IsTUFBYSxnQkFBZ0I7SUFpQjFCLFlBQ1csVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsd0JBQWtELEVBQ2xELFFBQWtCO1FBSGxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEJ0QixhQUFRLEdBQW9CLGVBQWUsQ0FBQyxHQUFHLENBQUM7UUFHaEQsY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUdoQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQsaUJBQVksR0FBc0IsSUFBSSxDQUFDO0lBUzNDLENBQUM7SUFFRSxRQUFRO1FBQ1osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFdBQVc7UUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUdNLFlBQVk7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFHTSxZQUFZO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFHTSxZQUFZLENBQUMsTUFBa0I7UUFDbkMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBR00sVUFBVTtRQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxnQkFBZ0I7UUFDckIsTUFBTSxnQkFBZ0IsR0FBRztZQUN0QixlQUFlLENBQUMsR0FBRztZQUNuQixlQUFlLENBQUMsS0FBSztZQUNyQixlQUFlLENBQUMsTUFBTTtZQUN0QixlQUFlLENBQUMsSUFBSTtTQUN0QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVksSUFBSSxDQUFDLFFBQVMseUJBQXlCLENBQUMsQ0FBQztTQUN2RTtJQUNKLENBQUM7SUFFTyxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxZQUFZOztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxXQUFJLElBQUksQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQSxFQUFFO1lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDakcsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsTUFBTSxPQUFPLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFDakcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNwRjtJQUNKLENBQUM7SUFFTyxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUM1QztJQUNKLENBQUM7SUFFTyw2QkFBNkI7UUFDbEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRWhELE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBRTNGLE1BQU0sYUFBYSxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDbkMsTUFBTSxZQUFZLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFFdEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE1BQU0sY0FBYyxHQUFzQixFQUFFLENBQUM7WUFFN0MsT0FBTyxDQUFDLFVBQVUsRUFBRTtnQkFDakIsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7dUJBQzFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQzt1QkFDL0MsY0FBYyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO3VCQUM3QyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDaEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztpQkFDOUM7Z0JBRUosUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNwQixLQUFLLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDdkIsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDOzRCQUNyQyxNQUFNO3lCQUNSO3dCQUVELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQzt3QkFFckIsSUFBSSxRQUFRLElBQUksYUFBYSxHQUFHLFNBQVMsRUFBRTs0QkFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDOzRCQUN2QyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxHQUFHLEtBQUssQ0FBQzs0QkFDbkIsTUFBTTt5QkFDUjt3QkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO3dCQUN0RSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDO3dCQUN2RSxVQUFVLEdBQUcsSUFBSSxDQUFDO3dCQUNsQixNQUFNO3FCQUNSO29CQUNELEtBQUssZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUUxQixJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7NEJBQ3JDLE1BQU07eUJBQ1I7d0JBRUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO3dCQUV4RCxJQUFJLFdBQVcsSUFBSSxhQUFhLEdBQUcsU0FBUyxFQUFFOzRCQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7NEJBQ3BDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUM1QyxNQUFNO3lCQUNSO3dCQUVELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7d0JBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQzt3QkFDN0QsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDbEIsTUFBTTtxQkFDUjtvQkFDRCxLQUFLLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDeEIsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTs0QkFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDOzRCQUNwQyxNQUFNO3lCQUNSO3dCQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQzt3QkFFdkIsSUFBSSxTQUFTLElBQUksWUFBWSxHQUFHLFNBQVMsRUFBRTs0QkFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDOzRCQUN0QyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDMUMsVUFBVSxHQUFHLEtBQUssQ0FBQzs0QkFDbkIsTUFBTTt5QkFDUjt3QkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUM7d0JBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxhQUFhLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO3dCQUNsRixVQUFVLEdBQUcsSUFBSSxDQUFDO3dCQUNsQixNQUFNO3FCQUNSO29CQUNELEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN6QixJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFOzRCQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7NEJBQ3BDLE1BQU07eUJBQ1I7d0JBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO3dCQUVyRCxJQUFJLFVBQVUsSUFBSSxZQUFZLEdBQUcsU0FBUyxFQUFFOzRCQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7NEJBQ3JDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUMzQyxVQUFVLEdBQUcsS0FBSyxDQUFDOzRCQUNuQixNQUFNO3lCQUNSO3dCQUVELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQzt3QkFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLGFBQWEsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7d0JBQ2xGLFVBQVUsR0FBRyxJQUFJLENBQUM7d0JBQ2xCLE1BQU07cUJBQ1I7b0JBQ0QsT0FBTyxDQUFDLENBQUM7d0JBQ04sTUFBTTtxQkFDUjtpQkFDSDtnQkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUN0RDtTQUNIO0lBQ0osQ0FBQztJQUVPLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMzQjtJQUNKLENBQUM7Q0FDSCxDQUFBOztZQXRNeUIsVUFBVTtZQUNkLGNBQWM7WUFDSSx3QkFBd0I7WUFDeEMsUUFBUTs7QUFuQjdCO0lBREMsS0FBSyxDQUFDLFVBQVUsQ0FBQztpREFDSztBQUd2QjtJQURDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztrREFDOEI7QUFHdkQ7SUFEQyxLQUFLLEVBQUU7bURBQ2U7QUFHdkI7SUFEQyxLQUFLLEVBQUU7Z0RBQ2M7QUFzQnRCO0lBREMsWUFBWSxDQUFDLFlBQVksQ0FBQztvREFHMUI7QUFHRDtJQURDLFlBQVksQ0FBQyxZQUFZLENBQUM7b0RBRzFCO0FBR0Q7SUFEQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7b0RBS3RDO0FBR0Q7SUFEQyxZQUFZLENBQUMsVUFBVSxDQUFDO2tEQUl4QjtBQXJEUyxnQkFBZ0I7SUFINUIsU0FBUyxDQUFDO1FBQ1IsUUFBUSxFQUFFLFlBQVk7S0FDeEIsQ0FBQztHQUNXLGdCQUFnQixDQXdONUI7U0F4TlksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIEFwcGxpY2F0aW9uUmVmLFxuICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgQ29tcG9uZW50UmVmLFxuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEVtYmVkZGVkVmlld1JlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIEluamVjdG9yLFxuICAgSW5wdXQsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSBcIi4vbW9kZWxzL3Rvb2x0aXAtcG9zaXRpb25cIjtcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tIFwiLi90b29sdGlwLmNvbXBvbmVudFwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgIHNlbGVjdG9yOiBcIltzVG9vbHRpcF1cIixcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgIEBJbnB1dChcInNUb29sdGlwXCIpXG4gICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xuXG4gICBASW5wdXQoXCJ0b29sdGlwUG9zaXRpb25cIilcbiAgIHB1YmxpYyBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG4gICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgcHJpdmF0ZSB0b3VjaFRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgKSB7IH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy52YWxpZGF0ZVBvc2l0aW9uKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwibW91c2VlbnRlclwiKVxuICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vdGlwKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpXG4gICBwdWJsaWMgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgdGhpcy5zZXRIaWRlVG9vbHRpcFRpbWVvdXQoKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uVG91Y2hTdGFydCgkZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XG4gICAgICB0aGlzLnRvdWNoVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuY3JlYXRlVG9vdGlwLmJpbmQodGhpcyksIDUwMCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJ0b3VjaGVuZFwiKVxuICAgcHVibGljIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgIHRoaXMuc2V0SGlkZVRvb2x0aXBUaW1lb3V0KCk7XG4gICB9XG5cbiAgIHByaXZhdGUgdmFsaWRhdGVQb3NpdGlvbigpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5zUG9zaXRpb24gPSBbXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uVG9wLFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLlJpZ2h0LFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSxcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5MZWZ0LFxuICAgICAgXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKCFjb250YWluc1Bvc2l0aW9uKSB7XG4gICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9vbHRpcCAkeyB0aGlzLnBvc2l0aW9uIH0gcG9zaXRpb24gaXMgdW5leHBlY3RlZGApO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHNldEhpZGVUb29sdGlwVGltZW91dCgpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBwcml2YXRlIGNyZWF0ZVRvb3RpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gbnVsbCAmJiB0aGlzLnRvb2x0aXA/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcbiAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLnNob3dUb29sdGlwLmJpbmQodGhpcyksIHRoaXMuc2hvd0RlbGF5KTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBzaG93VG9vbHRpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgICBjb25zdCBtYXJnaW4gPSA4O1xuICAgICAgY29uc3QgYW5jaG9yU2l6ZSA9IDU7XG5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcDtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwZSA9IHRoaXMuZXNjYXBlO1xuXG4gICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgIGNvbnN0IHRvb2x0aXBIZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICBjb25zdCB0b29sdGlwV2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICBjb25zdCBzYWZlU3BhY2UgPSAxNTA7XG5cbiAgICAgICAgIGxldCBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICBjb25zdCBpbnZhbGlkT3B0aW9uczogVG9vbHRpcFBvc2l0aW9uW10gPSBbXTtcblxuICAgICAgICAgd2hpbGUgKCFwb3NpdGlvbmVkKSB7XG4gICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlRvcClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pXG4gICAgICAgICAgICAgICAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uTGVmdClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3BhY2UgdG8gc2hvdyB0b29sdGlwXCIpO1xuICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlRvcDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Ub3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgdG9wU2hpZnQgPSB0b3A7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0b3BTaGlmdCA8PSB0b29sdGlwSGVpZ2h0ICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLlRvcCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQodG9vbHRpcFdpZHRoIC8gMiArIGxlZnQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgLSBtYXJnaW4gLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5Cb3R0b206IHtcblxuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgYm90dG9tU2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCAtIGJvdHRvbTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGJvdHRvbVNoaWZ0IDw9IHRvb2x0aXBIZWlnaHQgKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uQm90dG9tKTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKGJvdHRvbSArIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uTGVmdDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFNoaWZ0ID0gbGVmdDtcblxuICAgICAgICAgICAgICAgICAgaWYgKGxlZnRTaGlmdCA8PSB0b29sdGlwV2lkdGggKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0IC0gbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5SaWdodDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChyaWdodFNoaWZ0IDw9IHRvb2x0aXBXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5MZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uUmlnaHQpO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHJpZ2h0ICsgbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgIH1cbiAgIH1cbn1cbiJdfQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS3ZELElBQWEsZ0JBQWdCLEdBQTdCLE1BQWEsZ0JBQWdCO0lBdUIxQixZQUNXLFVBQXNCLEVBQ3RCLE1BQXNCLEVBQ3RCLHdCQUFrRCxFQUNsRCxRQUFrQjtRQUhsQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXRCdEIsYUFBUSxHQUFvQixlQUFlLENBQUMsR0FBRyxDQUFDO1FBR2hELGNBQVMsR0FBRyxHQUFHLENBQUM7UUFNaEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdmLG1CQUFjLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUV4QyxpQkFBWSxHQUFzQixJQUFJLENBQUM7SUFTM0MsQ0FBQztJQUVFLFFBQVE7UUFDWixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sV0FBVztRQUNmLElBQUksQ0FBQyxPQUFP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LENBQUM7a0RBTXhCO0FBL0VTLGdCQUFnQjtJQUg1QixTQUFTLENBQUM7UUFDUixRQUFRLEVBQUUsWUFBWTtLQUN4QixDQUFDO0dBQ1csZ0JBQWdCLENBc1A1QjtTQXRQWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgQXBwbGljYXRpb25SZWYsXG4gICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICBDb21wb25lbnRSZWYsXG4gICBEaXJlY3RpdmUsXG4gICBFbGVtZW50UmVmLFxuICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgSG9zdExpc3RlbmVyLFxuICAgSW5qZWN0b3IsXG4gICBJbnB1dCxcbiAgIE9uRGVzdHJveSxcbiAgIE9uSW5pdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBNb2JpbGVCZWhhdmlvciB9IGZyb20gXCIuL21vZGVscy9tb2JpbGUtYmVoYXZpb3JcIjtcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gXCIuL21vZGVscy90b29sdGlwLXBvc2l0aW9uXCI7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vdG9vbHRpcC5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbc1Rvb2x0aXBdXCIsXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICBASW5wdXQoXCJzVG9vbHRpcFwiKVxuICAgcHVibGljIHRvb2x0aXA6IHN0cmluZztcblxuICAgQElucHV0KFwidG9vbHRpcFBvc2l0aW9uXCIpXG4gICBwdWJsaWMgcG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc2hvd0RlbGF5ID0gNTAwO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGRpc3BsYXlUaW1lOiBudW1iZXI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgbW9iaWxlQmVoYXZpb3IgPSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZztcblxuICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gbnVsbDtcbiAgIHByaXZhdGUgc2hvd1RpbWVvdXQ/OiBudW1iZXI7XG4gICBwcml2YXRlIHRvdWNoVGltZW91dD86IG51bWJlcjtcblxuICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICApIHsgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9zaXRpb24oKTtcbiAgIH1cblxuICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICB9XG5cbiAgIC8vIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgdG9vbHRpcCBpcyBjbGlja2VkIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIC8vIHdoZW5ldmVyIGEga2V5IGlzIHByZXNzZWQgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIEkgZGVzdHJveSB0aGUgdG9vbHRpcC5cbiAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiKVxuICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIilcbiAgIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgaWYgKCFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BbmRyb2lkL2kpICYmICFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUGhvbmUvaSkpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICAvLyB3aGVuZXZlciB5b3UgdG91Y2ggb3V0c2lkZSB0aGUgY29tcG9uZW50IHdpdGggdGhlIHRvb2x0aXAgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoc3RhcnRcIilcbiAgIHB1YmxpYyBvbkRvY3VtZW50VG91Y2hTdGFydCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwibW91c2VlbnRlclwiKVxuICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vdGlwKCk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpXG4gICBwdWJsaWMgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgdGhpcy5zZXRIaWRlVG9vbHRpcFRpbWVvdXQoKTtcbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoc3RhcnRcIilcbiAgIHB1YmxpYyBvblRvdWNoU3RhcnQoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXG4gICAgICAgICB0aGlzLmNyZWF0ZVRvb3RpcC5iaW5kKHRoaXMpLFxuICAgICAgICAgdGhpcy5tb2JpbGVCZWhhdmlvciA9PT0gTW9iaWxlQmVoYXZpb3IuUHJlc3NpbmcgPyB0aGlzLnNob3dEZWxheSA6IDBcbiAgICAgICk7XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJ0b3VjaGVuZFwiKVxuICAgcHVibGljIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5tb2JpbGVCZWhhdmlvciA9PT0gTW9iaWxlQmVoYXZpb3IuUHJlc3NpbmcpIHtcbiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpO1xuICAgICAgICAgdGhpcy5zZXRIaWRlVG9vbHRpcFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSB2YWxpZGF0ZVBvc2l0aW9uKCkge1xuICAgICAgY29uc3QgY29udGFpbnNQb3NpdGlvbiA9IFtcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5Ub3AsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uUmlnaHQsXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uQm90dG9tLFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLkxlZnQsXG4gICAgICBdLmluY2x1ZGVzKHRoaXMucG9zaXRpb24pO1xuXG4gICAgICBpZiAoIWNvbnRhaW5zUG9zaXRpb24pIHtcbiAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUb29sdGlwICR7dGhpcy5wb3NpdGlvbn0gcG9zaXRpb24gaXMgdW5leHBlY3RlZGApO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHNldEhpZGVUb29sdGlwVGltZW91dCgpIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBwcml2YXRlIGNyZWF0ZVRvb3RpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gbnVsbCAmJiB0aGlzLnRvb2x0aXA/Lmxlbmd0aCkge1xuICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRvb2x0aXBDb21wb25lbnQpO1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcbiAgICAgICAgIHRoaXMuc2hvd1RpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLnNob3dUb29sdGlwLmJpbmQodGhpcyksIHRoaXMuc2hvd0RlbGF5KTtcblxuICAgICAgICAgaWYgKHRoaXMuZGlzcGxheVRpbWUpIHtcbiAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZGVzdHJveS5iaW5kKHRoaXMpLCB0aGlzLmRpc3BsYXlUaW1lKTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBzaG93VG9vbHRpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRydWU7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKSB7XG4gICAgICBjb25zdCBtYXJnaW4gPSAyMDtcbiAgICAgIGNvbnN0IGFuY2hvclNpemUgPSA1O1xuXG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXA7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5lc2NhcGUgPSB0aGlzLmVzY2FwZTtcblxuICAgICAgICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20gfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICBjb25zdCB0b29sdGlwSGVpZ2h0ID0gYm90dG9tIC0gdG9wO1xuICAgICAgICAgY29uc3QgdG9vbHRpcFdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgY29uc3Qgc2FmZVNwYWNlID0gMTUwO1xuXG4gICAgICAgICBsZXQgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgY29uc3QgaW52YWxpZE9wdGlvbnM6IFRvb2x0aXBQb3NpdGlvbltdID0gW107XG5cbiAgICAgICAgIHdoaWxlICghcG9zaXRpb25lZCkge1xuICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Ub3ApXG4gICAgICAgICAgICAgICAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uQm90dG9tKVxuICAgICAgICAgICAgICAgJiYgaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLkxlZnQpXG4gICAgICAgICAgICAgICAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uUmlnaHQpKSB7XG4gICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHNwYWNlIHRvIHNob3cgdG9vbHRpcFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5Ub3A6IHtcbiAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uVG9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5MZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRvcFNoaWZ0ID0gdG9wO1xuXG4gICAgICAgICAgICAgICAgICBpZiAodG9wU2hpZnQgPD0gdG9vbHRpcEhlaWdodCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Cb3R0b207XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5Ub3ApO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHRvb2x0aXBXaWR0aCAvIDIgKyBsZWZ0KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wIC0gbWFyZ2luIC0gYW5jaG9yU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uQm90dG9tOiB7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uQm90dG9tKSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5MZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJvdHRvbVNoaWZ0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgLSBib3R0b207XG5cbiAgICAgICAgICAgICAgICAgIGlmIChib3R0b21TaGlmdCA8PSB0b29sdGlwSGVpZ2h0ICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSk7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQodG9vbHRpcFdpZHRoIC8gMiArIGxlZnQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZChib3R0b20gKyBtYXJnaW4pO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLkxlZnQ6IHtcbiAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uTGVmdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRTaGlmdCA9IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChsZWZ0U2hpZnQgPD0gdG9vbHRpcFdpZHRoICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uTGVmdCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQobGVmdCAtIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIHRvb2x0aXBIZWlnaHQgLyAyIC0gYW5jaG9yU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uUmlnaHQ6IHtcbiAgICAgICAgICAgICAgICAgIGlmIChpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uUmlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCByaWdodFNoaWZ0ID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAtIHJpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICBpZiAocmlnaHRTaGlmdCA8PSB0b29sdGlwV2lkdGggKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uTGVmdDtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLlJpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChyaWdodCArIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIHRvb2x0aXBIZWlnaHQgLyAyIC0gYW5jaG9yU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXQpO1xuICAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICB9XG4gICB9XG59XG4iXX0=
|