tnx-shared 5.1.181 → 5.1.185

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.
Files changed (40) hide show
  1. package/bundles/tnx-shared.umd.js +1277 -1193
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/classes/base/data-list-base.d.ts.map +1 -1
  6. package/classes/public-function.d.ts +6 -0
  7. package/classes/public-function.d.ts.map +1 -1
  8. package/components/statemachines/models/enums.d.ts +4 -0
  9. package/components/statemachines/models/enums.d.ts.map +1 -1
  10. package/components/tn-app-notification/tn-app-notification.component.d.ts +2 -2
  11. package/components/tn-app-notification/tn-app-notification.component.d.ts.map +1 -1
  12. package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
  13. package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts.map +1 -1
  14. package/congviec/dm-loai-congviec/dm-loai-congviec.component.d.ts +2 -0
  15. package/congviec/dm-loai-congviec/dm-loai-congviec.component.d.ts.map +1 -1
  16. package/esm2015/classes/base/data-list-base.js +4 -1
  17. package/esm2015/classes/public-function.js +7 -1
  18. package/esm2015/components/chat/chat-box/chat-box.component.js +1 -1
  19. package/esm2015/components/chat/chat-send-message-box/chat-send-message-box.component.js +1 -1
  20. package/esm2015/components/statemachines/models/enums.js +6 -1
  21. package/esm2015/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.js +3 -3
  22. package/esm2015/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.js +3 -3
  23. package/esm2015/components/tn-app-notification/tn-app-notification.component.js +38 -34
  24. package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +6 -4
  25. package/esm2015/components/workflow/process-workflow-target/process-workflow-target.component.js +10 -4
  26. package/esm2015/congviec/dm-loai-congviec/dm-loai-congviec.component.js +8 -3
  27. package/esm2015/intercepters/anonymous-token.interceptor.js +43 -0
  28. package/esm2015/tnx-shared.js +2 -1
  29. package/esm2015/tnx-shared.module.js +32 -32
  30. package/fesm2015/tnx-shared.js +824 -759
  31. package/fesm2015/tnx-shared.js.map +1 -1
  32. package/intercepters/anonymous-token.interceptor.d.ts +13 -0
  33. package/intercepters/anonymous-token.interceptor.d.ts.map +1 -0
  34. package/intercepters/anonymous-token.interceptor.ngfactory.d.ts.map +1 -0
  35. package/package.json +2 -2
  36. package/tnx-shared.d.ts +1 -0
  37. package/tnx-shared.d.ts.map +1 -1
  38. package/tnx-shared.metadata.json +1 -1
  39. package/tnx-shared.module.d.ts +5 -5
  40. package/tnx-shared.module.d.ts.map +1 -1
@@ -1,3 +1,4 @@
1
+ import { __awaiter } from "tslib";
1
2
  import { Component, EventEmitter, Injector, Output, ViewChild } from '@angular/core';
2
3
  import { Router } from '@angular/router';
3
4
  import { ComponentContextService } from '../../app-context/component-context.service';
@@ -151,16 +152,15 @@ export class TnAppNotificationComponent extends ComponentBase {
151
152
  });
152
153
  }
153
154
  readById(data) {
154
- data.readedTime = new Date();
155
- this._notificationService.markReadById(data.id).then(res => {
156
- this.rootContext.fireEvent(ComCtxConstants.NOTIFICATION.NOTIFICATION_RELOAD);
157
- }).catch(err => this._commonService.handleError(err, this._injector));
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ data.readedTime = new Date();
157
+ yield this._notificationService.markReadById(data.id).then(res => {
158
+ this.rootContext.fireEvent(ComCtxConstants.NOTIFICATION.NOTIFICATION_RELOAD);
159
+ }).catch(err => this._commonService.handleError(err, this._injector));
160
+ });
158
161
  }
159
162
  isHasAvatar(item) {
160
- if (item.avatarId) {
161
- return true;
162
- }
163
- return false;
163
+ return !!item.avatarId;
164
164
  }
165
165
  isReaded(item) {
166
166
  return !!item.readedTime;
@@ -169,30 +169,32 @@ export class TnAppNotificationComponent extends ComponentBase {
169
169
  return `${this.apiUploadUrl}/public/${item}/Download`;
170
170
  }
171
171
  goToLink(item) {
172
- if (!this.isReaded(item)) {
173
- this.readById(item);
174
- this.totalUnRead--;
175
- }
176
- // Save current path to go back
177
- localStorage.setItem('currentUrl', top.location.href);
178
- localStorage.setItem('currentPathName', top.location.pathname);
179
- if (item.messageLink) {
180
- const link = item.messageLink;
181
- // NamNH - Để top location href vì có thể click xem thông báo từ phân hệ khác, sau tối ưu nếu cùng phân hệ thì router navigate, còn khác phân hệ thì location href
182
- top.location.href = link;
183
- // if (this._router.isActive(link, false)) {
184
- // this.rootContext.fireEvent(ComCtxConstants.ROOT.NOTI_CLICK, link);
185
- // } else {
186
- // if (this.rootModel.fragments) {
187
- // for (const item of this.rootModel.fragments) {
188
- // if (!item.closed) {
189
- // item.unsubscribe();
190
- // }
191
- // }
192
- // }
193
- // this._router.navigateByUrl(link);
194
- // }
195
- }
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ if (!this.isReaded(item)) {
174
+ yield this.readById(item);
175
+ this.totalUnRead--;
176
+ }
177
+ // Save current path to go back
178
+ localStorage.setItem('currentUrl', top.location.href);
179
+ localStorage.setItem('currentPathName', top.location.pathname);
180
+ if (item.messageLink) {
181
+ const link = item.messageLink;
182
+ // NamNH - Để top location href có thể click xem thông báo từ phân hệ khác, sau tối ưu nếu cùng phân hệ thì router navigate, còn khác phân hệ thì location href
183
+ top.location.href = link;
184
+ // if (this._router.isActive(link, false)) {
185
+ // this.rootContext.fireEvent(ComCtxConstants.ROOT.NOTI_CLICK, link);
186
+ // } else {
187
+ // if (this.rootModel.fragments) {
188
+ // for (const item of this.rootModel.fragments) {
189
+ // if (!item.closed) {
190
+ // item.unsubscribe();
191
+ // }
192
+ // }
193
+ // }
194
+ // this._router.navigateByUrl(link);
195
+ // }
196
+ }
197
+ });
196
198
  }
197
199
  headerClick(event) {
198
200
  event.preventDefault();
@@ -203,7 +205,9 @@ export class TnAppNotificationComponent extends ComponentBase {
203
205
  this.bounceNoti = false;
204
206
  }
205
207
  handleClicked() {
206
- this._router.navigate([`user/managemant-notification`]);
208
+ var _a;
209
+ const thongBaoDomain = (_a = this.environment.clientDomain.thongbaoDomain) !== null && _a !== void 0 ? _a : '';
210
+ window.open(thongBaoDomain);
207
211
  }
208
212
  }
209
213
  TnAppNotificationComponent.decorators = [
@@ -229,4 +233,4 @@ TnAppNotificationComponent.propDecorators = {
229
233
  notificationDetail: [{ type: ViewChild, args: ['notificationdetail',] }],
230
234
  openMenu: [{ type: Output, args: ['openMenu',] }]
231
235
  };
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tYXBwLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90bi1hcHAtbm90aWZpY2F0aW9uL3RuLWFwcC1ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxD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QzlCLE1BQU0sU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBDb21DdHhDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25maWdzL2NvbXBvbmVudC1jb250ZXh0LmNvbnN0YW50JztcclxuaW1wb3J0IHsgVG9waWNSZWxvYWROb3RpZmljYXRpb24gfSBmcm9tICcuLi8uLi9jb25zdC9jb21tb24nO1xyXG5pbXBvcnQgeyBHcmlkSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWluZm8nO1xyXG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NydWQuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXN0b20tcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNpZ25hbFJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2lnbmFsci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclY1U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItdjUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGlbdG4tYXBwLW5vdGlmaWNhdGlvbl0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RuLWFwcC1ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdG4tYXBwLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbkFwcE5vdGlmaWNhdGlvbkNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgnbm90aWZpY2F0aW9uZGV0YWlsJykgbm90aWZpY2F0aW9uRGV0YWlsOiBhbnk7XHJcbiAgICBAT3V0cHV0KCdvcGVuTWVudScpIG9wZW5NZW51OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIG1heE5vdGlmaWNhdGlvbiA9IDEwO1xyXG4gICAgdG90YWxVblJlYWQgPSAwO1xyXG4gICAgYm91bmNlTm90aSA9IHRydWU7XHJcbiAgICBmaWxlQXBpID0gJyc7XHJcbiAgICBhcGlVcGxvYWRVcmwgPSAnJztcclxuXHJcbiAgICBkYXRhID0gW107XHJcbiAgICBlbFZpZXdOb3RpZmljYXRpb25OYXZJbnNpZGU6IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHVybCA9ICcnO1xyXG4gICAgdXJsZGV0YWlsID0gJyc7XHJcbiAgICBub3RpZmljYXRpb25zID0gW107XHJcblxyXG4gICAgdXNlcklkOiBzdHJpbmc7XHJcbiAgICBjdXJyZW50SXRlbTogYW55O1xyXG5cclxuICAgIGVudmlyb25tZW50OiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfc2lnbmFsUlNlcnZpY2U6IFNpZ25hbFJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3VzZXJWNVNlcnZpY2U6IFVzZXJWNVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBfY3J1ZFNlcnZpY2U6IENydWRTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfbm90aWZpZXJTZXJ2aWNlOiBOb3RpZmllclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfY3VzdG9tUm91dGVyU2VydmljZTogQ3VzdG9tUm91dGVyU2VydmljZSxcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3JcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC5zdWJzY3JpYmUoJ05PVElGSUNBVElPTl9DSEFOR0UnLCBycyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaE5vdGlmaWNhdGlvbigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3NpZ25hbFJTZXJ2aWNlLnN0YXJ0KCdOb3RpZmljYXRpb25IdWInLCBUb3BpY1JlbG9hZE5vdGlmaWNhdGlvbiwgZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaE5vdGlmaWNhdGlvbigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucm9vdENvbnRleHQuc3Vic2NyaWJlKENvbUN0eENvbnN0YW50cy5OT1RJRklDQVRJT04uTk9USUZJQ0FUSU9OX1JFTE9BRCwgcmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoTm90aWZpY2F0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmVudmlyb25tZW50LmRpc2FibGVOb3RpZmljYXRpb24pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0SWQoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRVc2VySWQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb290Q29udGV4dC5yZXBsYXlTdWJzY3JpYmUoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuVVNFUl9MT0FERUQsIHJzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdE5vdGlmaWNhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlcklkKCkge1xyXG4gICAgICAgIC8vIGNvbnN0IHJhd1VzZXJJZCA9IHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0SWQoKTtcclxuICAgICAgICAvLyBsZXQgdXNlcklkID0gTnVtYmVyKHJhd1VzZXJJZCk7XHJcbiAgICAgICAgLy8gbGV0IHVzZXJJZFJlc3VsdCA9ICcnO1xyXG4gICAgICAgIC8vIGlmICghaXNOYU4odXNlcklkKSkge1xyXG4gICAgICAgIC8vICAgIHVzZXJJZFJlc3VsdCA9IHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0SW5zdGFuY2VJZCgpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyBlbHNle1xyXG4gICAgICAgIC8vICAgIHVzZXJJZFJlc3VsdCA9IHJhd1VzZXJJZDtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy8gdGhpcy51c2VySWQgPSB1c2VySWRSZXN1bHQudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLnVzZXJJZCA9IHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0SWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0Tm90aWZpY2F0aW9uKCkge1xyXG4gICAgICAgIHRoaXMuX3NpZ25hbFJTZXJ2aWNlLnN0YXJ0KFxyXG4gICAgICAgICAgICB0aGlzLl9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LnNpZ25hbHJDb25maWcudG9waWMubm90aWZpY2F0aW9uQ3JlYXRlZCxcclxuICAgICAgICAgICAgdGhpcy51c2VySWQsXHJcbiAgICAgICAgICAgIHRoaXMubm90aWZ5VHJpZ2dlci5iaW5kKHRoaXMpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoTm90aWZpY2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbm90aWZ5VHJpZ2dlcihkYXRhOiBhbnkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy51bnNoaWZ0KGRhdGEpO1xyXG4gICAgICAgIGlmIChkYXRhLmNyZWF0ZWRCeSkge1xyXG4gICAgICAgICAgICB0aGlzLl91c2VyVjVTZXJ2aWNlLmdldEJhc2ljVXNlckluZm8oZGF0YS5jcmVhdGVkQnkpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGRhdGEuYXZhdGFySWQgPSByZXN1bHQuYXZhdGFyO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhOb3RpZmljYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnBvcCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LmZpcmVFdmVudCgnTk9USUZJQ0FUSU9OX1VTRVJfQ0hBTkdFJywgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHRoaXMudG90YWxVblJlYWQrKztcclxuICAgICAgICB0aGlzLmJvdW5jZU5vdGkgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hOb3RpZmljYXRpb24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW52aXJvbm1lbnQuZGlzYWJsZU5vdGlmaWNhdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGdyaWRJbmZvID0gbmV3IEdyaWRJbmZvKHtcclxuICAgICAgICAgICAgZmlsdGVyczogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ3VzZXJJZCcsIE9wZXJhdG9yLmVxdWFsLCB0aGlzLnVzZXJJZClcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgcGFnZUluZm86IHtcclxuICAgICAgICAgICAgICAgIHBhZ2U6IDEsXHJcbiAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5tYXhOb3RpZmljYXRpb25cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc29ydHM6IFtcclxuICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdjcmVhdGVkJywgZGlyOiAtMSB9XHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGZpZWxkczogJydcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByZWFkZWRGaWx0ZXJzID0gW1xyXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHRoaXMudXNlcklkKSxcclxuICAgICAgICAgICAgdGhpcy5uZXdGaWx0ZXIoJ3JlYWRlZFRpbWUnLCBPcGVyYXRvci5pc051bGwsICcxJylcclxuICAgICAgICBdO1xyXG4gICAgICAgIFByb21pc2UuYWxsKFtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5nZXRCeUdyaWRSZXF1ZXN0KGdyaWRJbmZvKS50aGVuKHJlcyA9PiB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlcywgJycsIGYgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJvdW5jZU5vdGkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZnRlckdldE5vdGljYXRpb24oKTtcclxuICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmdldEFsbChyZWFkZWRGaWx0ZXJzLCAncmVhZGVkVGltZScpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG90YWxVblJlYWQgPSByZXMuc3VjY2VzcyAmJiByZXMuZGF0YSA/ICg8YW55W10+cmVzLmRhdGEpLmxlbmd0aCA6IDA7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWZ0ZXJHZXROb3RpY2F0aW9uKCkge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5jcmVhdGVkVXNlcklkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91c2VyVjVTZXJ2aWNlLmdldEJhc2ljVXNlckluZm8oZWxlbWVudC5jcmVhdGVkVXNlcklkKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5hdmF0YXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hdmF0YXJJZCA9IHJlc3VsdC5hdmF0YXI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWFkQWxsKGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd0NvbmZpcm0oJ8SQw6FuaCBk4bqldSB04bqldCBj4bqjIHRow7RuZyBiw6FvIGzDoCDEkcOjIMSR4buNYz8nLCAnxJDDoW5oIGThuqV1IMSRw6MgxJHhu41jIHRow7RuZyBiw6FvJykudGhlbihycyA9PiB7XHJcbiAgICAgICAgICAgIGlmICghcnMpIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LnJlYWRlZFRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5tYXJrUmVhZEFsbEJ5VXNlckN1cnJlbnQoKS50aGVuKHJzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KENvbUN0eENvbnN0YW50cy5OT1RJRklDQVRJT04uTk9USUZJQ0FUSU9OX1JFTE9BRCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsVW5SZWFkID0gMDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZWFkQnlJZChkYXRhOiBhbnkpIHtcclxuICAgICAgICBkYXRhLnJlYWRlZFRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UubWFya1JlYWRCeUlkKGRhdGEuaWQpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb290Q29udGV4dC5maXJlRXZlbnQoQ29tQ3R4Q29uc3RhbnRzLk5PVElGSUNBVElPTi5OT1RJRklDQVRJT05fUkVMT0FEKTtcclxuICAgICAgICB9KS5jYXRjaChlcnIgPT4gdGhpcy5fY29tbW9uU2VydmljZS5oYW5kbGVFcnJvcihlcnIsIHRoaXMuX2luamVjdG9yKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNIYXNBdmF0YXIoaXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtLmF2YXRhcklkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZWFkZWQoaXRlbTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhaXRlbS5yZWFkZWRUaW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEN1cnJlbnRVc2VyQXZhdGFyKGl0ZW0pIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5hcGlVcGxvYWRVcmx9L3B1YmxpYy8ke2l0ZW19L0Rvd25sb2FkYDtcclxuICAgIH1cclxuXHJcbiAgICBnb1RvTGluayhpdGVtOiBhbnkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSZWFkZWQoaXRlbSkpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkQnlJZChpdGVtKTtcclxuICAgICAgICAgICAgdGhpcy50b3RhbFVuUmVhZC0tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2F2ZSBjdXJyZW50IHBhdGggdG8gZ28gYmFja1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjdXJyZW50VXJsJywgdG9wLmxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjdXJyZW50UGF0aE5hbWUnLCB0b3AubG9jYXRpb24ucGF0aG5hbWUpO1xyXG4gICAgICAgIGlmIChpdGVtLm1lc3NhZ2VMaW5rKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBpdGVtLm1lc3NhZ2VMaW5rO1xyXG4gICAgICAgICAgICAvLyBOYW1OSCAtIMSQ4buDIHRvcCBsb2NhdGlvbiBocmVmIHbDrCBjw7MgdGjhu4MgY2xpY2sgeGVtIHRow7RuZyBiw6FvIHThu6sgcGjDom4gaOG7hyBraMOhYywgc2F1IHThu5FpIMawdSBu4bq/dSBjw7luZyBwaMOibiBo4buHIHRow6wgcm91dGVyIG5hdmlnYXRlLCBjw7JuIGtow6FjIHBow6JuIGjhu4cgdGjDrCBsb2NhdGlvbiBocmVmXHJcbiAgICAgICAgICAgIHRvcC5sb2NhdGlvbi5ocmVmID0gbGluaztcclxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuX3JvdXRlci5pc0FjdGl2ZShsaW5rLCBmYWxzZSkpIHtcclxuICAgICAgICAgICAgLy8gICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KENvbUN0eENvbnN0YW50cy5ST09ULk5PVElfQ0xJQ0ssIGxpbmspO1xyXG4gICAgICAgICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyAgICAgaWYgKHRoaXMucm9vdE1vZGVsLmZyYWdtZW50cykge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnJvb3RNb2RlbC5mcmFnbWVudHMpIHtcclxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgaWYgKCFpdGVtLmNsb3NlZCkge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgaXRlbS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGVhZGVyQ2xpY2soZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5NZW51RXZlbnQoJGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5vcGVuTWVudS5uZXh0KCRldmVudCk7XHJcbiAgICAgICAgdGhpcy5ib3VuY2VOb3RpID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQ2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2B1c2VyL21hbmFnZW1hbnQtbm90aWZpY2F0aW9uYF0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tYXBwLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90bi1hcHAtbm90aWZpY2F0aW9uL3RuLWFwcC1ub3RpZmljYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0Ms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WCxlQUFlO1lBSGYsbUJBQW1CO1lBVE0sUUFBUTs7O2lDQXVCckMsU0FBUyxTQUFDLG9CQUFvQjt1QkFDOUIsTUFBTSxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS9jb21wb25lbnQtYmFzZSc7XHJcbmltcG9ydCB7IE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IENvbUN0eENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBUb3BpY1JlbG9hZE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL2NvbnN0L2NvbW1vbic7XHJcbmltcG9ydCB7IEdyaWRJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3J1ZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tUm91dGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1c3RvbS1yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2lnbmFsUlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaWduYWxyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyVjVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci12NS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaVt0bi1hcHAtbm90aWZpY2F0aW9uXScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG4tYXBwLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90bi1hcHAtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRuQXBwTm90aWZpY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdub3RpZmljYXRpb25kZXRhaWwnKSBub3RpZmljYXRpb25EZXRhaWw6IGFueTtcclxuICAgIEBPdXRwdXQoJ29wZW5NZW51Jykgb3Blbk1lbnU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgbWF4Tm90aWZpY2F0aW9uID0gMTA7XHJcbiAgICB0b3RhbFVuUmVhZCA9IDA7XHJcbiAgICBib3VuY2VOb3RpID0gdHJ1ZTtcclxuICAgIGZpbGVBcGkgPSAnJztcclxuICAgIGFwaVVwbG9hZFVybCA9ICcnO1xyXG5cclxuICAgIGRhdGEgPSBbXTtcclxuICAgIGVsVmlld05vdGlmaWNhdGlvbk5hdkluc2lkZTogSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgdXJsID0gJyc7XHJcbiAgICB1cmxkZXRhaWwgPSAnJztcclxuICAgIG5vdGlmaWNhdGlvbnMgPSBbXTtcclxuXHJcbiAgICB1c2VySWQ6IHN0cmluZztcclxuICAgIGN1cnJlbnRJdGVtOiBhbnk7XHJcblxyXG4gICAgZW52aXJvbm1lbnQ6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9zaWduYWxSU2VydmljZTogU2lnbmFsUlNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdXNlclY1U2VydmljZTogVXNlclY1U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgX21vZHVsZUNvbmZpZ1NlcnZpY2U6IE1vZHVsZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIF9jcnVkU2VydmljZTogQ3J1ZFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jdXN0b21Sb3V0ZXJTZXJ2aWNlOiBDdXN0b21Sb3V0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnN1YnNjcmliZSgnTk9USUZJQ0FUSU9OX0NIQU5HRScsIHJzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoTm90aWZpY2F0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fc2lnbmFsUlNlcnZpY2Uuc3RhcnQoJ05vdGlmaWNhdGlvbkh1YicsIFRvcGljUmVsb2FkTm90aWZpY2F0aW9uLCBkYXRhID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoTm90aWZpY2F0aW9uKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5yb290Q29udGV4dC5zdWJzY3JpYmUoQ29tQ3R4Q29uc3RhbnRzLk5PVElGSUNBVElPTi5OT1RJRklDQVRJT05fUkVMT0FELCByZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hOb3RpZmljYXRpb24oKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZW52aXJvbm1lbnQuZGlzYWJsZU5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdXNlclY1U2VydmljZS5nZXRJZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFVzZXJJZCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3RDb250ZXh0LnJlcGxheVN1YnNjcmliZShDb21DdHhDb25zdGFudHMuUk9PVC5VU0VSX0xPQURFRCwgcnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0VXNlcklkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0Tm90aWZpY2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRVc2VySWQoKSB7XHJcbiAgICAgICAgLy8gY29uc3QgcmF3VXNlcklkID0gdGhpcy5fdXNlclY1U2VydmljZS5nZXRJZCgpO1xyXG4gICAgICAgIC8vIGxldCB1c2VySWQgPSBOdW1iZXIocmF3VXNlcklkKTtcclxuICAgICAgICAvLyBsZXQgdXNlcklkUmVzdWx0ID0gJyc7XHJcbiAgICAgICAgLy8gaWYgKCFpc05hTih1c2VySWQpKSB7XHJcbiAgICAgICAgLy8gICAgdXNlcklkUmVzdWx0ID0gdGhpcy5fdXNlclY1U2VydmljZS5nZXRJbnN0YW5jZUlkKCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIGVsc2V7XHJcbiAgICAgICAgLy8gICAgdXNlcklkUmVzdWx0ID0gcmF3VXNlcklkO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICAvLyB0aGlzLnVzZXJJZCA9IHVzZXJJZFJlc3VsdC50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMudXNlcklkID0gdGhpcy5fdXNlclY1U2VydmljZS5nZXRJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXROb3RpZmljYXRpb24oKSB7XHJcbiAgICAgICAgdGhpcy5fc2lnbmFsUlNlcnZpY2Uuc3RhcnQoXHJcbiAgICAgICAgICAgIHRoaXMuX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuc2lnbmFsckNvbmZpZy50b3BpYy5ub3RpZmljYXRpb25DcmVhdGVkLFxyXG4gICAgICAgICAgICB0aGlzLnVzZXJJZCxcclxuICAgICAgICAgICAgdGhpcy5ub3RpZnlUcmlnZ2VyLmJpbmQodGhpcylcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnJlZnJlc2hOb3RpZmljYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBub3RpZnlUcmlnZ2VyKGRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnVuc2hpZnQoZGF0YSk7XHJcbiAgICAgICAgaWYgKGRhdGEuY3JlYXRlZEJ5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0QmFzaWNVc2VySW5mbyhkYXRhLmNyZWF0ZWRCeSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGF0YS5hdmF0YXJJZCA9IHJlc3VsdC5hdmF0YXI7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucy5sZW5ndGggPiB0aGlzLm1heE5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucm9vdENvbnRleHQuZmlyZUV2ZW50KCdOT1RJRklDQVRJT05fVVNFUl9DSEFOR0UnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy50b3RhbFVuUmVhZCsrO1xyXG4gICAgICAgIHRoaXMuYm91bmNlTm90aSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaE5vdGlmaWNhdGlvbigpIHtcclxuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudC5kaXNhYmxlTm90aWZpY2F0aW9uKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgZ3JpZEluZm8gPSBuZXcgR3JpZEluZm8oe1xyXG4gICAgICAgICAgICBmaWx0ZXJzOiBbXHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcigndXNlcklkJywgT3BlcmF0b3IuZXF1YWwsIHRoaXMudXNlcklkKVxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICBwYWdlSW5mbzoge1xyXG4gICAgICAgICAgICAgICAgcGFnZTogMSxcclxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLm1heE5vdGlmaWNhdGlvblxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzb3J0czogW1xyXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogJ2NyZWF0ZWQnLCBkaXI6IC0xIH1cclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgZmllbGRzOiAnJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IHJlYWRlZEZpbHRlcnMgPSBbXHJcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCd1c2VySWQnLCBPcGVyYXRvci5lcXVhbCwgdGhpcy51c2VySWQpLFxyXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcigncmVhZGVkVGltZScsIE9wZXJhdG9yLmlzTnVsbCwgJzEnKVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLmdldEJ5R3JpZFJlcXVlc3QoZ3JpZEluZm8pLnRoZW4ocmVzID0+IHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzLCAnJywgZiA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYm91bmNlTm90aSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyR2V0Tm90aWNhdGlvbigpO1xyXG4gICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2UuZ2V0QWxsKHJlYWRlZEZpbHRlcnMsICdyZWFkZWRUaW1lJykudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbFVuUmVhZCA9IHJlcy5zdWNjZXNzICYmIHJlcy5kYXRhID8gKDxhbnlbXT5yZXMuZGF0YSkubGVuZ3RoIDogMDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBhZnRlckdldE5vdGljYXRpb24oKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNyZWF0ZWRVc2VySWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VzZXJWNVNlcnZpY2UuZ2V0QmFzaWNVc2VySW5mbyhlbGVtZW50LmNyZWF0ZWRVc2VySWQpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmF2YXRhcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmF2YXRhcklkID0gcmVzdWx0LmF2YXRhcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlYWRBbGwoZXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93Q29uZmlybSgnxJDDoW5oIGThuqV1IHThuqV0IGPhuqMgdGjDtG5nIGLDoW8gbMOgIMSRw6MgxJHhu41jPycsICfEkMOhbmggZOG6pXUgxJHDoyDEkeG7jWMgdGjDtG5nIGLDoW8nKS50aGVuKHJzID0+IHtcclxuICAgICAgICAgICAgaWYgKCFycykgcmV0dXJuO1xyXG4gICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQucmVhZGVkVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25TZXJ2aWNlLm1hcmtSZWFkQWxsQnlVc2VyQ3VycmVudCgpLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb290Q29udGV4dC5maXJlRXZlbnQoQ29tQ3R4Q29uc3RhbnRzLk5PVElGSUNBVElPTi5OT1RJRklDQVRJT05fUkVMT0FELCB0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxVblJlYWQgPSAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlYWRCeUlkKGRhdGE6IGFueSkge1xyXG4gICAgICAgIGRhdGEucmVhZGVkVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fbm90aWZpY2F0aW9uU2VydmljZS5tYXJrUmVhZEJ5SWQoZGF0YS5pZCkudGhlbihyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvb3RDb250ZXh0LmZpcmVFdmVudChDb21DdHhDb25zdGFudHMuTk9USUZJQ0FUSU9OLk5PVElGSUNBVElPTl9SRUxPQUQpO1xyXG4gICAgICAgIH0pLmNhdGNoKGVyciA9PiB0aGlzLl9jb21tb25TZXJ2aWNlLmhhbmRsZUVycm9yKGVyciwgdGhpcy5faW5qZWN0b3IpKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0hhc0F2YXRhcihpdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuICEhaXRlbS5hdmF0YXJJZDtcclxuICAgIH1cclxuXHJcbiAgICBpc1JlYWRlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISFpdGVtLnJlYWRlZFRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VycmVudFVzZXJBdmF0YXIoaXRlbSkge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmFwaVVwbG9hZFVybH0vcHVibGljLyR7aXRlbX0vRG93bmxvYWRgO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdvVG9MaW5rKGl0ZW06IGFueSkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1JlYWRlZChpdGVtKSkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlYWRCeUlkKGl0ZW0pO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsVW5SZWFkLS07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTYXZlIGN1cnJlbnQgcGF0aCB0byBnbyBiYWNrXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRVcmwnLCB0b3AubG9jYXRpb24uaHJlZik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2N1cnJlbnRQYXRoTmFtZScsIHRvcC5sb2NhdGlvbi5wYXRobmFtZSk7XHJcbiAgICAgICAgaWYgKGl0ZW0ubWVzc2FnZUxpbmspIHtcclxuICAgICAgICAgICAgY29uc3QgbGluayA9IGl0ZW0ubWVzc2FnZUxpbms7XHJcbiAgICAgICAgICAgIC8vIE5hbU5IIC0gxJDhu4MgdG9wIGxvY2F0aW9uIGhyZWYgdsOsIGPDsyB0aOG7gyBjbGljayB4ZW0gdGjDtG5nIGLDoW8gdOG7qyBwaMOibiBo4buHIGtow6FjLCBzYXUgdOG7kWkgxrB1IG7hur91IGPDuW5nIHBow6JuIGjhu4cgdGjDrCByb3V0ZXIgbmF2aWdhdGUsIGPDsm4ga2jDoWMgcGjDom4gaOG7hyB0aMOsIGxvY2F0aW9uIGhyZWZcclxuICAgICAgICAgICAgdG9wLmxvY2F0aW9uLmhyZWYgPSBsaW5rO1xyXG4gICAgICAgICAgICAvLyBpZiAodGhpcy5fcm91dGVyLmlzQWN0aXZlKGxpbmssIGZhbHNlKSkge1xyXG4gICAgICAgICAgICAvLyAgICAgdGhpcy5yb290Q29udGV4dC5maXJlRXZlbnQoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuTk9USV9DTElDSywgbGluayk7XHJcbiAgICAgICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vICAgICBpZiAodGhpcy5yb290TW9kZWwuZnJhZ21lbnRzKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMucm9vdE1vZGVsLmZyYWdtZW50cykge1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICBpZiAoIWl0ZW0uY2xvc2VkKSB7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBpdGVtLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoZWFkZXJDbGljayhldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk1lbnVFdmVudCgkZXZlbnQpIHtcclxuICAgICAgICB0aGlzLm9wZW5NZW51Lm5leHQoJGV2ZW50KTtcclxuICAgICAgICB0aGlzLmJvdW5jZU5vdGkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDbGlja2VkKCkge1xyXG4gICAgICAgIGNvbnN0IHRob25nQmFvRG9tYWluID0gdGhpcy5lbnZpcm9ubWVudC5jbGllbnREb21haW4udGhvbmdiYW9Eb21haW4gPz8gJyc7XHJcbiAgICAgICAgd2luZG93Lm9wZW4odGhvbmdCYW9Eb21haW4pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -2,7 +2,7 @@ import { __awaiter } from "tslib";
2
2
  import { Component, EventEmitter, Injector, Input, Output, ViewChild } from '@angular/core';
3
3
  import { DataFormBase } from '../../../classes/base/data-form-base';
4
4
  import { CrudListSetting, EditorControlSchema, EnumFileLayout, FileManagerControlSchema, } from '../../../classes/form-schema';
5
- import { EnumStateType } from '../../statemachines/models/enums';
5
+ import { EnumProcessWorkflowType, EnumStateType } from '../../statemachines/models/enums';
6
6
  import { StateMachinesService } from '../../statemachines/services/statemachines.service';
7
7
  import { WfAction, WfItem, WorkflowTargetDefaultValue } from '../models/models';
8
8
  import { ProcessWorkflowTargetComponent } from '../process-workflow-target/process-workflow-target.component';
@@ -127,7 +127,8 @@ export class ProcessWorkflowFormComponent extends DataFormBase {
127
127
  ruleInWorkflows: [],
128
128
  departmentIds: (_a = this.action.data.departmentIds) !== null && _a !== void 0 ? _a : [],
129
129
  groupIds: (_b = this.action.data.groupIds) !== null && _b !== void 0 ? _b : [],
130
- roleIds: (_c = this.action.data.roleIds) !== null && _c !== void 0 ? _c : []
130
+ roleIds: (_c = this.action.data.roleIds) !== null && _c !== void 0 ? _c : [],
131
+ type: EnumProcessWorkflowType.EDIT
131
132
  };
132
133
  this.dataOnlyView = {
133
134
  rules: [],
@@ -135,7 +136,8 @@ export class ProcessWorkflowFormComponent extends DataFormBase {
135
136
  ruleInWorkflows: [],
136
137
  departmentIds: (_d = this.action.data.departmentViewIds) !== null && _d !== void 0 ? _d : [],
137
138
  groupIds: (_e = this.action.data.groupViewIds) !== null && _e !== void 0 ? _e : [],
138
- roleIds: (_f = this.action.data.roleViewIds) !== null && _f !== void 0 ? _f : []
139
+ roleIds: (_f = this.action.data.roleViewIds) !== null && _f !== void 0 ? _f : [],
140
+ type: EnumProcessWorkflowType.VIEW
139
141
  };
140
142
  this.addDistinct(this.dataAllowEdit.userIds, this.initValueForTargetForm.lstUserId);
141
143
  this.addDistinct(this.dataAllowEdit.departmentIds, this.initValueForTargetForm.lstDonViId);
@@ -252,4 +254,4 @@ ProcessWorkflowFormComponent.propDecorators = {
252
254
  action: [{ type: Input }],
253
255
  onInvalidWorkflow: [{ type: Output }]
254
256
  };
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCx3QkFBd0IsR0FFM0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU85RSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsWUFBWTtJQStCMUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsdUJBQStDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBekJqRCxzQkFBaUIsR0FBc0Is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LFFBQVEsRUFBRSxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7U0FDL0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBaFFKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQywwNENBQXFEOzthQUV4RDs7O1lBckJpQyxRQUFRO1lBWWpDLG9CQUFvQjtZQUdwQixzQkFBc0I7OztrQ0FRMUIsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtpQ0FDOUMsU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs4QkFFN0MsS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUs7cUJBQ0wsS0FBSztnQ0FFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHtcclxuICAgIENydWRMaXN0U2V0dGluZyxcclxuICAgIEVkaXRvckNvbnRyb2xTY2hlbWEsXHJcbiAgICBFbnVtRmlsZUxheW91dCxcclxuICAgIEV2ZW50RGF0YSxcclxuICAgIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSxcclxuICAgIEZvcm1TY2hlbWFCYXNlLFxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBFbnVtU3RhdGVUeXBlIH0gZnJvbSAnLi4vLi4vc3RhdGVtYWNoaW5lcy9tb2RlbHMvZW51bXMnO1xyXG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmVzU2VydmljZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvc2VydmljZXMvc3RhdGVtYWNoaW5lcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ZBY3Rpb24sIFdmSXRlbSwgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvbW9kZWxzJztcclxuaW1wb3J0IHsgUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya2Zsb3dIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dvcmtmbG93LWhpc3Rvcnkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncHJvY2Vzcy13b3JrZmxvdy1mb3JtJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc1dvcmtmbG93Rm9ybUNvbXBvbmVudCBleHRlbmRzIERhdGFGb3JtQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCd0YXJnZXRBbGxvd0VkaXQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybVRhcmdldEFsbG93RWRpdDogUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgndGFyZ2V0T25seVZpZXcnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9ybVRhcmdldE9ubHlWaWV3OiBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgYnVzaW5lc3NTZXR0aW5nOiBDcnVkTGlzdFNldHRpbmc7XHJcbiAgICBASW5wdXQoKSBpdGVtOiBhbnk7XHJcbiAgICBASW5wdXQoKSB3b3JrZmxvdzogV2ZJdGVtO1xyXG4gICAgQElucHV0KCkgYWN0aW9uOiBXZkFjdGlvbjtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25JbnZhbGlkV29ya2Zsb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgZm9ybVJlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBtYWluVGFiRGF0YTogYW55W10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnYWxsb3dFZGl0JyxcclxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZScsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTmfGsOG7nWkgbmjhuq1uJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2RlOiAnb25seVZpZXcnLFxyXG4gICAgICAgICAgICBpY29uOiAncGkgcGktbGlzdCcsXHJcbiAgICAgICAgICAgIGxhYmVsOiAnTmfGsOG7nWkgdGhlbyBkw7VpJ1xyXG4gICAgICAgIH1cclxuICAgIF07XHJcbiAgICBpc0FjdGlvbktldFRodWM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGRhdGFBbGxvd0VkaXQ6IGFueSA9IHt9O1xyXG4gICAgZGF0YU9ubHlWaWV3OiBhbnkgPSB7fTtcclxuICAgIHJ1bGVVc2VycyA9IFtdO1xyXG4gICAgaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgPSBuZXcgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHVzZXJJZHNEYVRodWNIaWVuOiBzdHJpbmdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZU1hY2hpbmVzU2VydmljZTogU3RhdGVNYWNoaW5lc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfd29ya2Zsb3dIaXN0b3J5U2VydmljZTogV29ya2Zsb3dIaXN0b3J5U2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fc3RhdGVNYWNoaW5lc1NlcnZpY2U7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLnNjaGVtYSA9IDxGb3JtU2NoZW1hQmFzZVtdPltcclxuICAgICAgICAgICAgbmV3IEVkaXRvckNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdub3RlJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ8OdIGtp4bq/bicpLFxyXG4gICAgICAgICAgICAgICAgbWRXaWR0aDogMTJcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdmaWxlRGluaEtlbScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdGaWxlIMSRw61uaCBrw6htJyksXHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ6IEVudW1GaWxlTGF5b3V0LlNJTVBMRSxcclxuICAgICAgICAgICAgICAgIHNlcnZpY2VDb2RlOiB0aGlzLl93b3JrZmxvd0hpc3RvcnlTZXJ2aWNlLnNlcnZpY2VDb2RlLFxyXG4gICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLl93b3JrZmxvd0hpc3RvcnlTZXJ2aWNlLmVudGl0eU5hbWUsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6IHRoaXMubW9kZWwuZGF0YS5pZCxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDEyLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLmluaXRSdWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdFJ1bGUoKSB7XHJcbiAgICAgICAgLy8gS2nhu4NtIHRyYSDEkcOieSBsw6AgYWN0aW9uIGvhur90IHRow7pjXHJcbiAgICAgICAgY29uc3QgbmV4dE1hY2hpbmUgPSB0aGlzLndvcmtmbG93LmRhdGEubWFjaGluZXMuZmluZChxID0+IHEuaWQgPT0gdGhpcy5hY3Rpb24udGFyZ2V0KTtcclxuICAgICAgICB0aGlzLmlzQWN0aW9uS2V0VGh1YyA9IG5leHRNYWNoaW5lLnR5cGUgPT0gRW51bVN0YXRlVHlwZS5TVE9QO1xyXG4gICAgICAgIGlmICh0aGlzLmlzQWN0aW9uS2V0VGh1Yykge1xyXG4gICAgICAgICAgICB0aGlzLm1haW5UYWJEYXRhWzFdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmICh0aGlzLmNoZWNrTmVlZEdldFVzZXIoKSkge1xyXG4gICAgICAgIGlmICghYXdhaXQgdGhpcy5nZXRVc2VyRm9yUHJvY2Vzc1dvcmtmbG93KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgdGhpcy5zZXREYXRhQW5kVHJpZ2dlclJlYWR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tOZWVkR2V0VXNlcigpIHtcclxuICAgICAgICB0aGlzLnJ1bGVVc2VycyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIgfHwgIXRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIubGVuZ3RoID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXJbMF0ubGFuVGh1ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChjb25zdCBpbmZvUmVjZWl2ZXIgb2YgdGhpcy5hY3Rpb24uZGF0YS5pbmZvUmVjZWl2ZXIpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tOZWVkR2V0VXNlckJ5VXNlckRhdGEoaW5mb1JlY2VpdmVyLnVzZXIpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja05lZWRHZXRVc2VyQnlVc2VyRGF0YShpbmZvUmVjZWl2ZXIudXNlclZpZXcpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VXNlckZvclByb2Nlc3NXb3JrZmxvdygpIHtcclxuICAgICAgICBjb25zdCBzb3VyY2VNYWNoaW5lID0gdGhpcy53b3JrZmxvdy5kYXRhLm1hY2hpbmVzLmZpbmQocSA9PiBxLmlkID09IHRoaXMuYWN0aW9uLnNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0gPSBhd2FpdCB0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5nZXRVc2VySW5Qcm9jZXNzRm9ybShcclxuICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5jb2RlLCBzb3VyY2VNYWNoaW5lLmNvZGUsIHRoaXMuYWN0aW9uLmNvZGUsIHRoaXMuaXRlbS5pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKCFyZXN1bHRHZXRVc2VySW5Qcm9jZXNzRm9ybS5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UocmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGFVc2VySW5Qcm9jZXNzRm9ybSA9IHJlc3VsdEdldFVzZXJJblByb2Nlc3NGb3JtLmRhdGE7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RVc2VySWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFVzZXJWaWV3SWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0VXNlclZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3REb25WaUlkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaVZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3REb25WaVZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0R3JvdXBJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RHcm91cElkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cFZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RHcm91cFZpZXdJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZUlkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFJvbGVJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZVZpZXdJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RSb2xlVmlld0lkO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tOZWVkR2V0VXNlckJ5VXNlckRhdGEodXNlckRhdGE6IGFueSkge1xyXG4gICAgICAgIGlmICh1c2VyRGF0YVxyXG4gICAgICAgICAgICAmJiAoKHVzZXJEYXRhLnJ1bGVzICYmIHVzZXJEYXRhLnJ1bGVzLmxlbmd0aClcclxuICAgICAgICAgICAgICAgIHx8ICh1c2VyRGF0YS5ydWxlSW5Xb3JrZmxvd3MgJiYgdXNlckRhdGEucnVsZUluV29ya2Zsb3dzLmxlbmd0aClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERhdGFBbmRUcmlnZ2VyUmVhZHkoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhQWxsb3dFZGl0ID0ge1xyXG4gICAgICAgICAgICBydWxlczogW10sXHJcbiAgICAgICAgICAgIHVzZXJJZHM6IFtdLFxyXG4gICAgICAgICAgICBydWxlSW5Xb3JrZmxvd3M6IFtdLFxyXG4gICAgICAgICAgICBkZXBhcnRtZW50SWRzOiB0aGlzLmFjdGlvbi5kYXRhLmRlcGFydG1lbnRJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIGdyb3VwSWRzOiB0aGlzLmFjdGlvbi5kYXRhLmdyb3VwSWRzID8/IFtdLFxyXG4gICAgICAgICAgICByb2xlSWRzOiB0aGlzLmFjdGlvbi5kYXRhLnJvbGVJZHMgPz8gW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuZGF0YU9ubHlWaWV3ID0ge1xyXG4gICAgICAgICAgICBydWxlczogW10sXHJcbiAgICAgICAgICAgIHVzZXJJZHM6IFtdLFxyXG4gICAgICAgICAgICBydWxlSW5Xb3JrZmxvd3M6IFtdLFxyXG4gICAgICAgICAgICBkZXBhcnRtZW50SWRzOiB0aGlzLmFjdGlvbi5kYXRhLmRlcGFydG1lbnRWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICBncm91cElkczogdGhpcy5hY3Rpb24uZGF0YS5ncm91cFZpZXdJZHMgPz8gW10sXHJcbiAgICAgICAgICAgIHJvbGVJZHM6IHRoaXMuYWN0aW9uLmRhdGEucm9sZVZpZXdJZHMgPz8gW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3QodGhpcy5kYXRhQWxsb3dFZGl0LnVzZXJJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RVc2VySWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3QodGhpcy5kYXRhQWxsb3dFZGl0LmRlcGFydG1lbnRJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaUlkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC5ncm91cElkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwSWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3QodGhpcy5kYXRhQWxsb3dFZGl0LnJvbGVJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RSb2xlSWQpO1xyXG5cclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YU9ubHlWaWV3LnVzZXJJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RVc2VyVmlld0lkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YU9ubHlWaWV3LmRlcGFydG1lbnRJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3REb25WaVZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy5ncm91cElkcywgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwVmlld0lkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YU9ubHlWaWV3LnJvbGVJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RSb2xlVmlld0lkKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtUmVhZHkgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkRGlzdGluY3QoZGVzdDogc3RyaW5nW10sIHNvdXJjZTogc3RyaW5nW10pIHtcclxuICAgICAgICBpZiAoIXNvdXJjZSB8fCAhc291cmNlLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgICAgIHNvdXJjZS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGVzdC5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBkZXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkZvcm1Jbml0aWFsaXplZChldnQ6IEV2ZW50RGF0YSkge1xyXG4gICAgICAgIGV2dC5tb2RlbC5pZCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuZ3VpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHZhbGlkYXRlRm9ybSgpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEudXNlcklkcyA9IHRoaXMuZm9ybVRhcmdldEFsbG93RWRpdC5tb2RlbC5kYXRhLnVzZXJJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmRlcGFydG1lbnRJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5ncm91cElkcyA9IHRoaXMuZm9ybVRhcmdldEFsbG93RWRpdC5tb2RlbC5kYXRhLmdyb3VwSWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5yb2xlSWRzID0gdGhpcy5mb3JtVGFyZ2V0QWxsb3dFZGl0Lm1vZGVsLmRhdGEucm9sZUlkcztcclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnVzZXJWaWV3SWRzID0gdGhpcy5mb3JtVGFyZ2V0T25seVZpZXcubW9kZWwuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50Vmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEuZGVwYXJ0bWVudElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZ3JvdXBWaWV3SWRzID0gdGhpcy5mb3JtVGFyZ2V0T25seVZpZXcubW9kZWwuZGF0YS5ncm91cElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEucm9sZVZpZXdJZHMgPSB0aGlzLmZvcm1UYXJnZXRPbmx5Vmlldy5tb2RlbC5kYXRhLnJvbGVJZHM7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0FjdGlvbktldFRodWMpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNFbXB0eUFycmF5KHRoaXMubW9kZWwuZGF0YS51c2VySWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLmRlcGFydG1lbnRJZHMpXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLmlzRW1wdHlBcnJheSh0aGlzLm1vZGVsLmRhdGEuZ3JvdXBJZHMpXHJcbiAgICAgICAgICAgICAgICAmJiB0aGlzLmlzRW1wdHlBcnJheSh0aGlzLm1vZGVsLmRhdGEucm9sZUlkcylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1dhcm5pbmcoJ1Bo4bqjaSBjaOG7jW4gw610IG5o4bqldCAxIG5ow7NtIMSR4buRaSB0xrDhu6NuZyBuaOG6rW4gKE5nxrDhu51pIG5o4bqtbiB44butIGzDvSB8IMSQxqFuIHbhu4sgfCBOaMOzbSBuZ8aw4budaSBkw7luZyknKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRW1wdHlBcnJheSh2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiAhdmFsdWUgfHwgIXZhbHVlLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRNb2RlbFByb2Nlc3NXb3JrZmxvdygpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VJbnNlcnRTdWNjZXNzID0gYCR7dGhpcy5hY3Rpb24ubmFtZX0gdGjDoG5oIGPDtG5nYDtcclxuICAgICAgICBjb25zdCBkYXRhUG9zdCA9IHRoaXMuX2NvbW1vblNlcnZpY2UuY2xvbmVPYmplY3QodGhpcy5tb2RlbC5kYXRhKTtcclxuICAgICAgICBkYXRhUG9zdC50YWJsZU5hbWUgPSB0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5lbnRpdHlOYW1lO1xyXG4gICAgICAgIGxldCBuYW1lID0gJyc7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1c2luZXNzU2V0dGluZy5kaXNwbGF5RmllbGQgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgbmFtZSA9IHRoaXMuaXRlbVs8c3RyaW5nPih0aGlzLmJ1c2luZXNzU2V0dGluZy5kaXNwbGF5RmllbGQpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSAoPEZ1bmN0aW9uPih0aGlzLmJ1c2luZXNzU2V0dGluZy5kaXNwbGF5RmllbGQpKSh0aGlzLml0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBuYW1lID0gYCR7dGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2Uub2JqZWN0TmFtZX0gJHtuYW1lfWA7XHJcbiAgICAgICAgZGF0YVBvc3Qub2JqZWN0RnVsbE5hbWUgPSBuYW1lO1xyXG4gICAgICAgIGRhdGFQb3N0Lm9iamVjdE5hbWUgPSB0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5vYmplY3ROYW1lO1xyXG4gICAgICAgIGRhdGFQb3N0LndvcmtmbG93Q29kZSA9IHRoaXMuaXRlbS5fX3dvcmtmbG93Q29kZTtcclxuICAgICAgICBkYXRhUG9zdC5pdGVtSWQgPSB0aGlzLml0ZW0uaWQ7XHJcbiAgICAgICAgZGF0YVBvc3Quc291cmNlU3RhdHVzQ29kZSA9IHRoaXMuaXRlbS5fX3RyYW5nVGhhaTtcclxuICAgICAgICBkYXRhUG9zdC5hY3Rpb25Db2RlID0gdGhpcy5hY3Rpb24uY29kZTtcclxuXHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3VzZXJJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAndXNlclZpZXdJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZGVwYXJ0bWVudElkcycpO1xyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICdkZXBhcnRtZW50Vmlld0lkcycpO1xyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICdncm91cElkcycpO1xyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICdncm91cFZpZXdJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAncm9sZUlkcycpO1xyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICdyb2xlVmlld0lkcycpO1xyXG4gICAgICAgIHJldHVybiBkYXRhUG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9taXNlQWN0aW9uSW5zZXJ0KCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGFQb3N0ID0gdGhpcy5nZXRNb2RlbFByb2Nlc3NXb3JrZmxvdygpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJ1c2luZXNzU2V0dGluZy5iYXNlU2VydmljZS5jaGFuZ2VTdGF0ZShcclxuICAgICAgICAgICAgZGF0YVBvc3RcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0OiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoZGF0YVBvc3RbZmllbGRdKSB7XHJcbiAgICAgICAgICAgIGRhdGFQb3N0W2ZpZWxkXSA9IGRhdGFQb3N0W2ZpZWxkXS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbnNlcnRFcnJvcigpIHtcclxuICAgICAgICB0aGlzLm9uSW52YWxpZFdvcmtmbG93LmVtaXQoe1xyXG4gICAgICAgICAgICBpdGVtOiB0aGlzLml0ZW0sXHJcbiAgICAgICAgICAgIGFjdGlvbjogdGhpcy5hY3Rpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbkNvZGU6IHRoaXMuYWN0aW9uLmNvZGVcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3dvcmtmbG93L3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS9wcm9jZXNzLXdvcmtmbG93LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFDSCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCx3QkFBd0IsR0FFM0IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQU85RSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsWUFBWTtJQStCMUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsdUJBQStDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUpQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBekJqRCxz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QVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUk7U0FDL0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBbFFKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQywwNENBQXFEOzthQUV4RDs7O1lBckJpQyxRQUFRO1lBWWpDLG9CQUFvQjtZQUdwQixzQkFBc0I7OztrQ0FRMUIsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtpQ0FDOUMsU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs4QkFFN0MsS0FBSzttQkFDTCxLQUFLO3VCQUNMLEtBQUs7cUJBQ0wsS0FBSztnQ0FFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHtcclxuICAgIENydWRMaXN0U2V0dGluZyxcclxuICAgIEVkaXRvckNvbnRyb2xTY2hlbWEsXHJcbiAgICBFbnVtRmlsZUxheW91dCxcclxuICAgIEV2ZW50RGF0YSxcclxuICAgIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSxcclxuICAgIEZvcm1TY2hlbWFCYXNlLFxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZSwgRW51bVN0YXRlVHlwZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgU3RhdGVNYWNoaW5lc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3NlcnZpY2VzL3N0YXRlbWFjaGluZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFdmQWN0aW9uLCBXZkl0ZW0sIFdvcmtmbG93VGFyZ2V0RGVmYXVsdFZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL21vZGVscyc7XHJcbmltcG9ydCB7IFByb2Nlc3NXb3JrZmxvd1RhcmdldENvbXBvbmVudCB9IGZyb20gJy4uL3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0L3Byb2Nlc3Mtd29ya2Zsb3ctdGFyZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtmbG93SGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy93b3JrZmxvdy1oaXN0b3J5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy13b3JrZmxvdy1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3Byb2Nlc3Mtd29ya2Zsb3ctZm9ybS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2Nlc3NXb3JrZmxvd0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZCgndGFyZ2V0QWxsb3dFZGl0JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1UYXJnZXRBbGxvd0VkaXQ6IFByb2Nlc3NXb3JrZmxvd1RhcmdldENvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ3RhcmdldE9ubHlWaWV3JywgeyBzdGF0aWM6IGZhbHNlIH0pIGZvcm1UYXJnZXRPbmx5VmlldzogUHJvY2Vzc1dvcmtmbG93VGFyZ2V0Q29tcG9uZW50O1xyXG5cclxuICAgIEBJbnB1dCgpIGJ1c2luZXNzU2V0dGluZzogQ3J1ZExpc3RTZXR0aW5nO1xyXG4gICAgQElucHV0KCkgaXRlbTogYW55O1xyXG4gICAgQElucHV0KCkgd29ya2Zsb3c6IFdmSXRlbTtcclxuICAgIEBJbnB1dCgpIGFjdGlvbjogV2ZBY3Rpb247XHJcblxyXG4gICAgQE91dHB1dCgpIG9uSW52YWxpZFdvcmtmbG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIGZvcm1SZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbWFpblRhYkRhdGE6IGFueVtdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJ2FsbG93RWRpdCcsXHJcbiAgICAgICAgICAgIGljb246ICdwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ05nxrDhu51pIG5o4bqtbidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29kZTogJ29ubHlWaWV3JyxcclxuICAgICAgICAgICAgaWNvbjogJ3BpIHBpLWxpc3QnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ05nxrDhu51pIHRoZW8gZMO1aSdcclxuICAgICAgICB9XHJcbiAgICBdO1xyXG4gICAgaXNBY3Rpb25LZXRUaHVjOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBkYXRhQWxsb3dFZGl0OiBhbnkgPSB7fTtcclxuICAgIGRhdGFPbmx5VmlldzogYW55ID0ge307XHJcbiAgICBydWxlVXNlcnMgPSBbXTtcclxuICAgIGluaXRWYWx1ZUZvclRhcmdldEZvcm06IFdvcmtmbG93VGFyZ2V0RGVmYXVsdFZhbHVlID0gbmV3IFdvcmtmbG93VGFyZ2V0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICB1c2VySWRzRGFUaHVjSGllbjogc3RyaW5nW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGVNYWNoaW5lc1NlcnZpY2U6IFN0YXRlTWFjaGluZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3dvcmtmbG93SGlzdG9yeVNlcnZpY2U6IFdvcmtmbG93SGlzdG9yeVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX3N0YXRlTWFjaGluZXNTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybVNjaGVtYUJhc2VbXT5bXHJcbiAgICAgICAgICAgIG5ldyBFZGl0b3JDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbm90ZScsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCfDnSBraeG6v24nKSxcclxuICAgICAgICAgICAgICAgIG1kV2lkdGg6IDEyXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZmlsZURpbmhLZW0nLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRmlsZSDEkcOtbmgga8OobScpLFxyXG4gICAgICAgICAgICAgICAgbGF5b3V0OiBFbnVtRmlsZUxheW91dC5TSU1QTEUsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlQ29kZTogdGhpcy5fd29ya2Zsb3dIaXN0b3J5U2VydmljZS5zZXJ2aWNlQ29kZSxcclxuICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5fd29ya2Zsb3dIaXN0b3J5U2VydmljZS5lbnRpdHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiB0aGlzLm1vZGVsLmRhdGEuaWQsXHJcbiAgICAgICAgICAgICAgICBtZFdpZHRoOiAxMixcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5pbml0UnVsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGluaXRSdWxlKCkge1xyXG4gICAgICAgIC8vIEtp4buDbSB0cmEgxJHDonkgbMOgIGFjdGlvbiBr4bq/dCB0aMO6Y1xyXG4gICAgICAgIGNvbnN0IG5leHRNYWNoaW5lID0gdGhpcy53b3JrZmxvdy5kYXRhLm1hY2hpbmVzLmZpbmQocSA9PiBxLmlkID09IHRoaXMuYWN0aW9uLnRhcmdldCk7XHJcbiAgICAgICAgdGhpcy5pc0FjdGlvbktldFRodWMgPSBuZXh0TWFjaGluZS50eXBlID09IEVudW1TdGF0ZVR5cGUuU1RPUDtcclxuICAgICAgICBpZiAodGhpcy5pc0FjdGlvbktldFRodWMpIHtcclxuICAgICAgICAgICAgdGhpcy5tYWluVGFiRGF0YVsxXS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiAodGhpcy5jaGVja05lZWRHZXRVc2VyKCkpIHtcclxuICAgICAgICBpZiAoIWF3YWl0IHRoaXMuZ2V0VXNlckZvclByb2Nlc3NXb3JrZmxvdygpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIHRoaXMuc2V0RGF0YUFuZFRyaWdnZXJSZWFkeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrTmVlZEdldFVzZXIoKSB7XHJcbiAgICAgICAgdGhpcy5ydWxlVXNlcnMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyIHx8ICF0aGlzLmFjdGlvbi5kYXRhLmluZm9SZWNlaXZlci5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyWzBdLmxhblRodSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgaW5mb1JlY2VpdmVyIG9mIHRoaXMuYWN0aW9uLmRhdGEuaW5mb1JlY2VpdmVyKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrTmVlZEdldFVzZXJCeVVzZXJEYXRhKGluZm9SZWNlaXZlci51c2VyKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tOZWVkR2V0VXNlckJ5VXNlckRhdGEoaW5mb1JlY2VpdmVyLnVzZXJWaWV3KSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldFVzZXJGb3JQcm9jZXNzV29ya2Zsb3coKSB7XHJcbiAgICAgICAgY29uc3Qgc291cmNlTWFjaGluZSA9IHRoaXMud29ya2Zsb3cuZGF0YS5tYWNoaW5lcy5maW5kKHEgPT4gcS5pZCA9PSB0aGlzLmFjdGlvbi5zb3VyY2UpO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdEdldFVzZXJJblByb2Nlc3NGb3JtID0gYXdhaXQgdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuZ2V0VXNlckluUHJvY2Vzc0Zvcm0oXHJcbiAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuY29kZSwgc291cmNlTWFjaGluZS5jb2RlLCB0aGlzLmFjdGlvbi5jb2RlLCB0aGlzLml0ZW0uaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmICghcmVzdWx0R2V0VXNlckluUHJvY2Vzc0Zvcm0uc3VjY2Vzcykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdEdldFVzZXJJblByb2Nlc3NGb3JtKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRhVXNlckluUHJvY2Vzc0Zvcm0gPSByZXN1bHRHZXRVc2VySW5Qcm9jZXNzRm9ybS5kYXRhO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RVc2VySWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0VXNlcklkO1xyXG4gICAgICAgIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RVc2VyVmlld0lkID0gZGF0YVVzZXJJblByb2Nlc3NGb3JtLmxzdFVzZXJWaWV3SWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdERvblZpSWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0RG9uVmlJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlWaWV3SWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0RG9uVmlWaWV3SWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdEdyb3VwSWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0R3JvdXBJZDtcclxuICAgICAgICB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0R3JvdXBWaWV3SWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0R3JvdXBWaWV3SWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFJvbGVJZCA9IGRhdGFVc2VySW5Qcm9jZXNzRm9ybS5sc3RSb2xlSWQ7XHJcbiAgICAgICAgdGhpcy5pbml0VmFsdWVGb3JUYXJnZXRGb3JtLmxzdFJvbGVWaWV3SWQgPSBkYXRhVXNlckluUHJvY2Vzc0Zvcm0ubHN0Um9sZVZpZXdJZDtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrTmVlZEdldFVzZXJCeVVzZXJEYXRhKHVzZXJEYXRhOiBhbnkpIHtcclxuICAgICAgICBpZiAodXNlckRhdGFcclxuICAgICAgICAgICAgJiYgKCh1c2VyRGF0YS5ydWxlcyAmJiB1c2VyRGF0YS5ydWxlcy5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICB8fCAodXNlckRhdGEucnVsZUluV29ya2Zsb3dzICYmIHVzZXJEYXRhLnJ1bGVJbldvcmtmbG93cy5sZW5ndGgpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhQW5kVHJpZ2dlclJlYWR5KCkge1xyXG4gICAgICAgIHRoaXMuZGF0YUFsbG93RWRpdCA9IHtcclxuICAgICAgICAgICAgcnVsZXM6IFtdLFxyXG4gICAgICAgICAgICB1c2VySWRzOiBbXSxcclxuICAgICAgICAgICAgcnVsZUluV29ya2Zsb3dzOiBbXSxcclxuICAgICAgICAgICAgZGVwYXJ0bWVudElkczogdGhpcy5hY3Rpb24uZGF0YS5kZXBhcnRtZW50SWRzID8/IFtdLFxyXG4gICAgICAgICAgICBncm91cElkczogdGhpcy5hY3Rpb24uZGF0YS5ncm91cElkcyA/PyBbXSxcclxuICAgICAgICAgICAgcm9sZUlkczogdGhpcy5hY3Rpb24uZGF0YS5yb2xlSWRzID8/IFtdLFxyXG4gICAgICAgICAgICB0eXBlOiBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZS5FRElUXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRhdGFPbmx5VmlldyA9IHtcclxuICAgICAgICAgICAgcnVsZXM6IFtdLFxyXG4gICAgICAgICAgICB1c2VySWRzOiBbXSxcclxuICAgICAgICAgICAgcnVsZUluV29ya2Zsb3dzOiBbXSxcclxuICAgICAgICAgICAgZGVwYXJ0bWVudElkczogdGhpcy5hY3Rpb24uZGF0YS5kZXBhcnRtZW50Vmlld0lkcyA/PyBbXSxcclxuICAgICAgICAgICAgZ3JvdXBJZHM6IHRoaXMuYWN0aW9uLmRhdGEuZ3JvdXBWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICByb2xlSWRzOiB0aGlzLmFjdGlvbi5kYXRhLnJvbGVWaWV3SWRzID8/IFtdLFxyXG4gICAgICAgICAgICB0eXBlOiBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZS5WSUVXXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC51c2VySWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlcklkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC5kZXBhcnRtZW50SWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFBbGxvd0VkaXQuZ3JvdXBJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cElkKTtcclxuICAgICAgICB0aGlzLmFkZERpc3RpbmN0KHRoaXMuZGF0YUFsbG93RWRpdC5yb2xlSWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZUlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy51c2VySWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0VXNlclZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy5kZXBhcnRtZW50SWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0RG9uVmlWaWV3SWQpO1xyXG4gICAgICAgIHRoaXMuYWRkRGlzdGluY3QodGhpcy5kYXRhT25seVZpZXcuZ3JvdXBJZHMsIHRoaXMuaW5pdFZhbHVlRm9yVGFyZ2V0Rm9ybS5sc3RHcm91cFZpZXdJZCk7XHJcbiAgICAgICAgdGhpcy5hZGREaXN0aW5jdCh0aGlzLmRhdGFPbmx5Vmlldy5yb2xlSWRzLCB0aGlzLmluaXRWYWx1ZUZvclRhcmdldEZvcm0ubHN0Um9sZVZpZXdJZCk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybVJlYWR5ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZERpc3RpbmN0KGRlc3Q6IHN0cmluZ1tdLCBzb3VyY2U6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgaWYgKCFzb3VyY2UgfHwgIXNvdXJjZS5sZW5ndGgpIHJldHVybjtcclxuICAgICAgICBzb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKGRlc3QuaW5kZXhPZihpdGVtKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgZGVzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwuaWQgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmd1aWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB2YWxpZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnVzZXJJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzID0gdGhpcy5mb3JtVGFyZ2V0QWxsb3dFZGl0Lm1vZGVsLmRhdGEuZGVwYXJ0bWVudElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZ3JvdXBJZHMgPSB0aGlzLmZvcm1UYXJnZXRBbGxvd0VkaXQubW9kZWwuZGF0YS5ncm91cElkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEucm9sZUlkcyA9IHRoaXMuZm9ybVRhcmdldEFsbG93RWRpdC5tb2RlbC5kYXRhLnJvbGVJZHM7XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwuZGF0YS51c2VyVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEudXNlcklkcztcclxuICAgICAgICB0aGlzLm1vZGVsLmRhdGEuZGVwYXJ0bWVudFZpZXdJZHMgPSB0aGlzLmZvcm1UYXJnZXRPbmx5Vmlldy5tb2RlbC5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLmdyb3VwVmlld0lkcyA9IHRoaXMuZm9ybVRhcmdldE9ubHlWaWV3Lm1vZGVsLmRhdGEuZ3JvdXBJZHM7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5kYXRhLnJvbGVWaWV3SWRzID0gdGhpcy5mb3JtVGFyZ2V0T25seVZpZXcubW9kZWwuZGF0YS5yb2xlSWRzO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNBY3Rpb25LZXRUaHVjKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRW1wdHlBcnJheSh0aGlzLm1vZGVsLmRhdGEudXNlcklkcylcclxuICAgICAgICAgICAgICAgICYmIHRoaXMuaXNFbXB0eUFycmF5KHRoaXMubW9kZWwuZGF0YS5kZXBhcnRtZW50SWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLmdyb3VwSWRzKVxyXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pc0VtcHR5QXJyYXkodGhpcy5tb2RlbC5kYXRhLnJvbGVJZHMpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dXYXJuaW5nKCdQaOG6o2kgY2jhu41uIMOtdCBuaOG6pXQgMSBuaMOzbSDEkeG7kWkgdMaw4bujbmcgbmjhuq1uIChOZ8aw4budaSBuaOG6rW4geOG7rSBsw70gfCDEkMahbiB24buLIHwgTmjDs20gbmfGsOG7nWkgZMO5bmcpJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc0VtcHR5QXJyYXkodmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlSW5zZXJ0U3VjY2VzcyA9IGAke3RoaXMuYWN0aW9uLm5hbWV9IHRow6BuaCBjw7RuZ2A7XHJcbiAgICAgICAgY29uc3QgZGF0YVBvc3QgPSB0aGlzLl9jb21tb25TZXJ2aWNlLmNsb25lT2JqZWN0KHRoaXMubW9kZWwuZGF0YSk7XHJcbiAgICAgICAgZGF0YVBvc3QudGFibGVOYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuZW50aXR5TmFtZTtcclxuICAgICAgICBsZXQgbmFtZSA9ICcnO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIG5hbWUgPSB0aGlzLml0ZW1bPHN0cmluZz4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBuYW1lID0gKDxGdW5jdGlvbj4odGhpcy5idXNpbmVzc1NldHRpbmcuZGlzcGxheUZpZWxkKSkodGhpcy5pdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbmFtZSA9IGAke3RoaXMuYnVzaW5lc3NTZXR0aW5nLmJhc2VTZXJ2aWNlLm9iamVjdE5hbWV9ICR7bmFtZX1gO1xyXG4gICAgICAgIGRhdGFQb3N0Lm9iamVjdEZ1bGxOYW1lID0gbmFtZTtcclxuICAgICAgICBkYXRhUG9zdC5vYmplY3ROYW1lID0gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2Uub2JqZWN0TmFtZTtcclxuICAgICAgICBkYXRhUG9zdC53b3JrZmxvd0NvZGUgPSB0aGlzLml0ZW0uX193b3JrZmxvd0NvZGU7XHJcbiAgICAgICAgZGF0YVBvc3QuaXRlbUlkID0gdGhpcy5pdGVtLmlkO1xyXG4gICAgICAgIGRhdGFQb3N0LnNvdXJjZVN0YXR1c0NvZGUgPSB0aGlzLml0ZW0uX190cmFuZ1RoYWk7XHJcbiAgICAgICAgZGF0YVBvc3QuYWN0aW9uQ29kZSA9IHRoaXMuYWN0aW9uLmNvZGU7XHJcblxyXG4gICAgICAgIHRoaXMuZmllbGRMaXN0VG9TdHJpbmcoZGF0YVBvc3QsICd1c2VySWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3VzZXJWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ2RlcGFydG1lbnRJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZGVwYXJ0bWVudFZpZXdJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAnZ3JvdXBWaWV3SWRzJyk7XHJcbiAgICAgICAgdGhpcy5maWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdCwgJ3JvbGVJZHMnKTtcclxuICAgICAgICB0aGlzLmZpZWxkTGlzdFRvU3RyaW5nKGRhdGFQb3N0LCAncm9sZVZpZXdJZHMnKTtcclxuICAgICAgICByZXR1cm4gZGF0YVBvc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvbWlzZUFjdGlvbkluc2VydCgpIHtcclxuICAgICAgICBjb25zdCBkYXRhUG9zdCA9IHRoaXMuZ2V0TW9kZWxQcm9jZXNzV29ya2Zsb3coKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5idXNpbmVzc1NldHRpbmcuYmFzZVNlcnZpY2UuY2hhbmdlU3RhdGUoXHJcbiAgICAgICAgICAgIGRhdGFQb3N0XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWVsZExpc3RUb1N0cmluZyhkYXRhUG9zdDogYW55LCBmaWVsZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKGRhdGFQb3N0W2ZpZWxkXSkge1xyXG4gICAgICAgICAgICBkYXRhUG9zdFtmaWVsZF0gPSBkYXRhUG9zdFtmaWVsZF0udG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5zZXJ0RXJyb3IoKSB7XHJcbiAgICAgICAgdGhpcy5vbkludmFsaWRXb3JrZmxvdy5lbWl0KHtcclxuICAgICAgICAgICAgaXRlbTogdGhpcy5pdGVtLFxyXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbi5jb2RlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -4,6 +4,7 @@ import { DataFormBase } from '../../../classes/base/data-form-base';
4
4
  import { DmChucVuService } from '../../../services/dm-chucvu.service';
5
5
  import { UserGroupRealService } from '../../../services/user-group-real.service';
6
6
  import { CoCauToChucService } from '../../cocautochuc/services/cocautochuc.service';
7
+ import { EnumProcessWorkflowType } from '../../statemachines/models/enums';
7
8
  import { StateMachinesService } from '../../statemachines/services/statemachines.service';
8
9
  import { createOrgPickerControl, createRolePickerControl, createUserGroupPickerControl, createUserPickerControl } from '../../statemachines/utils/utils';
9
10
  import { WorkflowTargetDefaultValue } from '../models/models';
@@ -34,11 +35,16 @@ export class ProcessWorkflowTargetComponent extends DataFormBase {
34
35
  if (!this.data.roleIds)
35
36
  this.data.roleIds = [];
36
37
  this.setting.baseService = this._stateMachinesService;
38
+ // set text label
39
+ let txtLabel = 'nhận xử lý';
40
+ if (this.data.type === EnumProcessWorkflowType.VIEW) {
41
+ txtLabel = 'theo dõi';
42
+ }
37
43
  this.setting.schema = [
38
- this._createUserPickerControl('userIds', 'Người nhận xử lý'),
44
+ this._createUserPickerControl('userIds', `Người ${txtLabel}`),
39
45
  // this.createUserPickerControl('idCapTrenGanNhats', 'Cán bộ cấp trên gần nhất'),
40
- this._createCoCauToChucControl('departmentIds', 'Đơn vị'),
41
- this._createUserGroupPickerControl('groupIds', 'Nhóm người dùng'),
46
+ this._createCoCauToChucControl('departmentIds', `Đơn vị ${txtLabel}`),
47
+ this._createUserGroupPickerControl('groupIds', `Nhóm người ${txtLabel}`),
42
48
  ];
43
49
  }
44
50
  _createUserPickerControl(field, label, multiple = true) {
@@ -89,4 +95,4 @@ ProcessWorkflowTargetComponent.propDecorators = {
89
95
  data: [{ type: Input }],
90
96
  initValue: [{ type: Input }]
91
97
  };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPOUQsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7SUFLNUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsbUJBQXVDLEVBQ3ZDLGlCQUF1QyxFQUN2QyxnQkFBaUM7UUFFekMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBTlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtR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LFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN4Qyx5Q0FBeUM7UUFDN0MsQ0FBQztLQUFBOzs7WUF6RUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLGlNQUF1RDs7YUFFMUQ7OztZQXpCbUIsUUFBUTtZQVluQixvQkFBb0I7WUFEcEIsa0JBQWtCO1lBRGxCLG9CQUFvQjtZQURwQixlQUFlOzs7bUJBbUJuQixLQUFLO3dCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFGb3JtQmFzZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvYmFzZS9kYXRhLWZvcm0tYmFzZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hLFxyXG4gICAgRHJvcGRvd25Db250cm9sU2NoZW1hLFxyXG4gICAgRXZlbnREYXRhLFxyXG4gICAgRm9ybVNjaGVtYUJhc2UsXHJcbiAgICBVc2VyUGlja2VyQ29udHJvbFNjaGVtYVxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5pbXBvcnQgeyBEbUNodWNWdVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kbS1jaHVjdnUuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJHcm91cFJlYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXNlci1ncm91cC1yZWFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb0NhdVRvQ2h1Y1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb2NhdXRvY2h1Yy9zZXJ2aWNlcy9jb2NhdXRvY2h1Yy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RhdGVNYWNoaW5lc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3NlcnZpY2VzL3N0YXRlbWFjaGluZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVPcmdQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlUm9sZVBpY2tlckNvbnRyb2wsXHJcbiAgICBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlVXNlclBpY2tlckNvbnRyb2xcclxufSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdwcm9jZXNzLXdvcmtmbG93LXRhcmdldCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIGluaXRWYWx1ZTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGVNYWNoaW5lc1NlcnZpY2U6IFN0YXRlTWFjaGluZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NvQ2F1VG9DaHVjU2VydmljZTogQ29DYXVUb0NodWNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3VzZXJHcm91cFNlcnZpY2U6IFVzZXJHcm91cFJlYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RtQ2h1Y1Z1U2VydmljZTogRG1DaHVjVnVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS51c2VySWRzKSB0aGlzLmRhdGEudXNlcklkcyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLnJ1bGVzKSB0aGlzLmRhdGEucnVsZXMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ydWxlSW5Xb3JrZmxvd3MpIHRoaXMuZGF0YS5ydWxlSW5Xb3JrZmxvd3MgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5kZXBhcnRtZW50SWRzKSB0aGlzLmRhdGEuZGVwYXJ0bWVudElkcyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLmdyb3VwSWRzKSB0aGlzLmRhdGEuZ3JvdXBJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5yb2xlSWRzKSB0aGlzLmRhdGEucm9sZUlkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX3N0YXRlTWFjaGluZXNTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybVNjaGVtYUJhc2VbXT5bXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVzZXJQaWNrZXJDb250cm9sKCd1c2VySWRzJywgJ05nxrDhu51pIG5o4bqtbiB44butIGzDvScpLFxyXG4gICAgICAgICAgICAvLyB0aGlzLmNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKCdpZENhcFRyZW5HYW5OaGF0cycsICdDw6FuIGLhu5kgY+G6pXAgdHLDqm4gZ+G6p24gbmjhuqV0JyksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbCgnZGVwYXJ0bWVudElkcycsICfEkMahbiB24buLJyksXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVzZXJHcm91cFBpY2tlckNvbnRyb2woJ2dyb3VwSWRzJywgJ05ow7NtIG5nxrDhu51pIGTDuW5nJyksXHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKCdyb2xlSWRzJywgJ0No4bupYyB24bulJylcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyUGlja2VyQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBtdWx0aXBsZTogYm9vbGVhbiA9IHRydWUpOiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGNyZWF0ZVVzZXJQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCwgMTUsIChpdGVtOiBhbnkpID0+IHRoaXMuX3VzZXJTZXJ2aWNlLmdldEZ1bGxDYW5Cb0xhYmVsKGl0ZW0sIHRydWUpKTtcclxuICAgICAgICBjb250cm9sLm11bHRpcGxlID0gbXVsdGlwbGU7XHJcbiAgICAgICAgY29udHJvbC5wbHVzVXJsID0gJ0ZvclVzZXJQaWNrZXInO1xyXG4gICAgICAgIC8vIGNvbnRyb2wubGF6eUxvYWRPcmdhbml6YXRpb24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBjb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHByaXZhdGUgZ2V0VXNlckxhYmVsKGl0ZW06IGFueSkge1xyXG4gICAgLy8gICAgIGxldCBsYWJlbCA9IHRoaXMuX3VzZXJTZXJ2aWNlLmdldFVzZXJOYW1lKGl0ZW0pO1xyXG4gICAgLy8gICAgIGxhYmVsID0gKGl0ZW0ubWFDaHVjVnUgPyBgJHtpdGVtLm1hQ2h1Y1Z1fS4gYCA6ICcnKSArIGAke2xhYmVsfWAgKyAoaXRlbS50ZW5Eb25WaSA/IGAgLSAke2l0ZW0udGVuRG9uVml9YCA6ICcnKTtcclxuICAgIC8vICAgICByZXR1cm4gbGFiZWw7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgX2NyZWF0ZUNvQ2F1VG9DaHVjQ29udHJvbChmaWVsZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogRHJvcGRvd25Db250cm9sU2NoZW1hIHtcclxuICAgICAgICByZXR1cm4gY3JlYXRlT3JnUGlja2VyQ29udHJvbChmaWVsZCwgbGFiZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIF9jcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sKHRoaXMuX3VzZXJHcm91cFNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2NyZWF0ZVJvbGVQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk6IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVSb2xlUGlja2VyQ29udHJvbCh0aGlzLl9kbUNodWNWdVNlcnZpY2UsIGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3JtSW5pdGlhbGl6ZWQoZXZ0OiBFdmVudERhdGEpIHtcclxuICAgICAgICBldnQubW9kZWwudXNlcklkcyA9IHRoaXMuZGF0YS51c2VySWRzO1xyXG4gICAgICAgIGV2dC5tb2RlbC5kZXBhcnRtZW50SWRzID0gdGhpcy5kYXRhLmRlcGFydG1lbnRJZHM7XHJcbiAgICAgICAgZXZ0Lm1vZGVsLmdyb3VwSWRzID0gdGhpcy5kYXRhLmdyb3VwSWRzO1xyXG4gICAgICAgIC8vIGV2dC5tb2RlbC5yb2xlSWRzID0gdGhpcy5kYXRhLnJvbGVJZHM7XHJcbiAgICB9XHJcbn1cclxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvd29ya2Zsb3cvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQvcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBUXBFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQzFCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPOUQsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7SUFLNUQsWUFDYyxTQUFtQixFQUNyQixxQkFBMkMsRUFDM0MsbUJBQXVDLEVBQ3ZDLGlCQUF1QyxFQUN2QyxnQkFBaUM7UUFFekMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBTlAsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQzNDLHdCQUFtQixHQUFuQixt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QUUsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVLLGlCQUFpQixDQUFDLEdBQWM7O1lBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RDLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ2xELEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3hDLHlDQUF5QztRQUM3QyxDQUFDO0tBQUE7OztZQTlFSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsaU1BQXVEOzthQUUxRDs7O1lBMUJtQixRQUFRO1lBYW5CLG9CQUFvQjtZQUZwQixrQkFBa0I7WUFEbEIsb0JBQW9CO1lBRHBCLGVBQWU7OzttQkFvQm5CLEtBQUs7d0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHtcclxuICAgIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEsXHJcbiAgICBEcm9wZG93bkNvbnRyb2xTY2hlbWEsXHJcbiAgICBFdmVudERhdGEsXHJcbiAgICBGb3JtU2NoZW1hQmFzZSxcclxuICAgIFVzZXJQaWNrZXJDb250cm9sU2NoZW1hXHJcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IERtQ2h1Y1Z1U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RtLWNodWN2dS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckdyb3VwUmVhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLWdyb3VwLXJlYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENvQ2F1VG9DaHVjU2VydmljZSB9IGZyb20gJy4uLy4uL2NvY2F1dG9jaHVjL3NlcnZpY2VzL2NvY2F1dG9jaHVjLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZSB9IGZyb20gJy4uLy4uL3N0YXRlbWFjaGluZXMvbW9kZWxzL2VudW1zJztcclxuaW1wb3J0IHsgU3RhdGVNYWNoaW5lc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3NlcnZpY2VzL3N0YXRlbWFjaGluZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVPcmdQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlUm9sZVBpY2tlckNvbnRyb2wsXHJcbiAgICBjcmVhdGVVc2VyR3JvdXBQaWNrZXJDb250cm9sLFxyXG4gICAgY3JlYXRlVXNlclBpY2tlckNvbnRyb2xcclxufSBmcm9tICcuLi8uLi9zdGF0ZW1hY2hpbmVzL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWUgfSBmcm9tICcuLi9tb2RlbHMvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdwcm9jZXNzLXdvcmtmbG93LXRhcmdldCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy13b3JrZmxvdy10YXJnZXQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9jZXNzV29ya2Zsb3dUYXJnZXRDb21wb25lbnQgZXh0ZW5kcyBEYXRhRm9ybUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIGluaXRWYWx1ZTogV29ya2Zsb3dUYXJnZXREZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGVNYWNoaW5lc1NlcnZpY2U6IFN0YXRlTWFjaGluZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2NvQ2F1VG9DaHVjU2VydmljZTogQ29DYXVUb0NodWNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3VzZXJHcm91cFNlcnZpY2U6IFVzZXJHcm91cFJlYWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RtQ2h1Y1Z1U2VydmljZTogRG1DaHVjVnVTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS51c2VySWRzKSB0aGlzLmRhdGEudXNlcklkcyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLnJ1bGVzKSB0aGlzLmRhdGEucnVsZXMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5ydWxlSW5Xb3JrZmxvd3MpIHRoaXMuZGF0YS5ydWxlSW5Xb3JrZmxvd3MgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5kZXBhcnRtZW50SWRzKSB0aGlzLmRhdGEuZGVwYXJ0bWVudElkcyA9IFtdO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLmdyb3VwSWRzKSB0aGlzLmRhdGEuZ3JvdXBJZHMgPSBbXTtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YS5yb2xlSWRzKSB0aGlzLmRhdGEucm9sZUlkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5iYXNlU2VydmljZSA9IHRoaXMuX3N0YXRlTWFjaGluZXNTZXJ2aWNlO1xyXG4gICAgICAgIC8vIHNldCB0ZXh0IGxhYmVsXHJcbiAgICAgICAgbGV0IHR4dExhYmVsID0gJ25o4bqtbiB44butIGzDvSc7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS50eXBlID09PSBFbnVtUHJvY2Vzc1dvcmtmbG93VHlwZS5WSUVXKSB7XHJcbiAgICAgICAgICAgIHR4dExhYmVsID0gJ3RoZW8gZMO1aSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0dGluZy5zY2hlbWEgPSA8Rm9ybVNjaGVtYUJhc2VbXT5bXHJcbiAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVzZXJQaWNrZXJDb250cm9sKCd1c2VySWRzJywgYE5nxrDhu51pICR7dHh0TGFiZWx9YCksXHJcbiAgICAgICAgICAgIC8vIHRoaXMuY3JlYXRlVXNlclBpY2tlckNvbnRyb2woJ2lkQ2FwVHJlbkdhbk5oYXRzJywgJ0PDoW4gYuG7mSBj4bqlcCB0csOqbiBn4bqnbiBuaOG6pXQnKSxcclxuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29DYXVUb0NodWNDb250cm9sKCdkZXBhcnRtZW50SWRzJywgYMSQxqFuIHbhu4sgJHt0eHRMYWJlbH1gKSxcclxuICAgICAgICAgICAgdGhpcy5fY3JlYXRlVXNlckdyb3VwUGlja2VyQ29udHJvbCgnZ3JvdXBJZHMnLCBgTmjDs20gbmfGsOG7nWkgJHt0eHRMYWJlbH1gKSxcclxuICAgICAgICAgICAgLy8gdGhpcy5fY3JlYXRlUm9sZVBpY2tlckNvbnRyb2woJ3JvbGVJZHMnLCAnQ2jhu6ljIHbhu6UnKVxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgX2NyZWF0ZVVzZXJQaWNrZXJDb250cm9sKGZpZWxkOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcsIG11bHRpcGxlOiBib29sZWFuID0gdHJ1ZSk6IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gY3JlYXRlVXNlclBpY2tlckNvbnRyb2woZmllbGQsIGxhYmVsLCAxNSwgKGl0ZW06IGFueSkgPT4gdGhpcy5fdXNlclNlcnZpY2UuZ2V0RnVsbENhbkJvTGFiZWwoaXRlbSwgdHJ1ZSkpO1xyXG4gICAgICAgIGNvbnRyb2wubXVsdGlwbGUgPSBtdWx0aXBsZTtcclxuICAgICAgICBjb250cm9sLnBsdXNVcmwgPSAnRm9yVXNlclBpY2tlcic7XHJcbiAgICAgICAgLy8gY29udHJvbC5sYXp5TG9hZE9yZ2FuaXphdGlvbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcHJpdmF0ZSBnZXRVc2VyTGFiZWwoaXRlbTogYW55KSB7XHJcbiAgICAvLyAgICAgbGV0IGxhYmVsID0gdGhpcy5fdXNlclNlcnZpY2UuZ2V0VXNlck5hbWUoaXRlbSk7XHJcbiAgICAvLyAgICAgbGFiZWwgPSAoaXRlbS5tYUNodWNWdSA/IGAke2l0ZW0ubWFDaHVjVnV9LiBgIDogJycpICsgYCR7bGFiZWx9YCArIChpdGVtLnRlbkRvblZpID8gYCAtICR7aXRlbS50ZW5Eb25WaX1gIDogJycpO1xyXG4gICAgLy8gICAgIHJldHVybiBsYWJlbDtcclxuICAgIC8vIH1cclxuXHJcbiAgICBfY3JlYXRlQ29DYXVUb0NodWNDb250cm9sKGZpZWxkOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBEcm9wZG93bkNvbnRyb2xTY2hlbWEge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGVPcmdQaWNrZXJDb250cm9sKGZpZWxkLCBsYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgX2NyZWF0ZVVzZXJHcm91cFBpY2tlckNvbnRyb2woZmllbGQsIGxhYmVsKTogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVVzZXJHcm91cFBpY2tlckNvbnRyb2wodGhpcy5fdXNlckdyb3VwU2VydmljZSwgZmllbGQsIGxhYmVsKTtcclxuICAgIH1cclxuXHJcbiAgICBfY3JlYXRlUm9sZVBpY2tlckNvbnRyb2woZmllbGQsIGxhYmVsKTogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJvbGVQaWNrZXJDb250cm9sKHRoaXMuX2RtQ2h1Y1Z1U2VydmljZSwgZmllbGQsIGxhYmVsKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkZvcm1Jbml0aWFsaXplZChldnQ6IEV2ZW50RGF0YSkge1xyXG4gICAgICAgIGV2dC5tb2RlbC51c2VySWRzID0gdGhpcy5kYXRhLnVzZXJJZHM7XHJcbiAgICAgICAgZXZ0Lm1vZGVsLmRlcGFydG1lbnRJZHMgPSB0aGlzLmRhdGEuZGVwYXJ0bWVudElkcztcclxuICAgICAgICBldnQubW9kZWwuZ3JvdXBJZHMgPSB0aGlzLmRhdGEuZ3JvdXBJZHM7XHJcbiAgICAgICAgLy8gZXZ0Lm1vZGVsLnJvbGVJZHMgPSB0aGlzLmRhdGEucm9sZUlkcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -29,7 +29,7 @@ export class BaseDmLoaiCongViecComponent extends DataListBase {
29
29
  this.setting.cols = [
30
30
  new ColumnSchemaBase({
31
31
  field: 'code',
32
- width: '120px',
32
+ width: '150px',
33
33
  sort: false
34
34
  }),
35
35
  new ColumnSchemaBase({
@@ -43,6 +43,9 @@ export class BaseDmLoaiCongViecComponent extends DataListBase {
43
43
  this.setting.objectName = ' loại công việc';
44
44
  super.ngOnInit();
45
45
  }
46
+ getPromiseGetData(gridInfo) {
47
+ return this._dmLoaiCongViecService.baseGetTreeData(gridInfo);
48
+ }
46
49
  modifyGridInfo(gridInfo) {
47
50
  return __awaiter(this, void 0, void 0, function* () {
48
51
  gridInfo.sorts = [{ field: 'maPhanCap', dir: 1 }];
@@ -119,7 +122,9 @@ export class BaseDmLoaiCongViecComponent extends DataListBase {
119
122
  lstParent.forEach(itemParent => {
120
123
  itemParent.isLast = true;
121
124
  });
122
- this.setIsLastParentForChild(dicParentChild, lstParent[lstParent.length - 1], dataSource);
125
+ for (let i = lstParent.length - 1; i >= 0; i--) {
126
+ this.setIsLastParentForChild(dicParentChild, lstParent[i], dataSource);
127
+ }
123
128
  }
124
129
  if (itemLastChild != null) {
125
130
  itemLastChild.isLast = true;
@@ -164,4 +169,4 @@ BaseDmLoaiCongViecComponent.propDecorators = {
164
169
  inCauHinhWorkflow: [{ type: Input }],
165
170
  onRowSelect: [{ type: Output }]
166
171
  };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0tbG9haS1jb25ndmllYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29uZ3ZpZWMvZG0tbG9haS1jb25ndmllYy9kbS1sb2FpLWNvbmd2aWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBTzVFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFZO0lBS3pELFlBQ2MsU0FBbUIsRUFDbkIsc0JBQTZDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQU5sRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFNckIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFB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QUtoRCxxQkFBcUI7OztnQ0FRekIsS0FBSzswQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hcHAtY29udGV4dC9jb21wb25lbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuaW1wb3J0IHsgQ29sdW1uU2NoZW1hQmFzZSwgTW9kZWxTY2hlbWEsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IEdyaWRJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IERtTG9haUNvbmdWaWVjU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZG0tbG9haS1jb25ndmllYy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Jhc2UtZG0tbG9haS1jb25ndmllYycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG0tbG9haS1jb25ndmllYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9kbS1sb2FpLWNvbmd2aWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlRG1Mb2FpQ29uZ1ZpZWNDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQElucHV0KCkgaW5DYXVIaW5oV29ya2Zsb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBvblJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgc2VhcmNoU2NoZW1hOiBhbnkgPSB7fTtcclxuICAgIHNlYXJjaERhdGE6IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9kbUxvYWlDb25nVmllY1NlcnZpY2U6IERtTG9haUNvbmdWaWVjU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmJhc2VTZXJ2aWNlID0gdGhpcy5fZG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlO1xyXG4gICAgICAgIGlmICh0aGlzLmluQ2F1SGluaFdvcmtmbG93KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZy5oaWRkZW5CdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkZ1bmN0aW9uQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkNoZWNrYm94ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLm11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm1vZGVsU2NoZW1hcyA9IFtcclxuICAgICAgICAgICAgbmV3IE1vZGVsU2NoZW1hKHsgZmllbGQ6ICdjb2RlJywgbmFtZTogJ03DoyBsb+G6oWknLCBmdWxsTmFtZTogJ03DoyBsb+G6oWknLCBkZXNjcmlwdGlvbjogJ03DoyBsb+G6oWknIH0pLFxyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ3RlbicsIG5hbWU6ICdUw6puIGxv4bqhaScsIGZ1bGxOYW1lOiAnVMOqbiBsb+G6oWknLCBkZXNjcmlwdGlvbjogJ1TDqm4gbG/huqFpJyB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLmNvbHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY29kZScsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEyMHB4JyxcclxuICAgICAgICAgICAgICAgIHNvcnQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgQ29sdW1uU2NoZW1hQmFzZSh7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3RlbicsXHJcbiAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ3RlbicsXHJcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduby1wYWRkaW5nJyxcclxuICAgICAgICAgICAgICAgIHNvcnQ6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuZmllbGRTZWFyY2hUZXh0ID0gWyd0ZW4nLCAnY29kZSddO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5vYmplY3ROYW1lID0gJyBsb+G6oWkgY8O0bmcgdmnhu4djJztcclxuXHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBtb2RpZnlHcmlkSW5mbyhncmlkSW5mbz86IEdyaWRJbmZvKSB7XHJcbiAgICAgICAgZ3JpZEluZm8uc29ydHMgPSBbeyBmaWVsZDogJ21hUGhhbkNhcCcsIGRpcjogMSB9XTtcclxuICAgICAgICBncmlkSW5mby5maWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMubmV3RmlsdGVyKCdzb1RodVR1JywgT3BlcmF0b3IuZXF1YWwsICdzb1RodVR1JywgdHJ1ZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGJlZm9yZVJlbmRlckRhdGFTb3VyY2UoZGF0YVNvdXJjZSkge1xyXG4gICAgICAgIGNvbnN0IGxzdFBhcmVudCA9IFtdO1xyXG4gICAgICAgIGxldCBpdGVtUGFyZW50QmVmb3JlID0gbnVsbDtcclxuICAgICAgICBsZXQgaXRlbUxhc3RDaGlsZCA9IG51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0IGRpY1BhcmVudENoaWxkID0ge307XHJcblxyXG4gICAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgaXRlbS5sZXZlbCA9IGl0ZW0ubWFQaGFuQ2FwLmxlbmd0aCAvIDY7XHJcbiAgICAgICAgICAgIC8vIEzDoCBj4bqlcCAxXHJcbiAgICAgICAgICAgIGlmICghaXRlbS5pZFBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgaXRlbVBhcmVudEJlZm9yZSA9IGl0ZW07XHJcbiAgICAgICAgICAgICAgICBsc3RQYXJlbnQuZm9yRWFjaChpdGVtUGFyZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUGFyZW50LmlzTGFzdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRJc0xhc3RQYXJlbnRGb3JDaGlsZChkaWNQYXJlbnRDaGlsZCwgaXRlbVBhcmVudCwgZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGxzdFBhcmVudC5zcGxpY2UoMCwgbHN0UGFyZW50Lmxlbmd0aCk7XHJcbiAgICAgICAgICAgICAgICBsc3RQYXJlbnRbMF0gPSBpdGVtO1xyXG4gICAgICAgICAgICAgICAgZGljUGFyZW50Q2hpbGRbaXRlbS5pZF0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUxhc3RDaGlsZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZC5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1MYXN0Q2hpbGQgJiYgaXRlbUxhc3RDaGlsZC5pZCA9PSBpdGVtLmlkUGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbHN0UGFyZW50LnB1c2goaXRlbUxhc3RDaGlsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGljUGFyZW50Q2hpbGRbaXRlbUxhc3RDaGlsZC5pZF0gPSBbaXRlbV07XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVBhcmVudEJlZm9yZSA9IGl0ZW1MYXN0Q2hpbGQ7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVBhcmVudEJlZm9yZS5oYXNDaGlsZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZCA9IGl0ZW07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaW5kZXhQYXJlbnRzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtUGFyZW50QmVmb3JlLmxldmVsIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaW5kZXhQYXJlbnRzLnB1c2goMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbVBhcmVudEJlZm9yZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVtLmlkUGFyZW50ICE9IGl0ZW1QYXJlbnRCZWZvcmUuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1MYXN0Q2hpbGQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZC5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxzdFBhcmVudC5zcGxpY2UobHN0UGFyZW50Lmxlbmd0aCAtIDEsIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobHN0UGFyZW50Lmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtUGFyZW50QmVmb3JlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnRCZWZvcmUgPSBsc3RQYXJlbnRbbHN0UGFyZW50Lmxlbmd0aCAtIDFdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbVBhcmVudEJlZm9yZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYWxvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGFzdENoaWxkID0gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnRCZWZvcmUuaGFzQ2hpbGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGFzdENoaWxkID0gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGljUGFyZW50Q2hpbGRbaXRlbVBhcmVudEJlZm9yZS5pZF0ucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZC5pbmRleFBhcmVudHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtUGFyZW50QmVmb3JlLmxldmVsIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGFzdENoaWxkLmluZGV4UGFyZW50cy5wdXNoKDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5hbG9uZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZCA9IGl0ZW07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGxzdFBhcmVudC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGxzdFBhcmVudC5mb3JFYWNoKGl0ZW1QYXJlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaXRlbVBhcmVudC5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zZXRJc0xhc3RQYXJlbnRGb3JDaGlsZChkaWNQYXJlbnRDaGlsZCwgbHN0UGFyZW50W2xzdFBhcmVudC5sZW5ndGggLSAxXSwgZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXRlbUxhc3RDaGlsZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaXNMYXN0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRJc0xhc3RQYXJlbnRGb3JDaGlsZChkaWNQYXJlbnRDaGlsZCwgaXRlbVBhcmVudCwgZGF0YVNvdXJjZSkge1xyXG4gICAgICAgIGlmIChkaWNQYXJlbnRDaGlsZFtpdGVtUGFyZW50LmlkXSkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleE1heCA9IGl0ZW1QYXJlbnQubGV2ZWwgLSAxO1xyXG4gICAgICAgICAgICBkaWNQYXJlbnRDaGlsZFtpdGVtUGFyZW50LmlkXS5mb3JFYWNoKGNoaWxkID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB0bXBQYXJlbnQgPSB7IC4uLml0ZW1QYXJlbnQgfTtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5kZXhNYXg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0bXBQYXJlbnQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5pbmRleFBhcmVudHNbaW5kZXhNYXggLSBpIC0gMV0gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuaW5kZXhQYXJlbnRzW2luZGV4TWF4IC0gaSAtIDFdID0gdG1wUGFyZW50LmlzTGFzdCA/IDAgOiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXBQYXJlbnQgPSBkYXRhU291cmNlLmZpbmQocSA9PiBxLmlkID09IHRtcFBhcmVudC5pZFBhcmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJc0xhc3RQYXJlbnRGb3JDaGlsZChkaWNQYXJlbnRDaGlsZCwgY2hpbGQsIGRhdGFTb3VyY2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlUm93U2VsZWN0KGV2dCkge1xyXG4gICAgICAgIHRoaXMub25Sb3dTZWxlY3QuZW1pdChldnQpO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG0tbG9haS1jb25ndmllYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29uZ3ZpZWMvZG0tbG9haS1jb25ndmllYy9kbS1sb2FpLWNvbmd2aWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3BGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBTzVFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxZQUFZO0lBS3pELFlBQ2MsU0FBbUIsRUFDbkIsc0JBQTZDO1FBRXZELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhQLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQU5sRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFNckIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFB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Q2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7O1lBcktKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQywwbkRBQWdEO2dCQUVoRCxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7YUFDdkM7OztZQVpnRCxRQUFRO1lBTWhELHFCQUFxQjs7O2dDQVF6QixLQUFLOzBCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhTGlzdEJhc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1saXN0LWJhc2UnO1xyXG5pbXBvcnQgeyBDb2x1bW5TY2hlbWFCYXNlLCBNb2RlbFNjaGVtYSwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgR3JpZEluZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvZ3JpZC1pbmZvJztcclxuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcclxuaW1wb3J0IHsgRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kbS1sb2FpLWNvbmd2aWVjLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFzZS1kbS1sb2FpLWNvbmd2aWVjJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kbS1sb2FpLWNvbmd2aWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2RtLWxvYWktY29uZ3ZpZWMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW0NvbXBvbmVudENvbnRleHRTZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VEbUxvYWlDb25nVmllY0NvbXBvbmVudCBleHRlbmRzIERhdGFMaXN0QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSBpbkNhdUhpbmhXb3JrZmxvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIG9uUm93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBzZWFyY2hTY2hlbWE6IGFueSA9IHt9O1xyXG4gICAgc2VhcmNoRGF0YTogYW55ID0ge307XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcm90ZWN0ZWQgX2RtTG9haUNvbmdWaWVjU2VydmljZTogRG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl9kbUxvYWlDb25nVmllY1NlcnZpY2U7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5DYXVIaW5oV29ya2Zsb3cpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nLmhpZGRlbkJ1dHRvbnMgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuRnVuY3Rpb25Db2x1bW4gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcuaGlkZGVuQ2hlY2tib3ggPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmcubXVsdGlwbGVDaGVja1doZW5DbGlja1JvdyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldHRpbmcubW9kZWxTY2hlbWFzID0gW1xyXG4gICAgICAgICAgICBuZXcgTW9kZWxTY2hlbWEoeyBmaWVsZDogJ2NvZGUnLCBuYW1lOiAnTcOjIGxv4bqhaScsIGZ1bGxOYW1lOiAnTcOjIGxv4bqhaScsIGRlc2NyaXB0aW9uOiAnTcOjIGxv4bqhaScgfSksXHJcbiAgICAgICAgICAgIG5ldyBNb2RlbFNjaGVtYSh7IGZpZWxkOiAndGVuJywgbmFtZTogJ1TDqm4gbG/huqFpJywgZnVsbE5hbWU6ICdUw6puIGxv4bqhaScsIGRlc2NyaXB0aW9uOiAnVMOqbiBsb+G6oWknIH0pXHJcbiAgICAgICAgXTtcclxuICAgICAgICB0aGlzLnNldHRpbmcuY29scyA9IFtcclxuICAgICAgICAgICAgbmV3IENvbHVtblNjaGVtYUJhc2Uoe1xyXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjb2RlJyxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTUwcHgnLFxyXG4gICAgICAgICAgICAgICAgc29ydDogZmFsc2VcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBDb2x1bW5TY2hlbWFCYXNlKHtcclxuICAgICAgICAgICAgICAgIGZpZWxkOiAndGVuJyxcclxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAndGVuJyxcclxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25vLXBhZGRpbmcnLFxyXG4gICAgICAgICAgICAgICAgc29ydDogZmFsc2VcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZy5maWVsZFNlYXJjaFRleHQgPSBbJ3RlbicsICdjb2RlJ107XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nLm9iamVjdE5hbWUgPSAnIGxv4bqhaSBjw7RuZyB2aeG7h2MnO1xyXG5cclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb21pc2VHZXREYXRhKGdyaWRJbmZvOiBHcmlkSW5mbyk6IFByb21pc2U8UmVzcG9uc2VSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZG1Mb2FpQ29uZ1ZpZWNTZXJ2aWNlLmJhc2VHZXRUcmVlRGF0YShncmlkSW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbW9kaWZ5R3JpZEluZm8oZ3JpZEluZm8/OiBHcmlkSW5mbykge1xyXG4gICAgICAgIGdyaWRJbmZvLnNvcnRzID0gW3sgZmllbGQ6ICdtYVBoYW5DYXAnLCBkaXI6IDEgfV07XHJcbiAgICAgICAgZ3JpZEluZm8uZmlsdGVycy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLm5ld0ZpbHRlcignc29UaHVUdScsIE9wZXJhdG9yLmVxdWFsLCAnc29UaHVUdScsIHRydWUpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBiZWZvcmVSZW5kZXJEYXRhU291cmNlKGRhdGFTb3VyY2UpIHtcclxuICAgICAgICBjb25zdCBsc3RQYXJlbnQgPSBbXTtcclxuICAgICAgICBsZXQgaXRlbVBhcmVudEJlZm9yZSA9IG51bGw7XHJcbiAgICAgICAgbGV0IGl0ZW1MYXN0Q2hpbGQgPSBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCBkaWNQYXJlbnRDaGlsZCA9IHt9O1xyXG5cclxuICAgICAgICBkYXRhU291cmNlLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgIGl0ZW0ubGV2ZWwgPSBpdGVtLm1hUGhhbkNhcC5sZW5ndGggLyA2O1xyXG4gICAgICAgICAgICAvLyBMw6AgY+G6pXAgMVxyXG4gICAgICAgICAgICBpZiAoIWl0ZW0uaWRQYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnRCZWZvcmUgPSBpdGVtO1xyXG4gICAgICAgICAgICAgICAgbHN0UGFyZW50LmZvckVhY2goaXRlbVBhcmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVBhcmVudC5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SXNMYXN0UGFyZW50Rm9yQ2hpbGQoZGljUGFyZW50Q2hpbGQsIGl0ZW1QYXJlbnQsIGRhdGFTb3VyY2UpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBsc3RQYXJlbnQuc3BsaWNlKDAsIGxzdFBhcmVudC5sZW5ndGgpO1xyXG4gICAgICAgICAgICAgICAgbHN0UGFyZW50WzBdID0gaXRlbTtcclxuICAgICAgICAgICAgICAgIGRpY1BhcmVudENoaWxkW2l0ZW0uaWRdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1MYXN0Q2hpbGQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaXNMYXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtTGFzdENoaWxkICYmIGl0ZW1MYXN0Q2hpbGQuaWQgPT0gaXRlbS5pZFBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxzdFBhcmVudC5wdXNoKGl0ZW1MYXN0Q2hpbGQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpY1BhcmVudENoaWxkW2l0ZW1MYXN0Q2hpbGQuaWRdID0gW2l0ZW1dO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnRCZWZvcmUgPSBpdGVtTGFzdENoaWxkO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnRCZWZvcmUuaGFzQ2hpbGQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQgPSBpdGVtO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpdGVtTGFzdENoaWxkLmluZGV4UGFyZW50cyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbVBhcmVudEJlZm9yZS5sZXZlbCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGFzdENoaWxkLmluZGV4UGFyZW50cy5wdXNoKDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW1QYXJlbnRCZWZvcmUpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXRlbS5pZFBhcmVudCAhPSBpdGVtUGFyZW50QmVmb3JlLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtTGFzdENoaWxkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaXNMYXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsc3RQYXJlbnQuc3BsaWNlKGxzdFBhcmVudC5sZW5ndGggLSAxLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxzdFBhcmVudC5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVBhcmVudEJlZm9yZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUGFyZW50QmVmb3JlID0gbHN0UGFyZW50W2xzdFBhcmVudC5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1QYXJlbnRCZWZvcmUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmFsb25lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZCA9IGl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUGFyZW50QmVmb3JlLmhhc0NoaWxkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZCA9IGl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpY1BhcmVudENoaWxkW2l0ZW1QYXJlbnRCZWZvcmUuaWRdLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQuaW5kZXhQYXJlbnRzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbVBhcmVudEJlZm9yZS5sZXZlbCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxhc3RDaGlsZC5pbmRleFBhcmVudHMucHVzaCgxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uYWxvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MYXN0Q2hpbGQgPSBpdGVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChsc3RQYXJlbnQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsc3RQYXJlbnQuZm9yRWFjaChpdGVtUGFyZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGl0ZW1QYXJlbnQuaXNMYXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBsc3RQYXJlbnQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0SXNMYXN0UGFyZW50Rm9yQ2hpbGQoZGljUGFyZW50Q2hpbGQsIGxzdFBhcmVudFtpXSwgZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpdGVtTGFzdENoaWxkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgaXRlbUxhc3RDaGlsZC5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldElzTGFzdFBhcmVudEZvckNoaWxkKGRpY1BhcmVudENoaWxkLCBpdGVtUGFyZW50LCBkYXRhU291cmNlKSB7XHJcbiAgICAgICAgaWYgKGRpY1BhcmVudENoaWxkW2l0ZW1QYXJlbnQuaWRdKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4TWF4ID0gaXRlbVBhcmVudC5sZXZlbCAtIDE7XHJcbiAgICAgICAgICAgIGRpY1BhcmVudENoaWxkW2l0ZW1QYXJlbnQuaWRdLmZvckVhY2goY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHRtcFBhcmVudCA9IHsgLi4uaXRlbVBhcmVudCB9O1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbmRleE1heDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRtcFBhcmVudCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLmluZGV4UGFyZW50c1tpbmRleE1heCAtIGkgLSAxXSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5pbmRleFBhcmVudHNbaW5kZXhNYXggLSBpIC0gMV0gPSB0bXBQYXJlbnQuaXNMYXN0ID8gMCA6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcFBhcmVudCA9IGRhdGFTb3VyY2UuZmluZChxID0+IHEuaWQgPT0gdG1wUGFyZW50LmlkUGFyZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldElzTGFzdFBhcmVudEZvckNoaWxkKGRpY1BhcmVudENoaWxkLCBjaGlsZCwgZGF0YVNvdXJjZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVSb3dTZWxlY3QoZXZ0KSB7XHJcbiAgICAgICAgdGhpcy5vblJvd1NlbGVjdC5lbWl0KGV2dCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==