@firestitch/list 9.9.12 → 9.11.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.
@@ -608,6 +608,9 @@ export class List extends Model {
608
608
  if (((_a = this.emptyState) === null || _a === void 0 ? void 0 : _a.validate) && this.emptyStateTemplate) {
609
609
  this.emptyStateEnabled = this.emptyState.validate(query, cloneDeep(response.data));
610
610
  }
611
+ if (this.afterFetchFn) {
612
+ this.afterFetchFn(query, this.dataController.visibleRowsData);
613
+ }
611
614
  this.fetchComplete$.next();
612
615
  this.loading$.next(false);
613
616
  }
@@ -727,4 +730,8 @@ __decorate([
727
730
  Alias('fetch'),
728
731
  __metadata("design:type", Function)
729
732
  ], List.prototype, "fetchFn", void 0);
730
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFxRCxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBQ0osVUFBVSxFQUNWLEVBQUUsRUFDRixPQUFPLEVBRVIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFpQjFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlC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QUssRUFBRTs7dUNBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOztxQ0FBcUM7QUFDcEM7SUFBUixLQUFLLEVBQUU7OzZDQUE2QjtBQUM1QjtJQUFSLEtBQUssRUFBRTs7cUNBQXlCO0FBQ3hCO0lBQVIsS0FBSyxFQUFFOztxQ0FBcUI7QUFDUjtJQUFwQixLQUFLLENBQUMsWUFBWSxDQUFDOzswQ0FBK0I7QUFDNUI7SUFBdEIsS0FBSyxDQUFDLGNBQWMsQ0FBQzs7NENBQWlDO0FBQzlDO0lBQVIsS0FBSyxFQUFFOzswQ0FBZ0Q7QUFDL0M7SUFBUixLQUFLLEVBQUU7O3dDQUEyRDtBQUMxRDtJQUFSLEtBQUssRUFBRTs7dUNBQXlDO0FBQ3hDO0lBQVIsS0FBSyxFQUFFOzt3Q0FBMkM7QUFFbkM7SUFBZixLQUFLLENBQUMsT0FBTyxDQUFDOztxQ0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDaGFuZ2VGbiwgRmlsdGVyQ29uZmlnLCBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnLCBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc1Njcm9sbEluc3RhbmNlLCBGc1Njcm9sbFNlcnZpY2UgfSBmcm9tICdAZmlyZXN0aXRjaC9zY3JvbGwnO1xuaW1wb3J0IHsgU2VsZWN0aW9uRGlhbG9nIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJztcblxuaW1wb3J0IHsgQWxpYXMsIE1vZGVsIH0gZnJvbSAndHNtb2RlbHMnO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIG1hcCxcbiAgbWFwVG8sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcblxuLy8gSW50ZXJmYWNlc1xuaW1wb3J0IHtcbiAgRnNMaXN0Q29uZmlnLFxuICBGc0xpc3RFbXB0eVN0YXRlQ29uZmlnLCBGc0xpc3RGZXRjaEZuLCBGc0xpc3RGZXRjaE9wdGlvbnMsXG4gIEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uLFxuICBGc0xpc3RHcm91cENvbmZpZyxcbiAgRnNMaXN0TG9hZE1vcmVDb25maWcsXG4gIEZzTGlzdE5vUmVzdWx0c0NvbmZpZyxcbiAgRnNMaXN0UmVzdG9yZUNvbmZpZyxcbiAgRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyxcbiAgRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICBGc0xpc3RUcmFja0J5Rm4sXG4gIEZzUGFnaW5nLFxuICBQYWdlQ2hhbmdlXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvc3R5bGVDb25maWcubW9kZWwnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ29sdW1uc0NvbnRyb2xsZXIgfSBmcm9tICcuL2NvbHVtbnMtY29udHJvbGxlcic7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBBY3Rpb25zQ29udHJvbGxlciB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgRGF0YUNvbnRyb2xsZXIgfSBmcm9tICcuL2RhdGEtY29udHJvbGxlcic7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vcGFnaW5hdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3NlbGVjdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFNvcnRpbmdDb250cm9sbGVyIH0gZnJvbSAnLi9zb3J0aW5nLWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuaW1wb3J0IHsgUGVyc2lzdGFuY2VDb250cm9sbGVyIH0gZnJvbSAnLi9wZXJzaXN0YW5jZS1jb250cm9sbGVyJztcbmltcG9ydCB7IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlciB9IGZyb20gJy4vZXh0ZXJuYWwtcGFyYW1zLWNvbnRyb2xsZXInO1xuXG5jb25zdCBTSE9XX0RFTEVURURfRklMVEVSU19LRVkgPSAnJCRfc2hvd19kZWxldGVkXyQkJztcblxuXG5leHBvcnQgY2xhc3MgTGlzdCBleHRlbmRzIE1vZGVsIHtcbiAgQEFsaWFzKCkgcHVibGljIGhlYWRpbmc6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHRyYWNrQnk6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHN1YmhlYWRpbmc6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIGlubGluZUZpbHRlcnM6IGFueTtcbiAgLy8gQEFsaWFzKCdhY3Rpb25zJywgQWN0aW9uKSBwdWJsaWMgYWN0aW9uczogQWN0aW9uW107XG4gIEBBbGlhcygncm93QWN0aW9ucycpIHB1YmxpYyByb3dBY3Rpb25zUmF3OiBhbnlbXTtcbiAgcHVibGljIGdyb3VwQWN0aW9uc1JhdzogYW55W107XG4gIEBBbGlhcygncm93Q2xhc3MnKSBwdWJsaWMgcm93Q2xhc3M7XG4gIEBBbGlhcygpIHB1YmxpYyByb3dFdmVudHM6IGFueTtcbiAgQEFsaWFzKCkgcHVibGljIHJlc3RvcmU6IEZzTGlzdFJlc3RvcmVDb25maWc7XG4gIEBBbGlhcygpIHB1YmxpYyBjb2x1bW5UZW1wbGF0ZXM6IGFueTtcbiAgQEFsaWFzKCkgcHVibGljIHBlcnNpc3Q6IGJvb2xlYW47XG4gIEBBbGlhcygpIHB1YmxpYyBmaWx0ZXJzID0gW107XG4gIEBBbGlhcygnZmlsdGVySW5pdCcpIHB1YmxpYyBmaWx0ZXJJbml0Q2I6IENoYW5nZUZuO1xuICBAQWxpYXMoJ2ZpbHRlckNoYW5nZScpIHB1YmxpYyBmaWx0ZXJDaGFuZ2VDYjogQ2hhbmdlRm47XG4gIEBBbGlhcygpIHB1YmxpYyBzYXZlZEZpbHRlcnM6IElGaWx0ZXJTYXZlZEZpbHRlcnNDb25maWc7XG4gIEBBbGlhcygpIHB1YmxpYyBzY3JvbGxhYmxlOiBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHwgZmFsc2UgPSBmYWxzZTtcbiAgQEFsaWFzKCkgcHVibGljIG5vUmVzdWx0czogRnNMaXN0Tm9SZXN1bHRzQ29uZmlnO1xuICBAQWxpYXMoKSBwdWJsaWMgZW1wdHlTdGF0ZTogRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZztcbiAgLy8gQEFsaWFzKCkgcHVibGljIGluaXRpYWxGZXRjaCA9IHRydWU7IC8vVE9ETyBmaXhtZVxuICBAQWxpYXMoJ2ZldGNoJykgcHVibGljIGZldGNoRm46IEZzTGlzdEZldGNoRm47XG4gIC8vIEBBbGlhcygncm93cycpIHByaXZhdGUgX3Jvd3M6IGFueTtcblxuICBwdWJsaWMgaW5pdGlhbGl6ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIC8vIHB1YmxpYyBvcGVyYXRpb246IE9wZXJhdGlvbjtcbiAgcHVibGljIGZpbHRlcnNRdWVyeTogYW55O1xuXG4gIHB1YmxpYyBoYXNSb3dBY3Rpb25zO1xuICBwdWJsaWMgcGFnaW5nID0gbmV3IFBhZ2luYXRpb25Db250cm9sbGVyKCk7XG5cbiAgcHVibGljIGNvbHVtbnMgPSBuZXcgQ29sdW1uc0NvbnRyb2xsZXIoKTtcbiAgcHVibGljIGFjdGlvbnMgPSBuZXcgQWN0aW9uc0NvbnRyb2xsZXIoKTtcbiAgcHVibGljIGRhdGFDb250cm9sbGVyID0gbmV3IERhdGFDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBzb3J0aW5nID0gbmV3IFNvcnRpbmdDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBleHRlcm5hbFBhcmFtczogRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyO1xuICBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25Db250cm9sbGVyO1xuXG4gIHB1YmxpYyBmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZyA9IG51bGw7XG5cbiAgcHVibGljIGZldGNoJCA9IG5ldyBTdWJqZWN0PEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uIHwgdm9pZD4oKTtcbiAgcHVibGljIGZldGNoQ29tcGxldGUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIGZpbHRlcnNSZWFkeSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBzdGF0dXMgPSB0cnVlO1xuICBwdWJsaWMgY2hpcHMgPSBmYWxzZTtcbiAgcHVibGljIGZpbHRlcklucHV0ID0gdHJ1ZTtcbiAgcHVibGljIHF1ZXJ5UGFyYW0gPSBmYWxzZTtcbiAgcHVibGljIHJlc3RvcmVNb2RlID0gZmFsc2U7XG5cbiAgcHVibGljIGluaXRpYWxGZXRjaCA9IHRydWU7XG5cbiAgLy8gRW1wdHkgc3RhdGVcbiAgcHVibGljIGVtcHR5U3RhdGVFbmFibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBlbXB0eVN0YXRlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIGZzU2Nyb2xsSW5zdGFuY2U6IEZzU2Nyb2xsSW5zdGFuY2U7XG5cbiAgcHVibGljIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRlckNvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2dyb3VwQ2VsbENvbmZpZzogU3R5bGVDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NlbGxDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb290ZXJDb25maWc6IFN0eWxlQ29uZmlnO1xuXG4gIHByaXZhdGUgX2ZzU2Nyb2xsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNvbmZpZzogRnNMaXN0Q29uZmlnID0ge30sXG4gICAgcHJpdmF0ZSBmc1Njcm9sbDogRnNTY3JvbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHBlcnNpc3RhbmNlOiBQZXJzaXN0YW5jZUNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBpbkRpYWxvZzogYm9vbGVhbixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9mcm9tSlNPTihjb25maWcpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplKGNvbmZpZyk7XG5cbiAgICB0aGlzLl9oZWFkZXJDb25maWcgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmhlYWRlcik7XG4gICAgdGhpcy5fZ3JvdXBDZWxsQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5jZWxsKTtcbiAgICB0aGlzLl9jZWxsQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5jZWxsKTtcbiAgICB0aGlzLl9mb290ZXJDb25maWcgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmZvb3Rlcik7XG5cbiAgICB0aGlzLmluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcblxuICAgIGlmICh0aGlzLmluaXRpYWxGZXRjaCkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZCk7XG4gICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1NhdmVkRmlsdGVycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpbHRlckNvbmZpZy5zYXZlZEZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hSZW1vdGUocXVlcnkpIHtcbiAgICBjb25zdCBvcHRpb25zOiBGc0xpc3RGZXRjaE9wdGlvbnMgPSB7XG4gICAgICBzdGF0ZTogdGhpcy5kYXRhQ29udHJvbGxlci5vcGVyYXRpb24sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5mZXRjaEZuKHF1ZXJ5LCBvcHRpb25zKTtcblxuICAgIHJldHVybiByZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlID8gZnJvbShyZXN1bHQpIDogcmVzdWx0O1xuICB9XG5cbiAgLy8gcHVibGljIGxvYWRMb2NhbCgpIHtcbiAgLy8gICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmdNYW51YWwodGhpcy5fcm93cyk7XG4gIC8vICAgY29uc3QgZnJvbSA9ICh0aGlzLnBhZ2luZy5wYWdlIC0gMSkgKiB0aGlzLnBhZ2luZy5saW1pdDtcbiAgLy8gICBjb25zdCB0byA9ICh0aGlzLnBhZ2luZy5wYWdlID09PSAxKSA/IHRoaXMucGFnaW5nLmxpbWl0IDogdGhpcy5wYWdpbmcubGltaXQgKiB0aGlzLnBhZ2luZy5wYWdlO1xuICAvLyAgIGNvbnN0IHNsaWNlT2ZSb3dzID0gdGhpcy5fcm93cy5zbGljZShmcm9tLCB0byk7XG4gIC8vICAgdGhpcy5kYXRhJC5uZXh0KHNsaWNlT2ZSb3dzKTtcbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGVtcGxhdGVzIGZvciB1c2luZ1xuICAgKiBAcGFyYW0gdGVtcGxhdGVzXG4gICAqL1xuICBwdWJsaWMgdHJhbmZvcm1UZW1wbGF0ZXNUb0NvbHVtbnModGVtcGxhdGVzKSB7XG4gICAgY29uc3QgZGVmYXVsdENvbmZpZ3MgPSB7XG4gICAgICBoZWFkZXI6IHRoaXMuX2hlYWRlckNvbmZpZyxcbiAgICAgIGdyb3VwQ2VsbDogdGhpcy5fZ3JvdXBDZWxsQ29uZmlnLFxuICAgICAgY2VsbDogdGhpcy5fY2VsbENvbmZpZyxcbiAgICAgIGZvb3RlcjogdGhpcy5fZm9vdGVyQ29uZmlnLFxuICAgIH07XG5cbiAgICB0aGlzLmNvbHVtbnMuc2V0RGVmYXVsdHMoZGVmYXVsdENvbmZpZ3MpO1xuICAgIHRoaXMuY29sdW1ucy5pbml0aWFsaXplQ29sdW1ucyh0ZW1wbGF0ZXMpO1xuXG4gICAgLy8gU2V0IHNvcnRCeSBkZWZhdWx0IGNvbHVtblxuICAgIHRoaXMuc29ydGluZy5jbGVhclNvcnRhYmxlQ29sdW1ucygpO1xuICAgIHRoaXMuY29sdW1ucy5jb2x1bW5zXG4gICAgICAuZmlsdGVyKChjb2x1bW4pID0+IGNvbHVtbi5zb3J0YWJsZSAmJiBjb2x1bW4uc2hvdylcbiAgICAgIC5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgdGhpcy5zb3J0aW5nLmFkZFNvcnRhYmxlQ29sdW1uKGNvbHVtbik7XG4gICAgICB9KTtcblxuICAgIC8vIERlZmF1bHQgc29ydCBieVxuICAgIGNvbnN0IGV4dGVybmFsU29ydGluZyA9IHRoaXMuZXh0ZXJuYWxQYXJhbXMuZXh0ZXJuYWxTb3J0aW5nO1xuICAgIGNvbnN0IGluaXRpYWxTb3J0Q29uZmlnID0gZXh0ZXJuYWxTb3J0aW5nIHx8IHRoaXMuY29uZmlnLnNvcnQ7XG4gICAgdGhpcy5zb3J0aW5nLmluaXRpYWxTb3J0QnkoaW5pdGlhbFNvcnRDb25maWcpO1xuXG4gICAgaWYgKGV4dGVybmFsU29ydGluZyAmJiAhdGhpcy5zb3J0aW5nLmlzRGVmaW5lZCkge1xuICAgICAgdGhpcy5leHRlcm5hbFBhcmFtcy5jbGVhclNvcnRpbmdQYXJhbXMoKTtcblxuICAgICAgY29uc29sZS53YXJuKCdOb3QgYWJsZSB0byByZXN0b3JlIHBlcnNpc3RlZCBzb3J0aW5nIHBhcmFtcy4nLCBleHRlcm5hbFNvcnRpbmcpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdEZpbHRlcnMoKTtcbiAgICB0aGlzLmluaXRJbmZpbml0eVNjcm9sbCgpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpIHtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5SZWxvYWQpO1xuXG4gICAgaWYgKHRoaXMuZnNTY3JvbGxJbnN0YW5jZSkge1xuICAgICAgdGhpcy5wYWdpbmcucmVzZXRQYWdpbmcoKTtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICB0aGlzLmZzU2Nyb2xsSW5zdGFuY2UucmVsb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2ggcGFnZSBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKCkge1xuICAgIHRoaXMucGFnaW5nLnBhZ2VDaGFuZ2VkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IFBhZ2VDaGFuZ2UpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUGFnZUNoYW5nZSk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGFsbCByb3dzIGlmIGxpbWl0cyB3YXMgY2hhbmdlZFxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gUGFnZUNoYW5nZVR5cGUuTGltaXRDaGFuZ2VkICYmIHRoaXMucGFnaW5nLmhhc1BhZ2VTdHJhdGVneSkge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuY2xlYXJSb3dzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wYWdpbmcuaGFzT2Zmc2V0U3RyYXRlZ3kpIHtcbiAgICAgICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcuZ2V0VmlzaWJsZVJlY29yZHMoKSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnBhZ2VDaGFuZ2VkKHRoaXMuc2Nyb2xsYWJsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGFibGUgJiYgIXRoaXMucGFnaW5nLmxvYWRNb3JlRW5hYmxlZCkge1xuXG4gICAgICAgICAgY29uc3QgY29udGFpbnMgPSBbXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZGstb3ZlcmxheS1jb250YWluZXInKSkuc29tZShvdmVybGF5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMob3ZlcmxheSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBsZXQgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICBpZiAoIWNvbnRhaW5zKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgaWYgKChyZWN0LnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCkgPCB3aW5kb3cuaW5uZXJIZWlnaHQpIHtcbiAgICAgICAgICAgICAgZWwgPSBkb2N1bWVudC5ib2R5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZmV0Y2hDb21wbGV0ZSQuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnNvcnRpbmcuc29ydGluZ0NoYW5nZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuU29ydCk7XG4gICAgICAgIHRoaXMucGFnaW5nLnBhZ2UgPSAxO1xuXG4gICAgICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgICAgIHRoaXMuZnNTY3JvbGxJbnN0YW5jZS5yZWxvYWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5Sb3dzUmVtb3ZlKCk7XG4gICAgdGhpcy5saXN0ZW5GZXRjaCgpO1xuICB9XG5cbiAgcHVibGljIGdldERhdGEodHJhY2tCeT86IEZzTGlzdFRyYWNrQnlGbikge1xuICAgIGxldCByb3dzRGF0YSA9IHRoaXMuZGF0YUNvbnRyb2xsZXJcbiAgICAgIC52aXNpYmxlUm93c0RhdGE7XG5cbiAgICBpZiAodHJhY2tCeSkge1xuICAgICAgcm93c0RhdGEgPSByb3dzRGF0YVxuICAgICAgICAuZmlsdGVyKHRyYWNrQnkpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzRGF0YVxuICAgICAgLm1hcCgoZGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKGRhdGEpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaGFzRGF0YSh0cmFja0J5OiBGc0xpc3RUcmFja0J5Rm4pIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEuc29tZSh0cmFja0J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgZ3JvdXAgbW9kZSBzdGF0dXNcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ3JvdXBFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRyb2xsZXIuZ3JvdXBFbmFibGVkICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5ncm91cEVuYWJsZWQgPSB2YWx1ZTtcblxuICAgICAgLy8gQ29tbWVudGVkIG91dCBiZWNhdXNlIFJheSB3YW50cyB0byBjaGFuZ2UgZ3JvdXAgc3RhdHVzIGluIGZldGNoIG1hcCBwaXBlXG4gICAgICAvLyBhbmQgaXQgdHJpZ2dlcnMgZXh0cmEgcmVxdWVzdHNcbiAgICAgIC8vIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX2ZzU2Nyb2xsU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9mc1Njcm9sbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2luZykge1xuICAgICAgdGhpcy5wYWdpbmcuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNvcnRpbmcpIHtcbiAgICAgIHRoaXMuc29ydGluZy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsdGVyQ29uZmlnKSB7XG4gICAgICB0aGlzLmZpbHRlckNvbmZpZyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxQYXJhbXMpIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMuZGVzdHJveSgpXG4gICAgfVxuXG4gICAgdGhpcy5jb2x1bW5zLmRlc3Ryb3koKTtcblxuICAgIHRoaXMub25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEbyBpbml0aWFsaXphdGlvbiBvZiB0YWJsZVxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemUoY29uZmlnOiBGc0xpc3RDb25maWcpIHtcbiAgICB0aGlzLmNvbHVtbnMuaW5pdENvbmZpZyhjb25maWcuY29sdW1uKTtcbiAgICB0aGlzLmluaXREZWZhdWx0T3B0aW9ucyhjb25maWcpO1xuICAgIHRoaXMuaW5pdFJlc3RvcmUoKTtcbiAgICB0aGlzLmluaXRBY3Rpb25zKGNvbmZpZy5hY3Rpb25zKTtcbiAgICB0aGlzLmluaXRQYWdpbmcoY29uZmlnLnBhZ2luZywgY29uZmlnLmxvYWRNb3JlKTtcbiAgICB0aGlzLmluaXRTZWxlY3Rpb24oY29uZmlnLnNlbGVjdGlvbiwgdGhpcy5zZWxlY3Rpb25EaWFsb2cpO1xuICAgIHRoaXMuaW5pdEdyb3Vwcyhjb25maWcuZ3JvdXApO1xuICAgIHRoaXMuaW5pdEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcigpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEp1c3QgaW5pdCBvcHRpb25zIGJ5IGRlZmF1bHQgaXQgaXQgd2Fzbid0IHNwZWNpZmllZFxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBwcml2YXRlIGluaXREZWZhdWx0T3B0aW9ucyhjb25maWcpIHtcbiAgICAvLyBXZSBzaG91bGQgcHJldmVudCBpbml0aWFsIGZldGNoIGluIGNhc2VzIHdoZW4gaXQgd2lsbCBiZSBmZXRjaGVkIGluIGFueSBjYXNlXG4gICAgLy8gQXMgZXguIHNjcm9sbGFibGUgb3IgZmlsdGVyIHdpbGwgZG8gZmV0Y2ggaW4gYW55IGNhc2VzXG4gICAgaWYgKGNvbmZpZy5pbml0aWFsRmV0Y2ggPT09IGZhbHNlIHx8IGNvbmZpZy5zY3JvbGxhYmxlKSB7IC8vIFRPRE8gZml4bWUgYWZ0ZXIgdHNtb2RlbCB2ZXJzaW9uIHVwZGF0ZVxuICAgICAgdGhpcy5pbml0aWFsRmV0Y2ggPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5zdGF0dXMgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNoaXBzKSB7XG4gICAgICB0aGlzLmNoaXBzID0gY29uZmlnLmNoaXBzO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmZpbHRlcklucHV0ID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5maWx0ZXJJbnB1dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICB0aGlzLnF1ZXJ5UGFyYW0gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtID0gKGNvbmZpZy5xdWVyeVBhcmFtID09PSB2b2lkIDApXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGNvbmZpZy5xdWVyeVBhcmFtO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuc29ydHMpIHtcbiAgICAgIHRoaXMuc29ydGluZy5pbml0RmFrZUNvbHVtbnMoY29uZmlnLnNvcnRzKTtcbiAgICB9XG4gICAgaWYgKCFjb25maWcudHJhY2tCeSkge1xuICAgICAgdGhpcy50cmFja0J5ID0gJ2lkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdCByZXN0b3JlIHJvdyBhY3Rpb24gYW5kIGFwcGVuZCBTaG93IERlbGV0ZWQgb3B0aW9uIGludG8gZmlsdGVyc1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0UmVzdG9yZSgpIHtcbiAgICBpZiAodGhpcy5yZXN0b3JlKSB7XG4gICAgICBjb25zdCByZXN0b3JlQWN0aW9uID0gbmV3IFJvd0FjdGlvbih7XG4gICAgICAgIGxhYmVsOiB0aGlzLnJlc3RvcmUubWVudUxhYmVsIHx8ICdSZXN0b3JlJyxcbiAgICAgICAgbWVudTogdHJ1ZSxcbiAgICAgICAgY2xpY2s6IChyb3cpID0+IHsgdGhpcy5yZXN0b3JlQ2xpY2sodGhpcy5yZXN0b3JlLmNsaWNrLCByb3cpIH0sIC8vIFRPRE8gZml4IG1lLCBtb3ZlIHRvIHNwZWNpYWwgZmlsZVxuICAgICAgICByZXN0b3JlOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYgKCF0aGlzLnJvd0FjdGlvbnNSYXcpIHtcbiAgICAgICAgdGhpcy5yb3dBY3Rpb25zUmF3ID0gW107XG4gICAgICB9XG5cbiAgICAgIHRoaXMucm93QWN0aW9uc1Jhdy5wdXNoKHJlc3RvcmVBY3Rpb24pO1xuXG4gICAgICBpZiAoIXRoaXMuZmlsdGVycykge1xuICAgICAgICB0aGlzLmZpbHRlcnMgPSBbXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVzdG9yZS5maWx0ZXIgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBTSE9XX0RFTEVURURfRklMVEVSU19LRVksXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuQ2hlY2tib3gsXG4gICAgICAgICAgbGFiZWw6IHRoaXMucmVzdG9yZS5maWx0ZXJMYWJlbCB8fCAnU2hvdyBEZWxldGVkJ1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IHBhZ2luZ1xuICAgKiBAcGFyYW0gcGFnaW5nQ29uZmlnXG4gICAqIEBwYXJhbSBsb2FkTW9yZVxuICAgKi9cbiAgcHJpdmF0ZSBpbml0UGFnaW5nKHBhZ2luZ0NvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSwgbG9hZE1vcmU6IEZzTGlzdExvYWRNb3JlQ29uZmlnIHwgYm9vbGVhbikge1xuICAgIHRoaXMucGFnaW5nLmluaXRXaXRoQ29uZmlnKHBhZ2luZ0NvbmZpZywgbG9hZE1vcmUsICEhdGhpcy5zY3JvbGxhYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCBhY3Rpb25zIGJ5IGNhdGVnb3JpZXNcbiAgICovXG4gIHByaXZhdGUgaW5pdEFjdGlvbnMoYWN0aW9ucykge1xuICAgIGlmIChhY3Rpb25zKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc2V0QWN0aW9ucyhhY3Rpb25zKTtcbiAgICB9XG5cbiAgICB0aGlzLmhhc1Jvd0FjdGlvbnMgPVxuICAgICAgKHRoaXMucm93QWN0aW9uc1JhdyAmJiB0aGlzLnJvd0FjdGlvbnNSYXcubGVuZ3RoID4gMClcbiAgICAgIHx8ICh0aGlzLmdyb3VwQWN0aW9uc1JhdyAmJiB0aGlzLmdyb3VwQWN0aW9uc1Jhdy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNlbGVjdGlvbihcbiAgICBzZWxlY3Rpb25Db25maWc6IEZzTGlzdFNlbGVjdGlvbkNvbmZpZyxcbiAgICBzZWxlY3Rpb25EaWFsb2c6IFNlbGVjdGlvbkRpYWxvZyxcbiAgKSB7XG4gICAgaWYgKHNlbGVjdGlvbkNvbmZpZykge1xuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uQ29udHJvbGxlcihzZWxlY3Rpb25Db25maWcsIHRoaXMudHJhY2tCeSwgc2VsZWN0aW9uRGlhbG9nKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNldFJvd3NDYWxsYmFjaygoKSA9PiB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEYXRhKCkge1xuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0QWRkaXRpb25hbENvbmZpZ3Moe1xuICAgICAgc2Nyb2xsYWJsZTogISF0aGlzLnNjcm9sbGFibGUsXG4gICAgICBsb2FkTW9yZUVuYWJsZWQ6IHRoaXMucGFnaW5nLmxvYWRNb3JlRW5hYmxlZFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0R3JvdXBzKGdyb3VwQ29uZmlnOiBGc0xpc3RHcm91cENvbmZpZykge1xuICAgIGlmIChncm91cENvbmZpZykge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRHcm91cENvbmZpZyhncm91cENvbmZpZyk7XG4gICAgICB0aGlzLmdyb3VwQWN0aW9uc1JhdyA9IGdyb3VwQ29uZmlnLmFjdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0RXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyKCkge1xuICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMgPSBuZXcgRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyKFxuICAgICAgdGhpcy5yb3V0ZXIsXG4gICAgICB0aGlzLnJvdXRlLFxuICAgICAgdGhpcy5wZXJzaXN0YW5jZSxcbiAgICAgIHRoaXMucGFnaW5nLFxuICAgICAgdGhpcy5zb3J0aW5nLFxuICAgICAgdGhpcy5xdWVyeVBhcmFtXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gZmV0Y2gkIGV2ZW50IHdpdGggZGVib3VuY2VcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuRmV0Y2goKSB7XG4gICAgbGV0IGZldGNoJCA9IHRoaXMuZmV0Y2gkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgLy8gU2hvdWxkIHdhaXQgdW50aWwgc2F2ZWQgZmlsdGVycyBub3QgbG9hZGVkXG4gICAgaWYgKCEhdGhpcy5maWx0ZXJzICYmICEhdGhpcy5zYXZlZEZpbHRlcnMpIHtcbiAgICAgIGZldGNoJCA9IGNvbWJpbmVMYXRlc3QoW2ZldGNoJCwgdGhpcy5maWx0ZXJzUmVhZHkkXSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChbcGFyYW1zXSkgPT4gcGFyYW1zKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmZXRjaCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24/LmNsb3NlU2VsZWN0aW9uRGlhbG9nKCk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKHBhcmFtczogRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5ICYmIHBhcmFtcyAmJiBwYXJhbXMubG9hZE9mZnNldFxuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmZpbHRlcnNRdWVyeSwgdGhpcy5wYWdpbmcubG9hZERlbGV0ZWRPZmZzZXRRdWVyeSlcbiAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5maWx0ZXJzUXVlcnksIHRoaXMucGFnaW5nLnF1ZXJ5KTtcblxuICAgICAgICAgIGlmICh0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbikge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogYCR7dGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZX0sJHt0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5kaXJlY3Rpb259YFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChxdWVyeSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmNvbHVtbnMubG9hZEZuQ29uZmlndXJlZCAmJiAhdGhpcy5jb2x1bW5zLmNvbHVtbnNGZXRjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmxvYWRSZW1vdGVDb2x1bW5Db25maWdzKClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwVG8ocXVlcnkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZihxdWVyeSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChxdWVyeSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmNvbHVtbnMuY29uZmlndXJlZCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMudmlzaWJsZUNvbHVtbnNOYW1lcyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtvZihxdWVyeSksIHRoaXMuZmV0Y2hSZW1vdGUocXVlcnkpXSk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvciwgc291cmNlJCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSQ7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuY29tcGxldGVGZXRjaChyZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuUm93c1JlbW92ZSgpIHtcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnJvd3NSZW1vdmVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocm93czogYW55W10pID0+IHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcblxuICAgICAgICAgIGNvbnN0IHJlbW92ZWRDb3VudCA9IHJvd3MubGVuZ3RoO1xuXG4gICAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc1BhZ2VTdHJhdGVneSkge1xuICAgICAgICAgICAgdGhpcy5ub0RhdGFQYWdpbmF0aW9uVXBkYXRlKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZldGNoIG1vcmUgaWYgaGFzIHNvbWV0aGluZyBmb3IgZmV0Y2hcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLmhhc0RhdGEgfHwgdGhpcy5wYWdpbmcuaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZE1vcmUpO1xuXG4gICAgICAgICAgICAgIHRoaXMucGFnaW5nLnJlbW92ZVJvd3MocmVtb3ZlZENvdW50KTtcbiAgICAgICAgICAgICAgdGhpcy5mZXRjaCQubmV4dCh7IGxvYWRPZmZzZXQ6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLm5vRGF0YVBhZ2luYXRpb25VcGRhdGUocmVtb3ZlZENvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgZnJvbSBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnJlbW92ZVJvdyhyb3cuZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SW5maW5pdHlTY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMuZnNTY3JvbGxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNjcm9sbGFibGUpIHtcbiAgICAgIC8vIFNjcm9sbGFibGUgc3RhdHVzIGJ5IGRlZmF1bHRcbiAgICAgIGlmICh0aGlzLnNjcm9sbGFibGUuc3RhdHVzID09PSB2b2lkIDApIHtcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlLnN0YXR1cyA9IHRydWU7XG4gICAgICB9XG5cblxuICAgICAgdGhpcy5mc1Njcm9sbFxuICAgICAgICAuY29tcG9uZW50KHRoaXMuc2Nyb2xsYWJsZS5uYW1lKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGZzU2Nyb2xsSW5zdGFuY2U6IEZzU2Nyb2xsSW5zdGFuY2UpID0+IHtcbiAgICAgICAgICB0aGlzLmZzU2Nyb2xsSW5zdGFuY2UgPSBmc1Njcm9sbEluc3RhbmNlO1xuICAgICAgICAgIHRoaXMuX2ZzU2Nyb2xsU3Vic2NyaXB0aW9uID0gZnNTY3JvbGxJbnN0YW5jZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBzdGFydExvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdGhpcy5kYXRhQ29udHJvbGxlci5vcGVyYXRpb247XG5cbiAgICAgICAgICAgICAgLy8gSW5pdGlhbCBsb2FkaW5nIGlmIGluaXRpYWxGZXRjaCBlcXVhbHMgZmFsc2VcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxGZXRjaFxuICAgICAgICAgICAgICAgICYmICF0aGlzLnBhZ2luZy5pbml0aWFsaXplZFxuICAgICAgICAgICAgICAgICYmIG9wZXJhdGlvbiAhPT0gRnNMaXN0U3RhdGUuUmVsb2FkXG4gICAgICAgICAgICAgICkge1xuXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZCk7XG4gICAgICAgICAgICAgICAgc3RhcnRMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuUmVsb2FkIHx8XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5GaWx0ZXIgfHxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLlNvcnRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luZy5pbml0aWFsaXplZCAmJiB0aGlzLnBhZ2luZy5oYXNOZXh0UGFnZSkge1xuICAgICAgICAgICAgICAgIC8vIExvYWRpbmcgaWYgY29udGVudCBoYXMgYmVlbiBzY3JvbGxlZFxuICAgICAgICAgICAgICAgIHN0YXJ0TG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuTG9hZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdpbmcuZ29OZXh0KCk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoc3RhcnRMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgICAgICAgICAgICAgIGZzU2Nyb2xsSW5zdGFuY2UubG9hZGluZygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLnJlbW90ZVJvd3NDaGFuZ2UkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgZnNTY3JvbGxJbnN0YW5jZS5sb2FkZWQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbmQgd2F0Y2ggZmlsdGVyIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgaW5pdEZpbHRlcnMoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyQ29uZmlnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTWVyZ2Ugc29ydGluZyBhbmQgZmFrZSBzb3J0aW5nIGNvbHNcbiAgICAvLyBGYWtlIHNvcnRpbmcgY29scyBpdCdzIGNvbHMgd2hpY2ggZG9uJ3QgcmVwcmVzZW50ZWQgaW4gdGFibGUgY29scywgbGlrZSBhYnN0cmFjdCBjb2xzXG4gICAgY29uc3Qgc29ydFZhbHVlcyA9XG4gICAgICBbXG4gICAgICAgIC4uLnRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1ucyxcbiAgICAgICAgLi4udGhpcy5zb3J0aW5nLmZha2VTb3J0aW5nQ29sdW1uc1xuICAgICAgXS5yZWR1Y2UoKGFjYywgY29sdW1uKSA9PiB7XG5cbiAgICAgICAgY29uc3Qgc29ydGluZ0l0ZW0gPSB7XG4gICAgICAgICAgbmFtZTogY29sdW1uLnRpdGxlLFxuICAgICAgICAgIHZhbHVlOiBjb2x1bW4ubmFtZSxcbiAgICAgICAgICBkZWZhdWx0OiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbiAmJiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5uYW1lID09PSBjb2x1bW4ubmFtZVxuICAgICAgICB9O1xuXG4gICAgICAgIGFjYy5wdXNoKHNvcnRpbmdJdGVtKTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHNvcnRDb25maWcgPSB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtblxuICAgICAgPyB7IHZhbHVlOiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5uYW1lLCBkaXJlY3Rpb246IHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLmRpcmVjdGlvbn1cbiAgICAgIDogbnVsbDtcblxuICAgIC8vIENvbmZpZ1xuICAgIHRoaXMuZmlsdGVyQ29uZmlnID0ge1xuICAgICAgcGVyc2lzdDogdGhpcy5wZXJzaXN0LFxuICAgICAgaXRlbXM6IHRoaXMuZmlsdGVycyB8fCBbXSxcbiAgICAgIHNhdmVkRmlsdGVyczogdGhpcy5zYXZlZEZpbHRlcnMsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lRmlsdGVycyxcbiAgICAgIGFjdGlvbnM6IHRoaXMuYWN0aW9ucy5hY3Rpb25zLFxuICAgICAgcXVlcnlQYXJhbTogdGhpcy5xdWVyeVBhcmFtLFxuICAgICAgc29ydHM6IHNvcnRWYWx1ZXMsXG4gICAgICBzb3J0OiBzb3J0Q29uZmlnLFxuICAgICAgY2hpcHM6IHRoaXMuY2hpcHMsXG4gICAgICBpbml0OiB0aGlzLmZpbHRlckluaXQuYmluZCh0aGlzKSxcbiAgICAgIGNoYW5nZTogdGhpcy5maWx0ZXJDaGFuZ2UuYmluZCh0aGlzKSxcbiAgICAgIHJlbG9hZDogdGhpcy5yZWxvYWQuYmluZCh0aGlzKSxcbiAgICAgIHNvcnRDaGFuZ2U6IHRoaXMuZmlsdGVyU29ydC5iaW5kKHRoaXMpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWRcbiAgICogQHBhcmFtIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVySW5pdChmaWx0ZXJzKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVySW5pdENiKSB7XG4gICAgICB0aGlzLmZpbHRlckluaXRDYihmaWx0ZXJzKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcnNRdWVyeSA9IGZpbHRlcnM7XG5cbiAgICB0aGlzLmNoZWNrUmVzdG9yZUZpbHRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gRmlsdGVyIGhhcyBiZWVuIGNoYW5nZWRcbiAgICogQHBhcmFtIGZpbHRlclF1ZXJ5XG4gICAqIEBwYXJhbSBmaWx0ZXJTb3J0XG4gICAqL1xuICBwcml2YXRlIGZpbHRlckNoYW5nZShmaWx0ZXJRdWVyeSwgZmlsdGVyU29ydCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNoYW5nZUNiKSB7XG4gICAgICB0aGlzLmZpbHRlckNoYW5nZUNiKGZpbHRlclF1ZXJ5LCBmaWx0ZXJTb3J0KTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcnNRdWVyeSA9IGZpbHRlclF1ZXJ5O1xuXG4gICAgdGhpcy5yZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gICAgLy8gUmVzdG9yZSBvcHRpb25cbiAgICB0aGlzLmNoZWNrUmVzdG9yZUZpbHRlcigpO1xuXG4gICAgaWYgKHRoaXMucmVzdG9yZSAmJiB0aGlzLnJlc3RvcmUucmVsb2FkKSB7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkZpbHRlcik7XG5cbiAgICAvLyBSZXNldCBwYWdpbmcgZm9yIHJlcXVlc3Qgd2l0aCBjb3JyZWN0IG9mZnNldFxuICAgIHRoaXMucGFnaW5nLnJlc2V0UGFnaW5nKCk7XG5cbiAgICBpZiAodGhpcy5mc1Njcm9sbEluc3RhbmNlKSB7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1Jlc3RvcmVGaWx0ZXIoKSB7XG4gICAgLy8gUmVzdG9yZSBvcHRpb25cbiAgICBpZiAodGhpcy5yZXN0b3JlICYmIHRoaXMuZmlsdGVyc1F1ZXJ5W1NIT1dfREVMRVRFRF9GSUxURVJTX0tFWV0pIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlcnNRdWVyeVtTSE9XX0RFTEVURURfRklMVEVSU19LRVldO1xuXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuZmlsdGVyc1F1ZXJ5LCB0aGlzLnJlc3RvcmUucXVlcnkpO1xuXG4gICAgICB0aGlzLnJlc3RvcmVNb2RlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayB3aGVuIEZpbHRlciBzb3J0IGhhcyBiZWVuIGNoYW5nZWRcbiAgcHJpdmF0ZSBmaWx0ZXJTb3J0KGZpbHRlclF1ZXJ5LCBmaWx0ZXJTb3J0KSB7XG4gICAgaWYgKGZpbHRlclNvcnQpIHtcbiAgICAgIHRoaXMuc29ydGluZy5zb3J0QnlDb2x1bW5XaXRoTmFtZShmaWx0ZXJTb3J0LnZhbHVlKTtcblxuICAgICAgY29uc3Qgc29ydERpcmVjdGlvbiA9IGZpbHRlclNvcnQuZGlyZWN0aW9uID09PSAnYXNjJyA/IFNvcnRpbmdEaXJlY3Rpb24uYXNjIDogU29ydGluZ0RpcmVjdGlvbi5kZXNjO1xuICAgICAgdGhpcy5zb3J0aW5nLnNvcnREaXJlY3Rpb24oc29ydERpcmVjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZJWE1FIG5lZWQgdG8gYmUgcmVmYWN0b3JlZC4uLlxuICAgICAgdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4gPSB2b2lkIDA7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVGZXRjaChbcXVlcnksIHJlc3BvbnNlXSkge1xuXG4gICAgaWYgKCF0aGlzLnBhZ2luZy5wYWdlKSB7XG4gICAgICB0aGlzLnBhZ2luZy5wYWdlID0gMTtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2UucGFnaW5nKSB7XG4gICAgICBjb25zdCBkaXNwbGF5ZWQgPSAoQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkgfHwgMDtcbiAgICAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luZyhcbiAgICAgICAgcmVzcG9uc2UucGFnaW5nLFxuICAgICAgICBkaXNwbGF5ZWQsXG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5Mb2FkTW9yZVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAnJWMgRnNMaXN0IFdhcm5pbmcgJyxcbiAgICAgICAgJ2NvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjogI2ZmY2MwYicsXG4gICAgICAgICdQYWdpbmF0aW9uIGRvZXMgbm90IGNvbmZpZ3VyZWQgcHJvcGVybHkuICcgK1xuICAgICAgICAnUGFnaW5hdGlvbiBpcyBlbmFibGVkLCBidXQgaHR0cCByZXNwb25zZSBkb2VzIG5vdCBjb250YWluIFwicGFnaW5nXCIgZmllbGQuICcgK1xuICAgICAgICAnWW91IGhhdmUgdG8gc2V0IFwicGFnaW5nOiBmYWxzZVwiIGluIGNvbmZpZyBvciBhZGQgXCJwYWdpbmdcIiBmaWVsZCB0byByZXNwb25zZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vLyBtdXN0IGJlIGJlZm9yZSBzZWxlY3Rpb24sIGJlY2F1c2Ugc2VsZXRpb24gdXNlIHJlY29yZHNcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldFJvd3NGcm9tUmVzcG9uc2UocmVzcG9uc2UuZGF0YSk7XG4gICAgLy8vXG5cbiAgICAvLyBVcGRhdGUgc2VsZWN0aW9uIHBhcmFtc1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuXG4gICAgICBpZiAodGhpcy5wYWdpbmcuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5wYWdlQ2hhbmdlZCh0aGlzLnNjcm9sbGFibGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFZpc2libGVSZWNvcmRzKCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gcmVzcG9uc2UucGFnaW5nICYmIHJlc3BvbnNlLnBhZ2luZy5yZWNvcmRzXG4gICAgICAgICAgfHwgQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aDtcblxuICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KGNvdW50KTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQoY291bnQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFJvd3NJbnRlcnNlY3Rpb24odGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0RhdGEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVtcHR5U3RhdGU/LnZhbGlkYXRlICYmIHRoaXMuZW1wdHlTdGF0ZVRlbXBsYXRlKSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGVFbmFibGVkID0gdGhpcy5lbXB0eVN0YXRlLnZhbGlkYXRlKHF1ZXJ5LCBjbG9uZURlZXAocmVzcG9uc2UuZGF0YSkpO1xuICAgIH1cblxuICAgIHRoaXMuZmV0Y2hDb21wbGV0ZSQubmV4dCgpO1xuICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCBkbyBzb21lIGFjdGlvbnMgaWYgeW91IHJlbW92ZWQgaXRlbSBhbmQgaXRlbSB3YXMgbGFzdCBvbiBoaXMgb3duIHBhZ2VcbiAgICpcbiAgICogRXg6IGlmIGxpc3QgaGFzIDMgcGFnZXMgYW5kIG9uIHRoaXJkIHBhZ2UgeW91IGhhdmUgb25seSBvbmUgaXRlbS4gQW5kIHlvdSBqdXN0IGRlbGV0ZWQgdGhpcyBpdGVtLlxuICAgKiBZb3UgbXVzdCBnbyB0byBzZWNvbmQgcGFnZSwgYnV0IGlmIGl0IHdhcyBsYXN0IHBhZ2UgYW5kIHlvdSBjYW4ndCBnbyBiYWNrIC0+IGp1c3QgcmVsb2FkXG4gICAqXG4gICAqIEBwYXJhbSBkZWxldGVkQ291bnRcbiAgICovXG4gIHByaXZhdGUgbm9EYXRhUGFnaW5hdGlvblVwZGF0ZShkZWxldGVkQ291bnQpIHtcbiAgICBpZiAoIXRoaXMuZGF0YUNvbnRyb2xsZXIuaGFzRGF0YSkge1xuICAgICAgaWYgKHRoaXMucGFnaW5nLnBhZ2UgPiAxKSB7XG4gICAgICAgIHRoaXMucGFnaW5nLmdvVG9QYWdlKHRoaXMucGFnaW5nLnBhZ2UgLSAxIHx8IDEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhZ2luZy5yZWNvcmRzIC09IGRlbGV0ZWRDb3VudDtcbiAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmF0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhICYmIHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NDb3VudCk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVUb3RhbFJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5yZWNvcmRzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVtcG9yYXJ5IHNvbHV0aW9uLCB3aWxsIGRvIGF1dG8gc3Vic2NyaWJlIGlmIHdhcyByZXR1cm5lZCBPYnNlcnZhYmxlLlxuICAgKlxuICAgKiBUT0RPOiBNT1ZFIFRISVMgUEVBQ0UgT0YgQ09ERSBUTyBTUEVDSUFMIFBMQUNFXG4gICAqXG4gICAqIEBwYXJhbSByZXN0b3JlQ2xpY2tDYWxsYmFja1xuICAgKiBAcGFyYW0gcm93XG4gICAqL1xuICBwcml2YXRlIHJlc3RvcmVDbGljayhyZXN0b3JlQ2xpY2tDYWxsYmFjaywgcm93KSB7XG4gICAgY29uc3QgcmVzdG9yZUNsaWNrUmVzdWx0ID0gcmVzdG9yZUNsaWNrQ2FsbGJhY2socm93KTtcblxuICAgIGlmIChyZXN0b3JlQ2xpY2tSZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXN0b3JlQ2xpY2tSZXN1bHRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB0aGlzLnJlbG9hZCgpLFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7fSxcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
733
+ __decorate([
734
+ Alias('afterFetch'),
735
+ __metadata("design:type", Function)
736
+ ], List.prototype, "afterFetchFn", void 0);
737
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvbGlzdC8iLCJzb3VyY2VzIjpbImFwcC9jbGFzc2VzL2xpc3QtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFxRCxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixJQUFJLEVBQ0osVUFBVSxFQUNWLEVBQUUsRUFDRixPQUFPLEVBRVIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFDWixHQUFHLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFrQjFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlC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SyxFQUFFOzsyQ0FBMkI7QUFFZDtJQUFwQixLQUFLLENBQUMsWUFBWSxDQUFDOzsyQ0FBNkI7QUFFOUI7SUFBbEIsS0FBSyxDQUFDLFVBQVUsQ0FBQzs7c0NBQWlCO0FBQzFCO0lBQVIsS0FBSyxFQUFFOzt1Q0FBdUI7QUFDdEI7SUFBUixLQUFLLEVBQUU7O3FDQUFxQztBQUNwQztJQUFSLEtBQUssRUFBRTs7NkNBQTZCO0FBQzVCO0lBQVIsS0FBSyxFQUFFOztxQ0FBeUI7QUFDeEI7SUFBUixLQUFLLEVBQUU7O3FDQUFxQjtBQUNSO0lBQXBCLEtBQUssQ0FBQyxZQUFZLENBQUM7OzBDQUErQjtBQUM1QjtJQUF0QixLQUFLLENBQUMsY0FBYyxDQUFDOzs0Q0FBaUM7QUFDOUM7SUFBUixLQUFLLEVBQUU7OzBDQUFnRDtBQUMvQztJQUFSLEtBQUssRUFBRTs7d0NBQTJEO0FBQzFEO0lBQVIsS0FBSyxFQUFFOzt1Q0FBeUM7QUFDeEM7SUFBUixLQUFLLEVBQUU7O3dDQUEyQztBQUVuQztJQUFmLEtBQUssQ0FBQyxPQUFPLENBQUM7O3FDQUErQjtBQUN6QjtJQUFwQixLQUFLLENBQUMsWUFBWSxDQUFDOzswQ0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDaGFuZ2VGbiwgRmlsdGVyQ29uZmlnLCBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnLCBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc1Njcm9sbEluc3RhbmNlLCBGc1Njcm9sbFNlcnZpY2UgfSBmcm9tICdAZmlyZXN0aXRjaC9zY3JvbGwnO1xuaW1wb3J0IHsgU2VsZWN0aW9uRGlhbG9nIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJztcblxuaW1wb3J0IHsgQWxpYXMsIE1vZGVsIH0gZnJvbSAndHNtb2RlbHMnO1xuXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb25cbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIG1hcCxcbiAgbWFwVG8sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcblxuLy8gSW50ZXJmYWNlc1xuaW1wb3J0IHtcbiAgRnNMaXN0QWZ0ZXJGZXRjaEZuLFxuICBGc0xpc3RDb25maWcsXG4gIEZzTGlzdEVtcHR5U3RhdGVDb25maWcsIEZzTGlzdEZldGNoRm4sIEZzTGlzdEZldGNoT3B0aW9ucyxcbiAgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24sXG4gIEZzTGlzdEdyb3VwQ29uZmlnLFxuICBGc0xpc3RMb2FkTW9yZUNvbmZpZyxcbiAgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnLFxuICBGc0xpc3RSZXN0b3JlQ29uZmlnLFxuICBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnLFxuICBGc0xpc3RTZWxlY3Rpb25Db25maWcsXG4gIEZzTGlzdFRyYWNrQnlGbixcbiAgRnNQYWdpbmcsXG4gIFBhZ2VDaGFuZ2Vcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdHlsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zdHlsZUNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBSb3dBY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvcm93LWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDb2x1bW5zQ29udHJvbGxlciB9IGZyb20gJy4vY29sdW1ucy1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2VDaGFuZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMvcGFnZS1jaGFuZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IEFjdGlvbnNDb250cm9sbGVyIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBEYXRhQ29udHJvbGxlciB9IGZyb20gJy4vZGF0YS1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25Db250cm9sbGVyIH0gZnJvbSAnLi9wYWdpbmF0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJy4vc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU29ydGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL3NvcnRpbmctY29udHJvbGxlcic7XG5cbmltcG9ydCB7IEZzTGlzdFN0YXRlIH0gZnJvbSAnLi4vZW51bXMvc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBQZXJzaXN0YW5jZUNvbnRyb2xsZXIgfSBmcm9tICcuL3BlcnNpc3RhbmNlLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRXh0ZXJuYWxQYXJhbXNDb250cm9sbGVyIH0gZnJvbSAnLi9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlcic7XG5cbmNvbnN0IFNIT1dfREVMRVRFRF9GSUxURVJTX0tFWSA9ICckJF9zaG93X2RlbGV0ZWRfJCQnO1xuXG5cbmV4cG9ydCBjbGFzcyBMaXN0IGV4dGVuZHMgTW9kZWwge1xuICBAQWxpYXMoKSBwdWJsaWMgaGVhZGluZzogc3RyaW5nO1xuICBAQWxpYXMoKSBwdWJsaWMgdHJhY2tCeTogc3RyaW5nO1xuICBAQWxpYXMoKSBwdWJsaWMgc3ViaGVhZGluZzogc3RyaW5nO1xuICBAQWxpYXMoKSBwdWJsaWMgaW5saW5lRmlsdGVyczogYW55O1xuICAvLyBAQWxpYXMoJ2FjdGlvbnMnLCBBY3Rpb24pIHB1YmxpYyBhY3Rpb25zOiBBY3Rpb25bXTtcbiAgQEFsaWFzKCdyb3dBY3Rpb25zJykgcHVibGljIHJvd0FjdGlvbnNSYXc6IGFueVtdO1xuICBwdWJsaWMgZ3JvdXBBY3Rpb25zUmF3OiBhbnlbXTtcbiAgQEFsaWFzKCdyb3dDbGFzcycpIHB1YmxpYyByb3dDbGFzcztcbiAgQEFsaWFzKCkgcHVibGljIHJvd0V2ZW50czogYW55O1xuICBAQWxpYXMoKSBwdWJsaWMgcmVzdG9yZTogRnNMaXN0UmVzdG9yZUNvbmZpZztcbiAgQEFsaWFzKCkgcHVibGljIGNvbHVtblRlbXBsYXRlczogYW55O1xuICBAQWxpYXMoKSBwdWJsaWMgcGVyc2lzdDogYm9vbGVhbjtcbiAgQEFsaWFzKCkgcHVibGljIGZpbHRlcnMgPSBbXTtcbiAgQEFsaWFzKCdmaWx0ZXJJbml0JykgcHVibGljIGZpbHRlckluaXRDYjogQ2hhbmdlRm47XG4gIEBBbGlhcygnZmlsdGVyQ2hhbmdlJykgcHVibGljIGZpbHRlckNoYW5nZUNiOiBDaGFuZ2VGbjtcbiAgQEFsaWFzKCkgcHVibGljIHNhdmVkRmlsdGVyczogSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZztcbiAgQEFsaWFzKCkgcHVibGljIHNjcm9sbGFibGU6IEZzTGlzdFNjcm9sbGFibGVDb25maWcgfCBmYWxzZSA9IGZhbHNlO1xuICBAQWxpYXMoKSBwdWJsaWMgbm9SZXN1bHRzOiBGc0xpc3ROb1Jlc3VsdHNDb25maWc7XG4gIEBBbGlhcygpIHB1YmxpYyBlbXB0eVN0YXRlOiBGc0xpc3RFbXB0eVN0YXRlQ29uZmlnO1xuICAvLyBAQWxpYXMoKSBwdWJsaWMgaW5pdGlhbEZldGNoID0gdHJ1ZTsgLy9UT0RPIGZpeG1lXG4gIEBBbGlhcygnZmV0Y2gnKSBwdWJsaWMgZmV0Y2hGbjogRnNMaXN0RmV0Y2hGbjtcbiAgQEFsaWFzKCdhZnRlckZldGNoJykgcHVibGljIGFmdGVyRmV0Y2hGbjogRnNMaXN0QWZ0ZXJGZXRjaEZuO1xuICAvLyBAQWxpYXMoJ3Jvd3MnKSBwcml2YXRlIF9yb3dzOiBhbnk7XG5cbiAgcHVibGljIGluaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAvLyBwdWJsaWMgb3BlcmF0aW9uOiBPcGVyYXRpb247XG4gIHB1YmxpYyBmaWx0ZXJzUXVlcnk6IGFueTtcblxuICBwdWJsaWMgaGFzUm93QWN0aW9ucztcbiAgcHVibGljIHBhZ2luZyA9IG5ldyBQYWdpbmF0aW9uQ29udHJvbGxlcigpO1xuXG4gIHB1YmxpYyBjb2x1bW5zID0gbmV3IENvbHVtbnNDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBhY3Rpb25zID0gbmV3IEFjdGlvbnNDb250cm9sbGVyKCk7XG4gIHB1YmxpYyBkYXRhQ29udHJvbGxlciA9IG5ldyBEYXRhQ29udHJvbGxlcigpO1xuICBwdWJsaWMgc29ydGluZyA9IG5ldyBTb3J0aW5nQ29udHJvbGxlcigpO1xuICBwdWJsaWMgZXh0ZXJuYWxQYXJhbXM6IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcjtcbiAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uQ29udHJvbGxlcjtcblxuICBwdWJsaWMgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWcgPSBudWxsO1xuXG4gIHB1YmxpYyBmZXRjaCQgPSBuZXcgU3ViamVjdDxGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbiB8IHZvaWQ+KCk7XG4gIHB1YmxpYyBmZXRjaENvbXBsZXRlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBmaWx0ZXJzUmVhZHkkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgc3RhdHVzID0gdHJ1ZTtcbiAgcHVibGljIGNoaXBzID0gZmFsc2U7XG4gIHB1YmxpYyBmaWx0ZXJJbnB1dCA9IHRydWU7XG4gIHB1YmxpYyBxdWVyeVBhcmFtID0gZmFsc2U7XG4gIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpbml0aWFsRmV0Y2ggPSB0cnVlO1xuXG4gIC8vIEVtcHR5IHN0YXRlXG4gIHB1YmxpYyBlbXB0eVN0YXRlRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgZW1wdHlTdGF0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBmc1Njcm9sbEluc3RhbmNlOiBGc1Njcm9sbEluc3RhbmNlO1xuXG4gIHB1YmxpYyBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncm91cENlbGxDb25maWc6IFN0eWxlQ29uZmlnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jZWxsQ29uZmlnOiBTdHlsZUNvbmZpZztcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9vdGVyQ29uZmlnOiBTdHlsZUNvbmZpZztcblxuICBwcml2YXRlIF9mc1Njcm9sbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjb25maWc6IEZzTGlzdENvbmZpZyA9IHt9LFxuICAgIHByaXZhdGUgZnNTY3JvbGw6IEZzU2Nyb2xsU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbkRpYWxvZzogU2VsZWN0aW9uRGlhbG9nLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBwZXJzaXN0YW5jZTogUGVyc2lzdGFuY2VDb250cm9sbGVyLFxuICAgIHByaXZhdGUgaW5EaWFsb2c6IGJvb2xlYW4sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZnJvbUpTT04oY29uZmlnKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZShjb25maWcpO1xuXG4gICAgdGhpcy5faGVhZGVyQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5oZWFkZXIpO1xuICAgIHRoaXMuX2dyb3VwQ2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuY2VsbCk7XG4gICAgdGhpcy5fY2VsbENvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZyhjb25maWcuY2VsbCk7XG4gICAgdGhpcy5fZm9vdGVyQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5mb290ZXIpO1xuXG4gICAgdGhpcy5pbml0aWFsaXplZCQubmV4dCh0cnVlKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XG5cbiAgICBpZiAodGhpcy5pbml0aWFsRmV0Y2gpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIGdldCBoYXNTYXZlZEZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWx0ZXJDb25maWcuc2F2ZWRGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGZldGNoUmVtb3RlKHF1ZXJ5KSB7XG4gICAgY29uc3Qgb3B0aW9uczogRnNMaXN0RmV0Y2hPcHRpb25zID0ge1xuICAgICAgc3RhdGU6IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uLFxuICAgIH07XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHRoaXMuZmV0Y2hGbihxdWVyeSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gcmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSA/IGZyb20ocmVzdWx0KSA6IHJlc3VsdDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBsb2FkTG9jYWwoKSB7XG4gIC8vICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5nTWFudWFsKHRoaXMuX3Jvd3MpO1xuICAvLyAgIGNvbnN0IGZyb20gPSAodGhpcy5wYWdpbmcucGFnZSAtIDEpICogdGhpcy5wYWdpbmcubGltaXQ7XG4gIC8vICAgY29uc3QgdG8gPSAodGhpcy5wYWdpbmcucGFnZSA9PT0gMSkgPyB0aGlzLnBhZ2luZy5saW1pdCA6IHRoaXMucGFnaW5nLmxpbWl0ICogdGhpcy5wYWdpbmcucGFnZTtcbiAgLy8gICBjb25zdCBzbGljZU9mUm93cyA9IHRoaXMuX3Jvd3Muc2xpY2UoZnJvbSwgdG8pO1xuICAvLyAgIHRoaXMuZGF0YSQubmV4dChzbGljZU9mUm93cyk7XG4gIC8vIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIHRlbXBsYXRlcyBmb3IgdXNpbmdcbiAgICogQHBhcmFtIHRlbXBsYXRlc1xuICAgKi9cbiAgcHVibGljIHRyYW5mb3JtVGVtcGxhdGVzVG9Db2x1bW5zKHRlbXBsYXRlcykge1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWdzID0ge1xuICAgICAgaGVhZGVyOiB0aGlzLl9oZWFkZXJDb25maWcsXG4gICAgICBncm91cENlbGw6IHRoaXMuX2dyb3VwQ2VsbENvbmZpZyxcbiAgICAgIGNlbGw6IHRoaXMuX2NlbGxDb25maWcsXG4gICAgICBmb290ZXI6IHRoaXMuX2Zvb3RlckNvbmZpZyxcbiAgICB9O1xuXG4gICAgdGhpcy5jb2x1bW5zLnNldERlZmF1bHRzKGRlZmF1bHRDb25maWdzKTtcbiAgICB0aGlzLmNvbHVtbnMuaW5pdGlhbGl6ZUNvbHVtbnModGVtcGxhdGVzKTtcblxuICAgIC8vIFNldCBzb3J0QnkgZGVmYXVsdCBjb2x1bW5cbiAgICB0aGlzLnNvcnRpbmcuY2xlYXJTb3J0YWJsZUNvbHVtbnMoKTtcbiAgICB0aGlzLmNvbHVtbnMuY29sdW1uc1xuICAgICAgLmZpbHRlcigoY29sdW1uKSA9PiBjb2x1bW4uc29ydGFibGUgJiYgY29sdW1uLnNob3cpXG4gICAgICAuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHRoaXMuc29ydGluZy5hZGRTb3J0YWJsZUNvbHVtbihjb2x1bW4pO1xuICAgICAgfSk7XG5cbiAgICAvLyBEZWZhdWx0IHNvcnQgYnlcbiAgICBjb25zdCBleHRlcm5hbFNvcnRpbmcgPSB0aGlzLmV4dGVybmFsUGFyYW1zLmV4dGVybmFsU29ydGluZztcbiAgICBjb25zdCBpbml0aWFsU29ydENvbmZpZyA9IGV4dGVybmFsU29ydGluZyB8fCB0aGlzLmNvbmZpZy5zb3J0O1xuICAgIHRoaXMuc29ydGluZy5pbml0aWFsU29ydEJ5KGluaXRpYWxTb3J0Q29uZmlnKTtcblxuICAgIGlmIChleHRlcm5hbFNvcnRpbmcgJiYgIXRoaXMuc29ydGluZy5pc0RlZmluZWQpIHtcbiAgICAgIHRoaXMuZXh0ZXJuYWxQYXJhbXMuY2xlYXJTb3J0aW5nUGFyYW1zKCk7XG5cbiAgICAgIGNvbnNvbGUud2FybignTm90IGFibGUgdG8gcmVzdG9yZSBwZXJzaXN0ZWQgc29ydGluZyBwYXJhbXMuJywgZXh0ZXJuYWxTb3J0aW5nKTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRGaWx0ZXJzKCk7XG4gICAgdGhpcy5pbml0SW5maW5pdHlTY3JvbGwoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRPcGVyYXRpb24oRnNMaXN0U3RhdGUuUmVsb2FkKTtcblxuICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMucGFnaW5nLnJlc2V0UGFnaW5nKCk7XG4gICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlLnJlbG9hZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZldGNoJC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdhdGNoIHBhZ2UgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIHN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnBhZ2luZy5wYWdlQ2hhbmdlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBQYWdlQ2hhbmdlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLlBhZ2VDaGFuZ2UpO1xuXG4gICAgICAgIC8vIFJlbW92ZSBhbGwgcm93cyBpZiBsaW1pdHMgd2FzIGNoYW5nZWRcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFBhZ2VDaGFuZ2VUeXBlLkxpbWl0Q2hhbmdlZCAmJiB0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLmNsZWFyUm93cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGFnaW5nLmhhc09mZnNldFN0cmF0ZWd5KSB7XG4gICAgICAgICAgdGhpcy5wYWdpbmcudXBkYXRlUGFnaW5hdGlvbigpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi51cGRhdGVWaXNpYmxlUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLmdldFZpc2libGVSZWNvcmRzKCkpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcucmVjb3Jkcyk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5wYWdlQ2hhbmdlZCh0aGlzLnNjcm9sbGFibGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxhYmxlICYmICF0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWQpIHtcblxuICAgICAgICAgIGNvbnN0IGNvbnRhaW5zID0gW10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykpLnNvbWUob3ZlcmxheSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKG92ZXJsYXkpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgbGV0IGVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgaWYgKCFjb250YWlucykge1xuICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGlmICgocmVjdC50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQpIDwgd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICAgICAgICAgIGVsID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmZldGNoQ29tcGxldGUkLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zb3J0aW5nLnNvcnRpbmdDaGFuZ2VkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLlNvcnQpO1xuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gMTtcblxuICAgICAgICBpZiAodGhpcy5mc1Njcm9sbEluc3RhbmNlKSB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgICAgICB0aGlzLmZzU2Nyb2xsSW5zdGFuY2UucmVsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuUm93c1JlbW92ZSgpO1xuICAgIHRoaXMubGlzdGVuRmV0Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREYXRhKHRyYWNrQnk/OiBGc0xpc3RUcmFja0J5Rm4pIHtcbiAgICBsZXQgcm93c0RhdGEgPSB0aGlzLmRhdGFDb250cm9sbGVyXG4gICAgICAudmlzaWJsZVJvd3NEYXRhO1xuXG4gICAgaWYgKHRyYWNrQnkpIHtcbiAgICAgIHJvd3NEYXRhID0gcm93c0RhdGFcbiAgICAgICAgLmZpbHRlcih0cmFja0J5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93c0RhdGFcbiAgICAgIC5tYXAoKGRhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGNsb25lRGVlcChkYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc0RhdGEodHJhY2tCeTogRnNMaXN0VHJhY2tCeUZuKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NEYXRhLnNvbWUodHJhY2tCeSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGdyb3VwIG1vZGUgc3RhdHVzXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIGdyb3VwRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLmdyb3VwRW5hYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuZ3JvdXBFbmFibGVkID0gdmFsdWU7XG5cbiAgICAgIC8vIENvbW1lbnRlZCBvdXQgYmVjYXVzZSBSYXkgd2FudHMgdG8gY2hhbmdlIGdyb3VwIHN0YXR1cyBpbiBmZXRjaCBtYXAgcGlwZVxuICAgICAgLy8gYW5kIGl0IHRyaWdnZXJzIGV4dHJhIHJlcXVlc3RzXG4gICAgICAvLyB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9mc1Njcm9sbFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fZnNTY3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdpbmcpIHtcbiAgICAgIHRoaXMucGFnaW5nLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0aW5nKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgdGhpcy5maWx0ZXJDb25maWcgPSBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV4dGVybmFsUGFyYW1zKSB7XG4gICAgICB0aGlzLmV4dGVybmFsUGFyYW1zLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIHRoaXMuY29sdW1ucy5kZXN0cm95KCk7XG5cbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogRG8gaW5pdGlhbGl6YXRpb24gb2YgdGFibGVcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplKGNvbmZpZzogRnNMaXN0Q29uZmlnKSB7XG4gICAgdGhpcy5jb2x1bW5zLmluaXRDb25maWcoY29uZmlnLmNvbHVtbik7XG4gICAgdGhpcy5pbml0RGVmYXVsdE9wdGlvbnMoY29uZmlnKTtcbiAgICB0aGlzLmluaXRSZXN0b3JlKCk7XG4gICAgdGhpcy5pbml0QWN0aW9ucyhjb25maWcuYWN0aW9ucyk7XG4gICAgdGhpcy5pbml0UGFnaW5nKGNvbmZpZy5wYWdpbmcsIGNvbmZpZy5sb2FkTW9yZSk7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uKGNvbmZpZy5zZWxlY3Rpb24sIHRoaXMuc2VsZWN0aW9uRGlhbG9nKTtcbiAgICB0aGlzLmluaXRHcm91cHMoY29uZmlnLmdyb3VwKTtcbiAgICB0aGlzLmluaXRFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIoKTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBKdXN0IGluaXQgb3B0aW9ucyBieSBkZWZhdWx0IGl0IGl0IHdhc24ndCBzcGVjaWZpZWRcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0RGVmYXVsdE9wdGlvbnMoY29uZmlnKSB7XG4gICAgLy8gV2Ugc2hvdWxkIHByZXZlbnQgaW5pdGlhbCBmZXRjaCBpbiBjYXNlcyB3aGVuIGl0IHdpbGwgYmUgZmV0Y2hlZCBpbiBhbnkgY2FzZVxuICAgIC8vIEFzIGV4LiBzY3JvbGxhYmxlIG9yIGZpbHRlciB3aWxsIGRvIGZldGNoIGluIGFueSBjYXNlc1xuICAgIGlmIChjb25maWcuaW5pdGlhbEZldGNoID09PSBmYWxzZSB8fCBjb25maWcuc2Nyb2xsYWJsZSkgeyAvLyBUT0RPIGZpeG1lIGFmdGVyIHRzbW9kZWwgdmVyc2lvbiB1cGRhdGVcbiAgICAgIHRoaXMuaW5pdGlhbEZldGNoID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChjb25maWcuc3RhdHVzID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5jaGlwcykge1xuICAgICAgdGhpcy5jaGlwcyA9IGNvbmZpZy5jaGlwcztcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5maWx0ZXJJbnB1dCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZmlsdGVySW5wdXQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbkRpYWxvZykge1xuICAgICAgdGhpcy5xdWVyeVBhcmFtID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbSA9IChjb25maWcucXVlcnlQYXJhbSA9PT0gdm9pZCAwKVxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiBjb25maWcucXVlcnlQYXJhbTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnNvcnRzKSB7XG4gICAgICB0aGlzLnNvcnRpbmcuaW5pdEZha2VDb2x1bW5zKGNvbmZpZy5zb3J0cyk7XG4gICAgfVxuICAgIGlmICghY29uZmlnLnRyYWNrQnkpIHtcbiAgICAgIHRoaXMudHJhY2tCeSA9ICdpZCc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXQgcmVzdG9yZSByb3cgYWN0aW9uIGFuZCBhcHBlbmQgU2hvdyBEZWxldGVkIG9wdGlvbiBpbnRvIGZpbHRlcnNcbiAgICovXG4gIHByaXZhdGUgaW5pdFJlc3RvcmUoKSB7XG4gICAgaWYgKHRoaXMucmVzdG9yZSkge1xuICAgICAgY29uc3QgcmVzdG9yZUFjdGlvbiA9IG5ldyBSb3dBY3Rpb24oe1xuICAgICAgICBsYWJlbDogdGhpcy5yZXN0b3JlLm1lbnVMYWJlbCB8fCAnUmVzdG9yZScsXG4gICAgICAgIG1lbnU6IHRydWUsXG4gICAgICAgIGNsaWNrOiAocm93KSA9PiB7IHRoaXMucmVzdG9yZUNsaWNrKHRoaXMucmVzdG9yZS5jbGljaywgcm93KSB9LCAvLyBUT0RPIGZpeCBtZSwgbW92ZSB0byBzcGVjaWFsIGZpbGVcbiAgICAgICAgcmVzdG9yZTogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghdGhpcy5yb3dBY3Rpb25zUmF3KSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9uc1JhdyA9IFtdO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJvd0FjdGlvbnNSYXcucHVzaChyZXN0b3JlQWN0aW9uKTtcblxuICAgICAgaWYgKCF0aGlzLmZpbHRlcnMpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJlc3RvcmUuZmlsdGVyICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgbmFtZTogU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkNoZWNrYm94LFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc3RvcmUuZmlsdGVyTGFiZWwgfHwgJ1Nob3cgRGVsZXRlZCdcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICogSW5pdCBwYWdpbmdcbiAgICogQHBhcmFtIHBhZ2luZ0NvbmZpZ1xuICAgKiBAcGFyYW0gbG9hZE1vcmVcbiAgICovXG4gIHByaXZhdGUgaW5pdFBhZ2luZyhwYWdpbmdDb25maWc6IEZzUGFnaW5nIHwgZmFsc2UsIGxvYWRNb3JlOiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW4pIHtcbiAgICB0aGlzLnBhZ2luZy5pbml0V2l0aENvbmZpZyhwYWdpbmdDb25maWcsIGxvYWRNb3JlLCAhIXRoaXMuc2Nyb2xsYWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogU3BsaXQgYWN0aW9ucyBieSBjYXRlZ29yaWVzXG4gICAqL1xuICBwcml2YXRlIGluaXRBY3Rpb25zKGFjdGlvbnMpIHtcbiAgICBpZiAoYWN0aW9ucykge1xuICAgICAgdGhpcy5hY3Rpb25zLnNldEFjdGlvbnMoYWN0aW9ucyk7XG4gICAgfVxuXG4gICAgdGhpcy5oYXNSb3dBY3Rpb25zID1cbiAgICAgICh0aGlzLnJvd0FjdGlvbnNSYXcgJiYgdGhpcy5yb3dBY3Rpb25zUmF3Lmxlbmd0aCA+IDApXG4gICAgICB8fCAodGhpcy5ncm91cEFjdGlvbnNSYXcgJiYgdGhpcy5ncm91cEFjdGlvbnNSYXcubGVuZ3RoID4gMCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTZWxlY3Rpb24oXG4gICAgc2VsZWN0aW9uQ29uZmlnOiBGc0xpc3RTZWxlY3Rpb25Db25maWcsXG4gICAgc2VsZWN0aW9uRGlhbG9nOiBTZWxlY3Rpb25EaWFsb2csXG4gICkge1xuICAgIGlmIChzZWxlY3Rpb25Db25maWcpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbkNvbnRyb2xsZXIoc2VsZWN0aW9uQ29uZmlnLCB0aGlzLnRyYWNrQnksIHNlbGVjdGlvbkRpYWxvZyk7XG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZXRSb3dzQ2FsbGJhY2soKCkgPT4gdGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93cyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpIHtcbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldEFkZGl0aW9uYWxDb25maWdzKHtcbiAgICAgIHNjcm9sbGFibGU6ICEhdGhpcy5zY3JvbGxhYmxlLFxuICAgICAgbG9hZE1vcmVFbmFibGVkOiB0aGlzLnBhZ2luZy5sb2FkTW9yZUVuYWJsZWRcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdyb3Vwcyhncm91cENvbmZpZzogRnNMaXN0R3JvdXBDb25maWcpIHtcbiAgICBpZiAoZ3JvdXBDb25maWcpIHtcbiAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0R3JvdXBDb25maWcoZ3JvdXBDb25maWcpO1xuICAgICAgdGhpcy5ncm91cEFjdGlvbnNSYXcgPSBncm91cENvbmZpZy5hY3Rpb25zO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcigpIHtcbiAgICB0aGlzLmV4dGVybmFsUGFyYW1zID0gbmV3IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlcihcbiAgICAgIHRoaXMucm91dGVyLFxuICAgICAgdGhpcy5yb3V0ZSxcbiAgICAgIHRoaXMucGVyc2lzdGFuY2UsXG4gICAgICB0aGlzLnBhZ2luZyxcbiAgICAgIHRoaXMuc29ydGluZyxcbiAgICAgIHRoaXMucXVlcnlQYXJhbVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGZldGNoJCBldmVudCB3aXRoIGRlYm91bmNlXG4gICAqL1xuICBwcml2YXRlIGxpc3RlbkZldGNoKCkge1xuICAgIGxldCBmZXRjaCQgPSB0aGlzLmZldGNoJC5hc09ic2VydmFibGUoKTtcblxuICAgIC8vIFNob3VsZCB3YWl0IHVudGlsIHNhdmVkIGZpbHRlcnMgbm90IGxvYWRlZFxuICAgIGlmICghIXRoaXMuZmlsdGVycyAmJiAhIXRoaXMuc2F2ZWRGaWx0ZXJzKSB7XG4gICAgICBmZXRjaCQgPSBjb21iaW5lTGF0ZXN0KFtmZXRjaCQsIHRoaXMuZmlsdGVyc1JlYWR5JF0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoW3BhcmFtc10pID0+IHBhcmFtcyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZmV0Y2gkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uPy5jbG9zZVNlbGVjdGlvbkRpYWxvZygpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwYXJhbXM6IEZzTGlzdEZldGNoU3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnBhZ2luZy5oYXNPZmZzZXRTdHJhdGVneSAmJiBwYXJhbXMgJiYgcGFyYW1zLmxvYWRPZmZzZXRcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5maWx0ZXJzUXVlcnksIHRoaXMucGFnaW5nLmxvYWREZWxldGVkT2Zmc2V0UXVlcnkpXG4gICAgICAgICAgICA6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmlsdGVyc1F1ZXJ5LCB0aGlzLnBhZ2luZy5xdWVyeSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IGAke3RoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uLm5hbWV9LCR7dGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4uZGlyZWN0aW9ufWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBxdWVyeTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb2x1bW5zLmxvYWRGbkNvbmZpZ3VyZWQgJiYgIXRoaXMuY29sdW1ucy5jb2x1bW5zRmV0Y2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucy5sb2FkUmVtb3RlQ29sdW1uQ29uZmlncygpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcFRvKHF1ZXJ5KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2YocXVlcnkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgocXVlcnkpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5jb2x1bW5zLmNvbmZpZ3VyZWQpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zLnZpc2libGVDb2x1bW5zTmFtZXMsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbb2YocXVlcnkpLCB0aGlzLmZldGNoUmVtb3RlKHF1ZXJ5KV0pO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IsIHNvdXJjZSQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICAgIHJldHVybiBzb3VyY2UkO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBsZXRlRmV0Y2gocmVzcG9uc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblJvd3NSZW1vdmUoKSB7XG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5yb3dzUmVtb3ZlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHJvd3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG5cbiAgICAgICAgICBjb25zdCByZW1vdmVkQ291bnQgPSByb3dzLmxlbmd0aDtcblxuICAgICAgICAgIGlmICh0aGlzLnBhZ2luZy5oYXNQYWdlU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIHRoaXMubm9EYXRhUGFnaW5hdGlvblVwZGF0ZShyZW1vdmVkQ291bnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBGZXRjaCBtb3JlIGlmIGhhcyBzb21ldGhpbmcgZm9yIGZldGNoXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhIHx8IHRoaXMucGFnaW5nLmhhc05leHRQYWdlKSB7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWRNb3JlKTtcblxuICAgICAgICAgICAgICB0aGlzLnBhZ2luZy5yZW1vdmVSb3dzKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoeyBsb2FkT2Zmc2V0OiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGFQYWdpbmF0aW9uVXBkYXRlKHJlbW92ZWRDb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIGZyb20gc2VsZWN0aW9uXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5yZW1vdmVSb3cocm93LmRhdGEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEluZmluaXR5U2Nyb2xsKCkge1xuICAgIGlmICh0aGlzLmZzU2Nyb2xsSW5zdGFuY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zY3JvbGxhYmxlKSB7XG4gICAgICAvLyBTY3JvbGxhYmxlIHN0YXR1cyBieSBkZWZhdWx0XG4gICAgICBpZiAodGhpcy5zY3JvbGxhYmxlLnN0YXR1cyA9PT0gdm9pZCAwKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsYWJsZS5zdGF0dXMgPSB0cnVlO1xuICAgICAgfVxuXG5cbiAgICAgIHRoaXMuZnNTY3JvbGxcbiAgICAgICAgLmNvbXBvbmVudCh0aGlzLnNjcm9sbGFibGUubmFtZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMub25EZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChmc1Njcm9sbEluc3RhbmNlOiBGc1Njcm9sbEluc3RhbmNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5mc1Njcm9sbEluc3RhbmNlID0gZnNTY3JvbGxJbnN0YW5jZTtcbiAgICAgICAgICB0aGlzLl9mc1Njcm9sbFN1YnNjcmlwdGlvbiA9IGZzU2Nyb2xsSW5zdGFuY2VcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBsZXQgc3RhcnRMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRoaXMuZGF0YUNvbnRyb2xsZXIub3BlcmF0aW9uO1xuXG4gICAgICAgICAgICAgIC8vIEluaXRpYWwgbG9hZGluZyBpZiBpbml0aWFsRmV0Y2ggZXF1YWxzIGZhbHNlXG4gICAgICAgICAgICAgIGlmICghdGhpcy5pbml0aWFsRmV0Y2hcbiAgICAgICAgICAgICAgICAmJiAhdGhpcy5wYWdpbmcuaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgICAgICAmJiBvcGVyYXRpb24gIT09IEZzTGlzdFN0YXRlLlJlbG9hZFxuICAgICAgICAgICAgICApIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgICAgICAgICAgIHN0YXJ0TG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24gPT09IEZzTGlzdFN0YXRlLlJlbG9hZCB8fFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuRmlsdGVyIHx8XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uID09PSBGc0xpc3RTdGF0ZS5Tb3J0XG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHN0YXJ0TG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWdpbmcuaW5pdGlhbGl6ZWQgJiYgdGhpcy5wYWdpbmcuaGFzTmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBMb2FkaW5nIGlmIGNvbnRlbnQgaGFzIGJlZW4gc2Nyb2xsZWRcbiAgICAgICAgICAgICAgICBzdGFydExvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUNvbnRyb2xsZXIuc2V0T3BlcmF0aW9uKEZzTGlzdFN0YXRlLkxvYWQpO1xuICAgICAgICAgICAgICAgIHRoaXMucGFnaW5nLmdvTmV4dCgpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHN0YXJ0TG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2gkLm5leHQoKTtcbiAgICAgICAgICAgICAgICBmc1Njcm9sbEluc3RhbmNlLmxvYWRpbmcoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5yZW1vdGVSb3dzQ2hhbmdlJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGZzU2Nyb2xsSW5zdGFuY2UubG9hZGVkKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW5kIHdhdGNoIGZpbHRlciBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIGluaXRGaWx0ZXJzKCkge1xuICAgIGlmICh0aGlzLmZpbHRlckNvbmZpZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1lcmdlIHNvcnRpbmcgYW5kIGZha2Ugc29ydGluZyBjb2xzXG4gICAgLy8gRmFrZSBzb3J0aW5nIGNvbHMgaXQncyBjb2xzIHdoaWNoIGRvbid0IHJlcHJlc2VudGVkIGluIHRhYmxlIGNvbHMsIGxpa2UgYWJzdHJhY3QgY29sc1xuICAgIGNvbnN0IHNvcnRWYWx1ZXMgPVxuICAgICAgW1xuICAgICAgICAuLi50aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbnMsXG4gICAgICAgIC4uLnRoaXMuc29ydGluZy5mYWtlU29ydGluZ0NvbHVtbnNcbiAgICAgIF0ucmVkdWNlKChhY2MsIGNvbHVtbikgPT4ge1xuXG4gICAgICAgIGNvbnN0IHNvcnRpbmdJdGVtID0ge1xuICAgICAgICAgIG5hbWU6IGNvbHVtbi50aXRsZSxcbiAgICAgICAgICB2YWx1ZTogY29sdW1uLm5hbWUsXG4gICAgICAgICAgZGVmYXVsdDogdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4gJiYgdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZSA9PT0gY29sdW1uLm5hbWVcbiAgICAgICAgfTtcblxuICAgICAgICBhY2MucHVzaChzb3J0aW5nSXRlbSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBzb3J0Q29uZmlnID0gdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW5cbiAgICAgID8geyB2YWx1ZTogdGhpcy5zb3J0aW5nLnNvcnRpbmdDb2x1bW4ubmFtZSwgZGlyZWN0aW9uOiB0aGlzLnNvcnRpbmcuc29ydGluZ0NvbHVtbi5kaXJlY3Rpb259XG4gICAgICA6IG51bGw7XG5cbiAgICAvLyBDb25maWdcbiAgICB0aGlzLmZpbHRlckNvbmZpZyA9IHtcbiAgICAgIHBlcnNpc3Q6IHRoaXMucGVyc2lzdCxcbiAgICAgIGl0ZW1zOiB0aGlzLmZpbHRlcnMgfHwgW10sXG4gICAgICBzYXZlZEZpbHRlcnM6IHRoaXMuc2F2ZWRGaWx0ZXJzLFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZUZpbHRlcnMsXG4gICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMuYWN0aW9ucyxcbiAgICAgIHF1ZXJ5UGFyYW06IHRoaXMucXVlcnlQYXJhbSxcbiAgICAgIHNvcnRzOiBzb3J0VmFsdWVzLFxuICAgICAgc29ydDogc29ydENvbmZpZyxcbiAgICAgIGNoaXBzOiB0aGlzLmNoaXBzLFxuICAgICAgaW5pdDogdGhpcy5maWx0ZXJJbml0LmJpbmQodGhpcyksXG4gICAgICBjaGFuZ2U6IHRoaXMuZmlsdGVyQ2hhbmdlLmJpbmQodGhpcyksXG4gICAgICByZWxvYWQ6IHRoaXMucmVsb2FkLmJpbmQodGhpcyksXG4gICAgICBzb3J0Q2hhbmdlOiB0aGlzLmZpbHRlclNvcnQuYmluZCh0aGlzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHdoZW4gRmlsdGVyIGhhcyBiZWVuIGluaXRpYWxpemVkXG4gICAqIEBwYXJhbSBmaWx0ZXJzXG4gICAqL1xuICBwcml2YXRlIGZpbHRlckluaXQoZmlsdGVycykge1xuICAgIGlmICh0aGlzLmZpbHRlckluaXRDYikge1xuICAgICAgdGhpcy5maWx0ZXJJbml0Q2IoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzUXVlcnkgPSBmaWx0ZXJzO1xuXG4gICAgdGhpcy5jaGVja1Jlc3RvcmVGaWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB3aGVuIEZpbHRlciBoYXMgYmVlbiBjaGFuZ2VkXG4gICAqIEBwYXJhbSBmaWx0ZXJRdWVyeVxuICAgKiBAcGFyYW0gZmlsdGVyU29ydFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJDaGFuZ2UoZmlsdGVyUXVlcnksIGZpbHRlclNvcnQpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJDaGFuZ2VDYikge1xuICAgICAgdGhpcy5maWx0ZXJDaGFuZ2VDYihmaWx0ZXJRdWVyeSwgZmlsdGVyU29ydCk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzUXVlcnkgPSBmaWx0ZXJRdWVyeTtcblxuICAgIHRoaXMucmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICAgIC8vIFJlc3RvcmUgb3B0aW9uXG4gICAgdGhpcy5jaGVja1Jlc3RvcmVGaWx0ZXIoKTtcblxuICAgIGlmICh0aGlzLnJlc3RvcmUgJiYgdGhpcy5yZXN0b3JlLnJlbG9hZCkge1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRhdGFDb250cm9sbGVyLnNldE9wZXJhdGlvbihGc0xpc3RTdGF0ZS5GaWx0ZXIpO1xuXG4gICAgLy8gUmVzZXQgcGFnaW5nIGZvciByZXF1ZXN0IHdpdGggY29ycmVjdCBvZmZzZXRcbiAgICB0aGlzLnBhZ2luZy5yZXNldFBhZ2luZygpO1xuXG4gICAgaWYgKHRoaXMuZnNTY3JvbGxJbnN0YW5jZSkge1xuICAgICAgdGhpcy5kYXRhQ29udHJvbGxlci5jbGVhclJvd3MoKTtcbiAgICAgIHRoaXMuZnNTY3JvbGxJbnN0YW5jZS5yZWxvYWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSZXN0b3JlRmlsdGVyKCkge1xuICAgIC8vIFJlc3RvcmUgb3B0aW9uXG4gICAgaWYgKHRoaXMucmVzdG9yZSAmJiB0aGlzLmZpbHRlcnNRdWVyeVtTSE9XX0RFTEVURURfRklMVEVSU19LRVldKSB7XG4gICAgICBkZWxldGUgdGhpcy5maWx0ZXJzUXVlcnlbU0hPV19ERUxFVEVEX0ZJTFRFUlNfS0VZXTtcblxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmZpbHRlcnNRdWVyeSwgdGhpcy5yZXN0b3JlLnF1ZXJ5KTtcblxuICAgICAgdGhpcy5yZXN0b3JlTW9kZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsbGJhY2sgd2hlbiBGaWx0ZXIgc29ydCBoYXMgYmVlbiBjaGFuZ2VkXG4gIHByaXZhdGUgZmlsdGVyU29ydChmaWx0ZXJRdWVyeSwgZmlsdGVyU29ydCkge1xuICAgIGlmIChmaWx0ZXJTb3J0KSB7XG4gICAgICB0aGlzLnNvcnRpbmcuc29ydEJ5Q29sdW1uV2l0aE5hbWUoZmlsdGVyU29ydC52YWx1ZSk7XG5cbiAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb24gPSBmaWx0ZXJTb3J0LmRpcmVjdGlvbiA9PT0gJ2FzYycgPyBTb3J0aW5nRGlyZWN0aW9uLmFzYyA6IFNvcnRpbmdEaXJlY3Rpb24uZGVzYztcbiAgICAgIHRoaXMuc29ydGluZy5zb3J0RGlyZWN0aW9uKHNvcnREaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGSVhNRSBuZWVkIHRvIGJlIHJlZmFjdG9yZWQuLi5cbiAgICAgIHRoaXMuc29ydGluZy5zb3J0aW5nQ29sdW1uID0gdm9pZCAwO1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBsZXRlRmV0Y2goW3F1ZXJ5LCByZXNwb25zZV0pIHtcblxuICAgIGlmICghdGhpcy5wYWdpbmcucGFnZSkge1xuICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnBhZ2luZykge1xuICAgICAgY29uc3QgZGlzcGxheWVkID0gKEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGgpIHx8IDA7XG4gICAgICB0aGlzLnBhZ2luZy51cGRhdGVQYWdpbmcoXG4gICAgICAgIHJlc3BvbnNlLnBhZ2luZyxcbiAgICAgICAgZGlzcGxheWVkLFxuICAgICAgICB0aGlzLmRhdGFDb250cm9sbGVyLm9wZXJhdGlvbiA9PT0gRnNMaXN0U3RhdGUuTG9hZE1vcmVcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luZy5lbmFibGVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgJyVjIEZzTGlzdCBXYXJuaW5nICcsXG4gICAgICAgICdjb2xvcjogd2hpdGU7IGJhY2tncm91bmQtY29sb3I6ICNmZmNjMGInLFxuICAgICAgICAnUGFnaW5hdGlvbiBkb2VzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5LiAnICtcbiAgICAgICAgJ1BhZ2luYXRpb24gaXMgZW5hYmxlZCwgYnV0IGh0dHAgcmVzcG9uc2UgZG9lcyBub3QgY29udGFpbiBcInBhZ2luZ1wiIGZpZWxkLiAnICtcbiAgICAgICAgJ1lvdSBoYXZlIHRvIHNldCBcInBhZ2luZzogZmFsc2VcIiBpbiBjb25maWcgb3IgYWRkIFwicGFnaW5nXCIgZmllbGQgdG8gcmVzcG9uc2UuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLy8gbXVzdCBiZSBiZWZvcmUgc2VsZWN0aW9uLCBiZWNhdXNlIHNlbGV0aW9uIHVzZSByZWNvcmRzXG4gICAgdGhpcy5kYXRhQ29udHJvbGxlci5zZXRSb3dzRnJvbVJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgIC8vL1xuXG4gICAgLy8gVXBkYXRlIHNlbGVjdGlvbiBwYXJhbXNcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcblxuICAgICAgaWYgKHRoaXMucGFnaW5nLmVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24ucGFnZUNoYW5nZWQodGhpcy5zY3JvbGxhYmxlKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudCh0aGlzLnBhZ2luZy5nZXRWaXNpYmxlUmVjb3JkcygpKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVG90YWxSZWNvcmRzQ291bnQodGhpcy5wYWdpbmcucmVjb3Jkcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb3VudCA9IHJlc3BvbnNlLnBhZ2luZyAmJiByZXNwb25zZS5wYWdpbmcucmVjb3Jkc1xuICAgICAgICAgIHx8IEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGF0YSkgJiYgcmVzcG9uc2UuZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24udXBkYXRlVmlzaWJsZVJlY29yZHNDb3VudChjb3VudCk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KGNvdW50KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRSb3dzSW50ZXJzZWN0aW9uKHRoaXMuZGF0YUNvbnRyb2xsZXIudmlzaWJsZVJvd3NEYXRhKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbXB0eVN0YXRlPy52YWxpZGF0ZSAmJiB0aGlzLmVtcHR5U3RhdGVUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5lbXB0eVN0YXRlRW5hYmxlZCA9IHRoaXMuZW1wdHlTdGF0ZS52YWxpZGF0ZShxdWVyeSwgY2xvbmVEZWVwKHJlc3BvbnNlLmRhdGEpKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hZnRlckZldGNoRm4pIHtcbiAgICAgIHRoaXMuYWZ0ZXJGZXRjaEZuKHF1ZXJ5LCB0aGlzLmRhdGFDb250cm9sbGVyLnZpc2libGVSb3dzRGF0YSk7XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaENvbXBsZXRlJC5uZXh0KCk7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIGRvIHNvbWUgYWN0aW9ucyBpZiB5b3UgcmVtb3ZlZCBpdGVtIGFuZCBpdGVtIHdhcyBsYXN0IG9uIGhpcyBvd24gcGFnZVxuICAgKlxuICAgKiBFeDogaWYgbGlzdCBoYXMgMyBwYWdlcyBhbmQgb24gdGhpcmQgcGFnZSB5b3UgaGF2ZSBvbmx5IG9uZSBpdGVtLiBBbmQgeW91IGp1c3QgZGVsZXRlZCB0aGlzIGl0ZW0uXG4gICAqIFlvdSBtdXN0IGdvIHRvIHNlY29uZCBwYWdlLCBidXQgaWYgaXQgd2FzIGxhc3QgcGFnZSBhbmQgeW91IGNhbid0IGdvIGJhY2sgLT4ganVzdCByZWxvYWRcbiAgICpcbiAgICogQHBhcmFtIGRlbGV0ZWRDb3VudFxuICAgKi9cbiAgcHJpdmF0ZSBub0RhdGFQYWdpbmF0aW9uVXBkYXRlKGRlbGV0ZWRDb3VudCkge1xuICAgIGlmICghdGhpcy5kYXRhQ29udHJvbGxlci5oYXNEYXRhKSB7XG4gICAgICBpZiAodGhpcy5wYWdpbmcucGFnZSA+IDEpIHtcbiAgICAgICAgdGhpcy5wYWdpbmcuZ29Ub1BhZ2UodGhpcy5wYWdpbmcucGFnZSAtIDEgfHwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucGFnaW5nLnJlY29yZHMgLT0gZGVsZXRlZENvdW50O1xuICAgIHRoaXMucGFnaW5nLnVwZGF0ZVBhZ2luYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmRhdGFDb250cm9sbGVyLmhhc0RhdGEgJiYgdGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVZpc2libGVSZWNvcmRzQ291bnQodGhpcy5kYXRhQ29udHJvbGxlci52aXNpYmxlUm93c0NvdW50KTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnVwZGF0ZVRvdGFsUmVjb3Jkc0NvdW50KHRoaXMucGFnaW5nLnJlY29yZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wb3Jhcnkgc29sdXRpb24sIHdpbGwgZG8gYXV0byBzdWJzY3JpYmUgaWYgd2FzIHJldHVybmVkIE9ic2VydmFibGUuXG4gICAqXG4gICAqIFRPRE86IE1PVkUgVEhJUyBQRUFDRSBPRiBDT0RFIFRPIFNQRUNJQUwgUExBQ0VcbiAgICpcbiAgICogQHBhcmFtIHJlc3RvcmVDbGlja0NhbGxiYWNrXG4gICAqIEBwYXJhbSByb3dcbiAgICovXG4gIHByaXZhdGUgcmVzdG9yZUNsaWNrKHJlc3RvcmVDbGlja0NhbGxiYWNrLCByb3cpIHtcbiAgICBjb25zdCByZXN0b3JlQ2xpY2tSZXN1bHQgPSByZXN0b3JlQ2xpY2tDYWxsYmFjayhyb3cpO1xuXG4gICAgaWYgKHJlc3RvcmVDbGlja1Jlc3VsdCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHJlc3RvcmVDbGlja1Jlc3VsdFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHRoaXMucmVsb2FkKCksXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgICAgICB9KVxuICAgIH1cbiAgfVxufVxuIl19
@@ -44,6 +44,8 @@ let FsRowActionsComponent = class FsRowActionsComponent {
44
44
  }
45
45
  clickOnTrigger(event) {
46
46
  event.stopPropagation();
47
+ this.rowActions
48
+ .forEach((action) => action.updateLabel(this.row.data));
47
49
  }
48
50
  /**
49
51
  * Emit that some row must be removed
@@ -107,4 +109,4 @@ FsRowActionsComponent = __decorate([
107
109
  __metadata("design:paramtypes", [FsPrompt])
108
110
  ], FsRowActionsComponent);
109
111
  export { FsRowActionsComponent };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUWhFLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBNEJoQyxZQUNVLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFwQnRCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBTTdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUdqQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBS2xDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSS9CLENBQUM7SUFFRyxXQUFXLENBQUMsTUFBaUIsRUFBRSxHQUFRLEVBQUUsS0FBVSxFQUFFLE9BQVE7UUFDbEUsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO29CQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQztvQkFDVixJQUFJLEVBQUUsR0FBRyxFQUFFO3dCQUNULElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekQsQ0FBQztvQkFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztpQkFDaEIsQ0FBQyxDQUFBO2FBQ0g7U0FDRjthQUFNO1lBQ0wsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFLO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUs7UUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekQsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsWUFBWSxVQUFVLEVBQUU7WUFDOUQsZ0JBQWdCO2lCQUNiLElBQUksQ0FDSCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztDQUNGLENBQUE7O1lBM0RzQixRQUFROztBQTFCN0I7SUFEQyxLQUFLLEVBQUU7OEJBQ0ksR0FBRztrREFBQztBQUdoQjtJQURDLEtBQUssRUFBRTs7b0RBQ2E7QUFHckI7SUFEQyxLQUFLLEVBQUU7OzBEQUNtQjtBQUczQjtJQURDLEtBQUssRUFBRTs7eURBQzRCO0FBR3BDO0lBREMsS0FBSyxFQUFFOzhCQUNXLFlBQVk7eURBQU07QUFHckM7SUFEQyxLQUFLLEVBQUU7OzZEQUNnQztBQUd4QztJQURDLEtBQUssRUFBRTs7K0RBQ2tDO0FBRzFDO0lBREMsS0FBSyxFQUFFOzhCQUNjLFNBQVM7NERBQUM7QUF4QnJCLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLDB0R0FBdUM7UUFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQztxQ0E4QnFCLFFBQVE7R0E3QmxCLHFCQUFxQixDQXdGakM7U0F4RlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcblxuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdyc7XG5pbXBvcnQgeyBSb3dBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93LWFjdGlvbi5tb2RlbCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtbGlzdC1yb3ctYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzUm93QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvdzogUm93O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dSZW1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWVudVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlubGluZVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RvcmVBY3Rpb246IFJvd0FjdGlvbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZnNQcm9tcHQ6IEZzUHJvbXB0LFxuICApIHt9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGFjdGlvbjogUm93QWN0aW9uLCByb3c6IGFueSwgZXZlbnQ6IGFueSwgbWVudVJlZj8pIHtcbiAgICBpZiAoYWN0aW9uLnJlbW92ZSkge1xuICAgICAgaWYgKHR5cGVvZiBhY3Rpb24ucmVtb3ZlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZnNQcm9tcHQuY29uZmlybSh7XG4gICAgICAgICAgdGl0bGU6IGFjdGlvbi5yZW1vdmUudGl0bGUsXG4gICAgICAgICAgdGVtcGxhdGU6IGFjdGlvbi5yZW1vdmUudGVtcGxhdGUsXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb24uY2xpY2socm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4LCBtZW51UmVmKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgQnkgZm9yIGltcHJvdmUgY2hhbmdlIGRldGVjdGlvblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXgpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY2xpY2tPblRyaWdnZXIoZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0IHRoYXQgc29tZSByb3cgbXVzdCBiZSByZW1vdmVkXG4gICAqIEBwYXJhbSBhY3Rpb25cbiAgICogQHBhcmFtIHJvd1xuICAgKiBAcGFyYW0gZXZlbnRcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwcml2YXRlIHJlbW92ZUFjdGlvbihhY3Rpb24sIHJvdywgZXZlbnQsIGluZGV4KSB7XG4gICAgY29uc3QgcmVtb3ZlT2JzZXJ2YWJsZSA9IGFjdGlvbi5jbGljayhyb3csIGV2ZW50LCBpbmRleCk7XG5cbiAgICBpZiAocmVtb3ZlT2JzZXJ2YWJsZSAmJiByZW1vdmVPYnNlcnZhYmxlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmVtb3ZlT2JzZXJ2YWJsZVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3dSZW1vdmVkLmVtaXQocm93KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBUWhFLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBNEJoQyxZQUNVLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFwQnRCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBTTdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUdqQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBS2xDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSS9CLENBQUM7SUFFRyxXQUFXLENBQUMsTUFBaUIsRUFBRSxHQUFRLEVBQUUsS0FBVSxFQUFFLE9BQVE7UUFDbEUsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2pCLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUNyQixLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLO29CQUMxQixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRO2lCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQztvQkFDVixJQUFJLEVBQUUsR0FBRyxFQUFFO3dCQUNULElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDekQsQ0FBQztvQkFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztpQkFDaEIsQ0FBQyxDQUFBO2FBQ0g7U0FDRjthQUFNO1lBQ0wsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFLO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsVUFBVTthQUNaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLFlBQVksVUFBVSxFQUFFO1lBQzlELGdCQUFnQjtpQkFDYixJQUFJLENBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2lCQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7Q0FDRixDQUFBOztZQTlEc0IsUUFBUTs7QUExQjdCO0lBREMsS0FBSyxFQUFFOzhCQUNJLEdBQUc7a0RBQUM7QUFHaEI7SUFEQyxLQUFLLEVBQUU7O29EQUNhO0FBR3JCO0lBREMsS0FBSyxFQUFFOzswREFDbUI7QUFHM0I7SUFEQyxLQUFLLEVBQUU7O3lEQUM0QjtBQUdwQztJQURDLEtBQUssRUFBRTs4QkFDVyxZQUFZO3lEQUFNO0FBR3JDO0lBREMsS0FBSyxFQUFFOzs2REFDZ0M7QUFHeEM7SUFEQyxLQUFLLEVBQUU7OytEQUNrQztBQUcxQztJQURDLEtBQUssRUFBRTs4QkFDYyxTQUFTOzREQUFDO0FBeEJyQixxQkFBcUI7SUFMakMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHFCQUFxQjtRQUMvQiwwdEdBQXVDO1FBQ3ZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0tBQ2hELENBQUM7cUNBOEJxQixRQUFRO0dBN0JsQixxQkFBcUIsQ0EyRmpDO1NBM0ZZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yb3cnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWxpc3Qtcm93LWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc1Jvd0FjdGlvbnNDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3c6IFJvdztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm93QWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm93UmVtb3ZlZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVSb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmxpbmVSb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0b3JlQWN0aW9uOiBSb3dBY3Rpb247XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2ZzUHJvbXB0OiBGc1Byb21wdCxcbiAgKSB7fVxuXG4gIHB1YmxpYyBhY3Rpb25DbGljayhhY3Rpb246IFJvd0FjdGlvbiwgcm93OiBhbnksIGV2ZW50OiBhbnksIG1lbnVSZWY/KSB7XG4gICAgaWYgKGFjdGlvbi5yZW1vdmUpIHtcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uLnJlbW92ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGFjdGlvbiwgcm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2ZzUHJvbXB0LmNvbmZpcm0oe1xuICAgICAgICAgIHRpdGxlOiBhY3Rpb24ucmVtb3ZlLnRpdGxlLFxuICAgICAgICAgIHRlbXBsYXRlOiBhY3Rpb24ucmVtb3ZlLnRlbXBsYXRlLFxuICAgICAgICB9KS5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQWN0aW9uKGFjdGlvbiwgcm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7fSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYWN0aW9uLmNsaWNrKHJvdy5kYXRhLCBldmVudCwgdGhpcy5pbmRleCwgbWVudVJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrIEJ5IGZvciBpbXByb3ZlIGNoYW5nZSBkZXRlY3Rpb25cbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4KSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgcHVibGljIGNsaWNrT25UcmlnZ2VyKGV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLnJvd0FjdGlvbnNcbiAgICAgIC5mb3JFYWNoKChhY3Rpb24pID0+IGFjdGlvbi51cGRhdGVMYWJlbCh0aGlzLnJvdy5kYXRhKSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCB0aGF0IHNvbWUgcm93IG11c3QgYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gYWN0aW9uXG4gICAqIEBwYXJhbSByb3dcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVBY3Rpb24oYWN0aW9uLCByb3csIGV2ZW50LCBpbmRleCkge1xuICAgIGNvbnN0IHJlbW92ZU9ic2VydmFibGUgPSBhY3Rpb24uY2xpY2socm93LCBldmVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHJlbW92ZU9ic2VydmFibGUgJiYgcmVtb3ZlT2JzZXJ2YWJsZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHJlbW92ZU9ic2VydmFibGVcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm93UmVtb3ZlZC5lbWl0KHJvdyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQsXG4gIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uLFxuICBTZWxlY3Rpb25SZWZcbn0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJ1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ0l0ZW0sXG4gIElGaWx0ZXJDb25maWdEYXRlSXRlbSxcbiAgRnNGaWx0ZXJQZXJzaXN0YW5jZSxcbiAgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZyxcbiAgRnNGaWx0ZXJBY3Rpb24sXG4gIENoYW5nZUZuLFxufSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJTdHJhdGVneSB9IGZyb20gJy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNQYWdpbmcge1xuICBsaW1pdHM/OiBudW1iZXJbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHBhZ2VzPzogbnVtYmVyO1xuICByZWNvcmRzPzogbnVtYmVyO1xuICBzdHJhdGVneT86IFBhZ2luYXRpb25TdHJhdGVneTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb25maWcge1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICB0cmFja0J5Pzogc3RyaW5nO1xuICBzdWJoZWFkaW5nPzogc3RyaW5nO1xuICBzdGF0dXM/OiBib29sZWFuO1xuICBjaGlwcz86IGJvb2xlYW47XG4gIGNvbHVtbj86IEZzTGlzdENvbHVtbkNvbmZpZztcbiAgZmlsdGVySW5wdXQ/OiBib29sZWFuO1xuICBxdWVyeVBhcmFtPzogYm9vbGVhbjtcbiAgcGFnaW5nPzogRnNQYWdpbmcgfCBmYWxzZTtcbiAgbG9hZE1vcmU/OiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW47XG4gIGNvbHVtbkRlZmF1bHRzPzogT2JqZWN0O1xuICBmaWx0ZXJzPzogKElGaWx0ZXJDb25maWdJdGVtIHwgSUZpbHRlckNvbmZpZ0RhdGVJdGVtKVtdO1xuICBzYXZlZEZpbHRlcnM/OiBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnO1xuICBwZXJzaXN0PzogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcm93QWN0aW9ucz86IChGc0xpc3RSb3dBY3Rpb25Hcm91cCB8IEZzTGlzdFJvd0FjdGlvbilbXSA7XG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBGc0xpc3RBY3Rpb25bXTtcbiAgZmV0Y2g/OiBGc0xpc3RGZXRjaEZuO1xuICBzY3JvbGxhYmxlPzogRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyB8IGJvb2xlYW47XG4gIHNlbGVjdGlvbj86IEZzTGlzdFNlbGVjdGlvbkNvbmZpZztcbiAgaW5pdGlhbEZldGNoPzogYm9vbGVhbjtcbiAgcm93RXZlbnRzPzogeyBbbmFtZTogc3RyaW5nXTogKGV2ZW50KSA9PiB2b2lkIH07XG4gIGhlYWRlcj86IEZzTGlzdEhlYWRlckNvbmZpZztcbiAgY2VsbD86IEZzTGlzdENlbGxDb25maWc7XG4gIGZvb3Rlcj86IEZzTGlzdEZvb3RlckNvbmZpZztcbiAgcmVvcmRlcj86IEZzTGlzdFJlb3JkZXJDb25maWc7XG4gIHNvcnRzPzogRnNMaXN0U29ydHNDb25maWdbXTtcbiAgZ3JvdXA/OiBGc0xpc3RHcm91cENvbmZpZztcbiAgc29ydD86IEZzTGlzdFNvcnRDb25maWc7XG4gIHJlc3RvcmU/OiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBub1Jlc3VsdHM/OiBGc0xpc3ROb1Jlc3VsdHNDb25maWdcbiAgZW1wdHlTdGF0ZT86IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIGZpbHRlckluaXQ/OiBDaGFuZ2VGbjtcbiAgZmlsdGVyQ2hhbmdlPzogQ2hhbmdlRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0R3JvdXBDb25maWcge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgaW5pdGlhbEV4cGFuZD86IGJvb2xlYW47XG4gIGdyb3VwQnk/OiAocm93OiBhbnkpID0+IGFueTtcbiAgY29tcGFyZUJ5PzogKHJvdzogYW55KSA9PiBhbnk7XG4gIGFjdGlvbnM/OiAoRnNMaXN0Um93QWN0aW9uR3JvdXAgfCBGc0xpc3RSb3dBY3Rpb24pW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0TG9hZE1vcmVDb25maWcge1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyQ29uZmlnIHtcbiAgc3RhcnQ/OiAoKSA9PiB2b2lkO1xuICBtb3ZlZD86IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBkb25lPzogRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjaztcbiAgbW92ZURyb3A/OiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcbiAgcG9zaXRpb24/OiBSZW9yZGVyUG9zaXRpb247XG4gIHN0cmF0ZWd5PzogUmVvcmRlclN0cmF0ZWd5O1xuICBsYWJlbD86IHN0cmluZztcbiAgbWVudT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrXG4gID0gKHJvd3M6IEZzTGlzdFJlb3JkZXJEYXRhW10pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2tcbiAgPSAocm93czogRnNMaXN0UmVvcmRlckRhdGFbXSkgPT4gdm9pZCB8IE9ic2VydmFibGU8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyRGF0YSB7XG4gIHR5cGU6IFJvd1R5cGUsXG4gIGRhdGE6IGFueSxcbiAgcGFyZW50OiBGc0xpc3RSZW9yZGVyRGF0YSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2sgPVxuICAoZGF0YTogeyByb3cxOiBhbnksIHJvdzI6IGFueSwgZ3JvdXAxOiBhbnksIGdyb3VwMjogYW55fSkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RIZWFkZXJDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENlbGxDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZvb3RlckNvbmZpZyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWxpZ24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0U29ydHNDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFNvcnRDb25maWcge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY3RpdmF0aW9uRG93bj86IG51bWJlcjtcbiAgbG9hZGVyRGlhbWV0cj86IG51bWJlcjtcbiAgc3RhdHVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZXN0b3JlQ29uZmlnIHtcbiAgcXVlcnk/OiBhbnk7XG4gIGZpbHRlcj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGZpbHRlckxhYmVsPzogc3RyaW5nO1xuICBtZW51TGFiZWw/OiBzdHJpbmc7XG4gIGNsaWNrPzogKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGV2ZW50PzogYW55KSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnIHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTZWxlY3Rpb25Db25maWcge1xuICBhY3Rpb25zPzogRnNTZWxlY3Rpb25EaWFsb2dDb25maWdBY3Rpb25bXTtcbiAgYWN0aW9uU2VsZWN0ZWQ/OiAoYWN0aW9uOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWxsU2VsZWN0ZWQ/OiAoKSA9PiB2b2lkO1xuICBjYW5jZWxsZWQ/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3Rpb25DaGFuZ2VkPzogKGRhdGE6IGFueSwgc2VsZWN0ZWRBbGw6IGJvb2xlYW4sIHNlbGVjdGlvblJlZjogU2VsZWN0aW9uUmVmKSA9PlxuICAgIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCBPYnNlcnZhYmxlPEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCB2b2lkPiB8IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24ge1xuICBsb2FkT2Zmc2V0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0QWN0aW9uICA9IHtjdXN0b21pemU/OiBib29sZWFufSAmIEZzRmlsdGVyQWN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkdyb3VwIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHJvd0FjdGlvbnM6IEZzTGlzdFJvd0FjdGlvbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHR5cGU/OiBBY3Rpb25UeXBlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG1lbnU/OiBib29sZWFuO1xuICBjbGljaz86IChyb3csIGV2ZW50LCBpbmRleCkgPT4gdm9pZDtcbiAgbGluaz86IEZzTGlzdFJvd0FjdGlvbkxpbmtGbjtcbiAgc2hvdz86IChyb3csIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW47XG4gIHJlbW92ZT86IHsgdGl0bGU/OiBzdHJpbmc7IHRlbXBsYXRlPzogc3RyaW5nOyB9IHwgYm9vbGVhbjtcbiAgcmVzdG9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uTGlua0ZuIHtcbiAgKHJvdzogRnNMaXN0QWJzdHJhY3RSb3cpOiBGc0xpc3RSb3dBY3Rpb25MaW5rXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uTGluayB7XG4gIGxpbms6IGFueVtdIHwgc3RyaW5nO1xuICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHRhcmdldD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RBYnN0cmFjdFJvdyB7XG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0VHJhY2tCeUZuIHtcbiAgKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGluZGV4PzogbnVtYmVyKTogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGbiB7XG4gIChsaXN0Um93OiBGc0xpc3RBYnN0cmFjdFJvdywgdGFyZ2V0Um93PzogRnNMaXN0QWJzdHJhY3RSb3cpOiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uTG9hZEZuIHtcbiAgKCk6IE9ic2VydmFibGU8RnNMaXN0Q29sdW1uW10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkNoYW5nZUZuIHtcbiAgKGxpc3RDb2x1bW5zOiBGc0xpc3RDb2x1bW5bXSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uVGl0bGVGbiB7XG4gIChuYW1lOiBzdHJpbmcsIGRlZmF1bHRUaXRsZTogc3RyaW5nKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtblRvb2x0aXBGbiB7XG4gIChuYW1lOiBzdHJpbmcsIHNob3c6IGJvb2xlYW4sIGRpc2FibGVkOiBib29sZWFuKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkRpc2FibGVkRm4ge1xuICAobmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5TZWxlY3RlZEZuIHtcbiAgKG5hbWU6IHN0cmluZywgc2hvdzogYm9vbGVhbik6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uQ29uZmlnIHtcbiAgbG9hZD86IEZzTGlzdENvbHVtbkxvYWRGbjtcbiAgY2hhbmdlPzogRnNMaXN0Q29sdW1uQ2hhbmdlRm47XG4gIHRpdGxlPzogRnNMaXN0Q29sdW1uVGl0bGVGbjtcbiAgdG9vbHRpcD86IEZzTGlzdENvbHVtblRvb2x0aXBGbjtcbiAgZGlzYWJsZWQ/OiBGc0xpc3RDb2x1bW5EaXNhYmxlZEZuO1xuICBzZWxlY3RlZD86IEZzTGlzdENvbHVtblNlbGVjdGVkRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uIHtcbiAgbmFtZTogc3RyaW5nO1xuICBzaG93OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEFjdGlvblNlbGVjdGVkIGV4dGVuZHMgRnNTZWxlY3Rpb25BY3Rpb25TZWxlY3RlZCB7XG4gIHNlbGVjdGVkOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RFbXB0eVN0YXRlQ29uZmlnIHtcbiAgdmFsaWRhdGU6IEZzTGlzdFN0YXRlVmFsaWRhdGlvbkZuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZldGNoT3B0aW9ucyB7XG4gIHN0YXRlOiBGc0xpc3RTdGF0ZSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UGVyc2l0YW5jZSA9IEZzRmlsdGVyUGVyc2lzdGFuY2U7XG5leHBvcnQgdHlwZSBGc0xpc3RTdGF0ZVZhbGlkYXRpb25GbiA9IChmaWx0ZXJzOiBhbnksIHJvd3M6IEZzTGlzdEFic3RyYWN0Um93W10pID0+IGJvb2xlYW47XG5leHBvcnQgdHlwZSBGc0xpc3RGZXRjaEZuID1cbiAgKHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBvcHRpb25zOiBGc0xpc3RGZXRjaE9wdGlvbnMpID0+XG4gICAgT2JzZXJ2YWJsZTx7IGRhdGE6IHVua25vd25bXSwgcGFnaW5nPzogRnNQYWdpbmcgfT47XG4iXX0=
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9saXN0LyIsInNvdXJjZXMiOlsiYXBwL2ludGVyZmFjZXMvbGlzdGNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQsXG4gIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uLFxuICBTZWxlY3Rpb25SZWZcbn0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJ1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ0l0ZW0sXG4gIElGaWx0ZXJDb25maWdEYXRlSXRlbSxcbiAgRnNGaWx0ZXJQZXJzaXN0YW5jZSxcbiAgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZyxcbiAgRnNGaWx0ZXJBY3Rpb24sXG4gIENoYW5nZUZuLFxufSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi4vZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJTdHJhdGVneSB9IGZyb20gJy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RTdGF0ZSB9IGZyb20gJy4uL2VudW1zL3N0YXRlLmVudW0nO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNQYWdpbmcge1xuICBsaW1pdHM/OiBudW1iZXJbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIHBhZ2VzPzogbnVtYmVyO1xuICByZWNvcmRzPzogbnVtYmVyO1xuICBzdHJhdGVneT86IFBhZ2luYXRpb25TdHJhdGVneTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb25maWcge1xuICBoZWFkaW5nPzogc3RyaW5nO1xuICB0cmFja0J5Pzogc3RyaW5nO1xuICBzdWJoZWFkaW5nPzogc3RyaW5nO1xuICBzdGF0dXM/OiBib29sZWFuO1xuICBjaGlwcz86IGJvb2xlYW47XG4gIGNvbHVtbj86IEZzTGlzdENvbHVtbkNvbmZpZztcbiAgZmlsdGVySW5wdXQ/OiBib29sZWFuO1xuICBxdWVyeVBhcmFtPzogYm9vbGVhbjtcbiAgcGFnaW5nPzogRnNQYWdpbmcgfCBmYWxzZTtcbiAgbG9hZE1vcmU/OiBGc0xpc3RMb2FkTW9yZUNvbmZpZyB8IGJvb2xlYW47XG4gIGNvbHVtbkRlZmF1bHRzPzogT2JqZWN0O1xuICBmaWx0ZXJzPzogKElGaWx0ZXJDb25maWdJdGVtIHwgSUZpbHRlckNvbmZpZ0RhdGVJdGVtKVtdO1xuICBzYXZlZEZpbHRlcnM/OiBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnO1xuICBwZXJzaXN0PzogRnNMaXN0UGVyc2l0YW5jZTtcbiAgcm93QWN0aW9ucz86IChGc0xpc3RSb3dBY3Rpb25Hcm91cCB8IEZzTGlzdFJvd0FjdGlvbilbXSA7XG4gIHJvd0NsYXNzPzogKHJvdzogYW55KSA9PiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBGc0xpc3RBY3Rpb25bXTtcbiAgZmV0Y2g/OiBGc0xpc3RGZXRjaEZuO1xuICBhZnRlckZldGNoPzogRnNMaXN0QWZ0ZXJGZXRjaEZuO1xuICBzY3JvbGxhYmxlPzogRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyB8IGJvb2xlYW47XG4gIHNlbGVjdGlvbj86IEZzTGlzdFNlbGVjdGlvbkNvbmZpZztcbiAgaW5pdGlhbEZldGNoPzogYm9vbGVhbjtcbiAgcm93RXZlbnRzPzogeyBbbmFtZTogc3RyaW5nXTogKGV2ZW50KSA9PiB2b2lkIH07XG4gIGhlYWRlcj86IEZzTGlzdEhlYWRlckNvbmZpZztcbiAgY2VsbD86IEZzTGlzdENlbGxDb25maWc7XG4gIGZvb3Rlcj86IEZzTGlzdEZvb3RlckNvbmZpZztcbiAgcmVvcmRlcj86IEZzTGlzdFJlb3JkZXJDb25maWc7XG4gIHNvcnRzPzogRnNMaXN0U29ydHNDb25maWdbXTtcbiAgZ3JvdXA/OiBGc0xpc3RHcm91cENvbmZpZztcbiAgc29ydD86IEZzTGlzdFNvcnRDb25maWc7XG4gIHJlc3RvcmU/OiBGc0xpc3RSZXN0b3JlQ29uZmlnO1xuICBub1Jlc3VsdHM/OiBGc0xpc3ROb1Jlc3VsdHNDb25maWdcbiAgZW1wdHlTdGF0ZT86IEZzTGlzdEVtcHR5U3RhdGVDb25maWc7XG4gIGZpbHRlckluaXQ/OiBDaGFuZ2VGbjtcbiAgZmlsdGVyQ2hhbmdlPzogQ2hhbmdlRm47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0R3JvdXBDb25maWcge1xuICBlbmFibGVkPzogYm9vbGVhbjtcbiAgaW5pdGlhbEV4cGFuZD86IGJvb2xlYW47XG4gIGdyb3VwQnk/OiAocm93OiBhbnkpID0+IGFueTtcbiAgY29tcGFyZUJ5PzogKHJvdzogYW55KSA9PiBhbnk7XG4gIGFjdGlvbnM/OiAoRnNMaXN0Um93QWN0aW9uR3JvdXAgfCBGc0xpc3RSb3dBY3Rpb24pW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0TG9hZE1vcmVDb25maWcge1xuICBsYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyQ29uZmlnIHtcbiAgc3RhcnQ/OiAoKSA9PiB2b2lkO1xuICBtb3ZlZD86IEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrO1xuICBkb25lPzogRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjaztcbiAgbW92ZURyb3A/OiBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjaztcbiAgcG9zaXRpb24/OiBSZW9yZGVyUG9zaXRpb247XG4gIHN0cmF0ZWd5PzogUmVvcmRlclN0cmF0ZWd5O1xuICBsYWJlbD86IHN0cmluZztcbiAgbWVudT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJNb3ZlZENhbGxiYWNrXG4gID0gKHJvd3M6IEZzTGlzdFJlb3JkZXJEYXRhW10pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2tcbiAgPSAocm93czogRnNMaXN0UmVvcmRlckRhdGFbXSkgPT4gdm9pZCB8IE9ic2VydmFibGU8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZW9yZGVyRGF0YSB7XG4gIHR5cGU6IFJvd1R5cGUsXG4gIGRhdGE6IGFueSxcbiAgcGFyZW50OiBGc0xpc3RSZW9yZGVyRGF0YSxcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0UmVvcmRlck1vdmVJbkdyb3VwQ2FsbGJhY2sgPVxuICAoZGF0YTogeyByb3cxOiBhbnksIHJvdzI6IGFueSwgZ3JvdXAxOiBhbnksIGdyb3VwMjogYW55fSkgPT4gYm9vbGVhbjtcblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RIZWFkZXJDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENlbGxDb25maWcge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdEZvb3RlckNvbmZpZyB7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgYWxpZ24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0U29ydHNDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRpcmVjdGlvbj86ICdhc2MnIHwgJ2Rlc2MnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFNvcnRDb25maWcge1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTY3JvbGxhYmxlQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhY3RpdmF0aW9uRG93bj86IG51bWJlcjtcbiAgbG9hZGVyRGlhbWV0cj86IG51bWJlcjtcbiAgc3RhdHVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RSZXN0b3JlQ29uZmlnIHtcbiAgcXVlcnk/OiBhbnk7XG4gIGZpbHRlcj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGZpbHRlckxhYmVsPzogc3RyaW5nO1xuICBtZW51TGFiZWw/OiBzdHJpbmc7XG4gIGNsaWNrPzogKHJvdzogRnNMaXN0QWJzdHJhY3RSb3csIGV2ZW50PzogYW55KSA9PiB2b2lkIHwgT2JzZXJ2YWJsZTxhbnk+O1xuICByZWxvYWQ/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnIHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RTZWxlY3Rpb25Db25maWcge1xuICBhY3Rpb25zPzogRnNTZWxlY3Rpb25EaWFsb2dDb25maWdBY3Rpb25bXTtcbiAgYWN0aW9uU2VsZWN0ZWQ/OiAoYWN0aW9uOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4gT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWxsU2VsZWN0ZWQ/OiAoKSA9PiB2b2lkO1xuICBjYW5jZWxsZWQ/OiAoKSA9PiB2b2lkO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3Rpb25DaGFuZ2VkPzogKGRhdGE6IGFueSwgc2VsZWN0ZWRBbGw6IGJvb2xlYW4sIHNlbGVjdGlvblJlZjogU2VsZWN0aW9uUmVmKSA9PlxuICAgIEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCBPYnNlcnZhYmxlPEZzU2VsZWN0aW9uRGlhbG9nQ29uZmlnQWN0aW9uW10gfCB2b2lkPiB8IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24ge1xuICBsb2FkT2Zmc2V0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnNMaXN0QWN0aW9uICA9IHtjdXN0b21pemU/OiBib29sZWFufSAmIEZzRmlsdGVyQWN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkdyb3VwIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIHJvd0FjdGlvbnM6IEZzTGlzdFJvd0FjdGlvbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Um93QWN0aW9uIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBGc0xpc3RSb3dBY3Rpb25MYWJlbEZuO1xuICB0eXBlPzogQWN0aW9uVHlwZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBtZW51PzogYm9vbGVhbjtcbiAgY2xpY2s/OiAocm93LCBldmVudCwgaW5kZXgpID0+IHZvaWQ7XG4gIGxpbms/OiBGc0xpc3RSb3dBY3Rpb25MaW5rRm47XG4gIHNob3c/OiAocm93LCBpbmRleDogbnVtYmVyKSA9PiBib29sZWFuO1xuICByZW1vdmU/OiB7IHRpdGxlPzogc3RyaW5nOyB0ZW1wbGF0ZT86IHN0cmluZzsgfSB8IGJvb2xlYW47XG4gIHJlc3RvcmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxpbmtGbiB7XG4gIChyb3c6IEZzTGlzdEFic3RyYWN0Um93KTogRnNMaXN0Um93QWN0aW9uTGlua1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxhYmVsRm4ge1xuICAocm93OiBGc0xpc3RBYnN0cmFjdFJvdyk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFJvd0FjdGlvbkxpbmsge1xuICBsaW5rOiBhbnlbXSB8IHN0cmluZztcbiAgcXVlcnlQYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB0YXJnZXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0QWJzdHJhY3RSb3cge1xuICBbbmFtZTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdFRyYWNrQnlGbiB7XG4gIChyb3c6IEZzTGlzdEFic3RyYWN0Um93LCBpbmRleD86IG51bWJlcik6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RUcmFja0J5VGFyZ2V0Um93Rm4ge1xuICAobGlzdFJvdzogRnNMaXN0QWJzdHJhY3RSb3csIHRhcmdldFJvdz86IEZzTGlzdEFic3RyYWN0Um93KTogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkxvYWRGbiB7XG4gICgpOiBPYnNlcnZhYmxlPEZzTGlzdENvbHVtbltdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5DaGFuZ2VGbiB7XG4gIChsaXN0Q29sdW1uczogRnNMaXN0Q29sdW1uW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtblRpdGxlRm4ge1xuICAobmFtZTogc3RyaW5nLCBkZWZhdWx0VGl0bGU6IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5Ub29sdGlwRm4ge1xuICAobmFtZTogc3RyaW5nLCBzaG93OiBib29sZWFuLCBkaXNhYmxlZDogYm9vbGVhbik6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RDb2x1bW5EaXNhYmxlZEZuIHtcbiAgKG5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0Q29sdW1uU2VsZWN0ZWRGbiB7XG4gIChuYW1lOiBzdHJpbmcsIHNob3c6IGJvb2xlYW4pOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbkNvbmZpZyB7XG4gIGxvYWQ/OiBGc0xpc3RDb2x1bW5Mb2FkRm47XG4gIGNoYW5nZT86IEZzTGlzdENvbHVtbkNoYW5nZUZuO1xuICB0aXRsZT86IEZzTGlzdENvbHVtblRpdGxlRm47XG4gIHRvb2x0aXA/OiBGc0xpc3RDb2x1bW5Ub29sdGlwRm47XG4gIGRpc2FibGVkPzogRnNMaXN0Q29sdW1uRGlzYWJsZWRGbjtcbiAgc2VsZWN0ZWQ/OiBGc0xpc3RDb2x1bW5TZWxlY3RlZEZuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzTGlzdENvbHVtbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2hvdzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RBY3Rpb25TZWxlY3RlZCBleHRlbmRzIEZzU2VsZWN0aW9uQWN0aW9uU2VsZWN0ZWQge1xuICBzZWxlY3RlZDogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZyB7XG4gIHZhbGlkYXRlOiBGc0xpc3RTdGF0ZVZhbGlkYXRpb25Gbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGc0xpc3RGZXRjaE9wdGlvbnMge1xuICBzdGF0ZTogRnNMaXN0U3RhdGUsXG59XG5cbmV4cG9ydCB0eXBlIEZzTGlzdFBlcnNpdGFuY2UgPSBGc0ZpbHRlclBlcnNpc3RhbmNlO1xuZXhwb3J0IHR5cGUgRnNMaXN0U3RhdGVWYWxpZGF0aW9uRm4gPSAoZmlsdGVyczogYW55LCByb3dzOiBGc0xpc3RBYnN0cmFjdFJvd1tdKSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgRnNMaXN0RmV0Y2hGbiA9XG4gIChxdWVyeTogUmVjb3JkPHN0cmluZywgYW55Piwgb3B0aW9uczogRnNMaXN0RmV0Y2hPcHRpb25zKSA9PlxuICAgIE9ic2VydmFibGU8eyBkYXRhOiB1bmtub3duW10sIHBhZ2luZz86IEZzUGFnaW5nIH0+O1xuXG5leHBvcnQgdHlwZSBGc0xpc3RBZnRlckZldGNoRm4gPVxuICAocXVlcnk6IFJlY29yZDxzdHJpbmcsIGFueT4sIGRhdGE6IHVua25vd25bXSkgPT4gdm9pZDtcbiJdfQ==
@@ -4,6 +4,7 @@ import { ActionType } from '../enums/button-type.enum';
4
4
  export class RowAction extends Model {
5
5
  constructor(config = {}) {
6
6
  super();
7
+ this.label = '';
7
8
  this.classArray = [];
8
9
  this.isShown = true;
9
10
  this._isGroup = false;
@@ -29,6 +30,13 @@ export class RowAction extends Model {
29
30
  return this.clickEvent(row, event, index, rowActionsRef, clickFn);
30
31
  };
31
32
  this._linkFn = value.link;
33
+ if (typeof value.label === 'function') {
34
+ this._labelFn = value.label;
35
+ this.label = '';
36
+ }
37
+ else {
38
+ this.label = value.label;
39
+ }
32
40
  if (this.className) {
33
41
  this.classArray = this.className.split(' ').reduce((acc, elem) => {
34
42
  acc.push(elem);
@@ -63,6 +71,19 @@ export class RowAction extends Model {
63
71
  }
64
72
  }
65
73
  }
74
+ updateLabel(row) {
75
+ if (!this.isShown) {
76
+ return;
77
+ }
78
+ if (this.isGroup) {
79
+ this.rowActions.forEach((action) => {
80
+ action.updateLabel(row);
81
+ });
82
+ }
83
+ else if (this._labelFn) {
84
+ this.label = this._labelFn(row);
85
+ }
86
+ }
66
87
  clickEvent(row, event, index, rowActionsRef, clickFn) {
67
88
  // Stop event propagation for parent
68
89
  event.stopPropagation();
@@ -80,10 +101,6 @@ __decorate([
80
101
  Alias(),
81
102
  __metadata("design:type", String)
82
103
  ], RowAction.prototype, "icon", void 0);
83
- __decorate([
84
- Alias(),
85
- __metadata("design:type", String)
86
- ], RowAction.prototype, "label", void 0);
87
104
  __decorate([
88
105
  Alias(),
89
106
  __metadata("design:type", Boolean)
@@ -112,4 +129,4 @@ __decorate([
112
129
  Alias('rowActions', RowAction),
113
130
  __metadata("design:type", Array)
114
131
  ], RowAction.prototype, "rowActions", void 0);
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2xpc3QvIiwic291cmNlcyI6WyJhcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUl2RCxNQUFNLE9BQU8sU0FBVSxTQUFRLEtBQUs7SUFvQmxDLFlBQVksU0FBYyxFQUFFO1FBQzFCLEtBQUssRUFBRSxDQUFDO1FBUkgsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBSUwsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUt6QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBVTtRQUN6QixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXZCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDOUI7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1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eUI7QUFDeEI7SUFBUixLQUFLLEVBQUU7OEJBQWMsUUFBUTt1Q0FBQztBQUN0QjtJQUFSLEtBQUssRUFBRTs7MENBQXlCO0FBQ0Q7SUFBL0IsS0FBSyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUM7OzZDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWFzLCBNb2RlbCB9IGZyb20gJ3RzbW9kZWxzJztcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tICcuLi9lbnVtcy9idXR0b24tdHlwZS5lbnVtJztcbmltcG9ydCB7IEZzTGlzdFJvd0FjdGlvbkxpbmssIEZzTGlzdFJvd0FjdGlvbkxpbmtGbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5cbmV4cG9ydCBjbGFzcyBSb3dBY3Rpb24gZXh0ZW5kcyBNb2RlbCB7XG5cbiAgQEFsaWFzKCkgcHVibGljIGljb246IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyBtZW51OiBib29sZWFuO1xuICBAQWxpYXMoKSBwdWJsaWMgcmVtb3ZlOiB7IHRpdGxlOiBzdHJpbmc7IHRlbXBsYXRlOiBzdHJpbmc7IH07XG4gIEBBbGlhcygpIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgQEFsaWFzKCkgcHVibGljIHR5cGU6IEFjdGlvblR5cGU7XG4gIEBBbGlhcygpIHB1YmxpYyBzaG93OiBGdW5jdGlvbjtcbiAgQEFsaWFzKCkgcHVibGljIHJlc3RvcmU6IGJvb2xlYW47XG4gIEBBbGlhcygncm93QWN0aW9ucycsIFJvd0FjdGlvbikgcHVibGljIHJvd0FjdGlvbnM6IFJvd0FjdGlvbltdO1xuXG4gIHB1YmxpYyByb3V0ZXJMaW5rOiBGc0xpc3RSb3dBY3Rpb25MaW5rO1xuICBwdWJsaWMgY2xhc3NBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGlzU2hvd24gPSB0cnVlO1xuICBwdWJsaWMgY2xpY2s6IEZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgX2xpbmtGbjogRnNMaXN0Um93QWN0aW9uTGlua0ZuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0dyb3VwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBhbnkgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLl9mcm9tSlNPTihjb25maWcpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yb3dBY3Rpb25zKSkge1xuICAgICAgdGhpcy5faXNHcm91cCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzR3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgX2Zyb21KU09OKHZhbHVlOiBhbnkpIHtcbiAgICBzdXBlci5fZnJvbUpTT04odmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlLnR5cGUgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy50eXBlID0gQWN0aW9uVHlwZS5CYXNpYztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZW51ID09PSB2b2lkIDApIHtcbiAgICAgIHRoaXMubWVudSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gUmUtYXNzaWduIGNsaWNrIGZ1bmN0aW9uXG4gICAgY29uc3QgY2xpY2tGbiA9IHZhbHVlLmNsaWNrO1xuICAgIHRoaXMuY2xpY2sgPSAocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYgPSBudWxsKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jbGlja0V2ZW50KHJvdywgZXZlbnQsIGluZGV4LCByb3dBY3Rpb25zUmVmLCBjbGlja0ZuKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fbGlua0ZuID0gdmFsdWUubGluaztcblxuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5jbGFzc0FycmF5ID0gdGhpcy5jbGFzc05hbWUuc3BsaXQoJyAnKS5yZWR1Y2UoKGFjYywgZWxlbSkgPT4ge1xuICAgICAgICBhY2MucHVzaChlbGVtKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Nob3dTdGF0dXMocm93LCBpbmRleCkge1xuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLmNoZWNrU2hvd1N0YXR1cyhyb3csIGluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzU2hvd24gPSB0aGlzLnJvd0FjdGlvbnMuc29tZSgoYWN0aW9uKSA9PiBhY3Rpb24uaXNTaG93bik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3cpIHtcbiAgICAgIHRoaXMuaXNTaG93biA9IHRoaXMuc2hvdyhyb3csIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGluayhyb3cpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLnVwZGF0ZUxpbmsocm93KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGlua0ZuKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmsgPSB0aGlzLl9saW5rRm4ocm93KTtcblxuICAgICAgaWYgKHRoaXMucm91dGVyTGluayAmJiAhdGhpcy5yb3V0ZXJMaW5rLnRhcmdldCkge1xuICAgICAgICB0aGlzLnJvdXRlckxpbmsudGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsaWNrRXZlbnQocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYsIGNsaWNrRm4pIHtcbiAgICAvLyBTdG9wIGV2ZW50IHByb3BhZ2F0aW9uIGZvciBwYXJlbnRcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIENsb3NlIG1lbnVcbiAgICBpZiAocm93QWN0aW9uc1JlZikge1xuICAgICAgcm93QWN0aW9uc1JlZi5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2xpY2tGbikge1xuICAgICAgLy8gRmlyZSBwYXNzZWQgY2FsbGJhY2tcbiAgICAgIHJldHVybiBjbGlja0ZuKHJvdywgZXZlbnQsIGluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2xpc3QvIiwic291cmNlcyI6WyJhcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUl2RCxNQUFNLE9BQU8sU0FBVSxTQUFRLEtBQUs7SUFxQmxDLFlBQVksU0FBYyxFQUFFO1FBQzFCLEtBQUssRUFBRSxDQUFDO1FBWEgsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUtMLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQVU7UUFDekIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO1FBRUQsMkJBQTJCO1FBQzNCLE1BQU0sT0FBTyxHQUFH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QUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTztRQUMxRCxvQ0FBb0M7UUFDcEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLGFBQWE7UUFDYixJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLHVCQUF1QjtZQUN2QixPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztDQUNGO0FBL0hVO0lBQVIsS0FBSyxFQUFFOzt1Q0FBcUI7QUFDcEI7SUFBUixLQUFLLEVBQUU7O3VDQUFzQjtBQUNyQjtJQUFSLEtBQUssRUFBRTs7eUNBQXFEO0FBQ3BEO0lBQVIsS0FBSyxFQUFFOzs0Q0FBMEI7QUFDekI7SUFBUixLQUFLLEVBQUU7O3VDQUF5QjtBQUN4QjtJQUFSLEtBQUssRUFBRTs4QkFBYyxRQUFRO3VDQUFDO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOzswQ0FBeUI7QUFDRDtJQUEvQixLQUFLLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQzs7NkNBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxpYXMsIE1vZGVsIH0gZnJvbSAndHNtb2RlbHMnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2J1dHRvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRnNMaXN0Um93QWN0aW9uTGFiZWxGbiwgRnNMaXN0Um93QWN0aW9uTGluaywgRnNMaXN0Um93QWN0aW9uTGlua0ZuIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cblxuZXhwb3J0IGNsYXNzIFJvd0FjdGlvbiBleHRlbmRzIE1vZGVsIHtcblxuICBAQWxpYXMoKSBwdWJsaWMgaWNvbjogc3RyaW5nO1xuICBAQWxpYXMoKSBwdWJsaWMgbWVudTogYm9vbGVhbjtcbiAgQEFsaWFzKCkgcHVibGljIHJlbW92ZTogeyB0aXRsZTogc3RyaW5nOyB0ZW1wbGF0ZTogc3RyaW5nOyB9O1xuICBAQWxpYXMoKSBwdWJsaWMgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIEBBbGlhcygpIHB1YmxpYyB0eXBlOiBBY3Rpb25UeXBlO1xuICBAQWxpYXMoKSBwdWJsaWMgc2hvdzogRnVuY3Rpb247XG4gIEBBbGlhcygpIHB1YmxpYyByZXN0b3JlOiBib29sZWFuO1xuICBAQWxpYXMoJ3Jvd0FjdGlvbnMnLCBSb3dBY3Rpb24pIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXTtcblxuICBwdWJsaWMgbGFiZWwgPSAnJztcbiAgcHVibGljIHJvdXRlckxpbms6IEZzTGlzdFJvd0FjdGlvbkxpbms7XG4gIHB1YmxpYyBjbGFzc0FycmF5OiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgaXNTaG93biA9IHRydWU7XG4gIHB1YmxpYyBjbGljazogRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBfbGlua0ZuOiBGc0xpc3RSb3dBY3Rpb25MaW5rRm47XG4gIHByaXZhdGUgX2xhYmVsRm46IEZzTGlzdFJvd0FjdGlvbkxhYmVsRm47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IGFueSA9IHt9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuX2Zyb21KU09OKGNvbmZpZyk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJvd0FjdGlvbnMpKSB7XG4gICAgICB0aGlzLl9pc0dyb3VwID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNHcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNHcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBfZnJvbUpTT04odmFsdWU6IGFueSkge1xuICAgIHN1cGVyLl9mcm9tSlNPTih2YWx1ZSk7XG5cbiAgICBpZiAodmFsdWUudHlwZSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLnR5cGUgPSBBY3Rpb25UeXBlLkJhc2ljO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1lbnUgPT09IHZvaWQgMCkge1xuICAgICAgdGhpcy5tZW51ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZS1hc3NpZ24gY2xpY2sgZnVuY3Rpb25cbiAgICBjb25zdCBjbGlja0ZuID0gdmFsdWUuY2xpY2s7XG4gICAgdGhpcy5jbGljayA9IChyb3csIGV2ZW50LCBpbmRleCwgcm93QWN0aW9uc1JlZiA9IG51bGwpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNsaWNrRXZlbnQocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYsIGNsaWNrRm4pO1xuICAgIH07XG5cbiAgICB0aGlzLl9saW5rRm4gPSB2YWx1ZS5saW5rO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZS5sYWJlbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5fbGFiZWxGbiA9IHZhbHVlLmxhYmVsXG5cbiAgICAgIHRoaXMubGFiZWwgPSAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbCA9IHZhbHVlLmxhYmVsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5jbGFzc0FycmF5ID0gdGhpcy5jbGFzc05hbWUuc3BsaXQoJyAnKS5yZWR1Y2UoKGFjYywgZWxlbSkgPT4ge1xuICAgICAgICBhY2MucHVzaChlbGVtKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Nob3dTdGF0dXMocm93LCBpbmRleCkge1xuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLmNoZWNrU2hvd1N0YXR1cyhyb3csIGluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlzU2hvd24gPSB0aGlzLnJvd0FjdGlvbnMuc29tZSgoYWN0aW9uKSA9PiBhY3Rpb24uaXNTaG93bik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNob3cpIHtcbiAgICAgIHRoaXMuaXNTaG93biA9IHRoaXMuc2hvdyhyb3csIGluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGluayhyb3cpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLnVwZGF0ZUxpbmsocm93KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGlua0ZuKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmsgPSB0aGlzLl9saW5rRm4ocm93KTtcblxuICAgICAgaWYgKHRoaXMucm91dGVyTGluayAmJiAhdGhpcy5yb3V0ZXJMaW5rLnRhcmdldCkge1xuICAgICAgICB0aGlzLnJvdXRlckxpbmsudGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFiZWwocm93KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0dyb3VwKSB7XG4gICAgICB0aGlzLnJvd0FjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGFjdGlvbi51cGRhdGVMYWJlbChyb3cpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9sYWJlbEZuKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5fbGFiZWxGbihyb3cpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xpY2tFdmVudChyb3csIGV2ZW50LCBpbmRleCwgcm93QWN0aW9uc1JlZiwgY2xpY2tGbikge1xuICAgIC8vIFN0b3AgZXZlbnQgcHJvcGFnYXRpb24gZm9yIHBhcmVudFxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgLy8gQ2xvc2UgbWVudVxuICAgIGlmIChyb3dBY3Rpb25zUmVmKSB7XG4gICAgICByb3dBY3Rpb25zUmVmLmNsb3NlTWVudSgpO1xuICAgIH1cblxuICAgIGlmIChjbGlja0ZuKSB7XG4gICAgICAvLyBGaXJlIHBhc3NlZCBjYWxsYmFja1xuICAgICAgcmV0dXJuIGNsaWNrRm4ocm93LCBldmVudCwgaW5kZXgpO1xuICAgIH1cbiAgfVxufVxuIl19