@annalib/anna-cognito-lib 3.0.13 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,7 +42,7 @@ export class AnnaLoginComponent {
42
42
  this.authService.handleSignIn({ username, password });
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaLoginComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: CONFIG_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AnnaLoginComponent, isStandalone: true, selector: "anna-cognito-lib-anna-login", ngImport: i0, template: "<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img\r\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n width=\"145\"\r\n height=\"50\"\r\n alt=\"Anna Logo\"\r\n priority\r\n />\r\n </header>\r\n <article>\r\n <form\r\n [formGroup]=\"loginForm\"\r\n (ngSubmit)=\"OnLogin()\"\r\n >\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"authService.loginErrorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterUsername\r\n \"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a\r\n tabindex=\"4\"\r\n [routerLink]=\"constants.forgortPasswordPageUrl\"\r\n >{{ constants.forgotPassword }}</a\r\n >\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[annaCognitoSpinnerBtn]", inputs: ["spinnerButtonLoading", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AnnaLoginComponent, isStandalone: true, selector: "anna-cognito-lib-anna-login", ngImport: i0, template: "<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img\r\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n width=\"145\"\r\n height=\"50\"\r\n alt=\"Anna Logo\"\r\n priority\r\n />\r\n </header>\r\n <article>\r\n <form\r\n [formGroup]=\"loginForm\"\r\n (ngSubmit)=\"OnLogin()\"\r\n >\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"authService.loginErrorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a\r\n tabindex=\"4\"\r\n [routerLink]=\"constants.forgortPasswordPageUrl\"\r\n >{{ constants.forgotPassword }}</a\r\n >\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[annaCognitoSpinnerBtn]", inputs: ["spinnerButtonLoading", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaLoginComponent, decorators: [{
48
48
  type: Component,
@@ -57,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
57
57
  PoweredByLogoTemplateComponent,
58
58
  SurewavesYearLogoComponent,
59
59
  VersionAndTermPolicyComponent,
60
- ], template: "<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img\r\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n width=\"145\"\r\n height=\"50\"\r\n alt=\"Anna Logo\"\r\n priority\r\n />\r\n </header>\r\n <article>\r\n <form\r\n [formGroup]=\"loginForm\"\r\n (ngSubmit)=\"OnLogin()\"\r\n >\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"authService.loginErrorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterUsername\r\n \"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a\r\n tabindex=\"4\"\r\n [routerLink]=\"constants.forgortPasswordPageUrl\"\r\n >{{ constants.forgotPassword }}</a\r\n >\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"] }]
60
+ ], template: "<div class=\"main\">\r\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\r\n <section *ngIf=\"constants.forgotPassword\">\r\n <header>\r\n <img\r\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n width=\"145\"\r\n height=\"50\"\r\n alt=\"Anna Logo\"\r\n priority\r\n />\r\n </header>\r\n <article>\r\n <form\r\n [formGroup]=\"loginForm\"\r\n (ngSubmit)=\"OnLogin()\"\r\n >\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"authService.loginErrorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p>{{ authService.loginErrorMessage }}</p>\r\n </div>\r\n\r\n <input\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"username\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n autocomplete=\"username\"\r\n autofocus\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\r\n [placeholder]=\"constants.password\"\r\n autocomplete=\"current-password\"\r\n autofocus\r\n />\r\n\r\n <a\r\n tabindex=\"4\"\r\n [routerLink]=\"constants.forgortPasswordPageUrl\"\r\n >{{ constants.forgotPassword }}</a\r\n >\r\n <button\r\n tabindex=\"3\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\r\n [spinnerButtonText]=\"constants.login\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}a{float:right;color:#268bff;font-family:Roboto;font-size:.875rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;text-decoration:underline;margin-bottom:.9375rem}a:hover{cursor:pointer}\n"] }]
61
61
  }], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: undefined, decorators: [{
62
62
  type: Inject,
63
63
  args: [CONFIG_SERVICE_TOKEN]
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
65
65
  type: Inject,
66
66
  args: [SSO_LOGIN_SERVICE_TOKEN]
67
67
  }] }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29tcG9uZW50cy9hbm5hLWxvZ2luL2FubmEtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYW5uYS1sb2dpbi9hbm5hLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pHLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFvQjdHLE1BQU0sT0FBTyxrQkFBa0I7SUFJM0IsWUFDVyxXQUErQixFQUM5QixFQUFlLEVBQ2MsNkJBQTZDLEVBQzFDLCtCQUFpRDtRQUhsRixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNjLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBZ0I7UUFDMUMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFrQjtJQUMxRixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNqRSxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNoQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0E5QlEsa0JBQWtCLCtFQU9mLG9CQUFvQixhQUNwQix1QkFBdUI7bUdBUjFCLGtCQUFrQix1RkNuQy9CLG85RkF5RUEsK2xHRGxEUSxJQUFJLDZGQUNKLGdCQUFnQiwyTUFDaEIsV0FBVywycEJBQ1gsbUJBQW1CLGdWQUNuQixPQUFPLG9GQUNQLFVBQVUsNE5BQ1Ysc0JBQXNCLDJIQUN0Qiw4QkFBOEIsc0ZBQzlCLDBCQUEwQixpRkFDMUIsNkJBQTZCOzs0RkFHeEIsa0JBQWtCO2tCQWxCOUIsU0FBUzsrQkFDSSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNMLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLDZCQUE2QjtxQkFDaEM7OzBCQVNJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cclxuLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgSVNTT0xvZ2luU2VydmljZSwgU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4gfSBmcm9tIFwiLi4vLi4vY29uZmlnL3Nzby1sb2dpbi1zZXJ2aWNlLnRva2VuXCI7XHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IFNwaW5uZXJCdXR0b25EaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbi9zcGlubmVyLWJ1dHRvbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgQW5uYUxpYkF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQgfSBmcm9tIFwiLi4vc3VyZXdhdmVzLXllYXItbG9nby9zdXJld2F2ZXMteWVhci1sb2dvLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCB9IGZyb20gXCIuLi92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5uYS1jb2duaXRvLWxpYi1hbm5hLWxvZ2luXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FubmEtbG9naW4uY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9hbm5hLWxvZ2luLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nT3B0aW1pemVkSW1hZ2UsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ0NsYXNzLFxyXG4gICAgICAgIFJvdXRlckxpbmssXHJcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgICAgICBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgICAgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQsXHJcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUxvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGxvZ2luRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY29uc3RhbnRzOiB0eXBlb2YgTG9naW5Db25zdGFudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlOiBJU1NPTG9naW5TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlLmxvZ2dlZEluVmlhU3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xyXG4gICAgICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIHVzZXJuYW1lOiBbbnVsbF0sXHJcbiAgICAgICAgICAgIHBhc3N3b3JkOiBbbnVsbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgT25Mb2dpbigpIHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmxvZ2luRm9ybS5jb250cm9scy51c2VybmFtZS52YWx1ZTtcclxuICAgICAgICBjb25zdCBwYXNzd29yZCA9IHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaGFuZGxlU2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICA8IS0tIExvYWQgbG9naW4gcGFnZSB3aGVuIGFsbCBjb25zdGFudCB2YXJpYWJsZSBhcmUgaW50aWF0ZWQgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBhIGdsaXRjaC4gdGhhdCdzIHdoeSBuZ0lmIGNoZWNrIG9mIGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZCAtLT5cclxuICAgIDxzZWN0aW9uICpuZ0lmPVwiY29uc3RhbnRzLmZvcmdvdFBhc3N3b3JkXCI+XHJcbiAgICAgICAgPGhlYWRlcj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgW25nU3JjXT1cImNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlLmFwcEdlbmVyaWNDb25maWcubG9naW5QYWdlTG9nb0ltZ1VybFwiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjE0NVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJBbm5hIExvZ29cIlxyXG4gICAgICAgICAgICAgICAgcHJpb3JpdHlcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2hlYWRlcj5cclxuICAgICAgICA8YXJ0aWNsZT5cclxuICAgICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCJcclxuICAgICAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJPbkxvZ2luKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhbGVydC1kaXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZXBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLmxvZ2luRXJyb3JNZXNzYWdlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5lbnRlclVzZXJDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5lbnRlclVzZXJuYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLmxvZ2luRXJyb3JNZXNzYWdlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25zdGFudHMucGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29uc3RhbnRzLmZvcmdvcnRQYXNzd29yZFBhZ2VVcmxcIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmQgfX08L2FcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICBhbm5hQ29nbml0b1NwaW5uZXJCdG5cclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvbkxvYWRpbmddPVwiYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiY29uc3RhbnRzLmxvZ2luXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICA8Zm9vdGVyPlxyXG4gICAgICAgICAgICA8YW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+IDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBhZ2UtZm9vdGVyXCI+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxyXG4gICAgPGFubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+PC9hbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PlxyXG48L2Rpdj5cclxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvZ25pdG8tbGliL3NyYy9saWIvY29tcG9uZW50cy9hbm5hLWxvZ2luL2FubmEtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYW5uYS1sb2dpbi9hbm5hLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pHLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOERBQThELENBQUM7Ozs7QUFvQjdHLE1BQU0sT0FBTyxrQkFBa0I7SUFJM0IsWUFDVyxXQUErQixFQUM5QixFQUFlLEVBQ2MsNkJBQTZDLEVBQzFDLCtCQUFpRDtRQUhsRixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNjLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBZ0I7UUFDMUMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFrQjtJQUMxRixDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUNqRSxJQUFJLENBQUMsK0JBQStCLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNoQixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzsrR0E5QlEsa0JBQWtCLCtFQU9mLG9CQUFvQixhQUNwQix1QkFBdUI7bUdBUjFCLGtCQUFrQix1RkNuQy9CLGk5RkF5RUEsK2xHRGxEUSxJQUFJLDZGQUNKLGdCQUFnQiwyTUFDaEIsV0FBVywycEJBQ1gsbUJBQW1CLGdWQUNuQixPQUFPLG9GQUNQLFVBQVUsNE5BQ1Ysc0JBQXNCLDJIQUN0Qiw4QkFBOEIsc0ZBQzlCLDBCQUEwQixpRkFDMUIsNkJBQTZCOzs0RkFHeEIsa0JBQWtCO2tCQWxCOUIsU0FBUzsrQkFDSSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNMLElBQUk7d0JBQ0osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLHNCQUFzQjt3QkFDdEIsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLDZCQUE2QjtxQkFDaEM7OzBCQVNJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cclxuLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ09wdGltaXplZEltYWdlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuXHJcbmltcG9ydCB7IENPTkZJR19TRVJWSUNFX1RPS0VOLCBJQ29uZmlnU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgSVNTT0xvZ2luU2VydmljZSwgU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4gfSBmcm9tIFwiLi4vLi4vY29uZmlnL3Nzby1sb2dpbi1zZXJ2aWNlLnRva2VuXCI7XHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcbmltcG9ydCB7IFNwaW5uZXJCdXR0b25EaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbi9zcGlubmVyLWJ1dHRvbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgQW5uYUxpYkF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQgfSBmcm9tIFwiLi4vc3VyZXdhdmVzLXllYXItbG9nby9zdXJld2F2ZXMteWVhci1sb2dvLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCB9IGZyb20gXCIuLi92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS92ZXJzaW9uLWFuZC10ZXJtLXBvbGljeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5uYS1jb2duaXRvLWxpYi1hbm5hLWxvZ2luXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FubmEtbG9naW4uY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9hbm5hLWxvZ2luLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nT3B0aW1pemVkSW1hZ2UsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ0NsYXNzLFxyXG4gICAgICAgIFJvdXRlckxpbmssXHJcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgICAgICBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgICAgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQsXHJcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYUxvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIGxvZ2luRm9ybTogRm9ybUdyb3VwO1xyXG4gICAgY29uc3RhbnRzOiB0eXBlb2YgTG9naW5Db25zdGFudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoU1NPX0xPR0lOX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlOiBJU1NPTG9naW5TZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlLmxvZ2dlZEluVmlhU3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xyXG4gICAgICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIHVzZXJuYW1lOiBbbnVsbF0sXHJcbiAgICAgICAgICAgIHBhc3N3b3JkOiBbbnVsbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgT25Mb2dpbigpIHtcclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc0xvZ2dpbmdJbiA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB0aGlzLmxvZ2luRm9ybS5jb250cm9scy51c2VybmFtZS52YWx1ZTtcclxuICAgICAgICBjb25zdCBwYXNzd29yZCA9IHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaGFuZGxlU2lnbkluKHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICA8IS0tIExvYWQgbG9naW4gcGFnZSB3aGVuIGFsbCBjb25zdGFudCB2YXJpYWJsZSBhcmUgaW50aWF0ZWQgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBhIGdsaXRjaC4gdGhhdCdzIHdoeSBuZ0lmIGNoZWNrIG9mIGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZCAtLT5cclxuICAgIDxzZWN0aW9uICpuZ0lmPVwiY29uc3RhbnRzLmZvcmdvdFBhc3N3b3JkXCI+XHJcbiAgICAgICAgPGhlYWRlcj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgW25nU3JjXT1cImNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlLmFwcEdlbmVyaWNDb25maWcubG9naW5QYWdlTG9nb0ltZ1VybFwiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjE0NVwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCI1MFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJBbm5hIExvZ29cIlxyXG4gICAgICAgICAgICAgICAgcHJpb3JpdHlcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2hlYWRlcj5cclxuICAgICAgICA8YXJ0aWNsZT5cclxuICAgICAgICAgICAgPGZvcm1cclxuICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCJcclxuICAgICAgICAgICAgICAgIChuZ1N1Ym1pdCk9XCJPbkxvZ2luKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhbGVydC1kaXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZXBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgYXV0aFNlcnZpY2UubG9naW5FcnJvck1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLmxvZ2luRXJyb3JNZXNzYWdlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5lbnRlclVzZXJDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5lbnRlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJ1c2VybmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IGF1dGhTZXJ2aWNlLmxvZ2luRXJyb3JNZXNzYWdlIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25zdGFudHMucGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cImN1cnJlbnQtcGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xyXG4gICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY29uc3RhbnRzLmZvcmdvcnRQYXNzd29yZFBhZ2VVcmxcIlxyXG4gICAgICAgICAgICAgICAgICAgID57eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmQgfX08L2FcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICBhbm5hQ29nbml0b1NwaW5uZXJCdG5cclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvbkxvYWRpbmddPVwiYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzTG9nZ2luZ0luXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiY29uc3RhbnRzLmxvZ2luXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICA8Zm9vdGVyPlxyXG4gICAgICAgICAgICA8YW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+IDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBhZ2UtZm9vdGVyXCI+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxyXG4gICAgPGFubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+PC9hbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PlxyXG48L2Rpdj5cclxuIl19
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable import/no-extraneous-dependencies */
2
2
  // Angular import statements
3
3
  import { NgClass, NgIf } from "@angular/common";
4
- import { Component, Inject, Optional } from "@angular/core";
4
+ import { Component, Inject } from "@angular/core";
5
5
  import { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from "@angular/forms";
6
6
  import { Router } from "@angular/router";
7
7
  // Third party import statements
@@ -37,7 +37,6 @@ export class ForgotPasswordComponent {
37
37
  this.confirmPassword = { value: null, status: null };
38
38
  this.infoMessageToRedirectLogin = null;
39
39
  this.isLoading = false;
40
- this.emailPattern = /\S+@\S+\.\S+/;
41
40
  }
42
41
  ngOnInit() {
43
42
  this.infoMessageToRedirectLogin = null;
@@ -49,16 +48,9 @@ export class ForgotPasswordComponent {
49
48
  this.authService.forgotPasswordAndGlobalSignoutLoader = false;
50
49
  }
51
50
  onIntialiseForm() {
52
- if (this.consumingProjectConfigService.isCatcApplication) {
53
- this.verifyRegisteredEmail = this.fb.group({
54
- email: [null, [Validators.required, Validators.pattern(this.emailPattern)]],
55
- });
56
- }
57
- else {
58
- this.verifyRegisteredEmail = this.fb.group({
59
- email: [null, [Validators.required]],
60
- });
61
- }
51
+ this.verifyRegisteredEmail = this.fb.group({
52
+ email: [null, [Validators.required]],
53
+ });
62
54
  }
63
55
  onUpdateForm() {
64
56
  this.verifyRegisteredEmail.patchValue({
@@ -69,12 +61,13 @@ export class ForgotPasswordComponent {
69
61
  return this.verifyRegisteredEmail.valid;
70
62
  }
71
63
  onLoginOrGetOtpButtonClick() {
64
+ if (this.verifyRegisteredEmail.get("email")?.value === "") {
65
+ this.errorMessage = this.constants.userNotFound;
66
+ return;
67
+ }
72
68
  if (this.infoMessageToRedirectLogin) {
73
69
  this.router.navigate([LoginConstant.loginPageUrl]);
74
70
  }
75
- else if (this.consumingProjectConfigService?.isCatcApplication) {
76
- this.onVerifyingRegisteredEmailForCatc();
77
- }
78
71
  else {
79
72
  this.onVerifyRegisteredEmail();
80
73
  }
@@ -104,29 +97,6 @@ export class ForgotPasswordComponent {
104
97
  },
105
98
  });
106
99
  }
107
- onVerifyingRegisteredEmailForCatc() {
108
- this.isLoading = true;
109
- this.errorMessage = null;
110
- this.infoMessageToRedirectLogin = null;
111
- const useremail = this.verifyRegisteredEmail.controls.email.value;
112
- this.authService.consumingProjectAuthService.isUsernameAvailable(useremail).subscribe((isEmailAvailable) => {
113
- if (isEmailAvailable) {
114
- this.authService.onForgotPasswordGenerateOTP(useremail);
115
- }
116
- else {
117
- this.errorMessage = this.constants.userNotFound;
118
- }
119
- this.isLoading = false;
120
- }, (error) => {
121
- if (error.status === 400) {
122
- this.errorMessage = this.constants.userNotFound;
123
- }
124
- else {
125
- this.toastr.error(LoginConstant.apiFailErrorMessage);
126
- }
127
- this.isLoading = false;
128
- });
129
- }
130
100
  onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username) {
131
101
  if (!isUsernameAvailable) {
132
102
  if (!isUserWithTempPassword) {
@@ -140,8 +110,8 @@ export class ForgotPasswordComponent {
140
110
  this.errorMessage = this.constants.userNotFound;
141
111
  }
142
112
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i3.ToastrService }, { token: i4.Router }, { token: CONFIG_SERVICE_TOKEN }, { token: AUTH_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ForgotPasswordComponent, isStandalone: true, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\r\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectConfigService.isCatcApplication\r\n ? constants.PleaseEnterYourEmailMessage\r\n : consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectConfigService.isCatcApplication\r\n ? constants.enterEmail\r\n : consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterUsername\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}section.catc-forget-password input[type=password],section.catc-forget-password input[type=text],section.catc-forget-password input[type=number]{width:88%;height:4px;font-size:14px}section.catc-forget-password .login-btn{background-color:#9b1cd5!important}section.catc-forget-password header{margin-bottom:25px}section.catc-forget-password header img{height:45.03px;width:145px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[annaCognitoSpinnerBtn]", inputs: ["spinnerButtonLoading", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i3.ToastrService }, { token: i4.Router }, { token: CONFIG_SERVICE_TOKEN }, { token: AUTH_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ForgotPasswordComponent, isStandalone: true, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n (verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors) ||\r\n errorMessage\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[annaCognitoSpinnerBtn]", inputs: ["spinnerButtonLoading", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
145
115
  }
146
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
147
117
  type: Component,
@@ -154,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
154
124
  PoweredByLogoTemplateComponent,
155
125
  SurewavesYearLogoComponent,
156
126
  VersionAndTermPolicyComponent,
157
- ], template: "<div class=\"main\">\r\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectConfigService.isCatcApplication\r\n ? constants.PleaseEnterYourEmailMessage\r\n : consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectConfigService.isCatcApplication\r\n ? constants.enterEmail\r\n : consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterUsername\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}section.catc-forget-password input[type=password],section.catc-forget-password input[type=text],section.catc-forget-password input[type=number]{width:88%;height:4px;font-size:14px}section.catc-forget-password .login-btn{background-color:#9b1cd5!important}section.catc-forget-password header{margin-bottom:25px}section.catc-forget-password header img{height:45.03px;width:145px}\n"] }]
127
+ ], template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n (verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors) ||\r\n errorMessage\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n annaCognitoSpinnerBtn\r\n [spinnerButtonLoading]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"] }]
158
128
  }], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i3.ToastrService }, { type: i4.Router }, { type: undefined, decorators: [{
159
129
  type: Inject,
160
130
  args: [CONFIG_SERVICE_TOKEN]
@@ -162,9 +132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
162
132
  type: Inject,
163
133
  args: [AUTH_SERVICE_TOKEN]
164
134
  }] }, { type: undefined, decorators: [{
165
- type: Optional
166
- }, {
167
135
  type: Inject,
168
136
  args: [SSO_LOGIN_SERVICE_TOKEN]
169
137
  }] }]; } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsNEJBQTRCO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFvQix1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwREFBMEQsQ0FB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cy1kZXBlbmRlbmNpZXMgKi9cclxuLy8gQW5ndWxhciBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEFVVEhfU0VSVklDRV9UT0tFTiwgSUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgQ09ORklHX1NFUlZJQ0VfVE9LRU4sIElDb25maWdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlblwiO1xyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gXCIuLi8uLi9jb25maWcvc3NvLWxvZ2luLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgTG9naW5Db25zdGFudCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG5pbXBvcnQgeyBTcGlubmVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvc3Bpbm5lci1idXR0b24vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlXCI7XHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBVc2VybmFtZUluZm8sIFVzZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXV0aC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hTGliQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBvd2VyZWRCeUxvZ29UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGUvcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCB9IGZyb20gXCIuLi9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZlcnNpb25BbmRUZXJtUG9saWN5Q29tcG9uZW50IH0gZnJvbSBcIi4uL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudFwiO1xyXG5cclxudHlwZSBQYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBzdHJpbmc7IHN0YXR1czogc3RyaW5nIH07XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5uYS1jb2duaXRvLWxpYi1mb3Jnb3QtcGFzc3dvcmRcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgTmdDbGFzcyxcclxuICAgICAgICBTcGlubmVyQnV0dG9uRGlyZWN0aXZlLFxyXG4gICAgICAgIFBvd2VyZWRCeUxvZ29UZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCxcclxuICAgICAgICBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbDogRm9ybUdyb3VwO1xyXG4gICAgcGFzc3dvcmROb3RNYXRjaGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3RhbnRzOiB0eXBlb2YgTG9naW5Db25zdGFudDtcclxuICAgIHBhc3N3b3JkOiBQYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBudWxsLCBzdGF0dXM6IG51bGwgfTtcclxuICAgIGNvbmZpcm1QYXNzd29yZDogUGFzc3dvcmRUeXBlID0geyB2YWx1ZTogbnVsbCwgc3RhdHVzOiBudWxsIH07XHJcbiAgICBpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbjogc3RyaW5nID0gbnVsbDtcclxuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZW1haWxQYXR0ZXJuID0gL1xcUytAXFxTK1xcLlxcUysvO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIEBJbmplY3QoQ09ORklHX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZTogSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IExvZ2luQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy5vbkludGlhbGlzZUZvcm0oKTtcclxuICAgICAgICBpZiAodGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UudXNlck5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZUZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkludGlhbGlzZUZvcm0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuaXNDYXRjQXBwbGljYXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGVtYWlsOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLmVtYWlsUGF0dGVybildXSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgIGVtYWlsOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlRm9ybSgpIHtcclxuICAgICAgICB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgZW1haWw6IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRm9ybVZhbGlkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpIHtcclxuICAgICAgICBpZiAodGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbikge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbTG9naW5Db25zdGFudC5sb2dpblBhZ2VVcmxdKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U/LmlzQ2F0Y0FwcGxpY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25WZXJpZnlpbmdSZWdpc3RlcmVkRW1haWxGb3JDYXRjKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwuY29udHJvbHMuZW1haWwudmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzVXNlck5hbWVBdmFpbGFibGUgPSB0aGlzLmF1dGhTZXJ2aWNlLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc1VzZXJuYW1lQXZhaWxhYmxlKHVzZXJuYW1lKTtcclxuICAgICAgICBjb25zdCBpc1VzZXJuYW1lVGVtcFBhc3N3b3JkU2V0ID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuZ2V0VXNlclN0YXRlKHVzZXJuYW1lKTtcclxuXHJcbiAgICAgICAgZm9ya0pvaW4oW2lzVXNlck5hbWVBdmFpbGFibGUsIGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXRdKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVXNlcm5hbWVBdmFpbGFibGUgfSA9IG5ldyBVc2VybmFtZUluZm8ocmVzdWx0WzBdKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNVc2VyV2l0aFRlbXBQYXNzd29yZCB9ID0gbmV3IFVzZXJTdGF0ZShyZXN1bHRbMV0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGUsIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQsIHVzZXJuYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LmFwaUZhaWxFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG9uVmVyaWZ5aW5nUmVnaXN0ZXJlZEVtYWlsRm9yQ2F0YygpIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IHVzZXJlbWFpbCA9IHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmNvbnRyb2xzLmVtYWlsLnZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS5pc1VzZXJuYW1lQXZhaWxhYmxlKHVzZXJlbWFpbCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoaXNFbWFpbEF2YWlsYWJsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRW1haWxBdmFpbGFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VyZW1haWwpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5hcGlGYWlsRXJyb3JNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4sIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQ6IGJvb2xlYW4sIHVzZXJuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIWlzVXNlcm5hbWVBdmFpbGFibGUpIHtcclxuICAgICAgICAgICAgaWYgKCFpc1VzZXJXaXRoVGVtcFBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gdGhpcy5jb25zdGFudHMuZmlyc3RUaW1lTG9naW5Vc2VyVGVtcFBhc3N3b3JkTXNnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmNvbnN0YW50cy51c2VyTm90Rm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJ7ICdjYXRjLWZvcmdldC1wYXNzd29yZCc6IGNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlPy5pc0NhdGNBcHBsaWNhdGlvbiB9XCI+XHJcbiAgICAgICAgPGhlYWRlcj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgW3NyY109XCJjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hcHBHZW5lcmljQ29uZmlnLmxvZ2luUGFnZUxvZ29JbWdVcmxcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiQW5uYSBMb2dvXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2hlYWRlcj5cclxuICAgICAgICA8YXJ0aWNsZT5cclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ2ZXJpZnlSZWdpc3RlcmVkRW1haWxcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRIZWFkaW5nIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5pc0NhdGNBcHBsaWNhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLlBsZWFzZUVudGVyWW91ckVtYWlsTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5QbGVhc2VFbnRlcllvdXJVc2VyY29kZU1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJuYW1lTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYWxlcnQtZGl2XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVycm9yTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBpZD1cImFsZXJ0LW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5mby1kaXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWkgbWRpLWluZm9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2UuaXNDYXRjQXBwbGljYXRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLmVudGVyRW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLmVudGVyVXNlckNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudHMuZW50ZXJVc2VybmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnaW5wdXQtaW52YWxpZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlSZWdpc3RlcmVkRW1haWwuZ2V0KCdlbWFpbCcpPy5kaXJ0eSAmJiB2ZXJpZnlSZWdpc3RlcmVkRW1haWwuZ2V0KCdlbWFpbCcpPy5lcnJvcnNcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsb2dpbi1idG5cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFubmFDb2duaXRvU3Bpbm5lckJ0blxyXG4gICAgICAgICAgICAgICAgICAgIFtzcGlubmVyQnV0dG9uTG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPyBjb25zdGFudHMubG9naW4gOiBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICAgIDxhbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT4gPC9hbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Zvb3Rlcj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cclxuICAgIDxhbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+PC9hbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT48L2FubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+XHJcbjwvZGl2PlxyXG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsNEJBQTRCO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLGdDQUFnQztBQUNoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RixPQUFPLEVBQW9CLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ2xHLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7QUFtQjdHLE1BQU0sT0FBTyx1QkFBdUI7SUFVaEMsWUFDWSxXQUErQixFQUMvQixFQUFlLEVBQ2YsTUFBcUIsRUFDckIsTUFBYyxFQUNlLDZCQUE2QyxFQUMvQywyQkFBeUMsRUFDcEMsK0JBQWlEO1FBTmpGLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Usa0NBQTZCLEdBQTdCLDZCQUE2QixDQUFnQjtRQUMvQyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWM7UUFDcEMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFrQjtRQWQ3Rix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsYUFBUSxHQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3ZELG9CQUFlLEdBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUQsK0JBQTBCLEdBQVcsSUFBSSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFVeEIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQy9CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVE7U0FDbkQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ2hELE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDdEQ7YUFBTTtZQUNILElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUVqRSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkcsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV0RyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2pFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxHQUFHLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztpQkFDbkQ7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3hEO2dCQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQzNCLENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsbUJBQTRCLEVBQUUsc0JBQStCLEVBQUUsUUFBZ0I7UUFDL0YsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQ3RCLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMxRDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQzthQUN0RjtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1NBQ25EO0lBQ0wsQ0FBQzsrR0EvRlEsdUJBQXVCLGtJQWVwQixvQkFBb0IsYUFDcEIsa0JBQWtCLGFBQ2xCLHVCQUF1QjttR0FqQjFCLHVCQUF1Qiw0RkN2Q3BDLHduR0EyRUEscXNHRDlDUSxXQUFXLDJwQkFDWCxtQkFBbUIsZ1ZBQ25CLElBQUksNkZBQ0osT0FBTyxvRkFDUCxzQkFBc0IsMkhBQ3RCLDhCQUE4QixzRkFDOUIsMEJBQTBCLGlGQUMxQiw2QkFBNkI7OzRGQUd4Qix1QkFBdUI7a0JBaEJuQyxTQUFTOytCQUNJLGtDQUFrQyxjQUdoQyxJQUFJLFdBQ1A7d0JBQ0wsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLElBQUk7d0JBQ0osT0FBTzt3QkFDUCxzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7cUJBQ2hDOzswQkFpQkksTUFBTTsyQkFBQyxvQkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXHJcbi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuLy8gVGhpcmQgcGFydHkgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEFVVEhfU0VSVklDRV9UT0tFTiwgSUF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgQ09ORklHX1NFUlZJQ0VfVE9LRU4sIElDb25maWdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9jb25maWctc2VydmljZS50b2tlblwiO1xyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gXCIuLi8uLi9jb25maWcvc3NvLWxvZ2luLXNlcnZpY2UudG9rZW5cIjtcclxuaW1wb3J0IHsgTG9naW5Db25zdGFudCB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvbG9naW5Db25zdGFudFwiO1xyXG5pbXBvcnQgeyBTcGlubmVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvc3Bpbm5lci1idXR0b24vc3Bpbm5lci1idXR0b24uZGlyZWN0aXZlXCI7XHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBVc2VybmFtZUluZm8sIFVzZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXV0aC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hTGliQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBvd2VyZWRCeUxvZ29UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi9wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGUvcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCB9IGZyb20gXCIuLi9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZlcnNpb25BbmRUZXJtUG9saWN5Q29tcG9uZW50IH0gZnJvbSBcIi4uL3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5L3ZlcnNpb24tYW5kLXRlcm0tcG9saWN5LmNvbXBvbmVudFwiO1xyXG5cclxudHlwZSBQYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBzdHJpbmc7IHN0YXR1czogc3RyaW5nIH07XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYW5uYS1jb2duaXRvLWxpYi1mb3Jnb3QtcGFzc3dvcmRcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgTmdDbGFzcyxcclxuICAgICAgICBTcGlubmVyQnV0dG9uRGlyZWN0aXZlLFxyXG4gICAgICAgIFBvd2VyZWRCeUxvZ29UZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBTdXJld2F2ZXNZZWFyTG9nb0NvbXBvbmVudCxcclxuICAgICAgICBWZXJzaW9uQW5kVGVybVBvbGljeUNvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbDogRm9ybUdyb3VwO1xyXG4gICAgcGFzc3dvcmROb3RNYXRjaGluZyA9IGZhbHNlO1xyXG4gICAgY29uc3RhbnRzOiB0eXBlb2YgTG9naW5Db25zdGFudDtcclxuICAgIHBhc3N3b3JkOiBQYXNzd29yZFR5cGUgPSB7IHZhbHVlOiBudWxsLCBzdGF0dXM6IG51bGwgfTtcclxuICAgIGNvbmZpcm1QYXNzd29yZDogUGFzc3dvcmRUeXBlID0geyB2YWx1ZTogbnVsbCwgc3RhdHVzOiBudWxsIH07XHJcbiAgICBpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbjogc3RyaW5nID0gbnVsbDtcclxuICAgIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEFubmFMaWJBdXRoU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIEBJbmplY3QoQ09ORklHX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZTogSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChBVVRIX1NFUlZJQ0VfVE9LRU4pIHB1YmxpYyBjb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2U6IElBdXRoU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KFNTT19MT0dJTl9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZTogSVNTT0xvZ2luU2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gbnVsbDtcclxuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IExvZ2luQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy5vbkludGlhbGlzZUZvcm0oKTtcclxuICAgICAgICBpZiAodGhpcy5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UudXNlck5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZUZvcm0oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5mb3Jnb3RQYXNzd29yZEFuZEdsb2JhbFNpZ25vdXRMb2FkZXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBvbkludGlhbGlzZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgZW1haWw6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlRm9ybSgpIHtcclxuICAgICAgICB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5wYXRjaFZhbHVlKHtcclxuICAgICAgICAgICAgZW1haWw6IHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRm9ybVZhbGlkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcmlmeVJlZ2lzdGVyZWRFbWFpbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpIHtcclxuICAgICAgICBpZiAodGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwuZ2V0KFwiZW1haWxcIik/LnZhbHVlID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtMb2dpbkNvbnN0YW50LmxvZ2luUGFnZVVybF0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMub25WZXJpZnlSZWdpc3RlcmVkRW1haWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25WZXJpZnlSZWdpc3RlcmVkRW1haWwoKSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gbnVsbDtcclxuICAgICAgICBjb25zdCB1c2VybmFtZSA9IHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmNvbnRyb2xzLmVtYWlsLnZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBpc1VzZXJOYW1lQXZhaWxhYmxlID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuaXNVc2VybmFtZUF2YWlsYWJsZSh1c2VybmFtZSk7XHJcbiAgICAgICAgY29uc3QgaXNVc2VybmFtZVRlbXBQYXNzd29yZFNldCA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmdldFVzZXJTdGF0ZSh1c2VybmFtZSk7XHJcblxyXG4gICAgICAgIGZvcmtKb2luKFtpc1VzZXJOYW1lQXZhaWxhYmxlLCBpc1VzZXJuYW1lVGVtcFBhc3N3b3JkU2V0XSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBpc1VzZXJuYW1lQXZhaWxhYmxlIH0gPSBuZXcgVXNlcm5hbWVJbmZvKHJlc3VsdFswXSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB7IGlzVXNlcldpdGhUZW1wUGFzc3dvcmQgfSA9IG5ldyBVc2VyU3RhdGUocmVzdWx0WzFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlLCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkLCB1c2VybmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY29uc3RhbnRzLnVzZXJOb3RGb3VuZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoTG9naW5Db25zdGFudC5hcGlGYWlsRXJyb3JNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlOiBib29sZWFuLCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkOiBib29sZWFuLCB1c2VybmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCFpc1VzZXJuYW1lQXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICghaXNVc2VyV2l0aFRlbXBQYXNzd29yZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5vbkZvcmdvdFBhc3N3b3JkR2VuZXJhdGVPVFAodXNlcm5hbWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IHRoaXMuY29uc3RhbnRzLmZpcnN0VGltZUxvZ2luVXNlclRlbXBQYXNzd29yZE1zZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gICAgPHNlY3Rpb24+XHJcbiAgICAgICAgPGhlYWRlcj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgW3NyY109XCJjb25zdW1pbmdQcm9qZWN0Q29uZmlnU2VydmljZS5hcHBHZW5lcmljQ29uZmlnLmxvZ2luUGFnZUxvZ29JbWdVcmxcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiQW5uYSBMb2dvXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICA8L2hlYWRlcj5cclxuICAgICAgICA8YXJ0aWNsZT5cclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ2ZXJpZnlSZWdpc3RlcmVkRW1haWxcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRIZWFkaW5nIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1pbmdQcm9qZWN0U1NPTG9naW5TZXJ2aWNlPy5pc1Nzb0ludGVncmF0ZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5QbGVhc2VFbnRlcllvdXJVc2VyY29kZU1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5QbGVhc2VFbnRlcllvdXJVc2VybmFtZU1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBpZD1cImFsZXJ0LWRpdlwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5yZXBvcnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgaWQ9XCJhbGVydC1tc2dcIj57eyBlcnJvck1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBpZD1cImluZm8tZGl2XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1pIG1kaS1pbmZvXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luIH19PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U/LmlzU3NvSW50ZWdyYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25zdGFudHMuZW50ZXJVc2VyQ29kZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudHMuZW50ZXJFbWFpbFxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnaW5wdXQtaW52YWxpZCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmdldCgnZW1haWwnKT8uZGlydHkgJiYgdmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmdldCgnZW1haWwnKT8uZXJyb3JzKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibG9naW4tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgICBhbm5hQ29nbml0b1NwaW5uZXJCdG5cclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvbkxvYWRpbmddPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Mb2dpbk9yR2V0T3RwQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NwaW5uZXJCdXR0b25UZXh0XT1cImluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID8gY29uc3RhbnRzLmxvZ2luIDogY29uc3RhbnRzLmZvcmdvdFBhc3N3b3JkQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvYXJ0aWNsZT5cclxuICAgICAgICA8Zm9vdGVyPlxyXG4gICAgICAgICAgICA8YW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+IDwvYW5uYS1jb2duaXRvLWxpYi1wb3dlcmVkLWJ5LWxvZ28tdGVtcGxhdGU+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cInBhZ2UtZm9vdGVyXCI+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPjwvYW5uYS1jb2duaXRvLWxpYi1zdXJld2F2ZXMteWVhci1sb2dvPlxyXG4gICAgPGFubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+PC9hbm5hLWNvZ25pdG8tbGliLXZlcnNpb24tYW5kLXRlcm0tcG9saWN5PlxyXG48L2Rpdj5cclxuIl19
@@ -76,11 +76,11 @@ export class PasswordMatchingComponent {
76
76
  };
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordMatchingComponent, deps: [{ token: FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordMatchingComponent, isStandalone: true, selector: "anna-cognito-lib-password-matching", inputs: { passwordNotMatching: "passwordNotMatching" }, outputs: { passwordChange: "passwordChange", confirmPasswordChange: "confirmPasswordChange" }, ngImport: i0, template: "<form [formGroup]=\"passwordForm\">\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"passwordNotMatching\"\r\n >\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n</ng-container>\r\n\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n", styles: ["input[type=password],input[type=text]{width:100%;height:30px;padding:10px 16px;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}input[type=password].ng-dirty.ng-invalid,.input-invalid{border:1px solid #fe3824!important}input[type=password]:focus:focus{outline:none;box-shadow:none}input[type=password]:focus::placeholder{color:#a4a4a4}.password-policies{margin-bottom:1rem}.password-policies p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal;margin-bottom:0}.span-text{vertical-align:top;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal}#icon-div-msg{display:inline;margin-right:.3125rem}#icon-div-msg .material-icons{margin-top:1px;font-size:16px}#alert-div{padding:4px 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div #icon-div{width:18px;margin-top:-5px;display:inline-block}#alert-div #icon-div .material-icons{color:#f44336;font-size:1.125rem;margin-left:.5rem}#alert-div p{display:inline;vertical-align:top;margin-left:.5rem;color:#4a4a4a;font-family:Roboto;font-size:.7188rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}.error-color{color:#fe3824}.success-color{color:#43a047}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PasswordMatchingComponent, isStandalone: true, selector: "anna-cognito-lib-password-matching", inputs: { passwordNotMatching: "passwordNotMatching" }, outputs: { passwordChange: "passwordChange", confirmPasswordChange: "confirmPasswordChange" }, ngImport: i0, template: "<form [formGroup]=\"passwordForm\">\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"passwordNotMatching\"\r\n >\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('number')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('number')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div\r\n [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\"\r\n >\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n", styles: ["input[type=password],input[type=text]{width:100%;height:30px;padding:10px 16px;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}input[type=password].ng-dirty.ng-invalid,.input-invalid{border:1px solid #fe3824!important}input[type=password]:focus:focus{outline:none;box-shadow:none}input[type=password]:focus::placeholder{color:#a4a4a4}.password-policies{margin-bottom:1rem}.password-policies p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal;margin-bottom:0}.span-text{vertical-align:top;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal}#icon-div-msg{display:inline;margin-right:.3125rem}#icon-div-msg .material-icons{margin-top:1px;font-size:16px}#alert-div{padding:4px 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div #icon-div{width:18px;margin-top:-5px;display:inline-block}#alert-div #icon-div .material-icons{color:#f44336;font-size:1.125rem;margin-left:.5rem}#alert-div p{display:inline;vertical-align:top;margin-left:.5rem;color:#4a4a4a;font-family:Roboto;font-size:.7188rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}.error-color{color:#fe3824}.success-color{color:#43a047}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PasswordMatchingComponent, decorators: [{
82
82
  type: Component,
83
- args: [{ selector: "anna-cognito-lib-password-matching", standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgClass], template: "<form [formGroup]=\"passwordForm\">\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"passwordNotMatching\"\r\n >\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span class=\"mdi\" [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'mdi-close-circle' : 'mdi-check-circle'\"></span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n</ng-container>\r\n\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n", styles: ["input[type=password],input[type=text]{width:100%;height:30px;padding:10px 16px;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}input[type=password].ng-dirty.ng-invalid,.input-invalid{border:1px solid #fe3824!important}input[type=password]:focus:focus{outline:none;box-shadow:none}input[type=password]:focus::placeholder{color:#a4a4a4}.password-policies{margin-bottom:1rem}.password-policies p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal;margin-bottom:0}.span-text{vertical-align:top;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal}#icon-div-msg{display:inline;margin-right:.3125rem}#icon-div-msg .material-icons{margin-top:1px;font-size:16px}#alert-div{padding:4px 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div #icon-div{width:18px;margin-top:-5px;display:inline-block}#alert-div #icon-div .material-icons{color:#f44336;font-size:1.125rem;margin-left:.5rem}#alert-div p{display:inline;vertical-align:top;margin-left:.5rem;color:#4a4a4a;font-family:Roboto;font-size:.7188rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}.error-color{color:#fe3824}.success-color{color:#43a047}\n"] }]
83
+ args: [{ selector: "anna-cognito-lib-password-matching", standalone: true, imports: [FormsModule, ReactiveFormsModule, NgIf, NgClass], template: "<form [formGroup]=\"passwordForm\">\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"passwordNotMatching\"\r\n >\r\n <div id=\"icon-div\">\r\n <span class=\"material-icons\">report</span>\r\n </div>\r\n <p>{{ constants.passwordNotMatching }}</p>\r\n </div>\r\n <div class=\"password-policies\">\r\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }} </b>\r\n </p>\r\n <p>{{ constants.minimumCharacter }}</p>\r\n <p>{{ constants.oneUppercase }}</p>\r\n <p>{{ constants.oneLowercase }}</p>\r\n <p>{{ constants.oneNumber }}</p>\r\n <p>{{ constants.specialCharacter }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\r\n <p>\r\n <b>{{ constants.passwordMustContain }}</b>\r\n </p>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('minLength')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('minLength')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('uppercase')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('uppercase')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('lowercase')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('lowercase')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\r\n </div>\r\n\r\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('number')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('number')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\r\n </div>\r\n\r\n <div\r\n [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\"\r\n >\r\n <div id=\"icon-div-msg\">\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"passwordForm.get('password')?.hasError('specialCharacter')\"\r\n >\r\n cancel\r\n </span>\r\n <span\r\n class=\"material-icons\"\r\n *ngIf=\"!passwordForm.get('password')?.hasError('specialCharacter')\"\r\n >\r\n check_circle\r\n </span>\r\n </div>\r\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"2\"\r\n formControlName=\"password\"\r\n [placeholder]=\"constants.password\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n\r\n <input\r\n type=\"password\"\r\n tabindex=\"3\"\r\n formControlName=\"confirmPassword\"\r\n [placeholder]=\"constants.confirmPassword\"\r\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\r\n />\r\n</form>\r\n", styles: ["input[type=password],input[type=text]{width:100%;height:30px;padding:10px 16px;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}input[type=password].ng-dirty.ng-invalid,.input-invalid{border:1px solid #fe3824!important}input[type=password]:focus:focus{outline:none;box-shadow:none}input[type=password]:focus::placeholder{color:#a4a4a4}.password-policies{margin-bottom:1rem}.password-policies p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal;margin-bottom:0}.span-text{vertical-align:top;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:1.31;letter-spacing:normal}#icon-div-msg{display:inline;margin-right:.3125rem}#icon-div-msg .material-icons{margin-top:1px;font-size:16px}#alert-div{padding:4px 0 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3}#alert-div #icon-div{width:18px;margin-top:-5px;display:inline-block}#alert-div #icon-div .material-icons{color:#f44336;font-size:1.125rem;margin-left:.5rem}#alert-div p{display:inline;vertical-align:top;margin-left:.5rem;color:#4a4a4a;font-family:Roboto;font-size:.7188rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}.error-color{color:#fe3824}.success-color{color:#43a047}\n"] }]
84
84
  }], ctorParameters: function () { return [{ type: i1.FormBuilder, decorators: [{
85
85
  type: Inject,
86
86
  args: [FormBuilder]
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
91
91
  }], passwordNotMatching: [{
92
92
  type: Input
93
93
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtbWF0Y2hpbmcvcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtbWF0Y2hpbmcvcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFFSCxXQUFXLEVBRVgsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQVM5RCxNQUFNLE9BQU8seUJBQXlCO0lBT2xDLFlBQXlDLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBTjlDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS00sQ0FBQztJQUU1RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcs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d0IsRUFBOEIsRUFBRTtZQUM1RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQztJQUNOLENBQUM7K0dBM0VRLHlCQUF5QixrQkFPZCxXQUFXO21HQVB0Qix5QkFBeUIscVBDMUJ0Qyx5K0dBaUZBLGs2Q0R6RGMsV0FBVywycEJBQUUsbUJBQW1CLGdWQUFFLElBQUksNkZBQUUsT0FBTzs7NEZBRWhELHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FHbEMsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7OzBCQVM3QyxNQUFNOzJCQUFDLFdBQVc7NENBTnJCLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUVFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xyXG4vLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBGb3JtQnVpbGRlcixcclxuICAgIEZvcm1Hcm91cCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgICBWYWxpZGF0b3JzLFxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFubmEtY29nbml0by1saWItcGFzc3dvcmQtbWF0Y2hpbmdcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9wYXNzd29yZC1tYXRjaGluZy5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nSWYsIE5nQ2xhc3NdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRNYXRjaGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgcGFzc3dvcmRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY29uZmlybVBhc3N3b3JkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhc3N3b3JkTm90TWF0Y2hpbmc6IGJvb2xlYW47XHJcbiAgICBwYXNzd29yZEZvcm06IEZvcm1Hcm91cDtcclxuICAgIGNvbnN0YW50czogdHlwZW9mIExvZ2luQ29uc3RhbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEZvcm1CdWlsZGVyKSBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IExvZ2luQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVHcm91cCgpO1xyXG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1WYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkRm9ybS5nZXQoXCJwYXNzd29yZFwiKTtcclxuICAgICAgICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkRm9ybS5nZXQoXCJjb25maXJtUGFzc3dvcmRcIik7XHJcblxyXG4gICAgICAgIGlmIChwYXNzd29yZCkge1xyXG4gICAgICAgICAgICBwYXNzd29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwYXNzd29yZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC8uezgsfS8sIHsgbWluTGVuZ3RoOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bYS16XS8sIHsgbG93ZXJjYXNlOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bQS1aXS8sIHsgdXBwZXJjYXNlOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bMC05XS8sIHsgbnVtYmVyOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bXmEtekEtWjAtOV0vLCB7IHNwZWNpYWxDaGFyYWN0ZXI6IHRydWUgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25QYXNzd29yZENoYW5nZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb25maXJtUGFzc3dvcmQpIHtcclxuICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1QYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25Db25maXJtUGFzc3dvcmRDaGFuZ2UoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGFzc3dvcmRDaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXNzd29yZEZvcm0udmFsdWUucGFzc3dvcmQsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5wYXNzd29yZEZvcm0uY29udHJvbHMucGFzc3dvcmQuc3RhdHVzLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db25maXJtUGFzc3dvcmRDaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXNzd29yZEZvcm0udmFsdWUuY29uZmlybVBhc3N3b3JkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMucGFzc3dvcmRGb3JtLmNvbnRyb2xzLmNvbmZpcm1QYXNzd29yZC5zdGF0dXMsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgcGFzc3dvcmQ6IFtudWxsXSxcclxuICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkOiBbbnVsbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRGb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IGNoZWNrIHRoZSByZXR1cm4gYWdhaW5cclxuICAgIHJlZ2V4VmFsaWRhdG9yKHJlZ2V4OiBSZWdFeHAsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogYW55IHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSByZWdleC50ZXN0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gKHZhbGlkID8gbnVsbCA6IGVycm9yKSBhcyBhbnk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cInBhc3N3b3JkRm9ybVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGlkPVwiYWxlcnQtZGl2XCJcclxuICAgICAgICAqbmdJZj1cInBhc3N3b3JkTm90TWF0Y2hpbmdcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+cmVwb3J0PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwPnt7IGNvbnN0YW50cy5wYXNzd29yZE5vdE1hdGNoaW5nIH19PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmQtcG9saWNpZXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LmRpcnR5XCI+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgPGI+e3sgY29uc3RhbnRzLnBhc3N3b3JkTXVzdENvbnRhaW4gfX0gPC9iPlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxwPnt7IGNvbnN0YW50cy5taW5pbXVtQ2hhcmFjdGVyIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lVXBwZXJjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lTG93ZXJjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lTnVtYmVyIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMuc3BlY2lhbENoYXJhY3RlciB9fTwvcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uZGlydHlcIj5cclxuICAgIDxwPlxyXG4gICAgICAgIDxiPnt7IGNvbnN0YW50cy5wYXNzd29yZE11c3RDb250YWluIH19PC9iPlxyXG4gICAgPC9wPlxyXG5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ21pbkxlbmd0aCcpID8gJ2Vycm9yLWNvbG9yJyA6ICdzdWNjZXNzLWNvbG9yJ1wiPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdi1tc2dcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZGlcIiBbbmdDbGFzc109XCJwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcignbWluTGVuZ3RoJykgPyAnbWRpLWNsb3NlLWNpcmNsZScgOiAnbWRpLWNoZWNrLWNpcmNsZSdcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGFuLXRleHRcIj57eyBjb25zdGFudHMubWluaW11bUNoYXJhY3RlciB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3VwcGVyY2FzZScpID8gJ2Vycm9yLWNvbG9yJyA6ICdzdWNjZXNzLWNvbG9yJ1wiPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdi1tc2dcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZGlcIiBbbmdDbGFzc109XCJwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcigndXBwZXJjYXNlJykgPyAnbWRpLWNsb3NlLWNpcmNsZScgOiAnbWRpLWNoZWNrLWNpcmNsZSdcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGFuLXRleHRcIj57eyBjb25zdGFudHMub25lVXBwZXJjYXNlIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcignbG93ZXJjYXNlJykgPyAnZXJyb3ItY29sb3InIDogJ3N1Y2Nlc3MtY29sb3InXCI+XHJcbiAgICAgICAgPGRpdiBpZD1cImljb24tZGl2LW1zZ1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1kaVwiIFtuZ0NsYXNzXT1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdsb3dlcmNhc2UnKSA/ICdtZGktY2xvc2UtY2lyY2xlJyA6ICdtZGktY2hlY2stY2lyY2xlJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tdGV4dFwiPnt7IGNvbnN0YW50cy5vbmVMb3dlcmNhc2UgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdudW1iZXInKSA/ICdlcnJvci1jb2xvcicgOiAnc3VjY2Vzcy1jb2xvcidcIj5cclxuICAgICAgICA8ZGl2IGlkPVwiaWNvbi1kaXYtbXNnXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWRpXCIgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ251bWJlcicpID8gJ21kaS1jbG9zZS1jaXJjbGUnIDogJ21kaS1jaGVjay1jaXJjbGUnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Bhbi10ZXh0XCI+e3sgY29uc3RhbnRzLm9uZU51bWJlciB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3NwZWNpYWxDaGFyYWN0ZXInKSA/ICdlcnJvci1jb2xvcicgOiAnc3VjY2Vzcy1jb2xvcidcIj5cclxuICAgICAgICA8ZGl2IGlkPVwiaWNvbi1kaXYtbXNnXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWRpXCIgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3NwZWNpYWxDaGFyYWN0ZXInKSA/ICdtZGktY2xvc2UtY2lyY2xlJyA6ICdtZGktY2hlY2stY2lyY2xlJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tdGV4dFwiPnt7IGNvbnN0YW50cy5zcGVjaWFsQ2hhcmFjdGVyIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnN0YW50cy5wYXNzd29yZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IHBhc3N3b3JkTm90TWF0Y2hpbmcgfVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgdGFiaW5kZXg9XCIzXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25zdGFudHMuY29uZmlybVBhc3N3b3JkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpbnB1dC1pbnZhbGlkJzogcGFzc3dvcmROb3RNYXRjaGluZyB9XCJcclxuICAgIC8+XHJcbjwvZm9ybT5cclxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtbWF0Y2hpbmcvcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcGFzc3dvcmQtbWF0Y2hpbmcvcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELDRCQUE0QjtBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFFSCxXQUFXLEVBRVgsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLGlDQUFpQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQVM5RCxNQUFNLE9BQU8seUJBQXlCO0lBT2xDLFlBQXlDLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBTjlDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBS00sQ0FBQztJQUU1RCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcs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d0IsRUFBOEIsRUFBRTtZQUM1RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQztJQUNOLENBQUM7K0dBM0VRLHlCQUF5QixrQkFPZCxXQUFXO21HQVB0Qix5QkFBeUIscVBDMUJ0QyxnbExBeUlBLGs2Q0RqSGMsV0FBVywycEJBQUUsbUJBQW1CLGdWQUFFLElBQUksNkZBQUUsT0FBTzs7NEZBRWhELHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSxvQ0FBb0MsY0FHbEMsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7OzBCQVM3QyxNQUFNOzJCQUFDLFdBQVc7NENBTnJCLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUVFLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xyXG4vLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICBGb3JtQnVpbGRlcixcclxuICAgIEZvcm1Hcm91cCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFZhbGlkYXRpb25FcnJvcnMsXHJcbiAgICBWYWxpZGF0b3JzLFxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIFVzZXIgZGVmaW5lZCBpbXBvcnQgc3RhdGVtZW50c1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9sb2dpbkNvbnN0YW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFubmEtY29nbml0by1saWItcGFzc3dvcmQtbWF0Y2hpbmdcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vcGFzc3dvcmQtbWF0Y2hpbmcuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9wYXNzd29yZC1tYXRjaGluZy5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nSWYsIE5nQ2xhc3NdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRNYXRjaGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgcGFzc3dvcmRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBAT3V0cHV0KCkgY29uZmlybVBhc3N3b3JkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBJbnB1dCgpIHBhc3N3b3JkTm90TWF0Y2hpbmc6IGJvb2xlYW47XHJcbiAgICBwYXNzd29yZEZvcm06IEZvcm1Hcm91cDtcclxuICAgIGNvbnN0YW50czogdHlwZW9mIExvZ2luQ29uc3RhbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEZvcm1CdWlsZGVyKSBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbnN0YW50cyA9IExvZ2luQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVHcm91cCgpO1xyXG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1WYWx1ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkRm9ybS5nZXQoXCJwYXNzd29yZFwiKTtcclxuICAgICAgICBjb25zdCBjb25maXJtUGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkRm9ybS5nZXQoXCJjb25maXJtUGFzc3dvcmRcIik7XHJcblxyXG4gICAgICAgIGlmIChwYXNzd29yZCkge1xyXG4gICAgICAgICAgICBwYXNzd29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChwYXNzd29yZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC8uezgsfS8sIHsgbWluTGVuZ3RoOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bYS16XS8sIHsgbG93ZXJjYXNlOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bQS1aXS8sIHsgdXBwZXJjYXNlOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bMC05XS8sIHsgbnVtYmVyOiB0cnVlIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4VmFsaWRhdG9yKC9bXmEtekEtWjAtOV0vLCB7IHNwZWNpYWxDaGFyYWN0ZXI6IHRydWUgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBwYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25QYXNzd29yZENoYW5nZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb25maXJtUGFzc3dvcmQpIHtcclxuICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1QYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25Db25maXJtUGFzc3dvcmRDaGFuZ2UoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uUGFzc3dvcmRDaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXNzd29yZEZvcm0udmFsdWUucGFzc3dvcmQsXHJcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5wYXNzd29yZEZvcm0uY29udHJvbHMucGFzc3dvcmQuc3RhdHVzLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db25maXJtUGFzc3dvcmRDaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0ge1xyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXNzd29yZEZvcm0udmFsdWUuY29uZmlybVBhc3N3b3JkLFxyXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMucGFzc3dvcmRGb3JtLmNvbnRyb2xzLmNvbmZpcm1QYXNzd29yZC5zdGF0dXMsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICAgICAgcGFzc3dvcmQ6IFtudWxsXSxcclxuICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkOiBbbnVsbF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRGb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE86IGNoZWNrIHRoZSByZXR1cm4gYWdhaW5cclxuICAgIHJlZ2V4VmFsaWRhdG9yKHJlZ2V4OiBSZWdFeHAsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogYW55IHtcclxuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSByZWdleC50ZXN0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gKHZhbGlkID8gbnVsbCA6IGVycm9yKSBhcyBhbnk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cInBhc3N3b3JkRm9ybVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGlkPVwiYWxlcnQtZGl2XCJcclxuICAgICAgICAqbmdJZj1cInBhc3N3b3JkTm90TWF0Y2hpbmdcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdlwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+cmVwb3J0PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwPnt7IGNvbnN0YW50cy5wYXNzd29yZE5vdE1hdGNoaW5nIH19PC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFzc3dvcmQtcG9saWNpZXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LmRpcnR5XCI+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgPGI+e3sgY29uc3RhbnRzLnBhc3N3b3JkTXVzdENvbnRhaW4gfX0gPC9iPlxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxwPnt7IGNvbnN0YW50cy5taW5pbXVtQ2hhcmFjdGVyIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lVXBwZXJjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lTG93ZXJjYXNlIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMub25lTnVtYmVyIH19PC9wPlxyXG4gICAgICAgICAgICA8cD57eyBjb25zdGFudHMuc3BlY2lhbENoYXJhY3RlciB9fTwvcD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/LmRpcnR5XCI+XHJcbiAgICAgICAgICAgIDxwPlxyXG4gICAgICAgICAgICAgICAgPGI+e3sgY29uc3RhbnRzLnBhc3N3b3JkTXVzdENvbnRhaW4gfX08L2I+XHJcbiAgICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ21pbkxlbmd0aCcpID8gJ2Vycm9yLWNvbG9yJyA6ICdzdWNjZXNzLWNvbG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImljb24tZGl2LW1zZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdtaW5MZW5ndGgnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdtaW5MZW5ndGgnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja19jaXJjbGVcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bhbi10ZXh0XCI+e3sgY29uc3RhbnRzLm1pbmltdW1DaGFyYWN0ZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcigndXBwZXJjYXNlJykgPyAnZXJyb3ItY29sb3InIDogJ3N1Y2Nlc3MtY29sb3InXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiaWNvbi1kaXYtbXNnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3VwcGVyY2FzZScpXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbFxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3VwcGVyY2FzZScpXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NpcmNsZVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGFuLXRleHRcIj57eyBjb25zdGFudHMub25lVXBwZXJjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ2xvd2VyY2FzZScpID8gJ2Vycm9yLWNvbG9yJyA6ICdzdWNjZXNzLWNvbG9yJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cImljb24tZGl2LW1zZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdsb3dlcmNhc2UnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdsb3dlcmNhc2UnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja19jaXJjbGVcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bhbi10ZXh0XCI+e3sgY29uc3RhbnRzLm9uZUxvd2VyY2FzZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdudW1iZXInKSA/ICdlcnJvci1jb2xvcicgOiAnc3VjY2Vzcy1jb2xvcidcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJpY29uLWRpdi1tc2dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcignbnVtYmVyJylcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFwYXNzd29yZEZvcm0uZ2V0KCdwYXNzd29yZCcpPy5oYXNFcnJvcignbnVtYmVyJylcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tdGV4dFwiPnt7IGNvbnN0YW50cy5vbmVOdW1iZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3NwZWNpYWxDaGFyYWN0ZXInKSA/ICdlcnJvci1jb2xvcicgOiAnc3VjY2Vzcy1jb2xvcidcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiaWNvbi1kaXYtbXNnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicGFzc3dvcmRGb3JtLmdldCgncGFzc3dvcmQnKT8uaGFzRXJyb3IoJ3NwZWNpYWxDaGFyYWN0ZXInKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXBhc3N3b3JkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk/Lmhhc0Vycm9yKCdzcGVjaWFsQ2hhcmFjdGVyJylcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfY2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tdGV4dFwiPnt7IGNvbnN0YW50cy5zcGVjaWFsQ2hhcmFjdGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbnN0YW50cy5wYXNzd29yZFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtaW52YWxpZCc6IHBhc3N3b3JkTm90TWF0Y2hpbmcgfVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXHJcbiAgICAgICAgdGFiaW5kZXg9XCIzXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25zdGFudHMuY29uZmlybVBhc3N3b3JkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpbnB1dC1pbnZhbGlkJzogcGFzc3dvcmROb3RNYXRjaGluZyB9XCJcclxuICAgIC8+XHJcbjwvZm9ybT5cclxuIl19