basesite-shared-grid-lib 15.10.40 → 15.10.41

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.
@@ -328,7 +328,7 @@ export class GridLibraryComponent {
328
328
  uiGridId: this.gridId,
329
329
  userId: this.loggedInUser,
330
330
  };
331
- if (event.finished == true || event.type === 'columnPinned' || (event.type === 'filterChanged' || event.type === 'sortChanged')) {
331
+ if (event.type === 'columnPinned' || (event.type === 'filterChanged' || event.type === 'sortChanged')) {
332
332
  this.gridColumnState = columnState;
333
333
  this.gridService.saveColumnConfig(columnData)
334
334
  .pipe(takeUntil(this.unsubscribe$))
@@ -551,4 +551,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
551
551
  }], selectionChanged: [{
552
552
  type: Output
553
553
  }] } });
554
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQWdCdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVuRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBc0QzQyxNQUFNLE9BQU8sb0JBQW9CO0lBc0MvQixZQUNVLFdBQStCLEVBQy9CLGdCQUFzQyxFQUN0QyxvQkFBeUM7UUFGekMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQXJDbkQsaUNBQWlDO1FBQ3hCLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUM5QixpQkFBWSxHQUFRLFVBQVUsQ0FBQztRQUcvQiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHeEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBQ3pDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXpDLGdCQUFnQjtRQUNOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8s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LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7XHJcbiAgQ29sRGVmLFxyXG4gIEdldENvbnRleHRNZW51SXRlbXNQYXJhbXMsXHJcbiAgR2V0Um93SWRGdW5jLFxyXG4gIEdldFJvd0lkUGFyYW1zLFxyXG4gIEdyaWRBcGksXHJcbiAgR3JpZFJlYWR5RXZlbnQsXHJcbiAgTWVudUl0ZW1EZWYsXHJcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcclxuICBSb3dNb2RlbFR5cGUsXHJcbiAgUm93Tm9kZSxcclxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcclxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IEdyaWRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4vZ3JpZC1saWJyYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XHJcbmltcG9ydCB7IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZW5kZXJlci9idXR0b24tcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbVRvb2x0aXAgfSBmcm9tICcuL3JlbmRlcmVyL3Rvb2x0aXAtcmVuZGVyZXIvY3VzdG9tLXRvb2x0aXAtcmVuZGVyZXInO1xyXG5pbXBvcnQgeyBEcm9wZG93blJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlci9kcm9wZG93bi1yZW5kZXJlci9kcm9wLWRvd24tcmVuZGVyZXInO1xyXG5pbXBvcnQgeyBDb2x1bW5WYWx1ZUZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVycy9jb2x1bW4tdmFsdWUtZm9ybWF0dGVyJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRva2VuU2hhcmluZ1NlcnZpY2UgfSBmcm9tICcuL3Rva2VuLXNoYXJpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICNhZ0dyaWRcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6OTguMnZoXCJcclxuICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gc2hhcmVkLWdyaWQtbGliXCJcclxuICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxyXG4gICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcclxuICAgICAgW3Jvd1NlbGVjdGlvbl09XCJyb3dTZWxlY3Rpb25cIlxyXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXHJcbiAgICAgIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXHJcbiAgICAgIFtwYWdpbmF0aW9uXT1cInRydWVcIlxyXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcclxuICAgICAgW3BhZ2luYXRpb25BdXRvUGFnZVNpemVdPVwicGFnaW5hdGlvbkF1dG9QYWdlU2l6ZVwiXHJcbiAgICAgIFt0b29sdGlwU2hvd0RlbGF5XT1cInRvb2x0aXBTaG93RGVsYXlcIlxyXG4gICAgICBbdG9vbHRpcEhpZGVEZWxheV09XCJ0b29sdGlwSGlkZURlbGF5XCJcclxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxyXG4gICAgICBbY2FjaGVCbG9ja1NpemVdPVwiY2FjaGVCbG9ja1NpemVcIlxyXG4gICAgICBbbWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0c109XCIxXCJcclxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXHJcbiAgICAgIChjb2x1bW5WaXNpYmxlKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKGNvbHVtblBpbm5lZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKGNvbHVtbk1vdmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWRFdmVudCgkZXZlbnQpXCJcclxuICAgICAgW3Jvd011bHRpU2VsZWN0V2l0aENsaWNrXT1cInJvd011bHRpU2VsZWN0V2l0aENsaWNrXCJcclxuICAgICAgW2dldENvbnRleHRNZW51SXRlbXNdPVwiZ2V0Q29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgKGZpbHRlckNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAoZmlyc3REYXRhUmVuZGVyZWQpPVwib25GaXJzdERhdGFSZW5kZXJlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgPGFnLWdyaWQtYW5ndWxhclxyXG4gICAgICAjYWdHcmlkSGlkZGVuXHJcbiAgICAgIHN0eWxlPVwiaGVpZ2h0OjEwMHZoOyB3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZVwiXHJcbiAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcclxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YUhpZGRlblwiXHJcbiAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG4gICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAgICAgW2FuaW1hdGVSb3dzXT1cImZhbHNlXCJcclxuICAgICAgW3Jvd1NlbGVjdGlvbl09XCInbXVsdGlwbGUnXCJcclxuICAgICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeUV4Y2VsKCRldmVudClcIlxyXG4gICAgICBbc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGFdPVwidHJ1ZVwiXHJcbiAgICAgIFtjYWNoZVF1aWNrRmlsdGVyXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRMaWJyYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vaW5wdXQgcGFyYW1zXHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55O1xyXG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcclxuICAvL0BJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcclxuICBASW5wdXQoKSBwYWdpbmF0aW9uQXV0b1BhZ2VTaXplID0gdHJ1ZTtcclxuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XHJcbiAgQElucHV0KCkgZ3JpZElkOiBhbnk7XHJcbiAgQElucHV0KCkgbG9nZ2VkSW5Vc2VyOiBhbnk7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlcnZlckRhdGFVcmwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW52aXJvbm1lbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgcm93TXVsdGlTZWxlY3RXaXRoQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmbG9hdGluZ0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xyXG4gIC8vZXZlbnQgZW1pdHRlcnNcclxuICBAT3V0cHV0KCkgYnRuQ2xpY2tIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpcnN0RGF0YVJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvL3ZpZXdDaGlsZHNcclxuICAvL0BWaWV3Q2hpbGQoJ2FnR3JpZCcpIGFnR3JpZCE6IEFnR3JpZEFuZ3VsYXI7XHJcblxyXG4gIC8vcGFyYW10ZXJzXHJcbiAgcm93RGF0YUhpZGRlbjogYW55ID0gW107XHJcbiAgZ3JpZENvbHVtblN0YXRlOiBhbnk7XHJcbiAgZXhwb3J0Q29sdW1uc0xpc3Q6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5ID0gMDtcclxuICBwdWJsaWMgdG9vbHRpcEhpZGVEZWxheSA9IDIwMDA7XHJcbiAgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xyXG4gIC8vcHVibGljIGdyaWRQYWdlU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIGV4Y2VsQVBJITogR3JpZEFwaTtcclxuICBwcml2YXRlIGdyaWRBUEkhOkdyaWRBcGk7XHJcbiAgLy91bnN1YnNjcmliZSBzdWJqZWN0XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRMaWJyYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybWF0dGVyU2VydmljZTogQ29sdW1uVmFsdWVGb3JtYXR0ZXIsXHJcbiAgICBwcml2YXRlIF90b2tlblNoYXJpbmdTZXJ2aWNlOiBUb2tlblNoYXJpbmdTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBvblNvcnRDaGFuZ2VkRXZlbnQoZTphbnkpIHtcclxuICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gdGhpcy5ncmlkQVBJLmdldFN0YXRlKCk7XHJcbiAgICB0aGlzLm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl90b2tlblNoYXJpbmdTZXJ2aWNlLnVwZGF0ZVRva2VuKHRoaXMudG9rZW4pO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdzZXJ2ZXJTaWRlJztcclxuICAgICAgdGhpcy5yb3dEYXRhID0gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmNhY2hlQmxvY2tTaXplID0gdGhpcy5jYWNoZUJsb2NrU2l6ZSA9IDAgPyAxMDAgOiB0aGlzLmNhY2hlQmxvY2tTaXplO1xyXG4gICAgdGhpcy5ncmlkU2VydmljZS5zZXRCYXNlVXJsKHRoaXMuZW52aXJvbm1lbnQpO1xyXG4gICAgLy90aGlzLmdldEdyaWRTdGF0ZSgpO1xyXG4gICAgdGhpcy5nZXRDb2xEZWYoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyOiAoXHJcbiAgICBwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXNcclxuICApID0+IHN0cmluZyA9IChwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXMpID0+IHtcclxuICAgIHJldHVybiAnWycgKyBwYXJhbXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoKSArICddJztcclxuICB9O1xyXG5cclxuICBnZXRDb2xEZWYoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZVxyXG4gICAgICAgIC5nZXRDb2xEZWYodGhpcy5ncmlkSWQpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDEpIHtcclxuICAgICAgICAgICAgbGV0IGNvbGRlZjogQ29sRGVmW10gPSByZXNwb25zZS5yZXN1bHQubWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuaXNCdXR0b24gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmNvbHVtblR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlckNoZWNrYm94U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveFNlbGVjdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93RGlzYWJsZWRDaGVja2JveGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzU29ydGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDU1LFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuY29sdW1uVHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NGaWx0ZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NTb3J0aW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6IHJlcy5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IERyb3Bkb3duUmVuZGVyZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQnRuQ2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IHJlcy50b29sdGlwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZHJvcERvd25EYXRhOiByZXMuZHJvcERvd25EYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZS5ub2RlLnNldFNlbGVjdGVkKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MCxcclxuICAgICAgICAgICAgICAgICAgICBwaW5uZWQ6IHJlcy5waW5Qb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBsb2NrUGlubmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nRmlsdGVyOiB0aGlzLmZsb2F0aW5nRmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVyU2VydmljZS5jb2xWYWx1ZUZvcm1hdHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuY29sdW1uVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiByZXMuZmlsdGVyYWJsZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMuY29sdW1uVHlwZSA9PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdhZ1RleHRDb2x1bW5GaWx0ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzLmNvbHVtblR5cGUgPT0gJ251bWJlcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnYWdOdW1iZXJDb2x1bW5GaWx0ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2FnRGF0ZUNvbHVtbkZpbHRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wYXJhdG9yOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQ6IGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlOiBhbnlcclxuICAgICAgICAgICAgICAgICAgICAgICkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBjZWxsVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZUFzU3RyaW5nID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvbHVtblR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbERhdGUgPSBuZXcgRGF0ZShkYXRlQXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsRGF0ZSA8IGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNlbGxEYXRlID4gZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsncmVzZXQnXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiByZXMudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBoaWRlOiAhcmVzLnZpc2libGUsXHJcbiAgICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBzdXBwcmVzc1NvcnRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogQnV0dG9uUmVuZGVyZXJDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25CdG5DbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiByZXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogcmVzLmljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uTmFtZTogcmVzLmJ1dHRvbk5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogcmVzLnRvb2x0aXAsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnRvb2x0aXAgfHwgcmVzLnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMjAsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ2FjdGlvbi1idXR0b24nLFxyXG4gICAgICAgICAgICAgICAgICBwaW5uZWQ6IHJlcy5waW5Qb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgbG9ja1Bpbm5lZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlcy5sYWJlbCA/IDEwMCA6IDQwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydENvbHVtbnNMaXN0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSBjb2xkZWY7XHJcbiAgICAgICAgICAgLy8gdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmFwaT8uc2V0Q29sdW1uRGVmcyhjb2xkZWYpO1xyXG4gICAgICAgICAgICB0aGlzLmdldEdyaWRTdGF0ZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NvbERlZiBSZWFkIEVycm9yPT4nLCByZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgcGFzcyB2YWxpZCBHcmlkSWQgYW5kIGxvZ2dlZEluIHVzZXIgSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zOiBhbnkpIHtcclxuICAgIHZhciBzZXJ2ZXJVcmwgPSAnJztcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJ2ZpbHRlcicpID49IDAgJiZcclxuICAgICAgb3B0aW9ucy5pbmRleE9mKCdmaWx0ZXInKSA+PSAwXHJcbiAgICApIHtcclxuICAgICAgbGV0IHNsdWcgPSB0aGlzLnNlcnZlckRhdGFVcmwuc3BsaXQoJz8kZmlsdGVyPScpO1xyXG4gICAgICBpZiAoc2x1ZyAmJiBzbHVnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyArICcgYW5kICcgKyBzbHVnWzFdO1xyXG4gICAgICAgIHNlcnZlclVybCA9IHNsdWdbMF07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJz8nKSA+PSAwKSB7XHJcbiAgICAgIHNlcnZlclVybCA9IHRoaXMuc2VydmVyRGF0YVVybDtcclxuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMucmVwbGFjZSgnPycsICcmJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7c2VydmVyVXJsfSR7b3B0aW9uc31gO1xyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xyXG4gICAgLy90aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmdyaWRBUEk9cGFyYW1zLmFwaTtcclxuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAvL2NhbGwgYXBpXHJcbiAgICAgIGxldCByZXFIZWFkZXJzID0ge1xyXG4gICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy50b2tlbixcclxuICAgICAgfTtcclxuICAgICAgcGFyYW1zLmFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZShcclxuICAgICAgICBuZXcgT2RhdGFTZXJ2ZXJTaWRlUHJvdmlkZXIoe1xyXG4gICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlU3RyaW5nRmlsdGVyOiBmYWxzZSxcclxuICAgICAgICAgIGNhbGxBcGk6IChvcHRpb25zKSA9PlxyXG4gICAgICAgICAgICBmZXRjaChgJHt0aGlzLnNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zKX1gLCB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVxSGVhZGVycyxcclxuICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSksXHJcbiAgICAgICAgICBhZnRlckxvYWREYXRhOiAob3B0aW9ucywgcm93RGF0YSwgdG90YWxDb3VudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJvd0RhdGEgfHwgcm93RGF0YS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZEFQSS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZEFQSS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRHcmlkU3RhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUpIHsgICAgICBcclxuICAgICAgdGhpcy5ncmlkQVBJLmFwcGx5Q29sdW1uU3RhdGUoe3N0YXRlOnRoaXMuZ3JpZENvbHVtblN0YXRlLmNvbHVtblNpemluZz8uY29sdW1uU2l6aW5nTW9kZWwsYXBwbHlPcmRlcjp0cnVlfSk7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRDb2x1bW5TdGF0ZS5zb3J0KSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLmFwcGx5Q29sdW1uU3RhdGUoe3N0YXRlOnRoaXMuZ3JpZENvbHVtblN0YXRlLnNvcnQuc29ydE1vZGVsfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUuZmlsdGVyKSB7XHJcbiAgICAgICAgdmFyIGZpbHRlck1vZGVsOmFueT10aGlzLmdyaWRDb2x1bW5TdGF0ZS5maWx0ZXIuZmlsdGVyTW9kZWw7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLnNldEZpbHRlck1vZGVsKGZpbHRlck1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgIFxyXG4gICAgfSAgZWxzZSB7XHJcbiAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5ncmlkQVBJLmdldENvbHVtbnMoKTtcclxuICAgICAgaWYgKGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID4gMTUpIHtcclxuICAgICAgICAgIGNvbnN0IGFsbENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFQSSEuZ2V0Q29sdW1ucygpIS5mb3JFYWNoKChjb2x1bW46YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGFsbENvbHVtbklkcy5wdXNoKGNvbHVtbi5nZXRJZCgpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5ncmlkQVBJIS5hdXRvU2l6ZUNvbHVtbnMoYWxsQ29sdW1uSWRzLCBmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFQSS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRHcmlkU3RhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZVxyXG4gICAgICAgIC5nZXRHcmlkU3RhdGUodGhpcy5ncmlkSWQsIHRoaXMubG9nZ2VkSW5Vc2VyKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPT0gMSAmJlxyXG4gICAgICAgICAgICByZXNwb25zZS5yZXN1bHQgJiZcclxuICAgICAgICAgICAgcmVzcG9uc2UucmVzdWx0LmdyaWRDb25maWdcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzdWx0LmdyaWRDb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ3JpZCBzdGF0ZScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CdG5DbGljayhlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdidG4gY2xpY2s9PicsIGUpO1xyXG4gICAgdGhpcy5idG5DbGlja0hhbmRsZXIuZW1pdChlLnJvd0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgb25TYXZlR3JpZENvbHVtblN0YXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBjb2x1bW5TdGF0ZSA9IHRoaXMuZ3JpZEFQST8uZ2V0U3RhdGUoKTtcclxuICAgIGxldCBjb2x1bW5EYXRhID0ge1xyXG4gICAgICBncmlkQ29uZmlnOiBKU09OLnN0cmluZ2lmeShjb2x1bW5TdGF0ZSksXHJcbiAgICAgIHVpR3JpZElkOiB0aGlzLmdyaWRJZCxcclxuICAgICAgdXNlcklkOiB0aGlzLmxvZ2dlZEluVXNlcixcclxuICAgIH07XHJcbiAgICBpZiAoZXZlbnQuZmluaXNoZWQgPT0gdHJ1ZSB8fCBldmVudC50eXBlID09PSAnY29sdW1uUGlubmVkJyB8fCAoZXZlbnQudHlwZT09PSdmaWx0ZXJDaGFuZ2VkJyB8fCBldmVudC50eXBlPT09J3NvcnRDaGFuZ2VkJykpIHtcclxuICAgICAgdGhpcy5ncmlkQ29sdW1uU3RhdGUgPSBjb2x1bW5TdGF0ZTtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQ29sdW1uQ29uZmlnKGNvbHVtbkRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgLy90aGlzLnNldEdyaWRTdGF0ZSgpO1xyXG4gICAgICAgIGlmIChyZXMuc3RhdHVzID09IDApIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB3aGlsZSBzYXZpbmcgY29sdW1uIGNvbmZpZ3VyYXRpb246JywgcmVzLm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSb3dCeUlkOiBHZXRSb3dJZEZ1bmMgPSAocGFyYW1zOiBHZXRSb3dJZFBhcmFtcykgPT4ge1xyXG4gICAgdmFyIGRhdGEgPSBwYXJhbXMuZGF0YTtcclxuICAgIHJldHVybiBkYXRhLmlkID8/IDA7XHJcbiAgfTtcclxuXHJcbiAgLy8gQ3VzdG9tIHJpZ2h0IGNsaWNrIENvbnRleHQgTWVudSB0byBzdXBwb3J0IGN1c3RvbSBleGNlbCBleHBvcnRzXHJcbiAgcHVibGljIGdldENvbnRleHRNZW51SXRlbXMgPSAoXHJcbiAgICBwYXJhbXM6IEdldENvbnRleHRNZW51SXRlbXNQYXJhbXNcclxuICApOiAoc3RyaW5nIHwgTWVudUl0ZW1EZWYpW10gPT4ge1xyXG4gICAgbGV0IHJlczogKHN0cmluZyB8IE1lbnVJdGVtRGVmKVtdID0gW1xyXG4gICAgICAnY3V0JyxcclxuICAgICAgJ2NvcHknLFxyXG4gICAgICAnY29weVdpdGhIZWFkZXJzJyxcclxuICAgICAgJ2NvcHlXaXRoR3JvdXBIZWFkZXJzJyxcclxuICAgICAgJ3Bhc3RlJyxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdFeHBvcnQnLFxyXG4gICAgICAgIHN1Yk1lbnU6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ0NTViBFeHBvcnQnLFxyXG4gICAgICAgICAgICBhY3Rpb246ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV4cG9ydEZpbGUoJ2NzdicpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ0V4Y2VsIEV4cG9ydCcsXHJcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhwb3J0RmlsZSgneGxzeCcpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuXHJcbiAgLy9jdXN0b20gZXhwb3J0IG1ldGhvZFxyXG4gIHB1YmxpYyBleHBvcnRGaWxlKHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZXREYXRhRm9yRXhjZWxFeHBvcnQodHlwZSk7XHJcbiAgfVxyXG4gIC8vR2VuZXJhdGUgb25seSB0aG9zZSBjb2x1bW5zIGZvciBleHBvcnQgd2hpY2ggYXJlIHZpc2libGUgYW5kIGFyZSBub3Qgb2Ygb3RoZXIgdHlwZXMgdGhhdCBhcmUgbm90IHJlcXVpcmVkIGZvciBleHBvcnRcclxuICBnZW5lcmF0ZUNvbHVtbnNGb3JFeGNlbCgpOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgY29sdW1uc1RvQmVEaXNwbGF5ZWRGb3JFeGNlbDogYW55ID0gW107XHJcbiAgICB0aGlzLmV4cG9ydENvbHVtbnNMaXN0LmZvckVhY2goKGNvbHVtbjogYW55KSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4udmlzaWJsZSA9PSB0cnVlICYmXHJcbiAgICAgICAgY29sdW1uLmNvbHVtblR5cGUgIT0gJ2NoZWNrYm94JyAmJlxyXG4gICAgICAgIGNvbHVtbi5jb2x1bW5UeXBlICE9ICdkcm9wZG93bicgJiZcclxuICAgICAgICBjb2x1bW4uY29sdW1uVHlwZSAhPSAnJ1xyXG4gICAgICApIHtcclxuICAgICAgICBjb2x1bW5zVG9CZURpc3BsYXllZEZvckV4Y2VsLnB1c2goY29sdW1uLmZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29sdW1uc1RvQmVEaXNwbGF5ZWRGb3JFeGNlbDtcclxuICB9XHJcblxyXG4gIC8vR2V0IGRhdGEgZnJvbSBzZXJ2ZXIgd2l0aG91dCBwYWdpbmcgc28gdGhhdCB3aG9sZSBkYXRhIGNhbiBiZSBleHBvcnRlZCB0byBleGNlbFxyXG4gIC8vIGFuZCBhbHNvIGNoZWNrIGZvciBzZXJ2ZXIgc2lkZSBhbmQgY2xpZW50IHNpZGUgcmVuZGVyaW5nIG9mIGRhdGEgZm9yIGV4cG9ydC5cclxuICBnZXREYXRhRm9yRXhjZWxFeHBvcnQodHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdyaWRBUEkuc2hvd0xvYWRpbmdPdmVybGF5KCk7XHJcbiAgICBpZiAodGhpcy5lbmFibGVTZXJ2ZXJTaWRlUGFnaW5nKSB7XHJcbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2VcclxuICAgICAgICAuZ2V0RGF0YUZvckV4cG9ydCh0aGlzLnNlcnZlckRhdGFVcmwpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdyaWRBUEkuaGlkZU92ZXJsYXkoKTtcclxuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWxBUEkuc2V0Um93RGF0YShyZXNwb25zZS52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWxBUEkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG4gICAgICAgICAgICBpZiAodHlwZSA9PSAnY3N2Jykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhjZWxBUEkuZXhwb3J0RGF0YUFzQ3N2KHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleXM6IHRoaXMuZ2VuZXJhdGVDb2x1bW5zRm9yRXhjZWwoKSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmV4Y2VsQVBJLmV4cG9ydERhdGFBc0V4Y2VsKHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleXM6IHRoaXMuZ2VuZXJhdGVDb2x1bW5zRm9yRXhjZWwoKSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIGZldGNoaW5nIGRhdGEgZm9yIGV4Y2VsL2NzdiBleHBvcnQnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JpZEFQSS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICBpZiAodHlwZSA9PSAnY3N2Jykge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFQSS5leHBvcnREYXRhQXNDc3Yoe1xyXG4gICAgICAgICAgY29sdW1uS2V5czogdGhpcy5nZW5lcmF0ZUNvbHVtbnNGb3JFeGNlbCgpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFQSS5leHBvcnREYXRhQXNFeGNlbCh7XHJcbiAgICAgICAgICBjb2x1bW5LZXlzOiB0aGlzLmdlbmVyYXRlQ29sdW1uc0ZvckV4Y2VsKCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZChlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXJDaGFuZ2VkKGU6IGFueSkge1xyXG4gICAgdGhpcy5vblNhdmVHcmlkQ29sdW1uU3RhdGUoZSk7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZWQuZW1pdChlKTsgICAgXHJcbiAgfVxyXG5cclxuICBvbkZpcnN0RGF0YVJlbmRlcmVkKGU6IGFueSkge1xyXG4gICAgdGhpcy5maXJzdERhdGFSZW5kZXJlZC5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHlFeGNlbChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy5leGNlbEFQSSA9IHBhcmFtcy5hcGk7XHJcbiAgfVxyXG5cclxuICAvL2Rlc3Ryb3kgYWxsIGFzc29jaWF0ZWQgc3Vic2NyaXB0aW9ucyBvbiBjb21wb25lbnQgZGVzdHJveVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19
554
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1saWJyYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jhc2VzaXRlLXNoYXJlZC1ncmlkLWxpYi9zcmMvbGliL2dyaWQtbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQWdCdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUVuRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBc0QzQyxNQUFNLE9BQU8sb0JBQW9CO0lBc0MvQixZQUNVLFdBQStCLEVBQy9CLGdCQUFzQyxFQUN0QyxvQkFBeUM7UUFGekMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQXJDbkQsaUNBQWlDO1FBQ3hCLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUM5QixpQkFBWSxHQUFRLFVBQVUsQ0FBQztRQUcvQiwyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFHeEMsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDM0IsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBQ3pDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXpDLGdCQUFnQjtRQUNOLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8s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Q0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7O2lIQW5jVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtcEJBakRyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDVDsyRkFHVSxvQkFBb0I7a0JBbkRoQyxTQUFTOytCQUNFLDhCQUE4QixZQUM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDVDs4S0FLUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7XHJcbiAgQ29sRGVmLFxyXG4gIEdldENvbnRleHRNZW51SXRlbXNQYXJhbXMsXHJcbiAgR2V0Um93SWRGdW5jLFxyXG4gIEdldFJvd0lkUGFyYW1zLFxyXG4gIEdyaWRBcGksXHJcbiAgR3JpZFJlYWR5RXZlbnQsXHJcbiAgTWVudUl0ZW1EZWYsXHJcbiAgUGFnaW5hdGlvbk51bWJlckZvcm1hdHRlclBhcmFtcyxcclxuICBSb3dNb2RlbFR5cGUsXHJcbiAgUm93Tm9kZSxcclxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcclxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IEdyaWRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4vZ3JpZC1saWJyYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPZGF0YVNlcnZlclNpZGVQcm92aWRlciB9IGZyb20gJy4vaGVscGVycyc7XHJcbmltcG9ydCB7IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZW5kZXJlci9idXR0b24tcmVuZGVyZXIvYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEN1c3RvbVRvb2x0aXAgfSBmcm9tICcuL3JlbmRlcmVyL3Rvb2x0aXAtcmVuZGVyZXIvY3VzdG9tLXRvb2x0aXAtcmVuZGVyZXInO1xyXG5pbXBvcnQgeyBEcm9wZG93blJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlci9kcm9wZG93bi1yZW5kZXJlci9kcm9wLWRvd24tcmVuZGVyZXInO1xyXG5pbXBvcnQgeyBDb2x1bW5WYWx1ZUZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVycy9jb2x1bW4tdmFsdWUtZm9ybWF0dGVyJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRva2VuU2hhcmluZ1NlcnZpY2UgfSBmcm9tICcuL3Rva2VuLXNoYXJpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iYXNlc2l0ZS1zaGFyZWQtZ3JpZC1saWInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YWctZ3JpZC1hbmd1bGFyXHJcbiAgICAgICNhZ0dyaWRcclxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6OTguMnZoXCJcclxuICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW0gc2hhcmVkLWdyaWQtbGliXCJcclxuICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgICAgIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIlxyXG4gICAgICBbcm93RGF0YV09XCJyb3dEYXRhXCJcclxuICAgICAgW3Jvd1NlbGVjdGlvbl09XCJyb3dTZWxlY3Rpb25cIlxyXG4gICAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXHJcbiAgICAgIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiXHJcbiAgICAgIFtwYWdpbmF0aW9uXT1cInRydWVcIlxyXG4gICAgICBbcGFnaW5hdGlvbk51bWJlckZvcm1hdHRlcl09XCJwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyXCJcclxuICAgICAgW3BhZ2luYXRpb25BdXRvUGFnZVNpemVdPVwicGFnaW5hdGlvbkF1dG9QYWdlU2l6ZVwiXHJcbiAgICAgIFt0b29sdGlwU2hvd0RlbGF5XT1cInRvb2x0aXBTaG93RGVsYXlcIlxyXG4gICAgICBbdG9vbHRpcEhpZGVEZWxheV09XCJ0b29sdGlwSGlkZURlbGF5XCJcclxuICAgICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxyXG4gICAgICBbY2FjaGVCbG9ja1NpemVdPVwiY2FjaGVCbG9ja1NpemVcIlxyXG4gICAgICBbbWF4Q29uY3VycmVudERhdGFzb3VyY2VSZXF1ZXN0c109XCIxXCJcclxuICAgICAgW2Jsb2NrTG9hZERlYm91bmNlTWlsbGlzXT1cIjEwMFwiXHJcbiAgICAgIChjb2x1bW5WaXNpYmxlKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKGNvbHVtblBpbm5lZCk9XCJvblNhdmVHcmlkQ29sdW1uU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgIChjb2x1bW5SZXNpemVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKGNvbHVtbk1vdmVkKT1cIm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgKHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWRFdmVudCgkZXZlbnQpXCJcclxuICAgICAgW3Jvd011bHRpU2VsZWN0V2l0aENsaWNrXT1cInJvd011bHRpU2VsZWN0V2l0aENsaWNrXCJcclxuICAgICAgW2dldENvbnRleHRNZW51SXRlbXNdPVwiZ2V0Q29udGV4dE1lbnVJdGVtc1wiXHJcbiAgICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgKGZpbHRlckNoYW5nZWQpPVwib25GaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAoZmlyc3REYXRhUmVuZGVyZWQpPVwib25GaXJzdERhdGFSZW5kZXJlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgPGFnLWdyaWQtYW5ndWxhclxyXG4gICAgICAjYWdHcmlkSGlkZGVuXHJcbiAgICAgIHN0eWxlPVwiaGVpZ2h0OjEwMHZoOyB3aWR0aDoxMDAlO2Rpc3BsYXk6bm9uZVwiXHJcbiAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcclxuICAgICAgW3Jvd0RhdGFdPVwicm93RGF0YUhpZGRlblwiXHJcbiAgICAgIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG4gICAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAgICAgW2FuaW1hdGVSb3dzXT1cImZhbHNlXCJcclxuICAgICAgW3Jvd1NlbGVjdGlvbl09XCInbXVsdGlwbGUnXCJcclxuICAgICAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeUV4Y2VsKCRldmVudClcIlxyXG4gICAgICBbc3VwcHJlc3NTY3JvbGxPbk5ld0RhdGFdPVwidHJ1ZVwiXHJcbiAgICAgIFtjYWNoZVF1aWNrRmlsdGVyXT1cImZhbHNlXCJcclxuICAgID5cclxuICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRMaWJyYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vaW5wdXQgcGFyYW1zXHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogYW55O1xyXG4gIEBJbnB1dCgpIHJvd0RhdGE6IGFueTtcclxuICAvL0BJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAyMDtcclxuICBASW5wdXQoKSBwYWdpbmF0aW9uQXV0b1BhZ2VTaXplID0gdHJ1ZTtcclxuICBASW5wdXQoKSByb3dTZWxlY3Rpb246IGFueSA9ICdtdWx0aXBsZSc7XHJcbiAgQElucHV0KCkgZ3JpZElkOiBhbnk7XHJcbiAgQElucHV0KCkgbG9nZ2VkSW5Vc2VyOiBhbnk7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VydmVyU2lkZVBhZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlcnZlckRhdGFVcmwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW52aXJvbm1lbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FjaGVCbG9ja1NpemU6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgcm93TXVsdGlTZWxlY3RXaXRoQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBmbG9hdGluZ0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xyXG4gIC8vZXZlbnQgZW1pdHRlcnNcclxuICBAT3V0cHV0KCkgYnRuQ2xpY2tIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpcnN0RGF0YVJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAvL3ZpZXdDaGlsZHNcclxuICAvL0BWaWV3Q2hpbGQoJ2FnR3JpZCcpIGFnR3JpZCE6IEFnR3JpZEFuZ3VsYXI7XHJcblxyXG4gIC8vcGFyYW10ZXJzXHJcbiAgcm93RGF0YUhpZGRlbjogYW55ID0gW107XHJcbiAgZ3JpZENvbHVtblN0YXRlOiBhbnk7XHJcbiAgZXhwb3J0Q29sdW1uc0xpc3Q6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyB0b29sdGlwU2hvd0RlbGF5ID0gMDtcclxuICBwdWJsaWMgdG9vbHRpcEhpZGVEZWxheSA9IDIwMDA7XHJcbiAgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2NsaWVudFNpZGUnO1xyXG4gIC8vcHVibGljIGdyaWRQYWdlU2l6ZTogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIGV4Y2VsQVBJITogR3JpZEFwaTtcclxuICBwcml2YXRlIGdyaWRBUEkhOkdyaWRBcGk7XHJcbiAgLy91bnN1YnNjcmliZSBzdWJqZWN0XHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRMaWJyYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybWF0dGVyU2VydmljZTogQ29sdW1uVmFsdWVGb3JtYXR0ZXIsXHJcbiAgICBwcml2YXRlIF90b2tlblNoYXJpbmdTZXJ2aWNlOiBUb2tlblNoYXJpbmdTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBvblNvcnRDaGFuZ2VkRXZlbnQoZTphbnkpIHtcclxuICAgIHRoaXMuZ3JpZENvbHVtblN0YXRlID0gdGhpcy5ncmlkQVBJLmdldFN0YXRlKCk7XHJcbiAgICB0aGlzLm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIHRvb2x0aXBDb21wb25lbnQ6IEN1c3RvbVRvb2x0aXAsXHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl90b2tlblNoYXJpbmdTZXJ2aWNlLnVwZGF0ZVRva2VuKHRoaXMudG9rZW4pO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdzZXJ2ZXJTaWRlJztcclxuICAgICAgdGhpcy5yb3dEYXRhID0gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmNhY2hlQmxvY2tTaXplID0gdGhpcy5jYWNoZUJsb2NrU2l6ZSA9IDAgPyAxMDAgOiB0aGlzLmNhY2hlQmxvY2tTaXplO1xyXG4gICAgdGhpcy5ncmlkU2VydmljZS5zZXRCYXNlVXJsKHRoaXMuZW52aXJvbm1lbnQpO1xyXG4gICAgLy90aGlzLmdldEdyaWRTdGF0ZSgpO1xyXG4gICAgdGhpcy5nZXRDb2xEZWYoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYWdpbmF0aW9uTnVtYmVyRm9ybWF0dGVyOiAoXHJcbiAgICBwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXNcclxuICApID0+IHN0cmluZyA9IChwYXJhbXM6IFBhZ2luYXRpb25OdW1iZXJGb3JtYXR0ZXJQYXJhbXMpID0+IHtcclxuICAgIHJldHVybiAnWycgKyBwYXJhbXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoKSArICddJztcclxuICB9O1xyXG5cclxuICBnZXRDb2xEZWYoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZVxyXG4gICAgICAgIC5nZXRDb2xEZWYodGhpcy5ncmlkSWQpXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDEpIHtcclxuICAgICAgICAgICAgbGV0IGNvbGRlZjogQ29sRGVmW10gPSByZXNwb25zZS5yZXN1bHQubWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuaXNCdXR0b24gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLmNvbHVtblR5cGUgPT09ICdjaGVja2JveCcpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlckNoZWNrYm94U2VsZWN0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveFNlbGVjdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93RGlzYWJsZWRDaGVja2JveGVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzU29ydGluZzogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc01lbnU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDU1LFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMuY29sdW1uVHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogcmVzLnRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NGaWx0ZXI6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NTb3J0aW5nOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6IHJlcy5maWVsZCxcclxuICAgICAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IERyb3Bkb3duUmVuZGVyZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiB0aGlzLm9uQnRuQ2xpY2suYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXA6IHJlcy50b29sdGlwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZHJvcERvd25EYXRhOiByZXMuZHJvcERvd25EYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZS5ub2RlLnNldFNlbGVjdGVkKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MCxcclxuICAgICAgICAgICAgICAgICAgICBwaW5uZWQ6IHJlcy5waW5Qb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBsb2NrUGlubmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6IHJlcy50aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZTogIXJlcy52aXNpYmxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvb2x0aXBGaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nRmlsdGVyOiB0aGlzLmZsb2F0aW5nRmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVyU2VydmljZS5jb2xWYWx1ZUZvcm1hdHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuY29sdW1uVHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJhYmxlOiByZXMuZmlsdGVyYWJsZSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXMuY29sdW1uVHlwZSA9PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdhZ1RleHRDb2x1bW5GaWx0ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcmVzLmNvbHVtblR5cGUgPT0gJ251bWJlcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnYWdOdW1iZXJDb2x1bW5GaWx0ZXInXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ2FnRGF0ZUNvbHVtbkZpbHRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wYXJhdG9yOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQ6IGFueSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbFZhbHVlOiBhbnlcclxuICAgICAgICAgICAgICAgICAgICAgICkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlQXNTdHJpbmcgPSBjZWxsVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZUFzU3RyaW5nID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvbHVtblR5cGUgPT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbERhdGUgPSBuZXcgRGF0ZShkYXRlQXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjZWxsRGF0ZSA8IGZpbHRlckxvY2FsRGF0ZUF0TWlkbmlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNlbGxEYXRlID4gZmlsdGVyTG9jYWxEYXRlQXRNaWRuaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsncmVzZXQnXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICBmaWVsZDogcmVzLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiByZXMudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICBoaWRlOiAhcmVzLnZpc2libGUsXHJcbiAgICAgICAgICAgICAgICAgIHN1cHByZXNzRmlsdGVyOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBzdXBwcmVzc1NvcnRpbmc6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHN1cHByZXNzTWVudTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiByZXMuZmllbGQsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogQnV0dG9uUmVuZGVyZXJDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IHRoaXMub25CdG5DbGljay5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiByZXMubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogcmVzLmljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uTmFtZTogcmVzLmJ1dHRvbk5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogcmVzLnRvb2x0aXAsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlR2V0dGVyOiAocGFyYW1zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnRvb2x0aXAgfHwgcmVzLnRpdGxlO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMjAsXHJcbiAgICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ2FjdGlvbi1idXR0b24nLFxyXG4gICAgICAgICAgICAgICAgICBwaW5uZWQ6IHJlcy5waW5Qb3NpdGlvbixcclxuICAgICAgICAgICAgICAgICAgbG9ja1Bpbm5lZDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlcy5sYWJlbCA/IDEwMCA6IDQwLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmV4cG9ydENvbHVtbnNMaXN0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSBjb2xkZWY7XHJcbiAgICAgICAgICAgLy8gdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmFwaT8uc2V0Q29sdW1uRGVmcyhjb2xkZWYpO1xyXG4gICAgICAgICAgICB0aGlzLmdldEdyaWRTdGF0ZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NvbERlZiBSZWFkIEVycm9yPT4nLCByZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdQbGVhc2UgcGFzcyB2YWxpZCBHcmlkSWQgYW5kIGxvZ2dlZEluIHVzZXIgSWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zOiBhbnkpIHtcclxuICAgIHZhciBzZXJ2ZXJVcmwgPSAnJztcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJ2ZpbHRlcicpID49IDAgJiZcclxuICAgICAgb3B0aW9ucy5pbmRleE9mKCdmaWx0ZXInKSA+PSAwXHJcbiAgICApIHtcclxuICAgICAgbGV0IHNsdWcgPSB0aGlzLnNlcnZlckRhdGFVcmwuc3BsaXQoJz8kZmlsdGVyPScpO1xyXG4gICAgICBpZiAoc2x1ZyAmJiBzbHVnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyArICcgYW5kICcgKyBzbHVnWzFdO1xyXG4gICAgICAgIHNlcnZlclVybCA9IHNsdWdbMF07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZXJ2ZXJEYXRhVXJsLmluZGV4T2YoJz8nKSA+PSAwKSB7XHJcbiAgICAgIHNlcnZlclVybCA9IHRoaXMuc2VydmVyRGF0YVVybDtcclxuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMucmVwbGFjZSgnPycsICcmJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7c2VydmVyVXJsfSR7b3B0aW9uc31gO1xyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xyXG4gICAgLy90aGlzLmdyaWRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmdyaWRBUEk9cGFyYW1zLmFwaTtcclxuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcgPT0gdHJ1ZSkge1xyXG4gICAgICAvL2NhbGwgYXBpXHJcbiAgICAgIGxldCByZXFIZWFkZXJzID0ge1xyXG4gICAgICAgICdDb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy50b2tlbixcclxuICAgICAgfTtcclxuICAgICAgcGFyYW1zLmFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZShcclxuICAgICAgICBuZXcgT2RhdGFTZXJ2ZXJTaWRlUHJvdmlkZXIoe1xyXG4gICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlU3RyaW5nRmlsdGVyOiBmYWxzZSxcclxuICAgICAgICAgIGNhbGxBcGk6IChvcHRpb25zKSA9PlxyXG4gICAgICAgICAgICBmZXRjaChgJHt0aGlzLnNldEV4dGVybmFsRmlsdGVycyhvcHRpb25zKX1gLCB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyczogcmVxSGVhZGVycyxcclxuICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHJlc3BvbnNlLmpzb24oKSksXHJcbiAgICAgICAgICBhZnRlckxvYWREYXRhOiAob3B0aW9ucywgcm93RGF0YSwgdG90YWxDb3VudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJvd0RhdGEgfHwgcm93RGF0YS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZEFQSS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3JpZEFQSS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRHcmlkU3RhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUpIHsgICAgICBcclxuICAgICAgdGhpcy5ncmlkQVBJLmFwcGx5Q29sdW1uU3RhdGUoe3N0YXRlOnRoaXMuZ3JpZENvbHVtblN0YXRlLmNvbHVtblNpemluZz8uY29sdW1uU2l6aW5nTW9kZWwsYXBwbHlPcmRlcjp0cnVlfSk7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRDb2x1bW5TdGF0ZS5zb3J0KSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLmFwcGx5Q29sdW1uU3RhdGUoe3N0YXRlOnRoaXMuZ3JpZENvbHVtblN0YXRlLnNvcnQuc29ydE1vZGVsfSlcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ncmlkQ29sdW1uU3RhdGUuZmlsdGVyKSB7XHJcbiAgICAgICAgdmFyIGZpbHRlck1vZGVsOmFueT10aGlzLmdyaWRDb2x1bW5TdGF0ZS5maWx0ZXIuZmlsdGVyTW9kZWw7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLnNldEZpbHRlck1vZGVsKGZpbHRlck1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgIFxyXG4gICAgfSAgZWxzZSB7XHJcbiAgICAgIHZhciBjb2x1bW5zID0gdGhpcy5ncmlkQVBJLmdldENvbHVtbnMoKTtcclxuICAgICAgaWYgKGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID4gMTUpIHtcclxuICAgICAgICAgIGNvbnN0IGFsbENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFQSSEuZ2V0Q29sdW1ucygpIS5mb3JFYWNoKChjb2x1bW46YW55KSA9PiB7XHJcbiAgICAgICAgICAgIGFsbENvbHVtbklkcy5wdXNoKGNvbHVtbi5nZXRJZCgpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5ncmlkQVBJIS5hdXRvU2l6ZUNvbHVtbnMoYWxsQ29sdW1uSWRzLCBmYWxzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFQSS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRHcmlkU3RhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkSWQgJiYgdGhpcy5sb2dnZWRJblVzZXIpIHtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZVxyXG4gICAgICAgIC5nZXRHcmlkU3RhdGUodGhpcy5ncmlkSWQsIHRoaXMubG9nZ2VkSW5Vc2VyKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPT0gMSAmJlxyXG4gICAgICAgICAgICByZXNwb25zZS5yZXN1bHQgJiZcclxuICAgICAgICAgICAgcmVzcG9uc2UucmVzdWx0LmdyaWRDb25maWdcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IEpTT04ucGFyc2UocmVzcG9uc2UucmVzdWx0LmdyaWRDb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEdyaWRTdGF0ZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRHcmlkU3RhdGUoKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIGxvYWRpbmcgZ3JpZCBzdGF0ZScpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CdG5DbGljayhlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdidG4gY2xpY2s9PicsIGUpO1xyXG4gICAgdGhpcy5idG5DbGlja0hhbmRsZXIuZW1pdChlLnJvd0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgb25TYXZlR3JpZENvbHVtblN0YXRlKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBjb2x1bW5TdGF0ZSA9IHRoaXMuZ3JpZEFQST8uZ2V0U3RhdGUoKTtcclxuICAgIGxldCBjb2x1bW5EYXRhID0ge1xyXG4gICAgICBncmlkQ29uZmlnOiBKU09OLnN0cmluZ2lmeShjb2x1bW5TdGF0ZSksXHJcbiAgICAgIHVpR3JpZElkOiB0aGlzLmdyaWRJZCxcclxuICAgICAgdXNlcklkOiB0aGlzLmxvZ2dlZEluVXNlcixcclxuICAgIH07XHJcbiAgICBpZiAoIGV2ZW50LnR5cGUgPT09ICdjb2x1bW5QaW5uZWQnIHx8IChldmVudC50eXBlPT09J2ZpbHRlckNoYW5nZWQnIHx8IGV2ZW50LnR5cGU9PT0nc29ydENoYW5nZWQnKSkge1xyXG4gICAgICB0aGlzLmdyaWRDb2x1bW5TdGF0ZSA9IGNvbHVtblN0YXRlO1xyXG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVDb2x1bW5Db25maWcoY29sdW1uRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAvL3RoaXMuc2V0R3JpZFN0YXRlKCk7XHJcbiAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMCkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHdoaWxlIHNhdmluZyBjb2x1bW4gY29uZmlndXJhdGlvbjonLCByZXMubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJvd0J5SWQ6IEdldFJvd0lkRnVuYyA9IChwYXJhbXM6IEdldFJvd0lkUGFyYW1zKSA9PiB7XHJcbiAgICB2YXIgZGF0YSA9IHBhcmFtcy5kYXRhO1xyXG4gICAgcmV0dXJuIGRhdGEuaWQgPz8gMDtcclxuICB9O1xyXG5cclxuICAvLyBDdXN0b20gcmlnaHQgY2xpY2sgQ29udGV4dCBNZW51IHRvIHN1cHBvcnQgY3VzdG9tIGV4Y2VsIGV4cG9ydHNcclxuICBwdWJsaWMgZ2V0Q29udGV4dE1lbnVJdGVtcyA9IChcclxuICAgIHBhcmFtczogR2V0Q29udGV4dE1lbnVJdGVtc1BhcmFtc1xyXG4gICk6IChzdHJpbmcgfCBNZW51SXRlbURlZilbXSA9PiB7XHJcbiAgICBsZXQgcmVzOiAoc3RyaW5nIHwgTWVudUl0ZW1EZWYpW10gPSBbXHJcbiAgICAgICdjdXQnLFxyXG4gICAgICAnY29weScsXHJcbiAgICAgICdjb3B5V2l0aEhlYWRlcnMnLFxyXG4gICAgICAnY29weVdpdGhHcm91cEhlYWRlcnMnLFxyXG4gICAgICAncGFzdGUnLFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0V4cG9ydCcsXHJcbiAgICAgICAgc3ViTWVudTogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnQ1NWIEV4cG9ydCcsXHJcbiAgICAgICAgICAgIGFjdGlvbjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhwb3J0RmlsZSgnY3N2Jyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnRXhjZWwgRXhwb3J0JyxcclxuICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRGaWxlKCd4bHN4Jyk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIHJlcztcclxuICB9O1xyXG5cclxuICAvL2N1c3RvbSBleHBvcnQgbWV0aG9kXHJcbiAgcHVibGljIGV4cG9ydEZpbGUodHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdldERhdGFGb3JFeGNlbEV4cG9ydCh0eXBlKTtcclxuICB9XHJcbiAgLy9HZW5lcmF0ZSBvbmx5IHRob3NlIGNvbHVtbnMgZm9yIGV4cG9ydCB3aGljaCBhcmUgdmlzaWJsZSBhbmQgYXJlIG5vdCBvZiBvdGhlciB0eXBlcyB0aGF0IGFyZSBub3QgcmVxdWlyZWQgZm9yIGV4cG9ydFxyXG4gIGdlbmVyYXRlQ29sdW1uc0ZvckV4Y2VsKCk6IHN0cmluZ1tdIHtcclxuICAgIGxldCBjb2x1bW5zVG9CZURpc3BsYXllZEZvckV4Y2VsOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuZXhwb3J0Q29sdW1uc0xpc3QuZm9yRWFjaCgoY29sdW1uOiBhbnkpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi52aXNpYmxlID09IHRydWUgJiZcclxuICAgICAgICBjb2x1bW4uY29sdW1uVHlwZSAhPSAnY2hlY2tib3gnICYmXHJcbiAgICAgICAgY29sdW1uLmNvbHVtblR5cGUgIT0gJ2Ryb3Bkb3duJyAmJlxyXG4gICAgICAgIGNvbHVtbi5jb2x1bW5UeXBlICE9ICcnXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbHVtbnNUb0JlRGlzcGxheWVkRm9yRXhjZWwucHVzaChjb2x1bW4uZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjb2x1bW5zVG9CZURpc3BsYXllZEZvckV4Y2VsO1xyXG4gIH1cclxuXHJcbiAgLy9HZXQgZGF0YSBmcm9tIHNlcnZlciB3aXRob3V0IHBhZ2luZyBzbyB0aGF0IHdob2xlIGRhdGEgY2FuIGJlIGV4cG9ydGVkIHRvIGV4Y2VsXHJcbiAgLy8gYW5kIGFsc28gY2hlY2sgZm9yIHNlcnZlciBzaWRlIGFuZCBjbGllbnQgc2lkZSByZW5kZXJpbmcgb2YgZGF0YSBmb3IgZXhwb3J0LlxyXG4gIGdldERhdGFGb3JFeGNlbEV4cG9ydCh0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JpZEFQSS5zaG93TG9hZGluZ092ZXJsYXkoKTtcclxuICAgIGlmICh0aGlzLmVuYWJsZVNlcnZlclNpZGVQYWdpbmcpIHtcclxuICAgICAgdGhpcy5ncmlkU2VydmljZVxyXG4gICAgICAgIC5nZXREYXRhRm9yRXhwb3J0KHRoaXMuc2VydmVyRGF0YVVybClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFQSS5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5leGNlbEFQSS5zZXRSb3dEYXRhKHJlc3BvbnNlLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5leGNlbEFQSS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgICAgICAgIGlmICh0eXBlID09ICdjc3YnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5leGNlbEFQSS5leHBvcnREYXRhQXNDc3Yoe1xyXG4gICAgICAgICAgICAgICAgY29sdW1uS2V5czogdGhpcy5nZW5lcmF0ZUNvbHVtbnNGb3JFeGNlbCgpLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZXhjZWxBUEkuZXhwb3J0RGF0YUFzRXhjZWwoe1xyXG4gICAgICAgICAgICAgICAgY29sdW1uS2V5czogdGhpcy5nZW5lcmF0ZUNvbHVtbnNGb3JFeGNlbCgpLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRXJyb3Igd2hpbGUgZmV0Y2hpbmcgZGF0YSBmb3IgZXhjZWwvY3N2IGV4cG9ydCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ncmlkQVBJLmhpZGVPdmVybGF5KCk7XHJcbiAgICAgIGlmICh0eXBlID09ICdjc3YnKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLmV4cG9ydERhdGFBc0Nzdih7XHJcbiAgICAgICAgICBjb2x1bW5LZXlzOiB0aGlzLmdlbmVyYXRlQ29sdW1uc0ZvckV4Y2VsKCksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQVBJLmV4cG9ydERhdGFBc0V4Y2VsKHtcclxuICAgICAgICAgIGNvbHVtbktleXM6IHRoaXMuZ2VuZXJhdGVDb2x1bW5zRm9yRXhjZWwoKSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2VkKGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlckNoYW5nZWQoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uU2F2ZUdyaWRDb2x1bW5TdGF0ZShlKTtcclxuICAgIHRoaXMuZmlsdGVyQ2hhbmdlZC5lbWl0KGUpOyAgICBcclxuICB9XHJcblxyXG4gIG9uRmlyc3REYXRhUmVuZGVyZWQoZTogYW55KSB7XHJcbiAgICB0aGlzLmZpcnN0RGF0YVJlbmRlcmVkLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeUV4Y2VsKHBhcmFtczogYW55KSB7XHJcbiAgICB0aGlzLmV4Y2VsQVBJID0gcGFyYW1zLmFwaTtcclxuICB9XHJcblxyXG4gIC8vZGVzdHJveSBhbGwgYXNzb2NpYXRlZCBzdWJzY3JpcHRpb25zIG9uIGNvbXBvbmVudCBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1357,7 +1357,7 @@ class GridLibraryComponent {
1357
1357
  uiGridId: this.gridId,
1358
1358
  userId: this.loggedInUser,
1359
1359
  };
1360
- if (event.finished == true || event.type === 'columnPinned' || (event.type === 'filterChanged' || event.type === 'sortChanged')) {
1360
+ if (event.type === 'columnPinned' || (event.type === 'filterChanged' || event.type === 'sortChanged')) {
1361
1361
  this.gridColumnState = columnState;
1362
1362
  this.gridService.saveColumnConfig(columnData)
1363
1363
  .pipe(takeUntil(this.unsubscribe$))