@sabstravtech/obtservices 0.2.2510101540 → 0.2.2510101700

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.
@@ -434,12 +434,12 @@ export class BaseLogonService {
434
434
  return result.asObservable();
435
435
  }
436
436
  setEnvironment() {
437
- this.isScionEnv = window.location.href.includes('sabsenterprise');
438
- this.isLightningEnv = !this.isScionEnv;
439
- if (window.location.href.includes('localhost')) {
440
- this.isScionEnv = this.environment.obt === 'scion';
441
- this.isLightningEnv = !this.isScionEnv;
442
- }
437
+ // this.isScionEnv = window.location.href.includes('sabsenterprise');
438
+ // this.isLightningEnv = !this.isScionEnv;
439
+ // if (window.location.href.includes('localhost')) {
440
+ // this.isScionEnv = this.environment.obt === 'scion';
441
+ // this.isLightningEnv = !this.isScionEnv;
442
+ // }
443
443
  }
444
444
  }
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFrQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZXpELE1BQU0sT0FBTyxnQkFBZ0I7SUFxQjNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCLEVBQzVCLGFBQStDLEVBQy9DLGFBQStDLEVBQy9DLGlCQUFzRDtRQVR0RCxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFDL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLHNCQUFpQixH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QyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDO1lBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVVNFUl9TSUdORURPVVQgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNlTW9kYWxPcGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1vcGVuZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUcmF2ZWxsZXJTZWFyY2hUeXBlcyB9IGZyb20gJy4uL3NlcnZpY2VzL3NlYXJjaC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgVVJMUyB9IGZyb20gJy4vdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VFdmVudE1lc3NlbmFnZXIgfSBmcm9tICcuLi9jbGFzc2VzL2V2ZW50LW1lc3NlbmFnZXInO1xuaW1wb3J0IHsgQmFzZUVudmlyb25tZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9tZW50JztcbmltcG9ydCB7IE1vZGFsVHlwZXMgfSBmcm9tICcuLi9jbGFzc2VzL21vZGFsLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3VzZXIuZGF0YSc7XG5pbXBvcnQgeyBBdXRoSW5mbywgTG9naW5SZXNwb25zZSwgUGFzc3dvcmRDaGFuZ2VSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy9sb2dpbi5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSXVzZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEh0dHBDYWxsU2VydmljZSB9IGZyb20gJy4vaHR0cC1jYWxsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSWVudGVycHJpc2UtYmFza2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhdmVsbGVyIH0gZnJvbSAnLi4vbW9kZWxzL3RyYXZlbGxlci5vYmplY3QnO1xuXG5pbXBvcnQge1xuICBCYXNlR2V0TGF0ZXN0VmVyc2lvbnNGZXRjaGVyLFxuICBHZXRMYXRlc3RWZXJzaW9uc0ZldGNoZXJUeXBlXG59IGZyb20gJy4uL2ZldGNoZXJzL2dldC1sYXRlc3QtdmVyc2lvbnMuZmV0Y2hlcic7XG5cbmV4cG9ydCBjbGFzcyBCYXNlTG9nb25TZXJ2aWNlPEdMVl9GIGV4dGVuZHMgR2V0TGF0ZXN0VmVyc2lvbnNGZXRjaGVyVHlwZT4ge1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGlzTG9nZ2VkSW4gPSBmYWxzZTtcbiAgcmVkaXJlY3RVcmwgPSAnJztcbiAgYXV0aEluZm86IEF1dGhJbmZvO1xuICBsb2dpblJlc3BvbnNlOiBMb2dpblJlc3BvbnNlO1xuICB0aW1lb3V0U3Vic2NyaXB0aW9uOiBudW1iZXI7XG4gIHJlZnJlc2hQcm9taXNlOiBQcm9taXNlPGJvb2xlYW4+ID0gbnVsbDtcbiAgYmVjb21pbmdVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIHVuQmVjb21pbmdVc2VyOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yX21lc3NhZ2U6IHN0cmluZztcbiAgaXNDaGVja2luZ1ZlcnNpb24gPSBmYWxzZTtcbiAgX3ZlcnNpb246IHN0cmluZyA9IG51bGw7XG4gIGlzU2Npb25FbnY6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNMaWdodG5pbmdFbnY6IGJvb2xlYW4gPSB0cnVlO1xuICBnZXQgb2J0VmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fdmVyc2lvbjtcbiAgfVxuICBzZXQgb2J0VmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92ZXJzaW9uID0gdmVyc2lvbjtcbiAgfVxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogQmFzZU1vZGFsT3BlbmVyU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEFic3RyYWN0SHR0cENhbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBldmVudE1lc3NlbmFnZXI6IEJhc2VFdmVudE1lc3NlbmFnZXIsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IEJhc2VFbnZpcm9ubWVudCxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBnZXRMYXRlc3RWZXJzaW9uczogQmFzZUdldExhdGVzdFZlcnNpb25zRmV0Y2hlcjxHTFZfRj5cbiAgKSB7XG4gICAgdGhpcy5zZXRFbnZpcm9ubWVudCgpO1xuICB9XG5cbiAgY2hlY2tMb2dpbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgfVxuXG4gIHJlZnJlc2hUb2tlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnJlZnJlc2hQcm9taXNlID1cbiAgICAgIHRoaXMucmVmcmVzaFByb21pc2UgfHxcbiAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQsIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhclJlZnJlc2goKTtcbiAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgLmZvcm1FbmNvZGVkUG9zdE5vRXJyb3JIYW5kbGluZyhVUkxTLlJlZnJlc2gsIHt9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2UoZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9Mb2dvdXQocmVzb2x2ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja1ZlcnNpb25VcGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVmcmVzaCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmF1dG9Mb2dvdXQocmVzb2x2ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgICAgIC50aGVuKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSA9IG51bGw7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFByb21pc2U7XG4gIH1cblxuICBwcml2YXRlIGF1dG9Mb2dvdXQocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLmlzTG9nZ2VkSW4oKSkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLnJvdXRlci51cmwgIT09ICcvJyAmJlxuICAgICAgICAhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsb2dvbicpICYmXG4gICAgICAgICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3Jlc2V0LXBhc3N3b3JkJykgJiYgXG4gICAgICAgICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3Nzby1sb2dvdXQnKSBcbiAgICAgICkge1xuICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMucm91dGVyLnVybCAhPT0gJy8nICYmXG4gICAgICAhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsb2dvbicpICYmXG4gICAgICAhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdyZXNldC1wYXNzd29yZCcpICYmIFxuICAgICAgIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnc3NvLWxvZ291dCcpXG4gICAgKSB7XG4gICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgaWYgKCF0aGlzLnVzZXJTZXJ2aWNlLnVzZXJJc1NTTygpKSB7XG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXG4gICAgICAgIC5vcGVuKE1vZGFsVHlwZXMuQXV0b0xvZ2dpbmdPdXRDb21wb25lbnQsIHsgY2VudGVyZWQ6IHRydWUsIGJhY2tkcm9wOiAnc3RhdGljJyB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyUmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKTtcbiAgICAgIHRoaXMudGltZW91dFN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWZyZXNoKCkge1xuICAgIHRoaXMudGltZW91dFN1YnNjcmlwdGlvbiA9IHdpbmRvdy5zZXRUaW1lb3V0KFxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW4uYmluZCh0aGlzKSxcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0aFJlZnJlc2hUaW1lb3V0ICogMTAwMFxuICAgICk7XG4gIH1cblxuICBiZWNvbWVVc2VyKHVzZXJuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmJlY29taW5nVXNlciA9IHRydWU7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRCb2JvKG51bGwpOyAvLyBpc24ndCBib2JvIE1yIEJ1cm5zJyB0ZWRkeSBiZWFyP1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XG5cbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAucG9zdChVUkxTLkJFQ09NRV9VU0VSLCB7IHVzZXJuYW1lIH0pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlY29taW5nVXNlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnJlc2V0QmFza2V0cygpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzZXRTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0U2VydmljZS5yZXNldCgpO1xuXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ21haW4nXSk7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5iZWNvbWluZ1VzZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgZW5kQmVjb21lVXNlclNlc3Npb24oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy51bkJlY29taW5nVXNlciA9IHRydWU7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRCb2JvKG51bGwpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkKSA9PiB7XG4gICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzZXQoKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXNldFNlYXJjaFBhcmFtcygpO1xuICAgICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAucG9zdChVUkxTLkVORF9CRUNPTUVfVVNFUiwge30pXG4gICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhc2tldFNlcnZpY2UucmVzZXRCYXNrZXRzKCk7XG4gICAgICAgICAgICB0aGlzLnVuQmVjb21pbmdVc2VyID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0VXNlcihkYXRhLmp3dE9iamVjdCk7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy51bkJlY29taW5nVXNlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBhZ2Fpbj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFVzZXJEYXRhPiB7XG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XG5cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcbiAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXNldFNlYXJjaFBhcmFtcygpO1xuICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0Qm9ibyhudWxsKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZm9ybUVuY29kZWRQb3N0Tm9FcnJvckhhbmRsaW5nKFVSTFMuQWNjZXNzVG9rZW4sIHtcbiAgICAgICAgdXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgodmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKHZhbHVlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKlxuICAgIEBkZXNjIC0gdGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIGxvZ2luIGVycm9yIGZvciB0aGUgcmVxdWVzdCBvciBub3QsIHNpbmNlIHRoaXMgaXMgYSBwb3RlbnRpYWwgZXJyb3IgZm9yIGV2ZXJ5IGNhbGxcbiAgKiovXG4gIGhhbmRsZVJlc3BvbnNlKGRhdGE6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLmp3dCkge1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyKGRhdGEuand0T2JqZWN0KTtcbiAgICAgIHRoaXMuaXNMb2dnZWRJbiA9IHRydWU7XG4gICAgICBkZWxldGUgZGF0YS5qd3Q7XG4gICAgICBkZWxldGUgZGF0YS5qd3RPYmplY3Q7XG4gICAgICAvLyBoZXJlIHdlIGNhbiBkbyB0aGUgYm9ibyBsb2dpY1xuICAgICAgY29uc3QgYm9ibzpzdHJpbmcgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25JdGVtKCdib2JvJyk7XG4gICAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuYm9ibyAmJiBib2JvKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmF2ZWxsZXJzKGJvYm8sIFRyYXZlbGxlclNlYXJjaFR5cGVzLmVtYWlsKS5zdWJzY3JpYmUoKGRhdGE6VHJhdmVsbGVyW10pPT57XG4gICAgICAgICAgY29uc3QgbWF0Y2hlZFVzZXIgPSBkYXRhLmZpbmQodXNlcj0+dXNlci5lbWFpbCA9PT0gYm9ibylcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEJvYm8obWF0Y2hlZFVzZXIpO1xuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcblxuICAgIGNvbnN0IHNzb1VzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJJc1NTTygpO1xuXG4gICAgY29uc29sZS5sb2coYCsrKyBVc2VyIGlzIFNTTyBvbmx5OiAke3Nzb1VzZXJ9ICsrK2ApO1xuXG4gICAgaWYgKHRoaXMuaXNMb2dnZWRJbikge1xuICAgICAgdGhpcy5jbGVhclJlZnJlc2goKTtcbiAgICAgIHRoaXMuaXNMb2dnZWRJbiA9IGZhbHNlO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRCb2JvKG51bGwsICF0aGlzLmlzTG9nZ2VkSW4pO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlbW92ZUFsbFRyYXZlbGxlcnMoKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXNldFNlYXJjaFBhcmFtcygpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XG5cbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJTZXNzaW9uRGF0YSgpO1xuICAgICAgdGhpcy5odHRwLnBvc3QoVVJMUy5MT0dPVVRfVVJMKS5zdWJzY3JpYmUoXG4gICAgICAgIGRhdGEgPT4ge1xuICAgICAgICAgIGlmICghZGF0YS5Mb2dvdXRTdWNjZXNzKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHF1b3RlbWFya1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFwiWW91J3JlIG5vdCBsb2dnZWQgaW4sIGNhbm5vdCBsb2cgb3V0LlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50TWVzc2VuYWdlci5lbWl0KFVTRVJfU0lHTkVET1VULCB7fSk7XG5cbiAgICAgICAgICBpZiAodGhpcy51c2VyU2VydmljZS5pc1VzZXJGYXZvcml0ZVNldChVc2VyRmF2b3J1cml0ZS5TU09fbm9fcGFzc3dvcmQpKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2xvZ091dERpZ2l0c1VzZXInXSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChzc29Vc2VyKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Nzby1sb2dvdXQnXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nb24nXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoc3NvVXNlcikge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydzc28tbG9nb3V0J10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2xvZ29uJ10pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyTG9naW5EYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XG4gICAgdGhpcy5pc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRCb2JvKG51bGwsICF0aGlzLmlzTG9nZ2VkSW4pO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZW1vdmVBbGxUcmF2ZWxsZXJzKCk7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc2V0U2VhcmNoUGFyYW1zKCk7XG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XG5cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcbiAgfVxuXG4gIHJlc2V0UGFzc3dvcmQoXG4gICAgcGFzc3dvcmRSZXNldFRva2VuOiBzdHJpbmcsXG4gICAgbmV3UGFzc3dvcmQ6IHN0cmluZyxcbiAgICBzb3VyY2U6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFBhc3N3b3JkQ2hhbmdlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmZvcm1FbmNvZGVkUG9zdChVUkxTLlJFU0VUX1BBU1NXT1JELCB7XG4gICAgICBwYXNzd29yZFJlc2V0VG9rZW4sXG4gICAgICBuZXdQYXNzd29yZCxcbiAgICAgIHNvdXJjZVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcmVzZXRQYXNzd29yZE5vVG9rZW4obmV3UGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmZvcm1FbmNvZGVkUG9zdChVUkxTLlJFU0VUX1BBU1NXT1JEX05PX1RPS0VOLCB7XG4gICAgICAgIHBhc3N3b3JkOiBuZXdQYXNzd29yZFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZVBhc3N3b3JkKG5ld1Bhc3M6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucmVzZXRQYXNzd29yZE5vVG9rZW4obmV3UGFzcylcbiAgICAgIC50aGVuKG5ld0pXVCA9PiB7XG4gICAgICAgIHRoaXMuc2V0UmVmcmVzaCgpO1xuICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKG5ld0pXVCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3JcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICBAZGVzYyAtIGFjdGF1YWxseSBjYWxsIHRoZSBiYWNrZW5kIHBlcmwgZm9yIHJlY292ZXIgcGFzc1xuICAqKi9cbiAgcmVjb3ZlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZm9ybUVuY29kZWRQb3N0KFxuICAgICAgVVJMUy5SRUNPVkVSX1BBU1NXT1JEX1VSTCxcbiAgICAgIHtcbiAgICAgICAgdXNlcm5hbWU6IGAke3VzZXJuYW1lfWBcbiAgICAgIH0sXG4gICAgICAndGV4dCdcbiAgICApO1xuICB9XG5cbiAgLypcbiAgICpcdEBkZXNjIC0gZXJyb3IgaGFuZGxpbmcsIG9wZW5zIGEgbW9kYWwgd2l0aCB0aGUgcGFzc2VkIGluIGVycm9yIG1lc3NhZ2VcbiAgICoqL1xuICBoYW5kbGVFcnJvcihlcnJvcjogc3RyaW5nKSB7XG4gICAgLy8gdGhpcy51c2VyU2VydmljZS5iZWNvbWluZ1VzZXIgPSBmYWxzZTtcbiAgICBjb25zdCBtb2RhbFZhbHVlcyA9IHtcbiAgICAgIGVycm9yXG4gICAgfTtcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKE1vZGFsVHlwZXMuTW9kYWxFcnJvckNvbXBvbmVudCwgeyBiYWNrZHJvcDogJ3N0YXRpYycgfSwgbW9kYWxWYWx1ZXMpO1xuICB9XG5cbiAgaXNPblN0YWdpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhWyd0ZXN0J10uZmluZCgodXJsOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXModXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGlzT25EZXYoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhWydsb2NhbGhvc3QnLCAnMTI3LjAuMC4xJywgJ2RldiddLmZpbmQoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLmluY2x1ZGVzKHVybCk7XG4gICAgfSk7XG4gIH1cblxuICBjaGVja1ZlcnNpb25VcGRhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgaXNQcm9kID0gIXRoaXMuaXNPbkRldigpICYmICF0aGlzLmlzT25TdGFnaW5nKCk7XG4gICAgaWYgKCF0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uKSB7XG4gICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gdHJ1ZTtcbiAgICAgIGNvbnN0IG9sZFZlcnNpb246IHN0cmluZyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW0oJ3ZlcnNpb24nKTtcbiAgICAgIGlmICghb2xkVmVyc2lvbikge1xuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKCd2ZXJzaW9uJywgdGhpcy5vYnRWZXJzaW9uKTtcbiAgICAgICAgdGhpcy5pc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChpc1Byb2QpIHtcbiAgICAgICAgLy8gISBjb21tZW50IG91dCBzbyBkZXYgdmVyc2lvbiBkb2Vzbid0IGJyZWFrIC0gd2UgbmVlZCB0aGlzIHdvcmtpbmcgYmVmb3JlIG5leHQgcHJvcGVyIHJlbGVhc2VcbiAgICAgICAgdGhpcy5nZXRMYXRlc3RWZXJzaW9ucy5mZXRjaExpc3QoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgICAgLy8gdGhpcyBpcyB3aGF0IHdlIGNhcmUgYWJvdXRcbiAgICAgICAgICBjb25zdCBuZXdWZXJzaW9uID0gZGF0YS5maW5kKFxuICAgICAgICAgICAgdmVyc2lvbiA9PiB2ZXJzaW9uLm9idE5hbWUgPT09IHRoaXMuZW52aXJvbm1lbnQub2J0XG4gICAgICAgICAgKT8udmVyc2lvbjtcbiAgICAgICAgICAvLyBpZiAuc3BsaXQoJy4nKSBnaXZlcyB1cyBtb3JlIHRoZW4gbGVuZ3RoID09PSAxIHRoZW4ganVzdCByZWZyZXNoIGFuZCB0aGUgb2J0IHNldFxuICAgICAgICAgIGNvbnN0IHNwbGl0TmV3VmVyc2lvbiA9IG5ld1ZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICBjb25zdCBzcGxpdE9sZFZlcnNpb24gPSBvbGRWZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgICAgICAgaWYgKHNwbGl0TmV3VmVyc2lvbi5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIC8vIHdlIGFzc3VtZSB3ZSBvbmx5IGhhdmUgdGhlIGhhc2hcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRIYXNoID1cbiAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdsaWdodG5pbmcnID8gc3BsaXRPbGRWZXJzaW9uWzNdIDogc3BsaXRPbGRWZXJzaW9uWzJdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRIYXNoICE9PSBuZXdWZXJzaW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5OZXdWZXJzaW9uLCB7IGJhY2tkcm9wOiAnc3RhdGljJyB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0U2Vzc2lvbkl0ZW0oJ3ZlcnNpb24nLCB0aGlzLm9idFZlcnNpb24pO1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmVsZWFzZU51bWJlciA9XG4gICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQub2J0ID09PSAnbGlnaHRuaW5nJyA/ICtzcGxpdE9sZFZlcnNpb25bMV0gOiArc3BsaXRPbGRWZXJzaW9uWzBdO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZXJhdGlvbiA9XG4gICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQub2J0ID09PSAnbGlnaHRuaW5nJyA/ICtzcGxpdE9sZFZlcnNpb25bMl0gOiArc3BsaXRPbGRWZXJzaW9uWzFdO1xuICAgICAgICAgICAgY29uc3QgbmV3UmVsZWFzZU51bWJlciA9XG4gICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnQub2J0ID09PSAnbGlnaHRuaW5nJyA/ICtzcGxpdE5ld1ZlcnNpb25bMV0gOiArc3BsaXROZXdWZXJzaW9uWzBdO1xuICAgICAgICAgICAgY29uc3QgbmV3SXRlcmF0aW9uID1cbiAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdsaWdodG5pbmcnID8gK3NwbGl0TmV3VmVyc2lvblsyXSA6ICtzcGxpdE5ld1ZlcnNpb25bMV07XG4gICAgICAgICAgICAvLyBvYnZpb3VzbHkgaWYgdGhleSBhcmUgdGhlIHNhbWUuLi4uZG8gbm90aGluZ1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBuZXdWZXJzaW9uICYmXG4gICAgICAgICAgICAgIG9sZFZlcnNpb24gJiZcbiAgICAgICAgICAgICAgKG9sZFZlcnNpb24gPT09ICdkZXZlbG9wbWVudCcgfHwgbmV3VmVyc2lvbiA9PT0gb2xkVmVyc2lvbilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcgdGhpcyBpcyBsb2NhbCBvciB2ZXJzaW9ucyBtYXRjaFxuICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKCd2ZXJzaW9uJywgdGhpcy5vYnRWZXJzaW9uKTtcbiAgICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG5ld1ZlcnNpb24gJiZcbiAgICAgICAgICAgICAgICBvbGRWZXJzaW9uICYmXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRSZWxlYXNlTnVtYmVyIDwgbmV3UmVsZWFzZU51bWJlciB8fFxuICAgICAgICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbiA8IG5ld0l0ZXJhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgKG9sZFZlcnNpb24gIT09IG5ld1ZlcnNpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlbGVhc2VOdW1iZXIgPT09IG5ld1JlbGVhc2VOdW1iZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbiA9PT0gbmV3SXRlcmF0aW9uKSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vYnRWZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKE1vZGFsVHlwZXMuTmV3VmVyc2lvbiwgeyBiYWNrZHJvcDogJ3N0YXRpYycgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRTZXNzaW9uSXRlbSgndmVyc2lvbicsIHRoaXMub2J0VmVyc2lvbik7XG4gICAgICAgICAgICAgICAgICAvLyB0aGUgaW50ZXJuZXQgc3VnZ2VzdHMgdGhpcyBpcyBzbGlnaHR5IG1vcmUgcmJ1c3RcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOyAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNDaGVja2luZ1ZlcnNpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuUmVzZXRQYXNzd29yZERpYWxvZyh0b2tlbjogc3RyaW5nLCBzb3VyY2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlXG4gICAgICAub3BlbihcbiAgICAgICAgTW9kYWxUeXBlcy5Nb2RhbFBhc3N3b3JkUmVzZXRDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogJ3Jlc2V0LXBhc3N3b3JkLWRpYWxvZy1jb250YWluZXInLFxuICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICB0b3A6ICc1MHZoJyxcbiAgICAgICAgICAgIGxlZnQ6ICc1MHZ3J1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRva2VuOiB0b2tlbixcbiAgICAgICAgICBzb3VyY2VcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRoZW4oKHJlc3VsdDogeyBqd3Q6IHN0cmluZzsgc291cmNlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zb3VyY2UgPT09ICdBUFAnKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgICBNb2RhbFR5cGVzLkluZm9Nb2RhbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgeyBjZW50ZXJlZDogdHJ1ZSwgYmFja2Ryb3A6ICdzdGF0aWMnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpbmZvOiAnWW91ciBwYXNzd29yZCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVzZXQuIFBsZWFzZSByZXR1cm4gdG8gTGlnaHRuaW5nIEVNRUEgYXBwIHRvIHNpZ24gaW4gdG8geW91ciBhY2NvdW50LicsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQYXNzd29yZCBSZXNldCcsXG4gICAgICAgICAgICAgICAgc2hvd0ljb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJ1dHRvblRleHQ6ICdPaydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihcbiAgICAgICAgICAgICAgTW9kYWxUeXBlcy5JbmZvTW9kYWxDb21wb25lbnQsXG4gICAgICAgICAgICAgIHsgY2VudGVyZWQ6IHRydWUsIGJhY2tkcm9wOiAnc3RhdGljJyB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaW5mbzogJ1Bhc3N3b3JkIGNoYW5nZWQgc3VjY2Vzc2Z1bGx5LicsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQYXNzd29yZCBSZXNldCcsXG4gICAgICAgICAgICAgICAgc2hvd0ljb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJ1dHRvblRleHQ6ICdPaydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcmVzZXRQYXNzd29yZERpYWxvZyhcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG5ld1Bhc3N3b3JkOiBzdHJpbmcsXG4gICAgc291cmNlOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx7IGp3dDogc3RyaW5nOyBzb3VyY2U6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFN1YmplY3Q8eyBqd3Q6IHN0cmluZzsgc291cmNlOiBzdHJpbmcgfT4oKTtcbiAgICB0aGlzLnJlc2V0UGFzc3dvcmQodG9rZW4sIG5ld1Bhc3N3b3JkLCBzb3VyY2UpLnN1YnNjcmliZShcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRTZXNzaW9uSXRlbSgncmVmcmVzaFRva2VuJywgZGF0YVsnand0J10pO1xuICAgICAgICAgIGlmIChkYXRhPy5zb3VyY2UgPT09ICdXRUInKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ21haW4nXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdC5uZXh0KGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBjb25zdCB7IGVycm9yOiBlcnJvck1zZywgc3RhdHVzIH0gPSBlcnJvcjtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgICB0aGlzLmVycm9yX21lc3NhZ2UgPSBgUGFzc3dvcmQgcmVzZXQgdW5zdWNjZXNzZnVsIGR1ZSB0byBmYWlsaW5nIHBhc3N3b3JkIHBvbGljeTogJHtlcnJvck1zZ31gO1xuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDApIHtcbiAgICAgICAgICBpZiAoZXJyb3JNc2cpIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICAgIE1vZGFsVHlwZXMuTW9kYWxFcnJvckNvbXBvbmVudCxcbiAgICAgICAgICAgICAgeyBjZW50ZXJlZDogdHJ1ZSwgYmFja2Ryb3A6ICdzdGF0aWMnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JNc2dcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0Lm5leHQobnVsbCk7XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0RW52aXJvbm1lbnQoKSB7XG4gICAgdGhpcy5pc1NjaW9uRW52ID0gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ3NhYnNlbnRlcnByaXNlJyk7XG4gICAgdGhpcy5pc0xpZ2h0bmluZ0VudiA9ICF0aGlzLmlzU2Npb25FbnY7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSkge1xuICAgICAgdGhpcy5pc1NjaW9uRW52ID0gdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdzY2lvbic7XG4gICAgICB0aGlzLmlzTGlnaHRuaW5nRW52ID0gIXRoaXMuaXNTY2lvbkVudjtcbiAgICB9XG4gIH1cbn1cblxuIl19
445
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFrQixPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBZXpELE1BQU0sT0FBTyxnQkFBZ0I7SUFxQjNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCLEVBQzVCLGFBQStDLEVBQy9DLGFBQStDLEVBQy9DLGlCQUFzRDtRQVR0RCxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFDL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLHNCQUFpQixH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QUFvRDtRQUNwRCx3REFBd0Q7UUFDeEQsNENBQTRDO1FBQzVDLElBQUk7SUFDTixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVU0VSX1NJR05FRE9VVCB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UgfSBmcm9tICcuL21vZGFsLW9wZW5lci5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYXZlbGxlclNlYXJjaFR5cGVzIH0gZnJvbSAnLi4vc2VydmljZXMvc2VhcmNoLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBVUkxTIH0gZnJvbSAnLi91cmwuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRmF2b3J1cml0ZSB9IGZyb20gJy4uL2NsYXNzZXMvdXNlci1mYXZvdXJpdGUuZW51bSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZUV2ZW50TWVzc2VuYWdlciB9IGZyb20gJy4uL2NsYXNzZXMvZXZlbnQtbWVzc2VuYWdlcic7XG5pbXBvcnQgeyBCYXNlRW52aXJvbm1lbnQgfSBmcm9tICcuLi9jbGFzc2VzL2Vudmlyb21lbnQnO1xuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBVc2VyRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdXNlci5kYXRhJztcbmltcG9ydCB7IEF1dGhJbmZvLCBMb2dpblJlc3BvbnNlLCBQYXNzd29yZENoYW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL2xvZ2luLm1vZGVsJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0SHR0cENhbGxTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLWNhbGwuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICcuLi90eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBFbnRlcnByaXNlU2VhcmNoU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSXNlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBUcmF2ZWxsZXIgfSBmcm9tICcuLi9tb2RlbHMvdHJhdmVsbGVyLm9iamVjdCc7XG5cbmltcG9ydCB7XG4gIEJhc2VHZXRMYXRlc3RWZXJzaW9uc0ZldGNoZXIsXG4gIEdldExhdGVzdFZlcnNpb25zRmV0Y2hlclR5cGVcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvZ2V0LWxhdGVzdC12ZXJzaW9ucy5mZXRjaGVyJztcblxuZXhwb3J0IGNsYXNzIEJhc2VMb2dvblNlcnZpY2U8R0xWX0YgZXh0ZW5kcyBHZXRMYXRlc3RWZXJzaW9uc0ZldGNoZXJUeXBlPiB7XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgaXNMb2dnZWRJbiA9IGZhbHNlO1xuICByZWRpcmVjdFVybCA9ICcnO1xuICBhdXRoSW5mbzogQXV0aEluZm87XG4gIGxvZ2luUmVzcG9uc2U6IExvZ2luUmVzcG9uc2U7XG4gIHRpbWVvdXRTdWJzY3JpcHRpb246IG51bWJlcjtcbiAgcmVmcmVzaFByb21pc2U6IFByb21pc2U8Ym9vbGVhbj4gPSBudWxsO1xuICBiZWNvbWluZ1VzZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdW5CZWNvbWluZ1VzZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JfbWVzc2FnZTogc3RyaW5nO1xuICBpc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICBfdmVyc2lvbjogc3RyaW5nID0gbnVsbDtcbiAgaXNTY2lvbkVudjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0xpZ2h0bmluZ0VudjogYm9vbGVhbiA9IHRydWU7XG4gIGdldCBvYnRWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJzaW9uO1xuICB9XG4gIHNldCBvYnRWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHRoaXMuX3ZlcnNpb24gPSB2ZXJzaW9uO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCYXNlTW9kYWxPcGVuZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGV2ZW50TWVzc2VuYWdlcjogQmFzZUV2ZW50TWVzc2VuYWdlcixcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50LFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBiYXNrZXRTZXJ2aWNlOiBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGdldExhdGVzdFZlcnNpb25zOiBCYXNlR2V0TGF0ZXN0VmVyc2lvbnNGZXRjaGVyPEdMVl9GPlxuICApIHtcbiAgICB0aGlzLnNldEVudmlyb25tZW50KCk7XG4gIH1cblxuICBjaGVja0xvZ2luKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICB9XG5cbiAgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMucmVmcmVzaFByb21pc2UgPVxuICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSB8fFxuICAgICAgbmV3IFByb21pc2UoKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCwgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAuZm9ybUVuY29kZWRQb3N0Tm9FcnJvckhhbmRsaW5nKFVSTFMuUmVmcmVzaCwge30pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZShkYXRhKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b0xvZ291dChyZXNvbHZlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrVmVyc2lvblVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYXV0b0xvZ291dChyZXNvbHZlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmcmVzaFByb21pc2UgPSBudWxsO1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoUHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0xvZ291dChyZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UuaXNMb2dnZWRJbigpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucm91dGVyLnVybCAhPT0gJy8nICYmXG4gICAgICAgICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvZ29uJykgJiZcbiAgICAgICAgIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygncmVzZXQtcGFzc3dvcmQnKSAmJiBcbiAgICAgICAgIXRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnc3NvLWxvZ291dCcpIFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5yb3V0ZXIudXJsICE9PSAnLycgJiZcbiAgICAgICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvZ29uJykgJiZcbiAgICAgICF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3Jlc2V0LXBhc3N3b3JkJykgJiYgXG4gICAgICAhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdzc28tbG9nb3V0JylcbiAgICApIHtcbiAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICBpZiAoIXRoaXMudXNlclNlcnZpY2UudXNlcklzU1NPKCkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcbiAgICAgICAgLm9wZW4oTW9kYWxUeXBlcy5BdXRvTG9nZ2luZ091dENvbXBvbmVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgYmFja2Ryb3A6ICdzdGF0aWMnIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJSZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24pIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24pO1xuICAgICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFJlZnJlc2goKSB7XG4gICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gd2luZG93LnNldFRpbWVvdXQoXG4gICAgICB0aGlzLnJlZnJlc2hUb2tlbi5iaW5kKHRoaXMpLFxuICAgICAgdGhpcy5lbnZpcm9ubWVudC5hdXRoUmVmcmVzaFRpbWVvdXQgKiAxMDAwXG4gICAgKTtcbiAgfVxuXG4gIGJlY29tZVVzZXIodXNlcm5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuYmVjb21pbmdVc2VyID0gdHJ1ZTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEJvYm8obnVsbCk7IC8vIGlzbid0IGJvYm8gTXIgQnVybnMnIHRlZGR5IGJlYXI/XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQsIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcblxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5wb3N0KFVSTFMuQkVDT01FX1VTRVIsIHsgdXNlcm5hbWUgfSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmVjb21pbmdVc2VyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmJhc2tldFNlcnZpY2UucmVzZXRCYXNrZXRzKCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgICAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0VXNlcihkYXRhLmp3dE9iamVjdCk7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXNldFNlYXJjaFBhcmFtcygpO1xuICAgICAgICAgICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbWFpbiddKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmJlY29taW5nVXNlciA9IGZhbHNlO1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBlbmRCZWNvbWVVc2VyU2Vzc2lvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnVuQmVjb21pbmdVc2VyID0gdHJ1ZTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEJvYm8obnVsbCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQsIHJlamVjdDogKGVycm9yOiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXNldCgpO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc2V0U2VhcmNoUGFyYW1zKCk7XG4gICAgICB0aGlzLmJhc2tldFNlcnZpY2UucmVzZXQoKTtcblxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5wb3N0KFVSTFMuRU5EX0JFQ09NRV9VU0VSLCB7fSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBkYXRhID0+IHtcbiAgICAgICAgICAgIHRoaXMuYmFza2V0U2VydmljZS5yZXNldEJhc2tldHMoKTtcbiAgICAgICAgICAgIHRoaXMudW5CZWNvbWluZ1VzZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgICAgICAgICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyKGRhdGEuand0T2JqZWN0KTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLnVuQmVjb21pbmdVc2VyID0gZmFsc2U7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvZ2luKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIGFnYWluPzogYm9vbGVhbik6IE9ic2VydmFibGU8VXNlckRhdGE+IHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcblxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJTZXNzaW9uRGF0YSgpO1xuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc2V0U2VhcmNoUGFyYW1zKCk7XG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRCb2JvKG51bGwpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5BY2Nlc3NUb2tlbiwge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmRcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2UodmFsdWUpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qXG4gICAgQGRlc2MgLSB0aGlzIHdpbGwgZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgbG9naW4gZXJyb3IgZm9yIHRoZSByZXF1ZXN0IG9yIG5vdCwgc2luY2UgdGhpcyBpcyBhIHBvdGVudGlhbCBlcnJvciBmb3IgZXZlcnkgY2FsbFxuICAqKi9cbiAgaGFuZGxlUmVzcG9uc2UoZGF0YTogYW55KTogYW55IHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmIGRhdGEuand0KSB7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xuICAgICAgdGhpcy5pc0xvZ2dlZEluID0gdHJ1ZTtcbiAgICAgIGRlbGV0ZSBkYXRhLmp3dDtcbiAgICAgIGRlbGV0ZSBkYXRhLmp3dE9iamVjdDtcbiAgICAgIC8vIGhlcmUgd2UgY2FuIGRvIHRoZSBib2JvIGxvZ2ljXG4gICAgICBjb25zdCBib2JvOnN0cmluZyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW0oJ2JvYm8nKTtcbiAgICAgIGlmICghdGhpcy51c2VyU2VydmljZS5ib2JvICYmIGJvYm8pIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYXZlbGxlcnMoYm9ibywgVHJhdmVsbGVyU2VhcmNoVHlwZXMuZW1haWwpLnN1YnNjcmliZSgoZGF0YTpUcmF2ZWxsZXJbXSk9PntcbiAgICAgICAgICBjb25zdCBtYXRjaGVkVXNlciA9IGRhdGEuZmluZCh1c2VyPT51c2VyLmVtYWlsID09PSBib2JvKVxuICAgICAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0Qm9ibyhtYXRjaGVkVXNlcik7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuXG4gICAgY29uc3Qgc3NvVXNlciA9IHRoaXMudXNlclNlcnZpY2UudXNlcklzU1NPKCk7XG5cbiAgICBjb25zb2xlLmxvZyhgKysrIFVzZXIgaXMgU1NPIG9ubHk6ICR7c3NvVXNlcn0gKysrYCk7XG5cbiAgICBpZiAodGhpcy5pc0xvZ2dlZEluKSB7XG4gICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xuICAgICAgdGhpcy5pc0xvZ2dlZEluID0gZmFsc2U7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEJvYm8obnVsbCwgIXRoaXMuaXNMb2dnZWRJbik7XG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVtb3ZlQWxsVHJhdmVsbGVycygpO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc2V0U2VhcmNoUGFyYW1zKCk7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcblxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XG4gICAgICB0aGlzLmh0dHAucG9zdChVUkxTLkxPR09VVF9VUkwpLnN1YnNjcmliZShcbiAgICAgICAgZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKCFkYXRhLkxvZ291dFN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogcXVvdGVtYXJrXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJZb3UncmUgbm90IGxvZ2dlZCBpbiwgY2Fubm90IGxvZyBvdXQuXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnRNZXNzZW5hZ2VyLmVtaXQoVVNFUl9TSUdORURPVVQsIHt9KTtcblxuICAgICAgICAgIGlmICh0aGlzLnVzZXJTZXJ2aWNlLmlzVXNlckZhdm9yaXRlU2V0KFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZCkpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nT3V0RGlnaXRzVXNlciddKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHNzb1VzZXIpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnc3NvLWxvZ291dCddKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dvbiddKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChzc29Vc2VyKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ3Nzby1sb2dvdXQnXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nb24nXSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJMb2dpbkRhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclJlZnJlc2goKTtcbiAgICB0aGlzLmlzTG9nZ2VkSW4gPSBmYWxzZTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldEJvYm8obnVsbCwgIXRoaXMuaXNMb2dnZWRJbik7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlbW92ZUFsbFRyYXZlbGxlcnMoKTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzZXRTZWFyY2hQYXJhbXMoKTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcblxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJTZXNzaW9uRGF0YSgpO1xuICB9XG5cbiAgcmVzZXRQYXNzd29yZChcbiAgICBwYXNzd29yZFJlc2V0VG9rZW46IHN0cmluZyxcbiAgICBuZXdQYXNzd29yZDogc3RyaW5nLFxuICAgIHNvdXJjZTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8UGFzc3dvcmRDaGFuZ2VSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZm9ybUVuY29kZWRQb3N0KFVSTFMuUkVTRVRfUEFTU1dPUkQsIHtcbiAgICAgIHBhc3N3b3JkUmVzZXRUb2tlbixcbiAgICAgIG5ld1Bhc3N3b3JkLFxuICAgICAgc291cmNlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByZXNldFBhc3N3b3JkTm9Ub2tlbihuZXdQYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZm9ybUVuY29kZWRQb3N0KFVSTFMuUkVTRVRfUEFTU1dPUkRfTk9fVE9LRU4sIHtcbiAgICAgICAgcGFzc3dvcmQ6IG5ld1Bhc3N3b3JkXG4gICAgICB9KVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlUGFzc3dvcmQobmV3UGFzczogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNldFBhc3N3b3JkTm9Ub2tlbihuZXdQYXNzKVxuICAgICAgLnRoZW4obmV3SldUID0+IHtcbiAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UobmV3SldUKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvclxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgIEBkZXNjIC0gYWN0YXVhbGx5IGNhbGwgdGhlIGJhY2tlbmQgcGVybCBmb3IgcmVjb3ZlciBwYXNzXG4gICoqL1xuICByZWNvdmVyUGFzc3dvcmQodXNlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5mb3JtRW5jb2RlZFBvc3QoXG4gICAgICBVUkxTLlJFQ09WRVJfUEFTU1dPUkRfVVJMLFxuICAgICAge1xuICAgICAgICB1c2VybmFtZTogYCR7dXNlcm5hbWV9YFxuICAgICAgfSxcbiAgICAgICd0ZXh0J1xuICAgICk7XG4gIH1cblxuICAvKlxuICAgKlx0QGRlc2MgLSBlcnJvciBoYW5kbGluZywgb3BlbnMgYSBtb2RhbCB3aXRoIHRoZSBwYXNzZWQgaW4gZXJyb3IgbWVzc2FnZVxuICAgKiovXG4gIGhhbmRsZUVycm9yKGVycm9yOiBzdHJpbmcpIHtcbiAgICAvLyB0aGlzLnVzZXJTZXJ2aWNlLmJlY29taW5nVXNlciA9IGZhbHNlO1xuICAgIGNvbnN0IG1vZGFsVmFsdWVzID0ge1xuICAgICAgZXJyb3JcbiAgICB9O1xuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5Nb2RhbEVycm9yQ29tcG9uZW50LCB7IGJhY2tkcm9wOiAnc3RhdGljJyB9LCBtb2RhbFZhbHVlcyk7XG4gIH1cblxuICBpc09uU3RhZ2luZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFbJ3Rlc3QnXS5maW5kKCh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZS5pbmNsdWRlcyh1cmwpO1xuICAgIH0pO1xuICB9XG5cbiAgaXNPbkRldigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFbJ2xvY2FsaG9zdCcsICcxMjcuMC4wLjEnLCAnZGV2J10uZmluZCgodXJsOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXModXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrVmVyc2lvblVwZGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc1Byb2QgPSAhdGhpcy5pc09uRGV2KCkgJiYgIXRoaXMuaXNPblN0YWdpbmcoKTtcbiAgICBpZiAoIXRoaXMuaXNDaGVja2luZ1ZlcnNpb24pIHtcbiAgICAgIHRoaXMuaXNDaGVja2luZ1ZlcnNpb24gPSB0cnVlO1xuICAgICAgY29uc3Qgb2xkVmVyc2lvbjogc3RyaW5nID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uSXRlbSgndmVyc2lvbicpO1xuICAgICAgaWYgKCFvbGRWZXJzaW9uKSB7XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0U2Vzc2lvbkl0ZW0oJ3ZlcnNpb24nLCB0aGlzLm9idFZlcnNpb24pO1xuICAgICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGlzUHJvZCkge1xuICAgICAgICAvLyAhIGNvbW1lbnQgb3V0IHNvIGRldiB2ZXJzaW9uIGRvZXNuJ3QgYnJlYWsgLSB3ZSBuZWVkIHRoaXMgd29ya2luZyBiZWZvcmUgbmV4dCBwcm9wZXIgcmVsZWFzZVxuICAgICAgICB0aGlzLmdldExhdGVzdFZlcnNpb25zLmZldGNoTGlzdCgpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgICAgICAvLyB0aGlzIGlzIHdoYXQgd2UgY2FyZSBhYm91dFxuICAgICAgICAgIGNvbnN0IG5ld1ZlcnNpb24gPSBkYXRhLmZpbmQoXG4gICAgICAgICAgICB2ZXJzaW9uID0+IHZlcnNpb24ub2J0TmFtZSA9PT0gdGhpcy5lbnZpcm9ubWVudC5vYnRcbiAgICAgICAgICApPy52ZXJzaW9uO1xuICAgICAgICAgIC8vIGlmIC5zcGxpdCgnLicpIGdpdmVzIHVzIG1vcmUgdGhlbiBsZW5ndGggPT09IDEgdGhlbiBqdXN0IHJlZnJlc2ggYW5kIHRoZSBvYnQgc2V0XG4gICAgICAgICAgY29uc3Qgc3BsaXROZXdWZXJzaW9uID0gbmV3VmVyc2lvbi5zcGxpdCgnLicpO1xuICAgICAgICAgIGNvbnN0IHNwbGl0T2xkVmVyc2lvbiA9IG9sZFZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICBpZiAoc3BsaXROZXdWZXJzaW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgLy8gd2UgYXNzdW1lIHdlIG9ubHkgaGF2ZSB0aGUgaGFzaFxuICAgICAgICAgICAgY29uc3QgY3VycmVudEhhc2ggPVxuICAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50Lm9idCA9PT0gJ2xpZ2h0bmluZycgPyBzcGxpdE9sZFZlcnNpb25bM10gOiBzcGxpdE9sZFZlcnNpb25bMl07XG4gICAgICAgICAgICBpZiAoY3VycmVudEhhc2ggIT09IG5ld1ZlcnNpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihNb2RhbFR5cGVzLk5ld1ZlcnNpb24sIHsgYmFja2Ryb3A6ICdzdGF0aWMnIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRTZXNzaW9uSXRlbSgndmVyc2lvbicsIHRoaXMub2J0VmVyc2lvbik7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSZWxlYXNlTnVtYmVyID1cbiAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdsaWdodG5pbmcnID8gK3NwbGl0T2xkVmVyc2lvblsxXSA6ICtzcGxpdE9sZFZlcnNpb25bMF07XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlcmF0aW9uID1cbiAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdsaWdodG5pbmcnID8gK3NwbGl0T2xkVmVyc2lvblsyXSA6ICtzcGxpdE9sZFZlcnNpb25bMV07XG4gICAgICAgICAgICBjb25zdCBuZXdSZWxlYXNlTnVtYmVyID1cbiAgICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudC5vYnQgPT09ICdsaWdodG5pbmcnID8gK3NwbGl0TmV3VmVyc2lvblsxXSA6ICtzcGxpdE5ld1ZlcnNpb25bMF07XG4gICAgICAgICAgICBjb25zdCBuZXdJdGVyYXRpb24gPVxuICAgICAgICAgICAgICB0aGlzLmVudmlyb25tZW50Lm9idCA9PT0gJ2xpZ2h0bmluZycgPyArc3BsaXROZXdWZXJzaW9uWzJdIDogK3NwbGl0TmV3VmVyc2lvblsxXTtcbiAgICAgICAgICAgIC8vIG9idmlvdXNseSBpZiB0aGV5IGFyZSB0aGUgc2FtZS4uLi5kbyBub3RoaW5nXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG5ld1ZlcnNpb24gJiZcbiAgICAgICAgICAgICAgb2xkVmVyc2lvbiAmJlxuICAgICAgICAgICAgICAob2xkVmVyc2lvbiA9PT0gJ2RldmVsb3BtZW50JyB8fCBuZXdWZXJzaW9uID09PSBvbGRWZXJzaW9uKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vZG8gbm90aGluZyB0aGlzIGlzIGxvY2FsIG9yIHZlcnNpb25zIG1hdGNoXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0U2Vzc2lvbkl0ZW0oJ3ZlcnNpb24nLCB0aGlzLm9idFZlcnNpb24pO1xuICAgICAgICAgICAgICB0aGlzLmlzQ2hlY2tpbmdWZXJzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbmV3VmVyc2lvbiAmJlxuICAgICAgICAgICAgICAgIG9sZFZlcnNpb24gJiZcbiAgICAgICAgICAgICAgICAoY3VycmVudFJlbGVhc2VOdW1iZXIgPCBuZXdSZWxlYXNlTnVtYmVyIHx8XG4gICAgICAgICAgICAgICAgICBjdXJyZW50SXRlcmF0aW9uIDwgbmV3SXRlcmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAob2xkVmVyc2lvbiAhPT0gbmV3VmVyc2lvbiAmJlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVsZWFzZU51bWJlciA9PT0gbmV3UmVsZWFzZU51bWJlciAmJlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50SXRlcmF0aW9uID09PSBuZXdJdGVyYXRpb24pKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9idFZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5OZXdWZXJzaW9uLCB7IGJhY2tkcm9wOiAnc3RhdGljJyB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKCd2ZXJzaW9uJywgdGhpcy5vYnRWZXJzaW9uKTtcbiAgICAgICAgICAgICAgICAgIC8vIHRoZSBpbnRlcm5ldCBzdWdnZXN0cyB0aGlzIGlzIHNsaWdodHkgbW9yZSByYnVzdFxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7ICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nVmVyc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuaXNDaGVja2luZ1ZlcnNpb24gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9wZW5SZXNldFBhc3N3b3JkRGlhbG9nKHRva2VuOiBzdHJpbmcsIHNvdXJjZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbFNlcnZpY2VcbiAgICAgIC5vcGVuKFxuICAgICAgICBNb2RhbFR5cGVzLk1vZGFsUGFzc3dvcmRSZXNldENvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiAncmVzZXQtcGFzc3dvcmQtZGlhbG9nLWNvbnRhaW5lcicsXG4gICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgIHRvcDogJzUwdmgnLFxuICAgICAgICAgICAgbGVmdDogJzUwdncnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9rZW46IHRva2VuLFxuICAgICAgICAgIHNvdXJjZVxuICAgICAgICB9XG4gICAgICApXG4gICAgICAudGhlbigocmVzdWx0OiB7IGp3dDogc3RyaW5nOyBzb3VyY2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnNvdXJjZSA9PT0gJ0FQUCcpIHtcbiAgICAgICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICAgIE1vZGFsVHlwZXMuSW5mb01vZGFsQ29tcG9uZW50LFxuICAgICAgICAgICAgICB7IGNlbnRlcmVkOiB0cnVlLCBiYWNrZHJvcDogJ3N0YXRpYycgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGluZm86ICdZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSByZXNldC4gUGxlYXNlIHJldHVybiB0byBMaWdodG5pbmcgRU1FQSBhcHAgdG8gc2lnbiBpbiB0byB5b3VyIGFjY291bnQuJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1Bhc3N3b3JkIFJlc2V0JyxcbiAgICAgICAgICAgICAgICBzaG93SWNvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgYnV0dG9uVGV4dDogJ09rJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgICBNb2RhbFR5cGVzLkluZm9Nb2RhbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgeyBjZW50ZXJlZDogdHJ1ZSwgYmFja2Ryb3A6ICdzdGF0aWMnIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpbmZvOiAnUGFzc3dvcmQgY2hhbmdlZCBzdWNjZXNzZnVsbHkuJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1Bhc3N3b3JkIFJlc2V0JyxcbiAgICAgICAgICAgICAgICBzaG93SWNvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgYnV0dG9uVGV4dDogJ09rJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICByZXNldFBhc3N3b3JkRGlhbG9nKFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbmV3UGFzc3dvcmQ6IHN0cmluZyxcbiAgICBzb3VyY2U6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPHsgand0OiBzdHJpbmc7IHNvdXJjZTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgU3ViamVjdDx7IGp3dDogc3RyaW5nOyBzb3VyY2U6IHN0cmluZyB9PigpO1xuICAgIHRoaXMucmVzZXRQYXNzd29yZCh0b2tlbiwgbmV3UGFzc3dvcmQsIHNvdXJjZSkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKCdyZWZyZXNoVG9rZW4nLCBkYXRhWydqd3QnXSk7XG4gICAgICAgICAgaWYgKGRhdGE/LnNvdXJjZSA9PT0gJ1dFQicpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbWFpbiddKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0Lm5leHQoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIGNvbnN0IHsgZXJyb3I6IGVycm9yTXNnLCBzdGF0dXMgfSA9IGVycm9yO1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgIHRoaXMuZXJyb3JfbWVzc2FnZSA9IGBQYXNzd29yZCByZXNldCB1bnN1Y2Nlc3NmdWwgZHVlIHRvIGZhaWxpbmcgcGFzc3dvcmQgcG9saWN5OiAke2Vycm9yTXNnfWA7XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgIGlmIChlcnJvck1zZykge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihcbiAgICAgICAgICAgICAgTW9kYWxUeXBlcy5Nb2RhbEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgICAgICB7IGNlbnRlcmVkOiB0cnVlLCBiYWNrZHJvcDogJ3N0YXRpYycgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvck1zZ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXN1bHQubmV4dChudWxsKTtcbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiByZXN1bHQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzZXRFbnZpcm9ubWVudCgpIHtcbiAgICAvLyB0aGlzLmlzU2Npb25FbnYgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnc2Fic2VudGVycHJpc2UnKTtcbiAgICAvLyB0aGlzLmlzTGlnaHRuaW5nRW52ID0gIXRoaXMuaXNTY2lvbkVudjtcbiAgICAvLyBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpKSB7XG4gICAgLy8gICB0aGlzLmlzU2Npb25FbnYgPSB0aGlzLmVudmlyb25tZW50Lm9idCA9PT0gJ3NjaW9uJztcbiAgICAvLyAgIHRoaXMuaXNMaWdodG5pbmdFbnYgPSAhdGhpcy5pc1NjaW9uRW52O1xuICAgIC8vIH1cbiAgfVxufVxuXG4iXX0=
@@ -38908,12 +38908,12 @@ class BaseLogonService {
38908
38908
  return result.asObservable();
38909
38909
  }
38910
38910
  setEnvironment() {
38911
- this.isScionEnv = window.location.href.includes('sabsenterprise');
38912
- this.isLightningEnv = !this.isScionEnv;
38913
- if (window.location.href.includes('localhost')) {
38914
- this.isScionEnv = this.environment.obt === 'scion';
38915
- this.isLightningEnv = !this.isScionEnv;
38916
- }
38911
+ // this.isScionEnv = window.location.href.includes('sabsenterprise');
38912
+ // this.isLightningEnv = !this.isScionEnv;
38913
+ // if (window.location.href.includes('localhost')) {
38914
+ // this.isScionEnv = this.environment.obt === 'scion';
38915
+ // this.isLightningEnv = !this.isScionEnv;
38916
+ // }
38917
38917
  }
38918
38918
  }
38919
38919