@annalib/anna-cognito-lib 2.2.8 → 2.2.10

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.
@@ -40,6 +40,7 @@ export class ForgotPasswordComponent {
40
40
  if (this.authService.userName) {
41
41
  this.onUpdateForm();
42
42
  }
43
+ this.authService.forgotPasswordAndGlobalSignoutLoader = false;
43
44
  }
44
45
  onIntialiseForm() {
45
46
  this.verifyRegisteredEmail = this.fb.group({
@@ -109,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
109
110
  type: Inject,
110
111
  args: [CONFIG_SERVICE_TOKEN]
111
112
  }] }]; } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUF5QixNQUFNLE1BQU0sQ0FBQztBQUV2RCxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNVLFdBQStCLEVBQy9CLEVBQWUsRUFDZixNQUFxQixFQUNyQixNQUFjLEVBQ2UsNkJBQTZDO1FBSjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFv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LENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBRyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBQztvQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztpQkFDakQ7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3REO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsbUJBQTRCLEVBQUUsc0JBQStCLEVBQUUsUUFBZ0I7UUFDakcsSUFBRyxDQUFDLG1CQUFtQixFQUFDO1lBQ3RCLElBQUcsQ0FBQyxzQkFBc0IsRUFBQztnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4RDtpQkFDSTtnQkFDSCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQzthQUNwRjtTQUNGO2FBQ0k7WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7b0hBNUZRLHVCQUF1QixrSUFldEIsb0JBQW9CO3dHQWZyQix1QkFBdUIsd0VDckJwQyxneUVBdURBOzJGRGxDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0NBQWtDOzswQkFtQnZDLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBjYXRjaEVycm9yLCBwaXBlLCBtYXAgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFVzZXJuYW1lSW5mbywgVXNlclN0YXRlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hdXRoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEFubmFMaWJBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9naW5Db25zdGFudCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDT05GSUdfU0VSVklDRV9UT0tFTiwgSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW4nO1xyXG5cclxudHlwZSBwYXNzd29yZFR5cGUgPSB7dmFsdWU6IHN0cmluZywgc3RhdHVzOiBzdHJpbmd9O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FubmEtY29nbml0by1saWItZm9yZ290LXBhc3N3b3JkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5UmVnaXN0ZXJlZEVtYWlsOiBGb3JtR3JvdXA7XHJcbiAgICBwYXNzd29yZE5vdE1hdGNoaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdGFudHM6IHR5cGVvZiBMb2dpbkNvbnN0YW50O1xyXG4gICAgcGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xyXG4gICAgY29uZmlybVBhc3N3b3JkOiBwYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBudWxsLCBzdGF0dXM6IG51bGwgfTtcclxuICAgIGluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UudXNlck5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZUZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xyXG4gICAgICAgIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIGVtYWlsOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblVwZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGVtYWlsOiB0aGlzLmF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRm9ybVZhbGlkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpe1xyXG4gICAgICBpZih0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luKXtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uVmVyaWZ5UmVnaXN0ZXJlZEVtYWlsKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xyXG4gICAgICAgIGxldCB1c2VybmFtZSA9IHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmNvbnRyb2xzWydlbWFpbCddLnZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzVXNlcm5hbWVBdmFpbGFibGUodXNlcm5hbWUpO1xyXG4gICAgICAgIGxldCBpc1VzZXJuYW1lVGVtcFBhc3N3b3JkU2V0ID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuZ2V0VXNlclN0YXRlKHVzZXJuYW1lKTtcclxuXHJcbiAgICAgICAgZm9ya0pvaW4oW2lzVXNlcm5hbWVBdmFpbGFibGUsIGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXRdKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgeyBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZXJuYW1lQXZhaWxhYmxlID0gbmV3IFVzZXJuYW1lSW5mbyhyZXN1bHRbMF0pLmlzVXNlcm5hbWVBdmFpbGFibGU7XHJcbiAgICAgICAgICAgIGxldCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkID0gbmV3IFVzZXJTdGF0ZShyZXN1bHRbMV0pLmlzVXNlcldpdGhUZW1wUGFzc3dvcmQ7XHJcbiAgICAgICAgICAgIHRoaXMub25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlLGlzVXNlcldpdGhUZW1wUGFzc3dvcmQsdXNlcm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgaWYoZXJyb3Iuc3RhdHVzID09IDQwMCl7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmNvbnN0YW50cy51c2VyTm90Rm91bmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5hcGlGYWlsRXJyb3JNZXNzYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uR2V0dGluZ1VzZXJTdGF0dXMoaXNVc2VybmFtZUF2YWlsYWJsZTogYm9vbGVhbiwgaXNVc2VyV2l0aFRlbXBQYXNzd29yZDogYm9vbGVhbiwgdXNlcm5hbWU6IHN0cmluZyl7XHJcbiAgICAgIGlmKCFpc1VzZXJuYW1lQXZhaWxhYmxlKXtcclxuICAgICAgICBpZighaXNVc2VyV2l0aFRlbXBQYXNzd29yZCl7XHJcbiAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VybmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IHRoaXMuY29uc3RhbnRzLmZpcnN0VGltZUxvZ2luVXNlclRlbXBQYXNzd29yZE1zZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmNvbnN0YW50cy51c2VyTm90Rm91bmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gIDxzZWN0aW9uPlxyXG4gICAgICA8aGVhZGVyPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlLmFwcEdlbmVyaWNDb25maWcubG9naW5QYWdlTG9nb0ltZ1VybFwiIGFsdD1cIkFubmEgTG9nb1wiIC8+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG4gICAgICA8YXJ0aWNsZT5cclxuICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidmVyaWZ5UmVnaXN0ZXJlZEVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAge3sgY29uc3RhbnRzLmZvcmdvdFBhc3N3b3JkSGVhZGluZyB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRNZXNzYWdlIH19XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cImFsZXJ0LWRpdlwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZXBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxwIGlkPVwiYWxlcnQtbXNnXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9wPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgaWQ9XCJpbmZvLWRpdlwiICpuZ0lmPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtaSBtZGktaW5mb1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPHA+e3sgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gfX08L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uc3RhbnRzLmVudGVyRW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnaW5wdXQtaW52YWxpZCc6IHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmRpcnR5ICYmIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWJ0blwiXHJcbiAgICAgICAgICAgICAgICBbYW5uYS1jb2duaXRvLWxpYi1TcGlubmVyQnV0dG9uXT1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dpbk9yR2V0T3RwQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPyBjb25zdGFudHMubG9naW4gOiBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRCdXR0b25cIlxyXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICA8Zm9vdGVyPlxyXG4gICAgICAgIDxhbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT5cclxuICAgICAgICA8L2FubmEtY29nbml0by1saWItcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlPlxyXG4gICAgICA8L2Zvb3Rlcj5cclxuICA8L3NlY3Rpb24+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBhZ2UtZm9vdGVyXCI+XHJcbiAgPGFubmEtY29nbml0by1saWItc3VyZXdhdmVzLXllYXItbG9nbz48L2FubmEtY29nbml0by1saWItc3VyZXdhdmVzLXllYXItbG9nbz5cclxuICA8YW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT48L2FubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+XHJcbjwvZGl2PlxyXG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUF5QixNQUFNLE1BQU0sQ0FBQztBQUV2RCxpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFRekYsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUNVLFdBQStCLEVBQy9CLEVBQWUsRUFDZixNQUFxQixFQUNyQixNQUFjLEVBQ2UsNkJBQTZDO1FBSjFFLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Usa0NBQTZCLEdBQTdCLDZCQUE2QixDQUFnQjtRQVpwRix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZELG9CQUFlLEdBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUQsK0JBQTBCLEdBQVcsSUFBSSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFReEIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsb0NBQW9DLEdBQUcsS0FBSyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUM7WUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTtTQUNuQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDcEQ7YUFDSTtZQUNILElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRWxFLElBQUksbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRyxJQUFJLHlCQUF5QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBHLFFBQVEsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQ3BFLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDMUUsSUFBSSxzQkFBc0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFDLHNCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBRyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBQztvQkFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztpQkFDakQ7cUJBQ0k7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3REO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsbUJBQTRCLEVBQUUsc0JBQStCLEVBQUUsUUFBZ0I7UUFDakcsSUFBRyxDQUFDLG1CQUFtQixFQUFDO1lBQ3RCLElBQUcsQ0FBQyxzQkFBc0IsRUFBQztnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4RDtpQkFDSTtnQkFDSCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQzthQUNwRjtTQUNGO2FBQ0k7WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQzs7b0hBN0ZRLHVCQUF1QixrSUFldEIsb0JBQW9CO3dHQWZyQix1QkFBdUIsd0VDckJwQyxneUVBdURBOzJGRGxDYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0NBQWtDOzswQkFtQnZDLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBjYXRjaEVycm9yLCBwaXBlLCBtYXAgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFVzZXJuYW1lSW5mbywgVXNlclN0YXRlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hdXRoLm1vZGVsXCI7XHJcbmltcG9ydCB7IEFubmFMaWJBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9naW5Db25zdGFudCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDT05GSUdfU0VSVklDRV9UT0tFTiwgSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW4nO1xyXG5cclxudHlwZSBwYXNzd29yZFR5cGUgPSB7dmFsdWU6IHN0cmluZywgc3RhdHVzOiBzdHJpbmd9O1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FubmEtY29nbml0by1saWItZm9yZ290LXBhc3N3b3JkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5UmVnaXN0ZXJlZEVtYWlsOiBGb3JtR3JvdXA7XHJcbiAgICBwYXNzd29yZE5vdE1hdGNoaW5nID0gZmFsc2U7XHJcbiAgICBjb25zdGFudHM6IHR5cGVvZiBMb2dpbkNvbnN0YW50O1xyXG4gICAgcGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xyXG4gICAgY29uZmlybVBhc3N3b3JkOiBwYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBudWxsLCBzdGF0dXM6IG51bGwgfTtcclxuICAgIGluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UudXNlck5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZUZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkludGlhbGlzZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgZW1haWw6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlRm9ybSgpIHtcclxuICAgICAgICB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgZW1haWw6IHRoaXMuYXV0aFNlcnZpY2UudXNlck5hbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNGb3JtVmFsaWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTG9naW5PckdldE90cEJ1dHRvbkNsaWNrKCl7XHJcbiAgICAgIGlmKHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4pe1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25WZXJpZnlSZWdpc3RlcmVkRW1haWwoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVmVyaWZ5UmVnaXN0ZXJlZEVtYWlsKCkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XHJcbiAgICAgICAgbGV0IHVzZXJuYW1lID0gdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwuY29udHJvbHNbJ2VtYWlsJ10udmFsdWU7XHJcblxyXG4gICAgICAgIGxldCBpc1VzZXJuYW1lQXZhaWxhYmxlID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuaXNVc2VybmFtZUF2YWlsYWJsZSh1c2VybmFtZSk7XHJcbiAgICAgICAgbGV0IGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXQgPSB0aGlzLmF1dGhTZXJ2aWNlLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5nZXRVc2VyU3RhdGUodXNlcm5hbWUpO1xyXG5cclxuICAgICAgICBmb3JrSm9pbihbaXNVc2VybmFtZUF2YWlsYWJsZSwgaXNVc2VybmFtZVRlbXBQYXNzd29yZFNldF0pLnN1YnNjcmliZShcclxuICAgICAgICB7IG5leHQ6IChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgbGV0IGlzVXNlcm5hbWVBdmFpbGFibGUgPSBuZXcgVXNlcm5hbWVJbmZvKHJlc3VsdFswXSkuaXNVc2VybmFtZUF2YWlsYWJsZTtcclxuICAgICAgICAgICAgbGV0IGlzVXNlcldpdGhUZW1wUGFzc3dvcmQgPSBuZXcgVXNlclN0YXRlKHJlc3VsdFsxXSkuaXNVc2VyV2l0aFRlbXBQYXNzd29yZDtcclxuICAgICAgICAgICAgdGhpcy5vbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGUsaXNVc2VyV2l0aFRlbXBQYXNzd29yZCx1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICBpZihlcnJvci5zdGF0dXMgPT0gNDAwKXtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LmFwaUZhaWxFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlOiBib29sZWFuLCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkOiBib29sZWFuLCB1c2VybmFtZTogc3RyaW5nKXtcclxuICAgICAgaWYoIWlzVXNlcm5hbWVBdmFpbGFibGUpe1xyXG4gICAgICAgIGlmKCFpc1VzZXJXaXRoVGVtcFBhc3N3b3JkKXtcclxuICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2Uub25Gb3Jnb3RQYXNzd29yZEdlbmVyYXRlT1RQKHVzZXJuYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gdGhpcy5jb25zdGFudHMuZmlyc3RUaW1lTG9naW5Vc2VyVGVtcFBhc3N3b3JkTXNnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgPHNlY3Rpb24+XHJcbiAgICAgIDxoZWFkZXI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuYXBwR2VuZXJpY0NvbmZpZy5sb2dpblBhZ2VMb2dvSW1nVXJsXCIgYWx0PVwiQW5uYSBMb2dvXCIgLz5cclxuICAgICAgPC9oZWFkZXI+XHJcbiAgICAgIDxhcnRpY2xlPlxyXG4gICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ2ZXJpZnlSZWdpc3RlcmVkRW1haWxcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRIZWFkaW5nIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZE1lc3NhZ2UgfX1cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8ZGl2IGlkPVwiYWxlcnQtZGl2XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHAgaWQ9XCJhbGVydC1tc2dcIj57eyBlcnJvck1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBpZD1cImluZm8tZGl2XCIgKm5nSWY9XCJpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1pIG1kaS1pbmZvXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8cD57eyBpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiB9fTwvcD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25zdGFudHMuZW50ZXJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICdpbnB1dC1pbnZhbGlkJzogdmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmdldCgnZW1haWwnKT8uZGlydHkgJiYgdmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmdldCgnZW1haWwnKT8uZXJyb3JzXHJcbiAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcclxuICAgICAgICAgICAgICAgIFthbm5hLWNvZ25pdG8tbGliLVNwaW5uZXJCdXR0b25dPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgIFtzcGlubmVyQnV0dG9uVGV4dF09XCJpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA/IGNvbnN0YW50cy5sb2dpbiA6IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2FydGljbGU+XHJcbiAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgPGFubmEtY29nbml0by1saWItcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XHJcbiAgICAgIDwvZm9vdGVyPlxyXG4gIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cclxuICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxyXG4gIDxhbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PjwvYW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -32,7 +32,7 @@ export class AnnaLibAuthService {
32
32
  ngOnInit() { }
33
33
  async isUserLoggedIn() {
34
34
  try {
35
- await getCurrentUser();
35
+ // await getCurrentUser();
36
36
  return new Promise(async (resolve, reject) => {
37
37
  const session = await fetchAuthSession();
38
38
  if (session?.tokens) {
@@ -57,7 +57,7 @@ export class AnnaLibAuthService {
57
57
  sessionTimeout() {
58
58
  localStorage.clear();
59
59
  clearInterval(this.accessTokenTimerId);
60
- this.router.navigate([LoginConstant.loginPageUrl]);
60
+ this.router.navigate([this.defaultLoginPageUrl ? this.defaultLoginPageUrl : LoginConstant.loginPageUrl]);
61
61
  }
62
62
  computeTokenExpiration(idToken) {
63
63
  let currentTime = Math.floor(Date.now() / 1000);
@@ -71,11 +71,7 @@ export class AnnaLibAuthService {
71
71
  switch (nextStep?.signInStep) {
72
72
  case "DONE":
73
73
  let session = await fetchAuthSession();
74
- let newExpTime = this.computeTokenExpiration(session.tokens.idToken);
75
- this.accessToken = session.tokens.accessToken.toString();
76
- localStorage.setItem("accessTokenExpiration", newExpTime.toString());
77
- this.refreshAccessToken();
78
- this.loginErrorMessage = null;
74
+ this.onLoginOrSetNewPassword(session);
79
75
  await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(false);
80
76
  this.getAllCognitoTokenAndGroups(session.tokens);
81
77
  break;
@@ -103,6 +99,14 @@ export class AnnaLibAuthService {
103
99
  }
104
100
  }
105
101
  }
102
+ onLoginOrSetNewPassword(session) {
103
+ let newExpTime = this.computeTokenExpiration(session.tokens.idToken);
104
+ this.accessToken = session.tokens.accessToken.toString();
105
+ this.IdToken = session.tokens.idToken.toString();
106
+ localStorage.setItem("accessTokenExpiration", newExpTime.toString());
107
+ this.refreshAccessToken();
108
+ this.loginErrorMessage = null;
109
+ }
106
110
  async getAllCognitoTokenAndGroups(token) {
107
111
  this.accessToken = token.accessToken.toString();
108
112
  this.IdToken = token.idToken;
@@ -158,6 +162,8 @@ export class AnnaLibAuthService {
158
162
  const data = await confirmSignIn(inputParam);
159
163
  const { username } = await getCurrentUser();
160
164
  console.log(data);
165
+ let session = await fetchAuthSession();
166
+ this.onLoginOrSetNewPassword(session);
161
167
  this.consumingProjectAuthService.onPasswordUpdate(username);
162
168
  this.router.navigate([LoginConstant.loginPageUrl]);
163
169
  this.consumingProjectAuthService.newPasswordSetThenUpdateToBackend(username);
@@ -183,16 +189,18 @@ export class AnnaLibAuthService {
183
189
  }
184
190
  }
185
191
  async verifyCode(confirmationCode, newPassword) {
186
- const { username } = await getCurrentUser();
187
192
  try {
188
- confirmResetPassword({ username, newPassword, confirmationCode });
189
- this.consumingProjectAuthService.onPasswordUpdate(username);
190
- this.expiryAllExistingCurrentSession(username, newPassword);
193
+ // const { username } = await getCurrentUser();
194
+ confirmResetPassword({ username: this.userName, newPassword: newPassword, confirmationCode: confirmationCode });
195
+ this.consumingProjectAuthService.onPasswordUpdate(this.userName);
196
+ this.expiryAllExistingCurrentSession(this.userName, newPassword);
191
197
  }
192
198
  catch (err) {
193
199
  console.log(err);
194
200
  this.noOfAttempts = this.noOfAttempts + 1;
195
201
  this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);
202
+ }
203
+ finally {
196
204
  this.forgotPasswordAndGlobalSignoutLoader = false;
197
205
  }
198
206
  }
@@ -268,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
268
276
  type: Inject,
269
277
  args: [CONFIG_SERVICE_TOKEN]
270
278
  }] }]; } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUNzQixvQkFBb0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQzlFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDakQsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUtsRCxNQUFNLE9BQU8sa0JBQWtCO0lBZTNCLFlBQ1ksTUFBYyxFQUNmLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3JCLE1BQXFCLEVBQ00sMkJBQXlDLEVBQ3ZDLDZCQUE2QztRQUwxRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ00sZ0NBQTJCLEdBQTNCLDJCQUEy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QU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDN0M7SUFDTCxDQUFDOzsrR0FoUVEsa0JBQWtCLGdJQW9CZixrQkFBa0IsYUFDbEIsb0JBQW9CO21IQXJCdkIsa0JBQWtCLGNBRmYsTUFBTTsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFxQlEsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQge1xyXG4gICAgQXV0aFRva2VucywgU2lnbkluSW5wdXQsIGNvbmZpcm1SZXNldFBhc3N3b3JkLCBjb25maXJtU2lnbkluLCBmZXRjaEF1dGhTZXNzaW9uLFxyXG4gICAgZ2V0Q3VycmVudFVzZXIsIHJlc2V0UGFzc3dvcmQsIHNpZ25Jbiwgc2lnbk91dFxyXG59IGZyb20gXCJhd3MtYW1wbGlmeS9hdXRoXCI7XHJcblxyXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBBVVRIX1NFUlZJQ0VfVE9LRU4sIElBdXRoU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBDT05GSUdfU0VSVklDRV9UT0tFTiwgSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IEFubmFMaWJBY2xTZXJ2aWNlIH0gZnJvbSAnLi9hY2wuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFMaWJBdXRoU2VydmljZSB7XHJcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xyXG4gICAgSWRUb2tlbjogYW55O1xyXG4gICAgbG9naW5FcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGw7XHJcbiAgICBzZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlBbmRTZXROZXdQYXNzd29yZEJ1dHRvbjogc3RyaW5nO1xyXG4gICAgbm9PZkF0dGVtcHRzID0gMDtcclxuICAgIHNlc3Npb25Mb2NrZWQgPSBmYWxzZTtcclxuICAgIHVzZXJOYW1lOiBhbnk7XHJcbiAgICBhY2Nlc3NUb2tlblRpbWVySWQ6IGFueTtcclxuICAgIGZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHB1YmxpYyBhY2xTZXJ2aWNlOiBBbm5hTGliQWNsU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KEFVVEhfU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZTogSUF1dGhTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQ09ORklHX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZTogSUNvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICBpZiAoIWNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBtdXN0IHByb3ZpZGUgYSBhdXRoU2VydmljZScpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICAgIGFzeW5jIGlzVXNlckxvZ2dlZEluKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXNzaW9uOiBhbnkgPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2Vzc2lvbj8udG9rZW5zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5JZFRva2VuID0gc2Vzc2lvbj8udG9rZW5zLmlkVG9rZW4udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhzZXNzaW9uLnRva2Vucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZEVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmFjY2Vzc1Rva2VuVGltZXJJZCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlc3Npb25UaW1lb3V0KCkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXB1dGVUb2tlbkV4cGlyYXRpb24oaWRUb2tlbjogYW55KSB7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XHJcbiAgICAgICAgbGV0IHRva2VuVGltZSA9IGlkVG9rZW4ucGF5bG9hZC5leHA7XHJcbiAgICAgICAgbGV0IGV4cFRpbWUgPSAodG9rZW5UaW1lIC0gY3VycmVudFRpbWUpICogMTAwMDtcclxuICAgICAgICByZXR1cm4gZXhwVGltZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBoYW5kbGVTaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfTogU2lnbkluSW5wdXQpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGlzU2lnbmVkSW4sIG5leHRTdGVwIH0gPSBhd2FpdCBzaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAobmV4dFN0ZXA/LnNpZ25JblN0ZXApIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJET05FXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24oc2Vzc2lvbi50b2tlbnMuaWRUb2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHNlc3Npb24udG9rZW5zLmFjY2Vzc1Rva2VuLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJhY2Nlc3NUb2tlbkV4cGlyYXRpb25cIiwgbmV3RXhwVGltZS50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uU3VjY2Vzc2Z1bEF1dGhlbnRpY2F0aW5nVXNlcihmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHMoc2Vzc2lvbi50b2tlbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDT05GSVJNX1NJR05fSU5fV0lUSF9ORVdfUEFTU1dPUkRfUkVRVUlSRURcIjpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlck5hbWUgPSB1c2VybmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5zZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgXCJSRVNFVF9QQVNTV09SRFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRFeHBpcnlFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQudGVtcFBhc3N3b3JkT25FeHBpcnlFcnJvck1zZztcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNlbmRSZWdlbmVyYXRpb25FbWFpbCh1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09IFwiUGFzc3dvcmQgYXR0ZW1wdHMgZXhjZWVkZWRcIikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbkVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdExpbWl0RXhjZWVkZWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC51c2VyTmFtZVBhc3N3b3JkSW5jb3JyZWN0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbjogQXV0aFRva2Vucykge1xyXG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW4gPSB0b2tlbi5hY2Nlc3NUb2tlbi50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuSWRUb2tlbiA9IHRva2VuLmlkVG9rZW47XHJcbiAgICAgICAgaWYgKFwiY29nbml0bzpncm91cHNcIiBpbiB0b2tlbi5hY2Nlc3NUb2tlbi5wYXlsb2FkKSB7XHJcbiAgICAgICAgICAgIGxldCB1c2VyR3JvdXBzSW5Db2duaXRvSldUOiBhbnkgPSB0b2tlbi5hY2Nlc3NUb2tlbi5wYXlsb2FkW1wiY29nbml0bzpncm91cHNcIl07XHJcbiAgICAgICAgICAgIHRoaXMuYWNsU2VydmljZS51c2VyR3JvdXBzSW5Db2duaXRvSldUID0gdXNlckdyb3Vwc0luQ29nbml0b0pXVDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UudXNlckdyb3Vwc0luQ29nbml0b0pXVCA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoQWNjZXNzVG9rZW4oKSB7XHJcbiAgICAgICAgbGV0IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIpO1xyXG4gICAgICAgIGxldCBleHBUaW1lID0gYWNjZXNzVG9rZW5FeHBpcmF0aW9uID8gcGFyc2VJbnQoYWNjZXNzVG9rZW5FeHBpcmF0aW9uKSA6IDA7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlblRpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBjb3VudGVyID0gMTAwMDtcclxuICAgICAgICAgICAgbGV0IGRlbGF5RnVuY3Rpb24gPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRva2VuID0gc2Vzc2lvbi50b2tlbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHRva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24odGhpcy5JZFRva2VuKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdFeHBUaW1lIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0V4cFRpbWUgPSAxMDAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXlGdW5jdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoZGVsYXlGdW5jdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwVGltZSA9IG5ld0V4cFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIsIG5ld0V4cFRpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hBY2Nlc3NUb2tlbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblRpbWVvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uVGltZW91dCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCBjb3VudGVyKTtcclxuICAgICAgICB9LCBleHBUaW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjaGFuZ2VQYXNzd29yZChuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGlucHV0UGFyYW0gPSB7XHJcbiAgICAgICAgICAgICAgICBjaGFsbGVuZ2VSZXNwb25zZTogbmV3UGFzc3dvcmQsXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGNvbmZpcm1TaWduSW4oaW5wdXRQYXJhbSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgdXNlcm5hbWUgfSA9IGF3YWl0IGdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblBhc3N3b3JkVXBkYXRlKHVzZXJuYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm5ld1Bhc3N3b3JkU2V0VGhlblVwZGF0ZVRvQmFja2VuZCh1c2VybmFtZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICB0aGlzLnNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQubG9naW5BZ2FpbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgb25Gb3Jnb3RQYXNzd29yZEdlbmVyYXRlT1RQKGVtYWlsOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgdXNlcm5hbWUgPSBlbWFpbDtcclxuICAgICAgICB0aGlzLnVzZXJOYW1lID0gZW1haWw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdDogYW55ID0gYXdhaXQgcmVzZXRQYXNzd29yZCh7IHVzZXJuYW1lIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZSA9XHJcbiAgICAgICAgICAgICAgICBMb2dpbkNvbnN0YW50LnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZSArXHJcbiAgICAgICAgICAgICAgICByZXN1bHQ/Lm5leHRTdGVwPy5jb2RlRGVsaXZlcnlEZXRhaWxzPy5kZXN0aW5hdGlvbiArXHJcbiAgICAgICAgICAgICAgICBMb2dpbkNvbnN0YW50LnBsZWFzZUVudGVySXRCZWxvdztcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRVcmxdKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgdmVyaWZ5Q29kZShjb25maXJtYXRpb25Db2RlOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCB7IHVzZXJuYW1lIH0gPSBhd2FpdCBnZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1SZXNldFBhc3N3b3JkKHsgdXNlcm5hbWUsIG5ld1Bhc3N3b3JkLCBjb25maXJtYXRpb25Db2RlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5vblBhc3N3b3JkVXBkYXRlKHVzZXJuYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5leHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKHVzZXJuYW1lLCBuZXdQYXNzd29yZCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgICAgIHRoaXMubm9PZkF0dGVtcHRzID0gdGhpcy5ub09mQXR0ZW1wdHMgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLnZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkRXJyb3JNZXNzYWdlID0gdGhpcy5mb3Jnb3RQYXNzd29yZEVycm9yKGVyciwgdGhpcy5ub09mQXR0ZW1wdHMpO1xyXG4gICAgICAgICAgICB0aGlzLmZvcmdvdFBhc3N3b3JkQW5kR2xvYmFsU2lnbm91dExvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3Jnb3RQYXNzd29yZEVycm9yKGVycjogYW55LCBub09mQXR0ZW1wdHM6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2U7XHJcbiAgICAgICAgc3dpdGNoIChlcnIuY29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uTG9ja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdExpbWl0RXhjZWVkZWQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcIkV4cGlyZWRDb2RlRXhjZXB0aW9uXCI6XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlBbmRTZXROZXdQYXNzd29yZEJ1dHRvbiA9IExvZ2luQ29uc3RhbnQucmVnZW5lcmF0ZU90cDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0ICsgXCIgXCIgKyBub09mQXR0ZW1wdHMgKyBMb2dpbkNvbnN0YW50LmF0dGVtcHRNZXNzYWdlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzaWduSW5XaXRoRHVvKCkge1xyXG4gICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnNpZ25JbldpdGhEdW8oKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBoYW5kbGVTaWduT3V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBnbG9iYWw6IGZhbHNlIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBzaWduaW5nIG91dDogJywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBleHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKHVzZXJuYW1lOiBzdHJpbmcsIG5ld1Bhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNldFVzZXJEZXRhaWxzKCk7XHJcbiAgICAgICAgdGhpcy5vbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbih1c2VybmFtZSwgbmV3UGFzc3dvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uTG9naW5JbkNvZ250aW9Ub0dldEFjY2Vzc1Rva2VuKHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGlzU2lnbmVkSW4sIG5leHRTdGVwIH0gPSBhd2FpdCBzaWduSW4oeyB1c2VybmFtZSwgcGFzc3dvcmQgfSk7XHJcbiAgICAgICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG5leHRTdGVwPy5zaWduSW5TdGVwKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiRE9ORVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsQ29nbml0b1Rva2VuQW5kR3JvdXBzKHNlc3Npb24udG9rZW5zKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2FsbEdsb2JhbFNpZ25vdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHsgfVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uQ2FsbEdsb2JhbFNpZ25vdXQoKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgc2lnbk91dCh7IGdsb2JhbDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIHNpZ25pbmcgb3V0OiAnLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUNzQixvQkFBb0IsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQzlFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDakQsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixpQ0FBaUM7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWdCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFrQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUtsRCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0IzQixZQUNZLE1BQWMsRUFDZixVQUE2QixFQUM3QixVQUFzQixFQUNyQixNQUFxQixFQUNNLDJCQUF5QyxFQUN2Qyw2QkFBNkM7UUFMMUUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNNLGdDQUEyQixHQUEzQiwyQkFB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LElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUMzQixNQUFNO2FBQ2I7U0FDSjtRQUFDLE9BQU8sS0FBVSxFQUFFLEdBQUc7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxtQkFBbUI7UUFDckIsSUFBSTtZQUNBLE1BQU0sT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3REO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0wsQ0FBQzs7K0dBelFRLGtCQUFrQixnSUFxQmYsa0JBQWtCLGFBQ2xCLG9CQUFvQjttSEF0QnZCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBc0JRLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHtcclxuICAgIEF1dGhUb2tlbnMsIFNpZ25JbklucHV0LCBjb25maXJtUmVzZXRQYXNzd29yZCwgY29uZmlybVNpZ25JbiwgZmV0Y2hBdXRoU2Vzc2lvbixcclxuICAgIGdldEN1cnJlbnRVc2VyLCByZXNldFBhc3N3b3JkLCBzaWduSW4sIHNpZ25PdXRcclxufSBmcm9tIFwiYXdzLWFtcGxpZnkvYXV0aFwiO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQVVUSF9TRVJWSUNFX1RPS0VOLCBJQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvYXV0aC1zZXJ2aWNlLnRva2VuJztcclxuaW1wb3J0IHsgQ09ORklHX1NFUlZJQ0VfVE9LRU4sIElDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy1zZXJ2aWNlLnRva2VuJztcclxuaW1wb3J0IHsgTG9naW5Db25zdGFudCB9IGZyb20gXCIuLi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG5pbXBvcnQgeyBBbm5hTGliQWNsU2VydmljZSB9IGZyb20gJy4vYWNsLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbm5hTGliQXV0aFNlcnZpY2Uge1xyXG4gICAgZGVmYXVsdExvZ2luUGFnZVVybDogXCJjby1waWxvdC1sb2dpblwiIHwgXCJsb2dpblwiO1xyXG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcclxuICAgIElkVG9rZW46IGFueTtcclxuICAgIGxvZ2luRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgc2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHNldE5ld1Bhc3N3b3JkQnV0dG9uTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeUFuZFNldE5ld1Bhc3N3b3JkTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgdmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b246IHN0cmluZztcclxuICAgIG5vT2ZBdHRlbXB0cyA9IDA7XHJcbiAgICBzZXNzaW9uTG9ja2VkID0gZmFsc2U7XHJcbiAgICB1c2VyTmFtZTogYW55O1xyXG4gICAgYWNjZXNzVG9rZW5UaW1lcklkOiBhbnk7XHJcbiAgICBmb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXI6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBwdWJsaWMgYWNsU2VydmljZTogQW5uYUxpYkFjbFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlKSB7XHJcbiAgICAgICAgaWYgKCFjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbXVzdCBwcm92aWRlIGEgYXV0aFNlcnZpY2UnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7IH1cclxuXHJcbiAgICBhc3luYyBpc1VzZXJMb2dnZWRJbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyBhd2FpdCBnZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vzc2lvbjogYW55ID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlc3Npb24/LnRva2Vucykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuSWRUb2tlbiA9IHNlc3Npb24/LnRva2Vucy5pZFRva2VuLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHMoc2Vzc2lvbi50b2tlbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWRFcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uVGltZW91dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hY2Nlc3NUb2tlblRpbWVySWQpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXNzaW9uVGltZW91dCgpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5kZWZhdWx0TG9naW5QYWdlVXJsID8gdGhpcy5kZWZhdWx0TG9naW5QYWdlVXJsIDogTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb21wdXRlVG9rZW5FeHBpcmF0aW9uKGlkVG9rZW46IGFueSkge1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xyXG4gICAgICAgIGxldCB0b2tlblRpbWUgPSBpZFRva2VuLnBheWxvYWQuZXhwO1xyXG4gICAgICAgIGxldCBleHBUaW1lID0gKHRva2VuVGltZSAtIGN1cnJlbnRUaW1lKSAqIDEwMDA7XHJcbiAgICAgICAgcmV0dXJuIGV4cFRpbWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaGFuZGxlU2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH06IFNpZ25JbklucHV0KSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgeyBpc1NpZ25lZEluLCBuZXh0U3RlcCB9ID0gYXdhaXQgc2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG5leHRTdGVwPy5zaWduSW5TdGVwKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiRE9ORVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2dpbk9yU2V0TmV3UGFzc3dvcmQoc2Vzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uub25TdWNjZXNzZnVsQXV0aGVudGljYXRpbmdVc2VyKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhzZXNzaW9uLnRva2Vucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNPTkZJUk1fU0lHTl9JTl9XSVRIX05FV19QQVNTV09SRF9SRVFVSVJFRFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTmFtZSA9IHVzZXJuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LnNldE5ld1Bhc3N3b3JkVXJsXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlJFU0VUX1BBU1NXT1JEXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcj8ubWVzc2FnZSA9PSBMb2dpbkNvbnN0YW50LnRlbXBQYXNzd29yZEV4cGlyeUVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC50ZW1wUGFzc3dvcmRPbkV4cGlyeUVycm9yTXNnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uuc2VuZFJlZ2VuZXJhdGlvbkVtYWlsKHVzZXJuYW1lKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvcj8ubWVzc2FnZSA9PT0gXCJQYXNzd29yZCBhdHRlbXB0cyBleGNlZWRlZFwiKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5hdHRlbXB0TGltaXRFeGNlZWRlZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9naW5FcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LnVzZXJOYW1lUGFzc3dvcmRJbmNvcnJlY3Q7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Mb2dpbk9yU2V0TmV3UGFzc3dvcmQoc2Vzc2lvbjogYW55KSB7XHJcbiAgICAgICAgbGV0IG5ld0V4cFRpbWUgPSB0aGlzLmNvbXB1dGVUb2tlbkV4cGlyYXRpb24oc2Vzc2lvbi50b2tlbnMuaWRUb2tlbik7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NUb2tlbiA9IHNlc3Npb24udG9rZW5zLmFjY2Vzc1Rva2VuLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5JZFRva2VuID0gc2Vzc2lvbi50b2tlbnMuaWRUb2tlbi50b1N0cmluZygpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiYWNjZXNzVG9rZW5FeHBpcmF0aW9uXCIsIG5ld0V4cFRpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRBbGxDb2duaXRvVG9rZW5BbmRHcm91cHModG9rZW46IEF1dGhUb2tlbnMpIHtcclxuICAgICAgICB0aGlzLmFjY2Vzc1Rva2VuID0gdG9rZW4uYWNjZXNzVG9rZW4udG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLklkVG9rZW4gPSB0b2tlbi5pZFRva2VuO1xyXG4gICAgICAgIGlmIChcImNvZ25pdG86Z3JvdXBzXCIgaW4gdG9rZW4uYWNjZXNzVG9rZW4ucGF5bG9hZCkge1xyXG4gICAgICAgICAgICBsZXQgdXNlckdyb3Vwc0luQ29nbml0b0pXVDogYW55ID0gdG9rZW4uYWNjZXNzVG9rZW4ucGF5bG9hZFtcImNvZ25pdG86Z3JvdXBzXCJdO1xyXG4gICAgICAgICAgICB0aGlzLmFjbFNlcnZpY2UudXNlckdyb3Vwc0luQ29nbml0b0pXVCA9IHVzZXJHcm91cHNJbkNvZ25pdG9KV1Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5hY2xTZXJ2aWNlLnVzZXJHcm91cHNJbkNvZ25pdG9KV1QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaEFjY2Vzc1Rva2VuKCkge1xyXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbkV4cGlyYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiKTtcclxuICAgICAgICBsZXQgZXhwVGltZSA9IGFjY2Vzc1Rva2VuRXhwaXJhdGlvbiA/IHBhcnNlSW50KGFjY2Vzc1Rva2VuRXhwaXJhdGlvbikgOiAwO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDEwMDA7XHJcbiAgICAgICAgICAgIGxldCBkZWxheUZ1bmN0aW9uID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzZXNzaW9uID0gYXdhaXQgZmV0Y2hBdXRoU2Vzc2lvbigpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB0b2tlbiA9IHNlc3Npb24udG9rZW5zO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3Vwcyh0b2tlbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdFeHBUaW1lID0gdGhpcy5jb21wdXRlVG9rZW5FeHBpcmF0aW9uKHRoaXMuSWRUb2tlbik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3RXhwVGltZSA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdFeHBUaW1lID0gMTAwMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlbGF5RnVuY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGRlbGF5RnVuY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cFRpbWUgPSBuZXdFeHBUaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImFjY2Vzc1Rva2VuRXhwaXJhdGlvblwiLCBuZXdFeHBUaW1lLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYWNjZXNzVG9rZW5UaW1lcklkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoQWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25UaW1lb3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LnNlc3Npb25FeHBpcmVkRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblRpbWVvdXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgY291bnRlcik7XHJcbiAgICAgICAgfSwgZXhwVGltZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2hhbmdlUGFzc3dvcmQobmV3UGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCBpbnB1dFBhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgY2hhbGxlbmdlUmVzcG9uc2U6IG5ld1Bhc3N3b3JkLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBjb25maXJtU2lnbkluKGlucHV0UGFyYW0pO1xyXG4gICAgICAgICAgICBjb25zdCB7IHVzZXJuYW1lIH0gPSBhd2FpdCBnZXRDdXJyZW50VXNlcigpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBhd2FpdCBmZXRjaEF1dGhTZXNzaW9uKCk7XHJcbiAgICAgICAgICAgIHRoaXMub25Mb2dpbk9yU2V0TmV3UGFzc3dvcmQoc2Vzc2lvbik7XHJcbiAgICAgICAgICAgIHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLm9uUGFzc3dvcmRVcGRhdGUodXNlcm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UubmV3UGFzc3dvcmRTZXRUaGVuVXBkYXRlVG9CYWNrZW5kKHVzZXJuYW1lKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5zZXROZXdQYXNzd29yZEVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuc2Vzc2lvbkV4cGlyZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmV3UGFzc3dvcmRCdXR0b25NZXNzYWdlID0gTG9naW5Db25zdGFudC5sb2dpbkFnYWluO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkZvcmdvdFBhc3N3b3JkR2VuZXJhdGVPVFAoZW1haWw6IHN0cmluZykge1xyXG4gICAgICAgIGxldCB1c2VybmFtZSA9IGVtYWlsO1xyXG4gICAgICAgIHRoaXMudXNlck5hbWUgPSBlbWFpbDtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0OiBhbnkgPSBhd2FpdCByZXNldFBhc3N3b3JkKHsgdXNlcm5hbWUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlID1cclxuICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRNZXNzYWdlICtcclxuICAgICAgICAgICAgICAgIHJlc3VsdD8ubmV4dFN0ZXA/LmNvZGVEZWxpdmVyeURldGFpbHM/LmRlc3RpbmF0aW9uICtcclxuICAgICAgICAgICAgICAgIExvZ2luQ29uc3RhbnQucGxlYXNlRW50ZXJJdEJlbG93O1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC52ZXJpZnlBbmRTZXROZXdQYXNzd29yZFVybF0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyB2ZXJpZnlDb2RlKGNvbmZpcm1hdGlvbkNvZGU6IHN0cmluZywgbmV3UGFzc3dvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IHsgdXNlcm5hbWUgfSA9IGF3YWl0IGdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICAgICAgICAgIGNvbmZpcm1SZXNldFBhc3N3b3JkKHsgdXNlcm5hbWU6IHRoaXMudXNlck5hbWUsIG5ld1Bhc3N3b3JkOiBuZXdQYXNzd29yZCwgY29uZmlybWF0aW9uQ29kZTogY29uZmlybWF0aW9uQ29kZSB9KTtcclxuICAgICAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2Uub25QYXNzd29yZFVwZGF0ZSh0aGlzLnVzZXJOYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5leHBpcnlBbGxFeGlzdGluZ0N1cnJlbnRTZXNzaW9uKHRoaXMudXNlck5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5ub09mQXR0ZW1wdHMgPSB0aGlzLm5vT2ZBdHRlbXB0cyArIDE7XHJcbiAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRFcnJvck1lc3NhZ2UgPSB0aGlzLmZvcmdvdFBhc3N3b3JkRXJyb3IoZXJyLCB0aGlzLm5vT2ZBdHRlbXB0cyk7XHJcbiAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgdGhpcy5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yZ290UGFzc3dvcmRFcnJvcihlcnI6IGFueSwgbm9PZkF0dGVtcHRzOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlO1xyXG4gICAgICAgIHN3aXRjaCAoZXJyLmNvZGUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIkxpbWl0RXhjZWVkZWRFeGNlcHRpb25cIjpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkxvY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBMb2dpbkNvbnN0YW50LmF0dGVtcHRMaW1pdEV4Y2VlZGVkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJFeHBpcmVkQ29kZUV4Y2VwdGlvblwiOlxyXG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gTG9naW5Db25zdGFudC5zZXNzaW9uRXhwaXJlZDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QW5kU2V0TmV3UGFzc3dvcmRCdXR0b24gPSBMb2dpbkNvbnN0YW50LnJlZ2VuZXJhdGVPdHA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IExvZ2luQ29uc3RhbnQuYXR0ZW1wdCArIFwiIFwiICsgbm9PZkF0dGVtcHRzICsgTG9naW5Db25zdGFudC5hdHRlbXB0TWVzc2FnZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2lnbkluV2l0aER1bygpIHtcclxuICAgICAgICB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5zaWduSW5XaXRoRHVvKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaGFuZGxlU2lnbk91dCgpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCBzaWduT3V0KHsgZ2xvYmFsOiBmYWxzZSB9KTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3Igc2lnbmluZyBvdXQ6ICcsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwaXJ5QWxsRXhpc3RpbmdDdXJyZW50U2Vzc2lvbih1c2VybmFtZTogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZXRVc2VyRGV0YWlscygpO1xyXG4gICAgICAgIHRoaXMub25Mb2dpbkluQ29nbnRpb1RvR2V0QWNjZXNzVG9rZW4odXNlcm5hbWUsIG5ld1Bhc3N3b3JkKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRVc2VyRGV0YWlscygpIHtcclxuICAgICAgICB0aGlzLmxvZ2luRXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkxvZ2luSW5Db2dudGlvVG9HZXRBY2Nlc3NUb2tlbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3QgeyBpc1NpZ25lZEluLCBuZXh0U3RlcCB9ID0gYXdhaXQgc2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0pO1xyXG4gICAgICAgICAgICBsZXQgc2Vzc2lvbiA9IGF3YWl0IGZldGNoQXV0aFNlc3Npb24oKTtcclxuICAgICAgICAgICAgc3dpdGNoIChuZXh0U3RlcD8uc2lnbkluU3RlcCkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkRPTkVcIjpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEFsbENvZ25pdG9Ub2tlbkFuZEdyb3VwcyhzZXNzaW9uLnRva2Vucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNhbGxHbG9iYWxTaWdub3V0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7IH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvbkNhbGxHbG9iYWxTaWdub3V0KCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBnbG9iYWw6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciBzaWduaW5nIG91dDogJywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, Inject, Directive, Input, Component, EventEmitter, Output, NgModule } from '@angular/core';
3
3
  import { __awaiter } from 'tslib';
4
- import { getCurrentUser, fetchAuthSession, signIn, confirmSignIn, resetPassword, confirmResetPassword, signOut } from 'aws-amplify/auth';
4
+ import { fetchAuthSession, signIn, confirmSignIn, getCurrentUser, resetPassword, confirmResetPassword, signOut } from 'aws-amplify/auth';
5
5
  import * as i3 from '@angular/router';
6
6
  import { RouterModule } from '@angular/router';
7
7
  import * as i3$1 from '@angular/common/http';
@@ -118,7 +118,7 @@ class AnnaLibAuthService {
118
118
  isUserLoggedIn() {
119
119
  return __awaiter(this, void 0, void 0, function* () {
120
120
  try {
121
- yield getCurrentUser();
121
+ // await getCurrentUser();
122
122
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
123
123
  const session = yield fetchAuthSession();
124
124
  if (session === null || session === void 0 ? void 0 : session.tokens) {
@@ -144,7 +144,7 @@ class AnnaLibAuthService {
144
144
  sessionTimeout() {
145
145
  localStorage.clear();
146
146
  clearInterval(this.accessTokenTimerId);
147
- this.router.navigate([LoginConstant.loginPageUrl]);
147
+ this.router.navigate([this.defaultLoginPageUrl ? this.defaultLoginPageUrl : LoginConstant.loginPageUrl]);
148
148
  }
149
149
  computeTokenExpiration(idToken) {
150
150
  let currentTime = Math.floor(Date.now() / 1000);
@@ -159,11 +159,7 @@ class AnnaLibAuthService {
159
159
  switch (nextStep === null || nextStep === void 0 ? void 0 : nextStep.signInStep) {
160
160
  case "DONE":
161
161
  let session = yield fetchAuthSession();
162
- let newExpTime = this.computeTokenExpiration(session.tokens.idToken);
163
- this.accessToken = session.tokens.accessToken.toString();
164
- localStorage.setItem("accessTokenExpiration", newExpTime.toString());
165
- this.refreshAccessToken();
166
- this.loginErrorMessage = null;
162
+ this.onLoginOrSetNewPassword(session);
167
163
  yield this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(false);
168
164
  this.getAllCognitoTokenAndGroups(session.tokens);
169
165
  break;
@@ -192,6 +188,14 @@ class AnnaLibAuthService {
192
188
  }
193
189
  });
194
190
  }
191
+ onLoginOrSetNewPassword(session) {
192
+ let newExpTime = this.computeTokenExpiration(session.tokens.idToken);
193
+ this.accessToken = session.tokens.accessToken.toString();
194
+ this.IdToken = session.tokens.idToken.toString();
195
+ localStorage.setItem("accessTokenExpiration", newExpTime.toString());
196
+ this.refreshAccessToken();
197
+ this.loginErrorMessage = null;
198
+ }
195
199
  getAllCognitoTokenAndGroups(token) {
196
200
  return __awaiter(this, void 0, void 0, function* () {
197
201
  this.accessToken = token.accessToken.toString();
@@ -250,6 +254,8 @@ class AnnaLibAuthService {
250
254
  const data = yield confirmSignIn(inputParam);
251
255
  const { username } = yield getCurrentUser();
252
256
  console.log(data);
257
+ let session = yield fetchAuthSession();
258
+ this.onLoginOrSetNewPassword(session);
253
259
  this.consumingProjectAuthService.onPasswordUpdate(username);
254
260
  this.router.navigate([LoginConstant.loginPageUrl]);
255
261
  this.consumingProjectAuthService.newPasswordSetThenUpdateToBackend(username);
@@ -280,16 +286,18 @@ class AnnaLibAuthService {
280
286
  }
281
287
  verifyCode(confirmationCode, newPassword) {
282
288
  return __awaiter(this, void 0, void 0, function* () {
283
- const { username } = yield getCurrentUser();
284
289
  try {
285
- confirmResetPassword({ username, newPassword, confirmationCode });
286
- this.consumingProjectAuthService.onPasswordUpdate(username);
287
- this.expiryAllExistingCurrentSession(username, newPassword);
290
+ // const { username } = await getCurrentUser();
291
+ confirmResetPassword({ username: this.userName, newPassword: newPassword, confirmationCode: confirmationCode });
292
+ this.consumingProjectAuthService.onPasswordUpdate(this.userName);
293
+ this.expiryAllExistingCurrentSession(this.userName, newPassword);
288
294
  }
289
295
  catch (err) {
290
296
  console.log(err);
291
297
  this.noOfAttempts = this.noOfAttempts + 1;
292
298
  this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);
299
+ }
300
+ finally {
293
301
  this.forgotPasswordAndGlobalSignoutLoader = false;
294
302
  }
295
303
  });
@@ -699,6 +707,7 @@ class ForgotPasswordComponent {
699
707
  if (this.authService.userName) {
700
708
  this.onUpdateForm();
701
709
  }
710
+ this.authService.forgotPasswordAndGlobalSignoutLoader = false;
702
711
  }
703
712
  onIntialiseForm() {
704
713
  this.verifyRegisteredEmail = this.fb.group({