@tetacom/svg-charts 1.1.48 → 1.2.0

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.
@@ -109,10 +109,8 @@ export class ZoomableDirective {
109
109
  }
110
110
  }
111
111
  // Subscribe to zoom events
112
- this.broadcastService
113
- .subscribeToZoom(this.config?.zoom.syncChannel)
112
+ this.broadcastService.subscribeToZoom(this.config?.zoom.syncChannel)
114
113
  .pipe(takeWhile((_) => this.alive), tap((m) => {
115
- // Sync fake axis and index axis 0
116
114
  if (this.axis.index === m.message?.axis?.index && this.axis.orientation === m.message?.axis?.orientation) {
117
115
  const currentZoom = d3.zoomTransform(this._element.node());
118
116
  if (currentZoom !== m.message.event.transform) {
@@ -126,7 +124,7 @@ export class ZoomableDirective {
126
124
  return (this.axis.index === m.message?.axis?.index &&
127
125
  this.axis.orientation === m.message?.axis?.orientation);
128
126
  }), tap((m) => {
129
- if (this.config.id !== m.message.chartId) {
127
+ if (this.config.id !== m.message?.chartId) {
130
128
  this._element.call(this.zoom.transform, m.message.event.transform, null, {});
131
129
  }
132
130
  }))
@@ -269,4 +267,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
269
267
  type: HostBinding,
270
268
  args: ['class.crosshair']
271
269
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQTRCLFlBQVksRUFBQyxNQUFNLElBQUksQ0FBQztBQUMzRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBa0MsV0FBVyxHQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFnQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFLckMsTUFBTSxPQUFPLGlCQUFpQjtJQWtCNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsSUFBWTtRQUpaLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBaEJpQixhQUFRLEdBQUcsS0FBSyxDQUFD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QVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBRW5CLElBQUksR0FBRyxPQUFPLENBQUM7Z0JBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDOzs4R0E1VlUsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQjswTUFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFaUMsUUFBUTtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ1csU0FBUztzQkFBaEQsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtJQ2hhcnRDb25maWd9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbUJlaGF2aW9yLCB6b29tSWRlbnRpdHl9IGZyb20gJ2QzJztcbmltcG9ydCB7Wm9vbVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS10eXBlJztcbmltcG9ydCB7QXhpc09yaWVudGF0aW9ufSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuaW1wb3J0IHtCcnVzaE1lc3NhZ2UsIElCcm9hZGNhc3RNZXNzYWdlLCBab29tTWVzc2FnZSx9IGZyb20gJy4uL21vZGVsL2ktYnJvYWRjYXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vYnJ1c2gtdHlwZSc7XG5pbXBvcnQge0Jyb2FkY2FzdFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvYnJvYWRjYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIHRha2VXaGlsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Wm9vbUJlaGF2aW9yVHlwZX0gZnJvbSAnLi4vbW9kZWwvZW51bS96b29tLWJlaGF2aW9yLXR5cGUnO1xuaW1wb3J0IG9iamVjdEhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YVpvb21hYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFpvb21hYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIGJydXNoU2NhbGU/OiBhbnk7XG4gIEBJbnB1dCgpIHNjYWxlPzogYW55O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICBwcml2YXRlIGN1cnJlbnRTZWxlY3Rpb247XG4gIHByaXZhdGUgaGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IEJyb2FkY2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gfHwgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZSkge1xuICAgICAgdGhpcy56b29tYWJsZSA9IHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUubW92ZSAmJiAhdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgICB0aGlzLmNyb3NzaGFpciA9IHRoaXMuY29uZmlnPy50b29sdGlwPy5zaG93Q3Jvc3NoYWlyO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdicnVzaFNjYWxlJykgfHwgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnc2NhbGUnKSB8fCBjaGFuZ2VzLmhhc093blByb3BlcnR5KCdheGlzJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc2gpIHtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5zY2FsZUhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5zY2FsZSk7XG4gICAgICAgIHRoaXMuem9vbVNlcnZpY2UuYXhpc0hhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5heGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZW5hYmxlID1cbiAgICAgICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gJiYgdGhpcy5heGlzPy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlKSB8fFxuICAgICAgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZTtcblxuICAgIGlmICghZW5hYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG5cbiAgICBpZiAoZW5hYmxlKSB7XG4gICAgICB0aGlzLl9lbGVtZW50ID0gZDMuc2VsZWN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuaGFzaCA9IG9iamVjdEhhc2guc2hhMSh7aW5kZXg6IHRoaXMuYXhpcy5pbmRleCwgb3JpZW50YXRpb246ICB0aGlzLmF4aXMub3JpZW50YXRpb24gfSlcblxuICAgICAgdGhpcy56b29tID0gZDMuem9vbSgpLmV4dGVudChbXG4gICAgICAgIFswLCAwXSxcbiAgICAgICAgW3RoaXMuc2l6ZS53aWR0aCwgdGhpcy5zaXplLmhlaWdodF0sXG4gICAgICBdKTtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LmxpbWl0VHJhbnNsYXRlQnlEYXRhKSB7XG4gICAgICAgIHRoaXMuem9vbS50cmFuc2xhdGVFeHRlbnQoW1xuICAgICAgICAgIFswLCAwXSxcbiAgICAgICAgICBbdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0XSxcbiAgICAgICAgXSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuYXhpc0hhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5heGlzKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZWxlbWVudEhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5fZWxlbWVudCk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnNjYWxlSGFzaE1hcC5zZXQodGhpcy5oYXNoLCB0aGlzLnNjYWxlKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbUhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy56b29tKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuc2V0QnJvYWRjYXN0Q2hhbm5lbCh0aGlzLmNvbmZpZz8uem9vbS5zeW5jQ2hhbm5lbClcblxuXG4gICAgICBjb25zdCBtYXhab29tID0gdGhpcy5jb25maWcuem9vbT8ubWF4XG4gICAgICAgID8gKHRoaXMuYXhpcy5leHRyZW1lc1sxXSAtIHRoaXMuYXhpcy5leHRyZW1lc1swXSkgL1xuICAgICAgICB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgICAgOiB0aGlzLmNvbmZpZy56b29tPy5saW1pdFpvb21CeURhdGFcbiAgICAgICAgICA/IDFcbiAgICAgICAgICA6IDA7XG5cbiAgICAgIGNvbnN0IG1pblpvb20gPSB0aGlzLmNvbmZpZy56b29tPy5taW5cbiAgICAgICAgPyAodGhpcy5heGlzLmV4dHJlbWVzWzFdIC0gdGhpcy5heGlzLmV4dHJlbWVzWzBdKSAvXG4gICAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgICA6IEluZmluaXR5O1xuXG4gICAgICB0aGlzLnpvb20uc2NhbGVFeHRlbnQoW21heFpvb20sIG1pblpvb21dKTtcblxuICAgICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2FsbCh0aGlzLnpvb20pLm9uKCdkYmxjbGljay56b29tJywgbnVsbCk7IC8vIERpc2FibGUgZGJjbGljayB6b29tXG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZz8uem9vbT8uem9vbUJlaGF2aW9yID09PSBab29tQmVoYXZpb3JUeXBlLndoZWVsKSB7XG4gICAgICAgIHRoaXMucnVuV2hlZWxab29tKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gem9vbSBldmVudHNcbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2VcbiAgICAgIC5zdWJzY3JpYmVUb1pvb20odGhpcy5jb25maWc/Lnpvb20uc3luY0NoYW5uZWwpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLmFsaXZlKSxcbiAgICAgICAgdGFwKChtOiBJQnJvYWRjYXN0TWVzc2FnZTxab29tTWVzc2FnZT4pID0+IHtcbiAgICAgICAgICAvLyBTeW5jIGZha2UgYXhpcyBhbmQgaW5kZXggYXhpcyAwXG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmF4aXMuaW5kZXggPT09IG0ubWVzc2FnZT8uYXhpcz8uaW5kZXggJiYgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBtLm1lc3NhZ2U/LmF4aXM/Lm9yaWVudGF0aW9uXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Wm9vbSA9IGQzLnpvb21UcmFuc2Zvcm0odGhpcy5fZWxlbWVudC5ub2RlKCkpO1xuXG5cblxuICAgICAgICAgICAgaWYoY3VycmVudFpvb20gIT09IG0ubWVzc2FnZS5ldmVudC50cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuem9vbS50cmFuc2Zvcm0sXG4gICAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnRyYW5zZm9ybVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PlxuICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCB8fFxuICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgV2hlZWxFdmVudCB8fFxuICAgICAgICAgICAgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmXG4gICAgICAgICAgICAgIG0ubWVzc2FnZS5ldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIFRvdWNoRXZlbnQpXG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcigobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYXhpcy5pbmRleCA9PT0gbS5tZXNzYWdlPy5heGlzPy5pbmRleCAmJlxuICAgICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBtLm1lc3NhZ2U/LmF4aXM/Lm9yaWVudGF0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmlkICE9PSBtLm1lc3NhZ2UuY2hhcnRJZCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLnpvb20udHJhbnNmb3JtLFxuICAgICAgICAgICAgICBtLm1lc3NhZ2UuZXZlbnQudHJhbnNmb3JtLFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gYnJ1c2ggZXZlbnRzIHggb3IgeVxuXG4gICAgaWYgKFxuICAgICAgKHRoaXMuY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueCAmJlxuICAgICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB8fFxuICAgICAgKHRoaXMuY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueSAmJlxuICAgICAgICB0aGlzLmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55KVxuICAgICkge1xuXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc3Vic2NyaWJlVG9CcnVzaCh0aGlzLmNvbmZpZz8uem9vbS5zeW5jQ2hhbm5lbClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVdoaWxlKChfKSA9PiB0aGlzLmFsaXZlKSxcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgICBmaWx0ZXIoKGRhdGE6IElCcm9hZGNhc3RNZXNzYWdlPEJydXNoTWVzc2FnZT4pID0+XG4gICAgICAgICAgICBCb29sZWFuKGRhdGEubWVzc2FnZS5zZWxlY3Rpb24pXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0YXAoKG06IElCcm9hZGNhc3RNZXNzYWdlPEJydXNoTWVzc2FnZT4pID0+IHtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRyYW5zZm9ybSA9IGQzLnpvb21UcmFuc2Zvcm0odGhpcy5fZWxlbWVudC5ub2RlKCkpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFtLm1lc3NhZ2UuZXZlbnQgJiZcbiAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uICYmXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2Zvcm0uayAhPT0gMVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcyA9IG0ubWVzc2FnZS5zZWxlY3Rpb247XG5cbiAgICAgICAgICAgIHRoaXMuYnJ1c2hTY2FsZS5kb21haW4odGhpcy5heGlzLm9yaWdpbkRvbWFpbik7XG4gICAgICAgICAgICBjb25zdCBkb21haW4gPSB0aGlzLmJydXNoU2NhbGUuZG9tYWluKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNjYWxlID0gKGRvbWFpblsxXSAtIGRvbWFpblswXSkgLyAoc1sxXSAtIHNbMF0pO1xuXG4gICAgICAgICAgICBsZXQgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5LnNjYWxlKHNjYWxlKTtcblxuICAgICAgICAgICAgaWYgKG0ubWVzc2FnZT8uYnJ1c2hUeXBlID09PSBCcnVzaFR5cGUueCkge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKC10aGlzLmJydXNoU2NhbGUoc1swXSksIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG0ubWVzc2FnZT8uYnJ1c2hUeXBlID09PSBCcnVzaFR5cGUueSkge1xuICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKDAsIC10aGlzLmJydXNoU2NhbGUoc1swXSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZihtLm1lc3NhZ2U/LnN0eWxlPy50cmFuc2l0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQudHJhbnNpdGlvbigpLmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtLCBudWxsLCB7fSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtLCBudWxsLCB7fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IG0ubWVzc2FnZS5zZWxlY3Rpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy56b29tPy5vbignc3RhcnQgem9vbSBlbmQnLCBudWxsKTtcbiAgICB0aGlzLl9lbGVtZW50Py5vbignd2hlZWwnLCBudWxsKTtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuXG4gIHpvb21lZCA9IChldmVudDogRDNab29tRXZlbnQ8YW55LCBhbnk+KSA9PiB7XG5cbiAgICBpZiAoZXZlbnQuc291cmNlRXZlbnQpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhldmVudC5zb3VyY2VFdmVudCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPT09IGV2ZW50LnRyYW5zZm9ybSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJydXNoU2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMuZXh0cmVtZXMpO1xuXG4gICAgICAgIGxldCBkb21haW4gPVxuICAgICAgICAgIHRoaXMuY29uZmlnLnpvb20/LnR5cGUgPT09IFpvb21UeXBlLnlcbiAgICAgICAgICAgID8gZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVZKG9yaWdpbikuZG9tYWluKClcbiAgICAgICAgICAgIDogZXZlbnQudHJhbnNmb3JtLnJlc2NhbGVYKG9yaWdpbikuZG9tYWluKCk7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IG5ldyBab29tTWVzc2FnZSh7XG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgYXhpczogdGhpcy5heGlzLFxuICAgICAgICAgIGJydXNoRG9tYWluOiBkb21haW4sXG4gICAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5icm9hZGNhc3Rab29tKHtcbiAgICAgICAgICBjaGFubmVsOiB0aGlzLmNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZmlyZVpvb20oe1xuICAgICAgICBldmVudCxcbiAgICAgICAgdGFyZ2V0OiB0aGlzLmF4aXMsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gZXZlbnQudHJhbnNmb3JtO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJ1bldoZWVsWm9vbSgpIHtcbiAgICBsZXQgdHlwZTogJ3N0YXJ0JyB8ICd6b29tJyB8ICdlbmQnID0gJ3N0YXJ0JztcbiAgICBsZXQgd2hlZWxpbmc7XG5cbiAgICB0aGlzLnpvb21cbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoZXZlbnQuY3RybEtleSAmJiBldmVudC50eXBlID09PSAnd2hlZWwnKSB8fFxuICAgICAgICAgICAgQm9vbGVhbih3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudC50eXBlICE9PSAnd2hlZWwnKVxuICAgICAgICB9XG4gICAgICApXG4gICAgICAud2hlZWxEZWx0YSgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICAgIHRoaXMuY29uZmlnPy56b29tLnR5cGUgPT09IFpvb21UeXBlLnhcbiAgICAgICAgICAgID8gLWV2ZW50LmRlbHRhWFxuICAgICAgICAgICAgOiAtZXZlbnQuZGVsdGFZO1xuICAgICAgICByZXR1cm4gZGVsdGEgKiAwLjAwMjtcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgZW1pdCA9ICh0eXBlOiBzdHJpbmcsIGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJydXNoU2NhbGUuY29weSgpLmRvbWFpbih0aGlzLmF4aXMuZXh0cmVtZXMpO1xuICAgICAgbGV0IHRyYW5zZm9ybSA9IHpvb21JZGVudGl0eTtcbiAgICAgIGNvbnN0IGRlbHRhID1cbiAgICAgICAgdHlwZSA9PT0gJ2VuZCdcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHRoaXMuY29uZmlnLnpvb20/LnR5cGUgPT09IFpvb21UeXBlLnlcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFZXG4gICAgICAgICAgICA6IGV2ZW50LmRlbHRhWDtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LnR5cGUgPT09IFpvb21UeXBlLnkpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICAwLFxuICAgICAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybS55IC0gZGVsdGEgLyAyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZy56b29tPy50eXBlID09PSBab29tVHlwZS54KSB7XG4gICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS50cmFuc2xhdGUoXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnggLSBkZWx0YSAvIDIsXG4gICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0uc2NhbGUodGhpcy5jdXJyZW50VHJhbnNmb3JtLmspO1xuXG4gICAgICBsZXQgZG9tYWluID1cbiAgICAgICAgdGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueVxuICAgICAgICAgID8gdHJhbnNmb3JtLnJlc2NhbGVZKG9yaWdpbikuZG9tYWluKClcbiAgICAgICAgICA6IHRyYW5zZm9ybS5yZXNjYWxlWChvcmlnaW4pLmRvbWFpbigpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgIH0sXG4gICAgICAgIGF4aXM6IHRoaXMuYXhpcyxcbiAgICAgICAgYnJ1c2hEb21haW46IGRvbWFpbixcbiAgICAgICAgY2hhcnRJZDogdGhpcy5jb25maWcuaWQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbSh7XG4gICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgc291cmNlRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgIHRyYW5zZm9ybSxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IHRoaXMuYXhpcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9lbGVtZW50LmNhbGwodGhpcy56b29tLnRyYW5zZm9ybSwgdHJhbnNmb3JtKTtcbiAgICAgIHRoaXMuY3VycmVudFRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcblxuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdFpvb20oe1xuICAgICAgICBjaGFubmVsOiB0aGlzLmNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICB9KTtcbiAgICB9O1xuXG5cbiAgICB0aGlzLl9lbGVtZW50Lm9uKCd3aGVlbCcsIChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQod2hlZWxpbmcpO1xuICAgICAgICBlbWl0KHR5cGUsIGV2ZW50KTtcbiAgICAgICAgdHlwZSA9ICd6b29tJztcblxuICAgICAgICB3aGVlbGluZyA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGVtaXQoJ2VuZCcsIGV2ZW50KTtcblxuICAgICAgICAgIHR5cGUgPSAnc3RhcnQnO1xuICAgICAgICB9LCA1MCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICB9XG59XG4iXX0=
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbWFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2RpcmVjdGl2ZXMvem9vbWFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsV0FBVyxFQUNYLEtBQUssR0FJTixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQTRCLFlBQVksRUFBQyxNQUFNLElBQUksQ0FBQztBQUMzRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBa0MsV0FBVyxHQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxZQUFZLEVBQUUsR0FBRyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUEwQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFNckMsTUFBTSxPQUFPLGlCQUFpQjtJQWtCNUIsWUFDVSxVQUFzQixFQUN0QixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsSUFBWTtRQUpaLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBaEJpQixhQUFRLEdBQUcsS0FBSyxDQUFD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QUFFO29CQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUVuQixJQUFJLEdBQUcsT0FBTyxDQUFDO2dCQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQzs7OEdBdFZVLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtpQkFDM0I7ME1BRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRWlDLFFBQVE7c0JBQTlDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNXLFNBQVM7c0JBQWhELFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Wm9vbVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2Uvem9vbS5zZXJ2aWNlJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0F4aXN9IGZyb20gJy4uL2NvcmUvYXhpcy9heGlzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7RDNab29tRXZlbnQsIFpvb21CZWhhdmlvciwgem9vbUlkZW50aXR5fSBmcm9tICdkMyc7XG5pbXBvcnQge1pvb21UeXBlfSBmcm9tICcuLi9tb2RlbC9lbnVtL3pvb20tdHlwZSc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7QnJ1c2hNZXNzYWdlLCBJQnJvYWRjYXN0TWVzc2FnZSwgWm9vbU1lc3NhZ2UsfSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmltcG9ydCB7QnJ1c2hUeXBlfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0IHtCcm9hZGNhc3RTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2Jyb2FkY2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCB0YXAsIHRocm90dGxlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHthbmltYXRpb25GcmFtZVNjaGVkdWxlciwgZmlsdGVyLCB0YWtlV2hpbGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDaGFydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvY2hhcnQuc2VydmljZSc7XG5pbXBvcnQge1pvb21CZWhhdmlvclR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vem9vbS1iZWhhdmlvci10eXBlJztcbmltcG9ydCBvYmplY3RIYXNoIGZyb20gJ29iamVjdC1oYXNoJztcbmltcG9ydCB7dGV0YVpvbmVGdWxsfSBmcm9tIFwiQHRldGFjb20vbmctY29tcG9uZW50c1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGV0YVpvb21hYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFpvb21hYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY29uZmlnOiBJQ2hhcnRDb25maWc7XG4gIEBJbnB1dCgpIGF4aXM6IEF4aXM7XG4gIEBJbnB1dCgpIHNpemU6IERPTVJlY3Q7XG4gIEBJbnB1dCgpIGJydXNoU2NhbGU/OiBhbnk7XG4gIEBJbnB1dCgpIHNjYWxlPzogYW55O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muem9vbWFibGUnKSBwcml2YXRlIHpvb21hYmxlID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY3Jvc3NoYWlyJykgcHJpdmF0ZSBjcm9zc2hhaXIgPSBmYWxzZTtcblxuICBwcml2YXRlIF9lbGVtZW50OiBkMy5TZWxlY3Rpb248U1ZHRWxlbWVudCwgYW55LCBhbnksIGFueT47XG4gIHByaXZhdGUgem9vbTogWm9vbUJlaGF2aW9yPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBhbGl2ZSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBjdXJyZW50VHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICBwcml2YXRlIGN1cnJlbnRTZWxlY3Rpb247XG4gIHByaXZhdGUgaGFzaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZSxcbiAgICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IEJyb2FkY2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gfHwgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZSkge1xuICAgICAgdGhpcy56b29tYWJsZSA9IHRoaXMuY29uZmlnPy56b29tPy56b29tQmVoYXZpb3IgPT09IFpvb21CZWhhdmlvclR5cGUubW92ZSAmJiAhdGhpcy5jb25maWc/LnRvb2x0aXA/LnNob3dDcm9zc2hhaXI7XG4gICAgICB0aGlzLmNyb3NzaGFpciA9IHRoaXMuY29uZmlnPy50b29sdGlwPy5zaG93Q3Jvc3NoYWlyO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdicnVzaFNjYWxlJykgfHwgY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eSgnc2NhbGUnKSB8fCBjaGFuZ2VzLmhhc093blByb3BlcnR5KCdheGlzJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc2gpIHtcbiAgICAgICAgdGhpcy56b29tU2VydmljZS5zY2FsZUhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5zY2FsZSk7XG4gICAgICAgIHRoaXMuem9vbVNlcnZpY2UuYXhpc0hhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5heGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZW5hYmxlID1cbiAgICAgICh0aGlzLmF4aXM/Lm9wdGlvbnM/Lnpvb20gJiYgdGhpcy5heGlzPy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlKSB8fFxuICAgICAgdGhpcy5jb25maWc/Lnpvb20/LmVuYWJsZTtcblxuICAgIGlmICghZW5hYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG5cbiAgICBpZiAoZW5hYmxlKSB7XG4gICAgICB0aGlzLl9lbGVtZW50ID0gZDMuc2VsZWN0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIHRoaXMuaGFzaCA9IG9iamVjdEhhc2guc2hhMSh7aW5kZXg6IHRoaXMuYXhpcy5pbmRleCwgb3JpZW50YXRpb246ICB0aGlzLmF4aXMub3JpZW50YXRpb24gfSlcblxuICAgICAgdGhpcy56b29tID0gZDMuem9vbSgpLmV4dGVudChbXG4gICAgICAgIFswLCAwXSxcbiAgICAgICAgW3RoaXMuc2l6ZS53aWR0aCwgdGhpcy5zaXplLmhlaWdodF0sXG4gICAgICBdKTtcblxuICAgICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LmxpbWl0VHJhbnNsYXRlQnlEYXRhKSB7XG4gICAgICAgIHRoaXMuem9vbS50cmFuc2xhdGVFeHRlbnQoW1xuICAgICAgICAgIFswLCAwXSxcbiAgICAgICAgICBbdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0XSxcbiAgICAgICAgXSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuYXhpc0hhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5heGlzKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2UuZWxlbWVudEhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy5fZWxlbWVudCk7XG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnNjYWxlSGFzaE1hcC5zZXQodGhpcy5oYXNoLCB0aGlzLnNjYWxlKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuem9vbUhhc2hNYXAuc2V0KHRoaXMuaGFzaCwgdGhpcy56b29tKTtcbiAgICAgIHRoaXMuem9vbVNlcnZpY2Uuc2V0QnJvYWRjYXN0Q2hhbm5lbCh0aGlzLmNvbmZpZz8uem9vbS5zeW5jQ2hhbm5lbClcblxuXG4gICAgICBjb25zdCBtYXhab29tID0gdGhpcy5jb25maWcuem9vbT8ubWF4XG4gICAgICAgID8gKHRoaXMuYXhpcy5leHRyZW1lc1sxXSAtIHRoaXMuYXhpcy5leHRyZW1lc1swXSkgL1xuICAgICAgICB0aGlzLmNvbmZpZy56b29tPy5tYXhcbiAgICAgICAgOiB0aGlzLmNvbmZpZy56b29tPy5saW1pdFpvb21CeURhdGFcbiAgICAgICAgICA/IDFcbiAgICAgICAgICA6IDA7XG5cbiAgICAgIGNvbnN0IG1pblpvb20gPSB0aGlzLmNvbmZpZy56b29tPy5taW5cbiAgICAgICAgPyAodGhpcy5heGlzLmV4dHJlbWVzWzFdIC0gdGhpcy5heGlzLmV4dHJlbWVzWzBdKSAvXG4gICAgICAgIHRoaXMuY29uZmlnLnpvb20/Lm1pblxuICAgICAgICA6IEluZmluaXR5O1xuXG4gICAgICB0aGlzLnpvb20uc2NhbGVFeHRlbnQoW21heFpvb20sIG1pblpvb21dKTtcblxuICAgICAgdGhpcy56b29tLm9uKCd6b29tIGVuZCcsIHRoaXMuem9vbWVkKTtcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2FsbCh0aGlzLnpvb20pLm9uKCdkYmxjbGljay56b29tJywgbnVsbCk7IC8vIERpc2FibGUgZGJjbGljayB6b29tXG5cbiAgICAgIGlmICh0aGlzLmNvbmZpZz8uem9vbT8uem9vbUJlaGF2aW9yID09PSBab29tQmVoYXZpb3JUeXBlLndoZWVsKSB7XG4gICAgICAgIHRoaXMucnVuV2hlZWxab29tKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gem9vbSBldmVudHNcbiAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2Uuc3Vic2NyaWJlVG9ab29tKHRoaXMuY29uZmlnPy56b29tLnN5bmNDaGFubmVsKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5hbGl2ZSksXG4gICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5heGlzLmluZGV4ID09PSBtLm1lc3NhZ2U/LmF4aXM/LmluZGV4ICYmIHRoaXMuYXhpcy5vcmllbnRhdGlvbiA9PT0gbS5tZXNzYWdlPy5heGlzPy5vcmllbnRhdGlvblxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFpvb20gPSBkMy56b29tVHJhbnNmb3JtKHRoaXMuX2VsZW1lbnQubm9kZSgpKTtcblxuICAgICAgICAgICAgaWYoY3VycmVudFpvb20gIT09IG0ubWVzc2FnZS5ldmVudC50cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuem9vbS50cmFuc2Zvcm0sXG4gICAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnRyYW5zZm9ybVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcihcbiAgICAgICAgICAobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PlxuICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCB8fFxuICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgV2hlZWxFdmVudCB8fFxuICAgICAgICAgICAgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmXG4gICAgICAgICAgICAgIG0ubWVzc2FnZS5ldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIFRvdWNoRXZlbnQpXG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcigobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYXhpcy5pbmRleCA9PT0gbS5tZXNzYWdlPy5heGlzPy5pbmRleCAmJlxuICAgICAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBtLm1lc3NhZ2U/LmF4aXM/Lm9yaWVudGF0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmlkICE9PSBtLm1lc3NhZ2U/LmNoYXJ0SWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2FsbChcbiAgICAgICAgICAgICAgdGhpcy56b29tLnRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnRyYW5zZm9ybSxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAge31cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIGJydXNoIGV2ZW50cyB4IG9yIHlcblxuICAgIGlmIChcbiAgICAgICh0aGlzLmNvbmZpZy5icnVzaD8udHlwZSA9PT0gQnJ1c2hUeXBlLnggJiZcbiAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueCkgfHxcbiAgICAgICh0aGlzLmNvbmZpZy5icnVzaD8udHlwZSA9PT0gQnJ1c2hUeXBlLnkgJiZcbiAgICAgICAgdGhpcy5heGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSlcbiAgICApIHtcblxuICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLnN1YnNjcmliZVRvQnJ1c2godGhpcy5jb25maWc/Lnpvb20uc3luY0NoYW5uZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5hbGl2ZSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICAgICAgZmlsdGVyKChkYXRhOiBJQnJvYWRjYXN0TWVzc2FnZTxCcnVzaE1lc3NhZ2U+KSA9PlxuICAgICAgICAgICAgQm9vbGVhbihkYXRhLm1lc3NhZ2Uuc2VsZWN0aW9uKVxuICAgICAgICAgICksXG4gICAgICAgICAgdGFwKChtOiBJQnJvYWRjYXN0TWVzc2FnZTxCcnVzaE1lc3NhZ2U+KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUcmFuc2Zvcm0gPSBkMy56b29tVHJhbnNmb3JtKHRoaXMuX2VsZW1lbnQubm9kZSgpKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhbS5tZXNzYWdlLmV2ZW50ICYmXG4gICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiAmJlxuICAgICAgICAgICAgICBjdXJyZW50VHJhbnNmb3JtLmsgIT09IDFcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHMgPSBtLm1lc3NhZ2Uuc2VsZWN0aW9uO1xuXG4gICAgICAgICAgICB0aGlzLmJydXNoU2NhbGUuZG9tYWluKHRoaXMuYXhpcy5vcmlnaW5Eb21haW4pO1xuICAgICAgICAgICAgY29uc3QgZG9tYWluID0gdGhpcy5icnVzaFNjYWxlLmRvbWFpbigpO1xuXG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IChkb21haW5bMV0gLSBkb21haW5bMF0pIC8gKHNbMV0gLSBzWzBdKTtcblxuICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IHpvb21JZGVudGl0eS5zY2FsZShzY2FsZSk7XG5cbiAgICAgICAgICAgIGlmIChtLm1lc3NhZ2U/LmJydXNoVHlwZSA9PT0gQnJ1c2hUeXBlLngpIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZSgtdGhpcy5icnVzaFNjYWxlKHNbMF0pLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtLm1lc3NhZ2U/LmJydXNoVHlwZSA9PT0gQnJ1c2hUeXBlLnkpIHtcbiAgICAgICAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZSgwLCAtdGhpcy5icnVzaFNjYWxlKHNbMF0pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYobS5tZXNzYWdlPy5zdHlsZT8udHJhbnNpdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50LnRyYW5zaXRpb24oKS5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge30pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5jYWxsKHRoaXMuem9vbS50cmFuc2Zvcm0sIHRyYW5zZm9ybSwgbnVsbCwge30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSBtLm1lc3NhZ2Uuc2VsZWN0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuem9vbT8ub24oJ3N0YXJ0IHpvb20gZW5kJywgbnVsbCk7XG4gICAgdGhpcy5fZWxlbWVudD8ub24oJ3doZWVsJywgbnVsbCk7XG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xuICB9XG5cblxuICB6b29tZWQgPSAoZXZlbnQ6IEQzWm9vbUV2ZW50PGFueSwgYW55PikgPT4ge1xuICAgIGlmIChldmVudC5zb3VyY2VFdmVudCkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGV2ZW50LnNvdXJjZUV2ZW50KS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFRyYW5zZm9ybSA9PT0gZXZlbnQudHJhbnNmb3JtKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYnJ1c2hTY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5leHRyZW1lcyk7XG5cbiAgICAgICAgbGV0IGRvbWFpbiA9XG4gICAgICAgICAgdGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueVxuICAgICAgICAgICAgPyBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgICAgOiBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVgob3JpZ2luKS5kb21haW4oKTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IFpvb21NZXNzYWdlKHtcbiAgICAgICAgICBldmVudCxcbiAgICAgICAgICBheGlzOiB0aGlzLmF4aXMsXG4gICAgICAgICAgYnJ1c2hEb21haW46IGRvbWFpbixcbiAgICAgICAgICBjaGFydElkOiB0aGlzLmNvbmZpZy5pZCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdFpvb20oe1xuICAgICAgICAgIGNoYW5uZWw6IHRoaXMuY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy56b29tU2VydmljZS5maXJlWm9vbSh7XG4gICAgICAgIGV2ZW50LFxuICAgICAgICB0YXJnZXQ6IHRoaXMuYXhpcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0gPSBldmVudC50cmFuc2Zvcm07XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgcnVuV2hlZWxab29tKCkge1xuICAgIGxldCB0eXBlOiAnc3RhcnQnIHwgJ3pvb20nIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICAgIGxldCB3aGVlbGluZztcblxuICAgIHRoaXMuem9vbVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnR5cGUgPT09ICd3aGVlbCcpIHx8XG4gICAgICAgICAgICBCb29sZWFuKHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50LnR5cGUgIT09ICd3aGVlbCcpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC53aGVlbERlbHRhKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBkZWx0YSA9XG4gICAgICAgICAgdGhpcy5jb25maWc/Lnpvb20udHlwZSA9PT0gWm9vbVR5cGUueFxuICAgICAgICAgICAgPyAtZXZlbnQuZGVsdGFYXG4gICAgICAgICAgICA6IC1ldmVudC5kZWx0YVk7XG4gICAgICAgIHJldHVybiBkZWx0YSAqIDAuMDAyO1xuICAgICAgfSk7XG5cbiAgICBjb25zdCBlbWl0ID0gKHR5cGU6IHN0cmluZywgZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYnJ1c2hTY2FsZS5jb3B5KCkuZG9tYWluKHRoaXMuYXhpcy5leHRyZW1lcyk7XG4gICAgICBsZXQgdHJhbnNmb3JtID0gem9vbUlkZW50aXR5O1xuICAgICAgY29uc3QgZGVsdGEgPVxuICAgICAgICB0eXBlID09PSAnZW5kJ1xuICAgICAgICAgID8gMFxuICAgICAgICAgIDogdGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueVxuICAgICAgICAgICAgPyBldmVudC5kZWx0YVlcbiAgICAgICAgICAgIDogZXZlbnQuZGVsdGFYO1xuXG4gICAgICBpZiAodGhpcy5jb25maWcuem9vbT8udHlwZSA9PT0gWm9vbVR5cGUueSkge1xuICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm0udHJhbnNsYXRlKFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtLnkgLSBkZWx0YSAvIDJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuY29uZmlnLnpvb20/LnR5cGUgPT09IFpvb21UeXBlLngpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gdHJhbnNmb3JtLnRyYW5zbGF0ZShcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUcmFuc2Zvcm0ueCAtIGRlbHRhIC8gMixcbiAgICAgICAgICAwXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybS5zY2FsZSh0aGlzLmN1cnJlbnRUcmFuc2Zvcm0uayk7XG5cbiAgICAgIGxldCBkb21haW4gPVxuICAgICAgICB0aGlzLmNvbmZpZy56b29tPy50eXBlID09PSBab29tVHlwZS55XG4gICAgICAgICAgPyB0cmFuc2Zvcm0ucmVzY2FsZVkob3JpZ2luKS5kb21haW4oKVxuICAgICAgICAgIDogdHJhbnNmb3JtLnJlc2NhbGVYKG9yaWdpbikuZG9tYWluKCk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgWm9vbU1lc3NhZ2Uoe1xuICAgICAgICBldmVudDoge1xuICAgICAgICAgIHNvdXJjZUV2ZW50OiBldmVudCxcbiAgICAgICAgICB0cmFuc2Zvcm0sXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgYXhpczogdGhpcy5heGlzLFxuICAgICAgICBicnVzaERvbWFpbjogZG9tYWluLFxuICAgICAgICBjaGFydElkOiB0aGlzLmNvbmZpZy5pZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLmZpcmVab29tKHtcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICBzb3VyY2VFdmVudDogZXZlbnQsXG4gICAgICAgICAgdHJhbnNmb3JtLFxuICAgICAgICAgIHR5cGUsXG4gICAgICAgIH0sXG4gICAgICAgIHRhcmdldDogdGhpcy5heGlzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2VsZW1lbnQuY2FsbCh0aGlzLnpvb20udHJhbnNmb3JtLCB0cmFuc2Zvcm0pO1xuICAgICAgdGhpcy5jdXJyZW50VHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuXG4gICAgICB0aGlzLmJyb2FkY2FzdFNlcnZpY2UuYnJvYWRjYXN0Wm9vbSh7XG4gICAgICAgIGNoYW5uZWw6IHRoaXMuY29uZmlnPy56b29tPy5zeW5jQ2hhbm5lbCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgIH0pO1xuICAgIH07XG5cblxuICAgIHRoaXMuX2VsZW1lbnQub24oJ3doZWVsJywgKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh3aGVlbGluZyk7XG4gICAgICAgIGVtaXQodHlwZSwgZXZlbnQpO1xuICAgICAgICB0eXBlID0gJ3pvb20nO1xuXG4gICAgICAgIHdoZWVsaW5nID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgZW1pdCgnZW5kJywgZXZlbnQpO1xuXG4gICAgICAgICAgdHlwZSA9ICdzdGFydCc7XG4gICAgICAgIH0sIDUwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cbn1cbiJdfQ==
@@ -16,4 +16,4 @@ export class BrushMessage {
16
16
  this.style = options?.style;
17
17
  }
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1icm9hZGNhc3QtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQVksT0FNWDtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxPQU1YO1FBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0QzQnJ1c2hFdmVudCwgRDNab29tRXZlbnR9IGZyb20gJ2QzJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcblxuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1TdHlsZSA9IHtcbiAgdHJhbnNpdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBab29tTWVzc2FnZSB7XG4gIGV2ZW50OiBEM1pvb21FdmVudDxhbnksIGFueT4gfCBhbnk7XG4gIGF4aXM/OiBBeGlzO1xuICBicnVzaERvbWFpbj86IG51bWJlcltdO1xuICBjaGFydElkOiBzdHJpbmc7XG4gIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9ucz86IHtcbiAgICBldmVudDogRDNab29tRXZlbnQ8YW55LCBhbnk+IHwgYW55O1xuICAgIGF4aXM/OiBBeGlzO1xuICAgIGJydXNoRG9tYWluPzogbnVtYmVyW11cbiAgICBjaGFydElkOiBzdHJpbmc7XG4gICAgc3R5bGU/OiBUcmFuc2Zvcm1TdHlsZTtcbiAgfSkge1xuICAgIHRoaXMuZXZlbnQgPSBvcHRpb25zPy5ldmVudDtcbiAgICB0aGlzLmF4aXMgPSBvcHRpb25zPy5heGlzO1xuICAgIHRoaXMuYnJ1c2hEb21haW4gPSBvcHRpb25zLmJydXNoRG9tYWluO1xuICAgIHRoaXMuY2hhcnRJZCA9IG9wdGlvbnM/LmNoYXJ0SWQ7XG4gICAgdGhpcy5zdHlsZSA9IG9wdGlvbnM/LnN0eWxlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCcnVzaE1lc3NhZ2Uge1xuICBldmVudDogRDNCcnVzaEV2ZW50PGFueT4gfCBudWxsO1xuICBicnVzaFR5cGU6IEJydXNoVHlwZTtcbiAgc2VsZWN0aW9uOiBudW1iZXJbXTtcbiAgYnJ1c2hTY2FsZT86IGFueTtcbiAgc3R5bGU/OiBUcmFuc2Zvcm1TdHlsZVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgZXZlbnQ6IEQzQnJ1c2hFdmVudDxhbnk+IHwgbnVsbDtcbiAgICBicnVzaFR5cGU6IEJydXNoVHlwZTtcbiAgICBzZWxlY3Rpb246IG51bWJlcltdO1xuICAgIGJydXNoU2NhbGU/OiBhbnk7XG4gICAgc3R5bGU/OiBUcmFuc2Zvcm1TdHlsZVxuICB9KSB7XG4gICAgdGhpcy5ldmVudCA9IG9wdGlvbnM/LmV2ZW50O1xuICAgIHRoaXMuYnJ1c2hUeXBlID0gb3B0aW9ucz8uYnJ1c2hUeXBlO1xuICAgIHRoaXMuc2VsZWN0aW9uID0gb3B0aW9ucz8uc2VsZWN0aW9uO1xuICAgIHRoaXMuYnJ1c2hTY2FsZSA9IG9wdGlvbnM/LmJydXNoU2NhbGU7XG4gICAgdGhpcy5zdHlsZSA9IG9wdGlvbnM/LnN0eWxlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUJyb2FkY2FzdE1lc3NhZ2U8VD4ge1xuICBjaGFubmVsOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IFQ7XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1icm9hZGNhc3QtbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sT0FBTyxXQUFXO0lBT3RCLFlBQVksT0FNWDtRQUNDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxPQU1YO1FBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFNBQVMsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0QzQnJ1c2hFdmVudCwgRDNab29tRXZlbnR9IGZyb20gJ2QzJztcbmltcG9ydCB7QXhpc30gZnJvbSAnLi4vY29yZS9heGlzL2F4aXMnO1xuaW1wb3J0IHtCcnVzaFR5cGV9IGZyb20gJy4vZW51bS9icnVzaC10eXBlJztcblxuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1TdHlsZSA9IHtcbiAgdHJhbnNpdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBab29tTWVzc2FnZSB7XG4gIGV2ZW50PzogRDNab29tRXZlbnQ8YW55LCBhbnk+IHwgYW55O1xuICBheGlzPzogQXhpcztcbiAgYnJ1c2hEb21haW4/OiBudW1iZXJbXTtcbiAgY2hhcnRJZDogc3RyaW5nO1xuICBzdHlsZT86IFRyYW5zZm9ybVN0eWxlO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiB7XG4gICAgZXZlbnQ6IEQzWm9vbUV2ZW50PGFueSwgYW55PiB8IGFueTtcbiAgICBheGlzPzogQXhpcztcbiAgICBicnVzaERvbWFpbj86IG51bWJlcltdXG4gICAgY2hhcnRJZDogc3RyaW5nO1xuICAgIHN0eWxlPzogVHJhbnNmb3JtU3R5bGU7XG4gIH0pIHtcbiAgICB0aGlzLmV2ZW50ID0gb3B0aW9ucz8uZXZlbnQ7XG4gICAgdGhpcy5heGlzID0gb3B0aW9ucz8uYXhpcztcbiAgICB0aGlzLmJydXNoRG9tYWluID0gb3B0aW9ucy5icnVzaERvbWFpbjtcbiAgICB0aGlzLmNoYXJ0SWQgPSBvcHRpb25zPy5jaGFydElkO1xuICAgIHRoaXMuc3R5bGUgPSBvcHRpb25zPy5zdHlsZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnJ1c2hNZXNzYWdlIHtcbiAgZXZlbnQ6IEQzQnJ1c2hFdmVudDxhbnk+IHwgbnVsbDtcbiAgYnJ1c2hUeXBlOiBCcnVzaFR5cGU7XG4gIHNlbGVjdGlvbjogbnVtYmVyW107XG4gIGJydXNoU2NhbGU/OiBhbnk7XG4gIHN0eWxlPzogVHJhbnNmb3JtU3R5bGVcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGV2ZW50OiBEM0JydXNoRXZlbnQ8YW55PiB8IG51bGw7XG4gICAgYnJ1c2hUeXBlOiBCcnVzaFR5cGU7XG4gICAgc2VsZWN0aW9uOiBudW1iZXJbXTtcbiAgICBicnVzaFNjYWxlPzogYW55O1xuICAgIHN0eWxlPzogVHJhbnNmb3JtU3R5bGVcbiAgfSkge1xuICAgIHRoaXMuZXZlbnQgPSBvcHRpb25zPy5ldmVudDtcbiAgICB0aGlzLmJydXNoVHlwZSA9IG9wdGlvbnM/LmJydXNoVHlwZTtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG9wdGlvbnM/LnNlbGVjdGlvbjtcbiAgICB0aGlzLmJydXNoU2NhbGUgPSBvcHRpb25zPy5icnVzaFNjYWxlO1xuICAgIHRoaXMuc3R5bGUgPSBvcHRpb25zPy5zdHlsZTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElCcm9hZGNhc3RNZXNzYWdlPFQ+IHtcbiAgY2hhbm5lbDogc3RyaW5nO1xuICBtZXNzYWdlOiBUO1xufVxuIl19
@@ -1,9 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { BrushType } from '../model/enum/brush-type';
3
3
  import * as d3 from 'd3';
4
- import { animationFrameScheduler, filter, tap } from 'rxjs';
4
+ import { filter, tap } from 'rxjs';
5
5
  import { BrushMessage, } from '../model/i-broadcast-message';
6
- import { throttleTime } from 'rxjs/operators';
7
6
  import { AxisOrientation } from '../model/enum/axis-orientation';
8
7
  import * as i0 from "@angular/core";
9
8
  import * as i1 from "./broadcast.service";
@@ -113,7 +112,7 @@ export class BrushService {
113
112
  m.message.event.sourceEvent instanceof WheelEvent ||
114
113
  (window.TouchEvent &&
115
114
  m.message.event.sourceEvent instanceof TouchEvent));
116
- }), throttleTime(0, animationFrameScheduler, { trailing: true }), tap((m) => {
115
+ }), tap((m) => {
117
116
  const { message: { brushDomain }, } = m;
118
117
  if ((m.message?.axis.index === 0 &&
119
118
  m.message?.axis.orientation === AxisOrientation.y &&
@@ -154,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
154
153
  providedIn: 'root',
155
154
  }]
156
155
  }], ctorParameters: function () { return [{ type: i1.BroadcastService }, { type: i0.NgZone }]; } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBZ0IsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFDTCxZQUFZLEdBR2IsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFLakUsTUFBTSxPQUFPLFlBQVk7SUFXdkIsWUFDVSxnQkFBa0MsRUFDbEMsSUFBWTtRQURaLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVJkLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0M7YUFDM0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBTzlCLENBQUM7SUFFSixVQUFVLENBQUMsVUFBc0IsRUFBRSxNQUFvQixFQUFFLFVBQWU7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFbkUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUF1QixFQUFFLEVBQUU7Z0JBQzNELElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtvQkFDakIsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO3dCQUFFLE9BQU87b0JBRXpCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQXFCLENBQUM7b0JBRTNDLElBQUksRUFBRSxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUU7d0JBQ25CLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQzs0QkFDL0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDekQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUUxRCxNQUFNLGlCQUFpQixHQUFhOzRCQUNsQyxJQUFJLEdBQUcsZUFBZTs0QkFDdEIsRUFBRSxHQUFHLGVBQWU7eUJBQ3JCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFFekIsSUFDRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7NEJBQzNDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUNqQjs0QkFDQSxTQUFTLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNmO2dDQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7NkJBQ3JELENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUNsQixDQUFDOzRCQUNGLE9BQU87eUJBQ1I7d0JBRUQsSUFDRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7NEJBQzNDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUNqQjs0QkFDQSxTQUFTLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNmO2dDQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7NkJBQ3BELENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUNsQixDQUFDOzRCQUNGLE9BQU87eUJBQ1I7d0JBRUQsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTs0QkFDOUIsSUFBSSxHQUFHLGVBQWU7NEJBQ3RCLEVBQUUsR0FBRyxlQUFlO3lCQUNyQixDQUFDLENBQUM7d0JBQ0gsT0FBTztxQkFDUjtvQkFFRCxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQy9DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUNqQjt3QkFDQSxTQUFTLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNmLElBQUksQ0FBQyxTQUFTOzRCQUNaLENBQUMsQ0FBQztnQ0FDRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQ0FDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUc7NkJBQ3RDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs0QkFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQzNELENBQUM7d0JBQ0YsT0FBTztxQkFDUjtvQkFFRCxJQUNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7d0JBQy9DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUNqQjt3QkFDQSxTQUFTLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNmLElBQUksQ0FBQyxTQUFTOzRCQUNaLENBQUMsQ0FBQztnQ0FDRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQ0FDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUc7NkJBQ3RDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQzs0QkFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQzNELENBQUM7d0JBQ0YsT0FBTztxQkFDUjtvQkFFRCxJQUFJLENBQUMsQ0FBQyxXQUFXLFlBQVksVUFBVSxFQUFFO3dCQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDckQ7b0JBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUM7d0JBQ3BDLEtBQUssRUFBRSxDQUFDO3dCQUNSLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDM0QsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDO3dCQUM3QyxVQUFVO3FCQUNYLENBQUMsQ0FBQztvQkFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO3dCQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXO3dCQUNsQyxPQUFPLEVBQUUsWUFBWTtxQkFDdEIsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFM0IsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUVqQyxJQUFJLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7cUJBQy9CO29CQUVELElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7d0JBQ3JCLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztxQkFDN0I7b0JBRUQsU0FBUyxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFDZixJQUFJLENBQUMsU0FBUzt3QkFDWixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO3dCQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFDMUIsRUFBRSxDQUNILENBQUM7Z0JBQ0osQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtpQkFDL0MsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDO2lCQUMxQyxJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsQ0FBaUMsRUFBRSxFQUFFO2dCQUMzQyxPQUFPLENBQ0wsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxZQUFZLFVBQVU7b0JBQ2pELENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsWUFBWSxVQUFVO29CQUNqRCxDQUFDLE1BQU0sQ0FBQyxVQUFVO3dCQUNoQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLFlBQVksVUFBVSxDQUFDLENBQ3JELENBQUM7WUFDSixDQUFDLENBQUMsRUFDRixZQUFZLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQzVELEdBQUcsQ0FBQyxDQUFDLENBQWlDLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxFQUNKLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUN6QixHQUFHLENBQUMsQ0FBQztnQkFFTixJQUNFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUM7b0JBQzFCLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsQ0FBQztvQkFDakQsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLENBQUM7d0JBQ2hELE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDckM7b0JBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTt3QkFDOUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDM0IsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTt3QkFDbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUM7NEJBQ3BDLEtBQUssRUFBRSxJQUFJOzRCQUNYLFNBQVMsRUFBRSxXQUFXOzRCQUN0QixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7NEJBQzdDLFVBQVU7eUJBQ1gsQ0FBQyxDQUFDO3dCQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7NEJBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVc7NEJBQ2xDLE9BQU8sRUFBRSxZQUFZO3lCQUN0QixDQUFDLENBQUM7cUJBQ0o7b0JBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7O3lHQTNNVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcnVzaFR5cGUgfSBmcm9tICcuLi9tb2RlbC9lbnVtL2JydXNoLXR5cGUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIGZpbHRlciwgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyb2FkY2FzdFNlcnZpY2UgfSBmcm9tICcuL2Jyb2FkY2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElDaGFydENvbmZpZyB9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtY29uZmlnJztcbmltcG9ydCB7XG4gIEJydXNoTWVzc2FnZSxcbiAgSUJyb2FkY2FzdE1lc3NhZ2UsXG4gIFpvb21NZXNzYWdlLFxufSBmcm9tICcuLi9tb2RlbC9pLWJyb2FkY2FzdC1tZXNzYWdlJztcbmltcG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF4aXNPcmllbnRhdGlvbiB9IGZyb20gJy4uL21vZGVsL2VudW0vYXhpcy1vcmllbnRhdGlvbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCcnVzaFNlcnZpY2Uge1xuICBicm9hZGNhc3RTdWJzY3JpYnRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGJydXNoOiBkMy5CcnVzaEJlaGF2aW9yPGFueT47XG5cbiAgcHJpdmF0ZSBicnVzaE1hcCA9IG5ldyBNYXA8QnJ1c2hUeXBlLCBkMy5CcnVzaEJlaGF2aW9yPGFueT4+KClcbiAgICAuc2V0KEJydXNoVHlwZS54LCBkMy5icnVzaFgoKSlcbiAgICAuc2V0KEJydXNoVHlwZS55LCBkMy5icnVzaFkoKSk7XG5cbiAgcHJpdmF0ZSBzZWxlY3Rpb246IG51bWJlcltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYnJvYWRjYXN0U2VydmljZTogQnJvYWRjYXN0U2VydmljZSxcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgYXBwbHlCcnVzaChzdmdFbGVtZW50OiBFbGVtZW50UmVmLCBjb25maWc6IElDaGFydENvbmZpZywgYnJ1c2hTY2FsZTogYW55KSB7XG4gICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5icnVzaD8ub24oJ3N0YXJ0IGJydXNoIGVuZCcsIG51bGwpO1xuICAgIGlmIChjb25maWcuYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgdGhpcy5icnVzaCA9IHRoaXMuYnJ1c2hNYXAuZ2V0KGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngpO1xuXG4gICAgICBjb25zdCBjb250YWluZXIgPSBkMy5zZWxlY3Qoc3ZnRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgdGhpcy5icnVzaC5vbignc3RhcnQgYnJ1c2ggZW5kJywgKF86IGQzLkQzQnJ1c2hFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGlmIChfLnNvdXJjZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKCFfLnNlbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgW2Zyb20sIHRvXSA9IF8uc2VsZWN0aW9uIGFzIG51bWJlcltdO1xuXG4gICAgICAgICAgaWYgKHRvIC0gZnJvbSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uOiBudW1iZXJbXSA9XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5tYXAoYnJ1c2hTY2FsZSkgPz9cbiAgICAgICAgICAgICAgW2NvbmZpZy5icnVzaD8uZnJvbSwgY29uZmlnLmJydXNoPy50b10ubWFwKGJydXNoU2NhbGUpO1xuICAgICAgICAgICAgY29uc3QgaGFsZkJydXNoSGVpZ2h0ID0gKHNlbGVjdGlvblsxXSAtIHNlbGVjdGlvblswXSkgLyAyO1xuXG4gICAgICAgICAgICBjb25zdCBpbnZlcnRlZFNlbGVjdGlvbjogbnVtYmVyW10gPSBbXG4gICAgICAgICAgICAgIGZyb20gLSBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICAgIHRvICsgaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZS5pbnZlcnQpO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPlxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1heFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguZmxvb3IoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCksXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGludmVydGVkU2VsZWN0aW9uWzFdIC0gaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gPFxuICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1pblxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdKSxcbiAgICAgICAgICAgICAgICAgIE1hdGguY2VpbChpbnZlcnRlZFNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWluKSxcbiAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICBmcm9tIC0gaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgICB0byArIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pID5cbiAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWF4XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1heCxcbiAgICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICAgOiBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgYnJ1c2hTY2FsZS5pbnZlcnQodG8pIC0gYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSkgPFxuICAgICAgICAgICAgY29uZmlnLmJydXNoPy5taW5cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSArIGNvbmZpZy5icnVzaD8ubWluLFxuICAgICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgICA6IFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gXy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBicnVzaE1lc3NhZ2UgPSBuZXcgQnJ1c2hNZXNzYWdlKHtcbiAgICAgICAgICAgIGV2ZW50OiBfLFxuICAgICAgICAgICAgc2VsZWN0aW9uOiBbYnJ1c2hTY2FsZS5pbnZlcnQoZnJvbSksIGJydXNoU2NhbGUuaW52ZXJ0KHRvKV0sXG4gICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICBicnVzaFNjYWxlLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdEJydXNoKHtcbiAgICAgICAgICAgIGNoYW5uZWw6IGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb250YWluZXIuY2FsbCh0aGlzLmJydXNoKTtcblxuICAgICAgICAgIGxldCBkb21haW4gPSBicnVzaFNjYWxlLmRvbWFpbigpO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZz8uYnJ1c2g/LmZyb20pIHtcbiAgICAgICAgICAgIGRvbWFpblswXSA9IGNvbmZpZy5icnVzaC5mcm9tO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjb25maWc/LmJydXNoPy50bykge1xuICAgICAgICAgICAgZG9tYWluWzFdID0gY29uZmlnLmJydXNoLnRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnRhaW5lci5jYWxsKFxuICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAgICAgPyB0aGlzLnNlbGVjdGlvbi5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgOiBkb21haW4ubWFwKGJydXNoU2NhbGUpLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmJyb2FkY2FzdFN1YnNjcmlidGlvbiA9IHRoaXMuYnJvYWRjYXN0U2VydmljZVxuICAgICAgICAuc3Vic2NyaWJlVG9ab29tKGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBtLm1lc3NhZ2UuZXZlbnQuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50IHx8XG4gICAgICAgICAgICAgIG0ubWVzc2FnZS5ldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIFdoZWVsRXZlbnQgfHxcbiAgICAgICAgICAgICAgKHdpbmRvdy5Ub3VjaEV2ZW50ICYmXG4gICAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGhyb3R0bGVUaW1lKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCB7IHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHsgYnJ1c2hEb21haW4gfSxcbiAgICAgICAgICAgIH0gPSBtO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChtLm1lc3NhZ2U/LmF4aXMuaW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICBtLm1lc3NhZ2U/LmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55ICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueSkgfHxcbiAgICAgICAgICAgICAgKG0ubWVzc2FnZT8uYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiZcbiAgICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/LnR5cGUgPT09IEJydXNoVHlwZS54KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMF0pLFxuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMV0pLFxuICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICBpZiAobS5tZXNzYWdlLmV2ZW50LnR5cGUgPT09ICdlbmQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJ1c2hNZXNzYWdlID0gbmV3IEJydXNoTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICBldmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogYnJ1c2hEb21haW4sXG4gICAgICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgICAgICBicnVzaFNjYWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdEJydXNoKHtcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGJydXNoRG9tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUHJldmlvdXNTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICB9XG59XG4iXX0=
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJ1c2guc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2JydXNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUEyQixNQUFNLEVBQWdCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxRSxPQUFPLEVBQ0wsWUFBWSxHQUdiLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFLakUsTUFBTSxPQUFPLFlBQVk7SUFXdkIsWUFDVSxnQkFBa0MsRUFDbEMsSUFBWTtRQURaLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQVJkLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0M7YUFDM0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBTzlCLENBQUM7SUFFSixVQUFVLENBQUMsVUFBc0IsRUFBRSxNQUFvQixFQUFFLFVBQWU7UUFDdEUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMs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LEtBQUssQ0FBQyxJQUFJLEVBQUU7d0JBQzlCLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzFCLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzNCLENBQUMsQ0FBQztvQkFFSCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7d0JBQ2xDLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDOzRCQUNwQyxLQUFLLEVBQUUsSUFBSTs0QkFDWCxTQUFTLEVBQUUsV0FBVzs0QkFDdEIsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDOzRCQUM3QyxVQUFVO3lCQUNYLENBQUMsQ0FBQzt3QkFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDOzRCQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXOzRCQUNsQyxPQUFPLEVBQUUsWUFBWTt5QkFDdEIsQ0FBQyxDQUFDO3FCQUNKO29CQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2lCQUM5QjtZQUNILENBQUMsQ0FBQyxDQUNIO2lCQUNBLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDOzt5R0ExTVUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJ1c2hUeXBlIH0gZnJvbSAnLi4vbW9kZWwvZW51bS9icnVzaC10eXBlJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBmaWx0ZXIsIFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcm9hZGNhc3RTZXJ2aWNlIH0gZnJvbSAnLi9icm9hZGNhc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJQ2hhcnRDb25maWcgfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge1xuICBCcnVzaE1lc3NhZ2UsXG4gIElCcm9hZGNhc3RNZXNzYWdlLFxuICBab29tTWVzc2FnZSxcbn0gZnJvbSAnLi4vbW9kZWwvaS1icm9hZGNhc3QtbWVzc2FnZSc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBeGlzT3JpZW50YXRpb24gfSBmcm9tICcuLi9tb2RlbC9lbnVtL2F4aXMtb3JpZW50YXRpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJ1c2hTZXJ2aWNlIHtcbiAgYnJvYWRjYXN0U3Vic2NyaWJ0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBicnVzaDogZDMuQnJ1c2hCZWhhdmlvcjxhbnk+O1xuXG4gIHByaXZhdGUgYnJ1c2hNYXAgPSBuZXcgTWFwPEJydXNoVHlwZSwgZDMuQnJ1c2hCZWhhdmlvcjxhbnk+PigpXG4gICAgLnNldChCcnVzaFR5cGUueCwgZDMuYnJ1c2hYKCkpXG4gICAgLnNldChCcnVzaFR5cGUueSwgZDMuYnJ1c2hZKCkpO1xuXG4gIHByaXZhdGUgc2VsZWN0aW9uOiBudW1iZXJbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyb2FkY2FzdFNlcnZpY2U6IEJyb2FkY2FzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIGFwcGx5QnJ1c2goc3ZnRWxlbWVudDogRWxlbWVudFJlZiwgY29uZmlnOiBJQ2hhcnRDb25maWcsIGJydXNoU2NhbGU6IGFueSkge1xuICAgIHRoaXMuYnJvYWRjYXN0U3Vic2NyaWJ0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYnJ1c2g/Lm9uKCdzdGFydCBicnVzaCBlbmQnLCBudWxsKTtcbiAgICBpZiAoY29uZmlnLmJydXNoPy5lbmFibGUpIHtcbiAgICAgIHRoaXMuYnJ1c2ggPSB0aGlzLmJydXNoTWFwLmdldChjb25maWc/LmJydXNoPy50eXBlID8/IEJydXNoVHlwZS54KTtcblxuICAgICAgY29uc3QgY29udGFpbmVyID0gZDMuc2VsZWN0KHN2Z0VsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIHRoaXMuYnJ1c2gub24oJ3N0YXJ0IGJydXNoIGVuZCcsIChfOiBkMy5EM0JydXNoRXZlbnQ8YW55PikgPT4ge1xuICAgICAgICBpZiAoXy5zb3VyY2VFdmVudCkge1xuICAgICAgICAgIGlmICghXy5zZWxlY3Rpb24pIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IFtmcm9tLCB0b10gPSBfLnNlbGVjdGlvbiBhcyBudW1iZXJbXTtcblxuICAgICAgICAgIGlmICh0byAtIGZyb20gPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbjogbnVtYmVyW10gPVxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbj8ubWFwKGJydXNoU2NhbGUpID8/XG4gICAgICAgICAgICAgIFtjb25maWcuYnJ1c2g/LmZyb20sIGNvbmZpZy5icnVzaD8udG9dLm1hcChicnVzaFNjYWxlKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbGZCcnVzaEhlaWdodCA9IChzZWxlY3Rpb25bMV0gLSBzZWxlY3Rpb25bMF0pIC8gMjtcblxuICAgICAgICAgICAgY29uc3QgaW52ZXJ0ZWRTZWxlY3Rpb246IG51bWJlcltdID0gW1xuICAgICAgICAgICAgICBmcm9tIC0gaGFsZkJydXNoSGVpZ2h0LFxuICAgICAgICAgICAgICB0byArIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUuaW52ZXJ0KTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBpbnZlcnRlZFNlbGVjdGlvblsxXSAtIGludmVydGVkU2VsZWN0aW9uWzBdID5cbiAgICAgICAgICAgICAgY29uZmlnLmJydXNoPy5tYXhcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihpbnZlcnRlZFNlbGVjdGlvblswXSksXG4gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKGludmVydGVkU2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5tYXgpLFxuICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBpbnZlcnRlZFNlbGVjdGlvblsxXSAtIGludmVydGVkU2VsZWN0aW9uWzBdIDxcbiAgICAgICAgICAgICAgY29uZmlnLmJydXNoPy5taW5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgICB0aGlzLmJydXNoLm1vdmUsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgTWF0aC5mbG9vcihpbnZlcnRlZFNlbGVjdGlvblswXSksXG4gICAgICAgICAgICAgICAgICBNYXRoLmNlaWwoaW52ZXJ0ZWRTZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1pbiksXG4gICAgICAgICAgICAgICAgXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb250YWluZXIuY2FsbCh0aGlzLmJydXNoLm1vdmUsIFtcbiAgICAgICAgICAgICAgZnJvbSAtIGhhbGZCcnVzaEhlaWdodCxcbiAgICAgICAgICAgICAgdG8gKyBoYWxmQnJ1c2hIZWlnaHQsXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBicnVzaFNjYWxlLmludmVydCh0bykgLSBicnVzaFNjYWxlLmludmVydChmcm9tKSA+XG4gICAgICAgICAgICBjb25maWcuYnJ1c2g/Lm1heFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGFpbmVyLmNhbGwoXG4gICAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25cbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uWzBdICsgY29uZmlnLmJydXNoPy5tYXgsXG4gICAgICAgICAgICAgICAgICBdLm1hcChicnVzaFNjYWxlKVxuICAgICAgICAgICAgICAgIDogW2NvbmZpZy5icnVzaD8uZnJvbSwgY29uZmlnLmJydXNoPy50b10ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGJydXNoU2NhbGUuaW52ZXJ0KHRvKSAtIGJydXNoU2NhbGUuaW52ZXJ0KGZyb20pIDxcbiAgICAgICAgICAgIGNvbmZpZy5icnVzaD8ubWluXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgICAgdGhpcy5icnVzaC5tb3ZlLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvblswXSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25bMF0gKyBjb25maWcuYnJ1c2g/Lm1pbixcbiAgICAgICAgICAgICAgICAgIF0ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgICAgOiBbY29uZmlnLmJydXNoPy5mcm9tLCBjb25maWcuYnJ1c2g/LnRvXS5tYXAoYnJ1c2hTY2FsZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF8uc291cmNlRXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IF8uc2VsZWN0aW9uLm1hcChicnVzaFNjYWxlLmludmVydCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYnJ1c2hNZXNzYWdlID0gbmV3IEJydXNoTWVzc2FnZSh7XG4gICAgICAgICAgICBldmVudDogXyxcbiAgICAgICAgICAgIHNlbGVjdGlvbjogW2JydXNoU2NhbGUuaW52ZXJ0KGZyb20pLCBicnVzaFNjYWxlLmludmVydCh0byldLFxuICAgICAgICAgICAgYnJ1c2hUeXBlOiBjb25maWc/LmJydXNoPy50eXBlID8/IEJydXNoVHlwZS54LFxuICAgICAgICAgICAgYnJ1c2hTY2FsZSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuYnJvYWRjYXN0U2VydmljZS5icm9hZGNhc3RCcnVzaCh7XG4gICAgICAgICAgICBjaGFubmVsOiBjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsLFxuICAgICAgICAgICAgbWVzc2FnZTogYnJ1c2hNZXNzYWdlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29udGFpbmVyLmNhbGwodGhpcy5icnVzaCk7XG5cbiAgICAgICAgICBsZXQgZG9tYWluID0gYnJ1c2hTY2FsZS5kb21haW4oKTtcblxuICAgICAgICAgIGlmIChjb25maWc/LmJydXNoPy5mcm9tKSB7XG4gICAgICAgICAgICBkb21haW5bMF0gPSBjb25maWcuYnJ1c2guZnJvbTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY29uZmlnPy5icnVzaD8udG8pIHtcbiAgICAgICAgICAgIGRvbWFpblsxXSA9IGNvbmZpZy5icnVzaC50bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250YWluZXIuY2FsbChcbiAgICAgICAgICAgIHRoaXMuYnJ1c2gubW92ZSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgICAgICAgID8gdGhpcy5zZWxlY3Rpb24ubWFwKGJydXNoU2NhbGUpXG4gICAgICAgICAgICAgIDogZG9tYWluLm1hcChicnVzaFNjYWxlKSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5icm9hZGNhc3RTdWJzY3JpYnRpb24gPSB0aGlzLmJyb2FkY2FzdFNlcnZpY2VcbiAgICAgICAgLnN1YnNjcmliZVRvWm9vbShjb25maWc/Lnpvb20/LnN5bmNDaGFubmVsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKG06IElCcm9hZGNhc3RNZXNzYWdlPFpvb21NZXNzYWdlPikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbS5tZXNzYWdlLmV2ZW50LnNvdXJjZUV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCB8fFxuICAgICAgICAgICAgICBtLm1lc3NhZ2UuZXZlbnQuc291cmNlRXZlbnQgaW5zdGFuY2VvZiBXaGVlbEV2ZW50IHx8XG4gICAgICAgICAgICAgICh3aW5kb3cuVG91Y2hFdmVudCAmJlxuICAgICAgICAgICAgICAgIG0ubWVzc2FnZS5ldmVudC5zb3VyY2VFdmVudCBpbnN0YW5jZW9mIFRvdWNoRXZlbnQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhcCgobTogSUJyb2FkY2FzdE1lc3NhZ2U8Wm9vbU1lc3NhZ2U+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHsgYnJ1c2hEb21haW4gfSxcbiAgICAgICAgICAgIH0gPSBtO1xuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChtLm1lc3NhZ2U/LmF4aXMuaW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICBtLm1lc3NhZ2U/LmF4aXMub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi55ICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLmJydXNoPy50eXBlID09PSBCcnVzaFR5cGUueSkgfHxcbiAgICAgICAgICAgICAgKG0ubWVzc2FnZT8uYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnggJiZcbiAgICAgICAgICAgICAgICBjb25maWcuYnJ1c2g/LnR5cGUgPT09IEJydXNoVHlwZS54KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGNvbnRhaW5lci5jYWxsKHRoaXMuYnJ1c2gubW92ZSwgW1xuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMF0pLFxuICAgICAgICAgICAgICAgIGJydXNoU2NhbGUoYnJ1c2hEb21haW5bMV0pLFxuICAgICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgICBpZiAobS5tZXNzYWdlLmV2ZW50LnR5cGUgPT09ICdlbmQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnJ1c2hNZXNzYWdlID0gbmV3IEJydXNoTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICBldmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogYnJ1c2hEb21haW4sXG4gICAgICAgICAgICAgICAgICBicnVzaFR5cGU6IGNvbmZpZz8uYnJ1c2g/LnR5cGUgPz8gQnJ1c2hUeXBlLngsXG4gICAgICAgICAgICAgICAgICBicnVzaFNjYWxlLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RTZXJ2aWNlLmJyb2FkY2FzdEJydXNoKHtcbiAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IGNvbmZpZz8uem9vbT8uc3luY0NoYW5uZWwsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBicnVzaE1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGJydXNoRG9tYWluO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyUHJldmlvdXNTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICB9XG59XG4iXX0=
@@ -19,7 +19,7 @@ export class ChartService {
19
19
  this.annotationEvent$ = new Subject();
20
20
  this.annotationMove$ = new Subject();
21
21
  this.id = of((Date.now() + Math.random()).toString(36));
22
- this.config = this.config$.asObservable().pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), shareReplay({
22
+ this.config = this.config$.asObservable().pipe(withLatestFrom(this.id), map(this.setDefaults), map(this.setPreparationData), map(this.restoreLocalStorage), shareReplay({
23
23
  bufferSize: 1,
24
24
  refCount: true,
25
25
  }));
@@ -82,7 +82,12 @@ export class ChartService {
82
82
  const seriesLinkCount = currentConfig.series.filter((_) => _.yAxisIndex === currentConfig.series[currentSerieIndex].yAxisIndex && _.visible === true).length;
83
83
  currentConfig.yAxis[currentConfig.series[currentSerieIndex].yAxisIndex].visible = seriesLinkCount !== 0;
84
84
  });
85
- this.config$.next(currentConfig);
85
+ try {
86
+ this.saveCookie(currentConfig);
87
+ }
88
+ finally {
89
+ this.config$.next(currentConfig);
90
+ }
86
91
  }
87
92
  emitMoveAnnotation(event) {
88
93
  this.annotationMove$.next(event);
@@ -105,6 +110,26 @@ export class ChartService {
105
110
  emitChartContextMenu(event) {
106
111
  this.chartContextMenu$.next(event);
107
112
  }
113
+ saveCookie(config) {
114
+ if (!config.name)
115
+ return;
116
+ const hiddenSeries = config.series?.filter((_) => !_.visible).map((_) => _.id);
117
+ localStorage.setItem(`${config.name}_${ChartService._hiddenSeriesPostfix}`, JSON.stringify(hiddenSeries));
118
+ }
119
+ restoreLocalStorage(config) {
120
+ if (!config.name)
121
+ return config;
122
+ const hiddenSeries = localStorage.getItem(`${config.name}_${ChartService._hiddenSeriesPostfix}`);
123
+ if (hiddenSeries) {
124
+ const json = JSON.parse(hiddenSeries);
125
+ config.series = config.series.map((serie) => {
126
+ serie.visible = !json.includes(serie.id);
127
+ return serie;
128
+ });
129
+ return config;
130
+ }
131
+ return config;
132
+ }
108
133
  setDefaults(data) {
109
134
  let [config, id] = data;
110
135
  const defaultConfig = (defaultConfig) => {
@@ -178,6 +203,7 @@ export class ChartService {
178
203
  return config;
179
204
  }
180
205
  }
206
+ ChartService._hiddenSeriesPostfix = 'hidden_series';
181
207
  ChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
182
208
  ChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ChartService, providedIn: 'root' });
183
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ChartService, decorators: [{
@@ -186,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
186
212
  providedIn: 'root',
187
213
  }]
188
214
  }], ctorParameters: function () { return []; } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixXQUFXLEVBQ1gsT0FBTyxFQUNQLElBQUksRUFDSixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFNZCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUlyRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFlBQVk7SUE0QnZCO1FBWlEsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFlLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksZUFBZSxDQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEYsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3JELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBQ3BELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFD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QUMsQ0FBQztnQkFDckIsT0FBTztvQkFDTCxHQUFHLEtBQUs7b0JBQ1IsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQy9CLE9BQU87NEJBQ0wsR0FBRyxLQUFLOzRCQUNSLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQzs0QkFDWCxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7NEJBQ1gsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFOzRCQUNiLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRTt5QkFDZCxDQUFDO29CQUNKLENBQUMsQ0FBQztpQkFDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDekIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt5R0F4UFUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lDaGFydENvbmZpZ30gZnJvbSAnLi4vbW9kZWwvaS1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIGxhc3RWYWx1ZUZyb20sXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHNoYXJlUmVwbGF5LFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lDaGFydEV2ZW50fSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWV2ZW50JztcbmltcG9ydCB7SURpc3BsYXlUb29sdGlwfSBmcm9tICcuLi9tb2RlbC9pLWRpc3BsYXktdG9vbHRpcCc7XG5pbXBvcnQge1Bsb3RCYW5kfSBmcm9tICcuLi9tb2RlbC9wbG90LWJhbmQnO1xuaW1wb3J0IHtQbG90TGluZX0gZnJvbSAnLi4vbW9kZWwvcGxvdC1saW5lJztcbmltcG9ydCB7SVBvaW50TW92ZX0gZnJvbSAnLi4vbW9kZWwvaS1wb2ludC1tb3ZlJztcbmltcG9ydCB7ZGVmYXVsdENoYXJ0Q29uZmlnfSBmcm9tICcuLi9kZWZhdWx0L2RlZmF1bHQtY2hhcnQtY29uZmlnJztcbmltcG9ydCB7ZGVmYXVsdEF4aXNDb25maWd9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1heGlzLWNvbmZpZyc7XG5pbXBvcnQge2RlZmF1bHRTZXJpZXNDb25maWd9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1zZXJpZXMtY29uZmlnJztcbmltcG9ydCB7QmFzZVBvaW50fSBmcm9tICcuLi9tb2RlbC9iYXNlLXBvaW50JztcbmltcG9ydCB7U2VyaWVzfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMnO1xuaW1wb3J0IHtBbm5vdGF0aW9ufSBmcm9tICcuLi9tb2RlbC9hbm5vdGF0aW9uJztcbmltcG9ydCB7Q2xpcFBvaW50c0RpcmVjdGlvbn0gZnJvbSBcIi4uL21vZGVsL2VudW0vY2xpcC1wb2ludHMtZGlyZWN0aW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydFNlcnZpY2Uge1xuICBwdWJsaWMgaWQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHVibGljIGNvbmZpZzogT2JzZXJ2YWJsZTxJQ2hhcnRDb25maWc+O1xuICBwdWJsaWMgc2l6ZTogT2JzZXJ2YWJsZTxET01SZWN0PjtcbiAgcHVibGljIHBvaW50ZXJNb3ZlOiBPYnNlcnZhYmxlPFBvaW50ZXJFdmVudD47XG4gIHB1YmxpYyB0b29sdGlwczogT2JzZXJ2YWJsZTxNYXA8U2VyaWVzPEJhc2VQb2ludD4sIElEaXNwbGF5VG9vbHRpcD4+O1xuICBwdWJsaWMgcGxvdEJhbmRFdmVudDogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxQbG90QmFuZD4+O1xuICBwdWJsaWMgcGxvdExpbmVNb3ZlOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RMaW5lPj47XG4gIHB1YmxpYyBwbG90QmFuZENsaWNrOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RCYW5kPj47XG4gIHB1YmxpYyBwbG90QmFuZENvbnRleHRNZW51OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RCYW5kPj47XG4gIHB1YmxpYyBwb2ludE1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4+O1xuICBwdWJsaWMgYW5ub3RhdGlvbk1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgYW5ub3RhdGlvbkNsaWNrOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGFubm90YXRpb25Db250ZXh0TWVudTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBjaGFydENsaWNrOiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEJhc2VQb2ludD4+O1xuICBwdWJsaWMgY2hhcnRDb250ZXh0TWVudTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PjtcbiAgcHJpdmF0ZSBjb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ2hhcnRDb25maWc+KGRlZmF1bHRDaGFydENvbmZpZygpKTtcbiAgcHJpdmF0ZSBzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdD4obmV3IERPTVJlY3RSZWFkT25seSgpKTtcbiAgcHJpdmF0ZSBwb2ludGVyTW92ZSQgPSBuZXcgU3ViamVjdDxQb2ludGVyRXZlbnQ+KCk7XG4gIHByaXZhdGUgdG9vbHRpcHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8U2VyaWVzPEJhc2VQb2ludD4sIElEaXNwbGF5VG9vbHRpcD4+KG5ldyBNYXAoKSk7XG4gIHByaXZhdGUgcGxvdEJhbmRFdmVudCQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxQbG90QmFuZD4+KCk7XG4gIHByaXZhdGUgcGxvdExpbmVNb3ZlJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RMaW5lPj4oKTtcbiAgcHJpdmF0ZSBwb2ludE1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8SVBvaW50TW92ZT4+KCk7XG4gIHByaXZhdGUgY2hhcnRDbGljayQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuICBwcml2YXRlIGNoYXJ0Q29udGV4dE1lbnUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj4oKTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uRXZlbnQkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+KCk7XG4gIHByaXZhdGUgYW5ub3RhdGlvbk1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pZCA9IG9mKChEYXRlLm5vdygpICsgTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMzYpKTtcblxuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWckLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlkKSxcbiAgICAgIG1hcCh0aGlzLnNldERlZmF1bHRzKSxcbiAgICAgIG1hcCh0aGlzLnNldFByZXBhcmF0aW9uRGF0YSksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zaXplID0gdGhpcy5zaXplJC5hc09ic2VydmFibGUoKTtcblxuICAgIHRoaXMucG9pbnRlck1vdmUgPSB0aGlzLnBvaW50ZXJNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90QmFuZEV2ZW50ID0gdGhpcy5wbG90QmFuZEV2ZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBsb3RMaW5lTW92ZSA9IHRoaXMucGxvdExpbmVNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBvaW50TW92ZSA9IHRoaXMucG9pbnRNb3ZlJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmNoYXJ0Q2xpY2sgPSB0aGlzLmNoYXJ0Q2xpY2skLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY2hhcnRDb250ZXh0TWVudSA9IHRoaXMuY2hhcnRDb250ZXh0TWVudSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hbm5vdGF0aW9uQ2xpY2sgPSB0aGlzLmFubm90YXRpb25FdmVudCRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZmlsdGVyKChfKSA9PiBfPy5ldmVudD8udHlwZSA9PT0gJ2NsaWNrJykpO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNvbnRleHRNZW51ID0gdGhpcy5hbm5vdGF0aW9uRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjb250ZXh0bWVudScpKTtcbiAgICB0aGlzLmFubm90YXRpb25Nb3ZlID0gdGhpcy5hbm5vdGF0aW9uTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICB0aGlzLnBsb3RCYW5kQ2xpY2sgPSB0aGlzLnBsb3RCYW5kRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjbGljaycpKTtcbiAgICB0aGlzLnBsb3RCYW5kQ29udGV4dE1lbnUgPSB0aGlzLnBsb3RCYW5kRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjb250ZXh0bWVudScpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25maWcoY29uZmlnOiBJQ2hhcnRDb25maWcpIHtcbiAgICB0aGlzLmNsZWFyVG9vbHRpcHMoKTtcbiAgICB0aGlzLmNvbmZpZyQubmV4dChjb25maWcpO1xuICB9XG5cbiAgcHVibGljIHNldFNpemUoc2l6ZTogRE9NUmVjdCkge1xuICAgIHRoaXMuc2l6ZSQubmV4dChzaXplKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQb2ludGVyTW92ZShldmVudDogUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5wb2ludGVyTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VG9vbHRpcCh0b29sdGlwOiBJRGlzcGxheVRvb2x0aXApIHtcbiAgICBjb25zdCBjdXJyZW50VG9vbHRpcHMgPSB0aGlzLnRvb2x0aXBzJC52YWx1ZTtcbiAgICBpZiAoIXRvb2x0aXAucG9pbnQpIHtcbiAgICAgIGN1cnJlbnRUb29sdGlwcy5kZWxldGUodG9vbHRpcC5zZXJpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50VG9vbHRpcHMuc2V0KHRvb2x0aXAuc2VyaWVzLCB0b29sdGlwKTtcbiAgICB9XG4gICAgdGhpcy50b29sdGlwcyQubmV4dChcbiAgICAgIG5ldyBNYXA8U2VyaWVzPEJhc2VQb2ludD4sIElEaXNwbGF5VG9vbHRpcD4oY3VycmVudFRvb2x0aXBzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJUb29sdGlwcygpIHtcbiAgICB0aGlzLnRvb2x0aXBzJC5uZXh0KG5ldyBNYXAoKSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdG9nZ2xlVmlzaWJpbGl0eVNlcmllcyhzZXJpZXNJbmRleDogQXJyYXk8bnVtYmVyIHwgc3RyaW5nPiwgdmlzaWJsZT86IGJvb2xlYW4pIHtcblxuICAgIGlmKHNlcmllc0luZGV4Py5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZy5waXBlKHRha2UoMSkpKTtcblxuICAgIHNlcmllc0luZGV4LmZvckVhY2goKHNlcmllSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXJpZUluZGV4ID0gY3VycmVudENvbmZpZy5zZXJpZXMuZmluZEluZGV4KChfKSA9PiBfLmlkID09PSBzZXJpZUluZGV4KTtcblxuICAgICAgaWYoY3VycmVudFNlcmllSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS52aXNpYmxlID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkID8gdmlzaWJsZSA6ICFjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0udmlzaWJsZTtcblxuICAgICAgY29uc3Qgc2VyaWVzTGlua0NvdW50ID0gY3VycmVudENvbmZpZy5zZXJpZXMuZmlsdGVyKChfKSA9PiBfLnlBeGlzSW5kZXggPT09IGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4ICYmIF8udmlzaWJsZSA9PT0gdHJ1ZSkubGVuZ3RoXG4gICAgICBjdXJyZW50Q29uZmlnLnlBeGlzW2N1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4XS52aXNpYmxlID0gc2VyaWVzTGlua0NvdW50ICE9PSAwO1xuXG4gICAgfSlcblxuXG4gICAgdGhpcy5jb25maWckLm5leHQoY3VycmVudENvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgZW1pdE1vdmVBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbkV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGxvdGJhbmQoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RCYW5kPikge1xuICAgIHRoaXMucGxvdEJhbmRFdmVudCQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RsaW5lKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90TGluZT4pIHtcbiAgICB0aGlzLnBsb3RMaW5lTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBvaW50KGV2ZW50OiBJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPikge1xuICAgIHRoaXMucG9pbnRNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhcnRDbGljayhldmVudDogSUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pikge1xuICAgIHRoaXMuY2hhcnRDbGljayQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENoYXJ0Q29udGV4dE1lbnUoZXZlbnQ6IElDaGFydEV2ZW50PEJhc2VQb2ludD4pIHtcbiAgICB0aGlzLmNoYXJ0Q29udGV4dE1lbnUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0cyhkYXRhOiBbSUNoYXJ0Q29uZmlnLCBzdHJpbmddKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBsZXQgW2NvbmZpZywgaWRdID0gZGF0YTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSAoZGVmYXVsdENvbmZpZykgPT4ge1xuICAgICAgcmV0dXJuIChzb3VyY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRDb25maWcsIHNvdXJjZSk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q2hhcnRDb25maWcoKSwgY29uZmlnKTtcbiAgICBjb25maWcuaWQgPSBpZDtcblxuICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy55QXhpcyA9IGNvbmZpZy55QXhpcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0QXhpc0NvbmZpZykpO1xuICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcChkZWZhdWx0Q29uZmlnKGRlZmF1bHRTZXJpZXNDb25maWcoKSkpO1xuXG4gICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXMubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uXyxcbiAgICAgICAgZGF0YTogXy5kYXRhID8/IFtdLFxuICAgICAgICBpZDogXy5pZCA/PyBpbmRleCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBvcHBvc2l0ZVlDb3VudCA9IGNvbmZpZy55QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBvcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiBfLm9wcG9zaXRlKTtcblxuICAgIGNvbnN0IG5vbk9wcG9zaXRlWUNvdW50ID0gY29uZmlnLnlBeGlzPy5maWx0ZXIoKF8pID0+ICFfLm9wcG9zaXRlKTtcbiAgICBjb25zdCBub25PcHBvc2l0ZVhDb3VudCA9IGNvbmZpZy54QXhpcz8uZmlsdGVyKChfKSA9PiAhXy5vcHBvc2l0ZSk7XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMuYm90dG9tID0gMDtcbiAgICB9XG5cbiAgICBpZiAob3Bwb3NpdGVYQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMudG9wID0gMDtcbiAgICB9XG5cbiAgICBpZiAobm9uT3Bwb3NpdGVZQ291bnQ/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIGNvbmZpZy5ib3VuZHMubGVmdCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKG9wcG9zaXRlWUNvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLnJpZ2h0ID0gMDtcbiAgICB9XG5cbiAgICBjb25maWcudG9vbHRpcCA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRDaGFydENvbmZpZygpLnRvb2x0aXAsXG4gICAgICBjb25maWcudG9vbHRpcFxuICAgICk7XG5cbiAgICBjb25maWcuem9vbSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRDaGFydENvbmZpZygpLnpvb20sXG4gICAgICBjb25maWcuem9vbVxuICAgICk7XG5cbiAgICBjb25maWcuem9vbS5zeW5jQ2hhbm5lbCA9IGNvbmZpZy56b29tPy5zeW5jQ2hhbm5lbCA/PyBpZDtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIHNldFByZXBhcmF0aW9uRGF0YShjb25maWc6IElDaGFydENvbmZpZyk6IElDaGFydENvbmZpZyB7XG4gICAgaWYgKGNvbmZpZy5pbnZlcnRlZCkge1xuXG5cbiAgICAgIGNvbnN0IHhBeGVzID0gWy4uLmNvbmZpZy54QXhpc107XG4gICAgICBjb25zdCB5QXhlcyA9IFsuLi5jb25maWcueUF4aXNdO1xuXG4gICAgICBjb25maWcueEF4aXMgPSB5QXhlcztcbiAgICAgIGNvbmZpZy55QXhpcyA9IHhBeGVzO1xuXG4gICAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcz8ubWFwKChzZXJpZSkgPT4ge1xuICAgICAgICBjb25zdCB4ID0gc2VyaWUueEF4aXNJbmRleDtcbiAgICAgICAgY29uc3QgeSA9IHNlcmllLnlBeGlzSW5kZXg7XG4gICAgICAgIHNlcmllLnhBeGlzSW5kZXggPSB5O1xuICAgICAgICBzZXJpZS55QXhpc0luZGV4ID0geDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zZXJpZSxcbiAgICAgICAgICBjbGlwUG9pbnRzRGlyZWN0aW9uOiBDbGlwUG9pbnRzRGlyZWN0aW9uLnksXG4gICAgICAgICAgZGF0YTogc2VyaWU/LmRhdGE/Lm1hcCgocG9pbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnBvaW50LFxuICAgICAgICAgICAgICB4OiBwb2ludD8ueSxcbiAgICAgICAgICAgICAgeTogcG9pbnQ/LngsXG4gICAgICAgICAgICAgIHgxOiBwb2ludD8ueTEsXG4gICAgICAgICAgICAgIHkxOiBwb2ludD8ueDEsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZz8uYnJ1c2g/LmVuYWJsZSkge1xuICAgICAgY29uZmlnLnlBeGlzID0gY29uZmlnLnlBeGlzLm1hcCgoXykgPT4gKHsuLi5fLCB6b29tOiBmYWxzZX0pKTtcbiAgICAgIGNvbmZpZy54QXhpcyA9IGNvbmZpZy54QXhpcy5tYXAoKF8pID0+ICh7Li4uXywgem9vbTogZmFsc2V9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLE1BQU0sRUFDTixhQUFhLEVBQ2IsR0FBRyxFQUVILEVBQUUsRUFDRixXQUFXLEVBQ1gsT0FBTyxFQUNQLElBQUksRUFDSixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUM7QUFNZCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUlyRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFlBQVk7SUE4QnZCO1FBZFEsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFlLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNsRSxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksZUFBZSxDQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEYsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3JELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO1FBQ3BELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFD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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGZpbHRlcixcbiAgbGFzdFZhbHVlRnJvbSxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgc2hhcmVSZXBsYXksXG4gIFN1YmplY3QsXG4gIHRha2UsIHRha2VMYXN0LCB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SUNoYXJ0RXZlbnR9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHtJRGlzcGxheVRvb2x0aXB9IGZyb20gJy4uL21vZGVsL2ktZGlzcGxheS10b29sdGlwJztcbmltcG9ydCB7UGxvdEJhbmR9IGZyb20gJy4uL21vZGVsL3Bsb3QtYmFuZCc7XG5pbXBvcnQge1Bsb3RMaW5lfSBmcm9tICcuLi9tb2RlbC9wbG90LWxpbmUnO1xuaW1wb3J0IHtJUG9pbnRNb3ZlfSBmcm9tICcuLi9tb2RlbC9pLXBvaW50LW1vdmUnO1xuaW1wb3J0IHtkZWZhdWx0Q2hhcnRDb25maWd9IGZyb20gJy4uL2RlZmF1bHQvZGVmYXVsdC1jaGFydC1jb25maWcnO1xuaW1wb3J0IHtkZWZhdWx0QXhpc0NvbmZpZ30gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LWF4aXMtY29uZmlnJztcbmltcG9ydCB7ZGVmYXVsdFNlcmllc0NvbmZpZ30gZnJvbSAnLi4vZGVmYXVsdC9kZWZhdWx0LXNlcmllcy1jb25maWcnO1xuaW1wb3J0IHtCYXNlUG9pbnR9IGZyb20gJy4uL21vZGVsL2Jhc2UtcG9pbnQnO1xuaW1wb3J0IHtTZXJpZXN9IGZyb20gJy4uL21vZGVsL3Nlcmllcyc7XG5pbXBvcnQge0Fubm90YXRpb259IGZyb20gJy4uL21vZGVsL2Fubm90YXRpb24nO1xuaW1wb3J0IHtDbGlwUG9pbnRzRGlyZWN0aW9ufSBmcm9tIFwiLi4vbW9kZWwvZW51bS9jbGlwLXBvaW50cy1kaXJlY3Rpb25cIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XG4gIHB1YmxpYyBpZDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwdWJsaWMgY29uZmlnOiBPYnNlcnZhYmxlPElDaGFydENvbmZpZz47XG4gIHB1YmxpYyBzaXplOiBPYnNlcnZhYmxlPERPTVJlY3Q+O1xuICBwdWJsaWMgcG9pbnRlck1vdmU6IE9ic2VydmFibGU8UG9pbnRlckV2ZW50PjtcbiAgcHVibGljIHRvb2x0aXBzOiBPYnNlcnZhYmxlPE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPj47XG4gIHB1YmxpYyBwbG90QmFuZEV2ZW50OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PFBsb3RCYW5kPj47XG4gIHB1YmxpYyBwbG90TGluZU1vdmU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PjtcbiAgcHVibGljIHBsb3RCYW5kQ2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBsb3RCYW5kQ29udGV4dE1lbnU6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8UGxvdEJhbmQ+PjtcbiAgcHVibGljIHBvaW50TW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uTW92ZTogT2JzZXJ2YWJsZTxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj47XG4gIHB1YmxpYyBhbm5vdGF0aW9uQ2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QW5ub3RhdGlvbj4+O1xuICBwdWJsaWMgYW5ub3RhdGlvbkNvbnRleHRNZW51OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEFubm90YXRpb24+PjtcbiAgcHVibGljIGNoYXJ0Q2xpY2s6IE9ic2VydmFibGU8SUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pj47XG4gIHB1YmxpYyBjaGFydENvbnRleHRNZW51OiBPYnNlcnZhYmxlPElDaGFydEV2ZW50PEJhc2VQb2ludD4+O1xuICBwcml2YXRlIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDaGFydENvbmZpZz4oZGVmYXVsdENoYXJ0Q29uZmlnKCkpO1xuICBwcml2YXRlIHNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxET01SZWN0PihuZXcgRE9NUmVjdFJlYWRPbmx5KCkpO1xuICBwcml2YXRlIHBvaW50ZXJNb3ZlJCA9IG5ldyBTdWJqZWN0PFBvaW50ZXJFdmVudD4oKTtcbiAgcHJpdmF0ZSB0b29sdGlwcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hcDxTZXJpZXM8QmFzZVBvaW50PiwgSURpc3BsYXlUb29sdGlwPj4obmV3IE1hcCgpKTtcbiAgcHJpdmF0ZSBwbG90QmFuZEV2ZW50JCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PFBsb3RCYW5kPj4oKTtcbiAgcHJpdmF0ZSBwbG90TGluZU1vdmUkID0gbmV3IFN1YmplY3Q8SUNoYXJ0RXZlbnQ8UGxvdExpbmU+PigpO1xuICBwcml2YXRlIHBvaW50TW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPj4oKTtcbiAgcHJpdmF0ZSBjaGFydENsaWNrJCA9IG5ldyBTdWJqZWN0PElDaGFydEV2ZW50PEJhc2VQb2ludD4+KCk7XG4gIHByaXZhdGUgY2hhcnRDb250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxCYXNlUG9pbnQ+PigpO1xuICBwcml2YXRlIGFubm90YXRpb25FdmVudCQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcbiAgcHJpdmF0ZSBhbm5vdGF0aW9uTW92ZSQgPSBuZXcgU3ViamVjdDxJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPj4oKTtcblxuICBwcml2YXRlIHN0YXRpYyBfaGlkZGVuU2VyaWVzUG9zdGZpeCA9ICdoaWRkZW5fc2VyaWVzJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gb2YoKERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikpO1xuXG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaWQpLFxuICAgICAgbWFwKHRoaXMuc2V0RGVmYXVsdHMpLFxuICAgICAgbWFwKHRoaXMuc2V0UHJlcGFyYXRpb25EYXRhKSxcbiAgICAgIG1hcCh0aGlzLnJlc3RvcmVMb2NhbFN0b3JhZ2UpLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuXG4gICAgdGhpcy5zaXplID0gdGhpcy5zaXplJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlID0gdGhpcy5wb2ludGVyTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy50b29sdGlwcyA9IHRoaXMudG9vbHRpcHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGxvdEJhbmRFdmVudCA9IHRoaXMucGxvdEJhbmRFdmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wbG90TGluZU1vdmUgPSB0aGlzLnBsb3RMaW5lTW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5wb2ludE1vdmUgPSB0aGlzLnBvaW50TW92ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5jaGFydENsaWNrID0gdGhpcy5jaGFydENsaWNrJC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmNoYXJ0Q29udGV4dE1lbnUgPSB0aGlzLmNoYXJ0Q29udGV4dE1lbnUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuYW5ub3RhdGlvbkNsaWNrID0gdGhpcy5hbm5vdGF0aW9uRXZlbnQkXG4gICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGZpbHRlcigoXykgPT4gXz8uZXZlbnQ/LnR5cGUgPT09ICdjbGljaycpKTtcbiAgICB0aGlzLmFubm90YXRpb25Db250ZXh0TWVudSA9IHRoaXMuYW5ub3RhdGlvbkV2ZW50JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8/LmV2ZW50Py50eXBlID09PSAnY29udGV4dG1lbnUnKSk7XG4gICAgdGhpcy5hbm5vdGF0aW9uTW92ZSA9IHRoaXMuYW5ub3RhdGlvbk1vdmUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5wbG90QmFuZENsaWNrID0gdGhpcy5wbG90QmFuZEV2ZW50JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8/LmV2ZW50Py50eXBlID09PSAnY2xpY2snKSk7XG4gICAgdGhpcy5wbG90QmFuZENvbnRleHRNZW51ID0gdGhpcy5wbG90QmFuZEV2ZW50JFxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAucGlwZShmaWx0ZXIoKF8pID0+IF8/LmV2ZW50Py50eXBlID09PSAnY29udGV4dG1lbnUnKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29uZmlnKGNvbmZpZzogSUNoYXJ0Q29uZmlnKSB7XG4gICAgdGhpcy5jbGVhclRvb2x0aXBzKCk7XG4gICAgdGhpcy5jb25maWckLm5leHQoY29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaXplKHNpemU6IERPTVJlY3QpIHtcbiAgICB0aGlzLnNpemUkLm5leHQoc2l6ZSk7XG4gIH1cblxuICBwdWJsaWMgc2V0UG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xuICAgIHRoaXMucG9pbnRlck1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHNldFRvb2x0aXAodG9vbHRpcDogSURpc3BsYXlUb29sdGlwKSB7XG4gICAgY29uc3QgY3VycmVudFRvb2x0aXBzID0gdGhpcy50b29sdGlwcyQudmFsdWU7XG4gICAgaWYgKCF0b29sdGlwLnBvaW50KSB7XG4gICAgICBjdXJyZW50VG9vbHRpcHMuZGVsZXRlKHRvb2x0aXAuc2VyaWVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudFRvb2x0aXBzLnNldCh0b29sdGlwLnNlcmllcywgdG9vbHRpcCk7XG4gICAgfVxuICAgIHRoaXMudG9vbHRpcHMkLm5leHQoXG4gICAgICBuZXcgTWFwPFNlcmllczxCYXNlUG9pbnQ+LCBJRGlzcGxheVRvb2x0aXA+KGN1cnJlbnRUb29sdGlwcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyVG9vbHRpcHMoKSB7XG4gICAgdGhpcy50b29sdGlwcyQubmV4dChuZXcgTWFwKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHRvZ2dsZVZpc2liaWxpdHlTZXJpZXMoc2VyaWVzSW5kZXg6IEFycmF5PG51bWJlciB8IHN0cmluZz4sIHZpc2libGU/OiBib29sZWFuKSB7XG5cbiAgICBpZiAoc2VyaWVzSW5kZXg/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuY29uZmlnLnBpcGUodGFrZSgxKSkpO1xuXG4gICAgc2VyaWVzSW5kZXguZm9yRWFjaCgoc2VyaWVJbmRleCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFNlcmllSW5kZXggPSBjdXJyZW50Q29uZmlnLnNlcmllcy5maW5kSW5kZXgoKF8pID0+IF8uaWQgPT09IHNlcmllSW5kZXgpO1xuXG4gICAgICBpZiAoY3VycmVudFNlcmllSW5kZXggPT09IC0xKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS52aXNpYmxlID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkID8gdmlzaWJsZSA6ICFjdXJyZW50Q29uZmlnLnNlcmllc1tjdXJyZW50U2VyaWVJbmRleF0udmlzaWJsZTtcblxuICAgICAgY29uc3Qgc2VyaWVzTGlua0NvdW50ID0gY3VycmVudENvbmZpZy5zZXJpZXMuZmlsdGVyKChfKSA9PiBfLnlBeGlzSW5kZXggPT09IGN1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4ICYmIF8udmlzaWJsZSA9PT0gdHJ1ZSkubGVuZ3RoXG4gICAgICBjdXJyZW50Q29uZmlnLnlBeGlzW2N1cnJlbnRDb25maWcuc2VyaWVzW2N1cnJlbnRTZXJpZUluZGV4XS55QXhpc0luZGV4XS52aXNpYmxlID0gc2VyaWVzTGlua0NvdW50ICE9PSAwO1xuICAgIH0pXG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5zYXZlQ29va2llKGN1cnJlbnRDb25maWcpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmNvbmZpZyQubmV4dChjdXJyZW50Q29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdE1vdmVBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbk1vdmUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRBbm5vdGF0aW9uKGV2ZW50OiBJQ2hhcnRFdmVudDxBbm5vdGF0aW9uPikge1xuICAgIHRoaXMuYW5ub3RhdGlvbkV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGxvdGJhbmQoZXZlbnQ6IElDaGFydEV2ZW50PFBsb3RCYW5kPikge1xuICAgIHRoaXMucGxvdEJhbmRFdmVudCQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBsb3RsaW5lKGV2ZW50OiBJQ2hhcnRFdmVudDxQbG90TGluZT4pIHtcbiAgICB0aGlzLnBsb3RMaW5lTW92ZSQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFBvaW50KGV2ZW50OiBJQ2hhcnRFdmVudDxJUG9pbnRNb3ZlPikge1xuICAgIHRoaXMucG9pbnRNb3ZlJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0Q2hhcnRDbGljayhldmVudDogSUNoYXJ0RXZlbnQ8QmFzZVBvaW50Pikge1xuICAgIHRoaXMuY2hhcnRDbGljayQubmV4dChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENoYXJ0Q29udGV4dE1lbnUoZXZlbnQ6IElDaGFydEV2ZW50PEJhc2VQb2ludD4pIHtcbiAgICB0aGlzLmNoYXJ0Q29udGV4dE1lbnUkLm5leHQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlQ29va2llKGNvbmZpZzogSUNoYXJ0Q29uZmlnKSB7XG4gICAgaWYoIWNvbmZpZy5uYW1lKSByZXR1cm47XG4gICAgY29uc3QgaGlkZGVuU2VyaWVzID0gY29uZmlnLnNlcmllcz8uZmlsdGVyKChfKSA9PiAhXy52aXNpYmxlKS5tYXAoKF8pID0+IF8uaWQpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke2NvbmZpZy5uYW1lfV8ke0NoYXJ0U2VydmljZS5faGlkZGVuU2VyaWVzUG9zdGZpeH1gLCBKU09OLnN0cmluZ2lmeShoaWRkZW5TZXJpZXMpKVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlTG9jYWxTdG9yYWdlKGNvbmZpZzogSUNoYXJ0Q29uZmlnKTogSUNoYXJ0Q29uZmlnIHtcbiAgICBpZighY29uZmlnLm5hbWUpIHJldHVybiBjb25maWc7XG5cbiAgICBjb25zdCBoaWRkZW5TZXJpZXMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHtjb25maWcubmFtZX1fJHtDaGFydFNlcnZpY2UuX2hpZGRlblNlcmllc1Bvc3RmaXh9YCk7XG4gICAgaWYgKGhpZGRlblNlcmllcykge1xuICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoaGlkZGVuU2VyaWVzKSBhcyBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xuICAgICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXMubWFwKChzZXJpZSkgPT4ge1xuICAgICAgICBzZXJpZS52aXNpYmxlID0gIWpzb24uaW5jbHVkZXMoc2VyaWUuaWQpO1xuICAgICAgICByZXR1cm4gc2VyaWU7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBwcml2YXRlIHNldERlZmF1bHRzKGRhdGE6IFtJQ2hhcnRDb25maWcsIHN0cmluZ10pOiBJQ2hhcnRDb25maWcge1xuXG4gICAgbGV0IFtjb25maWcsIGlkXSA9IGRhdGE7XG5cbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gKGRlZmF1bHRDb25maWcpID0+IHtcbiAgICAgIHJldHVybiAoc291cmNlKSA9PiB7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0Q29uZmlnLCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdENoYXJ0Q29uZmlnKCksIGNvbmZpZyk7XG4gICAgY29uZmlnLmlkID0gaWQ7XG5cbiAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcueUF4aXMgPSBjb25maWcueUF4aXMubWFwKGRlZmF1bHRDb25maWcoZGVmYXVsdEF4aXNDb25maWcpKTtcbiAgICBjb25maWcuc2VyaWVzID0gY29uZmlnLnNlcmllcy5tYXAoZGVmYXVsdENvbmZpZyhkZWZhdWx0U2VyaWVzQ29uZmlnKCkpKTtcblxuICAgIGNvbmZpZy5zZXJpZXMgPSBjb25maWcuc2VyaWVzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLl8sXG4gICAgICAgIGRhdGE6IF8uZGF0YSA/PyBbXSxcbiAgICAgICAgaWQ6IF8uaWQgPz8gaW5kZXgsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb3Bwb3NpdGVZQ291bnQgPSBjb25maWcueUF4aXM/LmZpbHRlcigoXykgPT4gXy5vcHBvc2l0ZSk7XG4gICAgY29uc3Qgb3Bwb3NpdGVYQ291bnQgPSBjb25maWcueEF4aXM/LmZpbHRlcigoXykgPT4gXy5vcHBvc2l0ZSk7XG5cbiAgICBjb25zdCBub25PcHBvc2l0ZVlDb3VudCA9IGNvbmZpZy55QXhpcz8uZmlsdGVyKChfKSA9PiAhXy5vcHBvc2l0ZSk7XG4gICAgY29uc3Qgbm9uT3Bwb3NpdGVYQ291bnQgPSBjb25maWcueEF4aXM/LmZpbHRlcigoXykgPT4gIV8ub3Bwb3NpdGUpO1xuXG4gICAgaWYgKG5vbk9wcG9zaXRlWENvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLmJvdHRvbSA9IDA7XG4gICAgfVxuXG4gICAgaWYgKG9wcG9zaXRlWENvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLnRvcCA9IDA7XG4gICAgfVxuXG4gICAgaWYgKG5vbk9wcG9zaXRlWUNvdW50Py5sZW5ndGggPiAxKSB7XG4gICAgICBjb25maWcuYm91bmRzLmxlZnQgPSAwO1xuICAgIH1cblxuICAgIGlmIChvcHBvc2l0ZVlDb3VudD8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uZmlnLmJvdW5kcy5yaWdodCA9IDA7XG4gICAgfVxuXG4gICAgY29uZmlnLnRvb2x0aXAgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0Q2hhcnRDb25maWcoKS50b29sdGlwLFxuICAgICAgY29uZmlnLnRvb2x0aXBcbiAgICApO1xuXG4gICAgY29uZmlnLnpvb20gPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0Q2hhcnRDb25maWcoKS56b29tLFxuICAgICAgY29uZmlnLnpvb21cbiAgICApO1xuXG4gICAgY29uZmlnLnpvb20uc3luY0NoYW5uZWwgPSBjb25maWcuem9vbT8uc3luY0NoYW5uZWwgPz8gaWQ7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcmVwYXJhdGlvbkRhdGEoY29uZmlnOiBJQ2hhcnRDb25maWcpOiBJQ2hhcnRDb25maWcge1xuICAgIGlmIChjb25maWcuaW52ZXJ0ZWQpIHtcblxuXG4gICAgICBjb25zdCB4QXhlcyA9IFsuLi5jb25maWcueEF4aXNdO1xuICAgICAgY29uc3QgeUF4ZXMgPSBbLi4uY29uZmlnLnlBeGlzXTtcblxuICAgICAgY29uZmlnLnhBeGlzID0geUF4ZXM7XG4gICAgICBjb25maWcueUF4aXMgPSB4QXhlcztcblxuICAgICAgY29uZmlnLnNlcmllcyA9IGNvbmZpZy5zZXJpZXM/Lm1hcCgoc2VyaWUpID0+IHtcbiAgICAgICAgY29uc3QgeCA9IHNlcmllLnhBeGlzSW5kZXg7XG4gICAgICAgIGNvbnN0IHkgPSBzZXJpZS55QXhpc0luZGV4O1xuICAgICAgICBzZXJpZS54QXhpc0luZGV4ID0geTtcbiAgICAgICAgc2VyaWUueUF4aXNJbmRleCA9IHg7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc2VyaWUsXG4gICAgICAgICAgY2xpcFBvaW50c0RpcmVjdGlvbjogQ2xpcFBvaW50c0RpcmVjdGlvbi55LFxuICAgICAgICAgIGRhdGE6IHNlcmllPy5kYXRhPy5tYXAoKHBvaW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5wb2ludCxcbiAgICAgICAgICAgICAgeDogcG9pbnQ/LnksXG4gICAgICAgICAgICAgIHk6IHBvaW50Py54LFxuICAgICAgICAgICAgICB4MTogcG9pbnQ/LnkxLFxuICAgICAgICAgICAgICB5MTogcG9pbnQ/LngxLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb25maWc/LmJydXNoPy5lbmFibGUpIHtcbiAgICAgIGNvbmZpZy55QXhpcyA9IGNvbmZpZy55QXhpcy5tYXAoKF8pID0+ICh7Li4uXywgem9vbTogZmFsc2V9KSk7XG4gICAgICBjb25maWcueEF4aXMgPSBjb25maWcueEF4aXMubWFwKChfKSA9PiAoey4uLl8sIHpvb206IGZhbHNlfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cbn1cbiJdfQ==
@@ -178,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
178
178
  providedIn: 'root',
179
179
  }]
180
180
  }], ctorParameters: function () { return [{ type: i1.ChartService }, { type: i2.ZoomService }]; } });
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxjQUFjLEdBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBS25ELE1BQU0sT0FBTyxZQUFZO0lBbUJ2QixZQUNVLFlBQTBCLEVBQzFCLFdBQXdCO1FBRHhCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZDFCLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFDbkQsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUVuRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFrQjthQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO2FBQ3JDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDakMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FB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dCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbVRyYW5zZm9ybX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgd2l0aExhdGVzdEZyb20sfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SUNoYXJ0RXZlbnR9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FsZVNlcnZpY2Uge1xuICBwdWJsaWMgeUF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuICBwdWJsaWMgeEF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuXG4gIHB1YmxpYyB5U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG4gIHB1YmxpYyB4U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVggPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVkgPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcblxuICBwcml2YXRlIHNjYWxlTWFwcGluZyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLnNjYWxlTGluZWFyKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSlcbiAgICAuc2V0KFNjYWxlVHlwZS5jYXRlZ29yeSwgZDMuc2NhbGVPcmRpbmFsKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxvZywgZDMuc2NhbGVMb2cpXG4gICAgLnNldChTY2FsZVR5cGUuc3ltbG9nLCBkMy5zY2FsZVN5bWxvZylcbiAgICAuc2V0KFNjYWxlVHlwZS5wb3csIGQzLnNjYWxlUG93KVxuICAgIC5zZXQoU2NhbGVUeXBlLnNxcnQsIGQzLnNjYWxlU3FydCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZVxuICApIHtcblxuICAgIHRoaXMueEF4aXNNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnXSkgPT4ge1xuICAgICAgICBjb25zdCBbLCBjb25maWddID0gZGF0YTtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIEF4aXM+KCk7XG4gICAgICAgIGNvbmZpZy54QXhpcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbWFwLnNldChpbmRleCwgQXhpcy5jcmVhdGVBeGlzKEF4aXNPcmllbnRhdGlvbi54LCBjb25maWcsIGluZGV4KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55QXhpc01hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IFssIGNvbmZpZ10gPSBkYXRhO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgQXhpcz4oKTtcbiAgICAgICAgY29uZmlnLnlBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBtYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLnksIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMueFNjYWxlTWFwID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgICAgdGhpcy56b29tU2VydmljZS56b29tZWQsXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMueUF4aXNNYXAsIHRoaXMueEF4aXNNYXApLFxuICAgICAgbWFwKFxuICAgICAgICAoXG4gICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnLCBJQ2hhcnRFdmVudDxBeGlzPl0sXG4gICAgICAgICAgICBNYXA8bnVtYmVyLCBBeGlzPixcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+XG4gICAgICAgICAgXVxuICAgICAgICApID0+IHtcbiAgICAgICAgICBjb25zdCBbW3NpemUsIGNvbmZpZywgem9vbV0sIHlBeGVzLCB4QXhlc10gPSBkYXRhO1xuXG4gICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIGFueT4oKTtcblxuICAgICAgICAgIGNvbnN0IGxlZnQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgcmlnaHQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSAhPT0gdHJ1ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxXaWR0aCA9IChzaXplLndpZHRoIHx8IDApIC0gbGVmdCAtIHJpZ2h0O1xuXG4gICAgICAgICAgeEF4ZXMuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICAgIGlmIChheGlzPy5vcHRpb25zLmludmVydGVkKSB7XG4gICAgICAgICAgICAgIGRvbWFpbiA9IFsuLi5heGlzLmV4dHJlbWVzXS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzY2FsZSA9IHRoaXMuc2NhbGVNYXBwaW5nXG4gICAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgICAucmFuZ2UoWzAsIGZpbmFsV2lkdGggLSBjb25maWcuYm91bmRzLnJpZ2h0XSk7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMubmljZVRpY2tzKSB7XG4gICAgICAgICAgICAgIHNjYWxlLm5pY2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmxvZykge1xuICAgICAgICAgICAgICBzY2FsZS5iYXNlKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUuYmFzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCBzY2FsZSk7XG4gICAgICAgICAgICBheGlzLnNldE9yaWdpbkRvbWFpbihzY2FsZS5kb21haW4oKSk7XG5cblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWC5oYXMoYXhpcy5pbmRleCk7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgICAgem9vbT8udGFyZ2V0Py5vcmllbnRhdGlvbiAhPT0gQXhpc09yaWVudGF0aW9uLnggfHxcbiAgICAgICAgICAgICAgem9vbS50YXJnZXQ/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2FjaGUgJiYgc2hvdWxkUmVzdG9yZSkge1xuICAgICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCByZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWChzY2FsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gem9vbS5ldmVudCBhcyBEM1pvb21FdmVudDxhbnksIGFueT47XG5cbiAgICAgICAgICAgIGlmICh6b29tLnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG5cbiAgICAgICAgICAgICAgaWYobWFwLmhhcyh6b29tLnRhcmdldC5pbmRleCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2NhbGUgPSBtYXAuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWChjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGF4aXMgPSB4QXhlcy5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG4gICAgICAgICAgY29uc3QgdG9wID0gWy4uLnhBeGVzLnZhbHVlcygpXVxuICAgICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICAgIGNvbnN0IGJvdHRvbSA9IFsuLi54QXhlcy52YWx1ZXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKF8pID0+IF8ub3B0aW9ucz8udmlzaWJsZSAmJiBfLm9wdGlvbnM/Lm9wcG9zaXRlICE9PSB0cnVlKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIGN1ci5zZWxmU2l6ZSwgMCk7XG5cbiAgICAgICAgICBjb25zdCBmaW5hbEhlaWdodCA9XG4gICAgICAgICAgICAoc2l6ZS5oZWlnaHQgfHwgMCkgLVxuICAgICAgICAgICAgdG9wIC1cbiAgICAgICAgICAgIGJvdHRvbSAtXG4gICAgICAgICAgICBjb25maWc/LmJvdW5kcz8udG9wIC1cbiAgICAgICAgICAgIGNvbmZpZy5ib3VuZHM/LmJvdHRvbTtcblxuICAgICAgICAgIHlBeGVzLmZvckVhY2goKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGxldCBkb21haW4gPSBheGlzLmV4dHJlbWVzO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gWy4uLmF4aXMuZXh0cmVtZXNdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXM/Lm9wdGlvbnMuaW52ZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnNjYWxlTWFwcGluZ1xuICAgICAgICAgICAgICAuZ2V0KGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSkoKVxuICAgICAgICAgICAgICAuZG9tYWluKGRvbWFpbilcbiAgICAgICAgICAgICAgLnJhbmdlKFtjb25maWcuYm91bmRzLnRvcCwgZmluYWxIZWlnaHRdKTtcblxuICAgICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5uaWNlVGlja3MpIHtcbiAgICAgICAgICAgICAgc2NhbGUubmljZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlID09PSBTY2FsZVR5cGUubG9nKSB7XG4gICAgICAgICAgICAgIHNjYWxlLmJhc2UoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS5iYXNlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHNjYWxlKTtcbiAgICAgICAgICAgIGF4aXMuc2V0T3JpZ2luRG9tYWluKHNjYWxlLmRvbWFpbigpKTtcblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWS5oYXMoYXhpcy5pbmRleCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNob3VsZFJlc3RvcmUgPVxuICAgICAgICAgICAgICB6b29tPy50YXJnZXQ/Lm9yaWVudGF0aW9uICE9PSBBeGlzT3JpZW50YXRpb24ueSB8fFxuICAgICAgICAgICAgICB6b29tLnRhcmdldD8uaW5kZXggIT09IGF4aXMuaW5kZXg7XG5cbiAgICAgICAgICAgIGlmIChoYXNDYWNoZSAmJiBzaG91bGRSZXN0b3JlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3RvcmVkVHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DYWNoZVkuZ2V0KGF4aXMuaW5kZXgpO1xuICAgICAgICAgICAgICBtYXAuc2V0KGF4aXMuaW5kZXgsIHJlc3RvcmVkVHJhbnNmb3JtLnJlc2NhbGVZKHNjYWxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB6b29tLmV2ZW50IGFzIEQzWm9vbUV2ZW50PGFueSwgYW55PjtcblxuICAgICAgICAgICAgaWYgKHpvb20udGFyZ2V0Py5vcmllbnRhdGlvbiA9PT0gQXhpc09yaWVudGF0aW9uLnkpIHtcblxuICAgICAgICAgICAgICBpZihtYXAuaGFzKHpvb20udGFyZ2V0LmluZGV4KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY2FsZSA9IG1hcC5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzY2FsZWQgPSBldmVudC50cmFuc2Zvcm0ucmVzY2FsZVkoY3VycmVudFNjYWxlKTtcbiAgICAgICAgICAgICAgICBtYXAuc2V0KHpvb20udGFyZ2V0LmluZGV4LCByZXNjYWxlZCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBheGlzID0geUF4ZXMuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybUNhY2hlWS5zZXQoYXhpcy5pbmRleCwgZXZlbnQudHJhbnNmb3JtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJ2aWNlL3NjYWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUV6QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRy9ELE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxjQUFjLEdBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTW5ELE1BQU0sT0FBTyxZQUFZO0lBbUJ2QixZQUNVLFlBQTBCLEVBQzFCLFdBQXdCO1FBRHhCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZDFCLG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFDbkQsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUVuRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFrQjthQUM3QyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO2FBQ3JDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDakMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4QyxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FB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dCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtEM1pvb21FdmVudCwgWm9vbVRyYW5zZm9ybX0gZnJvbSAnZDMnO1xuaW1wb3J0IHtBeGlzfSBmcm9tICcuLi9jb3JlL2F4aXMvYXhpcyc7XG5pbXBvcnQge0F4aXNPcmllbnRhdGlvbn0gZnJvbSAnLi4vbW9kZWwvZW51bS9heGlzLW9yaWVudGF0aW9uJztcbmltcG9ydCB7SUNoYXJ0Q29uZmlnfSBmcm9tICcuLi9tb2RlbC9pLWNoYXJ0LWNvbmZpZyc7XG5pbXBvcnQge0NoYXJ0U2VydmljZX0gZnJvbSAnLi9jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgd2l0aExhdGVzdEZyb20sfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SUNoYXJ0RXZlbnR9IGZyb20gJy4uL21vZGVsL2ktY2hhcnQtZXZlbnQnO1xuaW1wb3J0IHtab29tU2VydmljZX0gZnJvbSAnLi96b29tLnNlcnZpY2UnO1xuaW1wb3J0IHtTY2FsZVR5cGV9IGZyb20gJy4uL21vZGVsL2VudW0vc2NhbGUtdHlwZSc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FsZVNlcnZpY2Uge1xuICBwdWJsaWMgeUF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuICBwdWJsaWMgeEF4aXNNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgQXhpcz4+O1xuXG4gIHB1YmxpYyB5U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG4gIHB1YmxpYyB4U2NhbGVNYXA6IE9ic2VydmFibGU8TWFwPG51bWJlciwgYW55Pj47XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVggPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DYWNoZVkgPSBuZXcgTWFwPG51bWJlciwgWm9vbVRyYW5zZm9ybT4oKTtcblxuICBwcml2YXRlIHNjYWxlTWFwcGluZyA9IG5ldyBNYXA8U2NhbGVUeXBlLCBhbnk+KClcbiAgICAuc2V0KFNjYWxlVHlwZS5saW5lYXIsIGQzLnNjYWxlTGluZWFyKVxuICAgIC5zZXQoU2NhbGVUeXBlLnRpbWUsIGQzLnNjYWxlVGltZSlcbiAgICAuc2V0KFNjYWxlVHlwZS5jYXRlZ29yeSwgZDMuc2NhbGVPcmRpbmFsKVxuICAgIC5zZXQoU2NhbGVUeXBlLmxvZywgZDMuc2NhbGVMb2cpXG4gICAgLnNldChTY2FsZVR5cGUuc3ltbG9nLCBkMy5zY2FsZVN5bWxvZylcbiAgICAuc2V0KFNjYWxlVHlwZS5wb3csIGQzLnNjYWxlUG93KVxuICAgIC5zZXQoU2NhbGVUeXBlLnNxcnQsIGQzLnNjYWxlU3FydCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFydFNlcnZpY2U6IENoYXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHpvb21TZXJ2aWNlOiBab29tU2VydmljZVxuICApIHtcblxuICAgIHRoaXMueEF4aXNNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoZGF0YTogW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnXSkgPT4ge1xuICAgICAgICBjb25zdCBbLCBjb25maWddID0gZGF0YTtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIEF4aXM+KCk7XG4gICAgICAgIGNvbmZpZy54QXhpcy5tYXAoKF8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbWFwLnNldChpbmRleCwgQXhpcy5jcmVhdGVBeGlzKEF4aXNPcmllbnRhdGlvbi54LCBjb25maWcsIGluZGV4KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWFwO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55QXhpc01hcCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGFydFNlcnZpY2Uuc2l6ZSxcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLmNvbmZpZyxcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChkYXRhOiBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IFssIGNvbmZpZ10gPSBkYXRhO1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgQXhpcz4oKTtcbiAgICAgICAgY29uZmlnLnlBeGlzLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgICAgICBtYXAuc2V0KGluZGV4LCBBeGlzLmNyZWF0ZUF4aXMoQXhpc09yaWVudGF0aW9uLnksIGNvbmZpZywgaW5kZXgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoe1xuICAgICAgICBidWZmZXJTaXplOiAxLFxuICAgICAgICByZWZDb3VudDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMueFNjYWxlTWFwID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5zaXplLFxuICAgICAgdGhpcy5jaGFydFNlcnZpY2UuY29uZmlnLFxuICAgICAgdGhpcy56b29tU2VydmljZS56b29tZWQsXG4gICAgXSkucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMueUF4aXNNYXAsIHRoaXMueEF4aXNNYXApLFxuICAgICAgbWFwKFxuICAgICAgICAoXG4gICAgICAgICAgZGF0YTogW1xuICAgICAgICAgICAgW0RPTVJlY3RSZWFkT25seSwgSUNoYXJ0Q29uZmlnLCBJQ2hhcnRFdmVudDxBeGlzPl0sXG4gICAgICAgICAgICBNYXA8bnVtYmVyLCBBeGlzPixcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+XG4gICAgICAgICAgXVxuICAgICAgICApID0+IHtcbiAgICAgICAgICBjb25zdCBbW3NpemUsIGNvbmZpZywgem9vbV0sIHlBeGVzLCB4QXhlc10gPSBkYXRhO1xuXG4gICAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxudW1iZXIsIGFueT4oKTtcblxuICAgICAgICAgIGNvbnN0IGxlZnQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgcmlnaHQgPSBbLi4ueUF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSAhPT0gdHJ1ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxXaWR0aCA9IChzaXplLndpZHRoIHx8IDApIC0gbGVmdCAtIHJpZ2h0O1xuXG4gICAgICAgICAgeEF4ZXMuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICAgIGlmIChheGlzPy5vcHRpb25zLmludmVydGVkKSB7XG4gICAgICAgICAgICAgIGRvbWFpbiA9IFsuLi5heGlzLmV4dHJlbWVzXS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBzY2FsZSA9IHRoaXMuc2NhbGVNYXBwaW5nXG4gICAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgICAucmFuZ2UoWzAsIGZpbmFsV2lkdGggLSBjb25maWcuYm91bmRzLnJpZ2h0XSk7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMubmljZVRpY2tzKSB7XG4gICAgICAgICAgICAgIHNjYWxlLm5pY2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUudHlwZSA9PT0gU2NhbGVUeXBlLmxvZykge1xuICAgICAgICAgICAgICBzY2FsZS5iYXNlKGF4aXMub3B0aW9ucy5zY2FsZVR5cGUuYmFzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCBzY2FsZSk7XG4gICAgICAgICAgICBheGlzLnNldE9yaWdpbkRvbWFpbihzY2FsZS5kb21haW4oKSk7XG5cblxuICAgICAgICAgICAgY29uc3QgaGFzQ2FjaGUgPSB0aGlzLnRyYW5zZm9ybUNhY2hlWC5oYXMoYXhpcy5pbmRleCk7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRSZXN0b3JlID1cbiAgICAgICAgICAgICAgem9vbT8udGFyZ2V0Py5vcmllbnRhdGlvbiAhPT0gQXhpc09yaWVudGF0aW9uLnggfHxcbiAgICAgICAgICAgICAgem9vbS50YXJnZXQ/LmluZGV4ICE9PSBheGlzLmluZGV4O1xuXG4gICAgICAgICAgICBpZiAoaGFzQ2FjaGUgJiYgc2hvdWxkUmVzdG9yZSkge1xuICAgICAgICAgICAgICBjb25zdCByZXN0b3JlZFRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVYLmdldChheGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgbWFwLnNldChheGlzLmluZGV4LCByZXN0b3JlZFRyYW5zZm9ybS5yZXNjYWxlWChzY2FsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gem9vbS5ldmVudCBhcyBEM1pvb21FdmVudDxhbnksIGFueT47XG5cbiAgICAgICAgICAgIGlmICh6b29tLnRhcmdldD8ub3JpZW50YXRpb24gPT09IEF4aXNPcmllbnRhdGlvbi54KSB7XG5cbiAgICAgICAgICAgICAgaWYobWFwLmhhcyh6b29tLnRhcmdldC5pbmRleCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2NhbGUgPSBtYXAuZ2V0KHpvb20udGFyZ2V0LmluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWChjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGF4aXMgPSB4QXhlcy5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVYLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBzaGFyZVJlcGxheSh7XG4gICAgICAgIGJ1ZmZlclNpemU6IDEsXG4gICAgICAgIHJlZkNvdW50OiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy55U2NhbGVNYXAgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY2hhcnRTZXJ2aWNlLnNpemUsXG4gICAgICB0aGlzLmNoYXJ0U2VydmljZS5jb25maWcsXG4gICAgICB0aGlzLnpvb21TZXJ2aWNlLnpvb21lZCxcbiAgICBdKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy55QXhpc01hcCwgdGhpcy54QXhpc01hcCksXG4gICAgICBtYXAoXG4gICAgICAgIChcbiAgICAgICAgICBkYXRhOiBbXG4gICAgICAgICAgICBbRE9NUmVjdFJlYWRPbmx5LCBJQ2hhcnRDb25maWcsIElDaGFydEV2ZW50PEF4aXM+XSxcbiAgICAgICAgICAgIE1hcDxudW1iZXIsIEF4aXM+LFxuICAgICAgICAgICAgTWFwPG51bWJlciwgQXhpcz5cbiAgICAgICAgICBdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtbc2l6ZSwgY29uZmlnLCB6b29tXSwgeUF4ZXMsIHhBeGVzXSA9IGRhdGE7XG5cbiAgICAgICAgICBjb25zdCBtYXAgPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuXG5cbiAgICAgICAgICBjb25zdCB0b3AgPSBbLi4ueEF4ZXMudmFsdWVzKCldXG4gICAgICAgICAgICAuZmlsdGVyKChfKSA9PiBfLm9wdGlvbnM/LnZpc2libGUgJiYgXy5vcHRpb25zPy5vcHBvc2l0ZSlcbiAgICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyBjdXIuc2VsZlNpemUsIDApO1xuXG4gICAgICAgICAgY29uc3QgYm90dG9tID0gWy4uLnhBeGVzLnZhbHVlcygpXVxuICAgICAgICAgICAgLmZpbHRlcigoXykgPT4gXy5vcHRpb25zPy52aXNpYmxlICYmIF8ub3B0aW9ucz8ub3Bwb3NpdGUgIT09IHRydWUpXG4gICAgICAgICAgICAucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgY3VyLnNlbGZTaXplLCAwKTtcblxuICAgICAgICAgIGNvbnN0IGZpbmFsSGVpZ2h0ID1cbiAgICAgICAgICAgIChzaXplLmhlaWdodCB8fCAwKSAtXG4gICAgICAgICAgICB0b3AgLVxuICAgICAgICAgICAgYm90dG9tIC1cbiAgICAgICAgICAgIGNvbmZpZz8uYm91bmRzPy50b3AgLVxuICAgICAgICAgICAgY29uZmlnLmJvdW5kcz8uYm90dG9tO1xuXG4gICAgICAgICAgeUF4ZXMuZm9yRWFjaCgoYXhpcykgPT4ge1xuICAgICAgICAgICAgbGV0IGRvbWFpbiA9IGF4aXMuZXh0cmVtZXM7XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuICAgICAgICAgICAgICBkb21haW4gPSBbLi4uYXhpcy5leHRyZW1lc10ucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYXhpcz8ub3B0aW9ucy5pbnZlcnRlZCkge1xuICAgICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IHRoaXMuc2NhbGVNYXBwaW5nXG4gICAgICAgICAgICAgIC5nZXQoYXhpcy5vcHRpb25zLnNjYWxlVHlwZS50eXBlKSgpXG4gICAgICAgICAgICAgIC5kb21haW4oZG9tYWluKVxuICAgICAgICAgICAgICAucmFuZ2UoW2NvbmZpZy5ib3VuZHMudG9wLCBmaW5hbEhlaWdodF0pO1xuXG4gICAgICAgICAgICBpZiAoYXhpcy5vcHRpb25zLm5pY2VUaWNrcykge1xuICAgICAgICAgICAgICBzY2FsZS5uaWNlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChheGlzLm9wdGlvbnMuc2NhbGVUeXBlLnR5cGUgPT09IFNjYWxlVHlwZS5sb2cpIHtcbiAgICAgICAgICAgICAgc2NhbGUuYmFzZShheGlzLm9wdGlvbnMuc2NhbGVUeXBlLmJhc2UpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1hcC5zZXQoYXhpcy5pbmRleCwgc2NhbGUpO1xuICAgICAgICAgICAgYXhpcy5zZXRPcmlnaW5Eb21haW4oc2NhbGUuZG9tYWluKCkpO1xuXG4gICAgICAgICAgICBjb25zdCBoYXNDYWNoZSA9IHRoaXMudHJhbnNmb3JtQ2FjaGVZLmhhcyhheGlzLmluZGV4KTtcblxuICAgICAgICAgICAgY29uc3Qgc2hvdWxkUmVzdG9yZSA9XG4gICAgICAgICAgICAgIHpvb20/LnRhcmdldD8ub3JpZW50YXRpb24gIT09IEF4aXNPcmllbnRhdGlvbi55IHx8XG4gICAgICAgICAgICAgIHpvb20udGFyZ2V0Py5pbmRleCAhPT0gYXhpcy5pbmRleDtcblxuICAgICAgICAgICAgaWYgKGhhc0NhY2hlICYmIHNob3VsZFJlc3RvcmUpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzdG9yZWRUcmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNhY2hlWS5nZXQoYXhpcy5pbmRleCk7XG4gICAgICAgICAgICAgIG1hcC5zZXQoYXhpcy5pbmRleCwgcmVzdG9yZWRUcmFuc2Zvcm0ucmVzY2FsZVkoc2NhbGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh6b29tKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IHpvb20uZXZlbnQgYXMgRDNab29tRXZlbnQ8YW55LCBhbnk+O1xuXG4gICAgICAgICAgICBpZiAoem9vbS50YXJnZXQ/Lm9yaWVudGF0aW9uID09PSBBeGlzT3JpZW50YXRpb24ueSkge1xuXG4gICAgICAgICAgICAgIGlmKG1hcC5oYXMoem9vbS50YXJnZXQuaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjYWxlID0gbWFwLmdldCh6b29tLnRhcmdldC5pbmRleCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZXNjYWxlZCA9IGV2ZW50LnRyYW5zZm9ybS5yZXNjYWxlWShjdXJyZW50U2NhbGUpO1xuICAgICAgICAgICAgICAgIG1hcC5zZXQoem9vbS50YXJnZXQuaW5kZXgsIHJlc2NhbGVkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGF4aXMgPSB5QXhlcy5nZXQoem9vbS50YXJnZXQuaW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtQ2FjaGVZLnNldChheGlzLmluZGV4LCBldmVudC50cmFuc2Zvcm0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1hcDtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtcbiAgICAgICAgYnVmZmVyU2l6ZTogMSxcbiAgICAgICAgcmVmQ291bnQ6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==