imm-element-ui 2.4.7 → 2.4.8

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.
@@ -38,6 +38,7 @@ export class FormComponent {
38
38
  this.changedModel = {};
39
39
  this.hookObservers = [];
40
40
  this.labelMinWidth = signal(undefined);
41
+ this.fallbackUpsert = { addData: {}, updData: {}, subsert: [], log: {} };
41
42
  this.isMain = true;
42
43
  this.extra = {};
43
44
  this.actions = inject(ActionService);
@@ -54,7 +55,8 @@ export class FormComponent {
54
55
  effect(() => {
55
56
  let modelName = this.options().modelName || '';
56
57
  if (modelName != '') {
57
- this.isMain = !this.upsert()?.subsert?.find((v) => v.subModelName === modelName);
58
+ const upsert = this.getUpsertState();
59
+ this.isMain = !upsert.subsert?.find((v) => v.subModelName === modelName);
58
60
  if (!this.isMain) {
59
61
  this.subsert = {
60
62
  subModelName: modelName,
@@ -63,7 +65,7 @@ export class FormComponent {
63
65
  maptmp: new Map(),
64
66
  logtmp: new Map(),
65
67
  };
66
- this.upsert()?.subsert?.push(this.subsert);
68
+ upsert.subsert?.push(this.subsert);
67
69
  }
68
70
  }
69
71
  }, { allowSignalWrites: true });
@@ -201,16 +203,25 @@ export class FormComponent {
201
203
  this.handleHideExpression();
202
204
  this.actions.saveSignal.set(true);
203
205
  }
206
+ getUpsertState() {
207
+ const upsert = this.upsert() ?? this.fallbackUpsert;
208
+ upsert.addData ??= {};
209
+ upsert.updData ??= {};
210
+ upsert.subsert ??= [];
211
+ upsert.log ??= {};
212
+ return upsert;
213
+ }
204
214
  handleUpsert(key, value, isLog) {
215
+ const upsert = this.getUpsertState();
205
216
  if (this.isNew) {
206
- fieldUtils.setModel(this.upsert().addData, key, value);
217
+ fieldUtils.setModel(upsert.addData, key, value);
207
218
  }
208
219
  else {
209
- fieldUtils.setModel(this.upsert().updData, key, value);
220
+ fieldUtils.setModel(upsert.updData, key, value);
210
221
  }
211
222
  if (!isLog)
212
223
  return;
213
- this.upsert().log.content = fieldUtils.transLog(this.rawModel, this.changedModel, this.model()[this.options().mainField], this.isNew, this.i18nService);
224
+ upsert.log.content = fieldUtils.transLog(this.rawModel, this.changedModel, this.model()[this.options().mainField], this.isNew, this.i18nService);
214
225
  }
215
226
  handleSubsert(key, value, field) {
216
227
  const changedModel = Object.fromEntries(Object.entries(this.changedModel).map(([key, value]) => [key, value.value]));
@@ -379,4 +390,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
379
390
  type: HostListener,
380
391
  args: ['window:resize']
381
392
  }] } });
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBSVosTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBMEI3RCxNQUFNLE9BQU8s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QUFLLENBQUMsSUFBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsS0FBSyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQXRaVyxhQUFhO21HQUFiLGFBQWEsK2VBSmQsQ0FBQyxRQUFRLENBQUMsOERBS1Asa0JBQWtCLGdEQ3BEakMsNEhBTUEseUREd0NXLFlBQVksOEJBQUUsbUJBQW1CLCtCQUFFLGtCQUFrQjs7NEZBS25ELGFBQWE7a0JBUnpCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxhQUNyRCxDQUFDLFFBQVEsQ0FBQzs2R0FLYSxlQUFlO3NCQUFoRCxZQUFZO3VCQUFDLGtCQUFrQjtnQkE0QmhDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0LFxyXG5cdGNvbXB1dGVkLFxyXG5cdFZpZXdDaGlsZHJlbixcclxuXHRRdWVyeUxpc3QsXHJcblx0RWxlbWVudFJlZixcclxuXHRDaGFuZ2VEZXRlY3RvclJlZixcclxuXHRpbmplY3QsXHJcblx0SG9zdExpc3RlbmVyLFxyXG5cdHVudHJhY2tlZCxcclxuXHRzaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybVN1Ym1pdHRlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbnRyb2wgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2ZpZWxkLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpZWxkVXRpbHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2ZpZWxkLXV0aWxzJztcclxuaW1wb3J0IHsgVXBzZXJ0IH0gZnJvbSAnLi4vLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgZ2VuZXJhdGVVbmlxdWVJZCB9IGZyb20gJy4uLy4uL3NoYXJlL3V0aWxzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybU9wdGlvbnMge1xyXG5cdGZpZWxkcz86IEZvcm1GaWVsZFtdO1xyXG5cdGZvcm0/OiBGb3JtR3JvdXA7XHJcblx0bWFpbkZpZWxkPzogc3RyaW5nO1xyXG5cdGxhYmVsV2lkdGg/OiBzdHJpbmc7XHJcblx0aW50ZXJhY3RpdmVMYWJlbD86IGJvb2xlYW47XHJcblx0ZXh0cmE/OiBhbnk7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zms/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHRlcm5hbERhdGEge1xyXG5cdGtleT86IHN0cmluZztcclxuXHR2YWx1ZT86IGFueTtcclxuXHRsYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjdXN0b20tZm9ybScsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtRmllbGRDb21wb25lbnRdLFxyXG5cdHByb3ZpZGVyczogW0RhdGVQaXBlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZHJlbihGb3JtRmllbGRDb21wb25lbnQpIGZpZWxkQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxGb3JtRmllbGRDb21wb25lbnQ+O1xyXG5cdHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0aXNOZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRvcHRpb25zID0gaW5wdXQ8Rm9ybU9wdGlvbnM+KHt9KTtcclxuXHRmaWVsZHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmluaXRGb3JtKCk7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zKCkuZmllbGRzO1xyXG5cdH0pO1xyXG5cclxuXHRpMThuU2VydmljZSA9IGluamVjdChJMThuU2VydmljZSk7XHJcblx0bW9kZWwgPSBpbnB1dDxhbnk+KCk7XHJcblx0dXBzZXJ0ID0gaW5wdXQ8VXBzZXJ0PigpO1xyXG5cdHJhd01vZGVsOiBhbnkgPSB7fTtcclxuXHRjaGFuZ2VkTW9kZWw6IGFueSA9IHt9O1xyXG5cdGZpZWxkTGlzdCE6IEZvcm1GaWVsZFtdO1xyXG5cdGhvb2tPYnNlcnZlcnM6IEZ1bmN0aW9uW10gPSBbXTtcclxuXHRsYWJlbE1pbldpZHRoID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHRpc01haW46IGJvb2xlYW4gPSB0cnVlO1xyXG5cdHN1YnNlcnQ6IGFueTtcclxuXHRleHRyYTogYW55ID0ge307XHJcblxyXG5cdGFjdGlvbnMgPSBpbmplY3QoQWN0aW9uU2VydmljZSk7XHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcblx0b25SZXNpemUoKSB7XHJcblx0XHR0aGlzLnJlQ2FsY0xhYmVsU2l6ZSgpO1xyXG5cdH1cclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuXHQpIHtcclxuXHRcdHRoaXMucm91dGVyLnVybC5zcGxpdCgnLycpLnBvcCgpID09ICduZXcnICYmICh0aGlzLmlzTmV3ID0gdHJ1ZSk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRpZiAoIXRoaXMubW9kZWwoKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmFwcGx5RGVmYXVsdFZhbHVlcygpO1xyXG5cdFx0XHRcdHRoaXMucmF3TW9kZWwgPSBmaWVsZFV0aWxzLnByZWxvYWRMb2coeyAuLi50aGlzLm1vZGVsKCkgfSwgdGhpcy5maWVsZExpc3QsIHRoaXMuZGF0ZVBpcGUpO1xyXG5cdFx0XHRcdHRoaXMuY2hhbmdlZE1vZGVsID0ge307XHJcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHRoaXMudHJpZ2dlckhvb2soKSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRsZXQgbW9kZWxOYW1lID0gdGhpcy5vcHRpb25zKCkubW9kZWxOYW1lIHx8ICcnO1xyXG5cdFx0XHRcdGlmIChtb2RlbE5hbWUgIT0gJycpIHtcclxuXHRcdFx0XHRcdHRoaXMuaXNNYWluID0gIXRoaXMudXBzZXJ0KCk/LnN1YnNlcnQ/LmZpbmQoKHY6IGFueSkgPT4gdi5zdWJNb2RlbE5hbWUgPT09IG1vZGVsTmFtZSk7XHJcblx0XHRcdFx0XHRpZiAoIXRoaXMuaXNNYWluKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3Vic2VydCA9IHtcclxuXHRcdFx0XHRcdFx0XHRzdWJNb2RlbE5hbWU6IG1vZGVsTmFtZSxcclxuXHRcdFx0XHRcdFx0XHRmazogdGhpcy5vcHRpb25zKCkuZmssXHJcblx0XHRcdFx0XHRcdFx0c3ViRGF0YTogW10sXHJcblx0XHRcdFx0XHRcdFx0bWFwdG1wOiBuZXcgTWFwKCksXHJcblx0XHRcdFx0XHRcdFx0bG9ndG1wOiBuZXcgTWFwKCksXHJcblx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnQ/LnB1c2godGhpcy5zdWJzZXJ0KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5pMThuU2VydmljZS5jaGFuZ2Uuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0dGhpcy5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmhvb2tPYnNlcnZlcnMuZm9yRWFjaCgodW5zdWJzY3JpYmUpID0+IHVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxuXHJcblx0aW5pdEZvcm0oKSB7XHJcblx0XHRpZiAoIXRoaXMub3B0aW9ucygpLmV4dHJhKSB7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmV4dHJhID0ge307XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMub3B0aW9ucygpLmZvcm0pIHtcclxuXHRcdFx0dGhpcy5vcHRpb25zKCkuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5maWVsZExpc3QgPSBbXTtcclxuXHRcdC8vQHRzLWlnbm9yZVxyXG5cdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcclxuXHRcdHRoaXMucGFyc2VGaWVsZHModGhpcy5vcHRpb25zKCkuZmllbGRzIHx8IFtdKTtcclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkLCBpbmRleCkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLmZpZWxkSGFuZGxlcihmaWVsZCk7XHJcblx0XHRcdGZpZWxkLnV1aWQgPSBgJHtnZW5lcmF0ZVVuaXF1ZUlkKCl9JHtpbmRleH1gO1xyXG5cdFx0XHRmaWVsZC5sYWJlbE1pbldpZHRoID0gdGhpcy5sYWJlbE1pbldpZHRoO1xyXG5cdFx0XHRmaWVsZC5pbnRlcmFjdGl2ZUxhYmVsID0gdGhpcy5vcHRpb25zKCkuaW50ZXJhY3RpdmVMYWJlbCA/PyB0cnVlO1xyXG5cdFx0XHRpZiAoaXNJMThuICYmICghZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleSB8fCBmaWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5ID09ICcnKSkge1xyXG5cdFx0XHRcdGZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmkxOG5LZXkgPSBgdGFibGVzLiR7dGhpcy5vcHRpb25zKCkubW9kZWxOYW1lfS4ke2ZpZWxkLmtleX1gO1xyXG5cdFx0XHR9XHJcblx0XHRcdGZpZWxkLmZvcm0gPSB0aGlzO1xyXG5cdFx0XHRpZiAoaXNPYnNlcnZhYmxlKGZpZWxkLmhvb2spKSB7XHJcblx0XHRcdFx0dGhpcy51bmlxdWVIb29rKGZpZWxkLCBmaWVsZC5ob29rKTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmhhbmRsZUZpZWxkQ29udHJvbChmaWVsZCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuYXBwbHlEZWZhdWx0VmFsdWVzKCk7XHJcblx0XHRpZiAodGhpcy5tb2RlbCgpKSB7XHJcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB0aGlzLnRyaWdnZXJIb29rKCkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhcHBseURlZmF1bHRWYWx1ZXMoKSB7XHJcblx0XHRpZiAoIXRoaXMubW9kZWwoKSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLmZpZWxkTGlzdCkgfHwgdGhpcy5maWVsZExpc3QubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGlmICghdGhpcy5zaG91bGRBcHBseURlZmF1bHRzKCkpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmRlZmF1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG5cdFx0XHRpZiAoZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGZpZWxkLmtleSEpICE9PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGZpZWxkVXRpbHMuZGFmYXVsdFZhbHVlSGFuZGxlcihmaWVsZCwgZmllbGQuZGVmYXVsdCwgdGhpcy5kYXRlUGlwZSksIGZpZWxkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2hvdWxkQXBwbHlEZWZhdWx0cygpIHtcclxuXHRcdGlmICh0aGlzLmlzTmV3KSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRyZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25maWcnKTtcclxuXHR9XHJcblxyXG5cdGdldEZpZWxkKGtleTogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5maWVsZExpc3QuZmluZCgoZmllbGQpID0+IGZpZWxkLmtleSA9PT0ga2V5KTtcclxuXHR9XHJcblxyXG5cdHBhcnNlRmllbGRzKGZpZWxkczogRm9ybUZpZWxkW10pIHtcclxuXHRcdGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG5cdFx0XHRpZiAoZmllbGQuZ3JvdXApIHtcclxuXHRcdFx0XHR0aGlzLnBhcnNlRmllbGRzKGZpZWxkLmdyb3VwKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmZpZWxkTGlzdC5wdXNoKGZpZWxkKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVGaWVsZENvbnRyb2woZmllbGQ6IEZvcm1GaWVsZCkge1xyXG5cdFx0Y29uc3Qga2V5ID0gZmllbGQua2V5IHx8ICcnO1xyXG5cdFx0Y29uc3QgaXNEaXNwbGF5T25seSA9ICEhZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5O1xyXG5cdFx0Y29uc3QgdmFsaWRhdG9ycyA9XHJcblx0XHRcdGlzRGlzcGxheU9ubHkgPyBudWxsIDogZmllbGRVdGlscy5wcm9wcyhmaWVsZCk/LnJlcXVpcmVkID8gKGZpZWxkLnZhbGlkYXRvcnMgPyBmaWVsZC52YWxpZGF0b3JzIDogVmFsaWRhdG9ycy5yZXF1aXJlZCkgOiBudWxsO1xyXG5cdFx0bGV0IGZpZWxkQ29udHJvbCA9IHRoaXMub3B0aW9ucygpLmZvcm0/LmdldChrZXkpIGFzIEZpZWxkQ29udHJvbCB8IG51bGw7XHJcblxyXG5cdFx0aWYgKCFmaWVsZENvbnRyb2wpIHtcclxuXHRcdFx0ZmllbGRDb250cm9sID0gbmV3IEZpZWxkQ29udHJvbChudWxsLCB2YWxpZGF0b3JzIHx8IHVuZGVmaW5lZCk7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmZvcm0/LmFkZENvbnRyb2woa2V5LCBmaWVsZENvbnRyb2wpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZmllbGRDb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcblx0XHRcdGZpZWxkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRmaWVsZC5maWVsZENvbnRyb2wgPSBmaWVsZENvbnRyb2w7XHJcblxyXG5cdFx0aWYgKGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5kaXNhYmxlZCB8fCBpc0Rpc3BsYXlPbmx5KSB7XHJcblx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sLm1hcmtBc1ByaXN0aW5lKHsgb25seVNlbGY6IHRydWUgfSk7XHJcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmZpZWxkQ29udHJvbC5kaXNhYmxlZCkge1xyXG5cdFx0XHRmaWVsZC5maWVsZENvbnRyb2wuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHRcdGZpZWxkLmZpZWxkQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcblx0XHRpZiAoKGZpZWxkQ29udHJvbCBhcyBhbnkpLl9fdmFsdWVDaGFuZ2VCb3VuZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0ZmllbGRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGNvbnN0IGFjdGl2ZUZpZWxkID0gdGhpcy5nZXRGaWVsZChrZXkpIHx8IGZpZWxkO1xyXG5cdFx0XHRjb25zdCB0YXJnZXRWYWx1ZSA9IGZpZWxkVXRpbHMuZnJvbUZpZWxkVmFsdWUoYWN0aXZlRmllbGQsIHZhbHVlLCB0aGlzLmRhdGVQaXBlKTtcclxuXHRcdFx0Y29uc3QgY3VycmVudFZhbHVlID0gZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGFjdGl2ZUZpZWxkLmtleSEpO1xyXG5cdFx0XHRpZiAoZmllbGRVdGlscy5pc0Zha2VkQ2hhbmdlKHRhcmdldFZhbHVlLCBjdXJyZW50VmFsdWUsIGFjdGl2ZUZpZWxkKSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoZmllbGRVdGlscy5wcm9wcyhhY3RpdmVGaWVsZCk/Lm9uTW9kZWxDaGFuZ2UgJiYgdHlwZW9mIGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0ZmllbGRVdGlscy5wcm9wcyhhY3RpdmVGaWVsZCk/Lm9uTW9kZWxDaGFuZ2UhKGFjdGl2ZUZpZWxkLCB7IHZhbHVlIH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2UodGFyZ2V0VmFsdWUsIGFjdGl2ZUZpZWxkKTtcclxuXHRcdH0pO1xyXG5cdFx0KGZpZWxkQ29udHJvbCBhcyBhbnkpLl9fdmFsdWVDaGFuZ2VCb3VuZCA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZTogYW55LCBmaWVsZDogRm9ybUZpZWxkKSB7XHJcblx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHRoaXMubW9kZWwoKSwgZmllbGQua2V5ISwgdmFsdWUpO1xyXG5cdFx0aWYgKGZpZWxkLmV4dHJhPy5kaXNwbGF5T25seSkge1xyXG5cdFx0XHR0aGlzLmhhbmRsZUhpZGVFeHByZXNzaW9uKCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuY2hhbmdlZE1vZGVsW2ZpZWxkLmtleSFdID0geyBuYW1lOiBmaWVsZFV0aWxzLmxhYmVsKGZpZWxkLCB0aGlzLmkxOG5TZXJ2aWNlKSwgdmFsdWU6IHZhbHVlLCB0eXBlOiBmaWVsZC50eXBlIH07XHJcblx0XHRpZiAodGhpcy5pc01haW4pIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZmllbGQua2V5ISwgdmFsdWUsIHRydWUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5oYW5kbGVTdWJzZXJ0KGZpZWxkLmtleSEsIHZhbHVlLCBmaWVsZCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmhhbmRsZUhpZGVFeHByZXNzaW9uKCk7XHJcblx0XHR0aGlzLmFjdGlvbnMuc2F2ZVNpZ25hbC5zZXQodHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVVcHNlcnQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGlzTG9nPzogYm9vbGVhbikge1xyXG5cdFx0aWYgKHRoaXMuaXNOZXcpIHtcclxuXHRcdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh0aGlzLnVwc2VydCgpIS5hZGREYXRhISwga2V5LCB2YWx1ZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHRoaXMudXBzZXJ0KCkhLnVwZERhdGEhLCBrZXksIHZhbHVlKTtcclxuXHRcdH1cclxuXHRcdGlmICghaXNMb2cpIHJldHVybjtcclxuXHRcdHRoaXMudXBzZXJ0KCkhLmxvZyEuY29udGVudCA9IGZpZWxkVXRpbHMudHJhbnNMb2coXHJcblx0XHRcdHRoaXMucmF3TW9kZWwsXHJcblx0XHRcdHRoaXMuY2hhbmdlZE1vZGVsLFxyXG5cdFx0XHR0aGlzLm1vZGVsKClbdGhpcy5vcHRpb25zKCkubWFpbkZpZWxkIV0sXHJcblx0XHRcdHRoaXMuaXNOZXcsXHJcblx0XHRcdHRoaXMuaTE4blNlcnZpY2UsXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlU3Vic2VydChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCkge1xyXG5cdFx0Y29uc3QgY2hhbmdlZE1vZGVsID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMuY2hhbmdlZE1vZGVsKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgKHZhbHVlIGFzIGFueSkudmFsdWVdKSk7XHJcblx0XHR0aGlzLnN1YnNlcnQubG9ndG1wLnNldCgwLCBjaGFuZ2VkTW9kZWwpO1xyXG5cdFx0dGhpcy5zdWJzZXJ0LnN1YkRhdGFbMF0gPSBjaGFuZ2VkTW9kZWw7XHJcblx0XHR0aGlzLnN1YnNlcnQubWFwdG1wLnNldChrZXksIHtcclxuXHRcdFx0aWQ6IHRoaXMubW9kZWwoKT8uaWQgPz8gMCxcclxuXHRcdFx0b2xkVmFsdWU6IHRoaXMucmF3TW9kZWxba2V5XSxcclxuXHRcdFx0bmV3VmFsdWU6IHZhbHVlLFxyXG5cdFx0XHRsYWJlbDogZmllbGRVdGlscy5sYWJlbChmaWVsZCwgdGhpcy5pMThuU2VydmljZSksXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUhpZGVFeHByZXNzaW9uKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmhpZGVFeHByZXNzaW9uKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGZpZWxkLmhpZGUgPSBmaWVsZC5oaWRlRXhwcmVzc2lvbih0aGlzLm1vZGVsKCksIGZpZWxkKTtcclxuXHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS53YXJuKGBoaWRlRXhwcmVzc2lvbiDot7Pov4fkuoblrZfmrrXigJwke2ZpZWxkLmtleX3igJ3vvIzlm6DkuLrov5DooYzml7bkuIrkuIvmloflsJrmnKrlh4blpIflpb3jgIJgKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGZpZWxkLmhpZGUpIHtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcblx0XHRcdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCB2YWxpZGF0b3JzID0gZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5XHJcblx0XHRcdFx0XHRcdD8gbnVsbFxyXG5cdFx0XHRcdFx0XHQ6IGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5yZXF1aXJlZFxyXG5cdFx0XHRcdFx0XHRcdD8gKGZpZWxkPy52YWxpZGF0b3JzID8gZmllbGQ/LnZhbGlkYXRvcnMgOiBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG5cdFx0XHRcdFx0XHRcdDogbnVsbDtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoKSB7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHMpIHtcclxuXHRcdFx0IXRoaXMub3B0aW9ucygpLmZvcm0/LmNvbnRyb2xzW2tleV1bJ2Rpc2FibGVkJ10gJiYgdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucygpLmZvcm0/LmRpc2FibGVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucygpLmZvcm0/LnZhbGlkO1xyXG5cdH1cclxuXHJcblx0dW5pcXVlSG9vayhmaWVsZDogRm9ybUZpZWxkLCBob29rOiBPYnNlcnZhYmxlPChmaWVsZD86IEZvcm1GaWVsZCkgPT4gdm9pZD4pIHtcclxuXHRcdGZpZWxkLmhvb2sgPSBob29rLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG5cdH1cclxuXHJcblx0dHJpZ2dlckhvb2soKSB7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnRyaWdnZXJIb29rQW5kU2V0VmFsdWUoXHJcblx0XHRcdFx0ZmllbGQsXHJcblx0XHRcdFx0ZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGZpZWxkLmtleSEpLFxyXG5cdFx0XHRcdGZhbHNlLFxyXG5cdFx0XHRcdHRydWUsXHJcblx0XHRcdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLFxyXG5cdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlSGlkZUV4cHJlc3Npb24oKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMuZGF0ZVBpcGUsXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHJlQ2FsY0xhYmVsU2l6ZSgpIHtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMoKS5sYWJlbFdpZHRoKSB7XHJcblx0XHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodGhpcy5vcHRpb25zKCkubGFiZWxXaWR0aCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodW5kZWZpbmVkKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdHRoaXMuaGFuZGxlRmllbGRMYWJlbHMoKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUZpZWxkTGFiZWxzKCkge1xyXG5cdFx0Y29uc3QgZmllbGRMYWJlbHM6IEVsZW1lbnRSZWZbXSA9IFtdO1xyXG5cdFx0dGhpcy5nZXRGaWVsZExhYmVscyh0aGlzLmZpZWxkQ29tcG9uZW50cywgZmllbGRMYWJlbHMpO1xyXG5cdFx0Y29uc3Qgb2Zmc2V0V2lkdGhzID0gZmllbGRMYWJlbHMubWFwKChmaWVsZExhYmVsKSA9PiBmaWVsZExhYmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG5cdFx0dGhpcy5sYWJlbE1pbldpZHRoLnNldChNYXRoLm1heCguLi5vZmZzZXRXaWR0aHMpICsgMjQgKyAncHgnKTtcclxuXHR9XHJcblxyXG5cdGdldEZpZWxkTGFiZWxzKGZpZWxkQ29tcG9uZW50czogUXVlcnlMaXN0PEZvcm1GaWVsZENvbXBvbmVudD4gfCB1bmRlZmluZWQsIGZpZWxkTGFiZWxzOiBFbGVtZW50UmVmW10pIHtcclxuXHRcdGlmICghZmllbGRDb21wb25lbnRzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGZpZWxkQ29tcG9uZW50cz8uZm9yRWFjaCgoY29tcG9uZW50KSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpZWxkTGFiZWwgPSBjb21wb25lbnQuZ2V0RmllbGRMYWJlbCgpO1xyXG5cdFx0XHRpZiAoZmllbGRMYWJlbCkge1xyXG5cdFx0XHRcdGZpZWxkTGFiZWxzLnB1c2goZmllbGRMYWJlbCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5nZXRGaWVsZExhYmVscyhjb21wb25lbnQuZ2V0RmllbGRDb21wb25lbnRzKCksIGZpZWxkTGFiZWxzKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5qih5Z6L5Y+Y5Yqo77yM6ZKI5a+56KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIG1vZGVsIOmcgOimgeWPmOWKqOeahOaVsOaNrlxyXG5cdCAqIEBwYXJhbSBlbWl0RXZlbnQg5piv5ZCm6Kem5Y+R5LqL5Lu2XHJcblx0ICogQHBhcmFtIGRldGVjdE1vZGVsQ2hhbmdlIOaYr+WQpuinpuWPkWRldGVjdE1vZGVsQ2hhbmdlXHJcblx0ICovXHJcblx0dHJpZ2dlck1vZGVsRWZmZWN0KG1vZGVsOiBhbnksIGVtaXRFdmVudD86IGJvb2xlYW4sIGVtaXRIb29rPzogYm9vbGVhbikge1xyXG5cdFx0T2JqZWN0LmtleXMobW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KSE7XHJcblx0XHRcdGlmICghZmllbGQpIHJldHVybjtcclxuXHRcdFx0ZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlKFxyXG5cdFx0XHRcdGZpZWxkLFxyXG5cdFx0XHRcdG1vZGVsW2tleV0sXHJcblx0XHRcdFx0ZW1pdEV2ZW50ID8/IHRydWUsXHJcblx0XHRcdFx0ZW1pdEhvb2sgPz8gdHJ1ZSxcclxuXHRcdFx0XHR0aGlzLmhvb2tPYnNlcnZlcnMsXHJcblx0XHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhpcy5kYXRlUGlwZSxcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pWw5o2u5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEYXRhRWZmZWN0KGRhdGFMaXN0OiBFeHRlcm5hbERhdGFbXSkge1xyXG5cdFx0ZGF0YUxpc3QuZm9yRWFjaCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHRoaXMubW9kZWwoKSwgZGF0YS5rZXkhLCBkYXRhLnZhbHVlKTtcclxuXHRcdFx0aWYgKGRhdGEubGFiZWwpIHtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbFtkYXRhLmtleSFdID0geyBuYW1lOiBkYXRhLmxhYmVsLCB2YWx1ZTogZGF0YS52YWx1ZSwgdHlwZTogJ2lucHV0dGV4dCcgfTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUsIHRydWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlVXBzZXJ0KGRhdGEua2V5ISwgZGF0YS52YWx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pel5b+X5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJMb2dFZmZlY3QoZGF0YUxpc3Q6IEV4dGVybmFsRGF0YVtdKSB7XHJcblx0XHRkYXRhTGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XHJcblx0XHRcdGlmIChkYXRhLmxhYmVsKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VkTW9kZWxbZGF0YS5rZXkhXSA9IHsgbmFtZTogZGF0YS5sYWJlbCwgdmFsdWU6IGRhdGEudmFsdWUsIHR5cGU6ICdpbnB1dHRleHQnIH07XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZGF0YS5rZXkhLCBkYXRhLnZhbHVlLCB0cnVlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeWtl+auteemgeeUqO+8jOmSiOWvueihqOWNleWtl+autVxyXG5cdCAqIEBwYXJhbSBrZXlzIOWtl+autWtleeWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEaXNhYmxlZEVmZmVjdChrZXlzOiBzdHJpbmdbXSkge1xyXG5cdFx0a2V5cz8uZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdHRoaXMuc2V0RmllbGREaXNhYmxlZChrZXkpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiDliqjmgIHorr7nva7lrZfmrrXnpoHnlKjvvIznpoHnlKjliY3muIXpmaTlrZfmrrVkaXJ0eeagh+iusFxyXG5cdCAqIEBwYXJhbSBrZXkg5a2X5q61a2V5XHJcblx0ICovXHJcblx0c2V0RmllbGREaXNhYmxlZChrZXk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5nZXRGaWVsZChrZXkpPy5maWVsZENvbnRyb2w/Lm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZ2V0RmllbGQoa2V5KT8uZmllbGRDb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOihqOWNleaPkOS6pOWQjueahOaUtuWwvuWkhOeQhu+8jOS4gOiIrOWcqOaPkOS6pOaOpeWPo+eahOWbnuiwg+WHveaVsOaJp+ihjFxyXG5cdCAqL1xyXG5cdGZpbmFsaXplKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKFsnaW1hZ2UnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSEpKSB7XHJcblx0XHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5hZnRlclN1Ym1pdCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIiwiQGZvciAoZmllbGQgb2YgZmllbGRzKCk7IHRyYWNrIGZpZWxkKSB7XG5cdDxmb3JtLWZpZWxkXG5cdFx0Y2xhc3M9XCJ3LWZ1bGxcIlxuXHRcdFtmaWVsZF09XCJmaWVsZFwiPlxuXHQ8L2Zvcm0tZmllbGQ+XG59XG4iXX0=
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBSVosTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQWMsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBMEI3RCxNQUFNLE9BQU8s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O0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEdBQVc7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLEtBQUssQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FsYVcsYUFBYTttR0FBYixhQUFhLCtlQUpkLENBQUMsUUFBUSxDQUFDLDhEQUtQLGtCQUFrQixnRENwRGpDLDRIQU1BLHlERHdDVyxZQUFZLDhCQUFFLG1CQUFtQiwrQkFBRSxrQkFBa0I7OzRGQUtuRCxhQUFhO2tCQVJ6QixTQUFTOytCQUNDLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsYUFDckQsQ0FBQyxRQUFRLENBQUM7NkdBS2EsZUFBZTtzQkFBaEQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBNkJoQyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdGVmZmVjdCxcclxuXHRpbnB1dCxcclxuXHRjb21wdXRlZCxcclxuXHRWaWV3Q2hpbGRyZW4sXHJcblx0UXVlcnlMaXN0LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0aW5qZWN0LFxyXG5cdEhvc3RMaXN0ZW5lcixcclxuXHR1bnRyYWNrZWQsXHJcblx0c2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1TdWJtaXR0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmllbGRDb250cm9sIH0gZnJvbSAnLi4vZm9ybS1maWVsZC9maWVsZC1jb250cm9sJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkLCBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaWVsZFV0aWxzIH0gZnJvbSAnLi4vZm9ybS1maWVsZC9maWVsZC11dGlscyc7XHJcbmltcG9ydCB7IFVwc2VydCB9IGZyb20gJy4uLy4uL2FtL2FtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGdlbmVyYXRlVW5pcXVlSWQgfSBmcm9tICcuLi8uLi9zaGFyZS91dGlscyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1PcHRpb25zIHtcclxuXHRmaWVsZHM/OiBGb3JtRmllbGRbXTtcclxuXHRmb3JtPzogRm9ybUdyb3VwO1xyXG5cdG1haW5GaWVsZD86IHN0cmluZztcclxuXHRsYWJlbFdpZHRoPzogc3RyaW5nO1xyXG5cdGludGVyYWN0aXZlTGFiZWw/OiBib29sZWFuO1xyXG5cdGV4dHJhPzogYW55O1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHR0eXBlPzogc3RyaW5nO1xyXG5cdGZrPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxEYXRhIHtcclxuXHRrZXk/OiBzdHJpbmc7XHJcblx0dmFsdWU/OiBhbnk7XHJcblx0bGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3VzdG9tLWZvcm0nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybUZpZWxkQ29tcG9uZW50XSxcclxuXHRwcm92aWRlcnM6IFtEYXRlUGlwZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9mb3JtLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGRyZW4oRm9ybUZpZWxkQ29tcG9uZW50KSBmaWVsZENvbXBvbmVudHM/OiBRdWVyeUxpc3Q8Rm9ybUZpZWxkQ29tcG9uZW50PjtcclxuXHRyb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdGlzTmV3OiBib29sZWFuID0gZmFsc2U7XHJcblx0b3B0aW9ucyA9IGlucHV0PEZvcm1PcHRpb25zPih7fSk7XHJcblx0ZmllbGRzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0dW50cmFja2VkKCgpID0+IHtcclxuXHRcdFx0dGhpcy5pbml0Rm9ybSgpO1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnJlQ2FsY0xhYmVsU2l6ZSgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucygpLmZpZWxkcztcclxuXHR9KTtcclxuXHJcblx0aTE4blNlcnZpY2UgPSBpbmplY3QoSTE4blNlcnZpY2UpO1xyXG5cdG1vZGVsID0gaW5wdXQ8YW55PigpO1xyXG5cdHVwc2VydCA9IGlucHV0PFVwc2VydD4oKTtcclxuXHRyYXdNb2RlbDogYW55ID0ge307XG5cdGNoYW5nZWRNb2RlbDogYW55ID0ge307XG5cdGZpZWxkTGlzdCE6IEZvcm1GaWVsZFtdO1xuXHRob29rT2JzZXJ2ZXJzOiBGdW5jdGlvbltdID0gW107XG5cdGxhYmVsTWluV2lkdGggPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXHRwcml2YXRlIGZhbGxiYWNrVXBzZXJ0OiBVcHNlcnQgPSB7IGFkZERhdGE6IHt9LCB1cGREYXRhOiB7fSwgc3Vic2VydDogW10sIGxvZzoge30gfTtcblx0aXNNYWluOiBib29sZWFuID0gdHJ1ZTtcblx0c3Vic2VydDogYW55O1xuXHRleHRyYTogYW55ID0ge307XG5cclxuXHRhY3Rpb25zID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xyXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG5cdG9uUmVzaXplKCkge1xyXG5cdFx0dGhpcy5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcblx0KSB7XHJcblx0XHR0aGlzLnJvdXRlci51cmwuc3BsaXQoJy8nKS5wb3AoKSA9PSAnbmV3JyAmJiAodGhpcy5pc05ldyA9IHRydWUpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLm1vZGVsKCkpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5hcHBseURlZmF1bHRWYWx1ZXMoKTtcclxuXHRcdFx0XHR0aGlzLnJhd01vZGVsID0gZmllbGRVdGlscy5wcmVsb2FkTG9nKHsgLi4udGhpcy5tb2RlbCgpIH0sIHRoaXMuZmllbGRMaXN0LCB0aGlzLmRhdGVQaXBlKTtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbCA9IHt9O1xyXG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB0aGlzLnRyaWdnZXJIb29rKCkpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGxldCBtb2RlbE5hbWUgPSB0aGlzLm9wdGlvbnMoKS5tb2RlbE5hbWUgfHwgJyc7XG5cdFx0XHRcdGlmIChtb2RlbE5hbWUgIT0gJycpIHtcblx0XHRcdFx0XHRjb25zdCB1cHNlcnQgPSB0aGlzLmdldFVwc2VydFN0YXRlKCk7XG5cdFx0XHRcdFx0dGhpcy5pc01haW4gPSAhdXBzZXJ0LnN1YnNlcnQ/LmZpbmQoKHY6IGFueSkgPT4gdi5zdWJNb2RlbE5hbWUgPT09IG1vZGVsTmFtZSk7XG5cdFx0XHRcdFx0aWYgKCF0aGlzLmlzTWFpbikge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJzZXJ0ID0ge1xuXHRcdFx0XHRcdFx0XHRzdWJNb2RlbE5hbWU6IG1vZGVsTmFtZSxcblx0XHRcdFx0XHRcdFx0Zms6IHRoaXMub3B0aW9ucygpLmZrLFxuXHRcdFx0XHRcdFx0XHRzdWJEYXRhOiBbXSxcblx0XHRcdFx0XHRcdFx0bWFwdG1wOiBuZXcgTWFwKCksXHJcblx0XHRcdFx0XHRcdFx0XHRsb2d0bXA6IG5ldyBNYXAoKSxcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdFx0dXBzZXJ0LnN1YnNlcnQ/LnB1c2godGhpcy5zdWJzZXJ0KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHRcdCk7XG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuaTE4blNlcnZpY2UuY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLmZvckVhY2goKHVuc3Vic2NyaWJlKSA9PiB1bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcblxyXG5cdGluaXRGb3JtKCkge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5leHRyYSkge1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMoKS5leHRyYSA9IHt9O1xyXG5cdFx0fVxyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnMoKS5mb3JtKSB7XHJcblx0XHRcdHRoaXMub3B0aW9ucygpLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0ID0gW107XHJcblx0XHQvL0B0cy1pZ25vcmVcclxuXHRcdGNvbnN0IGlzSTE4biA9IHdpbmRvdy5hcHBJc0kxOG47XHJcblx0XHR0aGlzLnBhcnNlRmllbGRzKHRoaXMub3B0aW9ucygpLmZpZWxkcyB8fCBbXSk7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCwgaW5kZXgpID0+IHtcclxuXHRcdFx0ZmllbGRVdGlscy5maWVsZEhhbmRsZXIoZmllbGQpO1xyXG5cdFx0XHRmaWVsZC51dWlkID0gYCR7Z2VuZXJhdGVVbmlxdWVJZCgpfSR7aW5kZXh9YDtcclxuXHRcdFx0ZmllbGQubGFiZWxNaW5XaWR0aCA9IHRoaXMubGFiZWxNaW5XaWR0aDtcclxuXHRcdFx0ZmllbGQuaW50ZXJhY3RpdmVMYWJlbCA9IHRoaXMub3B0aW9ucygpLmludGVyYWN0aXZlTGFiZWwgPz8gdHJ1ZTtcclxuXHRcdFx0aWYgKGlzSTE4biAmJiAoIWZpZWxkVXRpbHMucHJvcHMoZmllbGQpLmkxOG5LZXkgfHwgZmllbGRVdGlscy5wcm9wcyhmaWVsZCkuaTE4bktleSA9PSAnJykpIHtcclxuXHRcdFx0XHRmaWVsZFV0aWxzLnByb3BzKGZpZWxkKS5pMThuS2V5ID0gYHRhYmxlcy4ke3RoaXMub3B0aW9ucygpLm1vZGVsTmFtZX0uJHtmaWVsZC5rZXl9YDtcclxuXHRcdFx0fVxyXG5cdFx0XHRmaWVsZC5mb3JtID0gdGhpcztcclxuXHRcdFx0aWYgKGlzT2JzZXJ2YWJsZShmaWVsZC5ob29rKSkge1xyXG5cdFx0XHRcdHRoaXMudW5pcXVlSG9vayhmaWVsZCwgZmllbGQuaG9vayk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5oYW5kbGVGaWVsZENvbnRyb2woZmllbGQpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmFwcGx5RGVmYXVsdFZhbHVlcygpO1xyXG5cdFx0aWYgKHRoaXMubW9kZWwoKSkge1xyXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4gdGhpcy50cmlnZ2VySG9vaygpKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWVzKCkge1xyXG5cdFx0aWYgKCF0aGlzLm1vZGVsKCkgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5maWVsZExpc3QpIHx8IHRoaXMuZmllbGRMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAoIXRoaXMuc2hvdWxkQXBwbHlEZWZhdWx0cygpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuZmllbGRMaXN0LmZvckVhY2goKGZpZWxkKSA9PiB7XHJcblx0XHRcdGlmIChmaWVsZC5kZWZhdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhKSAhPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVWYWx1ZUNoYW5nZShmaWVsZFV0aWxzLmRhZmF1bHRWYWx1ZUhhbmRsZXIoZmllbGQsIGZpZWxkLmRlZmF1bHQsIHRoaXMuZGF0ZVBpcGUpLCBmaWVsZCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3VsZEFwcGx5RGVmYXVsdHMoKSB7XHJcblx0XHRpZiAodGhpcy5pc05ldykge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHVybCA9IHRoaXMucm91dGVyLnVybC50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0cmV0dXJuIHVybC5pbmNsdWRlcygnY29uZmlnJyk7XHJcblx0fVxyXG5cclxuXHRnZXRGaWVsZChrZXk6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmllbGRMaXN0LmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5rZXkgPT09IGtleSk7XHJcblx0fVxyXG5cclxuXHRwYXJzZUZpZWxkcyhmaWVsZHM6IEZvcm1GaWVsZFtdKSB7XHJcblx0XHRmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmdyb3VwKSB7XHJcblx0XHRcdFx0dGhpcy5wYXJzZUZpZWxkcyhmaWVsZC5ncm91cCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5maWVsZExpc3QucHVzaChmaWVsZCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRmllbGRDb250cm9sKGZpZWxkOiBGb3JtRmllbGQpIHtcclxuXHRcdGNvbnN0IGtleSA9IGZpZWxkLmtleSB8fCAnJztcclxuXHRcdGNvbnN0IGlzRGlzcGxheU9ubHkgPSAhIWZpZWxkLmV4dHJhPy5kaXNwbGF5T25seTtcclxuXHRcdGNvbnN0IHZhbGlkYXRvcnMgPVxyXG5cdFx0XHRpc0Rpc3BsYXlPbmx5ID8gbnVsbCA6IGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5yZXF1aXJlZCA/IChmaWVsZC52YWxpZGF0b3JzID8gZmllbGQudmFsaWRhdG9ycyA6IFZhbGlkYXRvcnMucmVxdWlyZWQpIDogbnVsbDtcclxuXHRcdGxldCBmaWVsZENvbnRyb2wgPSB0aGlzLm9wdGlvbnMoKS5mb3JtPy5nZXQoa2V5KSBhcyBGaWVsZENvbnRyb2wgfCBudWxsO1xyXG5cclxuXHRcdGlmICghZmllbGRDb250cm9sKSB7XHJcblx0XHRcdGZpZWxkQ29udHJvbCA9IG5ldyBGaWVsZENvbnRyb2wobnVsbCwgdmFsaWRhdG9ycyB8fCB1bmRlZmluZWQpO1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMoKS5mb3JtPy5hZGRDb250cm9sKGtleSwgZmllbGRDb250cm9sKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZpZWxkQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG5cdFx0XHRmaWVsZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0ZmllbGQuZmllbGRDb250cm9sID0gZmllbGRDb250cm9sO1xyXG5cclxuXHRcdGlmIChmaWVsZFV0aWxzLnByb3BzKGZpZWxkKT8uZGlzYWJsZWQgfHwgaXNEaXNwbGF5T25seSkge1xyXG5cdFx0XHRmaWVsZC5maWVsZENvbnRyb2wuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbC5tYXJrQXNQcmlzdGluZSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG5cdFx0fSBlbHNlIGlmIChmaWVsZC5maWVsZENvbnRyb2wuZGlzYWJsZWQpIHtcclxuXHRcdFx0ZmllbGQuZmllbGRDb250cm9sLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR9XHJcblx0XHRmaWVsZC5maWVsZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblxyXG5cdFx0aWYgKChmaWVsZENvbnRyb2wgYXMgYW55KS5fX3ZhbHVlQ2hhbmdlQm91bmQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZpZWxkQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRjb25zdCBhY3RpdmVGaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KSB8fCBmaWVsZDtcclxuXHRcdFx0Y29uc3QgdGFyZ2V0VmFsdWUgPSBmaWVsZFV0aWxzLmZyb21GaWVsZFZhbHVlKGFjdGl2ZUZpZWxkLCB2YWx1ZSwgdGhpcy5kYXRlUGlwZSk7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGZpZWxkVXRpbHMuZ2V0TW9kZWwodGhpcy5tb2RlbCgpLCBhY3RpdmVGaWVsZC5rZXkhKTtcclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMuaXNGYWtlZENoYW5nZSh0YXJnZXRWYWx1ZSwgY3VycmVudFZhbHVlLCBhY3RpdmVGaWVsZCkpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlICYmIHR5cGVvZiBmaWVsZFV0aWxzLnByb3BzKGFjdGl2ZUZpZWxkKT8ub25Nb2RlbENoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdGZpZWxkVXRpbHMucHJvcHMoYWN0aXZlRmllbGQpPy5vbk1vZGVsQ2hhbmdlIShhY3RpdmVGaWVsZCwgeyB2YWx1ZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKHRhcmdldFZhbHVlLCBhY3RpdmVGaWVsZCk7XHJcblx0XHR9KTtcclxuXHRcdChmaWVsZENvbnRyb2wgYXMgYW55KS5fX3ZhbHVlQ2hhbmdlQm91bmQgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlVmFsdWVDaGFuZ2UodmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCkge1xuXHRcdGZpZWxkVXRpbHMuc2V0TW9kZWwodGhpcy5tb2RlbCgpLCBmaWVsZC5rZXkhLCB2YWx1ZSk7XG5cdFx0aWYgKGZpZWxkLmV4dHJhPy5kaXNwbGF5T25seSkge1xuXHRcdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmNoYW5nZWRNb2RlbFtmaWVsZC5rZXkhXSA9IHsgbmFtZTogZmllbGRVdGlscy5sYWJlbChmaWVsZCwgdGhpcy5pMThuU2VydmljZSksIHZhbHVlOiB2YWx1ZSwgdHlwZTogZmllbGQudHlwZSB9O1xyXG5cdFx0aWYgKHRoaXMuaXNNYWluKSB7XHJcblx0XHRcdHRoaXMuaGFuZGxlVXBzZXJ0KGZpZWxkLmtleSEsIHZhbHVlLCB0cnVlKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuaGFuZGxlU3Vic2VydChmaWVsZC5rZXkhLCB2YWx1ZSwgZmllbGQpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xuXHRcdHRoaXMuYWN0aW9ucy5zYXZlU2lnbmFsLnNldCh0cnVlKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0VXBzZXJ0U3RhdGUoKSB7XG5cdFx0Y29uc3QgdXBzZXJ0ID0gdGhpcy51cHNlcnQoKSA/PyB0aGlzLmZhbGxiYWNrVXBzZXJ0O1xuXHRcdHVwc2VydC5hZGREYXRhID8/PSB7fTtcblx0XHR1cHNlcnQudXBkRGF0YSA/Pz0ge307XG5cdFx0dXBzZXJ0LnN1YnNlcnQgPz89IFtdO1xuXHRcdHVwc2VydC5sb2cgPz89IHt9O1xuXHRcdHJldHVybiB1cHNlcnQ7XG5cdH1cblxuXHRoYW5kbGVVcHNlcnQoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGlzTG9nPzogYm9vbGVhbikge1xuXHRcdGNvbnN0IHVwc2VydCA9IHRoaXMuZ2V0VXBzZXJ0U3RhdGUoKTtcblx0XHRpZiAodGhpcy5pc05ldykge1xuXHRcdFx0ZmllbGRVdGlscy5zZXRNb2RlbCh1cHNlcnQuYWRkRGF0YSEsIGtleSwgdmFsdWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHVwc2VydC51cGREYXRhISwga2V5LCB2YWx1ZSk7XG5cdFx0fVxuXHRcdGlmICghaXNMb2cpIHJldHVybjtcblx0XHR1cHNlcnQubG9nIS5jb250ZW50ID0gZmllbGRVdGlscy50cmFuc0xvZyhcblx0XHRcdHRoaXMucmF3TW9kZWwsXG5cdFx0XHR0aGlzLmNoYW5nZWRNb2RlbCxcblx0XHRcdHRoaXMubW9kZWwoKVt0aGlzLm9wdGlvbnMoKS5tYWluRmllbGQhXSxcblx0XHRcdHRoaXMuaXNOZXcsXHJcblx0XHRcdHRoaXMuaTE4blNlcnZpY2UsXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlU3Vic2VydChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCkge1xyXG5cdFx0Y29uc3QgY2hhbmdlZE1vZGVsID0gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMuY2hhbmdlZE1vZGVsKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgKHZhbHVlIGFzIGFueSkudmFsdWVdKSk7XHJcblx0XHR0aGlzLnN1YnNlcnQubG9ndG1wLnNldCgwLCBjaGFuZ2VkTW9kZWwpO1xyXG5cdFx0dGhpcy5zdWJzZXJ0LnN1YkRhdGFbMF0gPSBjaGFuZ2VkTW9kZWw7XHJcblx0XHR0aGlzLnN1YnNlcnQubWFwdG1wLnNldChrZXksIHtcclxuXHRcdFx0aWQ6IHRoaXMubW9kZWwoKT8uaWQgPz8gMCxcclxuXHRcdFx0b2xkVmFsdWU6IHRoaXMucmF3TW9kZWxba2V5XSxcclxuXHRcdFx0bmV3VmFsdWU6IHZhbHVlLFxyXG5cdFx0XHRsYWJlbDogZmllbGRVdGlscy5sYWJlbChmaWVsZCwgdGhpcy5pMThuU2VydmljZSksXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUhpZGVFeHByZXNzaW9uKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKGZpZWxkLmhpZGVFeHByZXNzaW9uKSB7XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdGZpZWxkLmhpZGUgPSBmaWVsZC5oaWRlRXhwcmVzc2lvbih0aGlzLm1vZGVsKCksIGZpZWxkKTtcclxuXHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdFx0Ly8gY29uc29sZS53YXJuKGBoaWRlRXhwcmVzc2lvbiDot7Pov4fkuoblrZfmrrXigJwke2ZpZWxkLmtleX3igJ3vvIzlm6DkuLrov5DooYzml7bkuIrkuIvmloflsJrmnKrlh4blpIflpb3jgIJgKTtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGZpZWxkLmhpZGUpIHtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7XHJcblx0XHRcdFx0XHRmaWVsZC5maWVsZENvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCB2YWxpZGF0b3JzID0gZmllbGQuZXh0cmE/LmRpc3BsYXlPbmx5XHJcblx0XHRcdFx0XHRcdD8gbnVsbFxyXG5cdFx0XHRcdFx0XHQ6IGZpZWxkVXRpbHMucHJvcHMoZmllbGQpPy5yZXF1aXJlZFxyXG5cdFx0XHRcdFx0XHRcdD8gKGZpZWxkPy52YWxpZGF0b3JzID8gZmllbGQ/LnZhbGlkYXRvcnMgOiBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG5cdFx0XHRcdFx0XHRcdDogbnVsbDtcclxuXHRcdFx0XHRcdGZpZWxkLmZpZWxkQ29udHJvbD8uc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoKSB7XHJcblx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHMpIHtcclxuXHRcdFx0IXRoaXMub3B0aW9ucygpLmZvcm0/LmNvbnRyb2xzW2tleV1bJ2Rpc2FibGVkJ10gJiYgdGhpcy5vcHRpb25zKCkuZm9ybT8uY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucygpLmZvcm0/LmRpc2FibGVkID8gdHJ1ZSA6IHRoaXMub3B0aW9ucygpLmZvcm0/LnZhbGlkO1xyXG5cdH1cclxuXHJcblx0dW5pcXVlSG9vayhmaWVsZDogRm9ybUZpZWxkLCBob29rOiBPYnNlcnZhYmxlPChmaWVsZD86IEZvcm1GaWVsZCkgPT4gdm9pZD4pIHtcclxuXHRcdGZpZWxkLmhvb2sgPSBob29rLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xyXG5cdH1cclxuXHJcblx0dHJpZ2dlckhvb2soKSB7XHJcblx0XHR0aGlzLmZpZWxkTGlzdC5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnRyaWdnZXJIb29rQW5kU2V0VmFsdWUoXHJcblx0XHRcdFx0ZmllbGQsXHJcblx0XHRcdFx0ZmllbGRVdGlscy5nZXRNb2RlbCh0aGlzLm1vZGVsKCksIGZpZWxkLmtleSEpLFxyXG5cdFx0XHRcdGZhbHNlLFxyXG5cdFx0XHRcdHRydWUsXHJcblx0XHRcdFx0dGhpcy5ob29rT2JzZXJ2ZXJzLFxyXG5cdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlSGlkZUV4cHJlc3Npb24oKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHRoaXMuZGF0ZVBpcGUsXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHJlQ2FsY0xhYmVsU2l6ZSgpIHtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMoKS5sYWJlbFdpZHRoKSB7XHJcblx0XHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodGhpcy5vcHRpb25zKCkubGFiZWxXaWR0aCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubGFiZWxNaW5XaWR0aC5zZXQodW5kZWZpbmVkKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdHRoaXMuaGFuZGxlRmllbGRMYWJlbHMoKTtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUZpZWxkTGFiZWxzKCkge1xyXG5cdFx0Y29uc3QgZmllbGRMYWJlbHM6IEVsZW1lbnRSZWZbXSA9IFtdO1xyXG5cdFx0dGhpcy5nZXRGaWVsZExhYmVscyh0aGlzLmZpZWxkQ29tcG9uZW50cywgZmllbGRMYWJlbHMpO1xyXG5cdFx0Y29uc3Qgb2Zmc2V0V2lkdGhzID0gZmllbGRMYWJlbHMubWFwKChmaWVsZExhYmVsKSA9PiBmaWVsZExhYmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG5cdFx0dGhpcy5sYWJlbE1pbldpZHRoLnNldChNYXRoLm1heCguLi5vZmZzZXRXaWR0aHMpICsgMjQgKyAncHgnKTtcclxuXHR9XHJcblxyXG5cdGdldEZpZWxkTGFiZWxzKGZpZWxkQ29tcG9uZW50czogUXVlcnlMaXN0PEZvcm1GaWVsZENvbXBvbmVudD4gfCB1bmRlZmluZWQsIGZpZWxkTGFiZWxzOiBFbGVtZW50UmVmW10pIHtcclxuXHRcdGlmICghZmllbGRDb21wb25lbnRzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGZpZWxkQ29tcG9uZW50cz8uZm9yRWFjaCgoY29tcG9uZW50KSA9PiB7XHJcblx0XHRcdGNvbnN0IGZpZWxkTGFiZWwgPSBjb21wb25lbnQuZ2V0RmllbGRMYWJlbCgpO1xyXG5cdFx0XHRpZiAoZmllbGRMYWJlbCkge1xyXG5cdFx0XHRcdGZpZWxkTGFiZWxzLnB1c2goZmllbGRMYWJlbCk7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5nZXRGaWVsZExhYmVscyhjb21wb25lbnQuZ2V0RmllbGRDb21wb25lbnRzKCksIGZpZWxkTGFiZWxzKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5qih5Z6L5Y+Y5Yqo77yM6ZKI5a+56KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIG1vZGVsIOmcgOimgeWPmOWKqOeahOaVsOaNrlxyXG5cdCAqIEBwYXJhbSBlbWl0RXZlbnQg5piv5ZCm6Kem5Y+R5LqL5Lu2XHJcblx0ICogQHBhcmFtIGRldGVjdE1vZGVsQ2hhbmdlIOaYr+WQpuinpuWPkWRldGVjdE1vZGVsQ2hhbmdlXHJcblx0ICovXHJcblx0dHJpZ2dlck1vZGVsRWZmZWN0KG1vZGVsOiBhbnksIGVtaXRFdmVudD86IGJvb2xlYW4sIGVtaXRIb29rPzogYm9vbGVhbikge1xyXG5cdFx0T2JqZWN0LmtleXMobW9kZWwpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHRjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KSE7XHJcblx0XHRcdGlmICghZmllbGQpIHJldHVybjtcclxuXHRcdFx0ZmllbGRVdGlscy50cmlnZ2VySG9va0FuZFNldFZhbHVlKFxyXG5cdFx0XHRcdGZpZWxkLFxyXG5cdFx0XHRcdG1vZGVsW2tleV0sXHJcblx0XHRcdFx0ZW1pdEV2ZW50ID8/IHRydWUsXHJcblx0XHRcdFx0ZW1pdEhvb2sgPz8gdHJ1ZSxcclxuXHRcdFx0XHR0aGlzLmhvb2tPYnNlcnZlcnMsXHJcblx0XHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVIaWRlRXhwcmVzc2lvbigpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhpcy5kYXRlUGlwZSxcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pWw5o2u5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEYXRhRWZmZWN0KGRhdGFMaXN0OiBFeHRlcm5hbERhdGFbXSkge1xyXG5cdFx0ZGF0YUxpc3QuZm9yRWFjaCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRmaWVsZFV0aWxzLnNldE1vZGVsKHRoaXMubW9kZWwoKSwgZGF0YS5rZXkhLCBkYXRhLnZhbHVlKTtcclxuXHRcdFx0aWYgKGRhdGEubGFiZWwpIHtcclxuXHRcdFx0XHR0aGlzLmNoYW5nZWRNb2RlbFtkYXRhLmtleSFdID0geyBuYW1lOiBkYXRhLmxhYmVsLCB2YWx1ZTogZGF0YS52YWx1ZSwgdHlwZTogJ2lucHV0dGV4dCcgfTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUsIHRydWUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlVXBzZXJ0KGRhdGEua2V5ISwgZGF0YS52YWx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICog6Kem5Y+R5pel5b+X5Y+Y5Yqo77yM6ZKI5a+56Z2e6KGo5Y2V5a2X5q615pWw5o2uXHJcblx0ICogQHBhcmFtIGRhdGFMaXN0IOWklumDqOaVsOaNruWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJMb2dFZmZlY3QoZGF0YUxpc3Q6IEV4dGVybmFsRGF0YVtdKSB7XHJcblx0XHRkYXRhTGlzdC5mb3JFYWNoKChkYXRhKSA9PiB7XHJcblx0XHRcdGlmIChkYXRhLmxhYmVsKSB7XHJcblx0XHRcdFx0dGhpcy5jaGFuZ2VkTW9kZWxbZGF0YS5rZXkhXSA9IHsgbmFtZTogZGF0YS5sYWJlbCwgdmFsdWU6IGRhdGEudmFsdWUsIHR5cGU6ICdpbnB1dHRleHQnIH07XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVVcHNlcnQoZGF0YS5rZXkhLCBkYXRhLnZhbHVlLCB0cnVlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVVwc2VydChkYXRhLmtleSEsIGRhdGEudmFsdWUpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOinpuWPkeWtl+auteemgeeUqO+8jOmSiOWvueihqOWNleWtl+autVxyXG5cdCAqIEBwYXJhbSBrZXlzIOWtl+autWtleeWIl+ihqFxyXG5cdCAqL1xyXG5cdHRyaWdnZXJEaXNhYmxlZEVmZmVjdChrZXlzOiBzdHJpbmdbXSkge1xyXG5cdFx0a2V5cz8uZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdHRoaXMuc2V0RmllbGREaXNhYmxlZChrZXkpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiDliqjmgIHorr7nva7lrZfmrrXnpoHnlKjvvIznpoHnlKjliY3muIXpmaTlrZfmrrVkaXJ0eeagh+iusFxyXG5cdCAqIEBwYXJhbSBrZXkg5a2X5q61a2V5XHJcblx0ICovXHJcblx0c2V0RmllbGREaXNhYmxlZChrZXk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5nZXRGaWVsZChrZXkpPy5maWVsZENvbnRyb2w/Lm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdHRoaXMuZ2V0RmllbGQoa2V5KT8uZmllbGRDb250cm9sPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIOihqOWNleaPkOS6pOWQjueahOaUtuWwvuWkhOeQhu+8jOS4gOiIrOWcqOaPkOS6pOaOpeWPo+eahOWbnuiwg+WHveaVsOaJp+ihjFxyXG5cdCAqL1xyXG5cdGZpbmFsaXplKCkge1xyXG5cdFx0dGhpcy5maWVsZExpc3QuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuXHRcdFx0aWYgKFsnaW1hZ2UnLCAndXBsb2FkJ10uaW5jbHVkZXMoZmllbGQudHlwZSEpKSB7XHJcblx0XHRcdFx0ZmllbGQuZmllbGRDb250cm9sPy5hZnRlclN1Ym1pdCgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIiwiQGZvciAoZmllbGQgb2YgZmllbGRzKCk7IHRyYWNrIGZpZWxkKSB7XG5cdDxmb3JtLWZpZWxkXG5cdFx0Y2xhc3M9XCJ3LWZ1bGxcIlxuXHRcdFtmaWVsZF09XCJmaWVsZFwiPlxuXHQ8L2Zvcm0tZmllbGQ+XG59XG4iXX0=
@@ -101,8 +101,8 @@ export class CodeMirrorComponent {
101
101
  '.cm-activeLineGutter': {
102
102
  backgroundColor: 'transparent',
103
103
  },
104
- '&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '204px' },
105
- '.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '88px' },
104
+ '&': { minHeight: this.props.minHeight ?? '68px', maxHeight: this.props.maxHeight || '204px' },
105
+ '.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '68px' },
106
106
  }),
107
107
  this.getLanguageExtension(),
108
108
  EditorView.updateListener.of((update) => {
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
212
212
  type: ViewChild,
213
213
  args: ['codeContainer', { static: false }]
214
214
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsV0FBVyxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFB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QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFN0YXRlRWZmZWN0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcblx0RWRpdG9yVmlldyxcblx0a2V5bWFwLFxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXG5cdGRyYXdTZWxlY3Rpb24sXG5cdGRyb3BDdXJzb3IsXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxuXHRjcm9zc2hhaXJDdXJzb3IsXG5cdGxpbmVOdW1iZXJzLFxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxuXHRwbGFjZWhvbGRlcixcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgZGVmYXVsdEtleW1hcCwgaGlzdG9yeSwgaGlzdG9yeUtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJztcbmltcG9ydCB7IHNlYXJjaEtleW1hcCwgaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcyB9IGZyb20gJ0Bjb2RlbWlycm9yL3NlYXJjaCc7XG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBsaW50S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGludCc7XG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSAncHJldHRpZXIvcGx1Z2lucy90eXBlc2NyaXB0JztcbmltcG9ydCBlc3RyZWUgZnJvbSAncHJldHRpZXIvcGx1Z2lucy9lc3RyZWUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1zcWwnO1xuZXhwb3J0IGludGVyZmFjZSBDb2RlTWlycm9yUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbicgfCAnc3FsJztcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xuXHRtaW5IZWlnaHQ/OiBzdHJpbmc7XG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1jb2RlbWlycm9yJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYDxkaXYgI2NvZGVDb250YWluZXI+PC9kaXY+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RlTWlycm9yQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnY29kZUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2RlQ29udGFpbmVyITogRWxlbWVudFJlZjtcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHM6IENvZGVNaXJyb3JQcm9wcyA9IHt9O1xuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcblx0dGVtcGxhdGVJbmRleCA9IDA7XG5cblx0Y2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmNvZGVNaXJyb3JQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XG5cdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5mb2N1cygpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XG5cdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXG5cdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XG5cdFx0XHRcdGRvYzogdGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnZhbHVlLFxuXHRcdFx0fSksXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuXHRcdH0pO1xuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xuXHR9XG5cblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcblx0XHRjb25zdCBleHRlbmRzaW9ucyA9IFtcblx0XHRcdGxpbmVOdW1iZXJzKCksXG5cdFx0XHRmb2xkR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMoKSxcblx0XHRcdGhpc3RvcnkoKSxcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcblx0XHRcdGRyb3BDdXJzb3IoKSxcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxuXHRcdFx0c3ludGF4SGlnaGxpZ2h0aW5nKGRlZmF1bHRIaWdobGlnaHRTdHlsZSksXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcblx0XHRcdGF1dG9jb21wbGV0aW9uKCksXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXG5cdFx0XHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXG5cdFx0XHR0aGlzLmZvcm1hdHRpbmcoKSxcblx0XHRcdGtleW1hcC5vZihbXG5cdFx0XHRcdC4uLmNsb3NlQnJhY2tldHNLZXltYXAsXG5cdFx0XHRcdC4uLmRlZmF1bHRLZXltYXAsXG5cdFx0XHRcdC4uLnNlYXJjaEtleW1hcCxcblx0XHRcdFx0Li4uaGlzdG9yeUtleW1hcCxcblx0XHRcdFx0Li4uZm9sZEtleW1hcCxcblx0XHRcdFx0Li4uY29tcGxldGlvbktleW1hcCxcblx0XHRcdFx0Li4ubGludEtleW1hcCxcblx0XHRcdF0pLFxuXHRcdFx0RWRpdG9yVmlldy50aGVtZSh7XG5cdFx0XHRcdCcuY20tZ3V0dGVycyc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdFx0Ym9yZGVyOiAnbm9uZScsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcmJzogeyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JywgbWF4SGVpZ2h0OiB0aGlzLnByb3BzLm1heEhlaWdodCB8fCAnMjA0cHgnIH0sXG5cdFx0XHRcdCcuY20tc2Nyb2xsZXInOiB7IG92ZXJmbG93OiAnYXV0bycsIG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnIH0sXG5cdFx0XHR9KSxcblx0XHRcdHRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSxcblx0XHRcdEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xuXHRcdFx0XHRpZiAodXBkYXRlLnRyYW5zYWN0aW9ucy5zb21lKCh0cikgPT4gdHIuaXNVc2VyRXZlbnQoJ2lucHV0JykgfHwgdHIuaXNVc2VyRXZlbnQoJ2RlbGV0ZScpKSkge1xuXHRcdFx0XHRcdGNvbnN0IG5ld1ZhbHVlID0gdXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpO1xuXHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdF07XG5cdFx0aWYgKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpIHtcblx0XHRcdGV4dGVuZHNpb25zLnVuc2hpZnQocGxhY2Vob2xkZXIodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkge1xuXHRcdFx0ZXh0ZW5kc2lvbnMucHVzaChFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKSk7XG5cdFx0fVxuXHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh7XG5cdFx0XHRlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZihleHRlbmRzaW9ucyksXG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlPy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHQvLyDmlLnov5vliKTmlq3pgLvovpHvvJrlj6rmnInlnKjlgLzkuLogbnVsbCDkuJTnvJbovpHlmajkuLrnqbrml7bmiY3ov5Tlm55cblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsICYmICF0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XG5cdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSB8fCAnJyB9LFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSB7XG5cdFx0c3dpdGNoICh0aGlzLnByb3BzLmxhbmd1YWdlKSB7XG5cdFx0XHRjYXNlICdodG1sJzpcblx0XHRcdFx0cmV0dXJuIGh0bWwoKTtcblx0XHRcdGNhc2UgJ2phdmFzY3JpcHQnOlxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xuXHRcdFx0Y2FzZSAnanNvbic6XG5cdFx0XHRcdHJldHVybiBqc29uKCk7XG5cdFx0XHRjYXNlICdzcWwnOlxuXHRcdFx0XHRyZXR1cm4gc3FsKClcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XG5cdFx0fVxuXHR9XG5cblx0bWluTGluZXMobWluOiBudW1iZXIpIHtcblx0XHRyZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodikgPT4ge1xuXHRcdFx0Y29uc3QgZG9jID0gdi5zdGF0ZS5kb2M7XG5cdFx0XHRjb25zdCBsaW5lQ291bnQgPSBkb2MubGluZXM7XG5cdFx0XHRpZiAobGluZUNvdW50IDwgbWluKSB7XG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVzID0gQXJyYXkobWluICsgMSAtIGxpbmVDb3VudClcblx0XHRcdFx0XHQuZmlsbCgnJylcblx0XHRcdFx0XHQuam9pbignXFxuJyk7XG5cdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdi5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXdMaW5lcyB9LFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0di52aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGZvcm1hdHRpbmcoKSB7XG5cdFx0Y29uc3QgZm9ybWF0Q29tbWFuZCA9ICh2aWV3OiBhbnkpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHByZXR0aWVyXG5cdFx0XHRcdFx0LmZvcm1hdCh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB7XG5cdFx0XHRcdFx0XHRwYXJzZXI6ICd0eXBlc2NyaXB0Jyxcblx0XHRcdFx0XHRcdHBsdWdpbnM6IFt0eXBlc2NyaXB0LCBlc3RyZWVdLFxuXHRcdFx0XHRcdFx0c2VtaTogdHJ1ZSxcblx0XHRcdFx0XHRcdHNpbmdsZVF1b3RlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dGFiV2lkdGg6IDIsXG5cdFx0XHRcdFx0XHRwcmludFdpZHRoOiA4MCxcblx0XHRcdFx0XHRcdHRyYWlsaW5nQ29tbWE6ICdhbGwnLFxuXHRcdFx0XHRcdFx0YXJyb3dQYXJlbnM6ICdhbHdheXMnLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LnRoZW4oKGZvcm1hdHRlZCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogZm9ybWF0dGVkIH0sXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygn5qC85byP5YyW5oiQ5YqfOicsIGZvcm1hdHRlZCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5lcnJvcign5qC85byP5YyW6ZSZ6K+vOicsIGVycm9yKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cmV0dXJuIGtleW1hcC5vZihbXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogJ1NoaWZ0LUFsdC1mJyxcblx0XHRcdFx0bWFjOiAnU2hpZnQtQ21kLWYnLFxuXHRcdFx0XHRydW46IGZvcm1hdENvbW1hbmQsXG5cdFx0XHRcdHByZXZlbnREZWZhdWx0OiB0cnVlLFxuXHRcdFx0fSxcblx0XHRdKTtcblx0fVxufVxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsV0FBVyxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFDckQsT0FBTyxNQUFNLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFnQjNDLE1BQU0sT0FBTyxtQkFBbUI7SUFVL0IsWUFDUyxNQUFxQixFQUNyQixRQUFtQjtRQURuQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFUNUIsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBRTVCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLFdBQU0sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQU16QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsZUFBZ0IsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDckQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFDbEUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ2hILEVBQ0QsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQ25CLElBQUksQ0FDSixDQUFDO2dCQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDaEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUs7YUFDdEMsQ0FBQztZQUNGLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixNQUFNLFdBQVcsR0FBRztZQUNuQixXQUFXLEVBQUU7WUFDYixVQUFVLEVBQUU7WUFDWixxQkFBcUIsRUFBRTtZQUN2QixPQUFPLEVBQUU7WUFDVCxhQUFhLEVBQUU7WUFDZixVQUFVLEVBQUU7WUFDWixXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM1QyxhQUFhLEVBQUU7WUFDZixrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxlQUFlLEVBQUU7WUFDakIsYUFBYSxFQUFFO1lBQ2YsY0FBYyxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFO1lBQ3RCLGVBQWUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRTtZQUMzQix5QkFBeUIsRUFBRTtZQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsR0FBRyxtQkFBbUI7Z0JBQ3RCLEdBQUcsYUFBYTtnQkFDaEIsR0FBRyxZQUFZO2dCQUNmLEdBQUcsYUFBYTtnQkFDaEIsR0FBRyxVQUFVO2dCQUNiLEdBQUcsZ0JBQWdCO2dCQUNuQixHQUFHLFVBQVU7YUFDYixDQUFDO1lBQ0YsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDaEIsYUFBYSxFQUFFO29CQUNkLGVBQWUsRUFBRSxhQUFhO29CQUM5QixNQUFNLEVBQUUsTUFBTTtpQkFDZDtnQkFDRCxzQkFBc0IsRUFBRTtvQkFDdkIsZUFBZSxFQUFFLGFBQWE7aUJBQzlCO2dCQUNELEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRTtnQkFDOUYsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFO2FBQy9FLENBQUM7WUFDRixJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNGLENBQUMsQ0FBQztTQUNGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4QixPQUFPLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQ2hELENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzRCwrQkFBK0I7WUFDL0IsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN4RCxPQUFPO1lBQ1IsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUU7YUFDL0UsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CO1FBQ25CLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixLQUFLLE1BQU07Z0JBQ1YsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNmLEtBQUssWUFBWTtnQkFDaEIsT0FBTyxVQUFVLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU07Z0JBQ1YsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNmLEtBQUssS0FBSztnQkFDVCxPQUFPLEdBQUcsRUFBRSxDQUFBO1lBQ2I7Z0JBQ0MsT0FBTyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0YsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzVCLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7cUJBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUM7cUJBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNiLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNsQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2lCQUMvQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDVCxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQztnQkFDSixRQUFRO3FCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDbEMsTUFBTSxFQUFFLFlBQVk7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7b0JBQzdCLElBQUksRUFBRSxJQUFJO29CQUNWLFdBQVcsRUFBRSxJQUFJO29CQUNqQixRQUFRLEVBQUUsQ0FBQztvQkFDWCxVQUFVLEVBQUUsRUFBRTtvQkFDZCxhQUFhLEVBQUUsS0FBSztvQkFDcEIsV0FBVyxFQUFFLFFBQVE7aUJBQ3JCLENBQUM7cUJBQ0QsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ25CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3QkFDaEQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO3FCQUM3RSxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ3RDLG9DQUFvQztnQkFDckMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsa0NBQWtDO2dCQUNsQyxPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDRixDQUFDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0MsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsY0FBYyxFQUFFLElBQUk7YUFDcEI7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDOytHQXZNVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4VkFIckIsNEJBQTRCLHVzTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YXNjcmlwdCc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcbmltcG9ydCB7IGpzb24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgRWRpdG9yU3RhdGUsIFN0YXRlRWZmZWN0IH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHtcblx0RWRpdG9yVmlldyxcblx0a2V5bWFwLFxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXG5cdGRyYXdTZWxlY3Rpb24sXG5cdGRyb3BDdXJzb3IsXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxuXHRjcm9zc2hhaXJDdXJzb3IsXG5cdGxpbmVOdW1iZXJzLFxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxuXHRwbGFjZWhvbGRlcixcbn0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xuaW1wb3J0IHsgZGVmYXVsdEtleW1hcCwgaGlzdG9yeSwgaGlzdG9yeUtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJztcbmltcG9ydCB7IHNlYXJjaEtleW1hcCwgaGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcyB9IGZyb20gJ0Bjb2RlbWlycm9yL3NlYXJjaCc7XG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBsaW50S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGludCc7XG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSAncHJldHRpZXIvcGx1Z2lucy90eXBlc2NyaXB0JztcbmltcG9ydCBlc3RyZWUgZnJvbSAncHJldHRpZXIvcGx1Z2lucy9lc3RyZWUnO1xuaW1wb3J0IHsgc3FsIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1zcWwnO1xuZXhwb3J0IGludGVyZmFjZSBDb2RlTWlycm9yUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbicgfCAnc3FsJztcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xuXHRtaW5IZWlnaHQ/OiBzdHJpbmc7XG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1jb2RlbWlycm9yJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxuXHR0ZW1wbGF0ZTogYDxkaXYgI2NvZGVDb250YWluZXI+PC9kaXY+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RlTWlycm9yQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnY29kZUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2RlQ29udGFpbmVyITogRWxlbWVudFJlZjtcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHM6IENvZGVNaXJyb3JQcm9wcyA9IHt9O1xuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcblx0dGVtcGxhdGVJbmRleCA9IDA7XG5cblx0Y2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmNvZGVNaXJyb3JQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XG5cdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5mb2N1cygpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XG5cdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXG5cdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XG5cdFx0XHRcdGRvYzogdGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnZhbHVlLFxuXHRcdFx0fSksXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuXHRcdH0pO1xuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xuXHR9XG5cblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcblx0XHRjb25zdCBleHRlbmRzaW9ucyA9IFtcblx0XHRcdGxpbmVOdW1iZXJzKCksXG5cdFx0XHRmb2xkR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMoKSxcblx0XHRcdGhpc3RvcnkoKSxcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcblx0XHRcdGRyb3BDdXJzb3IoKSxcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxuXHRcdFx0c3ludGF4SGlnaGxpZ2h0aW5nKGRlZmF1bHRIaWdobGlnaHRTdHlsZSksXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcblx0XHRcdGF1dG9jb21wbGV0aW9uKCksXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXG5cdFx0XHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyKCksXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXG5cdFx0XHR0aGlzLmZvcm1hdHRpbmcoKSxcblx0XHRcdGtleW1hcC5vZihbXG5cdFx0XHRcdC4uLmNsb3NlQnJhY2tldHNLZXltYXAsXG5cdFx0XHRcdC4uLmRlZmF1bHRLZXltYXAsXG5cdFx0XHRcdC4uLnNlYXJjaEtleW1hcCxcblx0XHRcdFx0Li4uaGlzdG9yeUtleW1hcCxcblx0XHRcdFx0Li4uZm9sZEtleW1hcCxcblx0XHRcdFx0Li4uY29tcGxldGlvbktleW1hcCxcblx0XHRcdFx0Li4ubGludEtleW1hcCxcblx0XHRcdF0pLFxuXHRcdFx0RWRpdG9yVmlldy50aGVtZSh7XG5cdFx0XHRcdCcuY20tZ3V0dGVycyc6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdFx0Ym9yZGVyOiAnbm9uZScsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdCcmJzogeyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc2OHB4JywgbWF4SGVpZ2h0OiB0aGlzLnByb3BzLm1heEhlaWdodCB8fCAnMjA0cHgnIH0sXG5cdFx0XHRcdCcuY20tc2Nyb2xsZXInOiB7IG92ZXJmbG93OiAnYXV0bycsIG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzY4cHgnIH0sXG5cdFx0XHR9KSxcblx0XHRcdHRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSxcblx0XHRcdEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xuXHRcdFx0XHRpZiAodXBkYXRlLnRyYW5zYWN0aW9ucy5zb21lKCh0cikgPT4gdHIuaXNVc2VyRXZlbnQoJ2lucHV0JykgfHwgdHIuaXNVc2VyRXZlbnQoJ2RlbGV0ZScpKSkge1xuXHRcdFx0XHRcdGNvbnN0IG5ld1ZhbHVlID0gdXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpO1xuXHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdF07XG5cdFx0aWYgKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpIHtcblx0XHRcdGV4dGVuZHNpb25zLnVuc2hpZnQocGxhY2Vob2xkZXIodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkge1xuXHRcdFx0ZXh0ZW5kc2lvbnMucHVzaChFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKSk7XG5cdFx0fVxuXHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh7XG5cdFx0XHRlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZihleHRlbmRzaW9ucyksXG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlPy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHQvLyDmlLnov5vliKTmlq3pgLvovpHvvJrlj6rmnInlnKjlgLzkuLogbnVsbCDkuJTnvJbovpHlmajkuLrnqbrml7bmiY3ov5Tlm55cblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsICYmICF0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XG5cdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSB8fCAnJyB9LFxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSB7XG5cdFx0c3dpdGNoICh0aGlzLnByb3BzLmxhbmd1YWdlKSB7XG5cdFx0XHRjYXNlICdodG1sJzpcblx0XHRcdFx0cmV0dXJuIGh0bWwoKTtcblx0XHRcdGNhc2UgJ2phdmFzY3JpcHQnOlxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xuXHRcdFx0Y2FzZSAnanNvbic6XG5cdFx0XHRcdHJldHVybiBqc29uKCk7XG5cdFx0XHRjYXNlICdzcWwnOlxuXHRcdFx0XHRyZXR1cm4gc3FsKClcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XG5cdFx0fVxuXHR9XG5cblx0bWluTGluZXMobWluOiBudW1iZXIpIHtcblx0XHRyZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodikgPT4ge1xuXHRcdFx0Y29uc3QgZG9jID0gdi5zdGF0ZS5kb2M7XG5cdFx0XHRjb25zdCBsaW5lQ291bnQgPSBkb2MubGluZXM7XG5cdFx0XHRpZiAobGluZUNvdW50IDwgbWluKSB7XG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVzID0gQXJyYXkobWluICsgMSAtIGxpbmVDb3VudClcblx0XHRcdFx0XHQuZmlsbCgnJylcblx0XHRcdFx0XHQuam9pbignXFxuJyk7XG5cdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdi5zdGF0ZS51cGRhdGUoe1xuXHRcdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXdMaW5lcyB9LFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0di52aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGZvcm1hdHRpbmcoKSB7XG5cdFx0Y29uc3QgZm9ybWF0Q29tbWFuZCA9ICh2aWV3OiBhbnkpID0+IHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHByZXR0aWVyXG5cdFx0XHRcdFx0LmZvcm1hdCh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB7XG5cdFx0XHRcdFx0XHRwYXJzZXI6ICd0eXBlc2NyaXB0Jyxcblx0XHRcdFx0XHRcdHBsdWdpbnM6IFt0eXBlc2NyaXB0LCBlc3RyZWVdLFxuXHRcdFx0XHRcdFx0c2VtaTogdHJ1ZSxcblx0XHRcdFx0XHRcdHNpbmdsZVF1b3RlOiB0cnVlLFxuXHRcdFx0XHRcdFx0dGFiV2lkdGg6IDIsXG5cdFx0XHRcdFx0XHRwcmludFdpZHRoOiA4MCxcblx0XHRcdFx0XHRcdHRyYWlsaW5nQ29tbWE6ICdhbGwnLFxuXHRcdFx0XHRcdFx0YXJyb3dQYXJlbnM6ICdhbHdheXMnLFxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LnRoZW4oKGZvcm1hdHRlZCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogZm9ybWF0dGVkIH0sXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XG5cdFx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZygn5qC85byP5YyW5oiQ5YqfOicsIGZvcm1hdHRlZCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0Ly8gY29uc29sZS5lcnJvcign5qC85byP5YyW6ZSZ6K+vOicsIGVycm9yKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0cmV0dXJuIGtleW1hcC5vZihbXG5cdFx0XHR7XG5cdFx0XHRcdGtleTogJ1NoaWZ0LUFsdC1mJyxcblx0XHRcdFx0bWFjOiAnU2hpZnQtQ21kLWYnLFxuXHRcdFx0XHRydW46IGZvcm1hdENvbW1hbmQsXG5cdFx0XHRcdHByZXZlbnREZWZhdWx0OiB0cnVlLFxuXHRcdFx0fSxcblx0XHRdKTtcblx0fVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { AsyncPipe } from '@angular/common';
2
+ import { Component, inject } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { Router } from '@angular/router';
5
+ import * as i0 from "@angular/core";
6
+ export class AsyncLinkRenderer {
7
+ constructor() {
8
+ this.router = inject(Router);
9
+ }
10
+ agInit(params) {
11
+ this.params = params;
12
+ this.optionsHook = params.optionsHook;
13
+ this.triggerOptionsHook(params.value);
14
+ }
15
+ triggerOptionsHook(value) {
16
+ if (this.optionsHook) {
17
+ this.optionsHook(value).subscribe((res) => {
18
+ this.label = res?.find((item) => item.value === value)?.label || '';
19
+ });
20
+ }
21
+ }
22
+ onLink() {
23
+ const { url, queryParam } = this.params;
24
+ if (url) {
25
+ let urlStr = typeof url == 'function' ? url(this.params.data) : '';
26
+ let query = typeof queryParam === 'function' ? queryParam(this.params.data) : {};
27
+ urlStr !== '' && this.router.navigate([urlStr], { queryParams: query });
28
+ }
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncLinkRenderer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AsyncLinkRenderer, isStandalone: true, selector: "ng-component", providers: [AsyncPipe], ngImport: i0, template: ` <span
32
+ class="cell-link"
33
+ (click)="onLink()"
34
+ >{{ label }}</span
35
+ >`, isInline: true, styles: [".cell-link{color:var(--p-primary-color);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AsyncLinkRenderer, decorators: [{
38
+ type: Component,
39
+ args: [{ standalone: true, imports: [CommonModule], providers: [AsyncPipe], template: ` <span
40
+ class="cell-link"
41
+ (click)="onLink()"
42
+ >{{ label }}</span
43
+ >`, styles: [".cell-link{color:var(--p-primary-color);cursor:pointer}\n"] }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbGluay1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9jZWxsLXJlbmRlci9hc3luYy1saW5rLXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWtCekMsTUFBTSxPQUFPLGlCQUFpQjtJQWhCOUI7UUFtQkUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQXlCekI7SUF0QkMsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDTixNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksTUFBTSxHQUFHLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxJQUFJLEtBQUssR0FBRyxPQUFPLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakYsTUFBTSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNGLENBQUM7K0dBM0JXLGlCQUFpQjttR0FBakIsaUJBQWlCLDJEQWJqQixDQUFDLFNBQVMsQ0FBQywwQkFPWjs7OztJQUlSLGtJQVpRLFlBQVk7OzRGQWNYLGlCQUFpQjtrQkFoQjdCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLGFBQ1osQ0FBQyxTQUFTLENBQUMsWUFPWjs7OztJQUlSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtBc3luY1BpcGVdLFxuICBzdHlsZXM6IGBcblx0XHQuY2VsbC1saW5rIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdH1cblx0YCxcbiAgdGVtcGxhdGU6IGBcdDxzcGFuXG5cdFx0XHRjbGFzcz1cImNlbGwtbGlua1wiXG5cdFx0XHQoY2xpY2spPVwib25MaW5rKClcIlxuXHRcdFx0Pnt7IGxhYmVsIH19PC9zcGFuXG5cdFx0PmAsXG59KVxuZXhwb3J0IGNsYXNzIEFzeW5jTGlua1JlbmRlcmVyIHtcbiAgbGFiZWw6IGFueTtcbiAgcGFyYW1zITogYW55O1xuICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgb3B0aW9uc0hvb2s/OiAodmFsdWU6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG5cbiAgYWdJbml0KHBhcmFtczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5vcHRpb25zSG9vayA9IHBhcmFtcy5vcHRpb25zSG9vaztcbiAgICB0aGlzLnRyaWdnZXJPcHRpb25zSG9vayhwYXJhbXMudmFsdWUpO1xuICB9XG5cbiAgdHJpZ2dlck9wdGlvbnNIb29rKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zSG9vaykge1xuICAgICAgdGhpcy5vcHRpb25zSG9vayh2YWx1ZSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxhYmVsID0gcmVzPy5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKT8ubGFiZWwgfHwgJyc7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkxpbmsoKSB7XG5cdFx0Y29uc3QgeyB1cmwsIHF1ZXJ5UGFyYW0gfSA9IHRoaXMucGFyYW1zO1xuXHRcdGlmICh1cmwpIHtcblx0XHRcdGxldCB1cmxTdHIgPSB0eXBlb2YgdXJsID09ICdmdW5jdGlvbicgPyB1cmwodGhpcy5wYXJhbXMuZGF0YSkgOiAnJztcblx0XHRcdGxldCBxdWVyeSA9IHR5cGVvZiBxdWVyeVBhcmFtID09PSAnZnVuY3Rpb24nID8gcXVlcnlQYXJhbSh0aGlzLnBhcmFtcy5kYXRhKSA6IHt9O1xuXHRcdFx0dXJsU3RyICE9PSAnJyAmJiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsU3RyXSwgeyBxdWVyeVBhcmFtczogcXVlcnkgfSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=