@eo-sdk/client 8.16.25 → 8.16.28

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.
@@ -82,7 +82,7 @@ export class SplitComponent extends UnsubscribeOnDestroy {
82
82
  this.layoutService.getLayout(`eo.split.layout.${this.cacheLayout}`)
83
83
  .subscribe(layout => {
84
84
  (layout || []).forEach((area) => {
85
- if (area && this.areas.length) {
85
+ if (area && this.areas.length > area.index) {
86
86
  this.areas[area.index].size = area.size;
87
87
  this.areas[area.index].sizeUser = area.size;
88
88
  this.areas[area.index].component.visible = area.visible;
@@ -135,14 +135,14 @@ export class SplitComponent extends UnsubscribeOnDestroy {
135
135
  const item = this.areas.find(a => a.component === area);
136
136
  if (item) {
137
137
  this.refresh();
138
- this.updateCache();
138
+ this.updateLayoutCache();
139
139
  }
140
140
  }
141
141
  showArea(area) {
142
142
  const item = this.areas.find(a => a.component === area);
143
143
  if (item) {
144
144
  this.refresh();
145
- this.updateCache();
145
+ this.updateLayoutCache();
146
146
  }
147
147
  }
148
148
  isLastVisibleArea(area) {
@@ -288,7 +288,7 @@ export class SplitComponent extends UnsubscribeOnDestroy {
288
288
  this.containerSize = 0;
289
289
  this.areaASize = 0;
290
290
  this.areaBSize = 0;
291
- this.updateCache();
291
+ this.updateLayoutCache();
292
292
  this.isDragging = false;
293
293
  this.notify('end');
294
294
  }
@@ -305,7 +305,7 @@ export class SplitComponent extends UnsubscribeOnDestroy {
305
305
  return this.visibleTransitionEndInternal.next(data);
306
306
  }
307
307
  }
308
- updateCache() {
308
+ updateLayoutCache() {
309
309
  if (this.cacheLayout) {
310
310
  let layout = this.areas.map((a, i) => ({ index: i, size: a.size, visible: a.component.visible }));
311
311
  this.layoutService.cacheLayout(`eo.split.layout.${this.cacheLayout}`, layout);
@@ -353,4 +353,4 @@ SplitComponent.propDecorators = {
353
353
  applyCacheLayout: [{ type: Input }],
354
354
  cacheLayout: [{ type: Input }]
355
355
  };
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvc3BsaXQvc3BsaXQvc3BsaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFNBQVMsRUFBd0IsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzNFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBaUIsTUFBTSxFQUN0RyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFjLEVBQUUsSUFBSSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBMEIsTUFBTSxjQUFjLENBQUM7QUFFbEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBc0IvRSxNQUFNLE9BQU8sY0FBZSxTQUFRLG9CQUFvQjtJQTJFdEQsWUFBb0IsS0FBd0IsRUFDeEIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsT0FBZSxFQUNmLGFBQTRCLEVBQzVCLFdBQXdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBTlUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTlFbkMsY0FBUyxHQUFHLFlBQVksQ0FBQztRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25C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QUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OztZQW5ZRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxxckJBQXFDOzthQUV0Qzs7O1lBN0IyRCxpQkFBaUI7WUFDM0UsVUFBVTtZQUFFLFNBQVM7WUFBMEUsTUFBTTtZQU8vRixhQUFhO1lBSGIsV0FBVzs7O3dCQTJCaEIsS0FBSzt5QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSztnQ0FDTCxLQUFLO3dCQUVMLE1BQU07MkJBQ04sTUFBTTtzQkFDTixNQUFNO21DQUVOLE1BQU07aUNBRU4sV0FBVyxTQUFDLGdCQUFnQjtzQ0FJNUIsV0FBVyxTQUFDLHNCQUFzQjt1QkFJbEMsV0FBVyxTQUFDLG9CQUFvQjt5QkFLaEMsV0FBVyxTQUFDLGFBQWE7MEJBSXpCLFdBQVcsU0FBQyxjQUFjO3lCQWMxQixXQUFXLFNBQUMsZ0JBQWdCOytCQVc1QixLQUFLOzBCQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCwgTmdab25lLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3QsIE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VXNlclNlcnZpY2UsIEVvVXNlciwgQXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTcGxpdEFyZWFDb21wb25lbnR9IGZyb20gJy4uL3NwbGl0LWFyZWEvc3BsaXQtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9sYXlvdXQvbGF5b3V0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBcmVhRGF0YSB7XG4gIGNvbXBvbmVudDogU3BsaXRBcmVhQ29tcG9uZW50O1xuICBzaXplVXNlcjogbnVtYmVyIHwgbnVsbDtcbiAgc2l6ZTogbnVtYmVyO1xuICBvcmRlclVzZXI6IG51bWJlciB8IG51bGw7XG4gIG9yZGVyOiBudW1iZXI7XG4gIG1pblBpeGVsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3BsaXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BsaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIGRpcmVjdGlvbiA9ICdob3Jpem9udGFsJztcbiAgQElucHV0KCkgc3dpdGNoYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgZ3V0dGVyU2l6ZSA9IDEwO1xuICBASW5wdXQoKSBndXR0ZXJDb2xvcjogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB2aXNpYmxlVHJhbnNpdGlvbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBkcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PG51bWJlcj4+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGRyYWdQcm9ncmVzcyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4oZmFsc2UpO1xuICBAT3V0cHV0KCkgZHJhZ0VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4oZmFsc2UpO1xuICB2aXNpYmxlVHJhbnNpdGlvbkVuZEludGVybmFsID0gbmV3IFN1YmplY3Q8QXJyYXk8bnVtYmVyPj4oKTtcbiAgQE91dHB1dCgpIHZpc2libGVUcmFuc2l0aW9uRW5kOiBPYnNlcnZhYmxlPEFycmF5PG51bWJlcj4+ID0gdGhpcy52aXNpYmxlVHJhbnNpdGlvbkVuZEludGVybmFsLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwKSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy52ZXJ0aWNhbCcpIGdldCBzdHlsZUZsZXhEaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSAndmVydGljYWwnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpIGdldCBzdHlsZUZsZXhEaXJlY3Rpb25TdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICdyb3cnIDogJ2NvbHVtbic7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5vdHJhbnNpdGlvbicpIGdldCBkcmFnZ2luZygpIHtcbiAgICAvLyBwcmV2ZW50IGFuaW1hdGlvbiBvZiBhcmVhcyB3aGVuIHZpc2libGVUcmFuc2l0aW9uIGlzIGZhbHNlLCBvciByZXNpemluZ1xuICAgIHJldHVybiAhdGhpcy52aXNpYmxlVHJhbnNpdGlvbiB8fCB0aGlzLmlzRHJhZ2dpbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgZ2V0IHN0eWxlV2lkdGgoKSB7XG4gICAgcmV0dXJuICh0aGlzLndpZHRoICYmICFpc05hTih0aGlzLndpZHRoKSAmJiB0aGlzLndpZHRoID4gMCkgPyB0aGlzLndpZHRoICsgJ3B4JyA6ICcxMDAlJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgZ2V0IHN0eWxlSGVpZ2h0KCkge1xuICAgIHJldHVybiAodGhpcy5oZWlnaHQgJiYgIWlzTmFOKHRoaXMuaGVpZ2h0KSAmJiB0aGlzLmhlaWdodCA+IDApID8gdGhpcy5oZWlnaHQgKyAncHgnIDogJzEwMCUnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdmlzaWJsZUFyZWFzKCk6IElBcmVhRGF0YVtdIHtcbiAgICByZXR1cm4gdGhpcy5hcmVhcy5maWx0ZXIoYSA9PiBhLmNvbXBvbmVudC52aXNpYmxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG5iR3V0dGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVBcmVhcy5sZW5ndGggLSAxO1xuICB9XG5cbiAgcHVibGljIGFyZWFzOiBBcnJheTxJQXJlYURhdGE+ID0gW107XG4gIHByaXZhdGUgbWluUGVyY2VudCA9IDU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZHJhZ2dpbmcnKVxuICBpc0RyYWdnaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgY29udGFpbmVyU2l6ZSA9IDA7XG4gIHByaXZhdGUgYXJlYUFTaXplID0gMDtcbiAgcHJpdmF0ZSBhcmVhQlNpemUgPSAwO1xuICBwcml2YXRlIGRpcmVjdGlvbkluZGV4ID0gMTtcbiAgcHJpdmF0ZSBldmVudHNEcmFnRmN0OiBBcnJheTxGdW5jdGlvbj4gPSBbXTtcblxuICBwcml2YXRlIF9jYWNoZUxheW91dDogYW55ID0gZmFsc2U7XG4gIHByaXZhdGUgX2FmdGVyVmlld0luaXQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBhcHBseUNhY2hlTGF5b3V0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgY2FjaGVMYXlvdXQodmFsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5hcHBseUNhY2hlTGF5b3V0KSB7XG4gICAgICAodmFsICYmIHZhbC5zdWJzY3JpYmUgPyB2YWwgOiBvYnNlcnZhYmxlT2YodmFsKSlcbiAgICAgICAgLnN1YnNjcmliZShjYWNoZUxheW91dCA9PiB7XG4gICAgICAgICAgdGhpcy5fY2FjaGVMYXlvdXQgPSBjYWNoZUxheW91dDtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FjaGVMYXlvdXQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVMYXlvdXQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudXNlclNlcnZpY2UudXNlciQucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh1c2VyOiBFb1VzZXIpID0+IHtcbiAgICAgIHRoaXMuZGlyZWN0aW9uSW5kZXggPSAodXNlci51aURpcmVjdGlvbiA9PT0gJ3J0bCcpID8gLTEgOiAxO1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlRGlyZWN0aW9uKCl7XG4gICAgaWYodGhpcy5zd2l0Y2hhYmxlKXtcbiAgICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcbiAgICB9XG4gIH1cblxuICB1cGRhdGVMYXlvdXQoKSB7XG4gICAgaWYgKHRoaXMuX2FmdGVyVmlld0luaXQgJiYgdGhpcy5jYWNoZUxheW91dCkge1xuICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmdldExheW91dChgZW8uc3BsaXQubGF5b3V0LiR7dGhpcy5jYWNoZUxheW91dH1gKVxuICAgICAgICAuc3Vic2NyaWJlKGxheW91dCA9PiB7XG4gICAgICAgICAgKGxheW91dCB8fCBbXSkuZm9yRWFjaCgoYXJlYSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyZWEgJiYgdGhpcy5hcmVhcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hcmVhc1thcmVhLmluZGV4XS5zaXplID0gYXJlYS5zaXplO1xuICAgICAgICAgICAgICB0aGlzLmFyZWFzW2FyZWEuaW5kZXhdLnNpemVVc2VyID0gYXJlYS5zaXplO1xuICAgICAgICAgICAgICB0aGlzLmFyZWFzW2FyZWEuaW5kZXhdLmNvbXBvbmVudC52aXNpYmxlID0gYXJlYS52aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS52aXNpYmlsaXR5VXBkYXRlKCk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoU3R5bGVTaXplcygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fYWZ0ZXJWaWV3SW5pdCA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVMYXlvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2d1dHRlclNpemUnXSB8fCBjaGFuZ2VzWydkaXNhYmxlZCddKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkQXJlYShjb21wb25lbnQ6IFNwbGl0QXJlYUNvbXBvbmVudCwgb3JkZXJVc2VyOiBudW1iZXIgfCBudWxsLCBzaXplVXNlcjogbnVtYmVyIHwgbnVsbCwgbWluUGl4ZWw6IG51bWJlcikge1xuICAgIHRoaXMuYXJlYXMucHVzaCh7XG4gICAgICBjb21wb25lbnQsXG4gICAgICBvcmRlclVzZXIsXG4gICAgICBvcmRlcjogLTEsXG4gICAgICBzaXplVXNlcixcbiAgICAgIHNpemU6IC0xLFxuICAgICAgbWluUGl4ZWxcbiAgICB9KTtcblxuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFyZWEoY29tcG9uZW50OiBTcGxpdEFyZWFDb21wb25lbnQsIG9yZGVyVXNlcjogbnVtYmVyIHwgbnVsbCwgc2l6ZVVzZXI6IG51bWJlciB8IG51bGwsIG1pblBpeGVsOiBudW1iZXIpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5hcmVhcy5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IGNvbXBvbmVudCk7XG5cbiAgICBpZiAoaXRlbSkge1xuICAgICAgaXRlbS5vcmRlclVzZXIgPSBvcmRlclVzZXI7XG4gICAgICBpdGVtLnNpemVVc2VyID0gc2l6ZVVzZXI7XG4gICAgICBpdGVtLm1pblBpeGVsID0gbWluUGl4ZWw7XG5cbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVBcmVhKGFyZWE6IFNwbGl0QXJlYUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmFyZWFzLmZpbmQoYSA9PiBhLmNvbXBvbmVudCA9PT0gYXJlYSk7XG5cbiAgICBpZiAoaXRlbSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFyZWFzLmluZGV4T2YoaXRlbSk7XG4gICAgICB0aGlzLmFyZWFzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB0aGlzLmFyZWFzLmZvckVhY2goKGEsIGkpID0+IGEub3JkZXIgPSBpICogMik7XG5cbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlQXJlYShhcmVhOiBTcGxpdEFyZWFDb21wb25lbnQpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5hcmVhcy5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IGFyZWEpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93QXJlYShhcmVhOiBTcGxpdEFyZWFDb21wb25lbnQpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5hcmVhcy5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IGFyZWEpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0xhc3RWaXNpYmxlQXJlYShhcmVhOiBJQXJlYURhdGEpIHtcbiAgICBjb25zdCB2aXNpYmxlQXJlYXMgPSB0aGlzLnZpc2libGVBcmVhcztcbiAgICByZXR1cm4gdmlzaWJsZUFyZWFzLmxlbmd0aCA+IDAgPyBhcmVhID09PSB2aXNpYmxlQXJlYXNbdmlzaWJsZUFyZWFzLmxlbmd0aCAtIDFdIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2goKSB7XG4gICAgdGhpcy5zdG9wRHJhZ2dpbmcoKTtcblxuICAgIGNvbnN0IHZpc2libGVBcmVhcyA9IHRoaXMudmlzaWJsZUFyZWFzO1xuXG4gICAgLy8gT1JERVJTOiBTZXQgY3NzICdvcmRlcicgcHJvcGVydHkgZGVwZW5kaW5nIG9uIHVzZXIgaW5wdXQgb3IgYWRkZWQgb3JkZXJcbiAgICBjb25zdCBuYkNvcnJlY3RPcmRlciA9IHRoaXMuYXJlYXMuZmlsdGVyKGEgPT4gYS5vcmRlclVzZXIgIT09IG51bGwgJiYgIWlzTmFOKGEub3JkZXJVc2VyKSkubGVuZ3RoO1xuICAgIGlmIChuYkNvcnJlY3RPcmRlciA9PT0gdGhpcy5hcmVhcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYXJlYXMuc29ydCgoYSwgYikgPT4gK2Eub3JkZXJVc2VyIC0gK2Iub3JkZXJVc2VyKTtcbiAgICB9XG5cbiAgICB0aGlzLmFyZWFzLmZvckVhY2goKGEsIGkpID0+IHtcbiAgICAgIGEub3JkZXIgPSBpICogMjtcbiAgICAgIGEuY29tcG9uZW50LnNldFN0eWxlKCdvcmRlcicsIGEub3JkZXIpO1xuICAgIH0pO1xuXG4gICAgLy8gU0laRVM6IFNldCBjc3MgJ2ZsZXgtYmFzaXMnIHByb3BlcnR5IGRlcGVuZGluZyBvbiB1c2VyIGlucHV0IG9yIGVxdWFsIHNpemVzXG4gICAgY29uc3QgbmJDb3JyZWN0U2l6ZSA9IHMgPT4gcyAhPT0gbnVsbCAmJiAhaXNOYU4ocykgJiYgcyA+PSB0aGlzLm1pblBlcmNlbnQgPyBOdW1iZXIocykgOiBOdW1iZXIoKDEwMCAvIHZpc2libGVBcmVhcy5sZW5ndGgpLnRvRml4ZWQoMykpO1xuICAgIGNvbnN0IHRvdGFsU2l6ZSA9IHZpc2libGVBcmVhcy5tYXAoYSA9PiBhLnNpemVVc2VyKS5yZWR1Y2UoKGFjYywgcykgPT4gYWNjICsgbmJDb3JyZWN0U2l6ZShzKSwgMCk7XG5cbiAgICB2aXNpYmxlQXJlYXMuZm9yRWFjaChhID0+IGEuc2l6ZSA9IG5iQ29ycmVjdFNpemUoYS5zaXplVXNlcikpO1xuXG4gICAgaWYgKE1hdGgucm91bmQodG90YWxTaXplKSAhPT0gMTAwICYmIHZpc2libGVBcmVhcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGxhc3QgPSB2aXNpYmxlQXJlYXNbdmlzaWJsZUFyZWFzLmxlbmd0aCAtIDFdO1xuICAgICAgbGFzdC5zaXplID0gbGFzdC5zaXplIC0gdG90YWxTaXplICsgMTAwO1xuICAgIH1cblxuICAgIHRoaXMucmVmcmVzaFN0eWxlU2l6ZXMoKTtcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoU3R5bGVTaXplcygpIHtcbiAgICAvL3RoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVBcmVhcyA9IHRoaXMudmlzaWJsZUFyZWFzO1xuXG4gICAgY29uc3QgZiA9IHRoaXMuZ3V0dGVyU2l6ZSAqIHRoaXMubmJHdXR0ZXJzIC8gdmlzaWJsZUFyZWFzLmxlbmd0aDtcbiAgICB2aXNpYmxlQXJlYXMuZm9yRWFjaChhID0+IGEuY29tcG9uZW50LnNldFN0eWxlKCdmbGV4LWJhc2lzJywgYGNhbGMoICR7YS5zaXplfSUgLSAke2Z9cHggKWApKTtcbiAgICAvL30pO1xuICAgIC8vfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnREcmFnZ2luZyhzdGFydEV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgZ3V0dGVyT3JkZXI6IG51bWJlcikge1xuICAgIHN0YXJ0RXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXJlYUEgPSB0aGlzLnZpc2libGVBcmVhcy5maWx0ZXIoYSA9PiBhLm9yZGVyIDwgZ3V0dGVyT3JkZXIpLnBvcCgpO1xuICAgIGNvbnN0IGFyZWFCID0gdGhpcy52aXNpYmxlQXJlYXMuZmlsdGVyKGEgPT4gYS5vcmRlciA+IGd1dHRlck9yZGVyKVswXTtcbiAgICBpZiAoIWFyZWFBIHx8ICFhcmVhQikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3AgPSAodGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyAnb2Zmc2V0V2lkdGgnIDogJ29mZnNldEhlaWdodCc7XG4gICAgdGhpcy5jb250YWluZXJTaXplID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRbcHJvcF07XG4gICAgdGhpcy5hcmVhQVNpemUgPSB0aGlzLmNvbnRhaW5lclNpemUgKiBhcmVhQS5zaXplIC8gMTAwO1xuICAgIHRoaXMuYXJlYUJTaXplID0gdGhpcy5jb250YWluZXJTaXplICogYXJlYUIuc2l6ZSAvIDEwMDtcblxuICAgIGxldCBzdGFydDogUG9pbnQ7XG4gICAgaWYgKHN0YXJ0RXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XG4gICAgICBzdGFydCA9IHtcbiAgICAgICAgeDogc3RhcnRFdmVudC5zY3JlZW5YLFxuICAgICAgICB5OiBzdGFydEV2ZW50LnNjcmVlbllcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChzdGFydEV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkge1xuICAgICAgc3RhcnQgPSB7XG4gICAgICAgIHg6IHN0YXJ0RXZlbnQudG91Y2hlc1swXS5zY3JlZW5YLFxuICAgICAgICB5OiBzdGFydEV2ZW50LnRvdWNoZXNbMF0uc2NyZWVuWVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuXG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKF8gPT4ge1xuICAgICAgdGhpcy5ldmVudHNEcmFnRmN0LnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ21vdXNlbW92ZScsIGUgPT4gdGhpcy5kcmFnRXZlbnQoZSwgc3RhcnQsIGFyZWFBLCBhcmVhQikpKTtcbiAgICAgIHRoaXMuZXZlbnRzRHJhZ0ZjdC5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICd0b3VjaG1vdmUnLCBlID0+IHRoaXMuZHJhZ0V2ZW50KGUsIHN0YXJ0LCBhcmVhQSwgYXJlYUIpKSk7XG4gICAgICB0aGlzLmV2ZW50c0RyYWdGY3QucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnbW91c2V1cCcsIGUgPT4gdGhpcy5zdG9wRHJhZ2dpbmcoKSkpO1xuICAgICAgdGhpcy5ldmVudHNEcmFnRmN0LnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3RvdWNoZW5kJywgZSA9PiB0aGlzLnN0b3BEcmFnZ2luZygpKSk7XG4gICAgICB0aGlzLmV2ZW50c0RyYWdGY3QucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAndG91Y2hjYW5jZWwnLCBlID0+IHRoaXMuc3RvcERyYWdnaW5nKCkpKTtcbiAgICB9KTtcblxuICAgIGFyZWFBLmNvbXBvbmVudC5sb2NrRXZlbnRzKCk7XG4gICAgYXJlYUIuY29tcG9uZW50LmxvY2tFdmVudHMoKTtcblxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5ub3RpZnkoJ3N0YXJ0Jyk7XG4gIH1cblxuICBwcml2YXRlIGRyYWdFdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIHN0YXJ0OiBQb2ludCwgYXJlYUE6IElBcmVhRGF0YSwgYXJlYUI6IElBcmVhRGF0YSkge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGVuZDogUG9pbnQ7XG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgZW5kID0ge1xuICAgICAgICB4OiBldmVudC5zY3JlZW5YLFxuICAgICAgICB5OiBldmVudC5zY3JlZW5ZXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBUb3VjaEV2ZW50KSB7XG4gICAgICBlbmQgPSB7XG4gICAgICAgIHg6IGV2ZW50LnRvdWNoZXNbMF0uc2NyZWVuWCxcbiAgICAgICAgeTogZXZlbnQudG91Y2hlc1swXS5zY3JlZW5ZXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kcmFnKHN0YXJ0LCBlbmQsIGFyZWFBLCBhcmVhQik7XG4gIH1cblxuICBwcml2YXRlIGRyYWcoc3RhcnQ6IFBvaW50LCBlbmQ6IFBvaW50LCBhcmVhQTogSUFyZWFEYXRhLCBhcmVhQjogSUFyZWFEYXRhKSB7XG4gICAgY29uc3Qgb2Zmc2V0UGl4ZWwgPSAodGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyAoc3RhcnQueCAtIGVuZC54KSA6IChzdGFydC55IC0gZW5kLnkpO1xuXG4gICAgY29uc3QgbmV3U2l6ZVBpeGVsQSA9IHRoaXMuYXJlYUFTaXplIC0gb2Zmc2V0UGl4ZWwgKiB0aGlzLmRpcmVjdGlvbkluZGV4O1xuICAgIGNvbnN0IG5ld1NpemVQaXhlbEIgPSB0aGlzLmFyZWFCU2l6ZSArIG9mZnNldFBpeGVsICogdGhpcy5kaXJlY3Rpb25JbmRleDtcblxuICAgIGlmIChuZXdTaXplUGl4ZWxBIDw9IGFyZWFBLm1pblBpeGVsIHx8IG5ld1NpemVQaXhlbEIgPCBhcmVhQi5taW5QaXhlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBuZXdTaXplUGVyY2VudEEgPSBuZXdTaXplUGl4ZWxBIC8gdGhpcy5jb250YWluZXJTaXplICogMTAwO1xuICAgIGxldCBuZXdTaXplUGVyY2VudEIgPSBuZXdTaXplUGl4ZWxCIC8gdGhpcy5jb250YWluZXJTaXplICogMTAwO1xuXG4gICAgaWYgKG5ld1NpemVQZXJjZW50QSA8PSB0aGlzLm1pblBlcmNlbnQpIHtcbiAgICAgIG5ld1NpemVQZXJjZW50QSA9IHRoaXMubWluUGVyY2VudDtcbiAgICAgIG5ld1NpemVQZXJjZW50QiA9IGFyZWFBLnNpemUgKyBhcmVhQi5zaXplIC0gdGhpcy5taW5QZXJjZW50O1xuICAgIH0gZWxzZSBpZiAobmV3U2l6ZVBlcmNlbnRCIDw9IHRoaXMubWluUGVyY2VudCkge1xuICAgICAgbmV3U2l6ZVBlcmNlbnRCID0gdGhpcy5taW5QZXJjZW50O1xuICAgICAgbmV3U2l6ZVBlcmNlbnRBID0gYXJlYUEuc2l6ZSArIGFyZWFCLnNpemUgLSB0aGlzLm1pblBlcmNlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1NpemVQZXJjZW50QSA9IE51bWJlcihuZXdTaXplUGVyY2VudEEudG9GaXhlZCgzKSk7XG4gICAgICBuZXdTaXplUGVyY2VudEIgPSBOdW1iZXIoKGFyZWFBLnNpemUgKyBhcmVhQi5zaXplIC0gbmV3U2l6ZVBlcmNlbnRBKS50b0ZpeGVkKDMpKTtcbiAgICB9XG5cbiAgICBhcmVhQS5zaXplID0gbmV3U2l6ZVBlcmNlbnRBO1xuICAgIGFyZWFCLnNpemUgPSBuZXdTaXplUGVyY2VudEI7XG4gICAgaWYgKHRoaXMuYXJlYXMubGVuZ3RoID09PSB0aGlzLnZpc2libGVBcmVhcy5sZW5ndGgpIHtcbiAgICAgIGFyZWFBLnNpemVVc2VyID0gbmV3U2l6ZVBlcmNlbnRBO1xuICAgICAgYXJlYUIuc2l6ZVVzZXIgPSBuZXdTaXplUGVyY2VudEI7XG4gICAgfVxuXG4gICAgdGhpcy5yZWZyZXNoU3R5bGVTaXplcygpO1xuICAgIHRoaXMubm90aWZ5KCdwcm9ncmVzcycpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRHJhZ2dpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFyZWFzLmZvckVhY2goYSA9PiBhLmNvbXBvbmVudC51bmxvY2tFdmVudHMoKSk7XG5cbiAgICB3aGlsZSAodGhpcy5ldmVudHNEcmFnRmN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZjdCA9IHRoaXMuZXZlbnRzRHJhZ0ZjdC5wb3AoKTtcbiAgICAgIGlmIChmY3QpIHtcbiAgICAgICAgZmN0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jb250YWluZXJTaXplID0gMDtcbiAgICB0aGlzLmFyZWFBU2l6ZSA9IDA7XG4gICAgdGhpcy5hcmVhQlNpemUgPSAwO1xuXG4gICAgdGhpcy51cGRhdGVDYWNoZSgpO1xuXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy5ub3RpZnkoJ2VuZCcpO1xuICB9XG5cbiAgbm90aWZ5KHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGE6IEFycmF5PG51bWJlcj4gPSB0aGlzLnZpc2libGVBcmVhcy5tYXAoYSA9PiBhLnNpemUpO1xuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgIHJldHVybiB0aGlzLmRyYWdTdGFydC5lbWl0KGRhdGEpO1xuXG4gICAgICBjYXNlICdwcm9ncmVzcyc6XG4gICAgICAgIHJldHVybiB0aGlzLmRyYWdQcm9ncmVzcy5lbWl0KGRhdGEpO1xuXG4gICAgICBjYXNlICdlbmQnOlxuICAgICAgICByZXR1cm4gdGhpcy5kcmFnRW5kLmVtaXQoZGF0YSk7XG5cbiAgICAgIGNhc2UgJ3Zpc2libGVUcmFuc2l0aW9uRW5kJzpcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZVRyYW5zaXRpb25FbmRJbnRlcm5hbC5uZXh0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2FjaGUoKSB7XG4gICAgaWYgKHRoaXMuY2FjaGVMYXlvdXQpIHtcbiAgICAgIGxldCBsYXlvdXQgPSB0aGlzLmFyZWFzLm1hcCgoYSwgaSkgPT4gKHtpbmRleDogaSwgc2l6ZTogYS5zaXplLCB2aXNpYmxlOiBhLmNvbXBvbmVudC52aXNpYmxlfSkpO1xuICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmNhY2hlTGF5b3V0KGBlby5zcGxpdC5sYXlvdXQuJHt0aGlzLmNhY2hlTGF5b3V0fWAsIGxheW91dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcERyYWdnaW5nKCk7XG4gIH1cblxufVxuIl19
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvc3BsaXQvc3BsaXQvc3BsaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUNMLFNBQVMsRUFBd0IsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQzNFLFVBQVUsRUFBRSxTQUFTLEVBQWlCLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBaUIsTUFBTSxFQUN0RyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFjLEVBQUUsSUFBSSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBMEIsTUFBTSxjQUFjLENBQUM7QUFFbEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBc0IvRSxNQUFNLE9BQU8sY0FBZSxTQUFRLG9CQUFvQjtJQTJFdEQsWUFBb0IsS0FBd0IsRUFDeEIsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsT0FBZSxFQUNmLGFBQTRCLEVBQzVCLFdBQXdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBTlUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQTlFbkMsY0FBUyxHQUFHLFlBQVksQ0FBQztRQUN6QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR25CLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFekIsY0FBUyxHQUFHLElBQUksWUFBWSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLElBQUksWUFBWSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUN0RCxZQUFPLEdBQUcsSUFBSSxZQUFZLENBQWdCLEtBQUssQ0FBQyxDQUFDO1FBQzNELGlDQUE0QixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ2xELHlCQUFvQixHQUE4QixJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBK0I3SCxVQUFLLEdBQXFCLEVBQUUsQ0FBQztRQUM1QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDWCxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGtCQUFhLEdBQW9CLEVBQUUsQ0FBQztRQUVwQyxpQkFBWSxHQUFRLEtBQUssQ0FBQztRQUMxQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV0QixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUF3Qi9CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtZQUMxRixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFyRUQsSUFBbUMsa0JBQWtCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQXlDLHVCQUF1QjtRQUM5RCxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBdUMsUUFBUTtRQUM3QywwRUFBMEU7UUFDMUUsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFnQyxVQUFVO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFpQyxXQUFXO1FBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9GLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBaUJELElBQWEsV0FBVyxDQUFDLEdBQVE7UUFDL0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzdDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBZUQsZUFBZTtRQUNiLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBQztZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQTtTQUM3RTtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztpQkFDaEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTt3QkFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7cUJBQ3pEO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFTSxPQUFPLENBQUMsU0FBNkIsRUFBRSxTQUF3QixFQUFFLFFBQXVCLEVBQUUsUUFBZ0I7UUFDL0csSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDZCxTQUFTO1lBQ1QsU0FBUztZQUNULEtBQUssRUFBRSxDQUFDLENBQUM7WUFDVCxRQUFRO1lBQ1IsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNSLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxTQUE2QixFQUFFLFNBQXdCLEVBQUUsUUFBdUIsRUFBRSxRQUFnQjtRQUNsSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFN0QsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUV6QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQXdCO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUV4RCxJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTlDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsSUFBd0I7UUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBRXhELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQXdCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUV4RCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQWU7UUFDdEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxPQUFPLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRixDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZDLDBFQUEwRTtRQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNsRyxJQUFJLGNBQWMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4RDtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFCLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsOEVBQThFO1FBQzlFLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hJLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3hELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLDBCQUEwQjtRQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ2pFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3RixLQUFLO1FBQ0wsS0FBSztJQUNQLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBbUMsRUFBRSxXQUFtQjtRQUMzRSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUV2RCxJQUFJLEtBQVksQ0FBQztRQUNqQixJQUFJLFVBQVUsWUFBWSxVQUFVLEVBQUU7WUFDcEMsS0FBSyxHQUFHO2dCQUNOLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDckIsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2FBQ3RCLENBQUM7U0FDSDthQUFNLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtZQUMzQyxLQUFLLEdBQUc7Z0JBQ04sQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDaEMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTzthQUNqQyxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU87U0FDUjtRQUdELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBOEIsRUFBRSxLQUFZLEVBQUUsS0FBZ0IsRUFBRSxLQUFnQjtRQUNoRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLEdBQVUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLFVBQVUsRUFBRTtZQUMvQixHQUFHLEdBQUc7Z0JBQ0osQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUNoQixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU87YUFDakIsQ0FBQztTQUNIO2FBQU0sSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO1lBQ3RDLEdBQUcsR0FBRztnQkFDSixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2dCQUMzQixDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQzVCLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sSUFBSSxDQUFDLEtBQVksRUFBRSxHQUFVLEVBQUUsS0FBZ0IsRUFBRSxLQUFnQjtRQUN2RSxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN6RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRXpFLElBQUksYUFBYSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDckUsT0FBTztTQUNSO1FBRUQsSUFBSSxlQUFlLEdBQUcsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQy9ELElBQUksZUFBZSxHQUFHLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUUvRCxJQUFJLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3RDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2xDLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUM3RDthQUFNLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0MsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbEMsZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQzdEO2FBQU07WUFDTCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxlQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xGO1FBRUQsS0FBSyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUNsRCxLQUFLLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztZQUNqQyxLQUFLLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFcEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxHQUFHLEVBQUUsQ0FBQzthQUNQO1NBQ0Y7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixNQUFNLElBQUksR0FBa0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0QsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuQyxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV0QyxLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqQyxLQUFLLHNCQUFzQjtnQkFDekIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OztZQW5ZRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxxckJBQXFDOzthQUV0Qzs7O1lBN0IyRCxpQkFBaUI7WUFDM0UsVUFBVTtZQUFFLFNBQVM7WUFBMEUsTUFBTTtZQU8vRixhQUFhO1lBSGIsV0FBVzs7O3dCQTJCaEIsS0FBSzt5QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSztnQ0FDTCxLQUFLO3dCQUVMLE1BQU07MkJBQ04sTUFBTTtzQkFDTixNQUFNO21DQUVOLE1BQU07aUNBRU4sV0FBVyxTQUFDLGdCQUFnQjtzQ0FJNUIsV0FBVyxTQUFDLHNCQUFzQjt1QkFJbEMsV0FBVyxTQUFDLG9CQUFvQjt5QkFLaEMsV0FBVyxTQUFDLGFBQWE7MEJBSXpCLFdBQVcsU0FBQyxjQUFjO3lCQWMxQixXQUFXLFNBQUMsZ0JBQWdCOytCQVc1QixLQUFLOzBCQUVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rha2VVbnRpbCwgZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQWZ0ZXJWaWV3SW5pdCwgTmdab25lLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3QsIE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7VXNlclNlcnZpY2UsIEVvVXNlciwgQXBwQ2FjaGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtTcGxpdEFyZWFDb21wb25lbnR9IGZyb20gJy4uL3NwbGl0LWFyZWEvc3BsaXQtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9sYXlvdXQvbGF5b3V0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBcmVhRGF0YSB7XG4gIGNvbXBvbmVudDogU3BsaXRBcmVhQ29tcG9uZW50O1xuICBzaXplVXNlcjogbnVtYmVyIHwgbnVsbDtcbiAgc2l6ZTogbnVtYmVyO1xuICBvcmRlclVzZXI6IG51bWJlciB8IG51bGw7XG4gIG9yZGVyOiBudW1iZXI7XG4gIG1pblBpeGVsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3BsaXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BsaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIGRpcmVjdGlvbiA9ICdob3Jpem9udGFsJztcbiAgQElucHV0KCkgc3dpdGNoYWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuICBASW5wdXQoKSBoZWlnaHQ6IG51bWJlcjtcbiAgQElucHV0KCkgZ3V0dGVyU2l6ZSA9IDEwO1xuICBASW5wdXQoKSBndXR0ZXJDb2xvcjogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB2aXNpYmxlVHJhbnNpdGlvbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBkcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PG51bWJlcj4+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGRyYWdQcm9ncmVzcyA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4oZmFsc2UpO1xuICBAT3V0cHV0KCkgZHJhZ0VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8bnVtYmVyPj4oZmFsc2UpO1xuICB2aXNpYmxlVHJhbnNpdGlvbkVuZEludGVybmFsID0gbmV3IFN1YmplY3Q8QXJyYXk8bnVtYmVyPj4oKTtcbiAgQE91dHB1dCgpIHZpc2libGVUcmFuc2l0aW9uRW5kOiBPYnNlcnZhYmxlPEFycmF5PG51bWJlcj4+ID0gdGhpcy52aXNpYmxlVHJhbnNpdGlvbkVuZEludGVybmFsLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwKSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy52ZXJ0aWNhbCcpIGdldCBzdHlsZUZsZXhEaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSAndmVydGljYWwnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpIGdldCBzdHlsZUZsZXhEaXJlY3Rpb25TdHlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICdyb3cnIDogJ2NvbHVtbic7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5vdHJhbnNpdGlvbicpIGdldCBkcmFnZ2luZygpIHtcbiAgICAvLyBwcmV2ZW50IGFuaW1hdGlvbiBvZiBhcmVhcyB3aGVuIHZpc2libGVUcmFuc2l0aW9uIGlzIGZhbHNlLCBvciByZXNpemluZ1xuICAgIHJldHVybiAhdGhpcy52aXNpYmxlVHJhbnNpdGlvbiB8fCB0aGlzLmlzRHJhZ2dpbmc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgZ2V0IHN0eWxlV2lkdGgoKSB7XG4gICAgcmV0dXJuICh0aGlzLndpZHRoICYmICFpc05hTih0aGlzLndpZHRoKSAmJiB0aGlzLndpZHRoID4gMCkgPyB0aGlzLndpZHRoICsgJ3B4JyA6ICcxMDAlJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0JykgZ2V0IHN0eWxlSGVpZ2h0KCkge1xuICAgIHJldHVybiAodGhpcy5oZWlnaHQgJiYgIWlzTmFOKHRoaXMuaGVpZ2h0KSAmJiB0aGlzLmhlaWdodCA+IDApID8gdGhpcy5oZWlnaHQgKyAncHgnIDogJzEwMCUnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdmlzaWJsZUFyZWFzKCk6IElBcmVhRGF0YVtdIHtcbiAgICByZXR1cm4gdGhpcy5hcmVhcy5maWx0ZXIoYSA9PiBhLmNvbXBvbmVudC52aXNpYmxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG5iR3V0dGVycygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVBcmVhcy5sZW5ndGggLSAxO1xuICB9XG5cbiAgcHVibGljIGFyZWFzOiBBcnJheTxJQXJlYURhdGE+ID0gW107XG4gIHByaXZhdGUgbWluUGVyY2VudCA9IDU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuZHJhZ2dpbmcnKVxuICBpc0RyYWdnaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgY29udGFpbmVyU2l6ZSA9IDA7XG4gIHByaXZhdGUgYXJlYUFTaXplID0gMDtcbiAgcHJpdmF0ZSBhcmVhQlNpemUgPSAwO1xuICBwcml2YXRlIGRpcmVjdGlvbkluZGV4ID0gMTtcbiAgcHJpdmF0ZSBldmVudHNEcmFnRmN0OiBBcnJheTxGdW5jdGlvbj4gPSBbXTtcblxuICBwcml2YXRlIF9jYWNoZUxheW91dDogYW55ID0gZmFsc2U7XG4gIHByaXZhdGUgX2FmdGVyVmlld0luaXQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBhcHBseUNhY2hlTGF5b3V0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgY2FjaGVMYXlvdXQodmFsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5hcHBseUNhY2hlTGF5b3V0KSB7XG4gICAgICAodmFsICYmIHZhbC5zdWJzY3JpYmUgPyB2YWwgOiBvYnNlcnZhYmxlT2YodmFsKSlcbiAgICAgICAgLnN1YnNjcmliZShjYWNoZUxheW91dCA9PiB7XG4gICAgICAgICAgdGhpcy5fY2FjaGVMYXlvdXQgPSBjYWNoZUxheW91dDtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FjaGVMYXlvdXQoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVMYXlvdXQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMudXNlclNlcnZpY2UudXNlciQucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSkuc3Vic2NyaWJlKCh1c2VyOiBFb1VzZXIpID0+IHtcbiAgICAgIHRoaXMuZGlyZWN0aW9uSW5kZXggPSAodXNlci51aURpcmVjdGlvbiA9PT0gJ3J0bCcpID8gLTEgOiAxO1xuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlRGlyZWN0aW9uKCl7XG4gICAgaWYodGhpcy5zd2l0Y2hhYmxlKXtcbiAgICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcbiAgICB9XG4gIH1cblxuICB1cGRhdGVMYXlvdXQoKSB7XG4gICAgaWYgKHRoaXMuX2FmdGVyVmlld0luaXQgJiYgdGhpcy5jYWNoZUxheW91dCkge1xuICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmdldExheW91dChgZW8uc3BsaXQubGF5b3V0LiR7dGhpcy5jYWNoZUxheW91dH1gKVxuICAgICAgICAuc3Vic2NyaWJlKGxheW91dCA9PiB7XG4gICAgICAgICAgKGxheW91dCB8fCBbXSkuZm9yRWFjaCgoYXJlYSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFyZWEgJiYgdGhpcy5hcmVhcy5sZW5ndGggPiBhcmVhLmluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuYXJlYXNbYXJlYS5pbmRleF0uc2l6ZSA9IGFyZWEuc2l6ZTtcbiAgICAgICAgICAgICAgdGhpcy5hcmVhc1thcmVhLmluZGV4XS5zaXplVXNlciA9IGFyZWEuc2l6ZTtcbiAgICAgICAgICAgICAgdGhpcy5hcmVhc1thcmVhLmluZGV4XS5jb21wb25lbnQudmlzaWJsZSA9IGFyZWEudmlzaWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UudmlzaWJpbGl0eVVwZGF0ZSgpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaFN0eWxlU2l6ZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2FmdGVyVmlld0luaXQgPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlTGF5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydndXR0ZXJTaXplJ10gfHwgY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEFyZWEoY29tcG9uZW50OiBTcGxpdEFyZWFDb21wb25lbnQsIG9yZGVyVXNlcjogbnVtYmVyIHwgbnVsbCwgc2l6ZVVzZXI6IG51bWJlciB8IG51bGwsIG1pblBpeGVsOiBudW1iZXIpIHtcbiAgICB0aGlzLmFyZWFzLnB1c2goe1xuICAgICAgY29tcG9uZW50LFxuICAgICAgb3JkZXJVc2VyLFxuICAgICAgb3JkZXI6IC0xLFxuICAgICAgc2l6ZVVzZXIsXG4gICAgICBzaXplOiAtMSxcbiAgICAgIG1pblBpeGVsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBcmVhKGNvbXBvbmVudDogU3BsaXRBcmVhQ29tcG9uZW50LCBvcmRlclVzZXI6IG51bWJlciB8IG51bGwsIHNpemVVc2VyOiBudW1iZXIgfCBudWxsLCBtaW5QaXhlbDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuYXJlYXMuZmluZChhID0+IGEuY29tcG9uZW50ID09PSBjb21wb25lbnQpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGl0ZW0ub3JkZXJVc2VyID0gb3JkZXJVc2VyO1xuICAgICAgaXRlbS5zaXplVXNlciA9IHNpemVVc2VyO1xuICAgICAgaXRlbS5taW5QaXhlbCA9IG1pblBpeGVsO1xuXG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQXJlYShhcmVhOiBTcGxpdEFyZWFDb21wb25lbnQpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5hcmVhcy5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IGFyZWEpO1xuXG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hcmVhcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgdGhpcy5hcmVhcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5hcmVhcy5mb3JFYWNoKChhLCBpKSA9PiBhLm9yZGVyID0gaSAqIDIpO1xuXG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZUFyZWEoYXJlYTogU3BsaXRBcmVhQ29tcG9uZW50KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuYXJlYXMuZmluZChhID0+IGEuY29tcG9uZW50ID09PSBhcmVhKTtcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMudXBkYXRlTGF5b3V0Q2FjaGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd0FyZWEoYXJlYTogU3BsaXRBcmVhQ29tcG9uZW50KSB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuYXJlYXMuZmluZChhID0+IGEuY29tcG9uZW50ID09PSBhcmVhKTtcblxuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgIHRoaXMudXBkYXRlTGF5b3V0Q2FjaGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNMYXN0VmlzaWJsZUFyZWEoYXJlYTogSUFyZWFEYXRhKSB7XG4gICAgY29uc3QgdmlzaWJsZUFyZWFzID0gdGhpcy52aXNpYmxlQXJlYXM7XG4gICAgcmV0dXJuIHZpc2libGVBcmVhcy5sZW5ndGggPiAwID8gYXJlYSA9PT0gdmlzaWJsZUFyZWFzW3Zpc2libGVBcmVhcy5sZW5ndGggLSAxXSA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoKCkge1xuICAgIHRoaXMuc3RvcERyYWdnaW5nKCk7XG5cbiAgICBjb25zdCB2aXNpYmxlQXJlYXMgPSB0aGlzLnZpc2libGVBcmVhcztcblxuICAgIC8vIE9SREVSUzogU2V0IGNzcyAnb3JkZXInIHByb3BlcnR5IGRlcGVuZGluZyBvbiB1c2VyIGlucHV0IG9yIGFkZGVkIG9yZGVyXG4gICAgY29uc3QgbmJDb3JyZWN0T3JkZXIgPSB0aGlzLmFyZWFzLmZpbHRlcihhID0+IGEub3JkZXJVc2VyICE9PSBudWxsICYmICFpc05hTihhLm9yZGVyVXNlcikpLmxlbmd0aDtcbiAgICBpZiAobmJDb3JyZWN0T3JkZXIgPT09IHRoaXMuYXJlYXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFyZWFzLnNvcnQoKGEsIGIpID0+ICthLm9yZGVyVXNlciAtICtiLm9yZGVyVXNlcik7XG4gICAgfVxuXG4gICAgdGhpcy5hcmVhcy5mb3JFYWNoKChhLCBpKSA9PiB7XG4gICAgICBhLm9yZGVyID0gaSAqIDI7XG4gICAgICBhLmNvbXBvbmVudC5zZXRTdHlsZSgnb3JkZXInLCBhLm9yZGVyKTtcbiAgICB9KTtcblxuICAgIC8vIFNJWkVTOiBTZXQgY3NzICdmbGV4LWJhc2lzJyBwcm9wZXJ0eSBkZXBlbmRpbmcgb24gdXNlciBpbnB1dCBvciBlcXVhbCBzaXplc1xuICAgIGNvbnN0IG5iQ29ycmVjdFNpemUgPSBzID0+IHMgIT09IG51bGwgJiYgIWlzTmFOKHMpICYmIHMgPj0gdGhpcy5taW5QZXJjZW50ID8gTnVtYmVyKHMpIDogTnVtYmVyKCgxMDAgLyB2aXNpYmxlQXJlYXMubGVuZ3RoKS50b0ZpeGVkKDMpKTtcbiAgICBjb25zdCB0b3RhbFNpemUgPSB2aXNpYmxlQXJlYXMubWFwKGEgPT4gYS5zaXplVXNlcikucmVkdWNlKChhY2MsIHMpID0+IGFjYyArIG5iQ29ycmVjdFNpemUocyksIDApO1xuXG4gICAgdmlzaWJsZUFyZWFzLmZvckVhY2goYSA9PiBhLnNpemUgPSBuYkNvcnJlY3RTaXplKGEuc2l6ZVVzZXIpKTtcblxuICAgIGlmIChNYXRoLnJvdW5kKHRvdGFsU2l6ZSkgIT09IDEwMCAmJiB2aXNpYmxlQXJlYXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBsYXN0ID0gdmlzaWJsZUFyZWFzW3Zpc2libGVBcmVhcy5sZW5ndGggLSAxXTtcbiAgICAgIGxhc3Quc2l6ZSA9IGxhc3Quc2l6ZSAtIHRvdGFsU2l6ZSArIDEwMDtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hTdHlsZVNpemVzKCk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFN0eWxlU2l6ZXMoKSB7XG4gICAgLy90aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICBjb25zdCB2aXNpYmxlQXJlYXMgPSB0aGlzLnZpc2libGVBcmVhcztcblxuICAgIGNvbnN0IGYgPSB0aGlzLmd1dHRlclNpemUgKiB0aGlzLm5iR3V0dGVycyAvIHZpc2libGVBcmVhcy5sZW5ndGg7XG4gICAgdmlzaWJsZUFyZWFzLmZvckVhY2goYSA9PiBhLmNvbXBvbmVudC5zZXRTdHlsZSgnZmxleC1iYXNpcycsIGBjYWxjKCAke2Euc2l6ZX0lIC0gJHtmfXB4IClgKSk7XG4gICAgLy99KTtcbiAgICAvL30pO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0RHJhZ2dpbmcoc3RhcnRFdmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGd1dHRlck9yZGVyOiBudW1iZXIpIHtcbiAgICBzdGFydEV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFyZWFBID0gdGhpcy52aXNpYmxlQXJlYXMuZmlsdGVyKGEgPT4gYS5vcmRlciA8IGd1dHRlck9yZGVyKS5wb3AoKTtcbiAgICBjb25zdCBhcmVhQiA9IHRoaXMudmlzaWJsZUFyZWFzLmZpbHRlcihhID0+IGEub3JkZXIgPiBndXR0ZXJPcmRlcilbMF07XG4gICAgaWYgKCFhcmVhQSB8fCAhYXJlYUIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wID0gKHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpID8gJ29mZnNldFdpZHRoJyA6ICdvZmZzZXRIZWlnaHQnO1xuICAgIHRoaXMuY29udGFpbmVyU2l6ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50W3Byb3BdO1xuICAgIHRoaXMuYXJlYUFTaXplID0gdGhpcy5jb250YWluZXJTaXplICogYXJlYUEuc2l6ZSAvIDEwMDtcbiAgICB0aGlzLmFyZWFCU2l6ZSA9IHRoaXMuY29udGFpbmVyU2l6ZSAqIGFyZWFCLnNpemUgLyAxMDA7XG5cbiAgICBsZXQgc3RhcnQ6IFBvaW50O1xuICAgIGlmIChzdGFydEV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCkge1xuICAgICAgc3RhcnQgPSB7XG4gICAgICAgIHg6IHN0YXJ0RXZlbnQuc2NyZWVuWCxcbiAgICAgICAgeTogc3RhcnRFdmVudC5zY3JlZW5ZXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoc3RhcnRFdmVudCBpbnN0YW5jZW9mIFRvdWNoRXZlbnQpIHtcbiAgICAgIHN0YXJ0ID0ge1xuICAgICAgICB4OiBzdGFydEV2ZW50LnRvdWNoZXNbMF0uc2NyZWVuWCxcbiAgICAgICAgeTogc3RhcnRFdmVudC50b3VjaGVzWzBdLnNjcmVlbllcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cblxuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihfID0+IHtcbiAgICAgIHRoaXMuZXZlbnRzRHJhZ0ZjdC5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdtb3VzZW1vdmUnLCBlID0+IHRoaXMuZHJhZ0V2ZW50KGUsIHN0YXJ0LCBhcmVhQSwgYXJlYUIpKSk7XG4gICAgICB0aGlzLmV2ZW50c0RyYWdGY3QucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAndG91Y2htb3ZlJywgZSA9PiB0aGlzLmRyYWdFdmVudChlLCBzdGFydCwgYXJlYUEsIGFyZWFCKSkpO1xuICAgICAgdGhpcy5ldmVudHNEcmFnRmN0LnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ21vdXNldXAnLCBlID0+IHRoaXMuc3RvcERyYWdnaW5nKCkpKTtcbiAgICAgIHRoaXMuZXZlbnRzRHJhZ0ZjdC5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICd0b3VjaGVuZCcsIGUgPT4gdGhpcy5zdG9wRHJhZ2dpbmcoKSkpO1xuICAgICAgdGhpcy5ldmVudHNEcmFnRmN0LnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ3RvdWNoY2FuY2VsJywgZSA9PiB0aGlzLnN0b3BEcmFnZ2luZygpKSk7XG4gICAgfSk7XG5cbiAgICBhcmVhQS5jb21wb25lbnQubG9ja0V2ZW50cygpO1xuICAgIGFyZWFCLmNvbXBvbmVudC5sb2NrRXZlbnRzKCk7XG5cbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMubm90aWZ5KCdzdGFydCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmFnRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCBzdGFydDogUG9pbnQsIGFyZWFBOiBJQXJlYURhdGEsIGFyZWFCOiBJQXJlYURhdGEpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlbmQ6IFBvaW50O1xuICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgIGVuZCA9IHtcbiAgICAgICAgeDogZXZlbnQuc2NyZWVuWCxcbiAgICAgICAgeTogZXZlbnQuc2NyZWVuWVxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkge1xuICAgICAgZW5kID0ge1xuICAgICAgICB4OiBldmVudC50b3VjaGVzWzBdLnNjcmVlblgsXG4gICAgICAgIHk6IGV2ZW50LnRvdWNoZXNbMF0uc2NyZWVuWVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZyhzdGFydCwgZW5kLCBhcmVhQSwgYXJlYUIpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmFnKHN0YXJ0OiBQb2ludCwgZW5kOiBQb2ludCwgYXJlYUE6IElBcmVhRGF0YSwgYXJlYUI6IElBcmVhRGF0YSkge1xuICAgIGNvbnN0IG9mZnNldFBpeGVsID0gKHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpID8gKHN0YXJ0LnggLSBlbmQueCkgOiAoc3RhcnQueSAtIGVuZC55KTtcblxuICAgIGNvbnN0IG5ld1NpemVQaXhlbEEgPSB0aGlzLmFyZWFBU2l6ZSAtIG9mZnNldFBpeGVsICogdGhpcy5kaXJlY3Rpb25JbmRleDtcbiAgICBjb25zdCBuZXdTaXplUGl4ZWxCID0gdGhpcy5hcmVhQlNpemUgKyBvZmZzZXRQaXhlbCAqIHRoaXMuZGlyZWN0aW9uSW5kZXg7XG5cbiAgICBpZiAobmV3U2l6ZVBpeGVsQSA8PSBhcmVhQS5taW5QaXhlbCB8fCBuZXdTaXplUGl4ZWxCIDwgYXJlYUIubWluUGl4ZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgbmV3U2l6ZVBlcmNlbnRBID0gbmV3U2l6ZVBpeGVsQSAvIHRoaXMuY29udGFpbmVyU2l6ZSAqIDEwMDtcbiAgICBsZXQgbmV3U2l6ZVBlcmNlbnRCID0gbmV3U2l6ZVBpeGVsQiAvIHRoaXMuY29udGFpbmVyU2l6ZSAqIDEwMDtcblxuICAgIGlmIChuZXdTaXplUGVyY2VudEEgPD0gdGhpcy5taW5QZXJjZW50KSB7XG4gICAgICBuZXdTaXplUGVyY2VudEEgPSB0aGlzLm1pblBlcmNlbnQ7XG4gICAgICBuZXdTaXplUGVyY2VudEIgPSBhcmVhQS5zaXplICsgYXJlYUIuc2l6ZSAtIHRoaXMubWluUGVyY2VudDtcbiAgICB9IGVsc2UgaWYgKG5ld1NpemVQZXJjZW50QiA8PSB0aGlzLm1pblBlcmNlbnQpIHtcbiAgICAgIG5ld1NpemVQZXJjZW50QiA9IHRoaXMubWluUGVyY2VudDtcbiAgICAgIG5ld1NpemVQZXJjZW50QSA9IGFyZWFBLnNpemUgKyBhcmVhQi5zaXplIC0gdGhpcy5taW5QZXJjZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTaXplUGVyY2VudEEgPSBOdW1iZXIobmV3U2l6ZVBlcmNlbnRBLnRvRml4ZWQoMykpO1xuICAgICAgbmV3U2l6ZVBlcmNlbnRCID0gTnVtYmVyKChhcmVhQS5zaXplICsgYXJlYUIuc2l6ZSAtIG5ld1NpemVQZXJjZW50QSkudG9GaXhlZCgzKSk7XG4gICAgfVxuXG4gICAgYXJlYUEuc2l6ZSA9IG5ld1NpemVQZXJjZW50QTtcbiAgICBhcmVhQi5zaXplID0gbmV3U2l6ZVBlcmNlbnRCO1xuICAgIGlmICh0aGlzLmFyZWFzLmxlbmd0aCA9PT0gdGhpcy52aXNpYmxlQXJlYXMubGVuZ3RoKSB7XG4gICAgICBhcmVhQS5zaXplVXNlciA9IG5ld1NpemVQZXJjZW50QTtcbiAgICAgIGFyZWFCLnNpemVVc2VyID0gbmV3U2l6ZVBlcmNlbnRCO1xuICAgIH1cblxuICAgIHRoaXMucmVmcmVzaFN0eWxlU2l6ZXMoKTtcbiAgICB0aGlzLm5vdGlmeSgncHJvZ3Jlc3MnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcERyYWdnaW5nKCkge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcmVhcy5mb3JFYWNoKGEgPT4gYS5jb21wb25lbnQudW5sb2NrRXZlbnRzKCkpO1xuXG4gICAgd2hpbGUgKHRoaXMuZXZlbnRzRHJhZ0ZjdC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmY3QgPSB0aGlzLmV2ZW50c0RyYWdGY3QucG9wKCk7XG4gICAgICBpZiAoZmN0KSB7XG4gICAgICAgIGZjdCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29udGFpbmVyU2l6ZSA9IDA7XG4gICAgdGhpcy5hcmVhQVNpemUgPSAwO1xuICAgIHRoaXMuYXJlYUJTaXplID0gMDtcblxuICAgIHRoaXMudXBkYXRlTGF5b3V0Q2FjaGUoKTtcblxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMubm90aWZ5KCdlbmQnKTtcbiAgfVxuXG4gIG5vdGlmeSh0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRhOiBBcnJheTxudW1iZXI+ID0gdGhpcy52aXNpYmxlQXJlYXMubWFwKGEgPT4gYS5zaXplKTtcblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5kcmFnU3RhcnQuZW1pdChkYXRhKTtcblxuICAgICAgY2FzZSAncHJvZ3Jlc3MnOlxuICAgICAgICByZXR1cm4gdGhpcy5kcmFnUHJvZ3Jlc3MuZW1pdChkYXRhKTtcblxuICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZHJhZ0VuZC5lbWl0KGRhdGEpO1xuXG4gICAgICBjYXNlICd2aXNpYmxlVHJhbnNpdGlvbkVuZCc6XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVUcmFuc2l0aW9uRW5kSW50ZXJuYWwubmV4dChkYXRhKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVMYXlvdXRDYWNoZSgpIHsgICAgXG4gICAgaWYgKHRoaXMuY2FjaGVMYXlvdXQpIHtcbiAgICAgIGxldCBsYXlvdXQgPSB0aGlzLmFyZWFzLm1hcCgoYSwgaSkgPT4gKHtpbmRleDogaSwgc2l6ZTogYS5zaXplLCB2aXNpYmxlOiBhLmNvbXBvbmVudC52aXNpYmxlfSkpO1xuICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmNhY2hlTGF5b3V0KGBlby5zcGxpdC5sYXlvdXQuJHt0aGlzLmNhY2hlTGF5b3V0fWAsIGxheW91dCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcERyYWdnaW5nKCk7XG4gIH1cblxufVxuIl19
@@ -106,4 +106,4 @@ SplitAreaComponent.propDecorators = {
106
106
  visible: [{ type: Input }],
107
107
  onTransitionEnd: [{ type: HostListener, args: ['transitionend', ['$event'],] }]
108
108
  };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9zcGxpdC9zcGxpdC1hcmVhL3NwbGl0LWFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQ3hHLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFXekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFFBQVE7SUFxRDlDLFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsS0FBcUIsRUFDN0IsYUFBK0I7UUFDL0IsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBSmIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBdERDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDYixZQUFPLEdBQUcsUUFBUSxDQUFDO1FBQ25CLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDakIsWUFBTyxHQUFHLEdBQUcsQ0FBQztRQUNWLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRWhCLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBTTdCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBTTVCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBMEIxQixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBRXJCLGtCQUFhLEdBQW9CLEVBQUUsQ0FBQztJQVFwQyxDQUFDO0lB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QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsR0FBRyxFQUFFLENBQUM7YUFDUDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7O1lBdEdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7O29CQUlRO2FBRW5COzs7WUFiUSxVQUFVO1lBQUUsU0FBUztZQUV0QixjQUFjO1lBRndELGdCQUFnQjs7O3dCQWdCM0YsV0FBVyxTQUFDLGlCQUFpQjtzQkFDN0IsV0FBVyxTQUFDLGtCQUFrQjtvQkFDOUIsV0FBVyxTQUFDLGtCQUFrQjtzQkFDOUIsV0FBVyxTQUFDLGdCQUFnQjt1QkFDNUIsV0FBVyxTQUFDLG9CQUFvQjt5QkFFaEMsV0FBVyxTQUFDLGVBQWU7b0JBSTNCLEtBQUs7bUJBTUwsS0FBSzsyQkFNTCxLQUFLO3NCQU9MLEtBQUs7OEJBOEJMLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbnB1dCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBPbkluaXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTcGxpdENvbXBvbmVudH0gZnJvbSAnLi4vc3BsaXQvc3BsaXQuY29tcG9uZW50JztcbmltcG9ydCB7VGFiUGFuZWx9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXNwbGl0LWFyZWEnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRlbXBsYXRlICYmIChjYWNoZSA/IGxvYWRlZCA6IHZpc2libGUpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+YCxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdEFyZWFDb21wb25lbnQgZXh0ZW5kcyBUYWJQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZ3JvdycpIF9mbGV4R3JvdyA9IDE7XG4gIEBIb3N0QmluZGluZygnc3R5bGUub3ZlcmZsb3cteCcpIF9oaWRkZW4gPSAnaGlkZGVuJztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vdmVyZmxvdy15JykgX2F1dG8gPSAnYXV0byc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LiUnKSBfaGVpZ2h0ID0gMTAwO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aC5weCcpIG1pbldpZHRoID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpc2libGUnKSB2aXNpYmxlQ2xzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfb3JkZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzZXQgb3JkZXIodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fb3JkZXIgPSAhaXNOYU4odikgPyB2IDogbnVsbDtcbiAgICB0aGlzLnNwbGl0LnVwZGF0ZUFyZWEodGhpcywgdGhpcy5fb3JkZXIsIHRoaXMuX3NpemUsIHRoaXMuX21pblNpemVQaXhlbCk7XG4gIH1cblxuICBwcml2YXRlIF9zaXplOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2V0IHNpemUodjogYW55KSB7XG4gICAgdGhpcy5fc2l6ZSA9ICFpc05hTih2KSA/IHYgOiBudWxsO1xuICAgIHRoaXMuc3BsaXQudXBkYXRlQXJlYSh0aGlzLCB0aGlzLl9vcmRlciwgdGhpcy5fc2l6ZSwgdGhpcy5fbWluU2l6ZVBpeGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pblNpemVQaXhlbCA9IDA7XG4gIEBJbnB1dCgpIHNldCBtaW5TaXplUGl4ZWwodjogbnVtYmVyKSB7XG5cbiAgICB0aGlzLl9taW5TaXplUGl4ZWwgPSAoIWlzTmFOKHYpICYmIHYgPiAwKSA/IHYgOiAwO1xuICAgIHRoaXMubWluV2lkdGggPSB0aGlzLl9taW5TaXplUGl4ZWw7XG4gICAgdGhpcy5zcGxpdC51cGRhdGVBcmVhKHRoaXMsIHRoaXMuX29yZGVyLCB0aGlzLl9zaXplLCB0aGlzLl9taW5TaXplUGl4ZWwpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIHRoaXMudmlzaWJpbGl0eSA9IHYgPyAnYmxvY2snIDogJ25vbmUnO1xuICAgIHRoaXMuX3Zpc2libGUgPSB0aGlzLnZpc2libGVDbHMgPSB2O1xuXG4gICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlOyAvLyBsb2FkZWQgYWZ0ZXIgZmlyc3QgdmlzdWFsaXphdGlvblxuICAgICAgdGhpcy5zcGxpdC5zaG93QXJlYSh0aGlzKTtcbiAgICAgIHRoaXMubWluV2lkdGggPSB0aGlzLl9taW5TaXplUGl4ZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWluV2lkdGggPSAwO1xuICAgICAgdGhpcy5zcGxpdC5oaWRlQXJlYSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHZpc2liaWxpdHkgPSAnYmxvY2snO1xuXG4gIGV2ZW50c0xvY2tGY3Q6IEFycmF5PEZ1bmN0aW9uPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBzcGxpdDogU3BsaXRDb21wb25lbnQsXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIHN1cGVyKHZpZXdDb250YWluZXIpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIFsnJGV2ZW50J10pXG4gIG9uVHJhbnNpdGlvbkVuZChldnQ6IFRyYW5zaXRpb25FdmVudCkge1xuICAgIC8vIExpbWl0IG9ubHkgZmxleC1iYXNpcyB0cmFuc2l0aW9uIHRvIHRyaWdnZXIgdGhlIGV2ZW50XG4gICAgaWYgKGV2dC5wcm9wZXJ0eU5hbWUgPT09ICdmbGV4LWJhc2lzJykge1xuICAgICAgdGhpcy5zcGxpdC5ub3RpZnkoJ3Zpc2libGVUcmFuc2l0aW9uRW5kJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3BsaXQuYWRkQXJlYSh0aGlzLCB0aGlzLl9vcmRlciwgdGhpcy5fc2l6ZSwgdGhpcy5fbWluU2l6ZVBpeGVsKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NrRXZlbnRzKCkge1xuICAgIHRoaXMuZXZlbnRzTG9ja0ZjdC5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnc2VsZWN0c3RhcnQnLCBlID0+IGZhbHNlKSk7XG4gICAgdGhpcy5ldmVudHNMb2NrRmN0LnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdkcmFnc3RhcnQnLCBlID0+IGZhbHNlKSk7XG4gIH1cblxuICBwdWJsaWMgdW5sb2NrRXZlbnRzKCkge1xuICAgIHdoaWxlICh0aGlzLmV2ZW50c0xvY2tGY3QubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmN0ID0gdGhpcy5ldmVudHNMb2NrRmN0LnBvcCgpO1xuICAgICAgaWYgKGZjdCkge1xuICAgICAgICBmY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0U3R5bGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNwbGl0LnJlbW92ZUFyZWEodGhpcyk7XG4gIH1cblxuXG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9zcGxpdC9zcGxpdC1hcmVhL3NwbGl0LWFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBcUIsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQ3hHLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFXekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFFBQVE7SUFvRDlDLFlBQ1UsVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsS0FBcUIsRUFDN0IsYUFBK0I7UUFDL0IsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBSmIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBckRDLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDYixZQUFPLEdBQUcsUUFBUSxDQUFDO1FBQ25CLFVBQUssR0FBRyxNQUFNLENBQUM7UUFDakIsWUFBTyxHQUFHLEdBQUcsQ0FBQztRQUNWLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFFbEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUN4QyxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRWhCLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBTTdCLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBTTVCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBeUIxQixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBRXJCLGtCQUFhLEdBQW9CLEVBQUUsQ0FBQztJQVFwQyxDQUFDO0lB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QyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsR0FBRyxFQUFFLENBQUM7YUFDUDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7O1lBckdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7O29CQUlRO2FBRW5COzs7WUFiUSxVQUFVO1lBQUUsU0FBUztZQUV0QixjQUFjO1lBRndELGdCQUFnQjs7O3dCQWdCM0YsV0FBVyxTQUFDLGlCQUFpQjtzQkFDN0IsV0FBVyxTQUFDLGtCQUFrQjtvQkFDOUIsV0FBVyxTQUFDLGtCQUFrQjtzQkFDOUIsV0FBVyxTQUFDLGdCQUFnQjt1QkFDNUIsV0FBVyxTQUFDLG9CQUFvQjt5QkFFaEMsV0FBVyxTQUFDLGVBQWU7b0JBSTNCLEtBQUs7bUJBTUwsS0FBSzsyQkFNTCxLQUFLO3NCQU1MLEtBQUs7OEJBOEJMLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbnB1dCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBPbkluaXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTcGxpdENvbXBvbmVudH0gZnJvbSAnLi4vc3BsaXQvc3BsaXQuY29tcG9uZW50JztcbmltcG9ydCB7VGFiUGFuZWx9IGZyb20gJ3ByaW1lbmcvcHJpbWVuZyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLXNwbGl0LWFyZWEnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGVudFRlbXBsYXRlICYmIChjYWNoZSA/IGxvYWRlZCA6IHZpc2libGUpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+YCxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdEFyZWFDb21wb25lbnQgZXh0ZW5kcyBUYWJQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmZsZXgtZ3JvdycpIF9mbGV4R3JvdyA9IDE7XG4gIEBIb3N0QmluZGluZygnc3R5bGUub3ZlcmZsb3cteCcpIF9oaWRkZW4gPSAnaGlkZGVuJztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5vdmVyZmxvdy15JykgX2F1dG8gPSAnYXV0byc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuaGVpZ2h0LiUnKSBfaGVpZ2h0ID0gMTAwO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi13aWR0aC5weCcpIG1pbldpZHRoID0gMDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpc2libGUnKSB2aXNpYmxlQ2xzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfb3JkZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzZXQgb3JkZXIodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fb3JkZXIgPSAhaXNOYU4odikgPyB2IDogbnVsbDtcbiAgICB0aGlzLnNwbGl0LnVwZGF0ZUFyZWEodGhpcywgdGhpcy5fb3JkZXIsIHRoaXMuX3NpemUsIHRoaXMuX21pblNpemVQaXhlbCk7XG4gIH1cblxuICBwcml2YXRlIF9zaXplOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2V0IHNpemUodjogYW55KSB7XG4gICAgdGhpcy5fc2l6ZSA9ICFpc05hTih2KSA/IHYgOiBudWxsO1xuICAgIHRoaXMuc3BsaXQudXBkYXRlQXJlYSh0aGlzLCB0aGlzLl9vcmRlciwgdGhpcy5fc2l6ZSwgdGhpcy5fbWluU2l6ZVBpeGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgX21pblNpemVQaXhlbCA9IDA7XG4gIEBJbnB1dCgpIHNldCBtaW5TaXplUGl4ZWwodjogbnVtYmVyKSB7XG5cbiAgICB0aGlzLl9taW5TaXplUGl4ZWwgPSAoIWlzTmFOKHYpICYmIHYgPiAwKSA/IHYgOiAwO1xuICAgIHRoaXMubWluV2lkdGggPSB0aGlzLl9taW5TaXplUGl4ZWw7XG4gICAgdGhpcy5zcGxpdC51cGRhdGVBcmVhKHRoaXMsIHRoaXMuX29yZGVyLCB0aGlzLl9zaXplLCB0aGlzLl9taW5TaXplUGl4ZWwpO1xuICB9XG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnZpc2liaWxpdHkgPSB2ID8gJ2Jsb2NrJyA6ICdub25lJztcbiAgICB0aGlzLl92aXNpYmxlID0gdGhpcy52aXNpYmxlQ2xzID0gdjtcblxuICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTsgLy8gbG9hZGVkIGFmdGVyIGZpcnN0IHZpc3VhbGl6YXRpb25cbiAgICAgIHRoaXMuc3BsaXQuc2hvd0FyZWEodGhpcyk7XG4gICAgICB0aGlzLm1pbldpZHRoID0gdGhpcy5fbWluU2l6ZVBpeGVsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1pbldpZHRoID0gMDtcbiAgICAgIHRoaXMuc3BsaXQuaGlkZUFyZWEodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICB2aXNpYmlsaXR5ID0gJ2Jsb2NrJztcblxuICBldmVudHNMb2NrRmN0OiBBcnJheTxGdW5jdGlvbj4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc3BsaXQ6IFNwbGl0Q29tcG9uZW50LFxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcih2aWV3Q29udGFpbmVyKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBbJyRldmVudCddKVxuICBvblRyYW5zaXRpb25FbmQoZXZ0OiBUcmFuc2l0aW9uRXZlbnQpIHtcbiAgICAvLyBMaW1pdCBvbmx5IGZsZXgtYmFzaXMgdHJhbnNpdGlvbiB0byB0cmlnZ2VyIHRoZSBldmVudFxuICAgIGlmIChldnQucHJvcGVydHlOYW1lID09PSAnZmxleC1iYXNpcycpIHtcbiAgICAgIHRoaXMuc3BsaXQubm90aWZ5KCd2aXNpYmxlVHJhbnNpdGlvbkVuZCcpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNwbGl0LmFkZEFyZWEodGhpcywgdGhpcy5fb3JkZXIsIHRoaXMuX3NpemUsIHRoaXMuX21pblNpemVQaXhlbCk7XG4gIH1cblxuICBwdWJsaWMgbG9ja0V2ZW50cygpIHtcbiAgICB0aGlzLmV2ZW50c0xvY2tGY3QucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3NlbGVjdHN0YXJ0JywgZSA9PiBmYWxzZSkpO1xuICAgIHRoaXMuZXZlbnRzTG9ja0ZjdC5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZHJhZ3N0YXJ0JywgZSA9PiBmYWxzZSkpO1xuICB9XG5cbiAgcHVibGljIHVubG9ja0V2ZW50cygpIHtcbiAgICB3aGlsZSAodGhpcy5ldmVudHNMb2NrRmN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZjdCA9IHRoaXMuZXZlbnRzTG9ja0ZjdC5wb3AoKTtcbiAgICAgIGlmIChmY3QpIHtcbiAgICAgICAgZmN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldFN0eWxlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zcGxpdC5yZW1vdmVBcmVhKHRoaXMpO1xuICB9XG5cblxufVxuIl19
@@ -10009,15 +10009,16 @@ FormElementComponent.propDecorators = {
10009
10009
  };
10010
10010
 
10011
10011
  class FormElementTableComponent extends UnsubscribeOnDestroy {
10012
- constructor(systemService, pendingChanges, gridApi, translate, storageService, eventService) {
10012
+ constructor(storageService, systemService, pendingChanges, gridApi, translate) {
10013
10013
  super();
10014
+ this.storageService = storageService;
10014
10015
  this.systemService = systemService;
10015
10016
  this.pendingChanges = pendingChanges;
10016
10017
  this.gridApi = gridApi;
10017
10018
  this.translate = translate;
10018
- this.storageService = storageService;
10019
- this.eventService = eventService;
10020
10019
  this.modules = [ClientSideRowModelModule, CsvExportModule];
10020
+ this.BASE_CACHE_LAYOUT_KEY = 'table.state';
10021
+ this.cacheLayoutKey = this.BASE_CACHE_LAYOUT_KEY;
10021
10022
  this.gridReady = false;
10022
10023
  this.showDialog = false;
10023
10024
  this.showPreview = false;
@@ -10074,13 +10075,14 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10074
10075
  this.overlayGridOptions.suppressRowClickSelection = !!this.rowEdit && !!tasks.includes(this.rowEdit.pendingTaskId);
10075
10076
  }, 0);
10076
10077
  });
10077
- this._cachedColumns = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION) || [];
10078
- this._cachedColumnsOverlay = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY) || [];
10079
- this.showPreview = !!this.storageService.getItem('eo.table.showPreview');
10080
10078
  }
10081
10079
  set params(p) {
10080
+ this.cacheLayoutKey = p ? `${this.BASE_CACHE_LAYOUT_KEY}.${p.element.name}` : this.BASE_CACHE_LAYOUT_KEY;
10082
10081
  if (p) {
10083
10082
  this._params = p;
10083
+ this._cachedColumns = this.storageService.getItem(this.cacheLayoutKey + '.colDef') || [];
10084
+ this._cachedColumnsOverlay = this.storageService.getItem(this.cacheLayoutKey + '.colDefOverlay') || [];
10085
+ this.showPreview = this.storageService.getItem(this.cacheLayoutKey + '.showPreview');
10084
10086
  CellRenderer.situation = this._params.situation;
10085
10087
  if (this._params.situation === 'SEARCH') {
10086
10088
  this._params.size = 'supersmall';
@@ -10398,10 +10400,10 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10398
10400
  }
10399
10401
  }
10400
10402
  onColumnResized(column, overlay) {
10401
- let columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION;
10403
+ let columnsDefinition = this.cacheLayoutKey + '.colDef';
10402
10404
  let cachedColumns = this._cachedColumns;
10403
10405
  if (overlay) {
10404
- columnsDefinition = FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY;
10406
+ columnsDefinition = this.cacheLayoutKey + '.colDefOverlay';
10405
10407
  cachedColumns = this._cachedColumnsOverlay;
10406
10408
  }
10407
10409
  let col = cachedColumns.find(c => c.qname === column.colDef.refData.qname);
@@ -10413,9 +10415,20 @@ class FormElementTableComponent extends UnsubscribeOnDestroy {
10413
10415
  }
10414
10416
  this.storageService.setItem(columnsDefinition, cachedColumns);
10415
10417
  }
10418
+ _updateSplitViewLayoutCache() {
10419
+ setTimeout(() => {
10420
+ this.splitView.updateLayoutCache();
10421
+ });
10422
+ }
10416
10423
  togglePreview() {
10417
10424
  this.showPreview = !this.showPreview;
10418
- this.storageService.setItem('eo.table.showPreview', this.showPreview);
10425
+ // make sure that the layout of the split view is updated after the preview panels
10426
+ // visibility changed
10427
+ this._updateSplitViewLayoutCache();
10428
+ this.storageService.setItem(this.cacheLayoutKey + '.showPreview', this.showPreview);
10429
+ }
10430
+ ngAfterViewInit() {
10431
+ this._updateSplitViewLayoutCache();
10419
10432
  }
10420
10433
  }
10421
10434
  FormElementTableComponent.COLUMNS_DEFINITION = 'eo.framework.cache.tables.columns.definition';
@@ -10423,7 +10436,7 @@ FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY = 'eo.framework.cache.table
10423
10436
  FormElementTableComponent.decorators = [
10424
10437
  { type: Component, args: [{
10425
10438
  selector: 'eo-table',
10426
- template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? '97vw' : 200\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"!!params.object?.content\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\">\n\n <eo-split [gutterSize]=\"16\" [switchable]=\"true\" [cacheLayout]=\"'table.state'\">\n\n <eo-split-area *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"40\" [minSizePixel]=\"100\" [order]=\"1\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"label\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #agGrid2 *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\"\n (cellClicked)=\"onCellClicked($event);editRow($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </eo-split-area>\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"300\" *ngIf=\"editingRow\" [order]=\"2\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" #rowEdit\n (onSave)=\"updateRow($event)\"\n (onSaveCopy)=\"copyRow($event)\"\n (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </eo-split-area>\n\n <eo-split-area [visible]=\"showPreview && !!params?.object?.content\" *ngIf=\"!!params?.object?.content\" [size]=\"40\" [minSizePixel]=\"150\" [order]=\"3\">\n <eo-media *ngIf=\"!!params?.object?.content\" [dmsObject]=\"params.object\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\"></eo-media>\n </eo-split-area>\n </eo-split>\n </div>\n</eo-dialog>\n",
10439
+ template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? '97vw' : 200\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"!!params.object?.content\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\" *ngIf=\"showDialog\">\n\n <eo-split #splitView [gutterSize]=\"16\" [switchable]=\"true\" [cacheLayout]=\"cacheLayoutKey\">\n\n <eo-split-area *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"40\" [minSizePixel]=\"100\" [order]=\"1\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"label\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #agGrid2 *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\"\n (cellClicked)=\"onCellClicked($event);editRow($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </eo-split-area>\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"300\" *ngIf=\"editingRow\" [order]=\"2\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" #rowEdit\n (onSave)=\"updateRow($event)\"\n (onSaveCopy)=\"copyRow($event)\"\n (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </eo-split-area>\n\n <eo-split-area [visible]=\"showPreview && !!params?.object?.content\" [size]=\"40\" [minSizePixel]=\"150\" [order]=\"3\">\n <eo-media *ngIf=\"!!params?.object?.content\" [dmsObject]=\"params.object\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object?.id === params.object?.content?.id\"></eo-media>\n </eo-split-area>\n </eo-split>\n </div>\n</eo-dialog>\n",
10427
10440
  providers: [
10428
10441
  {
10429
10442
  provide: NG_VALUE_ACCESSOR,
@@ -10440,15 +10453,15 @@ FormElementTableComponent.decorators = [
10440
10453
  },] }
10441
10454
  ];
10442
10455
  FormElementTableComponent.ctorParameters = () => [
10456
+ { type: LocalStorageService },
10443
10457
  { type: SystemService },
10444
10458
  { type: PendingChangesService },
10445
10459
  { type: GridService },
10446
- { type: TranslateService },
10447
- { type: LocalStorageService },
10448
- { type: EventService }
10460
+ { type: TranslateService }
10449
10461
  ];
10450
10462
  FormElementTableComponent.propDecorators = {
10451
10463
  rowEdit: [{ type: ViewChild, args: ['rowEdit',] }],
10464
+ splitView: [{ type: ViewChild, args: ['splitView',] }],
10452
10465
  params: [{ type: Input }],
10453
10466
  copyCellHandler: [{ type: HostListener, args: ['keydown.control.alt.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.alt.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.c', ['$event'],] }]
10454
10467
  };
@@ -10675,7 +10688,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
10675
10688
  this.layoutService.getLayout(`eo.split.layout.${this.cacheLayout}`)
10676
10689
  .subscribe(layout => {
10677
10690
  (layout || []).forEach((area) => {
10678
- if (area && this.areas.length) {
10691
+ if (area && this.areas.length > area.index) {
10679
10692
  this.areas[area.index].size = area.size;
10680
10693
  this.areas[area.index].sizeUser = area.size;
10681
10694
  this.areas[area.index].component.visible = area.visible;
@@ -10728,14 +10741,14 @@ class SplitComponent extends UnsubscribeOnDestroy {
10728
10741
  const item = this.areas.find(a => a.component === area);
10729
10742
  if (item) {
10730
10743
  this.refresh();
10731
- this.updateCache();
10744
+ this.updateLayoutCache();
10732
10745
  }
10733
10746
  }
10734
10747
  showArea(area) {
10735
10748
  const item = this.areas.find(a => a.component === area);
10736
10749
  if (item) {
10737
10750
  this.refresh();
10738
- this.updateCache();
10751
+ this.updateLayoutCache();
10739
10752
  }
10740
10753
  }
10741
10754
  isLastVisibleArea(area) {
@@ -10881,7 +10894,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
10881
10894
  this.containerSize = 0;
10882
10895
  this.areaASize = 0;
10883
10896
  this.areaBSize = 0;
10884
- this.updateCache();
10897
+ this.updateLayoutCache();
10885
10898
  this.isDragging = false;
10886
10899
  this.notify('end');
10887
10900
  }
@@ -10898,7 +10911,7 @@ class SplitComponent extends UnsubscribeOnDestroy {
10898
10911
  return this.visibleTransitionEndInternal.next(data);
10899
10912
  }
10900
10913
  }
10901
- updateCache() {
10914
+ updateLayoutCache() {
10902
10915
  if (this.cacheLayout) {
10903
10916
  let layout = this.areas.map((a, i) => ({ index: i, size: a.size, visible: a.component.visible }));
10904
10917
  this.layoutService.cacheLayout(`eo.split.layout.${this.cacheLayout}`, layout);
@@ -22452,10 +22465,10 @@ class AboutStateComponent {
22452
22465
  this.http = http;
22453
22466
  this.userService = userService;
22454
22467
  this.config = config;
22455
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "8.16.25", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "7.0.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
22468
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "22.1.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "22.1.1", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "22.1.1", "license": "MIT" }, { "name": "@angular/animations", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/cdk", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/common", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/compiler", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/core", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/forms", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "11.2.0", "license": "MIT" }, { "name": "@angular/router", "version": "11.2.0", "license": "MIT" }, { "name": "@eo-sdk/core", "version": "8.16.28", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "11.1.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "13.0.0", "license": "MIT" }, { "name": "@types/lodash", "version": "4.14.88", "license": "MIT" }, { "name": "core-js", "version": "2.5.7", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "keyboardevent-key-polyfill", "version": "1.1.0", "license": "CC0-1.0" }, { "name": "keycode-js", "version": "0.0.4", "license": "MIT" }, { "name": "mobile-drag-drop", "version": "2.2.0", "license": "MIT" }, { "name": "moment", "version": "2.22.2", "license": "MIT" }, { "name": "ngx-toastr", "version": "13.2.0", "license": "MIT" }, { "name": "primeicons", "version": "1.0.0-beta.6", "license": "MIT" }, { "name": "primeng", "version": "7.0.1", "license": "MIT" }, { "name": "reflect-metadata", "version": "0.1.10", "license": "Apache-2.0" }, { "name": "rxjs", "version": "6.6.3", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.1.0", "license": "0BSD" }, { "name": "zone.js", "version": "0.10.3", "license": "MIT" }];
22456
22469
  this.ctrl = {
22457
22470
  productName: 'yuuvis® RAD client',
22458
- clientVersion: '8.16.25'
22471
+ clientVersion: '8.16.28'
22459
22472
  };
22460
22473
  this.licenses = {
22461
22474
  'MIT': {