@eo-sdk/client 9.0.0-rc.6 → 9.0.0-rc.7
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/app/eo-client/settings/settings.component.d.ts +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts +7 -1
- package/app/eo-framework/ui/user-avatar/user-avatar.component.d.ts +5 -3
- package/assets/_default/i18n/de.json +6 -2
- package/assets/_default/i18n/en.json +4 -0
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +4 -4
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +40 -31
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-client/settings/settings.component.js +6 -8
- package/esm2015/app/eo-framework/app-shell/app-bar/app-bar.component.js +1 -6
- package/esm2015/app/eo-framework/form-elements/id-reference/id-reference.component.js +2 -3
- package/esm2015/app/eo-framework/form-elements/id-reference/service/reference-finder.service.js +2 -3
- package/esm2015/app/eo-framework/result-list/result-list.component.js +17 -5
- package/esm2015/app/eo-framework/ui/user-avatar/user-avatar.component.js +15 -9
- package/esm2015/projects/eo-sdk/core/lib/service/search/search-query.model.js +5 -5
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +4 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +38 -29
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +3 -1
- package/projects/eo-sdk/core/package.json +1 -1
|
@@ -28,6 +28,7 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
28
28
|
this.settings = {};
|
|
29
29
|
this.querySubtitle = '';
|
|
30
30
|
this.savedSearchClicked = false;
|
|
31
|
+
this.showWarnExportCSVThresholdDialog = false;
|
|
31
32
|
this.title = '';
|
|
32
33
|
this.emptyMessage = '';
|
|
33
34
|
this.selectFirst = true;
|
|
@@ -42,6 +43,8 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
42
43
|
this.onResult = new EventEmitter();
|
|
43
44
|
this.onQueryInvalid = new EventEmitter();
|
|
44
45
|
this.VIRTUAL_LIST_CHUNK_SIZE = this.config.getRaw('search.limit');
|
|
46
|
+
this.resolveReferencesCsv = this.config.getRaw('search.resolveReferencesCSV') || false;
|
|
47
|
+
this.resolveReferencesCsvThreshold = this.config.getRaw('search.resolveReferencesCSVThreshold') || 10000;
|
|
45
48
|
this._cachedColumns = this.storageService.getItem(ResultListComponent.COLUMNS_DEFINITION) || [];
|
|
46
49
|
}
|
|
47
50
|
set query(query) {
|
|
@@ -229,10 +232,18 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
229
232
|
executeSuggestSearch() {
|
|
230
233
|
// todo: implement
|
|
231
234
|
}
|
|
232
|
-
|
|
235
|
+
resultHasReferences() {
|
|
236
|
+
return this._result.fields.elements.some(element => element.type === 'ORGANISATION' || element.type === 'REFERENCE');
|
|
237
|
+
}
|
|
238
|
+
exportCSV(ignoreThreshold = false) {
|
|
239
|
+
if (!ignoreThreshold && this.resolveReferencesCsv && this.list.gridCount.totalCount > this.resolveReferencesCsvThreshold && this.resultHasReferences()) {
|
|
240
|
+
this.showWarnExportCSVThresholdDialog = true;
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
233
243
|
this.csvLoadingSpinnerVisibility = true;
|
|
234
244
|
this.updateQuery({});
|
|
235
|
-
this.
|
|
245
|
+
this.showWarnExportCSVThresholdDialog = false;
|
|
246
|
+
this.searchService.downloadCsvFromQuery(this.query.getQueryJson(this.resolveReferencesCsv)).subscribe(() => {
|
|
236
247
|
this.csvLoadingSpinnerVisibility = false;
|
|
237
248
|
});
|
|
238
249
|
}
|
|
@@ -257,8 +268,8 @@ ResultListComponent.COLUMNS_DEFINITION = 'eo.framework.cache.columns.definition'
|
|
|
257
268
|
ResultListComponent.decorators = [
|
|
258
269
|
{ type: Component, args: [{
|
|
259
270
|
selector: 'eo-result-list',
|
|
260
|
-
template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n</eo-dialog>\n\n",
|
|
261
|
-
styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding)/2)}:host .stored-query>div{background-color:var(--color-white);border-radius:2px 0 0 2px;margin:0 1px;padding:calc(var(--app-pane-padding)/2)}:host .stored-query>div eo-icon{color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/4)}:host .stored-query .sq{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;background-color:var(--color-white);background-color:var(--list-item-hover-background);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:flex;flex-flow:row;overflow:hidden;padding:calc(var(--app-pane-padding)/100);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{overflow:hidden;padding:0 calc(var(--app-pane-padding)/2);text-overflow:ellipsis}eo-stored-query{background-color:var(--color-white);border-radius:0 2px 2px 0;overflow-y:auto;padding:var(--app-pane-padding)}"]
|
|
271
|
+
template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"result-list__loader\" [size]=\"'medium'\"></eo-loading-spinner>\n</div>\n<eo-column-configurator *ngIf=\"visibleConfig\" [visible]=\"visibleConfig\"\n [configType]=\"configType\" [configContext]=\"configContext\" [eoGrid]=\"grid\"\n (onConfigChanged)=\"visibleConfig = false; onConfigChanged($event)\" ></eo-column-configurator>\n\n<eo-list-container #eoList [applySelection]=\"{}\" [loading]=\"false\" [parseDmsParams]=\"parseDmsParams\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" *ngIf=\"hasIcon\" [iconSrc]=\"'assets/_default/svg/ic_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\">{{title || ('eo.search.title' | translate)}}</div>\n <div class=\"eo-header-subtitle\">\n <span *ngIf=\"!storedQuery; else storedQueryText\" class=\"eo-header-subtitle__label\" [title]=\"querySubtitle\">{{querySubtitle}}</span>\n <ng-template #storedQueryText>\n <ng-container *ngIf=\"storedQuery.parameter.length === 0; else storedQueryDialog\">\n <span class=\"eo-header-subtitle__label\" [title]=\"('eo.search.aside.summary.storedquery' | translate) + ': ' + storedQuery.name\">\n {{'eo.search.aside.summary.storedquery' | translate}}: {{storedQuery.name}}\n </span>\n </ng-container>\n </ng-template>\n <ng-template #storedQueryDialog>\n <div class=\"stored-query\">\n <span>\n {{'eo.search.aside.summary.storedquery' | translate}}:\n </span>\n <button class=\"sq\" (click)=\"savedSearchClicked = true\" (keyup.enter)=\"savedSearchClicked = true\" tabindex=\"0\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_stored_query.svg'\"></eo-icon>\n <span>{{storedQuery.name}}</span>\n </button>\n </div>\n </ng-template>\n <span *ngIf=\"query?.contextFolderTypes.length === 1\" translate\n [translateParams]=\"{type: query.contextFolderTypes[0].label}\">eo.search.objecttype.form.context</span>\n <span class=\"term\" *ngIf=\"!storedQuery && query?.term && !clearAfterExecute\" [title]=\"('eo.search.result.term' | translate) + ': ' + query.term\">{{'eo.search.result.term' | translate}} : \"{{query.term}}\"</span>\n <div class=\"suggest\" *ngIf=\"searchResult?.suggests\">{{'eo.search.suggest' | translate}}<a href=\"javascript:void(0)\" (click)=\"executeSuggestSearch()\">{{searchResult.suggests[0]}}</a> ?\n </div>\n </div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\" (click)=\"refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n <eo-icon class=\"button export-button\" [hidden]=\"!query\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.resultlist.export.csv' | translate)\"\n (click)=\"exportCSV()\" *ngIf=\"!csvLoadingSpinnerVisibility\"></eo-icon>\n <eo-loading-spinner [size]=\"'small'\" *ngIf=\"csvLoadingSpinnerVisibility\" class=\"spinner\"></eo-loading-spinner>\n <eo-icon class=\"button config-button\" [iconSrc]=\"'assets/_default/svg/ic_settings.svg'\" [iconTitle]=\"('eo.column.config.title' | translate)\"\n (click)=\"visibleConfig = !visibleConfig\"></eo-icon>\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions()\" [iconTitle]=\"('eo.object.actions.title' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_more.svg'\" *ngIf=\"!reference\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"resultGridOptions\" *ngIf=\"hasGridOptions; else error\"\n [showFooter]=\"true\" (eoGridColumnResized)=\"onColumnResized($event)\" [selectFirst]=\"selectFirst\"\n (eoGridCountChanged)=\"eoList.onCountChanged($event);onCountChanged.emit($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event);onContextMenu.emit($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event);onSelectionChanged.emit($event)\"\n (eoGridDoubleClick)=\"eoList.onDoubleClick($event);onDoubleClick.emit($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event);onFocusChanged.emit($event)\">\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n <!--<eo-quick-filter [eoGrid]=\"eoGrid\"></eo-quick-filter>-->\n <eo-pagination [settings]=\"settings\" (pageChanged)=\"onPageChanged($event)\"></eo-pagination>\n </div>\n\n <div class=\"empty\">\n <eo-error-message [emptyState]=\"{text: emptyMessage || 'eo.search.result.expired'}\"></eo-error-message>\n </div>\n </eo-grid>\n </div>\n <ng-template #error>\n\n <eo-error-message *ngIf=\"hasGridOptions\" [emptyState]=\"{text:'eo.search.mode.expert.result.empty'}\">\n </eo-error-message>\n\n </ng-template>\n</eo-list-container>\n\n<eo-dialog [visible]=\"savedSearchClicked\" (hide)=\"savedSearchClicked = false\" [title]=\"'eo.search.aside.summary.storedquery' | translate\">\n <eo-stored-query [query]=\"storedQuery\"\n (onQueryLoaded)=\"onStoredQueryLoaded()\"\n (onQueryExecute)=\"onStoredQueryExecute($event)\"></eo-stored-query>\n</eo-dialog>\n\n<eo-dialog [title]=\"'eo.resultlist.export.csv.threshold.dialog.title' | translate\"\n [(visible)]=\"showWarnExportCSVThresholdDialog\" [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'threshold__dialog'\">\n\n <div>{{'eo.resultlist.export.csv.threshold.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showWarnExportCSVThresholdDialog = false\"\n translate>eo.resultlist.export.csv.threshold.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"exportCSV(true)\" class=\"button primary\"\n translate>eo.resultlist.export.csv.threshold.dialog.export</button>\n </div>\n</eo-dialog>\n\n",
|
|
272
|
+
styles: [":host{background:var(--panel-background);display:flex;flex:1;flex-direction:column;height:100%;min-height:0;min-width:0}:host .spinner{padding:calc(var(--app-pane-padding)/4)}:host .result-head{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0}:host .result-head .header-info{flex:1}:host .result-head .header-info .header-sub-title .term{margin:0 var(--app-pane-padding)}:host .result-head .header-info .header-title{-moz-user-select:none;-webkit-user-select:none;font-size:20px;padding-bottom:calc(var(--app-pane-padding)/4);user-select:none}:host .result-head .header-info .status{display:flex}:host .result-head .header-info .status .term{flex:1}:host .result-head .actions eo-icon{cursor:pointer;padding:calc(var(--app-pane-padding)/4)}:host .loader-overlay__mask{-webkit-animation:eoFadeIn .5s;animation:eoFadeIn .5s;background:rgba(var(--color-white-rgb),.8);display:flex;height:100%;position:absolute;width:100%;z-index:11}:host .loader-overlay__mask .result-list__loader{margin:auto}:host .stored-query{display:flex;max-height:45vh}:host .stored-query span{padding-right:calc(var(--app-pane-padding)/2)}:host .stored-query>div{background-color:var(--color-white);border-radius:2px 0 0 2px;margin:0 1px;padding:calc(var(--app-pane-padding)/2)}:host .stored-query>div eo-icon{color:var(--text-color-caption);padding:calc(var(--app-pane-padding)/4)}:host .stored-query .sq{-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;align-items:center;background-color:var(--color-white);background-color:var(--list-item-hover-background);border-radius:2px;color:var(--text-color-caption);cursor:pointer;display:flex;flex-flow:row;overflow:hidden;padding:calc(var(--app-pane-padding)/100);text-decoration:none;transition:all var(--app-default-transition-duration) ease-in-out}:host .stored-query .sq>eo-icon{color:var(--text-color-hint);flex-shrink:0}:host .stored-query .sq>span{overflow:hidden;padding:0 calc(var(--app-pane-padding)/2);text-overflow:ellipsis}eo-stored-query{background-color:var(--color-white);border-radius:0 2px 2px 0;overflow-y:auto;padding:var(--app-pane-padding)}::ng-deep .threshold__dialog{min-height:unset!important;padding:8px}::ng-deep .threshold__dialog--header{background:#fff!important;color:rgba(var(--color-black-rgb),.54)!important;font-size:1.17em!important;font-weight:400!important;margin:0;padding:0 0 1em!important}"]
|
|
262
273
|
},] }
|
|
263
274
|
];
|
|
264
275
|
ResultListComponent.ctorParameters = () => [
|
|
@@ -275,6 +286,7 @@ ResultListComponent.ctorParameters = () => [
|
|
|
275
286
|
];
|
|
276
287
|
ResultListComponent.propDecorators = {
|
|
277
288
|
grid: [{ type: ViewChild, args: ['eoGrid',] }],
|
|
289
|
+
list: [{ type: ViewChild, args: ['eoList',] }],
|
|
278
290
|
title: [{ type: Input }],
|
|
279
291
|
configType: [{ type: Input }],
|
|
280
292
|
configContext: [{ type: Input }],
|
|
@@ -295,4 +307,4 @@ ResultListComponent.propDecorators = {
|
|
|
295
307
|
query: [{ type: Input }],
|
|
296
308
|
searchResult: [{ type: Input }]
|
|
297
309
|
};
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFtSDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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O1lBQzlELG1CQUFtQjtZQUF3RCxvQkFBb0I7WUFFbkYsTUFBTTs7O21CQVM3QixTQUFTLFNBQUMsUUFBUTtvQkFzQmxCLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUlMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLO2lDQUNMLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNOzRCQUNOLE1BQU07NkJBQ04sTUFBTTt3QkFDTixNQUFNO3VCQUNOLE1BQU07NkJBQ04sTUFBTTtvQkFFTixLQUFLOzJCQW1ETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGaWVsZERlZmluaXRpb24sIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzLCBPYmplY3RUeXBlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZXN1bHQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0TGlzdENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBncmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIC8vIGZvciBsaXN0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBtYXggcmVzdWx0IHNpemUsIGRhdGEgd2lsbCBiZSBmZXRjaGVkIGluIGNodW5rc1xuICBwcml2YXRlIFZJUlRVQUxfTElTVF9DSFVOS19TSVpFOiBudW1iZXI7XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcbiAgcHVibGljIGxpbWl0ZWRMaXN0ID0gZmFsc2U7XG4gIHB1YmxpYyByZXN1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7fTtcbiAgc2V0dGluZ3MgPSB7fTtcbiAgcXVlcnlTdWJ0aXRsZSA9ICcnO1xuICBzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGUgfCBudWxsO1xuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcblxuICAvLyBJZiBzZXQgdG8gdHJ1ZSBxdWVyeSB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIHRlbXBvcmFyeSBzZWFyY2guXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcbiAgQElucHV0KCkgY2xlYXJBZnRlckV4ZWN1dGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVzdWx0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25RdWVyeUludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHF1ZXJ5OiBhbnkpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChxdWVyeS5uYW1lKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEubmFtZSA9PT0gcXVlcnkubmFtZSlbMF07XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRRdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuZGVmYXVsdFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcodGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xuICAgICAgICB0aGlzLmNvbmZpZ0NvbnRleHQgPSBjb25maWcuY29udGV4dFR5cGU7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMuX3F1ZXJ5LCAwLCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWVyeS50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSB0aGlzLnF1ZXJ5LnR5cGVzW2ldLmxhYmVsO1xuICAgICAgICAgIGlmIChpICE9PSB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSAnLCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIC8vIHRvZG86IGJhY2tlbmQgc2hvdWxkIHJlc29sdmUgcXVlcnkuZmllbGRzIGFuZCByZXR1cm4gY29uZmlnIGluIHNwZWNpZmljIG9yZGVyXG4gICAgY29uc3QgX2ZpZWxkcyA9IHJlc3VsdC5maWVsZHMgPyBvYnNlcnZhYmxlT2YocmVzdWx0LmZpZWxkcykgOlxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XG4gICAgX2ZpZWxkcy5zdWJzY3JpYmUoZmllbGRzID0+IHtcbiAgICAgIGlmIChmaWVsZHMgJiYgdGhpcy5xdWVyeSAmJiB0aGlzLnF1ZXJ5LmZpZWxkcyAmJiB0aGlzLnF1ZXJ5LmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHMgfHwgbmV3IEZpZWxkRGVmaW5pdGlvbigpO1xuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0cyh0aGlzLl9yZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgLy8gdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZCwgaXRlbTogcmVzLmRhdGEuZGF0YX1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydENTVigpIHtcbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVRdWVyeSh7fSk7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcGFyc2VEbXNQYXJhbXMoZGF0YSkge1xuICAgIHJldHVybiB7aWQ6IGRhdGEgJiYgZGF0YS5pZCA/IGRhdGEuaWQgOiBudWxsLCB0eXBlOiBkYXRhICYmIGRhdGEudHlwZSA/IGRhdGEudHlwZSA6IG51bGx9O1xuICB9XG5cbiAgZ2V0IGhhc0dyaWRPcHRpb25zKCkge1xuICAgIHJldHVybiAhISh0aGlzLnJlc3VsdEdyaWRPcHRpb25zLmRhdGFzb3VyY2UgfHwgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG59XG4iXX0=
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBUXpELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUF1SDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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NkJBQ04sTUFBTTtvQkFFTixLQUFLOzJCQW1ETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGaWVsZERlZmluaXRpb24sIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzLCBPYmplY3RUeXBlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtMaXN0Q29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuLi9saXN0LWNvbnRhaW5lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXJlc3VsdC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0LWxpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRMaXN0Q29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGdyaWQ6IEdyaWRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2VvTGlzdCcpIGxpc3Q6IExpc3RDb250YWluZXJDb21wb25lbnQ7XG5cbiAgLy8gZm9yIGxpc3RzIHRoYXQgZXhjZWVkIHRoZSBjb25maWd1cmVkIG1heCByZXN1bHQgc2l6ZSwgZGF0YSB3aWxsIGJlIGZldGNoZWQgaW4gY2h1bmtzXG4gIHByaXZhdGUgVklSVFVBTF9MSVNUX0NIVU5LX1NJWkU6IG51bWJlcjtcbiAgcmVzb2x2ZVJlZmVyZW5jZXNDc3Y6IGJvb2xlYW47XG4gIHJlc29sdmVSZWZlcmVuY2VzQ3N2VGhyZXNob2xkOiBudW1iZXI7XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcbiAgcHVibGljIGxpbWl0ZWRMaXN0ID0gZmFsc2U7XG4gIHB1YmxpYyByZXN1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7fTtcbiAgc2V0dGluZ3MgPSB7fTtcbiAgcXVlcnlTdWJ0aXRsZSA9ICcnO1xuICBzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBzaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGUgfCBudWxsO1xuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcblxuICAvLyBJZiBzZXQgdG8gdHJ1ZSBxdWVyeSB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIHRlbXBvcmFyeSBzZWFyY2guXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcbiAgQElucHV0KCkgY2xlYXJBZnRlckV4ZWN1dGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVzdWx0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25RdWVyeUludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHF1ZXJ5OiBhbnkpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChxdWVyeS5uYW1lKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEubmFtZSA9PT0gcXVlcnkubmFtZSlbMF07XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRRdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuZGVmYXVsdFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcodGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xuICAgICAgICB0aGlzLmNvbmZpZ0NvbnRleHQgPSBjb25maWcuY29udGV4dFR5cGU7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMuX3F1ZXJ5LCAwLCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWVyeS50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSB0aGlzLnF1ZXJ5LnR5cGVzW2ldLmxhYmVsO1xuICAgICAgICAgIGlmIChpICE9PSB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSAnLCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIC8vIHRvZG86IGJhY2tlbmQgc2hvdWxkIHJlc29sdmUgcXVlcnkuZmllbGRzIGFuZCByZXR1cm4gY29uZmlnIGluIHNwZWNpZmljIG9yZGVyXG4gICAgY29uc3QgX2ZpZWxkcyA9IHJlc3VsdC5maWVsZHMgPyBvYnNlcnZhYmxlT2YocmVzdWx0LmZpZWxkcykgOlxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XG4gICAgX2ZpZWxkcy5zdWJzY3JpYmUoZmllbGRzID0+IHtcbiAgICAgIGlmIChmaWVsZHMgJiYgdGhpcy5xdWVyeSAmJiB0aGlzLnF1ZXJ5LmZpZWxkcyAmJiB0aGlzLnF1ZXJ5LmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHMgfHwgbmV3IEZpZWxkRGVmaW5pdGlvbigpO1xuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0cyh0aGlzLl9yZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLnJlc29sdmVSZWZlcmVuY2VzQ3N2ID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gucmVzb2x2ZVJlZmVyZW5jZXNDU1YnKSBhcyBib29sZWFuIHx8IGZhbHNlO1xuICAgIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3ZUaHJlc2hvbGQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5yZXNvbHZlUmVmZXJlbmNlc0NTVlRocmVzaG9sZCcpIGFzIG51bWJlciB8fCAxMDAwMDtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgLy8gdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZCwgaXRlbTogcmVzLmRhdGEuZGF0YX1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIHByaXZhdGUgcmVzdWx0SGFzUmVmZXJlbmNlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0LmZpZWxkcy5lbGVtZW50cy5zb21lKGVsZW1lbnQgPT4gZWxlbWVudC50eXBlID09PSAnT1JHQU5JU0FUSU9OJyB8fCBlbGVtZW50LnR5cGUgPT09ICdSRUZFUkVOQ0UnKTtcbiAgfVxuXG4gIGV4cG9ydENTVihpZ25vcmVUaHJlc2hvbGQgPSBmYWxzZSkge1xuICAgIGlmICghaWdub3JlVGhyZXNob2xkICYmIHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YgJiYgdGhpcy5saXN0LmdyaWRDb3VudC50b3RhbENvdW50ID4gdGhpcy5yZXNvbHZlUmVmZXJlbmNlc0NzdlRocmVzaG9sZCAmJiB0aGlzLnJlc3VsdEhhc1JlZmVyZW5jZXMoKSkge1xuICAgICAgdGhpcy5zaG93V2FybkV4cG9ydENTVlRocmVzaG9sZERpYWxvZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5KHt9KTtcbiAgICB0aGlzLnNob3dXYXJuRXhwb3J0Q1NWVGhyZXNob2xkRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKHRoaXMucmVzb2x2ZVJlZmVyZW5jZXNDc3YpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlRG1zUGFyYW1zKGRhdGEpIHtcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcbiAgfVxuXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gISEodGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5kYXRhc291cmNlIHx8IHRoaXMucmVzdWx0R3JpZE9wdGlvbnMucm93RGF0YSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5TG9hZGVkKCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlFeGVjdXRlKGV2dCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxufVxuIl19
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { Component, Input, HostBinding } from '@angular/core';
|
|
2
|
-
import { UserService } from '@eo-sdk/core';
|
|
2
|
+
import { EnaioEvent, EventService, UserService } from '@eo-sdk/core';
|
|
3
3
|
export class UserAvatarComponent {
|
|
4
|
-
constructor(userService) {
|
|
4
|
+
constructor(userService, eventService) {
|
|
5
5
|
this.userService = userService;
|
|
6
|
+
this.eventService = eventService;
|
|
6
7
|
// tslint:disable-next-line:max-line-length
|
|
7
8
|
this.defImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQTZDQkFFMDRERDExRTg4OUIxQzk4OTI4N0QzREVCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkZDQTZDQkFGMDRERDExRTg4OUIxQzk4OTI4N0QzREVCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkNBNkNCQUMwNEREMTFFODg5QjFDOTg5Mjg3RDNERUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RkNBNkNCQUQwNEREMTFFODg5QjFDOTg5Mjg3RDNERUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oRrTHAAAINklEQVR42uyd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';
|
|
8
9
|
this.backgroundImage = 'initial';
|
|
9
|
-
this.createUserBackground();
|
|
10
|
-
}
|
|
11
|
-
createUserBackground() {
|
|
12
10
|
this.subscription = this.userService.user$
|
|
13
11
|
.subscribe(u => {
|
|
12
|
+
this.userId = u.id;
|
|
14
13
|
this.present = u.present;
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
this.refreshUserImage();
|
|
15
|
+
});
|
|
16
|
+
this.eventService.on(EnaioEvent.SYSTEM_STATUS_IMAGE_CHANGE).subscribe(() => {
|
|
17
|
+
this.refreshUserImage();
|
|
17
18
|
});
|
|
18
19
|
}
|
|
20
|
+
refreshUserImage() {
|
|
21
|
+
const timestamp = new Date().getTime().toString();
|
|
22
|
+
this.backgroundImage = `url(${this.userService.getUserImageUri(this.userId) + '&t=' + timestamp}), url(${this.defImg})`;
|
|
23
|
+
}
|
|
19
24
|
ngOnDestroy() {
|
|
20
25
|
this.subscription.unsubscribe();
|
|
21
26
|
}
|
|
@@ -28,10 +33,11 @@ UserAvatarComponent.decorators = [
|
|
|
28
33
|
},] }
|
|
29
34
|
];
|
|
30
35
|
UserAvatarComponent.ctorParameters = () => [
|
|
31
|
-
{ type: UserService }
|
|
36
|
+
{ type: UserService },
|
|
37
|
+
{ type: EventService }
|
|
32
38
|
];
|
|
33
39
|
UserAvatarComponent.propDecorators = {
|
|
34
40
|
backgroundImage: [{ type: HostBinding, args: ['style.background-image',] }],
|
|
35
41
|
showPresence: [{ type: Input }]
|
|
36
42
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWEsS0FBSyxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFPbkUsTUFBTSxPQUFPLG1CQUFtQjtJQVc5QixZQUFvQixXQUF3QixFQUNsQyxZQUEwQjtRQURoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVRwQywyQ0FBMkM7UUFDbkMsV0FBTSxHQUFHLDQ4SEFBNDhILENBQUM7UUFJdjdILG9CQUFlLEdBQUcsU0FBUyxDQUFDO1FBS2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGdCQUFnQjtRQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsU0FBUyxVQUFVLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUMxSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7O1lBbkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUUsa0VBQWtFOzthQUU3RTs7O1lBTmlDLFdBQVc7WUFBekIsWUFBWTs7OzhCQWU3QixXQUFXLFNBQUMsd0JBQXdCOzJCQUNwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgSW5wdXQsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RW5haW9FdmVudCwgRXZlbnRTZXJ2aWNlLCBVc2VyU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tdXNlci1hdmF0YXInLFxuICB0ZW1wbGF0ZTogYDxzcGFuIGNsYXNzPVwicHJlc2VuY2VcIiAqbmdJZj1cInNob3dQcmVzZW5jZSAmJiAhcHJlc2VudFwiPlg8L3NwYW4+YCxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1hdmF0YXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyQXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gIHByaXZhdGUgZGVmSW1nID0gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTFFBQUFDMENBWUFBQUE5elFZeUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRNNElEYzVMakUxT1RneU5Dd2dNakF4Tmk4d09TOHhOQzB3TVRvd09Ub3dNU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UY2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPa1pEUVRaRFFrRkZNRFJFUkRFeFJUZzRPVUl4UXprNE9USTROMFF6UkVWQ0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09rWkRRVFpEUWtGR01EUkVSREV4UlRnNE9VSXhRems0T1RJNE4wUXpSRVZDSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNlJrTkJOa05DUVVNd05FUkVNVEZGT0RnNVFqRkRPVGc1TWpnM1JETkVSVUlpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2UmtOQk5rTkNRVVF3TkVSRU1URkZPRGc1UWpGRE9UZzVNamczUkRORVJVSWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejdvUnJUSEFBQUlOa2xFUVZSNDJ1eWRmMU1UU1JCQU95RUVBZ1pCRUJTdHVqL3UrMzhqNjZxODh6aU1xQWdFQWlTczI1ZmVJbkpYeVNRN3k4N092RmMxVlNySXNyT1BwcWZueDdheUxCT0FXR2pUQllEUUFBZ05nTkFBQ0EwSURZRFFBQWdOZ05BQUNBMElEWURRQUFnTmdOQUFDQTBJRFlEUUFBZ05nTkFBQ0EwSURZRFFBQWdOZ05BQUNBMElEWURRQUFnTmdOQUFDQTBJRFlEUUFBZ05nTkFBQ0EwSURZRFFBQWdOZ05DQTBBQUlEWURRQUFnTmdOQ0EwQUFJRFlEUUFGWFJvUXU4MGNyYlJ0NjZlVnZQMjVxMXRuMU15Zkwya0xlSnRmdTgzZVh0MWo0R0NGMXIzMjNuYlN0dlBaTzVEQ3IxVGQ2dTh6Yk0yNWd1WGlHcVpCbUJZUWswOHU1WTI2ejRXcU84WFZpN3Arc1IyaWY5dk8zbTdVVk4xNy9LMjNuZUxua1VDRjBtSjlaSWZHQjVjUWhvdm4xbVVac0hoOUJMUmVURGdFVCtQN0VIUkd5RVhvUUsvTVlHZTAxQUI0K25KamdnOUMrOHNxamNhdGozblZtMC9zWWpSR2hGeTIvSERZcks4NkwxaVNSZTdrdGRhSzBmdjVkNDZ2RXE4eWVaMXJNUk9qRjJMREszSXJ1dnpDTDFCVUtubFM4ZlJYNlBuMVBNcTFOY25MU2ZnTXhpOTdpUDBQRkg1c09FN3ZmUTdobWhJODJaanlROWp1emVFVG9pZWpZQVRKVmo2d09FamdBdHlXbHB6bmMxNDd0TTF6WTNZdkF2Y1pVbmt4YjZ1SUlIcVNMcjdOeHB3MzZ3anhHNitZUEFLbVlBaStqOHcvN2NGTFpqSHlUR0xIUlhxcWxvcU1oZlovNnVVWHJZb0g0SmVSVWhRcy9oalZRekM2Z3lUNTc4VzVPbW0xdldOd2pkSVBvVnBScjNUNkx6Yk5UK3MwRlNiMXNmSVhSRElsQlZreWVhWG1SelVoR1YrcnBCcVVjTG9jTm5wNkljVVJmN1hEbmsxMzlKTTNhU2RDWENDWmNZaFQ2bzRHdU94YjFFOTJBNTlWbWlmWVhRbm5ObjM5RTVNMEVuUy82L0x4YXRKd0gzVnplMlhEbzJvWGNyK0pxREVvTTlUVkgrY0VoVll1c3poUGFBSGdMais5d01QUXVqN0pyaXNVWHFrMENqOVF2ck80UU9jRERvRXgzWS9lUHg2K21zNGdlWmx2Mnl5UHNPb1FON0tGcDYrN3VDNzdGWUEvTEJJbitHMEg3cFJIUWZ2czZhdXpLWnE1Uk4weERkSW5WbU9leGV6Yi8yTjYwUHh3Z2RCcjVtQlg5WW12RmNrWE5pS1lpMkxZdVUvWnFleTdiZFAwSUh3SmFIci9GRjZxMGRYMXM3dFlpcGd2V3NkVXIrMEl3Y2Z1aTNFRG9jZWlVZitJbUVWVm9iV1p0OVRsMXJIV3Z0SjJPZ0IzazhURjFUaHp0cnhWRzh2OHY4R24wVU8xcGlFTG80T1gvVnFIZ2k0WisvUExaV1pwM0ljSUhRRzlhWGpUN1hJb1lxeHlveVA5aXY5bytTem1IaU54WDFKUkhhTTh0T2RXdWVPSkQwem9DN2RlekxFVUxYaTJ1NTY5SUdmcmVTSnJjZSt4S2hLMlROWWREM01XR1JDekw3cmRRcDBaZmswQUVJUFVibVgvcENFTHJaOXpCcGFMOVZjWTJIMkgySXBXeFg1aUV1TS9oOExkUFZhVzM3dWxlV2w5ODE1QnBaeWI1RTZBWUk3NExPc3IxL0VzSDB6enNtbjI0QUdEYmdHdEVUUThxUlZYeVBtbGUrbS9OMTJ2Ynh0Y0N2NGRJWEdVTFhUOVY1NGE2RFNHdFNidWZIYzF6RHBTOGVFTHArSmc0aWxLSG4rZlBxdW9aTFgwd1FPbnloT3lYdnMrWDU4K3E2UnR0aHpJVFFBZUN5RnFQTVR2QmJ6NTlYMXpXNm52b1NvU3ZHcFp4Vlp0SE5oZWZQcStzYUc1NzZFcUVyeGlWcWxjazlkYkhPMXdXZjgxWEtMZXA1am12MFBQVmwwTVJRaDg3c1FjeUxRR1czYUJXcjgxN0xmeGZWNjZTSGo5ZW5WWDJOYlFlWk00UU9nNXNGUW12K3VGNHlSMVNoOUp5T0xhc1c2QURxV3Z5V3VxcTZ4cnBERGgzRjIyZGpFVm9mK3FJYWJkOURsQ3Vtb3F1a2ltdjBIZnV3OGNSeUxvZkxsUEJMU1plWG52b1FvWitKc2NPQWFWTWkyR0swWW5WajBaa2xJNGxrQjA5TUp5ZTVsTFQyRWhSNnoxUGZJWFNBUXU5S0dpc01aOGRJdXdqZFRPNGRCbE02ZFp6U0M5MzNaZkYwK1pWRXRQTTl0dk9oengxL0JYY1RrTG5ybUc2Y3gzVFRzUW10TzdzWFRkOUcvVnF6R1Z4ZWEzY256WGdmVExKQ0t5N24wK21zV2N4bHZKZmlOanQ2RnR1Tnh5ajBoYmd0c2ptU2lFNnVuMkhkN20wUmR6RU5CbU1XV3RjakRCdytyOWoyRk5PNytscml2bFZySUJHczNVaEI2Q0tYZHBuNTBoVm9ieU82NzdmaXRxcHVHRnZ1SEx2UXlxbGpCTko4TTRiMzlSMDRqZ3N5Y1gvbklrSUh4SjFqNnFIb2tzMG0xNmYzN1I1Y0dFZ0VDL2xURkZyNUp1NkxiZzRiR3FrUHhQM2Q1a1B4czNZYm9XdEVEelIzWFhpalVlNjRJUVBGbG4ydnJwRjViSDBSTmEwc3l4SncrdCtCMG05TGlLcUwzZlZOV0tGT0NXdHA3cDI0YnkzVGgveFJJbG5FajlCVGRrd0NWM1MzaUw1NkxiUVg2ZWpBVCt2TXk1dzNvaitjRnlrODVKU0VWbDZKMjZURDA3enpOSUNCbEs3TjBPbnNaZmRIZm80OWIwNVo2S0lpY0xqay85Rk8raTdUbmRmUHZSQytZOS96M2dxNS9VQVc3eVpINkVRamRTSDJ1Y2xkOVpiL0RaTjRkOFZCYWxLUk9YV2hpNXk2VEVWalpQbjFwY2ZCb3c3MitwWW5yL3FxNTh5cUdSY3BQdFNVaFJhckVyeVg4cnRZN2l6WHZySElyWDkzT1JXMWE1RzRaN2x4MlhYYW1nNTlTcUdhZ2REemM5Umo4ZmUrOEZtNUp2TDRodGRDNHJaVktIeHZCUnZLY2pWM2hFNGdyejZVNXEyK0sxWVhmdU1SSXZSVFZpMk4xVVVvSlVXRURweStSZXRROXg0V0M2OHVlVlFJN2R3M01xMkVIQVFrdG9wOFpoVU1IaHhDbDRyWVdnOStVZFAxOWFpQmN5SXlRdnRtM2FLMnRzMktyeld5U0t6dG5xNUg2S3JwMk9CUmo3N1ZPbkxaYy9PMGZxMzE0MnNiN0kzcFlvU3VPK2Zla01lenFOZXN0ZVd4RktpZHJUWHBpYlY3eTR1ak9Hd2NvUUU4MDZZTEFLRUJFQm9Bb1FFUUdoQWFBS0VCRUJvQW9RRVFHaEFhQUtFQkVCb0FvUUVRR2hBYUFLRUJFQm9Bb1FFUUdoQWFBS0VCRUJvQW9RRVFHaEFhQUtFQkVCb0FvUUVRR2hBYUFLRUJFQm9Bb1FFUUdoQWFBS0VCRUJvQW9RR2hBUkFhQUtFQkVCb0FvUUdoQVJBYUFLRUJxdUtuQUFNQW5NRFpWU2JweVZzQUFBQUFTVVZPUks1Q1lJST0nO1xuXG4gIHByZXNlbnQ6IGJvb2xlYW47XG4gIHVzZXJJZDogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQtaW1hZ2UnKSBiYWNrZ3JvdW5kSW1hZ2UgPSAnaW5pdGlhbCc7XG4gIEBJbnB1dCgpIHNob3dQcmVzZW5jZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy51c2VyU2VydmljZS51c2VyJFxuICAgICAgLnN1YnNjcmliZSh1ID0+IHtcbiAgICAgICAgdGhpcy51c2VySWQgPSB1LmlkO1xuICAgICAgICB0aGlzLnByZXNlbnQgPSB1LnByZXNlbnQ7XG4gICAgICAgIHRoaXMucmVmcmVzaFVzZXJJbWFnZSgpO1xuICAgICAgfSk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TWVNURU1fU1RBVFVTX0lNQUdFX0NIQU5HRSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaFVzZXJJbWFnZSgpO1xuICAgIH0pXG4gIH1cbiAgcmVmcmVzaFVzZXJJbWFnZSgpIHtcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gYHVybCgke3RoaXMudXNlclNlcnZpY2UuZ2V0VXNlckltYWdlVXJpKHRoaXMudXNlcklkKSArICcmdD0nICsgdGltZXN0YW1wfSksIHVybCgke3RoaXMuZGVmSW1nfSlgO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -156,8 +156,10 @@ export class SearchQuery {
|
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
158
|
* Generate a query JSON from the current SearchQuery that can be send to the search service.
|
|
159
|
+
*
|
|
160
|
+
* @param resolveReference in case of csv export the resolving of references is set by configuration
|
|
159
161
|
*/
|
|
160
|
-
getQueryJson() {
|
|
162
|
+
getQueryJson(resolveReference) {
|
|
161
163
|
// Convert the current query object to a query JSON that can be consumed by the search service backend.
|
|
162
164
|
// To keep it short, we'll only add properties that are set and differ from default values
|
|
163
165
|
const queryJson = {};
|
|
@@ -196,9 +198,7 @@ export class SearchQuery {
|
|
|
196
198
|
if (this.expertMode) {
|
|
197
199
|
queryJson.options.expertmode = true;
|
|
198
200
|
}
|
|
199
|
-
|
|
200
|
-
queryJson.options.resolvereference = true;
|
|
201
|
-
}
|
|
201
|
+
queryJson.options.resolvereference = resolveReference !== undefined ? resolveReference : true;
|
|
202
202
|
if (this.searchMode !== SearchQuery.DEFAULT_SEARCH_MODE) {
|
|
203
203
|
queryJson.options.searchmode = this.searchMode;
|
|
204
204
|
}
|
|
@@ -497,4 +497,4 @@ SearchFilter.OPERATOR = {
|
|
|
497
497
|
INTERVAL_INCLUDE_FROM: "gtelt",
|
|
498
498
|
RANGE: "rg" // aggegation ranges
|
|
499
499
|
};
|
|
500
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXF1ZXJ5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2gtcXVlcnkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLDJEQUEyRDtBQUUzRCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHlCQUFXLENBQUE7SUFDWCxpQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBd0IsQ0FBQTtBQUMxQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUF1SXRCO1FBbkRBOztXQUVHO1FBQ0ksVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBaUIsRUFBRSxDQUFDO1FBQzdDOztXQUVHO1FBQ0ksWUFBTyxHQUFtQixFQUFFLENBQUM7UUFLcEM7O1dBRUc7UUFDSSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ0ksZUFBVSxHQUFXLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztRQUM1RDs7V0FFRztRQUNJLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUN0Qzs7V0FFRztRQUNJLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQjs7V0FFRztRQUNJLFVBQUssR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUV2QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQVNyQixDQUFDO0lBRWhCOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBZ0I7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FB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TyxDQUNMLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUMxQixJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVE7WUFDMUIsSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXO1lBQ2hDLENBQUMsSUFBSSxDQUFDLFVBQVUsWUFBWSxLQUFLO2dCQUMvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQ3BDLENBQUM7SUFDSixDQUFDOztBQWxIRDs7R0FFRztBQUNXLHFCQUFRLEdBQUc7SUFDdkIsWUFBWTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsd0RBQXdEO0lBQ3hELEtBQUssRUFBRSxPQUFPO0lBQ2QsNEVBQTRFO0lBQzVFLEVBQUUsRUFBRSxJQUFJO0lBQ1IsbUJBQW1CO0lBQ25CLFlBQVksRUFBRSxJQUFJO0lBQ2xCLDRCQUE0QjtJQUM1QixnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLEtBQUs7SUFDcEIsUUFBUSxFQUFFLE1BQU07SUFDaEIscUJBQXFCLEVBQUUsUUFBUTtJQUMvQixtQkFBbUIsRUFBRSxPQUFPO0lBQzVCLHFCQUFxQixFQUFFLE9BQU87SUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cmVkdWNlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gXCIuLi8uLi9tb2RlbC9vYmplY3QtdHlwZS5tb2RlbFwiO1xuaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG4vL2V4cG9ydCB0eXBlIFF1ZXJ5U2NvcGUgPSAnaW5kZXhkYXRlJyB8ICdjb250ZW50JyB8ICdhbGwnO1xuXG5leHBvcnQgZW51bSBRdWVyeVNjb3BlIHtcbiAgQUxMID0gJ2FsbCcsXG4gIENPTlRFTlQgPSAnY29udGVudCcsXG4gIElOREVYX0RBVEEgPSAnaW5kZXhkYXRhJ1xufVxuXG4vKipcbiAqIFRoZSBTZWFyY2hRdWVyeSBDbGFzc1xuICpcbiAqIFNlZSB7QGxpbmsgU2VhcmNoU2VydmljZX0gZm9yIFVzYWdlXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWFyY2hRdWVyeSB7XG4gIC8qKlxuICAgKiBCYXNlIFBhcmFtZXRlcnMgZm9yIGEgU2VhcmNoIFF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEJBU0VfUEFSQU1TID0ge1xuICAgIFRZUEU6IFwidHlwZVwiLFxuICAgIENSRUFUT1I6IFwiY3JlYXRvclwiLFxuICAgIENSRUFURUQ6IFwiY3JlYXRlZFwiLFxuICAgIE1PRElGSUVSOiBcIm1vZGlmaWVyXCIsXG4gICAgTU9ESUZJRUQ6IFwibW9kaWZpZWRcIixcbiAgICBGSUxFU0laRTogXCJmaWxlc2l6ZVwiLFxuICAgIEZJTEVOQU1FOiBcImZpbGVuYW1lXCIsXG4gICAgTUlNRVRZUEVHUk9VUDogXCJtaW1ldHlwZWdyb3VwXCJcbiAgfTtcblxuICAvKipcbiAgICogVGltZSBwZXJpb2QgYnVja2V0cyBwcm9wZXJ0eSBuYW1lc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBUSU1FX1BFUklPRF9CVUNLRVRTID0ge1xuICAgIFRPREFZOiBcInRvZGF5XCIsXG4gICAgWUVTVEVSREFZOiBcInllc3RlcmRheVwiLFxuICAgIFRISVNfV0VFSzogXCJ0aGlzd2Vla1wiLFxuICAgIExBU1RfV0VFSzogXCJsYXN0d2Vla1wiLFxuICAgIFRISVNfTU9OVEg6IFwidGhpc21vbnRoXCIsXG4gICAgTEFTVF9NT05USDogXCJsYXN0bW9udGhcIixcbiAgICBUSElTX1lFQVI6IFwidGhpc3llYXJcIixcbiAgICBMQVNUX1lFQVI6IFwibGFzdHllYXJcIlxuICB9O1xuXG4gIC8qKlxuICAgKiBtaW1ldHlwZSBidWNrZXRzIHByb3BlcnR5IG5hbWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIE1JTUVUWVBFR1JPVVBfQlVDS0VUUyA9IHtcbiAgICBQREY6IFwicGRmXCIsXG4gICAgTUFJTDogXCJtYWlsXCIsXG4gICAgV09SRDogXCJ3b3JkXCIsXG4gICAgSU1BR0U6IFwiaW1hZ2VcIixcbiAgICBPQ1RFVF9TVFJFQU06IFwib2N0ZXQtc3RyZWFtXCIsXG4gICAgVFhUOiBcInR4dFwiLFxuICAgIEVYQ0VMOiBcImV4Y2VsXCIsXG4gICAgUE9XRVJQT0lOVDogXCJwb3dlcnBvaW50XCIsXG4gICAgVklERU86IFwidmlkZW9cIixcbiAgICBIVE1MOiBcImh0bWxcIixcbiAgICBBVURJTzogXCJhdWRpb1wiLFxuICAgIFpJUDogXCJ6aXBcIlxuICB9O1xuXG4gIC8qKlxuICAgKiBmaWxlc2l6ZSBidWNrZXRzIHByb3BlcnR5IG5hbWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZJTEVfU0laRV9CVUNLRVRTID0ge1xuICAgIExUMU1COiBcImx0MU1CXCIsXG4gICAgTFQxME1COiBcImx0MTBNQlwiLFxuICAgIExUMTAwTUI6IFwibHQxMDBNQlwiLFxuICAgIEdUMTAwTUI6IFwiZ3QxMDBNQlwiXG4gIH07XG5cbiAgLy8gbGlzdCBvZiB0aGluZ3MgdGhhdCBtYXkgaGF2ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IHF1ZXJ5XG4gIHB1YmxpYyBzdGF0aWMgVVBEQVRFX0NBVVNFID0ge1xuICAgIFRPR0dMRURfVFlQRTogXCJjYXVzZS50eXBlLnRvZ2dsZWRcIixcbiAgICBUT0dHTEVEX0VYUEVSVE1PREU6IFwiY2F1c2UuZXhwZXJ0bW9kZS50b2dnbGVkXCIsXG4gICAgVEVSTV9TRVQ6IFwiY2F1c2UudGVybS5zZXRcIixcbiAgICBUWVBFU19TRVQ6IFwiY2F1c2UudHlwZXMuc2V0XCIsXG4gICAgQ09OVEVYVF9GT0xERVJfU0VUOiBcImNhdXNlLmNvbnRleHRmb2xkZXIuc2V0XCIsXG4gICAgVE9HR0xFRF9GSUxURVI6IFwiY2F1c2UuZmlsdGVyLnRvZ2dsZWRcIixcbiAgICBBRERFRF9GSUxURVI6IFwiY2F1c2UuZmlsdGVyLmFkZGVkXCIsXG4gICAgUkVNT1ZFRF9GSUxURVI6IFwiY2F1c2UuZmlsdGVyLnJlbW92ZWRcIixcbiAgfTtcbiAgLyoqXG4gICAqIERldGF1bHQgU2VhcmNoIG1vZGUgSW5kZXhcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9TRUFSQ0hfTU9ERSA9IFwiaWR4c1wiO1xuICAvKipcbiAgICogU2VhcmNoIG1vZGUgZm9yIEZ1bGwgdGVzdCBTZWFyY2hcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRlVMTFRFWFRfU0VBUkNIX01PREUgPSBcImZ0c1wiO1xuICAvKipcbiAgICogZnVsbHRleHQgc2VhcmNoIHRlcm1cbiAgICovXG4gIHB1YmxpYyB0ZXJtOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBmaWVsZHMgdG8gcmVxdWVzdCBmcm9tIHRoZSBzZWFyY2ggc2VydmljZSwgbGVhdmluZyB0aGlzIGJsYW5rIHdpbGwgcmV0dXJuIHRoZSBmaWVsZHMgc3BlY2lmaWVkIGluIHRoZSByZXN1bHQgZmllbGQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGZpZWxkczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBMaXN0IG9mIG9iamVjdCB0eXBlcyB0byBiZSBmZXRjaGVkIGJ5IHRoZSBxdWVyeS4gTGVhdmluZyB0aGlzIGJsYW5rIHdpbGwgcmV0dXJuIHJlc3VsdHMgZnJvbSBhbnkgdHlwZVxuICAgKi9cbiAgcHVibGljIHR5cGVzOiBPYmplY3RUeXBlW10gPSBbXTtcbiAgLyoqXG4gICAqIExpc3Qgb2YgY29udGV4dCBmb2xkZXIgdHlwZXNcbiAgICovXG4gIHB1YmxpYyBjb250ZXh0Rm9sZGVyVHlwZXM6IE9iamVjdFR5cGVbXSA9IFtdO1xuICAvKipcbiAgICogTGlzdCBvZiBmaWx0ZXJzIHRvIGRlZmluZSB0aGUgcXVlcnlcbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSA9IFtdO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcmV0cmlldmUgc3VnZ2VzdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdWdnZXN0OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHRlcm0gaXMgYW4gZXhwZXJ0IG1vZGUgcXVlcnlcbiAgICovXG4gIHB1YmxpYyBleHBlcnRNb2RlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgb2YgdGhlIHF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgc2NvcGU6IFF1ZXJ5U2NvcGU7XG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIG1vZGUgdG8gYmUgdXNlZCAoU2VhcmNoUXVlcnkuREVGQVVMVF9TRUFSQ0hfTU9ERSBvciBTZWFyY2hRdWVyeS5GVUxMVEVYVF9TRUFSQ0hfTU9ERSlcbiAgICovXG4gIHB1YmxpYyBzZWFyY2hNb2RlOiBzdHJpbmcgPSBTZWFyY2hRdWVyeS5ERUZBVUxUX1NFQVJDSF9NT0RFO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBvcHRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgc29ydE9wdGlvbnM6IFNvcnRPcHRpb25bXSA9IFtdO1xuICAvKipcbiAgICogUmVzb2x2ZSByZWZlcmVuY2VzIHdpdGggdGhlaXIgdGl0bGUgaW5zdGVhZCBvZiB0aGVpciBhY3R1YWwgdmFsdWVcbiAgICovXG4gIHB1YmxpYyByZXNvbHZlUmVmZXJlbmNlID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBxdWVyeVxuICAgKi9cbiAgcHVibGljIHN0YXRlOiBTZWFyY2hTdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xuXG4gIHB1YmxpYyBoaWdobGlnaHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHdpdGhDb250ZXh0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG5hbWU/OiBzdHJpbmc7XG5cbiAgLy8gSW5kaWNhdG9yIHdoYXQgY2F1c2VkIHRoZSB1cGRhdGUgb2YgYSBTZWFyY2hRdWVyeSBvYmplY3QuXG4gIC8vIFVzZWZ1bGwgZm9yIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmVkIHRvIGEgcXVlcnksIGFuZCBuZWVkIHRvXG4gIC8vIHRyYWNrIHRoZSBraW5kIG9mIGNoYW5nZXMgbWFkZVxuICBfX3VwZGF0ZUNhdXNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IHRhcmdldCB0eXBlIHRvIHRoZSBxdWVyeVxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBPYmplY3QgdHlwZSB0byBiZSBhZGRlZFxuICAgKi9cbiAgcHVibGljIGFkZFR5cGUodHlwZTogT2JqZWN0VHlwZSkge1xuICAgIGlmICghdGhpcy50eXBlcy5maW5kKHQgPT4gdC5pZCA9PT0gdHlwZS5pZCkpIHtcbiAgICAgIHRoaXMudHlwZXMucHVzaCh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHR5cGUgZnJvbSB0aGUgdGFyZ2V0IHR5cGVzIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUeXBlKHR5cGU6IE9iamVjdFR5cGUpIHtcbiAgICB0aGlzLnR5cGVzID0gdGhpcy50eXBlcy5maWx0ZXIodCA9PiB0LmlkICE9PSB0eXBlLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG9yIHJlbW92ZXMgdGhlIGdpdmVuIHR5cGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2V0dGluZ3NcbiAgICpcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIHRvIGJlIHRvZ2dsZWRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGVUeXBlKHR5cGU6IE9iamVjdFR5cGUpIHtcbiAgICBpZiAodGhpcy50eXBlcy5maW5kKHQgPT4gdC5pZCA9PT0gdHlwZS5pZCkpIHtcbiAgICAgIHRoaXMucmVtb3ZlVHlwZSh0eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlcy5wdXNoKHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IGZpbHRlciB0byB0aGUgcXVlcnkuIElmIHRoZXJlIGFscmVhZHkgaXMgYSBmaWx0ZXIgc2V0IGZvciB0aGUgZ2l2ZW4gcHJvcGVydHksIGl0IHdpbGwgYmUgb3ZlcnJpZGRlbi5cbiAgICpcbiAgICogQHBhcmFtIGZpbHRlciBUaGUgZmlsdGVyIHRvIGJlIGFkZGVkXG4gICAqL1xuICBwdWJsaWMgYWRkRmlsdGVyKGZpbHRlcjogU2VhcmNoRmlsdGVyKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmdldEZpbHRlcihmaWx0ZXIucHJvcGVydHkpKSB7XG4gICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiB0aGVyZSBhbHJlYWR5IGlzIGEgZmlsdGVyIHNldCBmb3IgdGhlIHRhcmdldCBwcm9wZXJ0eVxuICAgICAgLy8gd2UnbGwganVzdCBvdmVycmlkZSBpdCB3aXRoIHRoZSBuZXcgdmFsdWVcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKGZpbHRlci5wcm9wZXJ0eSk7XG4gICAgICB0aGlzLmZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZmlsdGVyIGZyb20gdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyUHJvcGVydHlOYW1lIFRoZSBmaWx0ZXIgKGl0cyBwcm9wZXJ0eSBuYW1lKSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmlsdGVyKGZpbHRlclByb3BlcnR5TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJzLmZpbHRlcihmID0+IGYucHJvcGVydHkgIT09IGZpbHRlclByb3BlcnR5TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBvciByZW1vdmVzIHRoZSBnaXZlbiBmaWx0ZXIgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2V0dGluZ3NcbiAgICpcbiAgICogQHBhcmFtIGZpbHRlciBUaGUgZmlsdGVyIHRvIGJlIHRvZ2dsZWRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGVGaWx0ZXIoZmlsdGVyOiBTZWFyY2hGaWx0ZXIsIG92ZXJyaWRlPzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmdldEZpbHRlcihmaWx0ZXIucHJvcGVydHkpKSB7XG4gICAgICB0aGlzLnJlbW92ZUZpbHRlcihmaWx0ZXIucHJvcGVydHkpO1xuICAgICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGZpbHRlciBieSBpdHMgcHJvcGVydHkgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgZmlsdGVycyBwcm9wZXJ0eSBuYW1lIChxbmFtZSBvZiBmb3JtIGVsZW1lbnQpXG4gICAqIEByZXR1cm5zIFNlYXJjaCBGaWx0ZXIgT2JqZWN0XG4gICAqL1xuICBwdWJsaWMgZ2V0RmlsdGVyKHByb3BlcnR5TmFtZTogc3RyaW5nKTogU2VhcmNoRmlsdGVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmZpbmQoZiA9PiBmLnByb3BlcnR5ID09PSBwcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgcHVibGljIGdldFRhYmxlRmlsdGVycyhwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IFNlYXJjaEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzLmZpbHRlcihmID0+IGYucHJvcGVydHkuc3RhcnRzV2l0aChwcm9wZXJ0eU5hbWUgKyAnLicpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRpbmcgbmV3IFNvcnQgT3B0aW9uc1xuICAgKiBTb3J0IE9wdGlvbnMgYXJlIG9ubHkgYWRkZWQgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgcHJlc2VudFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZVxuICAgKiBAcGFyYW0gb3JkZXJcbiAgICogQHBhcmFtIG1pc3NpbmdcbiAgICovXG4gIHB1YmxpYyBhZGRTb3J0T3B0aW9uKG5hbWU6IHN0cmluZywgb3JkZXI6IHN0cmluZywgbWlzc2luZz86IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zb3J0T3B0aW9ucy5maW5kKHMgPT4gcy5maWVsZCA9PT0gbmFtZSkpIHtcbiAgICAgIHRoaXMuc29ydE9wdGlvbnMucHVzaChuZXcgU29ydE9wdGlvbihuYW1lLCBvcmRlciwgbWlzc2luZykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVNvcnRPcHRpb24obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3J0T3B0aW9ucyA9IHRoaXMuc29ydE9wdGlvbnMuZmlsdGVyKHMgPT4gcy5maWVsZCAhPT0gbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBxdWVyeSBKU09OIGZyb20gdGhlIGN1cnJlbnQgU2VhcmNoUXVlcnkgdGhhdCBjYW4gYmUgc2VuZCB0byB0aGUgc2VhcmNoIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0UXVlcnlKc29uKCkge1xuICAgIC8vIENvbnZlcnQgdGhlIGN1cnJlbnQgcXVlcnkgb2JqZWN0IHRvIGEgcXVlcnkgSlNPTiB0aGF0IGNhbiBiZSBjb25zdW1lZCBieSB0aGUgc2VhcmNoIHNlcnZpY2UgYmFja2VuZC5cbiAgICAvLyBUbyBrZWVwIGl0IHNob3J0LCB3ZSdsbCBvbmx5IGFkZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHNldCBhbmQgZGlmZmVyIGZyb20gZGVmYXVsdCB2YWx1ZXNcbiAgICBjb25zdCBxdWVyeUpzb246IGFueSA9IHt9O1xuXG4gICAgLy8gYWRkIHR5cGUgZmlsdGVyc1xuICAgIGlmICh0aGlzLnR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHF1ZXJ5SnNvbi50eXBlcyA9IHRoaXMudHlwZXMubWFwKHQgPT5cbiAgICAgICAgdHlwZW9mIHQgPT09IFwic3RyaW5nXCIgPyB0IDogdC5uYW1lXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGFkZCBjb250ZXh0IGZvbGRlciB0eXBlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5jb250ZXh0Rm9sZGVyVHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgcXVlcnlKc29uLmNvbnRleHRmb2xkZXJ0eXBlcyA9IHRoaXMuY29udGV4dEZvbGRlclR5cGVzLm1hcCh0ID0+IHQubmFtZSk7XG4gICAgfVxuXG4gICAgLy8gZmlsdGVyc1xuICAgIGlmICh0aGlzLmZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgcXVlcnlKc29uLmZpbHRlcnMgPSB7fTtcbiAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBxdWVyeUpzb24uZmlsdGVyc1tmLnByb3BlcnR5XSA9IGYudG9RdWVyeSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRlcm0pIHtcbiAgICAgIHF1ZXJ5SnNvbi50ZXJtID0gdGhpcy50ZXJtO1xuICAgIH1cbiAgICAvLyBzZWFyY2ggZmllbGRzXG4gICAgaWYgKHRoaXMuZmllbGRzKSB7XG4gICAgICBxdWVyeUpzb24uZmllbGRzID0gdGhpcy5maWVsZHM7XG4gICAgfVxuICAgIGlmICh0aGlzLm5hbWUpIHtcbiAgICAgIHF1ZXJ5SnNvbi5uYW1lID0gdGhpcy5uYW1lO1xuICAgIH1cbiAgICAvLyBhZGQgb3B0aW9ucyB3aGVuIHRoZXkgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVzXG4gICAgaWYgKHRoaXMuYXBwbHlPcHRpb25zKCkpIHtcbiAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zID0ge307XG4gICAgICBxdWVyeUpzb24ub3B0aW9ucy5zY29wZSA9IHRoaXMuc2NvcGU7XG4gICAgICBpZiAodGhpcy5zdWdnZXN0KSB7XG4gICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnN1Z2dlc3QgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZXhwZXJ0TW9kZSkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy5leHBlcnRtb2RlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlc29sdmVSZWZlcmVuY2UpIHtcbiAgICAgICAgcXVlcnlKc29uLm9wdGlvbnMucmVzb2x2ZXJlZmVyZW5jZSA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWFyY2hNb2RlICE9PSBTZWFyY2hRdWVyeS5ERUZBVUxUX1NFQVJDSF9NT0RFKSB7XG4gICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnNlYXJjaG1vZGUgPSB0aGlzLnNlYXJjaE1vZGU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zb3J0T3B0aW9ucyAmJiB0aGlzLnNvcnRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy5zb3J0ID0ge307XG4gICAgICAgIHRoaXMuc29ydE9wdGlvbnMuZm9yRWFjaCgoc29ydE9wdGlvbjogU29ydE9wdGlvbikgPT4ge1xuICAgICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnNvcnRbc29ydE9wdGlvbi5maWVsZF0gPSB7XG4gICAgICAgICAgICBvcmRlcjogc29ydE9wdGlvbi5vcmRlclxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oaWdobGlnaHRpbmcpIHtcbiAgICAgICAgcXVlcnlKc29uLm9wdGlvbnMuaGlnaGxpZ2h0aW5nID0gdGhpcy5oaWdobGlnaHRpbmc7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy53aXRoQ29udGV4dCkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy53aXRoY29udGV4dCA9IHRoaXMud2l0aENvbnRleHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBxdWVyeUpzb247XG4gIH1cblxuICAvLyBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBxdWVyeSBzZW5kIHRvIHRoZSBzZWFyY2ggc2VydmljZSBzaG91bGQgY29udGFpbiBvcHRpb25zXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmV4cGVydE1vZGUgfHxcbiAgICAgICEhdGhpcy5zY29wZSB8fFxuICAgICAgdGhpcy5zdWdnZXN0IHx8XG4gICAgICB0aGlzLmhpZ2hsaWdodGluZyB8fFxuICAgICAgdGhpcy5yZXNvbHZlUmVmZXJlbmNlIHx8XG4gICAgICB0aGlzLndpdGhDb250ZXh0IHx8XG4gICAgICB0aGlzLnNlYXJjaE1vZGUgIT09IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREUgfHxcbiAgICAgIHRoaXMuc29ydE9wdGlvbnMubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAaWdub3JlXG4gKiBDcmVhdGVzIHRoZSBNb2RlbCBvZiBTb3J0IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNvcnRPcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZmllbGQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3JkZXI6IHN0cmluZyxcbiAgICBwdWJsaWMgbWlzc2luZz86IHN0cmluZ1xuICApIHt9XG59XG5cbi8qKlxuICogQGlnbm9yZVxuICogQ3JlYXRlcyB0aGUgTW9kZWwgb2YgRmllbGQgRGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIEZpZWxkRGVmaW5pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50czogYW55W10gPSBbXSxcbiAgICBwdWJsaWMgc29ydG9yZGVyOiBhbnlbXSA9IFtdLFxuICAgIHB1YmxpYyBncm91cG9yZGVyOiBhbnlbXSA9IFtdLFxuICAgIHB1YmxpYyBwaW5uZWQ6IGFueVtdID0gW10sXG4gICAgcHVibGljIGFsaWdubWVudHg6IHtxbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdID0gW10sXG4gICAgcHVibGljIG1vZGU/OiBzdHJpbmdcbiAgKSB7fVxufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqIENsYXNzIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgYSBxdWVyeVxuICovXG5leHBvcnQgY2xhc3MgU2VhcmNoU3RhdGUge1xuICBwdWJsaWMgY291bnQ6IHt2YWx1ZTogbnVtYmVyLCByZWxhdGlvbj86IHN0cmluZ307XG4gIHB1YmxpYyBhZ2dyZWdhdGlvbnM7XG4gIHB1YmxpYyBsYXN0Q2hhbmdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9ucyA9IHtcbiAgICAgIHR5cGU6IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCksXG4gICAgICBjb250ZXh0VHlwZTogbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSxcbiAgICAgIGNyZWF0ZWQ6IFtdLFxuICAgICAgbW9kaWZpZWQ6IFtdLFxuICAgICAgbWltZXR5cGVncm91cDogW10sXG4gICAgICBmaWxlc2l6ZTogW11cbiAgICB9O1xuICB9XG5cbiAgZ2V0IHRvdGFsQ291bnQoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5hZ2dyZWdhdGlvbnMudHlwZS52YWx1ZXMoKSkucmVkdWNlKChhY2M6IG51bWJlciwgY3VyOiBudW1iZXIpID0+IGFjYyArIGN1ciwgMCkgYXMgbnVtYmVyO1xuICB9XG5cbiAgZ2V0IGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuICEodGhpcy5jb3VudCAmJiB0aGlzLmNvdW50LnZhbHVlKTtcbiAgfVxuXG4gIGFkZEFnZ3JlZ2F0aW9ucyh0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCBhZ2c/KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiY29udGV4dHR5cGVcIjoge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5jb250ZXh0VHlwZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5UWVBFOiB7XG4gICAgICAgIHRoaXMuYWdncmVnYXRpb25zLnR5cGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuQ1JFQVRFRDoge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5jcmVhdGVkLnB1c2goe1xuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1PRElGSUVEOiB7XG4gICAgICAgIHRoaXMuYWdncmVnYXRpb25zLm1vZGlmaWVkLnB1c2goe1xuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1JTUVUWVBFR1JPVVA6IHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGlvbnMubWltZXR5cGVncm91cC5wdXNoKHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5GSUxFU0laRToge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5maWxlc2l6ZS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgZnJvbTogYWdnLmZyb20sXG4gICAgICAgICAgdG86IGFnZy50byB8fCBJbmZpbml0eSxcbiAgICAgICAgICBsYWJlbDoga2V5LnJlcGxhY2UoXCJndFwiLCBcIj4gXCIpLnJlcGxhY2UoXCJsdFwiLCBcIjwgXCIpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAaWdub3JlXG4gKiBDcmVhdGVzIHRoZSBNb2RlbCBvZiBTZWFyY2ggUmVzdWx0c1xuICovXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0IHtcbiAgcHVibGljIGNvdW50OiB7dmFsdWU6IG51bWJlciwgcmVsYXRpb24/OiBzdHJpbmd9O1xuICBwdWJsaWMgc3VnZ2VzdHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgaGl0czogYW55W107XG4gIHB1YmxpYyB0eXBlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZmllbGRzOiBGaWVsZERlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2VhcmNoRmlsdGVyIHtcbiAgLyoqXG4gICAqIGF2YWlsYWJsZSBvcGVyYXRvcnMgZm9yIGEgc2VhcmNoIGZpbHRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBPUEVSQVRPUiA9IHtcbiAgICAvKiogZXF1YWwgKi9cbiAgICBFUVVBTDogXCJlcVwiLFxuICAgIC8qKiBtYXRjaCAoZm9yIHN0cmluZyB3aXRoIGNsYXNzaWZpY2F0aW9uIFwicGF0aDY2NjZcIikgKi9cbiAgICBNQVRDSDogXCJtYXRjaFwiLFxuICAgIC8qKiBtYXRjaCBhdCBsZWFzdCBvbmUgb2YgdGhlIHByb3ZpZGVkIHZhbHVlcyAodmFsdWUgaGFzIHRvIGJlIGFuIGFycmF5KSAgKi9cbiAgICBJTjogXCJpblwiLFxuICAgIC8qKiBncmVhdGVyIHRoYW4gKi9cbiAgICBHUkVBVEVSX1RIQU46IFwiZ3RcIixcbiAgICAvKiogZ3JlYXRlciB0aGFuIG9yIGVxdWFsICovXG4gICAgR1JFQVRFUl9PUl9FUVVBTDogXCJndGVcIiwgLy9cbiAgICBMRVNTX1RIQU46IFwibHRcIiwgLy8gbGVzcyB0aGFuXG4gICAgTEVTU19PUl9FUVVBTDogXCJsdGVcIiwgLy8gbGVzcyB0aGFuIG9yIGVxdWFsXG4gICAgSU5URVJWQUw6IFwiZ3RsdFwiLCAvLyBpbnRlcnZhbFxuICAgIElOVEVSVkFMX0lOQ0xVREVfQk9USDogXCJndGVsdGVcIiwgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0IGFuZCByaWdodFxuICAgIElOVEVSVkFMX0lOQ0xVREVfVE86IFwiZ3RsdGVcIiwgLy8gaW50ZXJ2YWwgaW5jbHVkZSByaWdodFxuICAgIElOVEVSVkFMX0lOQ0xVREVfRlJPTTogXCJndGVsdFwiLCAvLyBpbnRlcnZhbCBpbmNsdWRlIGxlZnRcbiAgICBSQU5HRTogXCJyZ1wiIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZvciBjcmVhdGluZyBhIG5ldyBTZWFyY2hGaWx0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGZpZWxkIHRoaXMgZmlsdGVyIHNob3VsZCBhcHBseSB0by5cbiAgICogQHBhcmFtIG9wZXJhdG9yIE9wZXJhdG9yIGluZGljYXRpbmcgaG93IHRvIGhhbmRsZSB0aGUgZmlsdGVycyB2YWx1ZShzKS4gU2VlIFNlYXJjaEZpbHRlci5PUEVSQVRPUiBmb3IgYXZhaWxhYmxlIG9wZXJhdG9ycy5cbiAgICogQHBhcmFtIGZpcnN0VmFsdWUgVGhlIGZpbHRlcnMgdmFsdWVcbiAgICogQHBhcmFtIHNlY29uZFZhbHVlIE9wdGlvbmFsIHNlY29uZCB2YWx1ZSBmb3IgZmlsdGVycyB0aGF0IGZvciBleGFtcGxlIGRlZmluZSByYW5nZXMgb2YgdmFsdWVzXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1EYXRlIEZsYWcgdG8gdHJhbnNmb3JtIGRhdGUgaG91cnMgYW5kIG1pbnV0ZXMgYmFzZWQgb24gb3BlcmF0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIHB1YmxpYyBvcGVyYXRvcjogc3RyaW5nLFxuICAgIHB1YmxpYyBmaXJzdFZhbHVlOiBhbnksXG4gICAgcHVibGljIHNlY29uZFZhbHVlPzogYW55LFxuICAgIHB1YmxpYyB0cmFuc2Zvcm1EYXRlPzoge3RpbWU/OiBib29sZWFuOyB0aW1lem9uZT86IGJvb2xlYW59XG4gICkge31cblxuICBmb3JtYXREYXRlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1EYXRlICYmIHZhbHVlXG4gICAgICA/IHRoaXMudHJhbnNmb3JtRGF0ZS50aW1lem9uZVxuICAgICAgICA/IG5ldyBEYXRlUGlwZShcImVuXCIpLnRyYW5zZm9ybSh2YWx1ZSwgXCJ5eXl5LU1NLWRkVFpcIilcbiAgICAgICAgOiB0aGlzLnRyYW5zZm9ybURhdGUudGltZVxuICAgICAgICAgID8gbmV3IERhdGUodmFsdWUpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTYpICsgXCJaXCJcbiAgICAgICAgICA6IG5ldyBEYXRlUGlwZShcImVuXCIpLnRyYW5zZm9ybSh2YWx1ZSwgXCJ5eXl5LU1NLWRkXCIpXG4gICAgICA6IHZhbHVlO1xuICB9XG5cbiAgdG9RdWVyeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbzogdGhpcy5vcGVyYXRvcixcbiAgICAgIHYxOiB0aGlzLmZvcm1hdERhdGUodGhpcy5maXJzdFZhbHVlKSxcbiAgICAgIC4uLih0aGlzLnNlY29uZFZhbHVlICYmIHt2MjogdGhpcy5mb3JtYXREYXRlKHRoaXMuc2Vjb25kVmFsdWUpfSlcbiAgICB9O1xuICB9XG5cbiAgdG9EYXRlVGltZVF1ZXJ5KCkge1xuICAgIGlmICh0aGlzLnRyYW5zZm9ybURhdGUgJiYgdGhpcy50cmFuc2Zvcm1EYXRlLnRpbWV6b25lICYmIHRoaXMuZmlyc3RWYWx1ZSkge1xuICAgICAgbGV0IGZpcnN0VmFsdWUgPSB0aGlzLmZpcnN0VmFsdWU7XG4gICAgICBsZXQgc2Vjb25kVmFsdWUgPSB0aGlzLnNlY29uZFZhbHVlO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IG5ldyBEYXRlKHNlY29uZFZhbHVlIHx8IGZpcnN0VmFsdWUpO1xuICAgICAgZW5kRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgaWYgKHRoaXMub3BlcmF0b3IgPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMKSB7XG4gICAgICAgIGZpcnN0VmFsdWUgPSBlbmREYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShmaXJzdFZhbHVlKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMub3BlcmF0b3IgPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX1RIQU4gfHxcbiAgICAgICAgICB0aGlzLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3RhcnREYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhcnREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIGZpcnN0VmFsdWUgPSBzdGFydERhdGUudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOVEVSVkFMX0lOQ0xVREVfQk9USCB8fFxuICAgICAgICB0aGlzLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUxcbiAgICAgICkge1xuICAgICAgICBzZWNvbmRWYWx1ZSA9IGVuZERhdGUudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG86XG4gICAgICAgICAgdGhpcy5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMXG4gICAgICAgICAgICA/IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTlRFUlZBTF9JTkNMVURFX0JPVEhcbiAgICAgICAgICAgIDogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgdjE6IGZpcnN0VmFsdWUsXG4gICAgICAgIC4uLihzZWNvbmRWYWx1ZSAmJiB7djI6IHNlY29uZFZhbHVlfSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnRvUXVlcnkoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbWF0Y2goXG4gICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICBvcGVyYXRvcjogc3RyaW5nLFxuICAgIGZpcnN0VmFsdWU6IGFueSxcbiAgICBzZWNvbmRWYWx1ZT86IGFueVxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkgJiZcbiAgICAgIHRoaXMub3BlcmF0b3IgPT09IG9wZXJhdG9yICYmXG4gICAgICB0aGlzLnNlY29uZFZhbHVlID09PSBzZWNvbmRWYWx1ZSAmJlxuICAgICAgKHRoaXMuZmlyc3RWYWx1ZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgID8gISF0aGlzLmZpcnN0VmFsdWUuZmluZCh2ID0+IHYgPT09IGZpcnN0VmFsdWUpXG4gICAgICAgIDogdGhpcy5maXJzdFZhbHVlID09PSBmaXJzdFZhbHVlKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
500
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXF1ZXJ5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2gtcXVlcnkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLDJEQUEyRDtBQUUzRCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHlCQUFXLENBQUE7SUFDWCxpQ0FBbUIsQ0FBQTtJQUNuQixzQ0FBd0IsQ0FBQTtBQUMxQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUF1SXRCO1FBbkRBOztXQUVHO1FBQ0ksVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBaUIsRUFBRSxDQUFDO1FBQzdDOztXQUVHO1FBQ0ksWUFBTyxHQUFtQixFQUFFLENBQUM7UUFLcEM7O1dBRUc7UUFDSSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSzFCOztXQUVHO1FBQ0ksZUFBVSxHQUFXLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztRQUM1RDs7V0FFRztRQUNJLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUN0Qzs7V0FFRztRQUNJLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUMvQjs7V0FFRztRQUNJLFVBQUssR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUV2QyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixnQkFBVyxHQUFZLEtBQUssQ0FBQztJQVNyQixDQUFDO0lBRWhCOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBZ0I7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxJQUFnQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsSUFBZ0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxTQUFTLENBQUMsTUFBb0I7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0wsMkRBQTJEO1lBQzNELDRDQUE0QztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLGtCQUEwQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE1BQW9CLEVBQUUsUUFBa0I7UUFDMUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMzQjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxZQUFvQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQW9CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGFBQWEsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLE9BQWdCO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzdEO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUMsZ0JBQTBCO1FBQzVDLHVHQUF1RztRQUN2RywwRkFBMEY7UUFDMUYsTUFBTSxTQUFTLEdBQVEsRUFBRSxDQUFDO1FBRTFCLG1CQUFtQjtRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ25DLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuQyxDQUFDO1NBQ0g7UUFFRCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QyxTQUFTLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUVELFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQixTQUFTLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDNUI7UUFDRCxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQzVCO1FBQ0QsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3ZCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDckMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDbEM7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUNyQztZQUVELFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRTlGLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3ZELFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDaEQ7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFzQixFQUFFLEVBQUU7b0JBQ2xELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRzt3QkFDekMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO3FCQUN4QixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDcEQ7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDbEQ7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCx3RkFBd0Y7SUFDaEYsWUFBWTtRQUNsQixPQUFPLENBQ0wsSUFBSSxDQUFDLFVBQVU7WUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDWixJQUFJLENBQUMsT0FBTztZQUNaLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0I7WUFDckIsSUFBSSxDQUFDLFdBQVc7WUFDaEIsSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsbUJBQW1CO1lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7O0FBL1VEOztHQUVHO0FBQ1csdUJBQVcsR0FBRztJQUMxQixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLGFBQWEsRUFBRSxlQUFlO0NBQy9CLENBQUM7QUFFRjs7R0FFRztBQUNXLCtCQUFtQixHQUFHO0lBQ2xDLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLFdBQVc7SUFDdEIsU0FBUyxFQUFFLFVBQVU7SUFDckIsU0FBUyxFQUFFLFVBQVU7SUFDckIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsU0FBUyxFQUFFLFVBQVU7SUFDckIsU0FBUyxFQUFFLFVBQVU7Q0FDdEIsQ0FBQztBQUVGOztHQUVHO0FBQ1csaUNBQXFCLEdBQUc7SUFDcEMsR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxZQUFZLEVBQUUsY0FBYztJQUM1QixHQUFHLEVBQUUsS0FBSztJQUNWLEtBQUssRUFBRSxPQUFPO0lBQ2QsVUFBVSxFQUFFLFlBQVk7SUFDeEIsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsR0FBRyxFQUFFLEtBQUs7Q0FDWCxDQUFDO0FBRUY7O0dBRUc7QUFDVyw2QkFBaUIsR0FBRztJQUNoQyxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7QUFFRix5REFBeUQ7QUFDM0Msd0JBQVksR0FBRztJQUMzQixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLGtCQUFrQixFQUFFLDBCQUEwQjtJQUM5QyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLGNBQWMsRUFBRSxzQkFBc0I7SUFDdEMsWUFBWSxFQUFFLG9CQUFvQjtJQUNsQyxjQUFjLEVBQUUsc0JBQXNCO0NBQ3ZDLENBQUM7QUFDRjs7R0FFRztBQUNXLCtCQUFtQixHQUFHLE1BQU0sQ0FBQztBQUMzQzs7R0FFRztBQUNXLGdDQUFvQixHQUFHLEtBQUssQ0FBQztBQXdRN0M7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFDUyxLQUFhLEVBQ2IsS0FBYSxFQUNiLE9BQWdCO1FBRmhCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUN0QixDQUFDO0NBQ0w7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNTLFdBQWtCLEVBQUUsRUFDcEIsWUFBbUIsRUFBRSxFQUNyQixhQUFvQixFQUFFLEVBQ3RCLFNBQWdCLEVBQUUsRUFDbEIsYUFBK0MsRUFBRSxFQUNqRCxJQUFhO1FBTGIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUF1QztRQUNqRCxTQUFJLEdBQUosSUFBSSxDQUFTO0lBQ25CLENBQUM7Q0FDTDtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3RCOztPQUVHO0lBQ0g7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBa0I7WUFDL0IsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFrQjtZQUN0QyxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxFQUFFO1lBQ1osYUFBYSxFQUFFLEVBQUU7WUFDakIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFXLENBQUM7SUFDbEgsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsS0FBYSxFQUFFLEdBQUk7UUFDNUQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGFBQWEsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07YUFDUDtZQUNELEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUM3QixHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDLENBQUM7Z0JBQ0gsTUFBTTthQUNQO1lBQ0QsS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQzlCLEdBQUcsRUFBRSxHQUFHO29CQUNSLEtBQUssRUFBRSxLQUFLO2lCQUNiLENBQUMsQ0FBQztnQkFDSCxNQUFNO2FBQ1A7WUFDRCxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztvQkFDbkMsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsQ0FBQyxDQUFDO2dCQUNILE1BQU07YUFDUDtZQUNELEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUM5QixHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksUUFBUTtvQkFDdEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO2lCQUNuRCxDQUFDLENBQUM7Z0JBQ0gsTUFBTTthQUNQO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQU92QixnQkFBZSxDQUFDO0NBQ2pCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUF3QnZCOzs7Ozs7OztPQVFHO0lBQ0gsWUFDUyxRQUFnQixFQUNoQixRQUFnQixFQUNoQixVQUFlLEVBQ2YsV0FBaUIsRUFDakIsYUFBb0Q7UUFKcEQsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBTTtRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUM7SUFDMUQsQ0FBQztJQUVKLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7Z0JBQzNCLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSTtvQkFDdkIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRztvQkFDbEQsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTztRQUNMLHVCQUNFLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQ2pDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLEVBQ2hFO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN4RSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2pDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUN6RCxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNMLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN2QyxJQUNFLElBQUksQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZO29CQUNwRCxJQUFJLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUNoRDtvQkFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUNyQztxQkFBTTtvQkFDTCxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNoQztnQkFDRCxVQUFVLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3RDO1lBQ0QsSUFDRSxJQUFJLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMscUJBQXFCO2dCQUM3RCxJQUFJLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUM3QztnQkFDQSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsdUJBQ0UsQ0FBQyxFQUNDLElBQUksQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLO29CQUMzQyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUI7b0JBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUNuQixFQUFFLEVBQUUsVUFBVSxJQUNYLENBQUMsV0FBVyxJQUFJLEVBQUMsRUFBRSxFQUFFLFdBQVcsRUFBQyxDQUFDLEVBQ3JDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUNILFFBQWdCLEVBQ2hCLFFBQWdCLEVBQ2hCLFVBQWUsRUFDZixXQUFpQjtRQUVqQixPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRO1lBQzFCLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUMxQixJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVc7WUFDaEMsQ0FBQyxJQUFJLENBQUMsVUFBVSxZQUFZLEtBQUs7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDO2dCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FDcEMsQ0FBQztJQUNKLENBQUM7O0FBbEhEOztHQUVHO0FBQ1cscUJBQVEsR0FBRztJQUN2QixZQUFZO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFDWCx3REFBd0Q7SUFDeEQsS0FBSyxFQUFFLE9BQU87SUFDZCw0RUFBNEU7SUFDNUUsRUFBRSxFQUFFLElBQUk7SUFDUixtQkFBbUI7SUFDbkIsWUFBWSxFQUFFLElBQUk7SUFDbEIsNEJBQTRCO0lBQzVCLGdCQUFnQixFQUFFLEtBQUs7SUFDdkIsU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsS0FBSztJQUNwQixRQUFRLEVBQUUsTUFBTTtJQUNoQixxQkFBcUIsRUFBRSxRQUFRO0lBQy9CLG1CQUFtQixFQUFFLE9BQU87SUFDNUIscUJBQXFCLEVBQUUsT0FBTztJQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtDQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtyZWR1Y2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7T2JqZWN0VHlwZX0gZnJvbSBcIi4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsXCI7XG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbi8vZXhwb3J0IHR5cGUgUXVlcnlTY29wZSA9ICdpbmRleGRhdGUnIHwgJ2NvbnRlbnQnIHwgJ2FsbCc7XG5cbmV4cG9ydCBlbnVtIFF1ZXJ5U2NvcGUge1xuICBBTEwgPSAnYWxsJyxcbiAgQ09OVEVOVCA9ICdjb250ZW50JyxcbiAgSU5ERVhfREFUQSA9ICdpbmRleGRhdGEnXG59XG5cbi8qKlxuICogVGhlIFNlYXJjaFF1ZXJ5IENsYXNzXG4gKlxuICogU2VlIHtAbGluayBTZWFyY2hTZXJ2aWNlfSBmb3IgVXNhZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIFNlYXJjaFF1ZXJ5IHtcbiAgLyoqXG4gICAqIEJhc2UgUGFyYW1ldGVycyBmb3IgYSBTZWFyY2ggUXVlcnlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQkFTRV9QQVJBTVMgPSB7XG4gICAgVFlQRTogXCJ0eXBlXCIsXG4gICAgQ1JFQVRPUjogXCJjcmVhdG9yXCIsXG4gICAgQ1JFQVRFRDogXCJjcmVhdGVkXCIsXG4gICAgTU9ESUZJRVI6IFwibW9kaWZpZXJcIixcbiAgICBNT0RJRklFRDogXCJtb2RpZmllZFwiLFxuICAgIEZJTEVTSVpFOiBcImZpbGVzaXplXCIsXG4gICAgRklMRU5BTUU6IFwiZmlsZW5hbWVcIixcbiAgICBNSU1FVFlQRUdST1VQOiBcIm1pbWV0eXBlZ3JvdXBcIlxuICB9O1xuXG4gIC8qKlxuICAgKiBUaW1lIHBlcmlvZCBidWNrZXRzIHByb3BlcnR5IG5hbWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFRJTUVfUEVSSU9EX0JVQ0tFVFMgPSB7XG4gICAgVE9EQVk6IFwidG9kYXlcIixcbiAgICBZRVNURVJEQVk6IFwieWVzdGVyZGF5XCIsXG4gICAgVEhJU19XRUVLOiBcInRoaXN3ZWVrXCIsXG4gICAgTEFTVF9XRUVLOiBcImxhc3R3ZWVrXCIsXG4gICAgVEhJU19NT05USDogXCJ0aGlzbW9udGhcIixcbiAgICBMQVNUX01PTlRIOiBcImxhc3Rtb250aFwiLFxuICAgIFRISVNfWUVBUjogXCJ0aGlzeWVhclwiLFxuICAgIExBU1RfWUVBUjogXCJsYXN0eWVhclwiXG4gIH07XG5cbiAgLyoqXG4gICAqIG1pbWV0eXBlIGJ1Y2tldHMgcHJvcGVydHkgbmFtZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgTUlNRVRZUEVHUk9VUF9CVUNLRVRTID0ge1xuICAgIFBERjogXCJwZGZcIixcbiAgICBNQUlMOiBcIm1haWxcIixcbiAgICBXT1JEOiBcIndvcmRcIixcbiAgICBJTUFHRTogXCJpbWFnZVwiLFxuICAgIE9DVEVUX1NUUkVBTTogXCJvY3RldC1zdHJlYW1cIixcbiAgICBUWFQ6IFwidHh0XCIsXG4gICAgRVhDRUw6IFwiZXhjZWxcIixcbiAgICBQT1dFUlBPSU5UOiBcInBvd2VycG9pbnRcIixcbiAgICBWSURFTzogXCJ2aWRlb1wiLFxuICAgIEhUTUw6IFwiaHRtbFwiLFxuICAgIEFVRElPOiBcImF1ZGlvXCIsXG4gICAgWklQOiBcInppcFwiXG4gIH07XG5cbiAgLyoqXG4gICAqIGZpbGVzaXplIGJ1Y2tldHMgcHJvcGVydHkgbmFtZXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRklMRV9TSVpFX0JVQ0tFVFMgPSB7XG4gICAgTFQxTUI6IFwibHQxTUJcIixcbiAgICBMVDEwTUI6IFwibHQxME1CXCIsXG4gICAgTFQxMDBNQjogXCJsdDEwME1CXCIsXG4gICAgR1QxMDBNQjogXCJndDEwME1CXCJcbiAgfTtcblxuICAvLyBsaXN0IG9mIHRoaW5ncyB0aGF0IG1heSBoYXZlIGNoYW5nZWQgdGhlIGN1cnJlbnQgcXVlcnlcbiAgcHVibGljIHN0YXRpYyBVUERBVEVfQ0FVU0UgPSB7XG4gICAgVE9HR0xFRF9UWVBFOiBcImNhdXNlLnR5cGUudG9nZ2xlZFwiLFxuICAgIFRPR0dMRURfRVhQRVJUTU9ERTogXCJjYXVzZS5leHBlcnRtb2RlLnRvZ2dsZWRcIixcbiAgICBURVJNX1NFVDogXCJjYXVzZS50ZXJtLnNldFwiLFxuICAgIFRZUEVTX1NFVDogXCJjYXVzZS50eXBlcy5zZXRcIixcbiAgICBDT05URVhUX0ZPTERFUl9TRVQ6IFwiY2F1c2UuY29udGV4dGZvbGRlci5zZXRcIixcbiAgICBUT0dHTEVEX0ZJTFRFUjogXCJjYXVzZS5maWx0ZXIudG9nZ2xlZFwiLFxuICAgIEFEREVEX0ZJTFRFUjogXCJjYXVzZS5maWx0ZXIuYWRkZWRcIixcbiAgICBSRU1PVkVEX0ZJTFRFUjogXCJjYXVzZS5maWx0ZXIucmVtb3ZlZFwiLFxuICB9O1xuICAvKipcbiAgICogRGV0YXVsdCBTZWFyY2ggbW9kZSBJbmRleFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1NFQVJDSF9NT0RFID0gXCJpZHhzXCI7XG4gIC8qKlxuICAgKiBTZWFyY2ggbW9kZSBmb3IgRnVsbCB0ZXN0IFNlYXJjaFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBGVUxMVEVYVF9TRUFSQ0hfTU9ERSA9IFwiZnRzXCI7XG4gIC8qKlxuICAgKiBmdWxsdGV4dCBzZWFyY2ggdGVybVxuICAgKi9cbiAgcHVibGljIHRlcm06IHN0cmluZztcbiAgLyoqXG4gICAqIEFycmF5IG9mIGZpZWxkcyB0byByZXF1ZXN0IGZyb20gdGhlIHNlYXJjaCBzZXJ2aWNlLCBsZWF2aW5nIHRoaXMgYmxhbmsgd2lsbCByZXR1cm4gdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIHJlc3VsdCBmaWVsZCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZmllbGRzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIExpc3Qgb2Ygb2JqZWN0IHR5cGVzIHRvIGJlIGZldGNoZWQgYnkgdGhlIHF1ZXJ5LiBMZWF2aW5nIHRoaXMgYmxhbmsgd2lsbCByZXR1cm4gcmVzdWx0cyBmcm9tIGFueSB0eXBlXG4gICAqL1xuICBwdWJsaWMgdHlwZXM6IE9iamVjdFR5cGVbXSA9IFtdO1xuICAvKipcbiAgICogTGlzdCBvZiBjb250ZXh0IGZvbGRlciB0eXBlc1xuICAgKi9cbiAgcHVibGljIGNvbnRleHRGb2xkZXJUeXBlczogT2JqZWN0VHlwZVtdID0gW107XG4gIC8qKlxuICAgKiBMaXN0IG9mIGZpbHRlcnMgdG8gZGVmaW5lIHRoZSBxdWVyeVxuICAgKi9cbiAgcHVibGljIGZpbHRlcnM6IFNlYXJjaEZpbHRlcltdID0gW107XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byByZXRyaWV2ZSBzdWdnZXN0aW9uc1xuICAgKi9cbiAgcHVibGljIHN1Z2dlc3Q6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgdGVybSBpcyBhbiBleHBlcnQgbW9kZSBxdWVyeVxuICAgKi9cbiAgcHVibGljIGV4cGVydE1vZGUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSBzY29wZSBvZiB0aGUgcXVlcnlcbiAgICovXG4gIHB1YmxpYyBzY29wZTogUXVlcnlTY29wZTtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggbW9kZSB0byBiZSB1c2VkIChTZWFyY2hRdWVyeS5ERUZBVUxUX1NFQVJDSF9NT0RFIG9yIFNlYXJjaFF1ZXJ5LkZVTExURVhUX1NFQVJDSF9NT0RFKVxuICAgKi9cbiAgcHVibGljIHNlYXJjaE1vZGU6IHN0cmluZyA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIG9wdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgcXVlcnlcbiAgICovXG4gIHB1YmxpYyBzb3J0T3B0aW9uczogU29ydE9wdGlvbltdID0gW107XG4gIC8qKlxuICAgKiBSZXNvbHZlIHJlZmVyZW5jZXMgd2l0aCB0aGVpciB0aXRsZSBpbnN0ZWFkIG9mIHRoZWlyIGFjdHVhbCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHJlc29sdmVSZWZlcmVuY2UgPSB0cnVlO1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IHF1ZXJ5XG4gICAqL1xuICBwdWJsaWMgc3RhdGU6IFNlYXJjaFN0YXRlID0gbmV3IFNlYXJjaFN0YXRlKCk7XG5cbiAgcHVibGljIGhpZ2hsaWdodGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgd2l0aENvbnRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgbmFtZT86IHN0cmluZztcblxuICAvLyBJbmRpY2F0b3Igd2hhdCBjYXVzZWQgdGhlIHVwZGF0ZSBvZiBhIFNlYXJjaFF1ZXJ5IG9iamVjdC5cbiAgLy8gVXNlZnVsbCBmb3IgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZWQgdG8gYSBxdWVyeSwgYW5kIG5lZWQgdG9cbiAgLy8gdHJhY2sgdGhlIGtpbmQgb2YgY2hhbmdlcyBtYWRlXG4gIF9fdXBkYXRlQ2F1c2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGFyZ2V0IHR5cGUgdG8gdGhlIHF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIE9iamVjdCB0eXBlIHRvIGJlIGFkZGVkXG4gICAqL1xuICBwdWJsaWMgYWRkVHlwZSh0eXBlOiBPYmplY3RUeXBlKSB7XG4gICAgaWYgKCF0aGlzLnR5cGVzLmZpbmQodCA9PiB0LmlkID09PSB0eXBlLmlkKSkge1xuICAgICAgdGhpcy50eXBlcy5wdXNoKHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgdHlwZSBmcm9tIHRoZSB0YXJnZXQgdHlwZXMgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGUgdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcHVibGljIHJlbW92ZVR5cGUodHlwZTogT2JqZWN0VHlwZSkge1xuICAgIHRoaXMudHlwZXMgPSB0aGlzLnR5cGVzLmZpbHRlcih0ID0+IHQuaWQgIT09IHR5cGUuaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb3IgcmVtb3ZlcyB0aGUgZ2l2ZW4gdHlwZSBiYXNlZCBvbiB0aGUgY3VycmVudCBzZXR0aW5nc1xuICAgKlxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGUgdG8gYmUgdG9nZ2xlZFxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVR5cGUodHlwZTogT2JqZWN0VHlwZSkge1xuICAgIGlmICh0aGlzLnR5cGVzLmZpbmQodCA9PiB0LmlkID09PSB0eXBlLmlkKSkge1xuICAgICAgdGhpcy5yZW1vdmVUeXBlKHR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnR5cGVzLnB1c2godHlwZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgZmlsdGVyIHRvIHRoZSBxdWVyeS4gSWYgdGhlcmUgYWxyZWFkeSBpcyBhIGZpbHRlciBzZXQgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSwgaXQgd2lsbCBiZSBvdmVycmlkZGVuLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gYmUgYWRkZWRcbiAgICovXG4gIHB1YmxpYyBhZGRGaWx0ZXIoZmlsdGVyOiBTZWFyY2hGaWx0ZXIpIHtcbiAgICBpZiAoIWZpbHRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZ2V0RmlsdGVyKGZpbHRlci5wcm9wZXJ0eSkpIHtcbiAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZXJlIGFscmVhZHkgaXMgYSBmaWx0ZXIgc2V0IGZvciB0aGUgdGFyZ2V0IHByb3BlcnR5XG4gICAgICAvLyB3ZSdsbCBqdXN0IG92ZXJyaWRlIGl0IHdpdGggdGhlIG5ldyB2YWx1ZVxuICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIoZmlsdGVyLnByb3BlcnR5KTtcbiAgICAgIHRoaXMuZmlsdGVycy5wdXNoKGZpbHRlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBmaWx0ZXIgZnJvbSB0aGUgcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXJQcm9wZXJ0eU5hbWUgVGhlIGZpbHRlciAoaXRzIHByb3BlcnR5IG5hbWUpIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVGaWx0ZXIoZmlsdGVyUHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKGYgPT4gZi5wcm9wZXJ0eSAhPT0gZmlsdGVyUHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG9yIHJlbW92ZXMgdGhlIGdpdmVuIGZpbHRlciBiYXNlZCBvbiB0aGUgY3VycmVudCBzZXR0aW5nc1xuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gYmUgdG9nZ2xlZFxuICAgKi9cbiAgcHVibGljIHRvZ2dsZUZpbHRlcihmaWx0ZXI6IFNlYXJjaEZpbHRlciwgb3ZlcnJpZGU/OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZ2V0RmlsdGVyKGZpbHRlci5wcm9wZXJ0eSkpIHtcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKGZpbHRlci5wcm9wZXJ0eSk7XG4gICAgICBpZiAob3ZlcnJpZGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJzLnB1c2goZmlsdGVyKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgZmlsdGVyIGJ5IGl0cyBwcm9wZXJ0eSBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIFRoZSBmaWx0ZXJzIHByb3BlcnR5IG5hbWUgKHFuYW1lIG9mIGZvcm0gZWxlbWVudClcbiAgICogQHJldHVybnMgU2VhcmNoIEZpbHRlciBPYmplY3RcbiAgICovXG4gIHB1YmxpYyBnZXRGaWx0ZXIocHJvcGVydHlOYW1lOiBzdHJpbmcpOiBTZWFyY2hGaWx0ZXIge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZmluZChmID0+IGYucHJvcGVydHkgPT09IHByb3BlcnR5TmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFibGVGaWx0ZXJzKHByb3BlcnR5TmFtZTogc3RyaW5nKTogU2VhcmNoRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnMuZmlsdGVyKGYgPT4gZi5wcm9wZXJ0eS5zdGFydHNXaXRoKHByb3BlcnR5TmFtZSArICcuJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZGluZyBuZXcgU29ydCBPcHRpb25zXG4gICAqIFNvcnQgT3B0aW9ucyBhcmUgb25seSBhZGRlZCBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAqXG4gICAqIEBwYXJhbSBuYW1lXG4gICAqIEBwYXJhbSBvcmRlclxuICAgKiBAcGFyYW0gbWlzc2luZ1xuICAgKi9cbiAgcHVibGljIGFkZFNvcnRPcHRpb24obmFtZTogc3RyaW5nLCBvcmRlcjogc3RyaW5nLCBtaXNzaW5nPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnNvcnRPcHRpb25zLmZpbmQocyA9PiBzLmZpZWxkID09PSBuYW1lKSkge1xuICAgICAgdGhpcy5zb3J0T3B0aW9ucy5wdXNoKG5ldyBTb3J0T3B0aW9uKG5hbWUsIG9yZGVyLCBtaXNzaW5nKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlU29ydE9wdGlvbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRPcHRpb25zID0gdGhpcy5zb3J0T3B0aW9ucy5maWx0ZXIocyA9PiBzLmZpZWxkICE9PSBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIHF1ZXJ5IEpTT04gZnJvbSB0aGUgY3VycmVudCBTZWFyY2hRdWVyeSB0aGF0IGNhbiBiZSBzZW5kIHRvIHRoZSBzZWFyY2ggc2VydmljZS5cbiAgICpcbiAgICogQHBhcmFtIHJlc29sdmVSZWZlcmVuY2UgaW4gY2FzZSBvZiBjc3YgZXhwb3J0IHRoZSByZXNvbHZpbmcgb2YgcmVmZXJlbmNlcyBpcyBzZXQgYnkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGdldFF1ZXJ5SnNvbihyZXNvbHZlUmVmZXJlbmNlPzogYm9vbGVhbikge1xuICAgIC8vIENvbnZlcnQgdGhlIGN1cnJlbnQgcXVlcnkgb2JqZWN0IHRvIGEgcXVlcnkgSlNPTiB0aGF0IGNhbiBiZSBjb25zdW1lZCBieSB0aGUgc2VhcmNoIHNlcnZpY2UgYmFja2VuZC5cbiAgICAvLyBUbyBrZWVwIGl0IHNob3J0LCB3ZSdsbCBvbmx5IGFkZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIHNldCBhbmQgZGlmZmVyIGZyb20gZGVmYXVsdCB2YWx1ZXNcbiAgICBjb25zdCBxdWVyeUpzb246IGFueSA9IHt9O1xuXG4gICAgLy8gYWRkIHR5cGUgZmlsdGVyc1xuICAgIGlmICh0aGlzLnR5cGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHF1ZXJ5SnNvbi50eXBlcyA9IHRoaXMudHlwZXMubWFwKHQgPT5cbiAgICAgICAgdHlwZW9mIHQgPT09IFwic3RyaW5nXCIgPyB0IDogdC5uYW1lXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGFkZCBjb250ZXh0IGZvbGRlciB0eXBlIGZpbHRlcnNcbiAgICBpZiAodGhpcy5jb250ZXh0Rm9sZGVyVHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgcXVlcnlKc29uLmNvbnRleHRmb2xkZXJ0eXBlcyA9IHRoaXMuY29udGV4dEZvbGRlclR5cGVzLm1hcCh0ID0+IHQubmFtZSk7XG4gICAgfVxuXG4gICAgLy8gZmlsdGVyc1xuICAgIGlmICh0aGlzLmZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgcXVlcnlKc29uLmZpbHRlcnMgPSB7fTtcbiAgICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBxdWVyeUpzb24uZmlsdGVyc1tmLnByb3BlcnR5XSA9IGYudG9RdWVyeSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnRlcm0pIHtcbiAgICAgIHF1ZXJ5SnNvbi50ZXJtID0gdGhpcy50ZXJtO1xuICAgIH1cbiAgICAvLyBzZWFyY2ggZmllbGRzXG4gICAgaWYgKHRoaXMuZmllbGRzKSB7XG4gICAgICBxdWVyeUpzb24uZmllbGRzID0gdGhpcy5maWVsZHM7XG4gICAgfVxuICAgIGlmICh0aGlzLm5hbWUpIHtcbiAgICAgIHF1ZXJ5SnNvbi5uYW1lID0gdGhpcy5uYW1lO1xuICAgIH1cbiAgICAvLyBhZGQgb3B0aW9ucyB3aGVuIHRoZXkgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVzXG4gICAgaWYgKHRoaXMuYXBwbHlPcHRpb25zKCkpIHtcbiAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zID0ge307XG4gICAgICBxdWVyeUpzb24ub3B0aW9ucy5zY29wZSA9IHRoaXMuc2NvcGU7XG4gICAgICBpZiAodGhpcy5zdWdnZXN0KSB7XG4gICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnN1Z2dlc3QgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZXhwZXJ0TW9kZSkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy5leHBlcnRtb2RlID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcXVlcnlKc29uLm9wdGlvbnMucmVzb2x2ZXJlZmVyZW5jZSA9IHJlc29sdmVSZWZlcmVuY2UgIT09IHVuZGVmaW5lZCA/IHJlc29sdmVSZWZlcmVuY2UgOiB0cnVlO1xuXG4gICAgICBpZiAodGhpcy5zZWFyY2hNb2RlICE9PSBTZWFyY2hRdWVyeS5ERUZBVUxUX1NFQVJDSF9NT0RFKSB7XG4gICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnNlYXJjaG1vZGUgPSB0aGlzLnNlYXJjaE1vZGU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zb3J0T3B0aW9ucyAmJiB0aGlzLnNvcnRPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy5zb3J0ID0ge307XG4gICAgICAgIHRoaXMuc29ydE9wdGlvbnMuZm9yRWFjaCgoc29ydE9wdGlvbjogU29ydE9wdGlvbikgPT4ge1xuICAgICAgICAgIHF1ZXJ5SnNvbi5vcHRpb25zLnNvcnRbc29ydE9wdGlvbi5maWVsZF0gPSB7XG4gICAgICAgICAgICBvcmRlcjogc29ydE9wdGlvbi5vcmRlclxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oaWdobGlnaHRpbmcpIHtcbiAgICAgICAgcXVlcnlKc29uLm9wdGlvbnMuaGlnaGxpZ2h0aW5nID0gdGhpcy5oaWdobGlnaHRpbmc7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy53aXRoQ29udGV4dCkge1xuICAgICAgICBxdWVyeUpzb24ub3B0aW9ucy53aXRoY29udGV4dCA9IHRoaXMud2l0aENvbnRleHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBxdWVyeUpzb247XG4gIH1cblxuICAvLyBkZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBxdWVyeSBzZW5kIHRvIHRoZSBzZWFyY2ggc2VydmljZSBzaG91bGQgY29udGFpbiBvcHRpb25zXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmV4cGVydE1vZGUgfHxcbiAgICAgICEhdGhpcy5zY29wZSB8fFxuICAgICAgdGhpcy5zdWdnZXN0IHx8XG4gICAgICB0aGlzLmhpZ2hsaWdodGluZyB8fFxuICAgICAgdGhpcy5yZXNvbHZlUmVmZXJlbmNlIHx8XG4gICAgICB0aGlzLndpdGhDb250ZXh0IHx8XG4gICAgICB0aGlzLnNlYXJjaE1vZGUgIT09IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREUgfHxcbiAgICAgIHRoaXMuc29ydE9wdGlvbnMubGVuZ3RoID4gMFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAaWdub3JlXG4gKiBDcmVhdGVzIHRoZSBNb2RlbCBvZiBTb3J0IE9wdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIFNvcnRPcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZmllbGQ6IHN0cmluZyxcbiAgICBwdWJsaWMgb3JkZXI6IHN0cmluZyxcbiAgICBwdWJsaWMgbWlzc2luZz86IHN0cmluZ1xuICApIHt9XG59XG5cbi8qKlxuICogQGlnbm9yZVxuICogQ3JlYXRlcyB0aGUgTW9kZWwgb2YgRmllbGQgRGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIEZpZWxkRGVmaW5pdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbGVtZW50czogYW55W10gPSBbXSxcbiAgICBwdWJsaWMgc29ydG9yZGVyOiBhbnlbXSA9IFtdLFxuICAgIHB1YmxpYyBncm91cG9yZGVyOiBhbnlbXSA9IFtdLFxuICAgIHB1YmxpYyBwaW5uZWQ6IGFueVtdID0gW10sXG4gICAgcHVibGljIGFsaWdubWVudHg6IHtxbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfVtdID0gW10sXG4gICAgcHVibGljIG1vZGU/OiBzdHJpbmdcbiAgKSB7fVxufVxuXG4vKipcbiAqIEBpZ25vcmVcbiAqIENsYXNzIHJlcHJlc2VudGluZyB0aGUgc3RhdGUgb2YgYSBxdWVyeVxuICovXG5leHBvcnQgY2xhc3MgU2VhcmNoU3RhdGUge1xuICBwdWJsaWMgY291bnQ6IHt2YWx1ZTogbnVtYmVyLCByZWxhdGlvbj86IHN0cmluZ307XG4gIHB1YmxpYyBhZ2dyZWdhdGlvbnM7XG4gIHB1YmxpYyBsYXN0Q2hhbmdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFnZ3JlZ2F0aW9ucyA9IHtcbiAgICAgIHR5cGU6IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCksXG4gICAgICBjb250ZXh0VHlwZTogbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSxcbiAgICAgIGNyZWF0ZWQ6IFtdLFxuICAgICAgbW9kaWZpZWQ6IFtdLFxuICAgICAgbWltZXR5cGVncm91cDogW10sXG4gICAgICBmaWxlc2l6ZTogW11cbiAgICB9O1xuICB9XG5cbiAgZ2V0IHRvdGFsQ291bnQoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5hZ2dyZWdhdGlvbnMudHlwZS52YWx1ZXMoKSkucmVkdWNlKChhY2M6IG51bWJlciwgY3VyOiBudW1iZXIpID0+IGFjYyArIGN1ciwgMCkgYXMgbnVtYmVyO1xuICB9XG5cbiAgZ2V0IGlzRW1wdHkoKSB7XG4gICAgcmV0dXJuICEodGhpcy5jb3VudCAmJiB0aGlzLmNvdW50LnZhbHVlKTtcbiAgfVxuXG4gIGFkZEFnZ3JlZ2F0aW9ucyh0eXBlOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCBhZ2c/KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiY29udGV4dHR5cGVcIjoge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5jb250ZXh0VHlwZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5UWVBFOiB7XG4gICAgICAgIHRoaXMuYWdncmVnYXRpb25zLnR5cGUuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMuQ1JFQVRFRDoge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5jcmVhdGVkLnB1c2goe1xuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1PRElGSUVEOiB7XG4gICAgICAgIHRoaXMuYWdncmVnYXRpb25zLm1vZGlmaWVkLnB1c2goe1xuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLk1JTUVUWVBFR1JPVVA6IHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGlvbnMubWltZXR5cGVncm91cC5wdXNoKHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5GSUxFU0laRToge1xuICAgICAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5maWxlc2l6ZS5wdXNoKHtcbiAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgZnJvbTogYWdnLmZyb20sXG4gICAgICAgICAgdG86IGFnZy50byB8fCBJbmZpbml0eSxcbiAgICAgICAgICBsYWJlbDoga2V5LnJlcGxhY2UoXCJndFwiLCBcIj4gXCIpLnJlcGxhY2UoXCJsdFwiLCBcIjwgXCIpXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAaWdub3JlXG4gKiBDcmVhdGVzIHRoZSBNb2RlbCBvZiBTZWFyY2ggUmVzdWx0c1xuICovXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0IHtcbiAgcHVibGljIGNvdW50OiB7dmFsdWU6IG51bWJlciwgcmVsYXRpb24/OiBzdHJpbmd9O1xuICBwdWJsaWMgc3VnZ2VzdHM6IHN0cmluZ1tdO1xuICBwdWJsaWMgaGl0czogYW55W107XG4gIHB1YmxpYyB0eXBlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgZmllbGRzOiBGaWVsZERlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2VhcmNoRmlsdGVyIHtcbiAgLyoqXG4gICAqIGF2YWlsYWJsZSBvcGVyYXRvcnMgZm9yIGEgc2VhcmNoIGZpbHRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBPUEVSQVRPUiA9IHtcbiAgICAvKiogZXF1YWwgKi9cbiAgICBFUVVBTDogXCJlcVwiLFxuICAgIC8qKiBtYXRjaCAoZm9yIHN0cmluZyB3aXRoIGNsYXNzaWZpY2F0aW9uIFwicGF0aDY2NjZcIikgKi9cbiAgICBNQVRDSDogXCJtYXRjaFwiLFxuICAgIC8qKiBtYXRjaCBhdCBsZWFzdCBvbmUgb2YgdGhlIHByb3ZpZGVkIHZhbHVlcyAodmFsdWUgaGFzIHRvIGJlIGFuIGFycmF5KSAgKi9cbiAgICBJTjogXCJpblwiLFxuICAgIC8qKiBncmVhdGVyIHRoYW4gKi9cbiAgICBHUkVBVEVSX1RIQU46IFwiZ3RcIixcbiAgICAvKiogZ3JlYXRlciB0aGFuIG9yIGVxdWFsICovXG4gICAgR1JFQVRFUl9PUl9FUVVBTDogXCJndGVcIiwgLy9cbiAgICBMRVNTX1RIQU46IFwibHRcIiwgLy8gbGVzcyB0aGFuXG4gICAgTEVTU19PUl9FUVVBTDogXCJsdGVcIiwgLy8gbGVzcyB0aGFuIG9yIGVxdWFsXG4gICAgSU5URVJWQUw6IFwiZ3RsdFwiLCAvLyBpbnRlcnZhbFxuICAgIElOVEVSVkFMX0lOQ0xVREVfQk9USDogXCJndGVsdGVcIiwgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0IGFuZCByaWdodFxuICAgIElOVEVSVkFMX0lOQ0xVREVfVE86IFwiZ3RsdGVcIiwgLy8gaW50ZXJ2YWwgaW5jbHVkZSByaWdodFxuICAgIElOVEVSVkFMX0lOQ0xVREVfRlJPTTogXCJndGVsdFwiLCAvLyBpbnRlcnZhbCBpbmNsdWRlIGxlZnRcbiAgICBSQU5HRTogXCJyZ1wiIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZvciBjcmVhdGluZyBhIG5ldyBTZWFyY2hGaWx0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGZpZWxkIHRoaXMgZmlsdGVyIHNob3VsZCBhcHBseSB0by5cbiAgICogQHBhcmFtIG9wZXJhdG9yIE9wZXJhdG9yIGluZGljYXRpbmcgaG93IHRvIGhhbmRsZSB0aGUgZmlsdGVycyB2YWx1ZShzKS4gU2VlIFNlYXJjaEZpbHRlci5PUEVSQVRPUiBmb3IgYXZhaWxhYmxlIG9wZXJhdG9ycy5cbiAgICogQHBhcmFtIGZpcnN0VmFsdWUgVGhlIGZpbHRlcnMgdmFsdWVcbiAgICogQHBhcmFtIHNlY29uZFZhbHVlIE9wdGlvbmFsIHNlY29uZCB2YWx1ZSBmb3IgZmlsdGVycyB0aGF0IGZvciBleGFtcGxlIGRlZmluZSByYW5nZXMgb2YgdmFsdWVzXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm1EYXRlIEZsYWcgdG8gdHJhbnNmb3JtIGRhdGUgaG91cnMgYW5kIG1pbnV0ZXMgYmFzZWQgb24gb3BlcmF0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIHB1YmxpYyBvcGVyYXRvcjogc3RyaW5nLFxuICAgIHB1YmxpYyBmaXJzdFZhbHVlOiBhbnksXG4gICAgcHVibGljIHNlY29uZFZhbHVlPzogYW55LFxuICAgIHB1YmxpYyB0cmFuc2Zvcm1EYXRlPzoge3RpbWU/OiBib29sZWFuOyB0aW1lem9uZT86IGJvb2xlYW59XG4gICkge31cblxuICBmb3JtYXREYXRlKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1EYXRlICYmIHZhbHVlXG4gICAgICA/IHRoaXMudHJhbnNmb3JtRGF0ZS50aW1lem9uZVxuICAgICAgICA/IG5ldyBEYXRlUGlwZShcImVuXCIpLnRyYW5zZm9ybSh2YWx1ZSwgXCJ5eXl5LU1NLWRkVFpcIilcbiAgICAgICAgOiB0aGlzLnRyYW5zZm9ybURhdGUudGltZVxuICAgICAgICAgID8gbmV3IERhdGUodmFsdWUpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTYpICsgXCJaXCJcbiAgICAgICAgICA6IG5ldyBEYXRlUGlwZShcImVuXCIpLnRyYW5zZm9ybSh2YWx1ZSwgXCJ5eXl5LU1NLWRkXCIpXG4gICAgICA6IHZhbHVlO1xuICB9XG5cbiAgdG9RdWVyeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbzogdGhpcy5vcGVyYXRvcixcbiAgICAgIHYxOiB0aGlzLmZvcm1hdERhdGUodGhpcy5maXJzdFZhbHVlKSxcbiAgICAgIC4uLih0aGlzLnNlY29uZFZhbHVlICYmIHt2MjogdGhpcy5mb3JtYXREYXRlKHRoaXMuc2Vjb25kVmFsdWUpfSlcbiAgICB9O1xuICB9XG5cbiAgdG9EYXRlVGltZVF1ZXJ5KCkge1xuICAgIGlmICh0aGlzLnRyYW5zZm9ybURhdGUgJiYgdGhpcy50cmFuc2Zvcm1EYXRlLnRpbWV6b25lICYmIHRoaXMuZmlyc3RWYWx1ZSkge1xuICAgICAgbGV0IGZpcnN0VmFsdWUgPSB0aGlzLmZpcnN0VmFsdWU7XG4gICAgICBsZXQgc2Vjb25kVmFsdWUgPSB0aGlzLnNlY29uZFZhbHVlO1xuICAgICAgY29uc3QgZW5kRGF0ZSA9IG5ldyBEYXRlKHNlY29uZFZhbHVlIHx8IGZpcnN0VmFsdWUpO1xuICAgICAgZW5kRGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgaWYgKHRoaXMub3BlcmF0b3IgPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMKSB7XG4gICAgICAgIGZpcnN0VmFsdWUgPSBlbmREYXRlLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBuZXcgRGF0ZShmaXJzdFZhbHVlKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMub3BlcmF0b3IgPT09IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5HUkVBVEVSX1RIQU4gfHxcbiAgICAgICAgICB0aGlzLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc3RhcnREYXRlLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhcnREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIGZpcnN0VmFsdWUgPSBzdGFydERhdGUudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOVEVSVkFMX0lOQ0xVREVfQk9USCB8fFxuICAgICAgICB0aGlzLm9wZXJhdG9yID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUxcbiAgICAgICkge1xuICAgICAgICBzZWNvbmRWYWx1ZSA9IGVuZERhdGUudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG86XG4gICAgICAgICAgdGhpcy5vcGVyYXRvciA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMXG4gICAgICAgICAgICA/IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTlRFUlZBTF9JTkNMVURFX0JPVEhcbiAgICAgICAgICAgIDogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgdjE6IGZpcnN0VmFsdWUsXG4gICAgICAgIC4uLihzZWNvbmRWYWx1ZSAmJiB7djI6IHNlY29uZFZhbHVlfSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnRvUXVlcnkoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgbWF0Y2goXG4gICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICBvcGVyYXRvcjogc3RyaW5nLFxuICAgIGZpcnN0VmFsdWU6IGFueSxcbiAgICBzZWNvbmRWYWx1ZT86IGFueVxuICApIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkgJiZcbiAgICAgIHRoaXMub3BlcmF0b3IgPT09IG9wZXJhdG9yICYmXG4gICAgICB0aGlzLnNlY29uZFZhbHVlID09PSBzZWNvbmRWYWx1ZSAmJlxuICAgICAgKHRoaXMuZmlyc3RWYWx1ZSBpbnN0YW5jZW9mIEFycmF5XG4gICAgICAgID8gISF0aGlzLmZpcnN0VmFsdWUuZmluZCh2ID0+IHYgPT09IGZpcnN0VmFsdWUpXG4gICAgICAgIDogdGhpcy5maXJzdFZhbHVlID09PSBmaXJzdFZhbHVlKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -356,8 +356,10 @@ class SearchQuery {
|
|
|
356
356
|
}
|
|
357
357
|
/**
|
|
358
358
|
* Generate a query JSON from the current SearchQuery that can be send to the search service.
|
|
359
|
+
*
|
|
360
|
+
* @param resolveReference in case of csv export the resolving of references is set by configuration
|
|
359
361
|
*/
|
|
360
|
-
getQueryJson() {
|
|
362
|
+
getQueryJson(resolveReference) {
|
|
361
363
|
// Convert the current query object to a query JSON that can be consumed by the search service backend.
|
|
362
364
|
// To keep it short, we'll only add properties that are set and differ from default values
|
|
363
365
|
const queryJson = {};
|
|
@@ -396,9 +398,7 @@ class SearchQuery {
|
|
|
396
398
|
if (this.expertMode) {
|
|
397
399
|
queryJson.options.expertmode = true;
|
|
398
400
|
}
|
|
399
|
-
|
|
400
|
-
queryJson.options.resolvereference = true;
|
|
401
|
-
}
|
|
401
|
+
queryJson.options.resolvereference = resolveReference !== undefined ? resolveReference : true;
|
|
402
402
|
if (this.searchMode !== SearchQuery.DEFAULT_SEARCH_MODE) {
|
|
403
403
|
queryJson.options.searchmode = this.searchMode;
|
|
404
404
|
}
|