@eo-sdk/client 11.0.0-rc.10 → 11.0.0-rc.12
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/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts +3 -2
- package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +2 -3
- package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +5 -3
- package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
- package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +3 -2
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +3 -2
- package/assets/_default/i18n/en.json +6 -5
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +9 -7
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +2 -1
- package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +16 -5
- package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +6 -7
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +2 -2
- package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +28 -8
- package/esm2022/app/eo-framework/grid/grid.component.mjs +17 -13
- package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +2 -1
- package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +2 -2
- package/esm2022/app/eo-framework/result-list/result-list.component.mjs +2 -1
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +9 -5
- package/fesm2022/eo-sdk-client.mjs +83 -43
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -163,17 +163,19 @@ let DashboardComponent = class DashboardComponent {
|
|
|
163
163
|
setTimeout(() => {
|
|
164
164
|
this.toolbarVisible = this.userService.getCurrentUser().userSettings.toolbarVisibility;
|
|
165
165
|
const toolbar = document.querySelector('.toolbar');
|
|
166
|
-
if (
|
|
167
|
-
this.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
166
|
+
if (toolbar) {
|
|
167
|
+
if (this.toolbarVisible === false) {
|
|
168
|
+
this.hideToolbar(toolbar);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this.showToolbar(toolbar);
|
|
172
|
+
}
|
|
171
173
|
}
|
|
172
174
|
const showDashboardButton = document.getElementById('dashboardButton');
|
|
173
175
|
showDashboardButton.addEventListener('click', () => {
|
|
174
176
|
this.hideOrShowOnClick(toolbar);
|
|
175
177
|
});
|
|
176
|
-
},
|
|
178
|
+
}, 500);
|
|
177
179
|
}
|
|
178
180
|
hideToolbar(toolbar) {
|
|
179
181
|
this.toolbarIconSrc = 'assets/_default/svg/ic_arrow_up.svg';
|
|
@@ -254,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
254
256
|
listAnimation
|
|
255
257
|
], template: "<ng-container>\n <div class=\"fade\"></div>\n <div class=\"dashboard\" [style.background-image]=\"backgroundImage\">\n <div class=\"footerButton\" eoRtlAware=\"full\">\n <eo-icon id=\"dashboardButton\" [iconSrc]=\"toolbarIconSrc\" [iconTitle]=\"toolbarIconTooltip | translate\"></eo-icon>\n </div>\n <yuv-widget-grid-workspaces *ngIf=\"workspaceConfig\"\n [workspaceLabelMaxLength]=\"50\"\n [workspaceConfig]=\"workspaceConfig\"\n (configChange)=\"onWorkspacesConfigChange($event)\" (editModeChange)=\"onWorkspaceEditMode($event)\" [options]=\"workspaceOptions\">\n </yuv-widget-grid-workspaces>\n </div>\n</ng-container>\n", styles: [".fade{position:absolute;opacity:.3;left:0;right:0;top:0;z-index:1;height:500px;background:linear-gradient(to bottom,rgba(var(--color-black-rgb),1) 0,transparent 100%)}.dashboard{position:absolute;inset:0;background-size:cover;background-position:center center}.footerButton{position:absolute;z-index:1000;bottom:10px;cursor:pointer;right:5px}.footerButton.rtl{left:5px;right:unset}.footerButton:hover{color:var(--list-item-hover-background)}.footerButton:hover eo-icon{background-color:var(--list-item-hover-background)}.footerButton #dashboardButton{color:var(--text-color-caption)}::ng-deep .cds--cc--title p.title,::ng-deep .yuv-widget-headline{font-size:var(--font-body);font-weight:700;color:var(--text-color-caption);font-style:italic;margin:0;padding:0}::ng-deep svg{width:24px;height:24px}::ng-deep .legend-item svg{width:11px;height:11px}::ng-deep yuv-widget-grid{top:60px;height:92%!important;--color-admin-primary: var(--color-primary)}::ng-deep yuv-widget-grid.editMode gridster-item{outline:2px dotted var(--color-admin-primary);border-radius:2px}::ng-deep yuv-widget-grid-workspaces{background-size:cover;background-position:center center;--wgw-background: transparent !important}::ng-deep yuv-widget-grid-workspaces>.confirm{align-items:center!important;justify-content:center!important}::ng-deep yuv-widget-grid-workspaces button.fab{border-radius:2.5em!important}::ng-deep yuv-widget-grid-workspaces>.toolbar{padding-inline-end:36px!important;background-color:#d3d3d380!important}::ng-deep yuv-widget-grid-workspaces>.toolbar>.workspace-edit input{position:relative;left:6px;width:230px}::ng-deep yuv-widget-grid-workspaces yuv-picture-widget{box-sizing:border-box}::ng-deep gridster{background:none!important}::ng-deep gridster .yuv-widget{border:1px solid var(--panel-divider-color)}::ng-deep gridster .gridster-row,::ng-deep gridster .gridster-column{border-color:#0003}.dark ::ng-deep gridster .gridster-row,.dark ::ng-deep gridster .gridster-column{border-color:var(--panel-divider-color)}\n"] }]
|
|
256
258
|
}], ctorParameters: () => [{ type: i1.UserService }, { type: i2.WidgetGridRegistry }, { type: i3.PageTitleService }, { type: i4.HttpClient }, { type: i1.Config }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: i3.PendingChangesService }] });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBS0wsS0FBSyxFQUNOLE1BQU0sY0FBYyxDQUFDO0FBTXRCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDcEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNyRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMs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Q2hGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLENBQTRCO1FBQ3ZELCtHQUErRztRQUMvRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckosQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFlO1FBQ2pDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDcEQsQ0FBQztJQUNILENBQUM7OEdBL05VLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG9EQ2hEL0IsZ3BCQWFBLHlwRkQrQmM7WUFDVixhQUFhO1NBQ2Q7O0FBRVUsa0JBQWtCO0lBVDlCLFlBQVksRUFBRTtHQVNGLGtCQUFrQixDQWdPOUI7OzJGQWhPWSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsY0FBYyxjQUdaO3dCQUNWLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlnLFxuICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBVc2VyU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7XG4gIFdpZGdldEdyaWRSZWdpc3RyeSxcbiAgV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZyxcbiAgV2lkZ2V0R3JpZFdvcmtzcGFjZU9wdGlvbnNcbn0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlLCBQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcbmltcG9ydCB7bGlzdEFuaW1hdGlvbn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7U2VhcmNoV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvc2VhcmNoLXdpZGdldC9zZWFyY2gtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lmcmFtZVNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaWZyYW1lLXdpZGdldC9pZnJhbWUtc2V0dXAvaWZyYW1lLXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0xhc3RFZGl0ZWRBbmRDcmVhdGVkQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvbGFzdC1lZGl0ZWQtd2lkZ2V0L2xhc3QtZWRpdGVkLWFuZC1jcmVhdGVkLmNvbXBvbmVudCc7XG5pbXBvcnQge0lmcmFtZVdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2lmcmFtZS13aWRnZXQvaWZyYW1lLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbnRyYXktd2lkZ2V0L2luZm8taW50cmF5LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW50cmF5U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWludHJheS13aWRnZXQvaW5mby1pbnRyYXktc2V0dXAvaW5mby1pbnRyYXktc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0luYm94V2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaW5mby1pbmJveC13aWRnZXQvaW5mby1pbmJveC13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SW5mb0luYm94U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXNldHVwL2luZm8taW5ib3gtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7SGl0bGlzdFNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaGl0bGlzdC13aWRnZXQvaGl0bGlzdC1zZXR1cC9oaXRsaXN0LXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpdGxpc3RXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9oaXRsaXN0LXdpZGdldC9oaXRsaXN0LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtBZnRlclZpZXdJbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2hhcnRzV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NoYXJ0c1NldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtc2V0dXAvY2hhcnRzLXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvdW50T2JqZWN0c1dpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2NvdW50LW9iamVjdHMtd2lkZ2V0L2NvdW50LW9iamVjdHMtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvdW50T2JqZWN0c1NldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY291bnQtb2JqZWN0cy13aWRnZXQvY291bnQtb2JqZWN0cy1zZXR1cC9jb3VudC1vYmplY3RzLXNldHVwLmNvbXBvbmVudCc7XG5pbXBvcnQge0xhc3RFZGl0ZWRBbmRDcmVhdGVkU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9sYXN0LWVkaXRlZC13aWRnZXQvbGFzdC1lZGl0ZWQtYW5kLWNyZWF0ZWQtc2V0dXAvbGFzdC1lZGl0ZWQtYW5kLWNyZWF0ZWQtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7VG9kb1dpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL3RvZG93aWRnZXQvdG9kby13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7VG9kb1NldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvdG9kb3dpZGdldC90b2RvLXNldHVwL3RvZG8tc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7UGljdHVyZVdpZGdldFNldHVwQ29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvcGljdHVyZS13aWRnZXQvcGljdHVyZS13aWRnZXQtc2V0dXAvcGljdHVyZS13aWRnZXQtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7UGljdHVyZVdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL3BpY3R1cmUtd2lkZ2V0L3BpY3R1cmUtd2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgbGlzdEFuaW1hdGlvblxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgd29ya3NwYWNlQ29uZmlnOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICB3b3Jrc3BhY2VPcHRpb25zOiBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9ucyA9IHtcbiAgICBncmlkQ29uZmlnOiB7XG4gICAgICByb3dzOiAzMCxcbiAgICAgIG5ld0l0ZW1XaWR0aDogMixcbiAgICAgIG5ld0l0ZW1IZWlnaHQ6IDVcbiAgICB9XG4gIH07XG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuICBTVE9SQUdFX0tFWSA9ICdlby5jbGllbnQuZGFzaGJvYXJkLmN1cnJlbnRXb3Jrc3BhY2UnO1xuICB0b29sYmFyVmlzaWJsZTogYm9vbGVhbjtcbiAgdG9vbGJhckljb25TcmM6IHN0cmluZztcbiAgdG9vbGJhckljb25Ub29sdGlwOiBzdHJpbmc7XG4gIHBlbmRpbmdUYXNrSUQgPSAnJztcblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aWRnZXRHcmlkUmVnaXN0cnk6IFdpZGdldEdyaWRSZWdpc3RyeSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0RGVmYXVsdFRpdGxlKCk7XG4gICAgdGhpcy5iYWNrZ3JvdW5kSW1hZ2UgPSBgdXJsKCR7dGhpcy5jb25maWcuZ2V0RGFzaGJvYXJkQmFja2dyb3VuZEltYWdlKCl9KWA7XG4gICAgdGhpcy5zZXRXaWRnZXRHcmlkTGFiZWxzKCk7XG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5zZXRXaWRnZXRHcmlkTGFiZWxzKCk7XG4gICAgfSk7XG4gIH1cblxuICBvbldvcmtzcGFjZXNDb25maWdDaGFuZ2UoYzogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykge1xuICAgIHRoaXMuc2F2ZVdvcmtzcGFjZXNDb25maWcoYyk7XG4gIH1cblxuICBwcml2YXRlIHNldFdpZGdldEdyaWRMYWJlbHMoKSB7XG4gICAgdGhpcy53aWRnZXRHcmlkUmVnaXN0cnkudXBkYXRlUmVnaXN0ZXJlZFdpZGdldHNMYWJlbHMoe1xuICAgICAgXCJ5dXYud2lkZ2V0LnBpY3R1cmVcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5waWN0dXJlLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQudG9kb1wiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0Lkxhc3RFZGl0ZWRcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5sYXN0RWRpdGVkT3JMYXN0Q3JlYXRlZC5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmlmcmFtZVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmluZm9JbnRyYXlcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW50cmF5LmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaW5mb0luYm94XCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaW5mb0luYm94LmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQucXVpY2tTZWFyY2hcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmhpdGxpc3RcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5oaXRsaXN0LmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuY291bnRPYmplY3RzXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuY291bnRPYmplY3QubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5jaGFydFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0LmxhYmVsJyksXG4gICAgfSk7XG5cbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS51cGRhdGVXaWRnZXRHcmlkTGFiZWxzKHtcbiAgICAgIHdpZGdldFBpY2tlclRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRQaWNrZXJUaXRsZScpLFxuICAgICAgYWRkV29ya3NwYWNlVG9vbHRpcDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuYWRkV29ya3NwYWNlJyksXG4gICAgICBub29wV2lkZ2V0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5vb3BXaWRnZXRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlc0VtcHR5TWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlc0VtcHR5TWVzc2FnZScpLFxuICAgICAgbmV3V29ya3NwYWNlRGVmYXVsdExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5uZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWwnKSxcbiAgICAgIHdvcmtzcGFjZUxhYmVsUGxhY2Vob2xkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndvcmtzcGFjZVJlbW92ZUNvbmZpcm1NZXNzYWdlJyksXG4gICAgICB3b3Jrc3BhY2VFZGl0RG9uZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlRWRpdERvbmUnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXRDYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgc2F2ZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuc2F2ZScpLFxuICAgICAgY2FuY2VsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5jYW5jZWwnKSxcbiAgICAgIGNvbmZpcm06IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNvbmZpcm0nKSxcbiAgICAgIHdpZGdldFRvZG9IZWFkbGluZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgd2lkZ2V0VG9kb1Rhc2tUaXRsZUxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUaXRsZUxhYmVsJyksXG4gICAgICBhZGROZXdXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuYWRkTmV3V2lkZ2V0TGFiZWwnKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlcldpZGdldHMoKSB7XG5cbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS5yZWdpc3RlckdyaWRXaWRnZXRzKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucGljdHVyZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBQaWN0dXJlV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQudG9kbycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53aWRnZXRUb2RvSGVhZGxpbmVMYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogVG9kb1NldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFRvZG9XaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5MYXN0RWRpdGVkJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQubGFzdEVkaXRlZE9yTGFzdENyZWF0ZWQubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBMYXN0RWRpdGVkQW5kQ3JlYXRlZENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IExhc3RFZGl0ZWRBbmRDcmVhdGVkU2V0dXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pZnJhbWUnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pZnJhbWUubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJZnJhbWVXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJZnJhbWVTZXR1cENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmluZm9JbnRyYXknLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW50cmF5LmxhYmVsJyksXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogSW5mb0ludHJheVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IEluZm9JbnRyYXlTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0luYm94JyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaW5mb0luYm94LmxhYmVsJyksXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogSW5mb0luYm94V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0luYm94U2V0dXBDb21wb25lbnRcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LnF1aWNrU2VhcmNoJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQucXVpY2tzZWFyY2gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBTZWFyY2hXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5oaXRsaXN0JyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaGl0bGlzdC5sYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSGl0bGlzdFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IEhpdGxpc3RXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5jb3VudE9iamVjdHMnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5jb3VudE9iamVjdC5sYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogQ291bnRPYmplY3RzU2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogQ291bnRPYmplY3RzV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuY2hhcnQnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydC5sYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogQ2hhcnRzU2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogQ2hhcnRzV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgfVxuICAgIF0uc29ydChVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpKSk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZFdvcmtzcGFjZXNDb25maWcoKTtcbiAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0cygpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50b29sYmFyVmlzaWJsZSA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3MudG9vbGJhclZpc2liaWxpdHk7XG4gICAgICBjb25zdCB0b29sYmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRvb2xiYXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnRvb2xiYXJWaXNpYmxlID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmhpZGVUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93VG9vbGJhcih0b29sYmFyKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNob3dEYXNoYm9hcmRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGFzaGJvYXJkQnV0dG9uJyk7XG4gICAgICBzaG93RGFzaGJvYXJkQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVPclNob3dPbkNsaWNrKHRvb2xiYXIpO1xuICAgICAgfSk7XG4gICAgfSwgMjAwKTtcblxuICB9XG5cbiAgcHJpdmF0ZSBoaWRlVG9vbGJhcih0b29sYmFyOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMudG9vbGJhckljb25TcmMgPSAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd191cC5zdmcnO1xuICAgIHRoaXMudG9vbGJhckljb25Ub29sdGlwID0gJ2VvLmRhc2hib2FyZC5idXR0b24uc2hvdy5mb290ZXIudG9vbHRpcCc7XG4gICAgdG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIHRoaXMudG9vbGJhclZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1Rvb2xiYXIodG9vbGJhcjogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnRvb2xiYXJJY29uU3JjID0gJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnO1xuICAgIHRoaXMudG9vbGJhckljb25Ub29sdGlwID0gJ2VvLmRhc2hib2FyZC5idXR0b24uaGlkZS5mb290ZXIudG9vbHRpcCc7XG4gICAgdG9vbGJhci5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIHRoaXMudG9vbGJhclZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlT3JTaG93T25DbGljayh0b29sYmFyOiBIVE1MRWxlbWVudCkge1xuICAgIGlmICh0aGlzLnRvb2xiYXJWaXNpYmxlKSB7XG4gICAgICB0aGlzLmhpZGVUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zYXZlVG9vbGJhclN0YXRlKHRoaXMudG9vbGJhclZpc2libGUpLnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zYXZlVG9vbGJhclN0YXRlKHRoaXMudG9vbGJhclZpc2libGUpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFdvcmtzcGFjZXNDb25maWcoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgfHwgdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy53b3Jrc3BhY2VPcHRpb25zLndvcmtzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KCdhc3NldHMvZGFzaGJvYXJkLmpzb24nKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSA9PiB7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcgPSByZXM7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5sYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5sYWJlbCk7XG4gICAgICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5ncmlkLmZvckVhY2goZ3JpZCA9PiB7XG4gICAgICAgICAgICBpZiAoZ3JpZC53aWRnZXRDb25maWcpIHtcbiAgICAgICAgICAgICAgZ3JpZC53aWRnZXRDb25maWcudGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGdyaWQud2lkZ2V0Q29uZmlnLnRpdGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAvLyBubyBjb25maWcgZmlsZSBmb3VuZFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53b3Jrc3BhY2VDb25maWcgPSB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCkudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnM7XG4gICAgICBjb25zdCBjdXJyZW50V29ya3NwYWNlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKGN1cnJlbnRXb3Jrc3BhY2UgJiYgdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlcy5tYXAoKHcpID0+IHcuaWQpLmluY2x1ZGVzKGN1cnJlbnRXb3Jrc3BhY2UpKSB7XG4gICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLmN1cnJlbnRXb3Jrc3BhY2UgPSBjdXJyZW50V29ya3NwYWNlO1xuICAgICAgfSBlbHNlIGlmICghIXRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLmN1cnJlbnRXb3Jrc3BhY2UgPSB0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzWzBdLmlkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVdvcmtzcGFjZXNDb25maWcoYzogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykge1xuICAgIC8vIHRoZSBzZWxlY3RlZCB3b3Jrc3BhY2UgaXMgc2F2ZWQgb24gdGhlIGRldmljZSB3aGlsZSB0aGUgd29ya3NwYWNlcyB0aGVtc2VsdmVzIGFyZSBzdG9yZWQgb24gdGhlIHVzZXIgc2VydmljZVxuICAgIGlmIChjKSB7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNhdmVDaGFuZ2VXb3Jrc3BhY2UoYykucGlwZShzd2l0Y2hNYXAoYXN5bmMgKCkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVksIGMuY3VycmVudFdvcmtzcGFjZSkpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvbldvcmtzcGFjZUVkaXRNb2RlKG9uRWRpdDogYm9vbGVhbikge1xuICAgIGlmIChvbkVkaXQpIHtcbiAgICAgIHRoaXMucGVuZGluZ1Rhc2tJRCA9IHRoaXMucGVuZGluZ0NoYW5nZXMuc3RhcnRUYXNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVuZGluZ0NoYW5nZXMuZmluaXNoVGFzayh0aGlzLnBlbmRpbmdUYXNrSUQpXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IGNsYXNzPVwiZmFkZVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvblwiIGVvUnRsQXdhcmU9XCJmdWxsXCI+XG4gICAgICA8ZW8taWNvbiBpZD1cImRhc2hib2FyZEJ1dHRvblwiIFtpY29uU3JjXT1cInRvb2xiYXJJY29uU3JjXCIgW2ljb25UaXRsZV09XCJ0b29sYmFySWNvblRvb2x0aXAgfCB0cmFuc2xhdGVcIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG4gICAgPHl1di13aWRnZXQtZ3JpZC13b3Jrc3BhY2VzICpuZ0lmPVwid29ya3NwYWNlQ29uZmlnXCJcbiAgICBbd29ya3NwYWNlTGFiZWxNYXhMZW5ndGhdPVwiNTBcIlxuICAgIFt3b3Jrc3BhY2VDb25maWddPVwid29ya3NwYWNlQ29uZmlnXCJcbiAgICAgIChjb25maWdDaGFuZ2UpPVwib25Xb3Jrc3BhY2VzQ29uZmlnQ2hhbmdlKCRldmVudClcIiAoZWRpdE1vZGVDaGFuZ2UpPVwib25Xb3Jrc3BhY2VFZGl0TW9kZSgkZXZlbnQpXCIgW29wdGlvbnNdPVwid29ya3NwYWNlT3B0aW9uc1wiPlxuICAgIDwveXV2LXdpZGdldC1ncmlkLXdvcmtzcGFjZXM+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBS0wsS0FBSyxFQUNOLE1BQU0sY0FBYyxDQUFDO0FBTXRCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDakcsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDcEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDaEgsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNyRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMs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LFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsQ0FBNEI7UUFDdkQsK0dBQStHO1FBQy9HLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNySixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQWU7UUFDakMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQzs4R0FqT1Usa0JBQWtCO2tHQUFsQixrQkFBa0Isb0RDaEQvQixncEJBYUEseXBGRCtCYztZQUNWLGFBQWE7U0FDZDs7QUFFVSxrQkFBa0I7SUFUOUIsWUFBWSxFQUFFO0dBU0Ysa0JBQWtCLENBa085Qjs7MkZBbE9ZLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxjQUFjLGNBR1o7d0JBQ1YsYUFBYTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWcsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFVzZXJTZXJ2aWNlLFxuICBVdGlsc1xufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnLFxuICBXaWRnZXRHcmlkV29ya3NwYWNlT3B0aW9uc1xufSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2UsIFBlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtsaXN0QW5pbWF0aW9ufSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsnO1xuaW1wb3J0IHtTZWFyY2hXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9zZWFyY2gtd2lkZ2V0L3NlYXJjaC13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7SWZyYW1lU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pZnJhbWUtd2lkZ2V0L2lmcmFtZS1zZXR1cC9pZnJhbWUtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7TGFzdEVkaXRlZEFuZENyZWF0ZWRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9sYXN0LWVkaXRlZC13aWRnZXQvbGFzdC1lZGl0ZWQtYW5kLWNyZWF0ZWQuY29tcG9uZW50JztcbmltcG9ydCB7SWZyYW1lV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvaWZyYW1lLXdpZGdldC9pZnJhbWUtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWludHJheS13aWRnZXQvaW5mby1pbnRyYXktd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0luZm9JbnRyYXlTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW50cmF5LXdpZGdldC9pbmZvLWludHJheS1zZXR1cC9pbmZvLWludHJheS1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9pbmZvLWluYm94LXdpZGdldC9pbmZvLWluYm94LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmZvSW5ib3hTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2luZm8taW5ib3gtd2lkZ2V0L2luZm8taW5ib3gtc2V0dXAvaW5mby1pbmJveC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtIaXRsaXN0U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9oaXRsaXN0LXdpZGdldC9oaXRsaXN0LXNldHVwL2hpdGxpc3Qtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7SGl0bGlzdFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2hpdGxpc3Qtd2lkZ2V0L2hpdGxpc3Qtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge0FmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDaGFydHNXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q2hhcnRzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvY291bnQtb2JqZWN0cy13aWRnZXQvY291bnQtb2JqZWN0cy13aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7Q291bnRPYmplY3RzU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9jb3VudC1vYmplY3RzLXdpZGdldC9jb3VudC1vYmplY3RzLXNldHVwL2NvdW50LW9iamVjdHMtc2V0dXAuY29tcG9uZW50JztcbmltcG9ydCB7TGFzdEVkaXRlZEFuZENyZWF0ZWRTZXR1cENvbXBvbmVudH0gZnJvbSAnLi93aWRnZXRzL2xhc3QtZWRpdGVkLXdpZGdldC9sYXN0LWVkaXRlZC1hbmQtY3JlYXRlZC1zZXR1cC9sYXN0LWVkaXRlZC1hbmQtY3JlYXRlZC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtUb2RvV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvdG9kb3dpZGdldC90b2RvLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtUb2RvU2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy90b2Rvd2lkZ2V0L3RvZG8tc2V0dXAvdG9kby1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtQaWN0dXJlV2lkZ2V0U2V0dXBDb21wb25lbnR9IGZyb20gJy4vd2lkZ2V0cy9waWN0dXJlLXdpZGdldC9waWN0dXJlLXdpZGdldC1zZXR1cC9waWN0dXJlLXdpZGdldC1zZXR1cC5jb21wb25lbnQnO1xuaW1wb3J0IHtQaWN0dXJlV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3dpZGdldHMvcGljdHVyZS13aWRnZXQvcGljdHVyZS13aWRnZXQuY29tcG9uZW50JztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBsaXN0QW5pbWF0aW9uXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICB3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gIHdvcmtzcGFjZU9wdGlvbnM6IFdpZGdldEdyaWRXb3Jrc3BhY2VPcHRpb25zID0ge1xuICAgIGdyaWRDb25maWc6IHtcbiAgICAgIHJvd3M6IDMwLFxuICAgICAgbmV3SXRlbVdpZHRoOiAyLFxuICAgICAgbmV3SXRlbUhlaWdodDogNVxuICAgIH1cbiAgfTtcbiAgYmFja2dyb3VuZEltYWdlOiBzdHJpbmc7XG4gIFNUT1JBR0VfS0VZID0gJ2VvLmNsaWVudC5kYXNoYm9hcmQuY3VycmVudFdvcmtzcGFjZSc7XG4gIHRvb2xiYXJWaXNpYmxlOiBib29sZWFuO1xuICB0b29sYmFySWNvblNyYzogc3RyaW5nO1xuICB0b29sYmFySWNvblRvb2x0aXA6IHN0cmluZztcbiAgcGVuZGluZ1Rhc2tJRCA9ICcnO1xuXG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHdpZGdldEdyaWRSZWdpc3RyeTogV2lkZ2V0R3JpZFJlZ2lzdHJ5LFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXREZWZhdWx0VGl0bGUoKTtcbiAgICB0aGlzLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoJHt0aGlzLmNvbmZpZy5nZXREYXNoYm9hcmRCYWNrZ3JvdW5kSW1hZ2UoKX0pYDtcbiAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2UucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFdpZGdldEdyaWRMYWJlbHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uV29ya3NwYWNlc0NvbmZpZ0NoYW5nZShjOiBXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnKSB7XG4gICAgdGhpcy5zYXZlV29ya3NwYWNlc0NvbmZpZyhjKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2lkZ2V0R3JpZExhYmVscygpIHtcbiAgICB0aGlzLndpZGdldEdyaWRSZWdpc3RyeS51cGRhdGVSZWdpc3RlcmVkV2lkZ2V0c0xhYmVscyh7XG4gICAgICBcInl1di53aWRnZXQucGljdHVyZVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnBpY3R1cmUubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC50b2RvXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuTGFzdEVkaXRlZFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0Lmxhc3RFZGl0ZWRPckxhc3RDcmVhdGVkLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaWZyYW1lXCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuaWZyYW1lLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaW5mb0ludHJheVwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5pbmZvSW5ib3hcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5xdWlja1NlYXJjaFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LnF1aWNrc2VhcmNoLmxhYmVsJyksXG4gICAgICBcInl1di53aWRnZXQuaGl0bGlzdFwiOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmhpdGxpc3QubGFiZWwnKSxcbiAgICAgIFwieXV2LndpZGdldC5jb3VudE9iamVjdHNcIjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5jb3VudE9iamVjdC5sYWJlbCcpLFxuICAgICAgXCJ5dXYud2lkZ2V0LmNoYXJ0XCI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnQubGFiZWwnKSxcbiAgICB9KTtcblxuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnVwZGF0ZVdpZGdldEdyaWRMYWJlbHMoe1xuICAgICAgd2lkZ2V0UGlja2VyVGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFBpY2tlclRpdGxlJyksXG4gICAgICBhZGRXb3Jrc3BhY2VUb29sdGlwOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGRXb3Jrc3BhY2UnKSxcbiAgICAgIG5vb3BXaWRnZXRMYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubm9vcFdpZGdldExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VzRW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VzRW1wdHlNZXNzYWdlJyksXG4gICAgICBuZXdXb3Jrc3BhY2VEZWZhdWx0TGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLm5ld1dvcmtzcGFjZURlZmF1bHRMYWJlbCcpLFxuICAgICAgd29ya3NwYWNlTGFiZWxQbGFjZWhvbGRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQubmV3V29ya3NwYWNlRGVmYXVsdExhYmVsJyksXG4gICAgICB3b3Jrc3BhY2VSZW1vdmVDb25maXJtTWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQud29ya3NwYWNlUmVtb3ZlQ29uZmlybU1lc3NhZ2UnKSxcbiAgICAgIHdvcmtzcGFjZUVkaXREb25lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC53b3Jrc3BhY2VFZGl0RG9uZScpLFxuICAgICAgd29ya3NwYWNlRWRpdENhbmNlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY2FuY2VsJyksXG4gICAgICBzYXZlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5zYXZlJyksXG4gICAgICBjYW5jZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLmNhbmNlbCcpLFxuICAgICAgY29uZmlybTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldEdyaWQuY29uZmlybScpLFxuICAgICAgd2lkZ2V0VG9kb0hlYWRsaW5lTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICB3aWRnZXRUb2RvVGFza1RpdGxlTGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRpdGxlTGFiZWwnKSxcbiAgICAgIGFkZE5ld1dpZGdldExhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0R3JpZC5hZGROZXdXaWRnZXRMYWJlbCcpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyV2lkZ2V0cygpIHtcblxuICAgIHRoaXMud2lkZ2V0R3JpZFJlZ2lzdHJ5LnJlZ2lzdGVyR3JpZFdpZGdldHMoW1xuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5waWN0dXJlJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQucGljdHVyZS5sYWJlbCcpLFxuICAgICAgICBzZXR1cENvbXBvbmVudDogUGljdHVyZVdpZGdldFNldHVwQ29tcG9uZW50LFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFBpY3R1cmVXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC50b2RvJyxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXRHcmlkLndpZGdldFRvZG9IZWFkbGluZUxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBUb2RvU2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogVG9kb1dpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0Lkxhc3RFZGl0ZWQnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5sYXN0RWRpdGVkT3JMYXN0Q3JlYXRlZC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IExhc3RFZGl0ZWRBbmRDcmVhdGVkQ29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogTGFzdEVkaXRlZEFuZENyZWF0ZWRTZXR1cENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmlmcmFtZScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmlmcmFtZS5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IElmcmFtZVdpZGdldENvbXBvbmVudCxcbiAgICAgICAgc2V0dXBDb21wb25lbnQ6IElmcmFtZVNldHVwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQuaW5mb0ludHJheScsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmluZm9JbnRyYXkubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW50cmF5V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICBzZXR1cENvbXBvbmVudDogSW5mb0ludHJheVNldHVwQ29tcG9uZW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5pbmZvSW5ib3gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5pbmZvSW5ib3gubGFiZWwnKSxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBJbmZvSW5ib3hXaWRnZXRDb21wb25lbnQsXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBJbmZvSW5ib3hTZXR1cENvbXBvbmVudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3l1di53aWRnZXQucXVpY2tTZWFyY2gnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5xdWlja3NlYXJjaC5sYWJlbCcpLFxuICAgICAgICB3aWRnZXRDb21wb25lbnQ6IFNlYXJjaFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmhpdGxpc3QnLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5oaXRsaXN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBIaXRsaXN0U2V0dXBDb21wb25lbnQsXG4gICAgICAgIHdpZGdldENvbXBvbmVudDogSGl0bGlzdFdpZGdldENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd5dXYud2lkZ2V0LmNvdW50T2JqZWN0cycsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNvdW50T2JqZWN0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDb3VudE9iamVjdHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDb3VudE9iamVjdHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAneXV2LndpZGdldC5jaGFydCcsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0LmxhYmVsJyksXG4gICAgICAgIHNldHVwQ29tcG9uZW50OiBDaGFydHNTZXR1cENvbXBvbmVudCxcbiAgICAgICAgd2lkZ2V0Q29tcG9uZW50OiBDaGFydHNXaWRnZXRDb21wb25lbnQsXG4gICAgICB9XG4gICAgXS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpKTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkV29ya3NwYWNlc0NvbmZpZygpO1xuICAgIHRoaXMucmVnaXN0ZXJXaWRnZXRzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRvb2xiYXJWaXNpYmxlID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eTtcbiAgICAgIGNvbnN0IHRvb2xiYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudG9vbGJhcicpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKHRvb2xiYXIpIHtcbiAgICAgICAgaWYgKHRoaXMudG9vbGJhclZpc2libGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5oaWRlVG9vbGJhcih0b29sYmFyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNob3dUb29sYmFyKHRvb2xiYXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBzaG93RGFzaGJvYXJkQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rhc2hib2FyZEJ1dHRvbicpO1xuICAgICAgc2hvd0Rhc2hib2FyZEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgdGhpcy5oaWRlT3JTaG93T25DbGljayh0b29sYmFyKTtcbiAgICAgIH0pO1xuICAgIH0sIDUwMCk7XG5cbiAgfVxuXG4gIHByaXZhdGUgaGlkZVRvb2xiYXIodG9vbGJhcjogSFRNTEVsZW1lbnQpIHtcbiAgICB0aGlzLnRvb2xiYXJJY29uU3JjID0gJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfdXAuc3ZnJztcbiAgICB0aGlzLnRvb2xiYXJJY29uVG9vbHRpcCA9ICdlby5kYXNoYm9hcmQuYnV0dG9uLnNob3cuZm9vdGVyLnRvb2x0aXAnO1xuICAgIHRvb2xiYXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGlzLnRvb2xiYXJWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sYmFyKHRvb2xiYXI6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy50b29sYmFySWNvblNyYyA9ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Fycm93X2Rvd24uc3ZnJztcbiAgICB0aGlzLnRvb2xiYXJJY29uVG9vbHRpcCA9ICdlby5kYXNoYm9hcmQuYnV0dG9uLmhpZGUuZm9vdGVyLnRvb2x0aXAnO1xuICAgIHRvb2xiYXIuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICB0aGlzLnRvb2xiYXJWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZU9yU2hvd09uQ2xpY2sodG9vbGJhcjogSFRNTEVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy50b29sYmFyVmlzaWJsZSkge1xuICAgICAgdGhpcy5oaWRlVG9vbGJhcih0b29sYmFyKTtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2F2ZVRvb2xiYXJTdGF0ZSh0aGlzLnRvb2xiYXJWaXNpYmxlKS5zdWJzY3JpYmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93VG9vbGJhcih0b29sYmFyKTtcbiAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2F2ZVRvb2xiYXJTdGF0ZSh0aGlzLnRvb2xiYXJWaXNpYmxlKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRXb3Jrc3BhY2VzQ29uZmlnKCkge1xuICAgIGlmICghdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy53b3Jrc3BhY2VPcHRpb25zIHx8IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucy53b3Jrc3BhY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5odHRwLmdldCgnYXNzZXRzL2Rhc2hib2FyZC5qc29uJykuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykgPT4ge1xuICAgICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnID0gcmVzO1xuICAgICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXNbMF0ubGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXNbMF0ubGFiZWwpO1xuICAgICAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXNbMF0uZ3JpZC5mb3JFYWNoKGdyaWQgPT4ge1xuICAgICAgICAgICAgaWYgKGdyaWQud2lkZ2V0Q29uZmlnKSB7XG4gICAgICAgICAgICAgIGdyaWQud2lkZ2V0Q29uZmlnLnRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChncmlkLndpZGdldENvbmZpZy50aXRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgLy8gbm8gY29uZmlnIGZpbGUgZm91bmRcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud29ya3NwYWNlQ29uZmlnID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLnVzZXJTZXR0aW5ncy53b3Jrc3BhY2VPcHRpb25zO1xuICAgICAgY29uc3QgY3VycmVudFdvcmtzcGFjZSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLlNUT1JBR0VfS0VZKTtcbiAgICAgIGlmIChjdXJyZW50V29ya3NwYWNlICYmIHRoaXMud29ya3NwYWNlQ29uZmlnLndvcmtzcGFjZXMubWFwKCh3KSA9PiB3LmlkKS5pbmNsdWRlcyhjdXJyZW50V29ya3NwYWNlKSkge1xuICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy5jdXJyZW50V29ya3NwYWNlID0gY3VycmVudFdvcmtzcGFjZTtcbiAgICAgIH0gZWxzZSBpZiAoISF0aGlzLndvcmtzcGFjZUNvbmZpZy53b3Jrc3BhY2VzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLndvcmtzcGFjZUNvbmZpZy5jdXJyZW50V29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VDb25maWcud29ya3NwYWNlc1swXS5pZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVXb3Jrc3BhY2VzQ29uZmlnKGM6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICAvLyB0aGUgc2VsZWN0ZWQgd29ya3NwYWNlIGlzIHNhdmVkIG9uIHRoZSBkZXZpY2Ugd2hpbGUgdGhlIHdvcmtzcGFjZXMgdGhlbXNlbHZlcyBhcmUgc3RvcmVkIG9uIHRoZSB1c2VyIHNlcnZpY2VcbiAgICBpZiAoYykge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zYXZlQ2hhbmdlV29ya3NwYWNlKGMpLnBpcGUoc3dpdGNoTWFwKGFzeW5jICgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfS0VZLCBjLmN1cnJlbnRXb3Jrc3BhY2UpKSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgb25Xb3Jrc3BhY2VFZGl0TW9kZShvbkVkaXQ6IGJvb2xlYW4pIHtcbiAgICBpZiAob25FZGl0KSB7XG4gICAgICB0aGlzLnBlbmRpbmdUYXNrSUQgPSB0aGlzLnBlbmRpbmdDaGFuZ2VzLnN0YXJ0VGFzaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBlbmRpbmdDaGFuZ2VzLmZpbmlzaFRhc2sodGhpcy5wZW5kaW5nVGFza0lEKVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImZhZGVcIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImRhc2hib2FyZFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImJhY2tncm91bmRJbWFnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXJCdXR0b25cIiBlb1J0bEF3YXJlPVwiZnVsbFwiPlxuICAgICAgPGVvLWljb24gaWQ9XCJkYXNoYm9hcmRCdXR0b25cIiBbaWNvblNyY109XCJ0b29sYmFySWNvblNyY1wiIFtpY29uVGl0bGVdPVwidG9vbGJhckljb25Ub29sdGlwIHwgdHJhbnNsYXRlXCI+PC9lby1pY29uPlxuICAgIDwvZGl2PlxuICAgIDx5dXYtd2lkZ2V0LWdyaWQtd29ya3NwYWNlcyAqbmdJZj1cIndvcmtzcGFjZUNvbmZpZ1wiXG4gICAgW3dvcmtzcGFjZUxhYmVsTWF4TGVuZ3RoXT1cIjUwXCJcbiAgICBbd29ya3NwYWNlQ29uZmlnXT1cIndvcmtzcGFjZUNvbmZpZ1wiXG4gICAgICAoY29uZmlnQ2hhbmdlKT1cIm9uV29ya3NwYWNlc0NvbmZpZ0NoYW5nZSgkZXZlbnQpXCIgKGVkaXRNb2RlQ2hhbmdlKT1cIm9uV29ya3NwYWNlRWRpdE1vZGUoJGV2ZW50KVwiIFtvcHRpb25zXT1cIndvcmtzcGFjZU9wdGlvbnNcIj5cbiAgICA8L3l1di13aWRnZXQtZ3JpZC13b3Jrc3BhY2VzPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -150,6 +150,7 @@ export class ProcessStateComponent {
|
|
|
150
150
|
successCallback: (rows, total) => {
|
|
151
151
|
this.eoGrid.api?.setGridOption('rowData', rows);
|
|
152
152
|
this.settings = { total, size: this.VIRTUAL_LIST_CHUNK_SIZE, page };
|
|
153
|
+
this.eoGrid.selectRow(0);
|
|
153
154
|
}
|
|
154
155
|
});
|
|
155
156
|
}
|
|
@@ -322,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
322
323
|
type: ViewChild,
|
|
323
324
|
args: ["eoGrid"]
|
|
324
325
|
}] } });
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcm9jZXNzLXN0YXRlL3Byb2Nlc3Mtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvcHJvY2Vzcy1zdGF0ZS9wcm9jZXNzLXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQThDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFvQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFckksT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBUW5DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZELE1BQU0sT0FBTyxxQkFBcUI7SUErQ2hDLFlBQ1MsU0FBMkIsRUFDM0IsVUFBc0IsRUFDdEIsU0FBMkIsRUFDMUIsS0FBd0IsRUFDeEIsT0FBdUIsRUFDdkIsRUFBc0IsRUFDdEIsWUFBOEIsRUFDOUIsUUFBeUIsRUFDekIsY0FBcUM7UUFSdEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBckQvQyx1QkFBa0Is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UyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0ExVVUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEpDcEJsQyx3N0xBMEdBOzsyRkR0RmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs0VUFpRFAsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xEZWYsIEdyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBcHBDYWNoZVNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLCBCcG1TZXJ2aWNlLCBQcm9jZXNzLCBSYW5nZVZhbHVlLCBTZWFyY2hGaWx0ZXIsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZW8tZnJhbWV3b3JrXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJlby1wcm9jZXNzLXN0YXRlXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcHJvY2Vzcy1zdGF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vcHJvY2Vzcy1zdGF0ZS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzU3RhdGVDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHByb2Nlc3NTZWxlY3Rpb25JZCA9IFwicHJvY2Vzc1wiO1xuICBwcm9jZXNzU2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlO1xuICBlbXB0eVN0YXRlMTogRW1wdHlTdGF0ZSA9IHsgaWNvbjogXCJcIiwgdGV4dDogXCJcIiwgY2xhc3NOYW1lOiBcIlwiIH07XG4gIGVtcHR5U3RhdGUyOiBFbXB0eVN0YXRlID0geyBpY29uOiBcIlwiLCB0ZXh0OiBcIlwiLCBjbGFzc05hbWU6IFwiXCIgfTtcbiAgZmlsdGVyQ2FjaGVLZXkgPSBcImVvLnByb2Nlc3MubGlzdC5maWx0ZXJcIjtcbiAgc29ydENhY2hlS2V5ID0gXCJlby5wcm9jZXNzLmxpc3Quc29ydFwiO1xuICBWSVJUVUFMX0xJU1RfQ0hVTktfU0laRSA9IDUwO1xuICBmaWx0ZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBkZWZhdWx0RmlsdGVyRm9ybVZhbHVlID0ge1xuICAgIG1vZGVsRkNOOiBudWxsLFxuICAgIHJ1bm5pbmdGQ046IHRydWUsXG4gICAgcGF1c2VkRkNOOiB0cnVlLFxuICAgIGNyZWF0ZWRGQ046IHRydWUsXG4gICAgY2FuY2VsZWRGQ046IHRydWUsXG4gICAgZmFpbGVkRkNOOiB0cnVlLFxuICAgIGNvbXBsZXRlZEZDTjogdHJ1ZSxcbiAgICBzdGFydFRpbWVGQ046IG51bGxcbiAgfTtcbiAgc29ydFBhcmFtcyA9IHtcbiAgICBzdGFydHRpbWU6ICcnXG4gIH07XG4gIGRlZmF1bHRTb3J0UGFyYW1zID0ge1xuICAgIHN0YXJ0dGltZTogJydcbiAgfTtcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIHNldHRpbmdzID0ge307XG4gIGNvbERlZnM6IENvbERlZltdID0gW1xuICAgIHtcbiAgICAgIGhlYWRlck5hbWU6IFwiXCIsXG4gICAgICBmaWVsZDogXCJfX2N1c3RvbVwiLFxuICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgIGZpbHRlcjogZmFsc2VcbiAgICB9XG4gIF07XG4gIHByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0ID0ge1xuICAgIGVudHJpZXM6IFtdLFxuICAgIGNvbmZpZzoge1xuICAgICAgdmFsdWVGaWVsZDogXCJuYW1lXCIsXG4gICAgICBzdWJFbnRyaWVzRmllbGQ6IFwibW9kZWxzXCJcbiAgICB9XG4gIH07XG5cbiAgQFZpZXdDaGlsZChcImVvR3JpZFwiKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwQ2FjaGU6IEFwcENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN0YXRlLnByb2Nlc3MnKSk7XG5cbiAgICAvL3NlY29uZGFyeSBzZWxlY3Rpb24gaW5zdGFuY2UgZm9yIGluYm94IGl0ZW1zXG4gICAgdGhpcy5wcm9jZXNzU2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uY3JlYXRlTmV3KHRoaXMucHJvY2Vzc1NlbGVjdGlvbklkKTtcblxuICAgIHRoaXMuZmV0Y2hQcm9jZXNzTW9kZWxzKCkuc3Vic2NyaWJlKHByb2Nlc3NNb2RlbHMgPT4ge1xuICAgICAgdGhpcy5wcm9jZXNzTW9kZWxzTGlzdE9iamVjdC5lbnRyaWVzID0gcHJvY2Vzc01vZGVscztcbiAgICB9KTtcblxuICAgIHRoaXMuYXBwQ2FjaGVcbiAgICAgIC5nZXRJdGVtKHRoaXMuZmlsdGVyQ2FjaGVLZXkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBmaWx0ZXJWYWx1ZSA9PlxuICAgICAgICAgIHRoaXMuaW5pdEZpbHRlcihcbiAgICAgICAgICAgIGZpbHRlclZhbHVlID8gZmlsdGVyVmFsdWUgOiB0aGlzLmRlZmF1bHRGaWx0ZXJGb3JtVmFsdWVcbiAgICAgICAgICApLFxuICAgICAgICAoKSA9PiB0aGlzLmluaXRGaWx0ZXIodGhpcy5kZWZhdWx0RmlsdGVyRm9ybVZhbHVlKVxuICAgICAgKTtcblxuICAgIHRoaXMuYXBwQ2FjaGUuZ2V0SXRlbSh0aGlzLnNvcnRDYWNoZUtleSkuc3Vic2NyaWJlKHNvcnRQYXJhbXMgPT4ge1xuICAgICAgaWYgKHNvcnRQYXJhbXMpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1zID0gc29ydFBhcmFtcztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQcm9jZXNzTW9kZWxzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoXCIvYnBtL21hbmFnZW1lbnQvcHJvamVjdD9pbmNsdWRlTW9kZWxzPXRydWVcIik7XG4gIH1cblxuICBwcml2YXRlIGluaXRGaWx0ZXIoZmlsdGVyVmFsdWUpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG1vZGVsRkNOOiBbZmlsdGVyVmFsdWUubW9kZWxGQ05dLFxuICAgICAgcnVubmluZ0ZDTjogW2ZpbHRlclZhbHVlLnJ1bm5pbmdGQ05dLFxuICAgICAgcGF1c2VkRkNOOiBbZmlsdGVyVmFsdWUucGF1c2VkRkNOXSxcbiAgICAgIGNyZWF0ZWRGQ046IFtmaWx0ZXJWYWx1ZS5jcmVhdGVkRkNOXSxcbiAgICAgIGNhbmNlbGVkRkNOOiBbZmlsdGVyVmFsdWUuY2FuY2VsZWRGQ05dLFxuICAgICAgZmFpbGVkRkNOOiBbZmlsdGVyVmFsdWUuZmFpbGVkRkNOXSxcbiAgICAgIGNvbXBsZXRlZEZDTjogW2ZpbHRlclZhbHVlLmNvbXBsZXRlZEZDTl0sXG4gICAgICBzdGFydFRpbWVGQ046IFtcbiAgICAgICAgZmlsdGVyVmFsdWUuc3RhcnRUaW1lRkNOID9cbiAgICAgICAgbmV3IFJhbmdlVmFsdWUoXG4gICAgICAgICAgZmlsdGVyVmFsdWUuc3RhcnRUaW1lRkNOLm9wZXJhdG9yLFxuICAgICAgICAgIGZpbHRlclZhbHVlLnN0YXJ0VGltZUZDTi5maXJzdFZhbHVlLFxuICAgICAgICAgIGZpbHRlclZhbHVlLnN0YXJ0VGltZUZDTi5zZWNvbmRWYWx1ZVxuICAgICAgICApIDogbnVsbFxuICAgICAgXVxuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuYXBwQ2FjaGUuc2V0SXRlbSh0aGlzLmZpbHRlckNhY2hlS2V5LCB0aGlzLmZpbHRlckZvcm0udmFsdWUpLnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5vblBhZ2VDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgMTAwKTtcbiAgfVxuXG4gIHJlZnJlc2hMaXN0KCkge1xuICAgIHRoaXMub25QYWdlQ2hhbmdlZCgpO1xuICB9XG5cbiAgaW5pdEdyaWQoKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbDogMCwgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRX07XG4gICAgdGhpcy5zb3J0RmllbGRzID0gW1xuICAgICAge2ZpZWxkOiAnc3RhcnR0aW1lJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZ3JpZC5zb3J0LmRhdGUnKSwgc29ydDogbnVsbH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7IGNvdW50OiAwIH0sXG4gICAgICBjb2x1bW5EZWZzOiB0aGlzLmNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICAgIHJvd0RhdGE6IFtdXG4gICAgfTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm0uc2V0VmFsdWUodGhpcy5kZWZhdWx0RmlsdGVyRm9ybVZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzb3J0KGV2dDogQ3VzdG9tRXZlbnQpIHtcbiAgICB0aGlzLnNvcnRQYXJhbXMuc3RhcnR0aW1lID0gZXZ0LmRldGFpbFswXT8uc29ydCA/IGV2dC5kZXRhaWxbMF0uc29ydCA6ICcnO1xuICAgIHRoaXMuYXBwQ2FjaGUuc2V0SXRlbSh0aGlzLnNvcnRDYWNoZUtleSwgdGhpcy5zb3J0UGFyYW1zKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uUGFnZUNoYW5nZWQoKTtcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZWQocGFnZTogbnVtYmVyID0gMSkge1xuICAgIHRoaXMuZmV0Y2hSb3dEYXRhKHtcbiAgICAgIHN0YXJ0Um93OiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFICogKHBhZ2UgLSAxKSxcbiAgICAgIHN1Y2Nlc3NDYWxsYmFjazogKHJvd3MsIHRvdGFsKSA9PiB7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaT8uc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHJvd3MpO1xuICAgICAgICB0aGlzLnNldHRpbmdzID0ge3RvdGFsLCBzaXplOiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFLCBwYWdlfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtcykge1xuICAgIGNvbnN0IHBhZ2UgPSBNYXRoLmZsb29yKHBhcmFtcy5zdGFydFJvdyAvIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUpO1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLnNvcnRQYXJhbXMuc3RhcnR0aW1lO1xuICAgIHRoaXMuZ2V0UHJvY2Vzc2VzKHsgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZSwgc29ydH0pLnN1YnNjcmliZSgocHJvY2Vzc2VzKSA9PiB7XG4gICAgICBpZiAocGFyYW1zLnN0YXJ0Um93ID09PSAwKSB7XG4gICAgICAgIHRoaXMuZW1wdHlTdGF0ZTEgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUocHJvY2Vzc2VzLmNvbnRlbnQgPyBwcm9jZXNzZXMuY29udGVudC5sZW5ndGggOiAtMSwgdW5kZWZpbmVkLCAnaWNfbm8tZmlsZS5zdmcnKTtcbiAgICAgICAgdGhpcy5lbXB0eVN0YXRlMiA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShwcm9jZXNzZXMuY29udGVudCA/IHByb2Nlc3Nlcy5jb250ZW50Lmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuICAgICAgfVxuICAgICAgdGhpcy5lb0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHByb2Nlc3Nlcy50b3RhbEVsZW1lbnRzO1xuICAgICAgdGhpcy5lb0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHByb2Nlc3Nlcy50b3RhbEVsZW1lbnRzO1xuICAgICAgcGFyYW1zLnN1Y2Nlc3NDYWxsYmFjayhwcm9jZXNzZXMucHJvY2Vzc2VzLCBwcm9jZXNzZXMudG90YWxFbGVtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb2Nlc3NlcyhvcHRpb25zKSB7XG4gICAgbGV0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvcHJvY2Vzc2VzYCwgb3B0aW9ucyB8fCB7fSk7XG4gICAgdXJsID0gdGhpcy5hZGRGaWx0ZXJQYXJhbXNUb1VybCh1cmwpO1xuICAgIHVybCA9IHRoaXMuYWRkU29ydFBhcmFtc1RvVXJsKHVybCk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJsLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IHByb2Nlc3NlcyA9IHJlc3BvbnNlLmNvbnRlbnQubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VzcyA9IG5ldyBQcm9jZXNzKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3M7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzcG9uc2UucHJvY2Vzc2VzID0gdGhpcy5hZGRJY29uVXJsKHByb2Nlc3Nlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlsdGVyUGFyYW1zVG9VcmwodXJsKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyRm9ybSB8fCAhdGhpcy5maWx0ZXJGb3JtLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdXJsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUuY3JlYXRlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5ydW5uaW5nRkNOKSB7XG4gICAgICB1cmwgKz0gXCImc3RhdGU9MjBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5jb21wbGV0ZWRGQ04pIHtcbiAgICAgIHVybCArPSBcIiZzdGF0ZT0zMFwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLnZhbHVlLnBhdXNlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTQwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUuY2FuY2VsZWRGQ04pIHtcbiAgICAgIHVybCArPSBcIiZzdGF0ZT01MFwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLnZhbHVlLmZhaWxlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTYwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pIHtcbiAgICAgIHVybCArPVxuICAgICAgICBcIiZtb2RlbGlkPVwiICsgdGhpcy5nZXRNb2RlbElkRnJvbU5hbWUodGhpcy5maWx0ZXJGb3JtLnZhbHVlLm1vZGVsRkNOKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGFydFRpbWVGQ04gJiYgdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXJ0VGltZUZDTi5maXJzdFZhbHVlKSB7XG5cbiAgICAgIGNvbnN0IHtvcGVyYXRvciwgZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWV9ID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXJ0VGltZUZDTjtcbiAgICAgIGNvbnN0IHF1ZXJ5OiBhbnkgPSBuZXcgU2VhcmNoRmlsdGVyKCdzdGFydHRpbWUnLCBvcGVyYXRvciwgZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIHt0aW1lOiB0cnVlLCB0aW1lem9uZTogdHJ1ZX0pLnRvRGF0ZVRpbWVRdWVyeSgpO1xuXG4gICAgICBpZiAocXVlcnkubyA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMKSB7XG4gICAgICAgIHVybCArPSAnJnN0YXJ0dGltZV9lcT0nICsgcXVlcnkudjE7XG4gICAgICB9XG4gICAgICBpZiAocXVlcnkuby5tYXRjaChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuR1JFQVRFUl9PUl9FUVVBTCkpIHtcbiAgICAgICAgdXJsICs9IFwiJnN0YXJ0dGltZV9ndGU9XCIgKyBxdWVyeS52MTtcbiAgICAgIH1cbiAgICAgIGlmIChxdWVyeS5vLm1hdGNoKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMKSkge1xuICAgICAgICB1cmwgKz0gXCImc3RhcnR0aW1lX2x0ZT1cIiArIChxdWVyeS5vID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIID8gcXVlcnkudjIgOiBxdWVyeS52MSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIGFkZFNvcnRQYXJhbXNUb1VybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNvcnRQYXJhbXMuc3RhcnR0aW1lKSB7XG4gICAgICB1cmwgKz0gJyZzb3J0PXN0YXJ0dGltZSwnICsgdGhpcy5zb3J0UGFyYW1zLnN0YXJ0dGltZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kZWxJZEZyb21OYW1lKG1vZGVsTmFtZSk6IHN0cmluZyB7XG4gICAgbGV0IGlkID0gXCJcIjtcbiAgICB0aGlzLnByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0LmVudHJpZXMuZm9yRWFjaChtb2RlbCA9PiB7XG4gICAgICBpZiAobW9kZWwubmFtZSA9PT0gbW9kZWxOYW1lKSB7XG4gICAgICAgIGlkID0gbW9kZWwuaWQ7XG4gICAgICB9IGVsc2UgaWYgKG1vZGVsLm1vZGVscykge1xuICAgICAgICBtb2RlbC5tb2RlbHMuZm9yRWFjaChzdWJtb2RlbCA9PiB7XG4gICAgICAgICAgaWYgKHN1Ym1vZGVsLm5hbWUgPT09IG1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaWQgPSBzdWJtb2RlbC5pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFkZEljb25VcmwocHJvY2Vzc2VzOiBQcm9jZXNzW10pIHtcbiAgICBwcm9jZXNzZXMuZm9yRWFjaCgocHJvY2VzczogUHJvY2VzcykgPT4ge1xuICAgICAgaWYgKCFwcm9jZXNzLmljb25pZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5zdGF0ZSA9PT0gJ0VSUk9SU1VTUEVOREVEJykge1xuICAgICAgICAgIHByb2Nlc3MuaWNvbnVybCA9ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbV93YXJuaW5nLnN2Zyc7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5zdGF0ZSA9PT0gJ0NPTVBMRVRFRCcpIHtcbiAgICAgICAgICBwcm9jZXNzLmljb251cmwgPSAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG1fZG9uZS5zdmcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3MuaWNvbnVybCA9IFwiYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG0uc3ZnXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvY2Vzc2VzO1xuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMuZGF0YSkge1xuICAgICAgbGV0IGljb24gPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoXCJpY29uXCIsIHBhcmFtcywge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHVybDogcGFyYW1zLmRhdGEuaWNvbmlkID8gXCJcIiA6IHBhcmFtcy5kYXRhLmljb251cmwsXG4gICAgICAgICAgaWNvbklkOiAhcGFyYW1zLmRhdGEuaWNvbmlkID8gXCJcIiA6IHBhcmFtcy5kYXRhLmljb25pZCxcbiAgICAgICAgICBsYWJlbDogcGFyYW1zLmRhdGEubW9kZWxuYW1lXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7IHZhbHVlOiBwYXJhbXMuZGF0YS5zdGFydHRpbWUsIHBhdHRlcm46ICdlb1Nob3J0RGF0ZScgfSk7XG4gICAgICBjb25zdCBlbmRUaW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywgeyB2YWx1ZTogcGFyYW1zLmRhdGEuZW5kdGltZSwgcGF0dGVybjogJ2VvU2hvcnREYXRlJyB9KTtcbiAgICAgIGNvbnN0IGhhc0Vycm9yID0gcGFyYW1zLmRhdGEuc3RhdGUgPT09ICdFUlJPUlNVU1BFTkRFRCcgPyAnZXJyb3InIDogJyc7XG4gICAgICBjb25zdCBoYXNOb3RZZXRCZWVuU3RhcnRlZCA9IHBhcmFtcy5kYXRhLnN0YXRlID09PSAwID8gJ25vdHN0YXJ0ZWQnIDogJyc7XG4gICAgICBjb25zdCBlbmRUaW1lTWFya3VwOiBzdHJpbmcgPSAoZW5kVGltZS5sZW5ndGgpID8gYDxkaXYgY2xhc3M9XCJkYXRlIGVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZW5kLnRpbWUubGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj4gJHtlbmRUaW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogXCJcIjtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZU1hcmt1cDogc3RyaW5nID0gc3RhcnRUaW1lLmxlbmd0aFxuICAgICAgICA/IGA8ZGl2IGNsYXNzPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVvLnByb2Nlc3Muc3RhcnQudGltZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj4gJHtzdGFydFRpbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBcIlwiO1xuXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gJHtoYXNFcnJvcn0gJHtoYXNOb3RZZXRCZWVuU3RhcnRlZH1cIiB1bnNlbGVjdGFibGU+XG4gICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ndGl0bGUnPiR7cGFyYW1zLmRhdGEudGl0bGUgfHwgXCIuLi5cIn08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZGVzY3JpcHRpb24nPiR7cGFyYW1zLmRhdGEubW9kZWxuYW1lIHx8IFwiLi4uXCJ9PC9kaXY+XG4gICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgJHtzdGFydFRpbWVNYXJrdXB9XG4gICAgICAgICAgICAgICAgJHtlbmRUaW1lTWFya3VwfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPC9kaXY+XG4gICAgICAgIGA7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0R3JpZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxuXG4gIGhhc0NoYW5nZWQob1YsIG5WKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9WKSAhPT0gSlNPTi5zdHJpbmdpZnkoblYpO1xuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidpbmJveC5zdGF0ZSdcIj5cbiAgPCEtLSBsaXN0IC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cIntvdXQ6IHByb2Nlc3NTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbS5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnByb2Nlc3M8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHJlZnJlc2gtYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaExpc3QoKVwiXG4gICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmxheS1maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGRlZmF1bHRGaWx0ZXJGb3JtVmFsdWUsIGZpbHRlckZvcm0/LnZhbHVlKVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZFN1YmplY3QsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvRmlsdGVyLm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uZmlsdGVyLmJ5PC9kaXY+XG4gICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiICpuZ0lmPSdmaWx0ZXJGb3JtJz5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiKCdlby5zdGF0ZS5wcm9jZXNzLmZpbHRlci5sYWJlbHMubW9kZWwnIHwgdHJhbnNsYXRlKVwiICpuZ0lmPVwicHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1keW5hbWljLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwibW9kZWxGQ05cIiBbcGlja2VyVGl0bGVdPVwiJ01vZGVscydcIiBbbGlzdE9iamVjdF09XCJwcm9jZXNzTW9kZWxzTGlzdE9iamVjdFwiPjwvZW8tZHluYW1pYy1saXN0PlxuICAgICAgICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiKCdlby5zdGF0ZS5wcm9jZXNzLmZpbHRlci5sYWJlbHMucnVubmluZycgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicnVubmluZ0ZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5wYXVzZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInBhdXNlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5jcmVhdGVkJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJjcmVhdGVkRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgW2xhYmVsXT1cIignZW8uc3RhdGUucHJvY2Vzcy5maWx0ZXIubGFiZWxzLmNhbmNlbGVkJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5mYWlsZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImZhaWxlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5jb21wbGV0ZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImNvbXBsZXRlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5zdGFydHRpbWUnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWRhdGV0aW1lLXJhbmdlIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0VGltZUZDTlwiIFt3aXRoVGltZV09XCJmYWxzZVwiPjwvZW8tZGF0ZXRpbWUtcmFuZ2U+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJyZXNldC1maWx0ZXJcIiAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIiAqbmdJZj1cImhhc0NoYW5nZWQoZGVmYXVsdEZpbHRlckZvcm1WYWx1ZSwgZmlsdGVyRm9ybT8udmFsdWUpXCI+UmVzZXQgZmlsdGVyPC9idXR0b24+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5LXNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NvcnQuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGRlZmF1bHRTb3J0UGFyYW1zLCBzb3J0UGFyYW1zKVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0IFtpZF09XCIncHJvY2Vzcy5zb3J0J1wiIChjaGFuZ2UpPVwic29ydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8ZW8tZ3JpZCAjZW9HcmlkXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwiZ3JpZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtzZWxlY3RGaXJzdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgKGVvR3JpZENvdW50Q2hhbmdlZCk9XCJlb0xpc3Qub25Db3VudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChlb0dyaWRGb2N1c0NoYW5nZWQpPVwiZW9MaXN0Lm9uRm9jdXNDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZW8tdG90YWwtY291bnQgW2dyaWRDb3VudF09XCJlb0xpc3QuZ3JpZENvdW50XCIgW291dHNpZGVHcmlkXT1cImZhbHNlXCIgY2xhc3M9XCJmbGV4LXJvd1wiPjwvZW8tdG90YWwtY291bnQ+XG4gICAgICAgICAgICA8ZW8tcGFnaW5hdGlvbiBbc2V0dGluZ3NdPVwic2V0dGluZ3NcIiAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby1wYWdpbmF0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZSBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2JwbS5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5wcm9jZXNzLmxpc3QuZW1wdHknfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDxlby1yZXNldC1maWx0ZXIgW2lzRmlsdGVyQWN0aXZlXT1cIm9GaWx0ZXIuYWN0aXZlXCIgKGNsaWNrKT1cInJlc2V0RmlsdGVycygpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBwcm9jZXNzIGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tcHJvY2Vzcy1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7aW46IHByb2Nlc3NTZWxlY3Rpb25JZH1cIiBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlMVwiXG4gICAgW3BsdWdpbnNdPVwiJ3Byb2Nlc3MtZGV0YWlscy10YWIucHJvY2VzcycgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1wcm9jZXNzLWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBvYmplY3QgZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI0MFwiPlxuICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhY2hlTGF5b3V0XT1cIidwcm9jZXNzLnN0YXRlLm9iamVjdC1kZXRhaWxzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGx1Z2luc109XCInb2JqZWN0LWRldGFpbHMtdGFiLnByb2Nlc3MnIHwgcGx1Z2luc1wiPlxuICAgICAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuPC95dmMtc3BsaXQtdmlldz5cbiJdfQ==
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcm9jZXNzLXN0YXRlL3Byb2Nlc3Mtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvcHJvY2Vzcy1zdGF0ZS9wcm9jZXNzLXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQThDLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFvQixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFckksT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBUW5DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT3ZELE1BQU0sT0FBTyxxQkFBcUI7SUErQ2hDLFlBQ1MsU0FBMkIsRUFDM0IsVUFBc0IsRUFDdEIsU0FBMkIsRUFDMUIsS0FBd0IsRUFDeEIsT0FBdUIsRUFDdkIsRUFBc0IsRUFDdEIsWUFBOEIsRUFDOUIsUUFBeUIsRUFDekIsY0FBcUM7UUFSdEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBckQvQyx1QkFBa0Is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QUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBM1VVLHFCQUFxQjtrR0FBckIscUJBQXFCLDBKQ3BCbEMsdzdMQTBHQTs7MkZEdEZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7NFVBaURQLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sRGVmLCBHcmlkT3B0aW9uc30gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QXBwQ2FjaGVTZXJ2aWNlLCBCYWNrZW5kU2VydmljZSwgQnBtU2VydmljZSwgUHJvY2VzcywgUmFuZ2VWYWx1ZSwgU2VhcmNoRmlsdGVyLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2VvLWZyYW1ld29ya1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZW8tcHJvY2Vzcy1zdGF0ZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3Byb2Nlc3Mtc3RhdGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3Byb2Nlc3Mtc3RhdGUuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1N0YXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IHtcbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBwcm9jZXNzU2VsZWN0aW9uSWQgPSBcInByb2Nlc3NcIjtcbiAgcHJvY2Vzc1NlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZTtcbiAgZW1wdHlTdGF0ZTE6IEVtcHR5U3RhdGUgPSB7IGljb246IFwiXCIsIHRleHQ6IFwiXCIsIGNsYXNzTmFtZTogXCJcIiB9O1xuICBlbXB0eVN0YXRlMjogRW1wdHlTdGF0ZSA9IHsgaWNvbjogXCJcIiwgdGV4dDogXCJcIiwgY2xhc3NOYW1lOiBcIlwiIH07XG4gIGZpbHRlckNhY2hlS2V5ID0gXCJlby5wcm9jZXNzLmxpc3QuZmlsdGVyXCI7XG4gIHNvcnRDYWNoZUtleSA9IFwiZW8ucHJvY2Vzcy5saXN0LnNvcnRcIjtcbiAgVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSA1MDtcbiAgZmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZGVmYXVsdEZpbHRlckZvcm1WYWx1ZSA9IHtcbiAgICBtb2RlbEZDTjogbnVsbCxcbiAgICBydW5uaW5nRkNOOiB0cnVlLFxuICAgIHBhdXNlZEZDTjogdHJ1ZSxcbiAgICBjcmVhdGVkRkNOOiB0cnVlLFxuICAgIGNhbmNlbGVkRkNOOiB0cnVlLFxuICAgIGZhaWxlZEZDTjogdHJ1ZSxcbiAgICBjb21wbGV0ZWRGQ046IHRydWUsXG4gICAgc3RhcnRUaW1lRkNOOiBudWxsXG4gIH07XG4gIHNvcnRQYXJhbXMgPSB7XG4gICAgc3RhcnR0aW1lOiAnJ1xuICB9O1xuICBkZWZhdWx0U29ydFBhcmFtcyA9IHtcbiAgICBzdGFydHRpbWU6ICcnXG4gIH07XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICBzZXR0aW5ncyA9IHt9O1xuICBjb2xEZWZzOiBDb2xEZWZbXSA9IFtcbiAgICB7XG4gICAgICBoZWFkZXJOYW1lOiBcIlwiLFxuICAgICAgZmllbGQ6IFwiX19jdXN0b21cIixcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5jZWxsUmVuZGVyZXIsXG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgfVxuICBdO1xuICBwcm9jZXNzTW9kZWxzTGlzdE9iamVjdCA9IHtcbiAgICBlbnRyaWVzOiBbXSxcbiAgICBjb25maWc6IHtcbiAgICAgIHZhbHVlRmllbGQ6IFwibmFtZVwiLFxuICAgICAgc3ViRW50cmllc0ZpZWxkOiBcIm1vZGVsc1wiXG4gICAgfVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoXCJlb0dyaWRcIikgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGJwbVNlcnZpY2U6IEJwbVNlcnZpY2UsXG4gICAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVtcHR5OiBFbXB0eVN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcENhY2hlOiBBcHBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdGF0ZS5wcm9jZXNzJykpO1xuXG4gICAgLy9zZWNvbmRhcnkgc2VsZWN0aW9uIGluc3RhbmNlIGZvciBpbmJveCBpdGVtc1xuICAgIHRoaXMucHJvY2Vzc1NlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmNyZWF0ZU5ldyh0aGlzLnByb2Nlc3NTZWxlY3Rpb25JZCk7XG5cbiAgICB0aGlzLmZldGNoUHJvY2Vzc01vZGVscygpLnN1YnNjcmliZShwcm9jZXNzTW9kZWxzID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcyA9IHByb2Nlc3NNb2RlbHM7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcENhY2hlXG4gICAgICAuZ2V0SXRlbSh0aGlzLmZpbHRlckNhY2hlS2V5KVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgZmlsdGVyVmFsdWUgPT5cbiAgICAgICAgICB0aGlzLmluaXRGaWx0ZXIoXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZSA/IGZpbHRlclZhbHVlIDogdGhpcy5kZWZhdWx0RmlsdGVyRm9ybVZhbHVlXG4gICAgICAgICAgKSxcbiAgICAgICAgKCkgPT4gdGhpcy5pbml0RmlsdGVyKHRoaXMuZGVmYXVsdEZpbHRlckZvcm1WYWx1ZSlcbiAgICAgICk7XG5cbiAgICB0aGlzLmFwcENhY2hlLmdldEl0ZW0odGhpcy5zb3J0Q2FjaGVLZXkpLnN1YnNjcmliZShzb3J0UGFyYW1zID0+IHtcbiAgICAgIGlmIChzb3J0UGFyYW1zKSB7XG4gICAgICAgIHRoaXMuc29ydFBhcmFtcyA9IHNvcnRQYXJhbXM7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoUHJvY2Vzc01vZGVscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KFwiL2JwbS9tYW5hZ2VtZW50L3Byb2plY3Q/aW5jbHVkZU1vZGVscz10cnVlXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RmlsdGVyKGZpbHRlclZhbHVlKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBtb2RlbEZDTjogW2ZpbHRlclZhbHVlLm1vZGVsRkNOXSxcbiAgICAgIHJ1bm5pbmdGQ046IFtmaWx0ZXJWYWx1ZS5ydW5uaW5nRkNOXSxcbiAgICAgIHBhdXNlZEZDTjogW2ZpbHRlclZhbHVlLnBhdXNlZEZDTl0sXG4gICAgICBjcmVhdGVkRkNOOiBbZmlsdGVyVmFsdWUuY3JlYXRlZEZDTl0sXG4gICAgICBjYW5jZWxlZEZDTjogW2ZpbHRlclZhbHVlLmNhbmNlbGVkRkNOXSxcbiAgICAgIGZhaWxlZEZDTjogW2ZpbHRlclZhbHVlLmZhaWxlZEZDTl0sXG4gICAgICBjb21wbGV0ZWRGQ046IFtmaWx0ZXJWYWx1ZS5jb21wbGV0ZWRGQ05dLFxuICAgICAgc3RhcnRUaW1lRkNOOiBbXG4gICAgICAgIGZpbHRlclZhbHVlLnN0YXJ0VGltZUZDTiA/XG4gICAgICAgIG5ldyBSYW5nZVZhbHVlKFxuICAgICAgICAgIGZpbHRlclZhbHVlLnN0YXJ0VGltZUZDTi5vcGVyYXRvcixcbiAgICAgICAgICBmaWx0ZXJWYWx1ZS5zdGFydFRpbWVGQ04uZmlyc3RWYWx1ZSxcbiAgICAgICAgICBmaWx0ZXJWYWx1ZS5zdGFydFRpbWVGQ04uc2Vjb25kVmFsdWVcbiAgICAgICAgKSA6IG51bGxcbiAgICAgIF1cbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlckZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFwcENhY2hlLnNldEl0ZW0odGhpcy5maWx0ZXJDYWNoZUtleSwgdGhpcy5maWx0ZXJGb3JtLnZhbHVlKS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMub25QYWdlQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vblBhZ2VDaGFuZ2VkKCksIDEwMCk7XG4gIH1cblxuICByZWZyZXNoTGlzdCgpIHtcbiAgICB0aGlzLm9uUGFnZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGluaXRHcmlkKCkge1xuICAgIHRoaXMuc2V0dGluZ3MgPSB7dG90YWw6IDAsIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkV9O1xuICAgIHRoaXMuc29ydEZpZWxkcyA9IFtcbiAgICAgIHtmaWVsZDogJ3N0YXJ0dGltZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmdyaWQuc29ydC5kYXRlJyksIHNvcnQ6IG51bGx9LFxuICAgIF07XG5cbiAgICBjb25zdCBzb3J0Q29sRGVmcyA9IEN1c3RvbVNvcnRDb21wb25lbnQuc29ydENvbERlZnModGhpcy5zb3J0RmllbGRzKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgY29udGV4dDogeyBjb3VudDogMCB9LFxuICAgICAgY29sdW1uRGVmczogdGhpcy5jb2xEZWZzLmNvbmNhdChzb3J0Q29sRGVmcyksXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgcm93SGVpZ2h0OiA4MCxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgICByb3dEYXRhOiBbXVxuICAgIH07XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLnNldFZhbHVlKHRoaXMuZGVmYXVsdEZpbHRlckZvcm1WYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc29ydChldnQ6IEN1c3RvbUV2ZW50KSB7XG4gICAgdGhpcy5zb3J0UGFyYW1zLnN0YXJ0dGltZSA9IGV2dC5kZXRhaWxbMF0/LnNvcnQgPyBldnQuZGV0YWlsWzBdLnNvcnQgOiAnJztcbiAgICB0aGlzLmFwcENhY2hlLnNldEl0ZW0odGhpcy5zb3J0Q2FjaGVLZXksIHRoaXMuc29ydFBhcmFtcykuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2VkKCk7XG4gIH1cblxuICBvblBhZ2VDaGFuZ2VkKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgICB0aGlzLmZldGNoUm93RGF0YSh7XG4gICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzLCB0b3RhbCkgPT4ge1xuICAgICAgICB0aGlzLmVvR3JpZC5hcGk/LnNldEdyaWRPcHRpb24oJ3Jvd0RhdGEnLCByb3dzKTtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZX07XG4gICAgICAgIHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtcykge1xuICAgIGNvbnN0IHBhZ2UgPSBNYXRoLmZsb29yKHBhcmFtcy5zdGFydFJvdyAvIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUpO1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLnNvcnRQYXJhbXMuc3RhcnR0aW1lO1xuICAgIHRoaXMuZ2V0UHJvY2Vzc2VzKHsgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcGFnZSwgc29ydH0pLnN1YnNjcmliZSgocHJvY2Vzc2VzKSA9PiB7XG4gICAgICBpZiAocGFyYW1zLnN0YXJ0Um93ID09PSAwKSB7XG4gICAgICAgIHRoaXMuZW1wdHlTdGF0ZTEgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUocHJvY2Vzc2VzLmNvbnRlbnQgPyBwcm9jZXNzZXMuY29udGVudC5sZW5ndGggOiAtMSwgdW5kZWZpbmVkLCAnaWNfbm8tZmlsZS5zdmcnKTtcbiAgICAgICAgdGhpcy5lbXB0eVN0YXRlMiA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShwcm9jZXNzZXMuY29udGVudCA/IHByb2Nlc3Nlcy5jb250ZW50Lmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuICAgICAgfVxuICAgICAgdGhpcy5lb0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHByb2Nlc3Nlcy50b3RhbEVsZW1lbnRzO1xuICAgICAgdGhpcy5lb0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHByb2Nlc3Nlcy50b3RhbEVsZW1lbnRzO1xuICAgICAgcGFyYW1zLnN1Y2Nlc3NDYWxsYmFjayhwcm9jZXNzZXMucHJvY2Vzc2VzLCBwcm9jZXNzZXMudG90YWxFbGVtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb2Nlc3NlcyhvcHRpb25zKSB7XG4gICAgbGV0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvcHJvY2Vzc2VzYCwgb3B0aW9ucyB8fCB7fSk7XG4gICAgdXJsID0gdGhpcy5hZGRGaWx0ZXJQYXJhbXNUb1VybCh1cmwpO1xuICAgIHVybCA9IHRoaXMuYWRkU29ydFBhcmFtc1RvVXJsKHVybCk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJsLCB0aGlzLmJhY2tlbmQuZ2V0QnBtQmFzZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IHByb2Nlc3NlcyA9IHJlc3BvbnNlLmNvbnRlbnQubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VzcyA9IG5ldyBQcm9jZXNzKGl0ZW0pO1xuICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3M7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzcG9uc2UucHJvY2Vzc2VzID0gdGhpcy5hZGRJY29uVXJsKHByb2Nlc3Nlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlsdGVyUGFyYW1zVG9VcmwodXJsKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyRm9ybSB8fCAhdGhpcy5maWx0ZXJGb3JtLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdXJsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUuY3JlYXRlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5ydW5uaW5nRkNOKSB7XG4gICAgICB1cmwgKz0gXCImc3RhdGU9MjBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5jb21wbGV0ZWRGQ04pIHtcbiAgICAgIHVybCArPSBcIiZzdGF0ZT0zMFwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLnZhbHVlLnBhdXNlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTQwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUuY2FuY2VsZWRGQ04pIHtcbiAgICAgIHVybCArPSBcIiZzdGF0ZT01MFwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLnZhbHVlLmZhaWxlZEZDTikge1xuICAgICAgdXJsICs9IFwiJnN0YXRlPTYwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pIHtcbiAgICAgIHVybCArPVxuICAgICAgICBcIiZtb2RlbGlkPVwiICsgdGhpcy5nZXRNb2RlbElkRnJvbU5hbWUodGhpcy5maWx0ZXJGb3JtLnZhbHVlLm1vZGVsRkNOKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGFydFRpbWVGQ04gJiYgdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXJ0VGltZUZDTi5maXJzdFZhbHVlKSB7XG5cbiAgICAgIGNvbnN0IHtvcGVyYXRvciwgZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWV9ID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXJ0VGltZUZDTjtcbiAgICAgIGNvbnN0IHF1ZXJ5OiBhbnkgPSBuZXcgU2VhcmNoRmlsdGVyKCdzdGFydHRpbWUnLCBvcGVyYXRvciwgZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIHt0aW1lOiB0cnVlLCB0aW1lem9uZTogdHJ1ZX0pLnRvRGF0ZVRpbWVRdWVyeSgpO1xuXG4gICAgICBpZiAocXVlcnkubyA9PT0gU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMKSB7XG4gICAgICAgIHVybCArPSAnJnN0YXJ0dGltZV9lcT0nICsgcXVlcnkudjE7XG4gICAgICB9XG4gICAgICBpZiAocXVlcnkuby5tYXRjaChTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuR1JFQVRFUl9PUl9FUVVBTCkpIHtcbiAgICAgICAgdXJsICs9IFwiJnN0YXJ0dGltZV9ndGU9XCIgKyBxdWVyeS52MTtcbiAgICAgIH1cbiAgICAgIGlmIChxdWVyeS5vLm1hdGNoKFNlYXJjaEZpbHRlci5PUEVSQVRPUi5MRVNTX09SX0VRVUFMKSkge1xuICAgICAgICB1cmwgKz0gXCImc3RhcnR0aW1lX2x0ZT1cIiArIChxdWVyeS5vID09PSBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU5URVJWQUxfSU5DTFVERV9CT1RIID8gcXVlcnkudjIgOiBxdWVyeS52MSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIGFkZFNvcnRQYXJhbXNUb1VybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNvcnRQYXJhbXMuc3RhcnR0aW1lKSB7XG4gICAgICB1cmwgKz0gJyZzb3J0PXN0YXJ0dGltZSwnICsgdGhpcy5zb3J0UGFyYW1zLnN0YXJ0dGltZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kZWxJZEZyb21OYW1lKG1vZGVsTmFtZSk6IHN0cmluZyB7XG4gICAgbGV0IGlkID0gXCJcIjtcbiAgICB0aGlzLnByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0LmVudHJpZXMuZm9yRWFjaChtb2RlbCA9PiB7XG4gICAgICBpZiAobW9kZWwubmFtZSA9PT0gbW9kZWxOYW1lKSB7XG4gICAgICAgIGlkID0gbW9kZWwuaWQ7XG4gICAgICB9IGVsc2UgaWYgKG1vZGVsLm1vZGVscykge1xuICAgICAgICBtb2RlbC5tb2RlbHMuZm9yRWFjaChzdWJtb2RlbCA9PiB7XG4gICAgICAgICAgaWYgKHN1Ym1vZGVsLm5hbWUgPT09IG1vZGVsTmFtZSkge1xuICAgICAgICAgICAgaWQgPSBzdWJtb2RlbC5pZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFkZEljb25VcmwocHJvY2Vzc2VzOiBQcm9jZXNzW10pIHtcbiAgICBwcm9jZXNzZXMuZm9yRWFjaCgocHJvY2VzczogUHJvY2VzcykgPT4ge1xuICAgICAgaWYgKCFwcm9jZXNzLmljb25pZCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5zdGF0ZSA9PT0gJ0VSUk9SU1VTUEVOREVEJykge1xuICAgICAgICAgIHByb2Nlc3MuaWNvbnVybCA9ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbV93YXJuaW5nLnN2Zyc7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5zdGF0ZSA9PT0gJ0NPTVBMRVRFRCcpIHtcbiAgICAgICAgICBwcm9jZXNzLmljb251cmwgPSAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG1fZG9uZS5zdmcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3MuaWNvbnVybCA9IFwiYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19icG0uc3ZnXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcHJvY2Vzc2VzO1xuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMuZGF0YSkge1xuICAgICAgbGV0IGljb24gPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoXCJpY29uXCIsIHBhcmFtcywge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIHVybDogcGFyYW1zLmRhdGEuaWNvbmlkID8gXCJcIiA6IHBhcmFtcy5kYXRhLmljb251cmwsXG4gICAgICAgICAgaWNvbklkOiAhcGFyYW1zLmRhdGEuaWNvbmlkID8gXCJcIiA6IHBhcmFtcy5kYXRhLmljb25pZCxcbiAgICAgICAgICBsYWJlbDogcGFyYW1zLmRhdGEubW9kZWxuYW1lXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7IHZhbHVlOiBwYXJhbXMuZGF0YS5zdGFydHRpbWUsIHBhdHRlcm46ICdlb1Nob3J0RGF0ZScgfSk7XG4gICAgICBjb25zdCBlbmRUaW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywgeyB2YWx1ZTogcGFyYW1zLmRhdGEuZW5kdGltZSwgcGF0dGVybjogJ2VvU2hvcnREYXRlJyB9KTtcbiAgICAgIGNvbnN0IGhhc0Vycm9yID0gcGFyYW1zLmRhdGEuc3RhdGUgPT09ICdFUlJPUlNVU1BFTkRFRCcgPyAnZXJyb3InIDogJyc7XG4gICAgICBjb25zdCBoYXNOb3RZZXRCZWVuU3RhcnRlZCA9IHBhcmFtcy5kYXRhLnN0YXRlID09PSAwID8gJ25vdHN0YXJ0ZWQnIDogJyc7XG4gICAgICBjb25zdCBlbmRUaW1lTWFya3VwOiBzdHJpbmcgPSAoZW5kVGltZS5sZW5ndGgpID8gYDxkaXYgY2xhc3M9XCJkYXRlIGVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByb2Nlc3MuZW5kLnRpbWUubGFiZWwnKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj4gJHtlbmRUaW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogXCJcIjtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZU1hcmt1cDogc3RyaW5nID0gc3RhcnRUaW1lLmxlbmd0aFxuICAgICAgICA/IGA8ZGl2IGNsYXNzPVwiZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVvLnByb2Nlc3Muc3RhcnQudGltZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWVcIj4gJHtzdGFydFRpbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBcIlwiO1xuXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0gJHtoYXNFcnJvcn0gJHtoYXNOb3RZZXRCZWVuU3RhcnRlZH1cIiB1bnNlbGVjdGFibGU+XG4gICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ndGl0bGUnPiR7cGFyYW1zLmRhdGEudGl0bGUgfHwgXCIuLi5cIn08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZGVzY3JpcHRpb24nPiR7cGFyYW1zLmRhdGEubW9kZWxuYW1lIHx8IFwiLi4uXCJ9PC9kaXY+XG4gICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgJHtzdGFydFRpbWVNYXJrdXB9XG4gICAgICAgICAgICAgICAgJHtlbmRUaW1lTWFya3VwfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgPC9kaXY+XG4gICAgICAgIGA7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0R3JpZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxuXG4gIGhhc0NoYW5nZWQob1YsIG5WKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9WKSAhPT0gSlNPTi5zdHJpbmdpZnkoblYpO1xuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidpbmJveC5zdGF0ZSdcIj5cbiAgPCEtLSBsaXN0IC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cIntvdXQ6IHByb2Nlc3NTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2JwbS5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLnN0YXRlLnByb2Nlc3M8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHJlZnJlc2gtYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaExpc3QoKVwiXG4gICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmxheS1maWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGRlZmF1bHRGaWx0ZXJGb3JtVmFsdWUsIGZpbHRlckZvcm0/LnZhbHVlKVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZFN1YmplY3QsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvRmlsdGVyLm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uZmlsdGVyLmJ5PC9kaXY+XG4gICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiICpuZ0lmPSdmaWx0ZXJGb3JtJz5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiKCdlby5zdGF0ZS5wcm9jZXNzLmZpbHRlci5sYWJlbHMubW9kZWwnIHwgdHJhbnNsYXRlKVwiICpuZ0lmPVwicHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1keW5hbWljLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwibW9kZWxGQ05cIiBbcGlja2VyVGl0bGVdPVwiJ01vZGVscydcIiBbbGlzdE9iamVjdF09XCJwcm9jZXNzTW9kZWxzTGlzdE9iamVjdFwiPjwvZW8tZHluYW1pYy1saXN0PlxuICAgICAgICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCBbbGFiZWxdPVwiKCdlby5zdGF0ZS5wcm9jZXNzLmZpbHRlci5sYWJlbHMucnVubmluZycgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgICAgICAgICAgICA8ZW8tY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicnVubmluZ0ZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5wYXVzZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInBhdXNlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5jcmVhdGVkJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJjcmVhdGVkRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgPGVvLWZvcm0taW5wdXQgW2xhYmVsXT1cIignZW8uc3RhdGUucHJvY2Vzcy5maWx0ZXIubGFiZWxzLmNhbmNlbGVkJyB8IHRyYW5zbGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJjYW5jZWxlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5mYWlsZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImZhaWxlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5jb21wbGV0ZWQnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImNvbXBsZXRlZEZDTlwiIFt0cmlzdGF0ZV09XCJmYWxzZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5zdGFydHRpbWUnIHwgdHJhbnNsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgPGVvLWRhdGV0aW1lLXJhbmdlIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0VGltZUZDTlwiIFt3aXRoVGltZV09XCJmYWxzZVwiPjwvZW8tZGF0ZXRpbWUtcmFuZ2U+XG4gICAgICAgICAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJyZXNldC1maWx0ZXJcIiAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIiAqbmdJZj1cImhhc0NoYW5nZWQoZGVmYXVsdEZpbHRlckZvcm1WYWx1ZSwgZmlsdGVyRm9ybT8udmFsdWUpXCI+UmVzZXQgZmlsdGVyPC9idXR0b24+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5LXNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NvcnQuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGRlZmF1bHRTb3J0UGFyYW1zLCBzb3J0UGFyYW1zKVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0IFtpZF09XCIncHJvY2Vzcy5zb3J0J1wiIChjaGFuZ2UpPVwic29ydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8ZW8tZ3JpZCAjZW9HcmlkXG4gICAgICAgICAgICAgICAgICpuZ0lmPVwiZ3JpZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtzZWxlY3RGaXJzdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgKGVvR3JpZENvdW50Q2hhbmdlZCk9XCJlb0xpc3Qub25Db3VudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIChlb0dyaWRGb2N1c0NoYW5nZWQpPVwiZW9MaXN0Lm9uRm9jdXNDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZW8tdG90YWwtY291bnQgW2dyaWRDb3VudF09XCJlb0xpc3QuZ3JpZENvdW50XCIgW291dHNpZGVHcmlkXT1cImZhbHNlXCIgY2xhc3M9XCJmbGV4LXJvd1wiPjwvZW8tdG90YWwtY291bnQ+XG4gICAgICAgICAgICA8ZW8tcGFnaW5hdGlvbiBbc2V0dGluZ3NdPVwic2V0dGluZ3NcIiAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCI+PC9lby1wYWdpbmF0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZSBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2JwbS5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5wcm9jZXNzLmxpc3QuZW1wdHknfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDxlby1yZXNldC1maWx0ZXIgW2lzRmlsdGVyQWN0aXZlXT1cIm9GaWx0ZXIuYWN0aXZlXCIgKGNsaWNrKT1cInJlc2V0RmlsdGVycygpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBwcm9jZXNzIGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tcHJvY2Vzcy1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7aW46IHByb2Nlc3NTZWxlY3Rpb25JZH1cIiBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlMVwiXG4gICAgW3BsdWdpbnNdPVwiJ3Byb2Nlc3MtZGV0YWlscy10YWIucHJvY2VzcycgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1wcm9jZXNzLWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBvYmplY3QgZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI0MFwiPlxuICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhY2hlTGF5b3V0XT1cIidwcm9jZXNzLnN0YXRlLm9iamVjdC1kZXRhaWxzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGx1Z2luc109XCInb2JqZWN0LWRldGFpbHMtdGFiLnByb2Nlc3MnIHwgcGx1Z2luc1wiPlxuICAgICAgICA8L2VvLW9iamVjdC1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuPC95dmMtc3BsaXQtdmlldz5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { Component, ViewChild } from '@angular/core';
|
|
3
3
|
import { NavigationEnd } from '@angular/router';
|
|
4
|
-
import { StoredQuery, Utils } from '@eo-sdk/core';
|
|
4
|
+
import { EnaioEvent, StoredQuery, Utils } from '@eo-sdk/core';
|
|
5
5
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
6
6
|
import { debounceTime, first } from 'rxjs/operators';
|
|
7
7
|
import { CustomSortComponent } from '../../eo-framework/grid/extensions/custom-sort/custom-sort.component';
|
|
@@ -30,7 +30,7 @@ import * as i19 from "../../eo-framework/grid/extensions/reset-filter/reset-filt
|
|
|
30
30
|
import * as i20 from "../../eo-framework/list-container/list-container.component";
|
|
31
31
|
import * as i21 from "@yuuvis/components/split-view";
|
|
32
32
|
let StoredQueriesStateComponent = class StoredQueriesStateComponent {
|
|
33
|
-
constructor(route, router, pendingChanges, translate, selection, storedQueriesService, titleService, userService, appSearch) {
|
|
33
|
+
constructor(route, router, pendingChanges, translate, selection, storedQueriesService, titleService, userService, appSearch, eventService) {
|
|
34
34
|
this.route = route;
|
|
35
35
|
this.router = router;
|
|
36
36
|
this.pendingChanges = pendingChanges;
|
|
@@ -40,6 +40,7 @@ let StoredQueriesStateComponent = class StoredQueriesStateComponent {
|
|
|
40
40
|
this.titleService = titleService;
|
|
41
41
|
this.userService = userService;
|
|
42
42
|
this.appSearch = appSearch;
|
|
43
|
+
this.eventService = eventService;
|
|
43
44
|
this.storedQueries = [];
|
|
44
45
|
this.typeFilterFields = [];
|
|
45
46
|
this.textFilterParams = {};
|
|
@@ -190,8 +191,18 @@ let StoredQueriesStateComponent = class StoredQueriesStateComponent {
|
|
|
190
191
|
this.createNewStoredQuery();
|
|
191
192
|
}
|
|
192
193
|
});
|
|
194
|
+
this.eventService.on(EnaioEvent.STORED_OBJECT_SHARED)
|
|
195
|
+
.pipe(untilDestroyed(this))
|
|
196
|
+
.subscribe(() => {
|
|
197
|
+
this.eoGrid.api.refreshCells({ force: true });
|
|
198
|
+
});
|
|
199
|
+
this.eventService.on(EnaioEvent.STORED_OBJECT_FAVORISED)
|
|
200
|
+
.pipe(untilDestroyed(this))
|
|
201
|
+
.subscribe(() => {
|
|
202
|
+
this.eoGrid.api.refreshCells({ force: true });
|
|
203
|
+
});
|
|
193
204
|
}
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StoredQueriesStateComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.PendingChangesService }, { token: i3.TranslateService }, { token: i4.SelectionService }, { token: i3.StoredQueriesService }, { token: i5.PageTitleService }, { token: i3.UserService }, { token: i6.AppSearchService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StoredQueriesStateComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.PendingChangesService }, { token: i3.TranslateService }, { token: i4.SelectionService }, { token: i3.StoredQueriesService }, { token: i5.PageTitleService }, { token: i3.UserService }, { token: i6.AppSearchService }, { token: i3.EventService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
206
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: StoredQueriesStateComponent, selector: "eo-stored-queries-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'stored.queries.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"25\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.sidebar.navigation.storedqueries</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.folder.filter.title' | translate\" [id]=\"'stored.queries.text'\"\n [matchFields]=\"['name']\" [filterParams]=\"textFilterParams\"></eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'stored.queries.type'\"\n [title]=\"'eo.folder.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'stored.queries.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_search.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.stored.queries.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- details -->\n <ng-template yvcSplitArea [size]=\"75\">\n <eo-stored-query-details (notifyList)=\"notifyList($event)\"></eo-stored-query-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host ::ng-deep eo-grid .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep eo-grid .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep eo-grid .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep eo-grid .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep eo-grid .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep eo-grid .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons{font-size:15px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons img{width:16px;height:16px;padding:3px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons .object-type-label{display:none}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons.shared-with-me>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--text-color-hint)}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i9.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i10.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"] }, { kind: "component", type: i11.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i12.StoredQueryDetailsComponent, selector: "eo-stored-query-details", inputs: ["query"], outputs: ["notifyList"] }, { kind: "component", type: i13.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i14.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i15.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i16.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i17.TextFilterComponent, selector: "eo-text-filter", inputs: ["title", "placeholder", "enableSave", "filterParams", "matchFields"] }, { kind: "component", type: i18.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i19.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i20.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "component", type: i21.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i21.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
196
207
|
};
|
|
197
208
|
StoredQueriesStateComponent = __decorate([
|
|
@@ -201,8 +212,8 @@ export { StoredQueriesStateComponent };
|
|
|
201
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StoredQueriesStateComponent, decorators: [{
|
|
202
213
|
type: Component,
|
|
203
214
|
args: [{ selector: 'eo-stored-queries-state', template: "<yvc-split-view [layoutSettingsID]=\"'stored.queries.state'\">\n <!-- list -->\n <ng-template yvcSplitArea [size]=\"25\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_saved_search.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.sidebar.navigation.storedqueries</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <eo-text-filter [title]=\"'eo.folder.filter.title' | translate\" [id]=\"'stored.queries.text'\"\n [matchFields]=\"['name']\" [filterParams]=\"textFilterParams\"></eo-text-filter>\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'stored.queries.type'\"\n [title]=\"'eo.folder.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\"\n [iconTitle]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'stored.queries.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n </div>\n </div>\n <div class=\"eo-body\">\n <eo-grid #eoGrid [gridOptions]=\"gridOptions\" *ngIf=\"gridOptions?.rowData\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" [selectFirst]=\"selectFirst\" (eoGridCountChanged)=\"eoList.onCountChanged($event)\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_search.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.stored.queries.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n\n <!-- details -->\n <ng-template yvcSplitArea [size]=\"75\">\n <eo-stored-query-details (notifyList)=\"notifyList($event)\"></eo-stored-query-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host ::ng-deep eo-grid .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep eo-grid .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep eo-grid .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep eo-grid .ag-cell .list-item .content .title{font-weight:var(--font-weight-medium);font-size:var(--font-body)}:host ::ng-deep eo-grid .ag-cell .list-item .content .description{font-size:var(--font-caption)}:host ::ng-deep eo-grid .ag-cell .list-item .content .date{color:rgba(var(--color-black-rgb),.4)}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons{font-size:15px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons img{width:16px;height:16px;padding:3px}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons .object-type-label{display:none}:host ::ng-deep eo-grid .ag-cell .list-item .content .icons.shared-with-me>span{border-radius:2px;-webkit-border-radius:2px;background-color:var(--text-color-hint)}\n"] }]
|
|
204
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.PendingChangesService }, { type: i3.TranslateService }, { type: i4.SelectionService }, { type: i3.StoredQueriesService }, { type: i5.PageTitleService }, { type: i3.UserService }, { type: i6.AppSearchService }], propDecorators: { eoGrid: [{
|
|
215
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.PendingChangesService }, { type: i3.TranslateService }, { type: i4.SelectionService }, { type: i3.StoredQueriesService }, { type: i5.PageTitleService }, { type: i3.UserService }, { type: i6.AppSearchService }, { type: i3.EventService }], propDecorators: { eoGrid: [{
|
|
205
216
|
type: ViewChild,
|
|
206
217
|
args: ['eoGrid']
|
|
207
218
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWlCLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBNEMsV0FBVyxFQUFpQyxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDMUgsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTW5ELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBR3pHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRN0UsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBMkI7SUFldEMsWUFBb0IsS0FBcUIsRUFDL0IsTUFBYyxFQUNkLGNBQXFDLEVBQ3RDLFNBQTJCLEVBQzFCLFNBQTJCLEVBQzNCLG9CQUEwQyxFQUMxQyxZQUE4QixFQUM5QixXQUF3QixFQUN4QixTQUEyQjtRQVJqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUMvQixXQUFNLEdB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RUFBRSxDQUFDO1FBRXZCLHlFQUF5RTtRQUN6RSx3REFBd0Q7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsSUFBSSxLQUFLLFlBQVksYUFBYSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyw2QkFBNkIsRUFBRSxDQUFDO2dCQUNoRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdNVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixpS0N2QnhDLHF4R0E2RGlCOztBRHRDSiwyQkFBMkI7SUFOdkMsWUFBWSxFQUFFO0dBTUYsMkJBQTJCLENBK012Qzs7MkZBL01ZLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7cVVBaUJkLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sRGVmLCBHcmlkT3B0aW9uc30gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFb1VzZXIsIFNlYXJjaFF1ZXJ5LCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9jdXN0b20tc29ydC9jdXN0b20tc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7VHlwZUZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnktdHlwZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zdG9yZWQtcXVlcmllcy1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZWQtcXVlcmllcy1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b3JlZC1xdWVyaWVzLXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcmllc1N0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCwgT25EZXN0cm95IHtcblxuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgZ3JpZERhdGE6IFN0b3JlZFF1ZXJ5W107XG4gIHRleHRGaWx0ZXJQYXJhbXM6IGFueSA9IHt9O1xuXG4gIHVzZXI6IEVvVXNlcjtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoOiBBcHBTZWFyY2hTZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNlYXJjaC50aXRsZS5zdG9yZWRxdWVyaWVzJykpO1xuICB9XG5cbiAgc2VsZWN0KHF1ZXJ5OiBTdG9yZWRRdWVyeSkge1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvY3VzKHF1ZXJ5KTtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIHRoaXMuZW9HcmlkLmFwaS5kZXNlbGVjdEFsbCgpO1xuICAgICAgdGhpcy5lb0dyaWQuYXBpLmNsZWFyRm9jdXNlZENlbGwoKTtcbiAgICB9XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgZ2V0U3RvcmVkUXVlcnlzKCkge1xuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAuc3RvcmVkUXVlcmllcyQucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApXG4gICAgICApLnN1YnNjcmliZSgocXVlcmllc1N1YnNjcmlwdGlvbjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBxdWVyaWVzU3Vic2NyaXB0aW9uLnF1ZXJpZXMuc29ydChVdGlscy5zb3J0VmFsdWVzKCduYW1lJykpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnZmF2b3JpdGUnLCAnZGVzYycpKTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKHRoaXMuZ3JpZERhdGEsIHF1ZXJpZXNTdWJzY3JpcHRpb24uc2VsZWN0ICYmIHRoaXMuZ3JpZERhdGEgPyBxdWVyaWVzU3Vic2NyaXB0aW9uLnNlbGVjdCA6IG51bGwpO1xuICAgICAgfSk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLnJlZnJlc2hTdG9yZWRRdWVyaWVzKCk7XG4gIH1cblxuICBnZXRSb3dJbmRleChpZCkge1xuICAgIGlmICh0aGlzLmVvR3JpZCAmJiBpZCkge1xuICAgICAgY29uc3Qgcm93Tm9kZSA9IHRoaXMuZW9HcmlkLmFwaS5nZXRSb3dOb2RlKGlkKTtcbiAgICAgIHJldHVybiByb3dOb2RlID8gcm93Tm9kZS5yb3dJbmRleCA6IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbm90aWZ5TGlzdCh2YWwpIHtcbiAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgIGNvbnN0IHt1bnNlbGVjdCwgdXBkYXRlLCBwYXlsb2FkfSA9IHZhbDtcbiAgICAgIGlmICghdW5zZWxlY3QgJiYgIXVwZGF0ZSAmJiAhcGF5bG9hZCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0eXBlRmlsdGVyKG5vZGUsIGl0ZW06IHN0cmluZykge1xuICAgIHN3aXRjaCAoaXRlbSkge1xuICAgICAgY2FzZSBUeXBlRmlsdGVyLmZhdm9yZWQ6XG4gICAgICBjYXNlIFR5cGVGaWx0ZXIuc2hhcmVkOlxuICAgICAgICByZXR1cm4gIVV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2Uobm9kZS5kYXRhW2l0ZW1dKTtcbiAgICAgIGNhc2UgVHlwZUZpbHRlci5vdGhlcnM6XG4gICAgICAgIHJldHVybiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLmZhdm9yZWRdKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKG5vZGUuZGF0YVtUeXBlRmlsdGVyLnNoYXJlZF0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgdHlwZUZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoVHlwZUZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5zdG9yZWRxdWVyeS4ke2l0ZW19LmZpbHRlci50aXRsZWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy50eXBlRmlsdGVyKG5vZGUsIFR5cGVGaWx0ZXJbaXRlbV0pLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBpZDogaXRlbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGEsIGlkKSB7XG5cbiAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgLy8gdG9kbzogaG90Zml4OiBlbmFibGUgYXV0byBzZWxlY3Rpb24gaW4gY2FzZSBpdCB3YXMgZGlzYWJsZWQgYnkgbmV3IHF1ZXJ5XG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnNlbGVjdEZpcnN0ID0gdHJ1ZSksIDEwMDApO1xuICAgICAgcmV0dXJuIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSwgaWQpO1xuICAgIH1cblxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBsZXQgY29sRGVmczogQ29sRGVmW10gPSBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgfVxuICAgIF07XG5cbiAgICB0aGlzLnRleHRGaWx0ZXJQYXJhbXMgPSB7Y29udGV4dDoge2RlZmF1bHRWYWx1ZTogJyd9fTtcbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbe2ZpZWxkOiAnbmFtZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQudGl0bGUnKSwgc29ydDogbnVsbH1dO1xuICAgIGxldCBzb3J0Q29sRGVmcyA9IEN1c3RvbVNvcnRDb21wb25lbnQuc29ydENvbERlZnModGhpcy5zb3J0RmllbGRzKTtcblxuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7Y291bnQ6IGRhdGEubGVuZ3RoLCBjdXJyZW50VXNlcjogdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpfSxcbiAgICAgIHJvd0RhdGE6IGRhdGEsXG4gICAgICBjb2x1bW5EZWZzOiBjb2xEZWZzLmNvbmNhdChzb3J0Q29sRGVmcyksXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgcm93SGVpZ2h0OiA4MFxuICAgIH07XG4gIH1cblxuICBjZWxsUmVuZGVyZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3duID0gcGFyYW1zLmNvbnRleHQuY3VycmVudFVzZXIubmFtZS50b0xvd2VyQ2FzZSgpID09PSBwYXJhbXMuZGF0YS51c2VyLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBjb25zdCBmYXZJY29uVGl0bGUgPSAhb3duID8gJ2VvLnN0b3JlZHF1ZXJ5LmZhdm9yZWRmb3IudGl0bGUnIDogJ2VvLnN0b3JlZHF1ZXJ5LmZhdm9yZWQudGl0bGUnO1xuICAgIGNvbnN0IHNoYXJlSWNvblRpdGxlID0gIW93biA/ICdlby5zdG9yZWRxdWVyeS5zaGFyZWRmb3IudGl0bGUnIDogJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlZC50aXRsZSc7XG5cbiAgICBjb25zdCBmYXZJY29uID0gVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5T3JGYWxzZShwYXJhbXMuZGF0YVtUeXBlRmlsdGVyLmZhdm9yZWRdKSA/ICcnIDpcbiAgICAgIHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignaWNvbicsIHBhcmFtcywge1xuICAgICAgICB2YWx1ZToge2xhYmVsOiBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudChmYXZJY29uVGl0bGUpLCB1cmw6ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Zhdm9yaXRlLnN2Zyd9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IHNoYXJlSWNvbiA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2UocGFyYW1zLmRhdGFbVHlwZUZpbHRlci5zaGFyZWRdKSA/ICcnIDpcbiAgICAgIHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignaWNvbicsIHBhcmFtcywge1xuICAgICAgICB2YWx1ZToge2xhYmVsOiBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudChzaGFyZUljb25UaXRsZSksIHVybDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2hhcmUuc3ZnJ31cbiAgICAgIH0pO1xuXG5cbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW1cIiB1bnNlbGVjdGFibGU+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRlbnQnPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3RpdGxlJz4ke3BhcmFtcy5kYXRhLm5hbWUgfHwgJyd9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naWNvbnMgJHshb3duID8gJ3NoYXJlZC13aXRoLW1lJyA6ICcnfSc+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj4ke2Zhdkljb259PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+JHtzaGFyZUljb259PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1ldGFcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgbGV0IGZvY3VzZWQgPSB0aGlzLnNlbGVjdGlvbi5nZXRGb2N1cygpO1xuICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLnJlbW92ZVN0b3JlZFF1ZXJ5KGZvY3VzZWQuaWQpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5ld1N0b3JlZFF1ZXJ5KCkge1xuICAgIHRoaXMuYXBwU2VhcmNoLnF1ZXJ5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgICBmaXJzdCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChxdWVyeTogU2VhcmNoUXVlcnkpID0+IHtcbiAgICAgICAgbGV0IHNxID0gbmV3IFN0b3JlZFF1ZXJ5KCk7XG4gICAgICAgIHNxLnNldFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgICAgdGhpcy5zZWxlY3Qoc3EpO1xuICAgICAgfVxuICAgICAgKTtcbiAgICAvLyBnZXQgcmlkIG9mIHRoZSBxdWVyeSBwYXJhbVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3N0b3JlZC1xdWVyaWVzJ10sIHtyZXBsYWNlVXJsOiB0cnVlfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnlzKCk7XG5cbiAgICAvLyBpbiBjYXNlIG9mIGdldHRpbmcgdGhlIGNyZWF0ZSBwYXJhbSwgd2UnbGwgZmV0Y2ggdGhlIGxhdGVzdCBxdWVyeSBmcm9tXG4gICAgLy8gYXBwU2VhcmNoU2VydmljZSBhbmQgY3JlYXRlIGEgbmV3IFN0b3JlZFF1ZXJ5IGZyb20gaXRcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1snY3JlYXRlJ10pIHtcbiAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMuY3JlYXRlTmV3U3RvcmVkUXVlcnkoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgJiYgZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMgPT09ICcvc3RvcmVkLXF1ZXJpZXM/Y3JlYXRlPXRydWUnKSB7XG4gICAgICAgICAgdGhpcy5jcmVhdGVOZXdTdG9yZWRRdWVyeSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG59XG4iLCI8eXZjLXNwbGl0LXZpZXcgW2xheW91dFNldHRpbmdzSURdPVwiJ3N0b3JlZC5xdWVyaWVzLnN0YXRlJ1wiPlxuICA8IS0tIGxpc3QgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMjVcIj5cbiAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie31cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3NhdmVkX3NlYXJjaC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLnNpZGViYXIubmF2aWdhdGlvbi5zdG9yZWRxdWVyaWVzPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpO2NTb3J0LnJlc2V0KCk7cmVmcmVzaEdyaWQoKVwiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ubGlzdC5yZWZyZXNoJyB8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb0ZpbHRlciBjbGFzcz1cIm92ZXJsYXktZmlsdGVyXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5maWx0ZXInIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLWZpbHRlciAjY0ZpbHRlciAoY2hhbmdlKT1cImNGaWx0ZXIudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvRmlsdGVyLm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxlby10ZXh0LWZpbHRlciBbdGl0bGVdPVwiJ2VvLmZvbGRlci5maWx0ZXIudGl0bGUnIHwgdHJhbnNsYXRlXCIgW2lkXT1cIidzdG9yZWQucXVlcmllcy50ZXh0J1wiXG4gICAgICAgICAgICAgICAgW21hdGNoRmllbGRzXT1cIlsnbmFtZSddXCIgW2ZpbHRlclBhcmFtc109XCJ0ZXh0RmlsdGVyUGFyYW1zXCI+PC9lby10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgPGVvLXNldC1maWx0ZXIgW29wZXJhdG9yXT1cIidPUidcIiBbaWRdPVwiJ3N0b3JlZC5xdWVyaWVzLnR5cGUnXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2VvLmZvbGRlci5maWx0ZXIuc2VjdGlvbi5vYmplY3R0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidHlwZUZpbHRlckZpZWxkc1wiPjwvZW8tc2V0LWZpbHRlcj5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgY2xhc3M9XCJvdmVybGF5LXNvcnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zb3J0LnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ3N0b3JlZC5xdWVyaWVzLnNvcnQnXCIgKGNoYW5nZSk9XCJjU29ydC51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWJvZHlcIj5cbiAgICAgICAgPGVvLWdyaWQgI2VvR3JpZCBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIiAqbmdJZj1cImdyaWRPcHRpb25zPy5yb3dEYXRhXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiIFtzZWxlY3RGaXJzdF09XCJzZWxlY3RGaXJzdFwiIChlb0dyaWRDb3VudENoYW5nZWQpPVwiZW9MaXN0Lm9uQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3NlYXJjaC5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5zdG9yZWQucXVlcmllcy5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjc1XCI+XG4gICAgPGVvLXN0b3JlZC1xdWVyeS1kZXRhaWxzIChub3RpZnlMaXN0KT1cIm5vdGlmeUxpc3QoJGV2ZW50KVwiPjwvZW8tc3RvcmVkLXF1ZXJ5LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvc3RvcmVkLXF1ZXJpZXMtc3RhdGUvc3RvcmVkLXF1ZXJpZXMtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQWlCLGFBQWEsRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxVQUFVLEVBQTJELFdBQVcsRUFBaUMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3BKLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQU1uRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUd6RyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTdFLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBZXRDLFlBQW9CLEtBQXFCLEVBQy9CLE1BQWMsRUFDZCxjQUFxQyxFQUN0QyxTQUEyQixFQUMxQixTQUEyQixFQUMzQixvQkFBMEMsRUFDMUMsWUFBOEIsRUFDOUIsV0FBd0IsRUFDeEIsU0FBMkIsRUFDM0IsWUFBMEI7UUFUaEIsVUFBSyxHQUFMLEtB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O1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0ExTlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsaUtDdkJ4QyxxeEdBNkRpQjs7QUR0Q0osMkJBQTJCO0lBTnZDLFlBQVksRUFBRTtHQU1GLDJCQUEyQixDQTROdkM7OzJGQTVOWSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO2dXQWlCZCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RW5haW9FdmVudCwgRW9Vc2VyLCBFdmVudFNlcnZpY2UsIFNlYXJjaFF1ZXJ5LCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtBcHBTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWFyY2gvYXBwLXNlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9jdXN0b20tc29ydC9jdXN0b20tc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7VHlwZUZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnktdHlwZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1zdG9yZWQtcXVlcmllcy1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZWQtcXVlcmllcy1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0b3JlZC1xdWVyaWVzLXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcmllc1N0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCwgT25EZXN0cm95IHtcblxuICBzdG9yZWRRdWVyaWVzOiBTdG9yZWRRdWVyeVtdID0gW107XG4gIHNlbGVjdGVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgZ3JpZERhdGE6IFN0b3JlZFF1ZXJ5W107XG4gIHRleHRGaWx0ZXJQYXJhbXM6IGFueSA9IHt9O1xuXG4gIHVzZXI6IEVvVXNlcjtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoOiBBcHBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc2VhcmNoLnRpdGxlLnN0b3JlZHF1ZXJpZXMnKSk7XG4gIH1cblxuICBzZWxlY3QocXVlcnk6IFN0b3JlZFF1ZXJ5KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9jdXMocXVlcnkpO1xuICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgdGhpcy5lb0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gICAgICB0aGlzLmVvR3JpZC5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeXMoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2VcbiAgICAgIC5zdG9yZWRRdWVyaWVzJC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMClcbiAgICAgICkuc3Vic2NyaWJlKChxdWVyaWVzU3Vic2NyaXB0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcy5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ25hbWUnKSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdmYXZvcml0ZScsICdkZXNjJykpO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5ncmlkRGF0YSwgcXVlcmllc1N1YnNjcmlwdGlvbi5zZWxlY3QgJiYgdGhpcy5ncmlkRGF0YSA/IHF1ZXJpZXNTdWJzY3JpcHRpb24uc2VsZWN0IDogbnVsbCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJlZnJlc2hHcmlkKCkge1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UucmVmcmVzaFN0b3JlZFF1ZXJpZXMoKTtcbiAgfVxuXG4gIGdldFJvd0luZGV4KGlkKSB7XG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIGlkKSB7XG4gICAgICBjb25zdCByb3dOb2RlID0gdGhpcy5lb0dyaWQuYXBpLmdldFJvd05vZGUoaWQpO1xuICAgICAgcmV0dXJuIHJvd05vZGUgPyByb3dOb2RlLnJvd0luZGV4IDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBub3RpZnlMaXN0KHZhbCkge1xuICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgY29uc3Qge3Vuc2VsZWN0LCB1cGRhdGUsIHBheWxvYWR9ID0gdmFsO1xuICAgICAgaWYgKCF1bnNlbGVjdCAmJiAhdXBkYXRlICYmICFwYXlsb2FkKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lb0dyaWQuc2VsZWN0Um93KDApLCA1MDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHR5cGVGaWx0ZXIobm9kZSwgaXRlbTogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChpdGVtKSB7XG4gICAgICBjYXNlIFR5cGVGaWx0ZXIuZmF2b3JlZDpcbiAgICAgIGNhc2UgVHlwZUZpbHRlci5zaGFyZWQ6XG4gICAgICAgIHJldHVybiAhVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5T3JGYWxzZShub2RlLmRhdGFbaXRlbV0pO1xuICAgICAgY2FzZSBUeXBlRmlsdGVyLm90aGVyczpcbiAgICAgICAgcmV0dXJuIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2Uobm9kZS5kYXRhW1R5cGVGaWx0ZXIuZmF2b3JlZF0pICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eU9yRmFsc2Uobm9kZS5kYXRhW1R5cGVGaWx0ZXIuc2hhcmVkXSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB0eXBlRmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJGaWVsZHMgPSBPYmplY3Qua2V5cyhUeXBlRmlsdGVyKS5tYXAoaXRlbSA9PiAoe1xuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYGVvLnN0b3JlZHF1ZXJ5LiR7aXRlbX0uZmlsdGVyLnRpdGxlYCksXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiB0aGlzLnR5cGVGaWx0ZXIobm9kZSwgVHlwZUZpbHRlcltpdGVtXSksXG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIGlkOiBpdGVtXG4gICAgfSkpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMudHlwZUZpbHRlcnMoKTtcbiAgfVxuXG4gIHVwZGF0ZUdyaWQoZGF0YSwgaWQpIHtcblxuICAgIGlmICh0aGlzLmVvR3JpZCAmJiB0aGlzLmVvR3JpZC5pc1JlYWR5KSB7XG4gICAgICAvLyB0b2RvOiBob3RmaXg6IGVuYWJsZSBhdXRvIHNlbGVjdGlvbiBpbiBjYXNlIGl0IHdhcyBkaXNhYmxlZCBieSBuZXcgcXVlcnlcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuc2VsZWN0Rmlyc3QgPSB0cnVlKSwgMTAwMCk7XG4gICAgICByZXR1cm4gdGhpcy5lb0dyaWQudXBkYXRlUm93RGF0YShkYXRhLCBpZCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcblxuICAgIGxldCBjb2xEZWZzOiBDb2xEZWZbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyTmFtZTogJycsXG4gICAgICAgIGZpZWxkOiAnX19jdXN0b20nLFxuICAgICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuY2VsbFJlbmRlcmVyLFxuICAgICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgICB9XG4gICAgXTtcblxuICAgIHRoaXMudGV4dEZpbHRlclBhcmFtcyA9IHtjb250ZXh0OiB7ZGVmYXVsdFZhbHVlOiAnJ319O1xuICAgIHRoaXMuc29ydEZpZWxkcyA9IFt7ZmllbGQ6ICduYW1lJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC50aXRsZScpLCBzb3J0OiBudWxsfV07XG4gICAgbGV0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IHtjb3VudDogZGF0YS5sZW5ndGgsIGN1cnJlbnRVc2VyOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCl9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcbiAgICBjb25zdCBvd24gPSBwYXJhbXMuY29udGV4dC5jdXJyZW50VXNlci5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHBhcmFtcy5kYXRhLnVzZXIudG9Mb3dlckNhc2UoKTtcblxuICAgIGNvbnN0IGZhdkljb25UaXRsZSA9ICFvd24gPyAnZW8uc3RvcmVkcXVlcnkuZmF2b3JlZGZvci50aXRsZScgOiAnZW8uc3RvcmVkcXVlcnkuZmF2b3JlZC50aXRsZSc7XG4gICAgY29uc3Qgc2hhcmVJY29uVGl0bGUgPSAhb3duID8gJ2VvLnN0b3JlZHF1ZXJ5LnNoYXJlZGZvci50aXRsZScgOiAnZW8uc3RvcmVkcXVlcnkuc2hhcmVkLnRpdGxlJztcblxuICAgIGNvbnN0IGZhdkljb24gPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHlPckZhbHNlKHBhcmFtcy5kYXRhW1R5cGVGaWx0ZXIuZmF2b3JlZF0pID8gJycgOlxuICAgICAgcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdpY29uJywgcGFyYW1zLCB7XG4gICAgICAgIHZhbHVlOiB7bGFiZWw6IHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KGZhdkljb25UaXRsZSksIHVybDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmF2b3JpdGUuc3ZnJ31cbiAgICAgIH0pO1xuXG4gICAgY29uc3Qgc2hhcmVJY29uID0gVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5T3JGYWxzZShwYXJhbXMuZGF0YVtUeXBlRmlsdGVyLnNoYXJlZF0pID8gJycgOlxuICAgICAgcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdpY29uJywgcGFyYW1zLCB7XG4gICAgICAgIHZhbHVlOiB7bGFiZWw6IHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KHNoYXJlSWNvblRpdGxlKSwgdXJsOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zaGFyZS5zdmcnfVxuICAgICAgfSk7XG5cblxuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxpc3QtaXRlbVwiIHVuc2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29udGVudCc+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ndGl0bGUnPiR7cGFyYW1zLmRhdGEubmFtZSB8fCAnJ308L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpY29ucyAkeyFvd24gPyAnc2hhcmVkLXdpdGgtbWUnIDogJyd9Jz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ZmF2SWNvbn08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj4ke3NoYXJlSWNvbn08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYDtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICBsZXQgZm9jdXNlZCA9IHRoaXMuc2VsZWN0aW9uLmdldEZvY3VzKCk7XG4gICAgaWYgKGZvY3VzZWQpIHtcbiAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UucmVtb3ZlU3RvcmVkUXVlcnkoZm9jdXNlZC5pZCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmV3U3RvcmVkUXVlcnkoKSB7XG4gICAgdGhpcy5hcHBTZWFyY2gucXVlcnkkXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHF1ZXJ5OiBTZWFyY2hRdWVyeSkgPT4ge1xuICAgICAgICBsZXQgc3EgPSBuZXcgU3RvcmVkUXVlcnkoKTtcbiAgICAgICAgc3Euc2V0UXVlcnkocXVlcnkpO1xuICAgICAgICB0aGlzLnNlbGVjdChzcSk7XG4gICAgICB9XG4gICAgICApO1xuICAgIC8vIGdldCByaWQgb2YgdGhlIHF1ZXJ5IHBhcmFtXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc3RvcmVkLXF1ZXJpZXMnXSwge3JlcGxhY2VVcmw6IHRydWV9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5nZXRTdG9yZWRRdWVyeXMoKTtcblxuICAgIC8vIGluIGNhc2Ugb2YgZ2V0dGluZyB0aGUgY3JlYXRlIHBhcmFtLCB3ZSdsbCBmZXRjaCB0aGUgbGF0ZXN0IHF1ZXJ5IGZyb21cbiAgICAvLyBhcHBTZWFyY2hTZXJ2aWNlIGFuZCBjcmVhdGUgYSBuZXcgU3RvcmVkUXVlcnkgZnJvbSBpdFxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydjcmVhdGUnXSkge1xuICAgICAgdGhpcy5zZWxlY3RGaXJzdCA9IGZhbHNlO1xuICAgICAgdGhpcy5jcmVhdGVOZXdTdG9yZWRRdWVyeSgpO1xuICAgIH1cblxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCAmJiBldmVudC51cmxBZnRlclJlZGlyZWN0cyA9PT0gJy9zdG9yZWQtcXVlcmllcz9jcmVhdGU9dHJ1ZScpIHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZU5ld1N0b3JlZFF1ZXJ5KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2Uub24oRW5haW9FdmVudC5TVE9SRURfT0JKRUNUX1NIQVJFRClcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaS5yZWZyZXNoQ2VsbHMoe2ZvcmNlOiB0cnVlfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLm9uKEVuYWlvRXZlbnQuU1RPUkVEX09CSkVDVF9GQVZPUklTRUQpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmVvR3JpZC5hcGkucmVmcmVzaENlbGxzKHtmb3JjZTogdHJ1ZX0pO1xuICAgICAgfSk7XG4gIH1cblxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidzdG9yZWQucXVlcmllcy5zdGF0ZSdcIj5cbiAgPCEtLSBsaXN0IC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjI1XCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zYXZlZF9zZWFyY2guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5zaWRlYmFyLm5hdmlnYXRpb24uc3RvcmVkcXVlcmllczwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTtjU29ydC5yZXNldCgpO3JlZnJlc2hHcmlkKClcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2ZpbHRlci5zdmcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZW8tdGV4dC1maWx0ZXIgW3RpdGxlXT1cIidlby5mb2xkZXIuZmlsdGVyLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtpZF09XCInc3RvcmVkLnF1ZXJpZXMudGV4dCdcIlxuICAgICAgICAgICAgICAgIFttYXRjaEZpZWxkc109XCJbJ25hbWUnXVwiIFtmaWx0ZXJQYXJhbXNdPVwidGV4dEZpbHRlclBhcmFtc1wiPjwvZW8tdGV4dC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidzdG9yZWQucXVlcmllcy50eXBlJ1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidlby5mb2xkZXIuZmlsdGVyLnNlY3Rpb24ub2JqZWN0dHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0IGNsYXNzPVwib3ZlcmxheS1zb3J0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3Quc29ydCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jdXN0b20tc29ydCAjY1NvcnQgW2lkXT1cIidzdG9yZWQucXVlcmllcy5zb3J0J1wiIChjaGFuZ2UpPVwiY1NvcnQudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvU29ydC5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiIFtzb3J0RmllbGRzXT1cInNvcnRGaWVsZHNcIj48L2VvLWN1c3RvbS1zb3J0PlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5XCI+XG4gICAgICAgIDxlby1ncmlkICNlb0dyaWQgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgKm5nSWY9XCJncmlkT3B0aW9ucz8ucm93RGF0YVwiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiBbc2VsZWN0Rmlyc3RdPVwic2VsZWN0Rmlyc3RcIiAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCk9XCJlb0xpc3Qub25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRGb2N1c0NoYW5nZWQpPVwiZW9MaXN0Lm9uRm9jdXNDaGFuZ2VkKCRldmVudClcIj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgIDxlby10b3RhbC1jb3VudCBbZ3JpZENvdW50XT1cImVvTGlzdC5ncmlkQ291bnRcIiBbb3V0c2lkZUdyaWRdPVwiZmFsc2VcIiBjbGFzcz1cImZsZXgtcm93XCI+PC9lby10b3RhbC1jb3VudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zZWFyY2guc3ZnJywgdGV4dDogb0ZpbHRlci5hY3RpdmUgPyAnZW8ubm8uZmlsdGVyLnJlc3VsdCcgOiAnZW8uc3RvcmVkLnF1ZXJpZXMubGlzdC5lbXB0eSd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPGVvLXJlc2V0LWZpbHRlciBbaXNGaWx0ZXJBY3RpdmVdPVwib0ZpbHRlci5hY3RpdmVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpO2NTb3J0LnJlc2V0KCk7cmVmcmVzaEdyaWQoKVwiPjwvZW8tcmVzZXQtZmlsdGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2VvLWdyaWQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLWxpc3QtY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI3NVwiPlxuICAgIDxlby1zdG9yZWQtcXVlcnktZGV0YWlscyAobm90aWZ5TGlzdCk9XCJub3RpZnlMaXN0KCRldmVudClcIj48L2VvLXN0b3JlZC1xdWVyeS1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuPC95dmMtc3BsaXQtdmlldz4iXX0=
|