@firestitch/system 18.0.33 → 18.0.34

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.
@@ -1,18 +1,18 @@
1
- import { ChangeDetectionStrategy, Component, inject, Input, ViewChild, } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { FsApi, RequestMethod, StreamEventData, StreamEventType } from '@firestitch/api';
4
- import { ItemType } from '@firestitch/filter';
5
- import { FsListComponent, FsListModule } from '@firestitch/list';
6
- import { FsMessage } from '@firestitch/message';
7
- import { FsProcess } from '@firestitch/process';
8
- import { Subject } from 'rxjs';
9
- import { filter, finalize, map, takeUntil, tap } from 'rxjs/operators';
10
- import { ProcessStates } from '../../consts';
11
- import { ProcessData } from '../../data/process.data';
12
- import { ProcessState } from '../../enums';
13
- import { indexNameValue } from '../../helpers/index-name-value';
14
- import { ProcessComponent } from './../process/process.component';
15
- import { FsDateModule } from '@firestitch/date';
1
+ import { ChangeDetectionStrategy, Component, inject, Input, ViewChild, } from "@angular/core";
2
+ import { MatDialog } from "@angular/material/dialog";
3
+ import { FsApi, RequestMethod, StreamEventData, StreamEventType, } from "@firestitch/api";
4
+ import { ItemType } from "@firestitch/filter";
5
+ import { FsListComponent, FsListModule } from "@firestitch/list";
6
+ import { FsMessage } from "@firestitch/message";
7
+ import { FsProcess } from "@firestitch/process";
8
+ import { Subject } from "rxjs";
9
+ import { filter, finalize, map, takeUntil, tap } from "rxjs/operators";
10
+ import { ProcessStates } from "../../consts";
11
+ import { ProcessData } from "../../data/process.data";
12
+ import { ProcessState } from "../../enums";
13
+ import { indexNameValue } from "../../helpers/index-name-value";
14
+ import { FsDateModule } from "@firestitch/date";
15
+ import { ProcessComponent } from "./../process/process.component";
16
16
  import * as i0 from "@angular/core";
17
17
  import * as i1 from "@firestitch/list";
18
18
  import * as i2 from "@firestitch/date";
@@ -40,7 +40,7 @@ export class ProcessesComponent {
40
40
  data: {
41
41
  process,
42
42
  },
43
- width: '85%',
43
+ width: "85%",
44
44
  })
45
45
  .afterClosed()
46
46
  .pipe(takeUntil(this._destroy$))
@@ -60,36 +60,34 @@ export class ProcessesComponent {
60
60
  actions: [],
61
61
  rowActions: [
62
62
  {
63
- label: 'Queue',
63
+ label: "Queue",
64
64
  show: (process) => {
65
- return process.state !== ProcessState.Running &&
66
- process.state !== ProcessState.Queued;
65
+ return (process.state !== ProcessState.Running &&
66
+ process.state !== ProcessState.Queued);
67
67
  },
68
68
  click: (data) => {
69
- this._processData.queue(data)
70
- .subscribe(() => {
69
+ this._processData.queue(data).subscribe(() => {
71
70
  this.reload();
72
- this._message.success('Queued process');
71
+ this._message.success("Queued process");
73
72
  });
74
73
  },
75
74
  },
76
75
  {
77
- label: 'Run',
76
+ label: "Run",
78
77
  show: (data) => {
79
78
  return data.state !== ProcessState.Running;
80
79
  },
81
80
  click: (process) => {
82
- this._process
83
- .run(`Run ${process.name}`, this._api
81
+ this._process.run(`Run ${process.name}`, this._api
84
82
  .stream(RequestMethod.Post, `processes/${process.id}/run`)
85
83
  .pipe(tap((event) => {
86
- if (event instanceof StreamEventData && event.type === StreamEventType.Sent) {
84
+ if (event instanceof StreamEventData &&
85
+ event.type === StreamEventType.Sent) {
87
86
  process = {
88
87
  ...process,
89
88
  state: ProcessState.Running,
90
89
  };
91
- this.list
92
- .updateData(process, (row) => {
90
+ this.list.updateData(process, (row) => {
93
91
  return process.id === row.id;
94
92
  });
95
93
  }
@@ -101,26 +99,24 @@ export class ProcessesComponent {
101
99
  },
102
100
  },
103
101
  {
104
- label: 'Kill',
102
+ label: "Kill",
105
103
  show: (data) => {
106
104
  return !!data.pid;
107
105
  },
108
106
  click: (data) => {
109
- this._message.info('Killing process...');
110
- this._processData.kill(data)
111
- .subscribe(() => {
107
+ this._message.info("Killing process...");
108
+ this._processData.kill(data).subscribe(() => {
112
109
  this.reload();
113
- this._message.success('Killed process');
110
+ this._message.success("Killed process");
114
111
  });
115
112
  },
116
113
  },
117
114
  {
118
- label: 'Delete',
115
+ label: "Delete",
119
116
  click: (data) => {
120
- this._processData.delete(data)
121
- .subscribe(() => {
117
+ this._processData.delete(data).subscribe(() => {
122
118
  this.reload();
123
- this._message.success('Deleted process');
119
+ this._message.success("Deleted process");
124
120
  });
125
121
  },
126
122
  },
@@ -128,19 +124,28 @@ export class ProcessesComponent {
128
124
  filters: [
129
125
  {
130
126
  type: ItemType.Keyword,
131
- name: 'keyword',
132
- label: 'Search',
127
+ name: "keyword",
128
+ label: "Search",
133
129
  },
134
130
  {
135
131
  type: ItemType.Select,
136
- name: 'state',
137
- label: 'Status',
132
+ name: "state",
133
+ label: "Status",
138
134
  values: ProcessStates,
139
135
  },
136
+ {
137
+ name: "createDate",
138
+ type: ItemType.DateRange,
139
+ label: ["From Date", "To Date"],
140
+ },
140
141
  ],
141
142
  fetch: (query) => {
142
- return this._processData.gets(query, { key: null })
143
- .pipe(map((response) => ({ data: response.processes, paging: response.paging })));
143
+ return this._processData
144
+ .gets(query, { key: null })
145
+ .pipe(map((response) => ({
146
+ data: response.processes,
147
+ paging: response.paging,
148
+ })));
144
149
  },
145
150
  };
146
151
  this.actions.forEach((action) => {
@@ -153,8 +158,9 @@ export class ProcessesComponent {
153
158
  action.click(data);
154
159
  }
155
160
  if (action.component) {
156
- this._dialog.open(action.component, {
157
- width: '800px',
161
+ this._dialog
162
+ .open(action.component, {
163
+ width: "800px",
158
164
  })
159
165
  .afterClosed()
160
166
  .pipe(takeUntil(this._destroy$))
@@ -171,11 +177,11 @@ export class ProcessesComponent {
171
177
  }
172
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ProcessesComponent, decorators: [{
173
179
  type: Component,
174
- args: [{ selector: 'fs-system-processes', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FsListModule, FsDateModule], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>\n Name\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Status\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ ProcessStates[row.state] }}\n <small>\n @if (row.state===ProcessState.Running && row.percent) {\n <div>\n Complete: {{ row.percent }}%\n </div>\n }\n @if (row.state===ProcessState.Completed && row.filename) {\n <div>\n <a\n href=\"javascript:;\"\n (click)=\"download(row)\">\n {{ row.filename }}\n </a>\n </div>\n }\n @if (row.pid) {\n <div>\n PID: {{ row.pid }}\n </div>\n }\n @if (row.state===ProcessState.Running && row.notify) {\n <div>\n Notify: {{ row.notify }}\n </div>\n }\n </small>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Duration\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Message\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.message }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Completed\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>" }]
180
+ args: [{ selector: "fs-system-processes", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [FsListModule, FsDateModule], template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>\n Name\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"open(row)\">\n {{ row.name }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Status\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ ProcessStates[row.state] }}\n <small>\n @if (row.state===ProcessState.Running && row.percent) {\n <div>\n Complete: {{ row.percent }}%\n </div>\n }\n @if (row.state===ProcessState.Completed && row.filename) {\n <div>\n <a\n href=\"javascript:;\"\n (click)=\"download(row)\">\n {{ row.filename }}\n </a>\n </div>\n }\n @if (row.pid) {\n <div>\n PID: {{ row.pid }}\n </div>\n }\n @if (row.state===ProcessState.Running && row.notify) {\n <div>\n Notify: {{ row.notify }}\n </div>\n }\n </small>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Duration\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Message\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ row.message }}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Completed\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>" }]
175
181
  }], propDecorators: { list: [{
176
182
  type: ViewChild,
177
183
  args: [FsListComponent]
178
184
  }], actions: [{
179
185
  type: Input
180
186
  }] } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsU0FBUyxHQUNoRixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0s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MkZBRTNCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDOzhCQVVoQyxJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZTtnQkFHVixPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzQXBpLCBSZXF1ZXN0TWV0aG9kLCBTdHJlYW1FdmVudERhdGEsIFN0cmVhbUV2ZW50VHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2FwaSc7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzUHJvY2VzcyB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb2Nlc3MnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQcm9jZXNzU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IFByb2Nlc3NEYXRhIH0gZnJvbSAnLi4vLi4vZGF0YS9wcm9jZXNzLmRhdGEnO1xuaW1wb3J0IHsgUHJvY2Vzc1N0YXRlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xuXG5cbmltcG9ydCB7IFByb2Nlc3NBY3Rpb24gfSBmcm9tICcuLy4uLy4uL2ludGVyZmFjZXMvcHJvY2Vzcy1hY3Rpb24nO1xuaW1wb3J0IHsgUHJvY2Vzc0NvbXBvbmVudCB9IGZyb20gJy4vLi4vcHJvY2Vzcy9wcm9jZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1wcm9jZXNzZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2Nlc3Nlcy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0ZzTGlzdE1vZHVsZSwgRnNEYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvY2Vzc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZSA9IGluamVjdChGc01lc3NhZ2UpO1xuICBwcml2YXRlIF9wcm9jZXNzID0gaW5qZWN0KEZzUHJvY2Vzcyk7XG4gIHByaXZhdGUgX2FwaSA9IGluamVjdChGc0FwaSk7XG5cblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCkgXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgcHVibGljIGFjdGlvbnM6IFByb2Nlc3NBY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBQcm9jZXNzU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoUHJvY2Vzc1N0YXRlcyk7XG4gIHB1YmxpYyBQcm9jZXNzU3RhdGUgPSBQcm9jZXNzU3RhdGU7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9wcm9jZXNzRGF0YSA9IGluamVjdChQcm9jZXNzRGF0YSk7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbmZpZ0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoKSB7XG4gICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW4ocHJvY2Vzcykge1xuICAgIHRoaXMuX2RpYWxvZ1xuICAgICAgLm9wZW4oUHJvY2Vzc0NvbXBvbmVudCwge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcHJvY2VzcyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkdGg6ICc4NSUnLFxuICAgICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkKHByb2Nlc3MpIHtcbiAgICB0aGlzLl9wcm9jZXNzRGF0YS5kb3dubG9hZChwcm9jZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBhY3Rpb25zOiBbXSxcbiAgICAgIHJvd0FjdGlvbnM6IFsgICAgICBcbiAgICAgICAge1xuICAgICAgICAgIGxhYmVsOiAnUXVldWUnLFxuICAgICAgICAgIHNob3c6IChwcm9jZXNzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcHJvY2Vzcy5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgXG4gICAgICAgICAgICAgIHByb2Nlc3Muc3RhdGUgIT09IFByb2Nlc3NTdGF0ZS5RdWV1ZWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NEYXRhLnF1ZXVlKGRhdGEpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdRdWV1ZWQgcHJvY2VzcycpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6ICdSdW4nLFxuICAgICAgICAgIHNob3c6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmc7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGljazogKHByb2Nlc3MpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NcbiAgICAgICAgICAgICAgLnJ1bihgUnVuICR7cHJvY2Vzcy5uYW1lfWAsIHRoaXMuX2FwaVxuICAgICAgICAgICAgICAgIC5zdHJlYW0oXG4gICAgICAgICAgICAgICAgICBSZXF1ZXN0TWV0aG9kLlBvc3QsIGBwcm9jZXNzZXMvJHtwcm9jZXNzLmlkfS9ydW5gKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZihcbiAgICAgICAgICAgICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIFN0cmVhbUV2ZW50RGF0YSAmJiBldmVudC50eXBlID09PSBTdHJlYW1FdmVudFR5cGUuU2VudFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBQcm9jZXNzU3RhdGUuUnVubmluZyxcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlRGF0YShwcm9jZXNzLCAocm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzLmlkID09PSByb3cuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIFN0cmVhbUV2ZW50RGF0YSksXG4gICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudD8uZGF0YTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLFxuICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0tpbGwnLFxuICAgICAgICAgIHNob3c6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFkYXRhLnBpZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5pbmZvKCdLaWxsaW5nIHByb2Nlc3MuLi4nKTtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NEYXRhLmtpbGwoZGF0YSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0tpbGxlZCBwcm9jZXNzJyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0RlbGV0ZScsXG4gICAgICAgICAgY2xpY2s6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzRGF0YS5kZWxldGUoZGF0YSlcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0RlbGV0ZWQgcHJvY2VzcycpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxuICAgICAgICAgIGxhYmVsOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZXM6IFByb2Nlc3NTdGF0ZXMsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvY2Vzc0RhdGEuZ2V0cyhxdWVyeSwgeyBrZXk6IG51bGwgfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gKHsgZGF0YTogcmVzcG9uc2UucHJvY2Vzc2VzLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyB9KSksXG4gICAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuY29uZmlnLmFjdGlvbnMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIHByaW1hcnk6IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBhY3Rpb24ubGFiZWwsXG4gICAgICAgICAgbWVudTogYWN0aW9uLm1lbnUsXG4gICAgICAgICAgY2xpY2s6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmNsaWNrKSB7XG4gICAgICAgICAgICAgIGFjdGlvbi5jbGljayhkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGFjdGlvbi5jb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW4oYWN0aW9uLmNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmcy1saXN0IFtjb25maWddPVwiY29uZmlnXCI+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBOYW1lXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPlxuICAgICAgICB7eyByb3cubmFtZSB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBTdGF0dXNcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyBQcm9jZXNzU3RhdGVzW3Jvdy5zdGF0ZV0gfX1cbiAgICAgIDxzbWFsbD5cbiAgICAgICAgQGlmIChyb3cuc3RhdGU9PT1Qcm9jZXNzU3RhdGUuUnVubmluZyAmJiByb3cucGVyY2VudCkge1xuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICBDb21wbGV0ZToge3sgcm93LnBlcmNlbnQgfX0lXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyb3cuc3RhdGU9PT1Qcm9jZXNzU3RhdGUuQ29tcGxldGVkICYmIHJvdy5maWxlbmFtZSkge1xuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkKHJvdylcIj5cbiAgICAgICAgICAgICAge3sgcm93LmZpbGVuYW1lIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyb3cucGlkKSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFBJRDoge3sgcm93LnBpZCB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocm93LnN0YXRlPT09UHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgcm93Lm5vdGlmeSkge1xuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICBOb3RpZnk6IHt7IHJvdy5ub3RpZnkgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9zbWFsbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlxuICAgICAgRHVyYXRpb25cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cuZHVyYXRpb24gfCBmc0RhdGVEdXJhdGlvbjoge2hvdXJzOiB0cnVlLCBtaW51dGVzOiB0cnVlLCBzZWNvbmRzOiB0cnVlfSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBNZXNzYWdlXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgcm93Lm1lc3NhZ2UgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlxuICAgICAgQ29tcGxldGVkXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5lbmREYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBR0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQ0gsS0FBSyxFQUNMLGFBQWEsRUFDYixlQUFlLEVBQ2YsZUFBZSxHQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0s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RixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBeExVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHFKQU1sQixlQUFlLGdEQ2pENUIsdzdEQStFVSx5RER0Q0UsWUFBWSx3bkJBQUUsWUFBWTs7MkZBRXpCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDOzhCQVM5QixJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZTtnQkFHVixPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5cbmltcG9ydCB7XG4gICAgRnNBcGksXG4gICAgUmVxdWVzdE1ldGhvZCxcbiAgICBTdHJlYW1FdmVudERhdGEsXG4gICAgU3RyZWFtRXZlbnRUeXBlLFxufSBmcm9tIFwiQGZpcmVzdGl0Y2gvYXBpXCI7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gXCJAZmlyZXN0aXRjaC9maWx0ZXJcIjtcbmltcG9ydCB7IEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnLCBGc0xpc3RNb2R1bGUgfSBmcm9tIFwiQGZpcmVzdGl0Y2gvbGlzdFwiO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSBcIkBmaXJlc3RpdGNoL21lc3NhZ2VcIjtcbmltcG9ydCB7IEZzUHJvY2VzcyB9IGZyb20gXCJAZmlyZXN0aXRjaC9wcm9jZXNzXCI7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBQcm9jZXNzU3RhdGVzIH0gZnJvbSBcIi4uLy4uL2NvbnN0c1wiO1xuaW1wb3J0IHsgUHJvY2Vzc0RhdGEgfSBmcm9tIFwiLi4vLi4vZGF0YS9wcm9jZXNzLmRhdGFcIjtcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZSB9IGZyb20gXCIuLi8uLi9lbnVtc1wiO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlXCI7XG5cbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gXCJAZmlyZXN0aXRjaC9kYXRlXCI7XG5pbXBvcnQgeyBQcm9jZXNzQWN0aW9uIH0gZnJvbSBcIi4vLi4vLi4vaW50ZXJmYWNlcy9wcm9jZXNzLWFjdGlvblwiO1xuaW1wb3J0IHsgUHJvY2Vzc0NvbXBvbmVudCB9IGZyb20gXCIuLy4uL3Byb2Nlc3MvcHJvY2Vzcy5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImZzLXN5c3RlbS1wcm9jZXNzZXNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9wcm9jZXNzZXMuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3Byb2Nlc3Nlcy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGc0xpc3RNb2R1bGUsIEZzRGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3Nlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgX21lc3NhZ2UgPSBpbmplY3QoRnNNZXNzYWdlKTtcbiAgcHJpdmF0ZSBfcHJvY2VzcyA9IGluamVjdChGc1Byb2Nlc3MpO1xuICBwcml2YXRlIF9hcGkgPSBpbmplY3QoRnNBcGkpO1xuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50KVxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBQcm9jZXNzQWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgUHJvY2Vzc1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKFByb2Nlc3NTdGF0ZXMpO1xuICBwdWJsaWMgUHJvY2Vzc1N0YXRlID0gUHJvY2Vzc1N0YXRlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfcHJvY2Vzc0RhdGEgPSBpbmplY3QoUHJvY2Vzc0RhdGEpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkKCkge1xuICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKHByb2Nlc3MpIHtcbiAgICB0aGlzLl9kaWFsb2dcbiAgICAgIC5vcGVuKFByb2Nlc3NDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHByb2Nlc3MsXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBcIjg1JVwiLFxuICAgICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZG93bmxvYWQocHJvY2Vzcykge1xuICAgIHRoaXMuX3Byb2Nlc3NEYXRhLmRvd25sb2FkKHByb2Nlc3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGFjdGlvbnM6IFtdLFxuICAgICAgcm93QWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IFwiUXVldWVcIixcbiAgICAgICAgICBzaG93OiAocHJvY2VzcykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgcHJvY2Vzcy5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiZcbiAgICAgICAgICAgICAgcHJvY2Vzcy5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlF1ZXVlZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0RhdGEucXVldWUoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKFwiUXVldWVkIHByb2Nlc3NcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IFwiUnVuXCIsXG4gICAgICAgICAgc2hvdzogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnN0YXRlICE9PSBQcm9jZXNzU3RhdGUuUnVubmluZztcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsaWNrOiAocHJvY2VzcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzcy5ydW4oXG4gICAgICAgICAgICAgIGBSdW4gJHtwcm9jZXNzLm5hbWV9YCxcbiAgICAgICAgICAgICAgdGhpcy5fYXBpXG4gICAgICAgICAgICAgICAgLnN0cmVhbShSZXF1ZXN0TWV0aG9kLlBvc3QsIGBwcm9jZXNzZXMvJHtwcm9jZXNzLmlkfS9ydW5gKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBTdHJlYW1FdmVudERhdGEgJiZcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC50eXBlID09PSBTdHJlYW1FdmVudFR5cGUuU2VudFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvY2VzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlOiBQcm9jZXNzU3RhdGUuUnVubmluZyxcbiAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0LnVwZGF0ZURhdGEocHJvY2VzcywgKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3MuaWQgPT09IHJvdy5pZDtcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIFN0cmVhbUV2ZW50RGF0YSksXG4gICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudD8uZGF0YTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgZmlsdGVyKChkYXRhKSA9PiAhIWRhdGEpLFxuICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbGFiZWw6IFwiS2lsbFwiLFxuICAgICAgICAgIHNob3c6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISFkYXRhLnBpZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5pbmZvKFwiS2lsbGluZyBwcm9jZXNzLi4uXCIpO1xuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc0RhdGEua2lsbChkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoXCJLaWxsZWQgcHJvY2Vzc1wiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogXCJEZWxldGVcIixcbiAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NEYXRhLmRlbGV0ZShkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoXCJEZWxldGVkIHByb2Nlc3NcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgbGFiZWw6IFwiU2VhcmNoXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgICAgbmFtZTogXCJzdGF0ZVwiLFxuICAgICAgICAgIGxhYmVsOiBcIlN0YXR1c1wiLFxuICAgICAgICAgIHZhbHVlczogUHJvY2Vzc1N0YXRlcyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY3JlYXRlRGF0ZVwiLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBsYWJlbDogW1wiRnJvbSBEYXRlXCIsIFwiVG8gRGF0ZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcm9jZXNzRGF0YVxuICAgICAgICAgIC5nZXRzKHF1ZXJ5LCB7IGtleTogbnVsbCB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBkYXRhOiByZXNwb25zZS5wcm9jZXNzZXMsXG4gICAgICAgICAgICAgIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZy5hY3Rpb25zLnB1c2goe1xuICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgbGFiZWw6IGFjdGlvbi5sYWJlbCxcbiAgICAgICAgbWVudTogYWN0aW9uLm1lbnUsXG4gICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChhY3Rpb24uY2xpY2spIHtcbiAgICAgICAgICAgIGFjdGlvbi5jbGljayhkYXRhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYWN0aW9uLmNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nXG4gICAgICAgICAgICAgIC5vcGVuKGFjdGlvbi5jb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogXCI4MDBweFwiLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5cbiAgICAgIE5hbWVcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8YSAoY2xpY2spPVwib3Blbihyb3cpXCI+XG4gICAgICAgIHt7IHJvdy5uYW1lIH19XG4gICAgICA8L2E+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5cbiAgICAgIFN0YXR1c1xuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBmcy1saXN0LWNlbGxcbiAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7IFByb2Nlc3NTdGF0ZXNbcm93LnN0YXRlXSB9fVxuICAgICAgPHNtYWxsPlxuICAgICAgICBAaWYgKHJvdy5zdGF0ZT09PVByb2Nlc3NTdGF0ZS5SdW5uaW5nICYmIHJvdy5wZXJjZW50KSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIENvbXBsZXRlOiB7eyByb3cucGVyY2VudCB9fSVcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHJvdy5zdGF0ZT09PVByb2Nlc3NTdGF0ZS5Db21wbGV0ZWQgJiYgcm93LmZpbGVuYW1lKSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZG93bmxvYWQocm93KVwiPlxuICAgICAgICAgICAgICB7eyByb3cuZmlsZW5hbWUgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHJvdy5waWQpIHtcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgUElEOiB7eyByb3cucGlkIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyb3cuc3RhdGU9PT1Qcm9jZXNzU3RhdGUuUnVubmluZyAmJiByb3cubm90aWZ5KSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIE5vdGlmeToge3sgcm93Lm5vdGlmeSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3NtYWxsPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBEdXJhdGlvblxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBmcy1saXN0LWNlbGxcbiAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7IHJvdy5kdXJhdGlvbiB8IGZzRGF0ZUR1cmF0aW9uOiB7aG91cnM6IHRydWUsIG1pbnV0ZXM6IHRydWUsIHNlY29uZHM6IHRydWV9IH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5cbiAgICAgIE1lc3NhZ2VcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyByb3cubWVzc2FnZSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBDb21wbGV0ZWRcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwicm93LmVuZERhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW50ZXJmYWNlcy9wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Mge1xuICBjcmVhdGVEYXRlPzogYW55O1xuICBjcmVhdGVkVGltZT86IERhdGU7XG4gIGRhdGE/OiBhbnk7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IGFueTtcbiAgZW5kRGF0ZT86IGFueTtcbiAgZW5kVGltZT86IERhdGU7XG4gIGZpbGVuYW1lPzogc3RyaW5nO1xuICBmaWxlcz86IGFueTtcbiAgZ3VpZD86IHN0cmluZztcbiAgbG9nPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBub3RpZnk/OiBzdHJpbmc7XG4gIHBlcmNlbnQ/OiBudW1iZXI7XG4gIHBpZD86IHN0cmluZztcbiAgcHJldHR5TmFtZT86IGFueTtcbiAgaWQ/OiBudW1iZXI7XG4gIHByb2Nlc3NTdGF0ZT86IGFueTtcbiAgc3RhcnREYXRlPzogYW55O1xuICBzdGFydFRpbWU/OiBEYXRlO1xuICBzdGF0ZT86IHN0cmluZztcbiAgc3RhdHM/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vaW50ZXJmYWNlcy9wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByb2Nlc3Mge1xuICBjbGFzcz86IHN0cmluZztcbiAgZnVuY3Rpb24/OiBzdHJpbmc7XG4gIGNyZWF0ZURhdGU/OiBhbnk7XG4gIGNyZWF0ZWRUaW1lPzogRGF0ZTtcbiAgZGF0YT86IGFueTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGR1cmF0aW9uPzogYW55O1xuICBlbmREYXRlPzogYW55O1xuICBlbmRUaW1lPzogRGF0ZTtcbiAgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIGZpbGVzPzogYW55O1xuICBndWlkPzogc3RyaW5nO1xuICBsb2c/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG5vdGlmeT86IHN0cmluZztcbiAgcGVyY2VudD86IG51bWJlcjtcbiAgcGlkPzogc3RyaW5nO1xuICBwcmV0dHlOYW1lPzogYW55O1xuICBpZD86IG51bWJlcjtcbiAgcHJvY2Vzc1N0YXRlPzogYW55O1xuICBzdGFydERhdGU/OiBhbnk7XG4gIHN0YXJ0VGltZT86IERhdGU7XG4gIHN0YXRlPzogc3RyaW5nO1xuICBzdGF0cz86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbn1cbiJdfQ==