@reusa/ngx-reusa-app-lib 0.0.999 → 0.1.101
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.
- package/README.md +46 -46
- package/esm2022/lib/annimations/app-animations.mjs +1 -1
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +1130 -2312
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +1 -1
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +16 -36
- package/esm2022/lib/components/address/address.component.mjs +58 -52
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +25 -29
- package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
- package/esm2022/lib/components/card/card.component.mjs +1 -1
- package/esm2022/lib/components/content/content.component.mjs +1 -1
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +1 -1
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +14 -19
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +6 -6
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
- package/esm2022/lib/components/email-update/email-update.component.mjs +32 -14
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +197 -192
- package/esm2022/lib/components/error/error.component.mjs +5 -22
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
- package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
- package/esm2022/lib/components/footer/footer.component.mjs +67 -90
- package/esm2022/lib/components/header/header.component.mjs +105 -169
- package/esm2022/lib/components/help/help.component.mjs +1 -1
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
- package/esm2022/lib/components/info/info.component.mjs +12 -4
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +1 -1
- package/esm2022/lib/components/job-title/job-title.component.mjs +94 -93
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +82 -93
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +329 -0
- package/esm2022/lib/components/link/link.component.mjs +1 -1
- package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
- package/esm2022/lib/components/mask/mask.component.mjs +1 -1
- package/esm2022/lib/components/menu/menu.component.mjs +35 -44
- package/esm2022/lib/components/mfa/mfa.component.mjs +305 -103
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +16 -7
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +260 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +36 -148
- package/esm2022/lib/components/msg/msg.component.mjs +1 -1
- package/esm2022/lib/components/news/news.component.mjs +1 -1
- package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
- package/esm2022/lib/components/page/page.component.mjs +1 -1
- package/esm2022/lib/components/profile/profile.component.mjs +213 -56
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +33 -106
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +14 -165
- package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +60 -110
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +123 -367
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +9 -9
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1029 -769
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +325 -157
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +17 -9
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +26 -93
- package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
- package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
- package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +25 -14
- package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +196 -333
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +24 -47
- package/esm2022/lib/components/security-question/security-question.component.mjs +189 -0
- package/esm2022/lib/components/select/select.component.mjs +1 -1
- package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
- package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
- package/esm2022/lib/components/test/test.component.mjs +1 -1
- package/esm2022/lib/components/user-login/user-login.component.mjs +226 -115
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +155 -287
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +46 -62
- package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
- package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
- package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
- package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
- package/esm2022/lib/guards/auth.guard.mjs +4 -26
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
- package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
- package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
- package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
- package/esm2022/lib/models/ErrorModel.mjs +1 -1
- package/esm2022/lib/models/FileModel.mjs +1 -1
- package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
- package/esm2022/lib/models/LibConstants.mjs +15 -12
- package/esm2022/lib/models/NotificationModel.mjs +1 -1
- package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
- package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
- package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
- package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
- package/esm2022/lib/models/TrendModel.mjs +1 -1
- package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
- package/esm2022/lib/models/UserModel.mjs +1 -1
- package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
- package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
- package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
- package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
- package/esm2022/lib/models/dependent.model.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
- package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +175 -73
- package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +13 -27
- package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
- package/esm2022/lib/pages/BasePage.mjs +22 -3
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
- package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
- package/esm2022/lib/pages/common/login/login.component.mjs +5 -5
- package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
- package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
- package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
- package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
- package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
- package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
- package/esm2022/lib/services/base-service.mjs +1 -1
- package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
- package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
- package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
- package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
- package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
- package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -1
- package/esm2022/lib/services/claims/claims.service.mjs +14 -57
- package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
- package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
- package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
- package/esm2022/lib/services/help/help.service.mjs +1 -1
- package/esm2022/lib/services/idle/idle.service.mjs +1 -1
- package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +49 -0
- package/esm2022/lib/services/logger/logger.service.mjs +1 -1
- package/esm2022/lib/services/login/login.service.mjs +11 -1
- package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
- package/esm2022/lib/services/notification/notification.service.mjs +1 -1
- package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
- package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
- package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
- package/esm2022/lib/services/security-service/security.service.mjs +6 -5
- package/esm2022/lib/services/tour/tour.service.mjs +1 -1
- package/esm2022/lib/services/util/util.service.mjs +5 -5
- package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +42 -0
- package/esm2022/lib/validations/AppRegex.mjs +1 -1
- package/esm2022/lib/validations/AppValidators.mjs +14 -34
- package/esm2022/public-api.mjs +5 -16
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +7480 -10431
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts +48 -77
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/add-payment/add-payment.component.d.ts +2 -7
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +3 -2
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/email-update/email-update.component.d.ts +7 -1
- package/lib/components/email-update/email-update.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +3 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +2 -3
- package/lib/components/error/error.component.d.ts.map +1 -1
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +0 -1
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/job-title/job-title.component.d.ts +21 -22
- package/lib/components/job-title/job-title.component.d.ts.map +1 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +2 -5
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +55 -0
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/mfa/mfa.component.d.ts +26 -3
- package/lib/components/mfa/mfa.component.d.ts.map +1 -1
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +4 -1
- package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
- package/lib/components/mfa2/mfa2.component.d.ts +48 -0
- package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
- package/lib/components/money-expect/money-expect.component.d.ts +4 -15
- package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
- package/lib/components/profile/profile.component.d.ts +32 -4
- package/lib/components/profile/profile.component.d.ts.map +1 -1
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
- package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
- package/lib/components/questionnaire/AppValidators.d.ts +0 -1
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
- package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -7
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +32 -14
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +24 -3
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +3 -0
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -6
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +1 -0
- package/lib/components/questionnaire/question.service.d.ts.map +1 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +3 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -6
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
- package/lib/components/search-employer/search-employer.component.d.ts +2 -1
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/security-question/security-question.component.d.ts +37 -0
- package/lib/components/security-question/security-question.component.d.ts.map +1 -0
- package/lib/components/user-login/user-login.component.d.ts +22 -5
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +0 -6
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +0 -1
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
- package/lib/guards/auth.guard.d.ts +1 -3
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/models/EmployerDetailSearchResult.d.ts +1 -3
- package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
- package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
- package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisResponseModel.d.ts +7 -0
- package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
- package/lib/models/LibConstants.d.ts +12 -9
- package/lib/models/LibConstants.d.ts.map +1 -1
- package/lib/models/PartialEmploymentModel.d.ts +6 -0
- package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
- package/lib/models/PaymentComponentModel.d.ts +1 -1
- package/lib/models/PaymentComponentModel.d.ts.map +1 -1
- package/lib/models/SecurityQuestionModel.d.ts +7 -0
- package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -1
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +3 -13
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -2
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ComboModel.d.ts +16 -20
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
- package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
- package/lib/models/questionnaire/StatusModel.d.ts +0 -1
- package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.module.d.ts +86 -95
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/pages/BasePage.d.ts +6 -3
- package/lib/pages/BasePage.d.ts.map +1 -1
- package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
- package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
- package/lib/services/claimant-service/claimant.service.d.ts +5 -0
- package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
- package/lib/services/claims/claims.service.d.ts +5 -24
- package/lib/services/claims/claims.service.d.ts.map +1 -1
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +23 -0
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
- package/lib/services/login/login.service.d.ts +3 -0
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/ovp/ovp.service.d.ts +17 -0
- package/lib/services/ovp/ovp.service.d.ts.map +1 -0
- package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
- package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
- package/lib/services/questionnaire/validation.service.d.ts +0 -3
- package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
- package/lib/services/security-service/security.service.d.ts +4 -5
- package/lib/services/security-service/security.service.d.ts.map +1 -1
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +17 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
- package/lib/validations/AppValidators.d.ts +3 -7
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +4 -15
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -160
- package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -174
- package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -335
- package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -326
- package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -243
- package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
- package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
- package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -179
- package/esm2022/lib/components/idme/idme.component.mjs +0 -80
- package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
- package/esm2022/lib/components/sms/sms.component.mjs +0 -334
- package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
- package/esm2022/lib/models/CountyModel.mjs +0 -3
- package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
- package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
- package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
- package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
- package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
- package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
- package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
- package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
- package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
- package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/WageInfoModel.mjs +0 -4
- package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
- package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
- package/esm2022/lib/services/employer/employer-service.mjs +0 -35
- package/lib/components/add-wage/add-wage.component.d.ts +0 -29
- package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
- package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -28
- package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -59
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
- package/lib/components/employer-info/employer-info.component.d.ts +0 -48
- package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
- package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
- package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
- package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
- package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
- package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -37
- package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
- package/lib/components/idme/idme.component.d.ts +0 -19
- package/lib/components/idme/idme.component.d.ts.map +0 -1
- package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
- package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
- package/lib/components/sms/sms.component.d.ts +0 -63
- package/lib/components/sms/sms.component.d.ts.map +0 -1
- package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
- package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
- package/lib/models/CountyModel.d.ts +0 -8
- package/lib/models/CountyModel.d.ts.map +0 -1
- package/lib/models/DuaRequestModel.d.ts +0 -10
- package/lib/models/DuaRequestModel.d.ts.map +0 -1
- package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
- package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
- package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerPayInfoModel.d.ts +0 -20
- package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
- package/lib/models/FarmUsageComponentModel.d.ts +0 -10
- package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
- package/lib/models/GrossEarningsModel.d.ts +0 -6
- package/lib/models/GrossEarningsModel.d.ts.map +0 -1
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
- package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
- package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
- package/lib/models/RetroWeeksModel.d.ts +0 -10
- package/lib/models/RetroWeeksModel.d.ts.map +0 -1
- package/lib/models/SendOtpRequestModel.d.ts +0 -12
- package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
- package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
- package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
- package/lib/models/WageInfoModel.d.ts +0 -9
- package/lib/models/WageInfoModel.d.ts.map +0 -1
- package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
- package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
- package/lib/services/employer/employer-service.d.ts +0 -16
- package/lib/services/employer/employer-service.d.ts.map +0 -1
|
@@ -2,21 +2,27 @@ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core
|
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { BehaviorSubject, interval, timer } from 'rxjs';
|
|
4
4
|
import { take } from 'rxjs/operators';
|
|
5
|
+
import { catchError, throwError } from 'rxjs';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../../services/login/login.service";
|
|
7
8
|
import * as i2 from "@angular/forms";
|
|
8
9
|
import * as i3 from "../../services/util/util.service";
|
|
9
10
|
import * as i4 from "@ionic/angular";
|
|
10
11
|
import * as i5 from "../../services/captcha/captcha.service";
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "@angular/
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "
|
|
16
|
-
import * as i11 from "
|
|
17
|
-
import * as i12 from "@
|
|
18
|
-
import * as i13 from "
|
|
19
|
-
|
|
12
|
+
import * as i6 from "../../services/claimant-service/claimant-usps-redirect.service";
|
|
13
|
+
import * as i7 from "../../services/security-service/security.service";
|
|
14
|
+
import * as i8 from "@angular/router";
|
|
15
|
+
import * as i9 from "../../services/lexis-nexis/lexis.nexis.service";
|
|
16
|
+
import * as i10 from "@angular/common";
|
|
17
|
+
import * as i11 from "primeng/api";
|
|
18
|
+
import * as i12 from "@angular/material/form-field";
|
|
19
|
+
import * as i13 from "primeng/selectbutton";
|
|
20
|
+
import * as i14 from "primeng/inputnumber";
|
|
21
|
+
import * as i15 from "../error/error.component";
|
|
22
|
+
import * as i16 from "@ngx-translate/core";
|
|
23
|
+
import * as i17 from "../../pipes/mask/mask.email.pipe";
|
|
24
|
+
const _c0 = ["otpField"];
|
|
25
|
+
const _c1 = ["otpFormDirective"];
|
|
20
26
|
function MfaComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
21
27
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
22
28
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "div", 8)(3, "label", 9);
|
|
@@ -57,20 +63,42 @@ function MfaComponent_div_6_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
57
63
|
i0.ɵɵadvance(3);
|
|
58
64
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r8.user == null ? null : ctx_r8.user.cellphoneNo));
|
|
59
65
|
} }
|
|
60
|
-
function
|
|
66
|
+
function MfaComponent_div_6_span_5_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
i0.ɵɵelementStart(0, "span");
|
|
68
|
+
i0.ɵɵtext(1, "An access code has been sent to your cellphone :\u00A0 ");
|
|
69
|
+
i0.ɵɵelementStart(2, "b");
|
|
70
|
+
i0.ɵɵtext(3);
|
|
71
|
+
i0.ɵɵpipe(4, "maskEmail");
|
|
72
|
+
i0.ɵɵelementEnd()();
|
|
73
|
+
} if (rf & 2) {
|
|
74
|
+
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
75
|
+
i0.ɵɵadvance(3);
|
|
76
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r9.user == null ? null : ctx_r9.user.cellphoneNo));
|
|
77
|
+
} }
|
|
78
|
+
function MfaComponent_div_6_ion_label_8_Template(rf, ctx) { if (rf & 1) {
|
|
61
79
|
i0.ɵɵelementStart(0, "ion-label");
|
|
62
80
|
i0.ɵɵtext(1, " Check your junk folder if you don't see it in your inbox. ");
|
|
63
81
|
i0.ɵɵelementEnd();
|
|
64
82
|
} }
|
|
65
|
-
function
|
|
83
|
+
function MfaComponent_div_6_span_9_Template(rf, ctx) { if (rf & 1) {
|
|
66
84
|
i0.ɵɵelementStart(0, "span");
|
|
67
85
|
i0.ɵɵelement(1, "br")(2, "br");
|
|
68
86
|
i0.ɵɵelementEnd();
|
|
69
87
|
} }
|
|
70
|
-
function
|
|
71
|
-
i0.ɵɵelementStart(0, "
|
|
72
|
-
i0.ɵɵ
|
|
73
|
-
i0.ɵɵ
|
|
88
|
+
function MfaComponent_div_6_label_11_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
i0.ɵɵelementStart(0, "label", 19);
|
|
90
|
+
i0.ɵɵtext(1, "Enter code");
|
|
91
|
+
i0.ɵɵelementEnd();
|
|
92
|
+
} }
|
|
93
|
+
function MfaComponent_div_6_label_13_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelementStart(0, "label", 19);
|
|
95
|
+
i0.ɵɵtext(1, "Enter Validation Code Received :");
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
} }
|
|
98
|
+
function MfaComponent_div_6_ion_item_18_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelementStart(0, "ion-item", 20);
|
|
100
|
+
i0.ɵɵelement(1, "ion-checkbox", 21);
|
|
101
|
+
i0.ɵɵelementStart(2, "ion-label", 22);
|
|
74
102
|
i0.ɵɵtext(3);
|
|
75
103
|
i0.ɵɵpipe(4, "translate");
|
|
76
104
|
i0.ɵɵelementEnd()();
|
|
@@ -78,27 +106,27 @@ function MfaComponent_div_6_ion_item_15_Template(rf, ctx) { if (rf & 1) {
|
|
|
78
106
|
i0.ɵɵadvance(3);
|
|
79
107
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "I trust this browser."));
|
|
80
108
|
} }
|
|
81
|
-
function
|
|
109
|
+
function MfaComponent_div_6_mat_error_19_Template(rf, ctx) { if (rf & 1) {
|
|
82
110
|
i0.ɵɵelementStart(0, "mat-error");
|
|
83
111
|
i0.ɵɵtext(1);
|
|
84
112
|
i0.ɵɵelement(2, "br")(3, "br");
|
|
85
113
|
i0.ɵɵelementEnd();
|
|
86
114
|
} if (rf & 2) {
|
|
87
|
-
const
|
|
115
|
+
const ctx_r16 = i0.ɵɵnextContext(2);
|
|
88
116
|
i0.ɵɵadvance(1);
|
|
89
|
-
i0.ɵɵtextInterpolate(
|
|
117
|
+
i0.ɵɵtextInterpolate(ctx_r16.errorDtls);
|
|
90
118
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelementStart(0, "ion-label",
|
|
119
|
+
function MfaComponent_div_6_ion_label_20_Template(rf, ctx) { if (rf & 1) {
|
|
120
|
+
i0.ɵɵelementStart(0, "ion-label", 23);
|
|
93
121
|
i0.ɵɵtext(1);
|
|
94
122
|
i0.ɵɵelement(2, "br")(3, "br");
|
|
95
123
|
i0.ɵɵelementEnd();
|
|
96
124
|
} if (rf & 2) {
|
|
97
|
-
const
|
|
125
|
+
const ctx_r17 = i0.ɵɵnextContext(2);
|
|
98
126
|
i0.ɵɵadvance(1);
|
|
99
|
-
i0.ɵɵtextInterpolate(
|
|
127
|
+
i0.ɵɵtextInterpolate(ctx_r17.successDtls);
|
|
100
128
|
} }
|
|
101
|
-
function
|
|
129
|
+
function MfaComponent_div_6_ion_label_21_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
102
130
|
i0.ɵɵelementStart(0, "span");
|
|
103
131
|
i0.ɵɵtext(1, " Haven't received the code? Resend option available in ");
|
|
104
132
|
i0.ɵɵelementStart(2, "b");
|
|
@@ -107,29 +135,56 @@ function MfaComponent_div_6_ion_label_18_span_1_Template(rf, ctx) { if (rf & 1)
|
|
|
107
135
|
i0.ɵɵtext(4, ". ");
|
|
108
136
|
i0.ɵɵelementEnd();
|
|
109
137
|
} if (rf & 2) {
|
|
110
|
-
const
|
|
138
|
+
const ctx_r22 = i0.ɵɵnextContext(3);
|
|
111
139
|
i0.ɵɵadvance(3);
|
|
112
|
-
i0.ɵɵtextInterpolate1("",
|
|
140
|
+
i0.ɵɵtextInterpolate1("", ctx_r22.counter.getValue(), " second(s)");
|
|
113
141
|
} }
|
|
114
|
-
function
|
|
115
|
-
const
|
|
116
|
-
i0.ɵɵelementStart(0, "span")(1, "a",
|
|
117
|
-
i0.ɵɵlistener("click", function
|
|
142
|
+
function MfaComponent_div_6_ion_label_21_span_2_Template(rf, ctx) { if (rf & 1) {
|
|
143
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
144
|
+
i0.ɵɵelementStart(0, "span")(1, "a", 24);
|
|
145
|
+
i0.ɵɵlistener("click", function MfaComponent_div_6_ion_label_21_span_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r25.resendAuthCode(ctx_r25.option.value)); });
|
|
118
146
|
i0.ɵɵtext(2, "Get new code");
|
|
119
147
|
i0.ɵɵelementEnd()();
|
|
120
148
|
} }
|
|
121
|
-
function
|
|
149
|
+
function MfaComponent_div_6_ion_label_21_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
const _r28 = i0.ɵɵgetCurrentView();
|
|
151
|
+
i0.ɵɵelementStart(0, "span")(1, "a", 24);
|
|
152
|
+
i0.ɵɵlistener("click", function MfaComponent_div_6_ion_label_21_span_3_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r28); const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.resendAuthCode(ctx_r27.option.value)); });
|
|
153
|
+
i0.ɵɵtext(2, "Resend Verification Code");
|
|
154
|
+
i0.ɵɵelementEnd()();
|
|
155
|
+
} }
|
|
156
|
+
function MfaComponent_div_6_ion_label_21_Template(rf, ctx) { if (rf & 1) {
|
|
122
157
|
i0.ɵɵelementStart(0, "ion-label");
|
|
123
|
-
i0.ɵɵtemplate(1,
|
|
158
|
+
i0.ɵɵtemplate(1, MfaComponent_div_6_ion_label_21_span_1_Template, 5, 1, "span", 12)(2, MfaComponent_div_6_ion_label_21_span_2_Template, 3, 0, "span", 12)(3, MfaComponent_div_6_ion_label_21_span_3_Template, 3, 0, "span", 12);
|
|
124
159
|
i0.ɵɵelementEnd();
|
|
125
160
|
} if (rf & 2) {
|
|
126
|
-
const
|
|
161
|
+
const ctx_r18 = i0.ɵɵnextContext(2);
|
|
127
162
|
i0.ɵɵadvance(1);
|
|
128
|
-
i0.ɵɵproperty("ngIf",
|
|
163
|
+
i0.ɵɵproperty("ngIf", ctx_r18.counter.getValue() != 1 && !ctx_r18.returningUser);
|
|
129
164
|
i0.ɵɵadvance(1);
|
|
130
|
-
i0.ɵɵproperty("ngIf",
|
|
165
|
+
i0.ɵɵproperty("ngIf", ctx_r18.counter.getValue() == 1 && !ctx_r18.returningUser);
|
|
166
|
+
i0.ɵɵadvance(1);
|
|
167
|
+
i0.ɵɵproperty("ngIf", ctx_r18.counter.getValue() == 1 && ctx_r18.returningUser);
|
|
131
168
|
} }
|
|
132
169
|
function MfaComponent_div_6_p_22_Template(rf, ctx) { if (rf & 1) {
|
|
170
|
+
const _r30 = i0.ɵɵgetCurrentView();
|
|
171
|
+
i0.ɵɵelementStart(0, "p")(1, "a", 24);
|
|
172
|
+
i0.ɵɵlistener("click", function MfaComponent_div_6_p_22_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(2); ctx_r29.showHelp = !ctx_r29.showHelp; return i0.ɵɵresetView($event.preventDefault()); });
|
|
173
|
+
i0.ɵɵtext(2);
|
|
174
|
+
i0.ɵɵelementEnd()();
|
|
175
|
+
} if (rf & 2) {
|
|
176
|
+
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
177
|
+
i0.ɵɵadvance(2);
|
|
178
|
+
i0.ɵɵtextInterpolate1("Can't get to your ", ctx_r19.option.value == "text" ? "cellphone" : "email", "?");
|
|
179
|
+
} }
|
|
180
|
+
function MfaComponent_div_6_p_23_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
+
const _r32 = i0.ɵɵgetCurrentView();
|
|
182
|
+
i0.ɵɵelementStart(0, "p")(1, "a", 24);
|
|
183
|
+
i0.ɵɵlistener("click", function MfaComponent_div_6_p_23_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r31.uspsRedirect()); });
|
|
184
|
+
i0.ɵɵtext(2, "Unable to verify");
|
|
185
|
+
i0.ɵɵelementEnd()();
|
|
186
|
+
} }
|
|
187
|
+
function MfaComponent_div_6_p_24_Template(rf, ctx) { if (rf & 1) {
|
|
133
188
|
i0.ɵɵelementStart(0, "p");
|
|
134
189
|
i0.ɵɵtext(1, " Your code is good for 15 minutes. You can try again later.");
|
|
135
190
|
i0.ɵɵelement(2, "br");
|
|
@@ -138,47 +193,53 @@ function MfaComponent_div_6_p_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
138
193
|
i0.ɵɵtext(5);
|
|
139
194
|
i0.ɵɵelementEnd();
|
|
140
195
|
} if (rf & 2) {
|
|
141
|
-
const
|
|
196
|
+
const ctx_r21 = i0.ɵɵnextContext(2);
|
|
142
197
|
i0.ɵɵadvance(5);
|
|
143
|
-
i0.ɵɵtextInterpolate1(" If your ",
|
|
198
|
+
i0.ɵɵtextInterpolate1(" If your ", ctx_r21.option.value == "text" ? "cellphone number" : "email address", " has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm. ");
|
|
144
199
|
} }
|
|
145
|
-
const
|
|
200
|
+
const _c2 = () => ({ required: "Access code is required.", minlength: "Access code should have 6 numbers." });
|
|
146
201
|
function MfaComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
-
const
|
|
202
|
+
const _r34 = i0.ɵɵgetCurrentView();
|
|
148
203
|
i0.ɵɵelementStart(0, "div", 6)(1, "div", 11)(2, "ion-label");
|
|
149
|
-
i0.ɵɵtemplate(3, MfaComponent_div_6_span_3_Template, 5, 3, "span", 12)(4, MfaComponent_div_6_span_4_Template, 5, 3, "span", 12);
|
|
204
|
+
i0.ɵɵtemplate(3, MfaComponent_div_6_span_3_Template, 5, 3, "span", 12)(4, MfaComponent_div_6_span_4_Template, 5, 3, "span", 12)(5, MfaComponent_div_6_span_5_Template, 5, 3, "span", 12);
|
|
150
205
|
i0.ɵɵelementEnd();
|
|
151
|
-
i0.ɵɵelement(
|
|
152
|
-
i0.ɵɵtemplate(
|
|
153
|
-
i0.ɵɵelementStart(
|
|
154
|
-
i0.ɵɵ
|
|
206
|
+
i0.ɵɵelement(6, "br")(7, "br");
|
|
207
|
+
i0.ɵɵtemplate(8, MfaComponent_div_6_ion_label_8_Template, 2, 0, "ion-label", 12)(9, MfaComponent_div_6_span_9_Template, 3, 0, "span", 12);
|
|
208
|
+
i0.ɵɵelementStart(10, "div", 8);
|
|
209
|
+
i0.ɵɵtemplate(11, MfaComponent_div_6_label_11_Template, 2, 0, "label", 13);
|
|
210
|
+
i0.ɵɵelement(12, "br");
|
|
211
|
+
i0.ɵɵtemplate(13, MfaComponent_div_6_label_13_Template, 2, 0, "label", 13);
|
|
212
|
+
i0.ɵɵelement(14, "br");
|
|
213
|
+
i0.ɵɵelementStart(15, "p-inputNumber", 14, 15);
|
|
214
|
+
i0.ɵɵlistener("keyup.enter", function MfaComponent_div_6_Template_p_inputNumber_keyup_enter_15_listener() { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!ctx_r33.requestCode && ctx_r33.option.value ? ctx_r33.signIn() : ctx_r33.submit()); });
|
|
155
215
|
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelement(
|
|
216
|
+
i0.ɵɵelement(17, "app-error", 16);
|
|
157
217
|
i0.ɵɵelementEnd();
|
|
158
|
-
i0.ɵɵtemplate(
|
|
218
|
+
i0.ɵɵtemplate(18, MfaComponent_div_6_ion_item_18_Template, 5, 3, "ion-item", 17);
|
|
159
219
|
i0.ɵɵelementEnd();
|
|
160
|
-
i0.ɵɵtemplate(
|
|
161
|
-
i0.ɵɵelementStart(19, "p")(20, "a", 18);
|
|
162
|
-
i0.ɵɵlistener("click", function MfaComponent_div_6_Template_a_click_20_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); ctx_r20.showHelp = !ctx_r20.showHelp; return i0.ɵɵresetView($event.preventDefault()); });
|
|
163
|
-
i0.ɵɵtext(21);
|
|
164
|
-
i0.ɵɵelementEnd()();
|
|
165
|
-
i0.ɵɵtemplate(22, MfaComponent_div_6_p_22_Template, 6, 1, "p", 12);
|
|
220
|
+
i0.ɵɵtemplate(19, MfaComponent_div_6_mat_error_19_Template, 4, 1, "mat-error", 12)(20, MfaComponent_div_6_ion_label_20_Template, 4, 1, "ion-label", 18)(21, MfaComponent_div_6_ion_label_21_Template, 4, 3, "ion-label", 12)(22, MfaComponent_div_6_p_22_Template, 3, 1, "p", 12)(23, MfaComponent_div_6_p_23_Template, 3, 0, "p", 12)(24, MfaComponent_div_6_p_24_Template, 6, 1, "p", 12);
|
|
166
221
|
i0.ɵɵelementEnd();
|
|
167
222
|
} if (rf & 2) {
|
|
168
223
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
169
224
|
const _r0 = i0.ɵɵreference(1);
|
|
170
225
|
i0.ɵɵadvance(3);
|
|
171
|
-
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email");
|
|
226
|
+
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email" && !ctx_r2.returningUser);
|
|
227
|
+
i0.ɵɵadvance(1);
|
|
228
|
+
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "text" && !ctx_r2.returningUser);
|
|
172
229
|
i0.ɵɵadvance(1);
|
|
173
|
-
i0.ɵɵproperty("ngIf", ctx_r2.
|
|
230
|
+
i0.ɵɵproperty("ngIf", ctx_r2.returningUser);
|
|
174
231
|
i0.ɵɵadvance(3);
|
|
175
|
-
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email");
|
|
232
|
+
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email" && !ctx_r2.returningUser);
|
|
176
233
|
i0.ɵɵadvance(1);
|
|
177
|
-
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email");
|
|
178
|
-
i0.ɵɵadvance(
|
|
234
|
+
i0.ɵɵproperty("ngIf", ctx_r2.option.value == "email" && !ctx_r2.returningUser);
|
|
235
|
+
i0.ɵɵadvance(2);
|
|
236
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.returningUser);
|
|
237
|
+
i0.ɵɵadvance(2);
|
|
238
|
+
i0.ɵɵproperty("ngIf", ctx_r2.returningUser);
|
|
239
|
+
i0.ɵɵadvance(2);
|
|
179
240
|
i0.ɵɵproperty("useGrouping", false)("inputId", "authCode");
|
|
180
|
-
i0.ɵɵadvance(
|
|
181
|
-
i0.ɵɵproperty("field", ctx_r2.otp)("form", _r0)("errDef", i0.ɵɵpureFunction0(
|
|
241
|
+
i0.ɵɵadvance(2);
|
|
242
|
+
i0.ɵɵproperty("field", ctx_r2.otp)("form", _r0)("errDef", i0.ɵɵpureFunction0(19, _c2));
|
|
182
243
|
i0.ɵɵadvance(1);
|
|
183
244
|
i0.ɵɵproperty("ngIf", false);
|
|
184
245
|
i0.ɵɵadvance(1);
|
|
@@ -187,37 +248,39 @@ function MfaComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
187
248
|
i0.ɵɵproperty("ngIf", ctx_r2.successDtls);
|
|
188
249
|
i0.ɵɵadvance(1);
|
|
189
250
|
i0.ɵɵproperty("ngIf", !ctx_r2.blocked);
|
|
190
|
-
i0.ɵɵadvance(3);
|
|
191
|
-
i0.ɵɵtextInterpolate1("Can't get to your ", ctx_r2.option.value == "text" ? "cellphone" : "email", "?");
|
|
192
251
|
i0.ɵɵadvance(1);
|
|
193
|
-
i0.ɵɵproperty("ngIf", ctx_r2.
|
|
252
|
+
i0.ɵɵproperty("ngIf", !ctx_r2.returningUser);
|
|
253
|
+
i0.ɵɵadvance(1);
|
|
254
|
+
i0.ɵɵproperty("ngIf", ctx_r2.returningUser);
|
|
255
|
+
i0.ɵɵadvance(1);
|
|
256
|
+
i0.ɵɵproperty("ngIf", ctx_r2.showHelp && !ctx_r2.returningUser);
|
|
194
257
|
} }
|
|
195
258
|
function MfaComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
-
i0.ɵɵelementStart(0, "div",
|
|
197
|
-
i0.ɵɵelement(1, "ion-spinner",
|
|
259
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
260
|
+
i0.ɵɵelement(1, "ion-spinner", 26);
|
|
198
261
|
i0.ɵɵelementEnd();
|
|
199
262
|
} }
|
|
200
263
|
function MfaComponent_div_9_ion_button_3_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
-
const
|
|
202
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
203
|
-
i0.ɵɵlistener("click", function MfaComponent_div_9_ion_button_3_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
264
|
+
const _r38 = i0.ɵɵgetCurrentView();
|
|
265
|
+
i0.ɵɵelementStart(0, "ion-button", 30);
|
|
266
|
+
i0.ɵɵlistener("click", function MfaComponent_div_9_ion_button_3_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r37.signIn()); });
|
|
204
267
|
i0.ɵɵtext(1, " Submit ");
|
|
205
268
|
i0.ɵɵelementEnd();
|
|
206
269
|
} }
|
|
207
270
|
function MfaComponent_div_9_ion_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
208
|
-
const
|
|
209
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
210
|
-
i0.ɵɵlistener("click", function MfaComponent_div_9_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(
|
|
271
|
+
const _r40 = i0.ɵɵgetCurrentView();
|
|
272
|
+
i0.ɵɵelementStart(0, "ion-button", 30);
|
|
273
|
+
i0.ɵɵlistener("click", function MfaComponent_div_9_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r39.submit()); });
|
|
211
274
|
i0.ɵɵtext(1, " Submit ");
|
|
212
275
|
i0.ɵɵelementEnd();
|
|
213
276
|
} }
|
|
214
277
|
function MfaComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
215
|
-
const
|
|
216
|
-
i0.ɵɵelementStart(0, "div",
|
|
217
|
-
i0.ɵɵlistener("click", function MfaComponent_div_9_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(
|
|
278
|
+
const _r42 = i0.ɵɵgetCurrentView();
|
|
279
|
+
i0.ɵɵelementStart(0, "div", 27)(1, "ion-button", 28);
|
|
280
|
+
i0.ɵɵlistener("click", function MfaComponent_div_9_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.close()); });
|
|
218
281
|
i0.ɵɵtext(2, " Close ");
|
|
219
282
|
i0.ɵɵelementEnd();
|
|
220
|
-
i0.ɵɵtemplate(3, MfaComponent_div_9_ion_button_3_Template, 2, 0, "ion-button",
|
|
283
|
+
i0.ɵɵtemplate(3, MfaComponent_div_9_ion_button_3_Template, 2, 0, "ion-button", 29)(4, MfaComponent_div_9_ion_button_4_Template, 2, 0, "ion-button", 29);
|
|
221
284
|
i0.ɵɵelementEnd();
|
|
222
285
|
} if (rf & 2) {
|
|
223
286
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
@@ -227,12 +290,16 @@ function MfaComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
|
227
290
|
i0.ɵɵproperty("ngIf", ctx_r4.requestCode && ctx_r4.option.value);
|
|
228
291
|
} }
|
|
229
292
|
export class MfaComponent {
|
|
230
|
-
constructor(ls, fb, util, nav, cs) {
|
|
293
|
+
constructor(ls, fb, util, nav, cs, ur, ss, router, ln) {
|
|
231
294
|
this.ls = ls;
|
|
232
295
|
this.fb = fb;
|
|
233
296
|
this.util = util;
|
|
234
297
|
this.nav = nav;
|
|
235
298
|
this.cs = cs;
|
|
299
|
+
this.ur = ur;
|
|
300
|
+
this.ss = ss;
|
|
301
|
+
this.router = router;
|
|
302
|
+
this.ln = ln;
|
|
236
303
|
this.RESEND_CODE_ACTION_NAME = "MFA_RESEND_CODE";
|
|
237
304
|
this.isChecked = false;
|
|
238
305
|
this.showHelp = false;
|
|
@@ -249,6 +316,21 @@ export class MfaComponent {
|
|
|
249
316
|
{ value: 'text', text: 'text' },
|
|
250
317
|
{ value: 'email', text: 'email' }
|
|
251
318
|
];
|
|
319
|
+
/* For testing, this model data for accountData is the only one that LN sends the auth selection id for */
|
|
320
|
+
this.accountData = {
|
|
321
|
+
session_id: null,
|
|
322
|
+
input_ip_address: "165.201.56.130",
|
|
323
|
+
account_first_name: "WAYNE",
|
|
324
|
+
account_last_name: "AGARWAL",
|
|
325
|
+
account_address_street1: "879 SELWYN RD",
|
|
326
|
+
account_address_city: "CLEVELAND HEIGHTS",
|
|
327
|
+
account_address_state: "OH",
|
|
328
|
+
account_address_zip: "44112",
|
|
329
|
+
account_date_of_birth: "19610210",
|
|
330
|
+
account_email: "WAYNEAGARWAL1206@COMCAST.WEB",
|
|
331
|
+
account_telephone: "9072293984",
|
|
332
|
+
national_id_number: "666087357"
|
|
333
|
+
};
|
|
252
334
|
}
|
|
253
335
|
ngOnChanges(changes) {
|
|
254
336
|
if (changes.mfaError?.currentValue) {
|
|
@@ -276,6 +358,9 @@ export class MfaComponent {
|
|
|
276
358
|
else {
|
|
277
359
|
this.setCountdown();
|
|
278
360
|
}
|
|
361
|
+
setTimeout(_ => {
|
|
362
|
+
this.otpField.input.nativeElement.focus();
|
|
363
|
+
}, 100);
|
|
279
364
|
}
|
|
280
365
|
requestNewAuthCode(otpType) {
|
|
281
366
|
this.blocked = true;
|
|
@@ -326,7 +411,7 @@ export class MfaComponent {
|
|
|
326
411
|
this.success.emit(this.data);
|
|
327
412
|
}
|
|
328
413
|
}
|
|
329
|
-
|
|
414
|
+
signIn() {
|
|
330
415
|
if (this.otp.invalid) {
|
|
331
416
|
return;
|
|
332
417
|
}
|
|
@@ -345,6 +430,8 @@ export class MfaComponent {
|
|
|
345
430
|
.subscribe(res => {
|
|
346
431
|
let userModel = res;
|
|
347
432
|
this.ls.setUser(userModel).then(res => {
|
|
433
|
+
//this.lnQueryApi(); // For testing : Lexis Nexis - Normal flow
|
|
434
|
+
//this.lnQueryApiPI(); // For testing : Lexis Nexis - Sign up flow
|
|
348
435
|
this.success.emit();
|
|
349
436
|
this.blocked = false;
|
|
350
437
|
this.util.hideLoader();
|
|
@@ -352,52 +439,162 @@ export class MfaComponent {
|
|
|
352
439
|
}, err => {
|
|
353
440
|
this.error.emit(err);
|
|
354
441
|
this.errorDtls = err.msg;
|
|
442
|
+
if (this.errorDtls[0].includes("Claimant Account is Locked - OTP attempts exceeded")) {
|
|
443
|
+
console.log("Enable LX/NX"); /* dont work on it now*/
|
|
444
|
+
//this.uspsRedirect();
|
|
445
|
+
this.util.hideLoader();
|
|
446
|
+
this.util.showError('Claimant Account is Locked - OTP attempts has exceeded');
|
|
447
|
+
setTimeout(() => this.clear.emit(), 1000);
|
|
448
|
+
}
|
|
355
449
|
this.util.hideLoader();
|
|
356
450
|
this.blocked = false;
|
|
357
451
|
});
|
|
358
452
|
});
|
|
359
453
|
}
|
|
454
|
+
lnQueryApi() {
|
|
455
|
+
this.ln.getLnQueryApiResponse()
|
|
456
|
+
.pipe(catchError((error) => {
|
|
457
|
+
this.util.showError('Failed to retrieve the LN proofing response');
|
|
458
|
+
return throwError(() => new Error(error));
|
|
459
|
+
}))
|
|
460
|
+
.subscribe((response) => {
|
|
461
|
+
if (response !== null) {
|
|
462
|
+
if (response?.request_result === "success" &&
|
|
463
|
+
(response?.review_status === "reject" || response?.review_status === "challenge")) {
|
|
464
|
+
if (response?.auth_selection_methods[0]?.auth_selection_id) {
|
|
465
|
+
this.authSelectionRequest = {
|
|
466
|
+
auth_selection_id: response?.auth_selection_methods[0]?.auth_selection_id,
|
|
467
|
+
'iidqa.answers': null
|
|
468
|
+
};
|
|
469
|
+
this.lnAuthenticationQA(this.authSelectionRequest);
|
|
470
|
+
}
|
|
471
|
+
else {
|
|
472
|
+
this.util.error("AUTH SELECTION ID", "Auth selection id missing", response);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
else {
|
|
477
|
+
this.util.info('Empty response received');
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
lnQueryApiPI() {
|
|
482
|
+
this.setSessionId(this.accountData);
|
|
483
|
+
const lnAccountCreationTestData = this.accountData;
|
|
484
|
+
this.ln.getLnQueryApiPIResponse(lnAccountCreationTestData)
|
|
485
|
+
.pipe(catchError((error) => {
|
|
486
|
+
this.util.showError('Failed to retrieve the LN proofing response');
|
|
487
|
+
return throwError(() => new Error(error));
|
|
488
|
+
}))
|
|
489
|
+
.subscribe((response) => {
|
|
490
|
+
if (response !== null) {
|
|
491
|
+
if (response?.request_result === "success" &&
|
|
492
|
+
(response?.review_status === "reject" || response?.review_status === "challenge")) {
|
|
493
|
+
if (response?.auth_selection_methods[0]?.auth_selection_id) {
|
|
494
|
+
this.authSelectionRequest = {
|
|
495
|
+
auth_selection_id: response?.auth_selection_methods[0]?.auth_selection_id,
|
|
496
|
+
'iidqa.answers': null
|
|
497
|
+
};
|
|
498
|
+
this.lnAuthenticationQA(this.authSelectionRequest);
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
this.util.error("AUTH SELECTION ID", "Auth selection id missing", response);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
this.util.info('Empty response received');
|
|
507
|
+
}
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
setSessionId(accountData) {
|
|
511
|
+
const sessionId = window['sessionId'];
|
|
512
|
+
if (!sessionId) {
|
|
513
|
+
console.error('Session ID not found in window object.');
|
|
514
|
+
return; // handle accordingly
|
|
515
|
+
}
|
|
516
|
+
accountData.session_id = sessionId;
|
|
517
|
+
}
|
|
518
|
+
lnAuthenticationQA(authSelectionRequest) {
|
|
519
|
+
this.ln.lnAuthenticationQA(authSelectionRequest)
|
|
520
|
+
.pipe(catchError((error) => {
|
|
521
|
+
this.util.showError('Failed to retrieve the LN authorization questions');
|
|
522
|
+
return throwError(() => new Error(error));
|
|
523
|
+
}))
|
|
524
|
+
.subscribe((response) => {
|
|
525
|
+
if (response !== null) {
|
|
526
|
+
// extracting questions from the response
|
|
527
|
+
console.log('RESPONSE ::: ', response);
|
|
528
|
+
this.authSelectionResponse = response;
|
|
529
|
+
console.log('AUTH SELECTION RESPONSE ::: ', response);
|
|
530
|
+
if (response?.request_result === "fail_invalid_parameter") {
|
|
531
|
+
console.log(response?.error_detail);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
this.util.info('Empty response received');
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
}
|
|
360
539
|
sendOtp(event) {
|
|
361
540
|
this.resendAuthCode(event.value);
|
|
362
541
|
}
|
|
363
542
|
resendAuthCode(otpType) {
|
|
364
543
|
this.successDtls = null;
|
|
365
544
|
this.errorDtls = null;
|
|
366
|
-
|
|
367
|
-
this.
|
|
368
|
-
.
|
|
369
|
-
this.
|
|
370
|
-
this.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
this.blocked = false;
|
|
374
|
-
this.successDtls = "Access code sent successfully.";
|
|
375
|
-
this.counter.next(60);
|
|
376
|
-
this.setCountdown();
|
|
377
|
-
}, err => {
|
|
378
|
-
this.successDtls = null;
|
|
379
|
-
this.blocked = false;
|
|
380
|
-
this.errorDtls = err.msg;
|
|
381
|
-
});
|
|
382
|
-
}, err => {
|
|
545
|
+
otpType = "TEX"; //This has to be changed in the backend once mfaPreference is saved
|
|
546
|
+
this.ls.generateOtp(this.user.username, otpType).subscribe((res) => {
|
|
547
|
+
this.blocked = false;
|
|
548
|
+
this.successDtls = 'Access code sent successfully.';
|
|
549
|
+
this.counter.next(60);
|
|
550
|
+
this.setCountdown();
|
|
551
|
+
}, (err) => {
|
|
383
552
|
this.successDtls = null;
|
|
384
553
|
this.blocked = false;
|
|
385
|
-
this.errorDtls =
|
|
386
|
-
|
|
554
|
+
this.errorDtls = err.msg;
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
uspsRedirect() {
|
|
558
|
+
this.clear.emit();
|
|
559
|
+
this.ss
|
|
560
|
+
.generateURLForUSPS(this.user?.username)
|
|
561
|
+
.pipe(catchError((error) => {
|
|
562
|
+
this.util.showError('Failed to retrieve the data');
|
|
563
|
+
return throwError(() => new Error(error));
|
|
564
|
+
}))
|
|
565
|
+
.subscribe((response) => {
|
|
566
|
+
if (response !== null) {
|
|
567
|
+
this.uspsRedirectUrl = response.uspsUrl;
|
|
568
|
+
this.util.hideLoader();
|
|
569
|
+
this.ss.lockClaimantAccount(this.user.username).subscribe({
|
|
570
|
+
next: (res) => { },
|
|
571
|
+
error: (err) => {
|
|
572
|
+
if (err.msg[0].includes('Claimant Account is Locked - OTP attempts exceeded')) {
|
|
573
|
+
this.router.navigate(['/usps-redirect', this.uspsRedirectUrl]);
|
|
574
|
+
}
|
|
575
|
+
this.clear.emit();
|
|
576
|
+
},
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
else {
|
|
580
|
+
this.util.info('Empty response received');
|
|
581
|
+
}
|
|
387
582
|
});
|
|
388
583
|
}
|
|
389
|
-
static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService)); }; }
|
|
584
|
+
static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService), i0.ɵɵdirectiveInject(i6.ClaimantUspsRedirectService), i0.ɵɵdirectiveInject(i7.SecurityService), i0.ɵɵdirectiveInject(i8.Router), i0.ɵɵdirectiveInject(i9.LexisNexisService)); }; }
|
|
390
585
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MfaComponent, selectors: [["app-mfa"]], viewQuery: function MfaComponent_Query(rf, ctx) { if (rf & 1) {
|
|
391
586
|
i0.ɵɵviewQuery(_c0, 5);
|
|
587
|
+
i0.ɵɵviewQuery(_c1, 5);
|
|
392
588
|
} if (rf & 2) {
|
|
393
589
|
let _t;
|
|
590
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.otpField = _t.first);
|
|
394
591
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.otpFormDirective = _t.first);
|
|
395
|
-
} }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls: 10, vars: 8, consts: [[3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "heading", 2, "padding-left", "10px"], ["style", "padding-left: 10px;", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-right ion-padding-bottom", 4, "ngIf"], [2, "padding-left", "10px"], [1, "ion-padding-top", "p-formgrid", "p-grid"], [1, "field", "ion-text-left"], ["for", "otpType"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "onChange"], [1, "ion-padding-top"], [4, "ngIf"], ["for", "authCode"], ["formControlName", "otp", "maxlength", "6", "minlength", "6", "mode", "decimal", "size", "6", 3, "useGrouping", "inputId"], [3, "field", "form", "errDef"], ["lines", "none", 4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], [
|
|
592
|
+
} }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons", returningUser: "returningUser" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls: 10, vars: 8, consts: [[3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "heading", 2, "padding-left", "10px"], ["style", "padding-left: 10px;", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-right ion-padding-bottom", 4, "ngIf"], [2, "padding-left", "10px"], [1, "ion-padding-top", "p-formgrid", "p-grid"], [1, "field", "ion-text-left"], ["for", "otpType"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "onChange"], [1, "ion-padding-top"], [4, "ngIf"], ["for", "authCode", 4, "ngIf"], ["formControlName", "otp", "maxlength", "6", "minlength", "6", "mode", "decimal", "size", "6", "autocomplete", "off", 3, "useGrouping", "inputId", "keyup.enter"], ["otpField", ""], [3, "field", "form", "errDef"], ["lines", "none", 4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], ["for", "authCode"], ["lines", "none"], ["slot", "start", "formControlName", "checked"], [1, "ion-text-wrap"], [2, "color", "var(--ion-color-green)"], ["tabindex", "0", 1, "link", 3, "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-text-right", "ion-padding-bottom"], ["tabindex", "0", "shape", "round", "type", "reset", "color", "success", "fill", "outline", 3, "click"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "click", 4, "ngIf"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "click"]], template: function MfaComponent_Template(rf, ctx) { if (rf & 1) {
|
|
396
593
|
i0.ɵɵelementStart(0, "form", 0, 1)(2, "h4", 2);
|
|
397
594
|
i0.ɵɵtext(3);
|
|
398
595
|
i0.ɵɵpipe(4, "translate");
|
|
399
596
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵtemplate(5, MfaComponent_div_5_Template, 7, 5, "div", 3)(6, MfaComponent_div_6_Template,
|
|
597
|
+
i0.ɵɵtemplate(5, MfaComponent_div_5_Template, 7, 5, "div", 3)(6, MfaComponent_div_6_Template, 25, 20, "div", 3);
|
|
401
598
|
i0.ɵɵelementStart(7, "p-footer");
|
|
402
599
|
i0.ɵɵtemplate(8, MfaComponent_div_8_Template, 2, 0, "div", 4)(9, MfaComponent_div_9_Template, 5, 2, "div", 5);
|
|
403
600
|
i0.ɵɵelementEnd()();
|
|
@@ -406,19 +603,22 @@ export class MfaComponent {
|
|
|
406
603
|
i0.ɵɵadvance(3);
|
|
407
604
|
i0.ɵɵtextInterpolate(ctx.heading ? ctx.heading : i0.ɵɵpipeBind1(4, 6, "Confirm access to your account"));
|
|
408
605
|
i0.ɵɵadvance(2);
|
|
409
|
-
i0.ɵɵproperty("ngIf", !ctx.option.value);
|
|
606
|
+
i0.ɵɵproperty("ngIf", !ctx.option.value && !ctx.returningUser);
|
|
410
607
|
i0.ɵɵadvance(1);
|
|
411
608
|
i0.ɵɵproperty("ngIf", ctx.option.value);
|
|
412
609
|
i0.ɵɵadvance(2);
|
|
413
610
|
i0.ɵɵproperty("ngIf", ctx.blocked);
|
|
414
611
|
i0.ɵɵadvance(1);
|
|
415
612
|
i0.ɵɵproperty("ngIf", !ctx.blocked && !ctx.hideButtons);
|
|
416
|
-
} }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor,
|
|
613
|
+
} }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor, i10.NgIf, i11.Footer, i12.MatError, i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i2.FormControlName, i13.SelectButton, i14.InputNumber, i15.ErrorComponent, i16.TranslatePipe, i17.MaskEmailPipe], styles: ["[_nghost-%COMP%] .panel{box-shadow:none!important}"] }); }
|
|
417
614
|
}
|
|
418
615
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MfaComponent, [{
|
|
419
616
|
type: Component,
|
|
420
|
-
args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading : 'Confirm access to your account' | translate}}</h4>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"!option.value\">\r\n <div class=\"ion-padding-top p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\">\r\n <label for=\"otpType\">{{'How would you like us to send your access code?' | translate}}</label>\r\n <p-selectButton [options]=\"options\" optionLabel=\"text\" optionValue=\"value\" [formControl]=\"option\" (onChange)=\"sendOtp($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"option.value\">\r\n <div class=\"ion-padding-top\">\r\n <ion-label>\r\n <span *ngIf=\"option.value == 'email'\">An access code has been sent to your email address: <b>{{user?.emailId | maskEmail}}</b></span>\r\n <span *ngIf=\"option.value == 'text'\">An access code has been sent to your cellphone: <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n </ion-label><br/><br/>\r\n <ion-label *ngIf=\"option.value == 'email'\">\r\n Check your junk folder if you don't see it in your inbox.\r\n </ion-label>\r\n <span *ngIf=\"option.value == 'email'\"><br/><br/></span>\r\n <div class=\"field ion-text-left\">\r\n <label for=\"authCode\">Enter code</label><br/>\r\n <p-inputNumber formControlName=\"otp\" maxlength=\"6\" minlength=\"6\" mode=\"decimal\" [useGrouping]=\"false\" size=\"6\" [inputId]=\"'authCode'\">\r\n </p-inputNumber>\r\n <app-error [field]='otp' [form]=\"otpFormDirective\" [errDef]=\"{ \r\n required: 'Access code is required.',\r\n minlength: 'Access code should have 6 numbers.'\r\n }\"></app-error>\r\n </div>\r\n <ion-item lines=\"none\" *ngIf=\"false\">\r\n <ion-checkbox slot=\"start\" formControlName=\"checked\"></ion-checkbox>\r\n <ion-label class=\"ion-text-wrap\">{{'I trust this browser.' | translate}}</ion-label>\r\n </ion-item>\r\n </div>\r\n \r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br /><br /></mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br/><br /></ion-label>\r\n <ion-label *ngIf=\"!blocked\">\r\n <span *ngIf=\"counter.getValue() != 1\">\r\n Haven't received the code? Resend option available in <b>{{counter.getValue()}} second(s)</b>.\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1\">\r\n <a (click)=\"resendAuthCode(option.value)\" class=\"link\">Get new code</a>\r\n </span>\r\n </ion-label>\r\n <p><a class=\"link\" (click)=\"showHelp = !showHelp; $event.preventDefault()\">Can't get to your {{option.value == 'text' ? 'cellphone' : 'email'}}?</a></p>\r\n <p *ngIf=\"showHelp\">\r\n Your code is good for 15 minutes. You can try again later.<br/>\r\n or<br/>\r\n If your {{option.value == 'text' ? 'cellphone number' : 'email address'}} has changed call
|
|
421
|
-
}], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }], {
|
|
617
|
+
args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading : 'Confirm access to your account' | translate}}</h4>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"!option.value && !returningUser\">\r\n <div class=\"ion-padding-top p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\">\r\n <label for=\"otpType\">{{'How would you like us to send your access code?' | translate}}</label>\r\n <p-selectButton [options]=\"options\" optionLabel=\"text\" optionValue=\"value\" [formControl]=\"option\" (onChange)=\"sendOtp($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"option.value\">\r\n <div class=\"ion-padding-top\">\r\n <ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\">An access code has been sent to your email address: <b>{{user?.emailId | maskEmail}}</b></span>\r\n <span *ngIf=\"option.value == 'text' && !returningUser\">An access code has been sent to your cellphone: <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n <span *ngIf=\"returningUser\">An access code has been sent to your cellphone : <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n </ion-label><br/><br/>\r\n <ion-label *ngIf=\"option.value == 'email' && !returningUser\">\r\n Check your junk folder if you don't see it in your inbox.\r\n </ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\"><br/><br/></span>\r\n <div class=\"field ion-text-left\">\r\n <label for=\"authCode\" *ngIf=\"!returningUser\">Enter code</label><br/>\r\n <label for=\"authCode\" *ngIf=\"returningUser\">Enter Validation Code Received :</label><br/>\r\n <p-inputNumber #otpField formControlName=\"otp\" maxlength=\"6\" minlength=\"6\" mode=\"decimal\" [useGrouping]=\"false\" size=\"6\" [inputId]=\"'authCode'\" autocomplete=\"off\" (keyup.enter)=\"(!requestCode && option.value) ? signIn() : submit()\">\r\n </p-inputNumber>\r\n <app-error [field]='otp' [form]=\"otpFormDirective\" [errDef]=\"{ \r\n required: 'Access code is required.',\r\n minlength: 'Access code should have 6 numbers.'\r\n }\"></app-error>\r\n </div>\r\n <ion-item lines=\"none\" *ngIf=\"false\">\r\n <ion-checkbox slot=\"start\" formControlName=\"checked\"></ion-checkbox>\r\n <ion-label class=\"ion-text-wrap\">{{'I trust this browser.' | translate}}</ion-label>\r\n </ion-item>\r\n </div>\r\n \r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br /><br /></mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br/><br /></ion-label>\r\n <ion-label *ngIf=\"!blocked\">\r\n <span *ngIf=\"counter.getValue() != 1 && !returningUser\">\r\n Haven't received the code? Resend option available in <b>{{counter.getValue()}} second(s)</b>.\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && !returningUser\">\r\n <a tabindex=\"0\" (click)=\"resendAuthCode(option.value)\" class=\"link\">Get new code</a>\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && returningUser\">\r\n <a tabindex=\"0\" (click)=\"resendAuthCode(option.value)\" class=\"link\">Resend Verification Code</a>\r\n </span>\r\n </ion-label>\r\n <p *ngIf=\"!returningUser\"><a tabindex=\"0\" class=\"link\" (click)=\"showHelp = !showHelp; $event.preventDefault()\">Can't get to your {{option.value == 'text' ? 'cellphone' : 'email'}}?</a></p>\r\n <p *ngIf=\"returningUser\"><a tabindex=\"0\" class=\"link\" (click)=\"uspsRedirect()\">Unable to verify</a></p>\r\n <p *ngIf=\"showHelp && !returningUser\">\r\n Your code is good for 15 minutes. You can try again later.<br/>\r\n or<br/>\r\n If your {{option.value == 'text' ? 'cellphone number' : 'email address'}} has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm.\r\n </p>\r\n </div>\r\n\r\n <p-footer>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right ion-padding-bottom\" *ngIf=\"!blocked && !hideButtons\">\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"reset\" (click)=\"close()\" color=\"success\" fill=\"outline\">\r\n Close\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (click)=\"signIn()\" color=\"success\" *ngIf=\"!requestCode && option.value\">\r\n Submit\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (click)=\"submit()\" color=\"success\" *ngIf=\"requestCode && option.value\">\r\n Submit\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</form>", styles: [":host ::ng-deep .panel{box-shadow:none!important}\n"] }]
|
|
618
|
+
}], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }, { type: i6.ClaimantUspsRedirectService }, { type: i7.SecurityService }, { type: i8.Router }, { type: i9.LexisNexisService }], { otpField: [{
|
|
619
|
+
type: ViewChild,
|
|
620
|
+
args: ["otpField"]
|
|
621
|
+
}], user: [{
|
|
422
622
|
type: Input
|
|
423
623
|
}], heading: [{
|
|
424
624
|
type: Input
|
|
@@ -430,6 +630,8 @@ export class MfaComponent {
|
|
|
430
630
|
type: Input
|
|
431
631
|
}], hideButtons: [{
|
|
432
632
|
type: Input
|
|
633
|
+
}], returningUser: [{
|
|
634
|
+
type: Input
|
|
433
635
|
}], clear: [{
|
|
434
636
|
type: Output
|
|
435
637
|
}], success: [{
|
|
@@ -440,5 +642,5 @@ export class MfaComponent {
|
|
|
440
642
|
type: ViewChild,
|
|
441
643
|
args: ['otpFormDirective', { static: false }]
|
|
442
644
|
}] }); })();
|
|
443
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber:
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFnRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDRHBDLDhCQUF1RCxhQUFBLGFBQUEsZUFBQTtJQUc1QixZQUFpRTs7SUFBQSxpQkFBUTtJQUM5RiwwQ0FBK0g7SUFBN0IsNktBQVksZUFBQSxzQkFBZSxDQUFBLElBQUM7SUFBQyxpQkFBaUIsRUFBQSxFQUFBLEVBQUE7OztJQUQzSCxlQUFpRTtJQUFqRSw2RkFBaUU7SUFDdEUsZUFBbUI7SUFBbkIsd0NBQW1CLDhCQUFBOzs7SUFRbkMsNEJBQXNDO0lBQUEsMEVBQTBEO0lBQUEseUJBQUc7SUFBQSxZQUE2Qjs7SUFBQSxpQkFBSSxFQUFBOzs7SUFBakMsZUFBNkI7SUFBN0IsNEZBQTZCOzs7SUFDaEksNEJBQXFDO0lBQUEsc0VBQXNEO0lBQUEseUJBQUc7SUFBQSxZQUFpQzs7SUFBQSxpQkFBSSxFQUFBOzs7SUFBckMsZUFBaUM7SUFBakMsZ0dBQWlDOzs7SUFFakksaUNBQTJDO0lB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O1lBQTlCLHVEQUE4Qjs7O2lGRDFDckUsWUFBWTtjQUx4QixTQUFTOzJCQUNFLFNBQVM7aUtBaUJuQixJQUFJO2tCQURILEtBQUs7WUFLTixPQUFPO2tCQUROLEtBQUs7WUFLTixXQUFXO2tCQURWLEtBQUs7WUFLTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFHSSxLQUFLO2tCQUFkLE1BQU07WUFFRyxPQUFPO2tCQUFoQixNQUFNO1lBRUcsS0FBSztrQkFBZCxNQUFNO1lBR0EsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQzs7a0ZBdkNwQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tZmEnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWZhLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgcHJpdmF0ZSBSRVNFTkRfQ09ERV9BQ1RJT05fTkFNRSA9IFwiTUZBX1JFU0VORF9DT0RFXCI7XG4gIFxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XG5cbiAgcHVibGljIGJsb2NrZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGlzQ2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHVzZXIgOiBVc2VyTW9kZWw7XG5cbiAgLy9JZiBzcGVjaWZpZWQsIGl0IHdpbGwgY2hhbmdlIHRoZSBkZWZhdWx0IGhlYWRpbmcgb24gdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBvbmNlIHNwZWNpZmllZCBpbiB0aGlzIGZpZWxkLlxuICBASW5wdXQoKVxuICBoZWFkaW5nIDogc3RyaW5nO1xuXG4gIC8vUmVxdWVzdCBuZXcgYXV0aGNvZGUgd2hlbiBjb21wb25lbnRzIGxvYWQuXG4gIEBJbnB1dCgpXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcblxuICAvL1Bhc3MgdGhpcyBkYXRhIGFsb25nIHdpdGggb3V0cHV0IHNvIHRoYXQgY2FsbGluZyBjb21wb25lbnQgY2FuIHRha2UgY2FyZSBvZiBpdC5cbiAgQElucHV0KClcbiAgZGF0YSA6IGFueTtcblxuICBASW5wdXQoKVxuICBtZmFFcnJvciA6IEVycm9yTW9kZWw7XG5cbiAgQElucHV0KClcbiAgaGlkZUJ1dHRvbnMgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsZWFyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKCdvdHBGb3JtRGlyZWN0aXZlJywge3N0YXRpYyA6IGZhbHNlfSkgXG4gIHB1YmxpYyBvdHBGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XG5cbiAgcHVibGljIG90cEZvcm0gOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBlcnJvckR0bHM7XG5cbiAgcHVibGljIHRpbWUgPSA2MFxuICBwdWJsaWMgdGltZXJJbnRlcnZhbCA9IGludGVydmFsKDEwMDApOyAvLzFzXG4gIHB1YmxpYyB0aW1lciA9IHRpbWVyKDYwMDAwKTsgLy85MHNcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XG4gIHB1YmxpYyBjb3VudGVyIDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICBjb3VudGVyU3Vic2NyaXB0aW9uIDogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBvcHRpb25zIDogQ29tYm9PcHRpb25bXSA9IFtcbiAgICB7dmFsdWUgOiAndGV4dCcsIHRleHQgOiAndGV4dCd9LFxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgZmIgOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSkgeyBcbiAgICAgICAgICAgICAgICBcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZihjaGFuZ2VzLm1mYUVycm9yPy5jdXJyZW50VmFsdWUpe1xuICAgICAgdGhpcy5lcnJvckR0bHMgPSB0aGlzLm1mYUVycm9yLm1zZztcbiAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xuICAgIH1cbiAgfVxuICBcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlsaXplRm9ybSgpO1xuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcbiAgICBpZih0aGlzLnJlcXVlc3RDb2RlKXtcbiAgICAgIGxldCBtZmFPcHRpb25zID0gdGhpcy51c2VyPy5zdXBwb3J0ZWRNZmFUeXBlcz8uc3BsaXQoXCIsXCIpIHx8IFsnZW1haWwnXTtcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XG4gICAgICAgIC8vYWxsb3cgdXNlciB0byBjaG9vc2Ugb3RwIG9wdGlvblxuICAgICAgfSBlbHNle1xuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcbiAgICB9XG4gIH1cblxuICByZXF1ZXN0TmV3QXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcbiAgICB0aGlzLmxzLmdldE5ld0F1dGhDb2RlKG90cFR5cGUpXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gXCJBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS5cIjtcbiAgICAgICAgICB0aGlzLmNvdW50ZXIubmV4dCg2MCk7XG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XG4gICAgICAgIH0pXG4gIH1cblxuICBzZXRDb3VudGRvd24oKXtcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnRpbWUgLSB2YWw7XG4gICAgICB0aGlzLmNvdW50ZXIubmV4dCh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBpbml0aWxpemVGb3JtKCl7XG4gICAgbGV0IG1mYU9wdGlvbnMgPSB0aGlzLnVzZXI/LnN1cHBvcnRlZE1mYVR5cGVzPy5zcGxpdChcIixcIikgfHwgWydlbWFpbCddO1xuICAgIHRoaXMub3RwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ290cCcgOiBbbnVsbCAsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCAgVmFsaWRhdG9ycy5taW5MZW5ndGgoNildXSxcbiAgICAgICdjaGVja2VkJyA6IFtmYWxzZV0sXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBvdHAoKXtcbiAgICByZXR1cm4gdGhpcy5vdHBGb3JtLmdldCgnb3RwJyk7XG4gIH1cblxuICBnZXQgb3B0aW9uKCl7XG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xuICB9XG5cbiAgZ2V0IGNoZWNrZWQoKXtcbiAgICByZXR1cm4gdGhpcy5vdHBGb3JtLmdldCgnY2hlY2tlZCcpO1xuICB9XG5cbiAgY2xvc2UoKXtcbiAgICB0aGlzLmNsZWFyLmVtaXQoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpe1xuICAgIGlmKHRoaXMub3RwRm9ybS52YWxpZCl7XG4gICAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2lnbkluKCl7XG4gICAgaWYodGhpcy5vdHAuaW52YWxpZCl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBhdXRoIDogYW55ID0ge307XG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXIudXNlcm5hbWU7XG4gICAgYXV0aC5wYXNzd29yZCA9IHRoaXMudXNlci5wYXNzd29yZDtcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xuICAgIGF1dGguaXN0cnVzdGVkRGV2aWNlID0gdGhpcy5jaGVja2VkLnZhbHVlICsgXCJcIjtcbiAgICB0aGlzLmJsb2NrZWQgPSB0cnVlO1xuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcbiAgICB0aGlzLnV0aWxcbiAgICAgICAgLnNob3dMb2FkZXIoKVxuICAgICAgICAudGhlbihcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcbiAgICAgICAgICAgICAgICB0aGlzLmxzLnNldFVzZXIodXNlck1vZGVsKS50aGVuKFxuICAgICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgfVxuXG4gIHNlbmRPdHAoZXZlbnQpe1xuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgcmVzZW5kQXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XG4gICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xuICAgIHRoaXMuYmxvY2tlZCA9IHRydWU7XG4gICAgdGhpcy5jcy5nZW5lcmF0ZUNhcHRjaGFUb2tlbih0aGlzLlJFU0VORF9DT0RFX0FDVElPTl9OQU1FKVxuICAgICAgICAuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5jcy5zZXRJbnZpc2liZWxDYXB0Y2hhKHRva2VuKTtcbiAgICAgICAgICB0aGlzLmxzXG4gICAgICAgICAgICAgIC5nZW5lcmF0ZU90cCh0aGlzLnVzZXIudXNlcm5hbWUsIG90cFR5cGUpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gXCJBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS5cIjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ZXIubmV4dCg2MCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcbiAgICAgICAgICAgICAgfSxlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvckR0bHMgPSAnQ2FwdGNoYSB2ZXJpZmljYXRpb24gZmFpbGVkLiBQbGVhc2UgcmV0cnkuJztcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIHdoaWxlIHZlcmlmeWluZyBjYXB0Y2hhJyxlcnIpO1xuICAgICAgICB9KTtcbiAgICBcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJvdHBGb3JtXCIgI290cEZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICA8aDQgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEwcHg7XCIgY2xhc3M9XCJoZWFkaW5nXCI+e3sgaGVhZGluZyA/IGhlYWRpbmcgOiAnQ29uZmlybSBhY2Nlc3MgdG8geW91ciBhY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9oND5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIiFvcHRpb24udmFsdWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwib3RwVHlwZVwiPnt7J0hvdyB3b3VsZCB5b3UgbGlrZSB1cyB0byBzZW5kIHlvdXIgYWNjZXNzIGNvZGU/JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwib3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbZm9ybUNvbnRyb2xdPVwib3B0aW9uXCIgKG9uQ2hhbmdlKT1cInNlbmRPdHAoJGV2ZW50KVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEwcHg7XCIgKm5nSWY9XCJvcHRpb24udmFsdWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnXCI+QW4gYWNjZXNzIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGVtYWlsIGFkZHJlc3M6Jm5ic3A7IDxiPnt7dXNlcj8uZW1haWxJZCB8IG1hc2tFbWFpbH19PC9iPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAndGV4dCdcIj5BbiBhY2Nlc3MgY29kZSBoYXMgYmVlbiBzZW50IHRvIHlvdXIgY2VsbHBob25lOiZuYnNwOyA8Yj57e3VzZXI/LmNlbGxwaG9uZU5vIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICA8L2lvbi1sYWJlbD48YnIvPjxici8+XHJcbiAgICAgIDxpb24tbGFiZWwgKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJ1wiPlxyXG4gICAgICAgIENoZWNrIHlvdXIganVuayBmb2xkZXIgaWYgeW91IGRvbid0IHNlZSBpdCBpbiB5b3VyIGluYm94LlxyXG4gICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJ1wiPjxici8+PGJyLz48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCI+RW50ZXIgY29kZTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJvdHBcIiBtYXhsZW5ndGg9XCI2XCIgbWlubGVuZ3RoPVwiNlwiIG1vZGU9XCJkZWNpbWFsXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgc2l6ZT1cIjZcIiBbaW5wdXRJZF09XCInYXV0aENvZGUnXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJvdHBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6ICdBY2Nlc3MgY29kZSBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgbWlubGVuZ3RoOiAnQWNjZXNzIGNvZGUgc2hvdWxkIGhhdmUgNiBudW1iZXJzLidcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxpb24tY2hlY2tib3ggc2xvdD1cInN0YXJ0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tlZFwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+e3snSSB0cnVzdCB0aGlzIGJyb3dzZXIuJyB8IHRyYW5zbGF0ZX19PC9pb24tbGFiZWw+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImVycm9yRHRsc1wiPnt7ZXJyb3JEdGxzfX08YnIgLz48YnIgLz48L21hdC1lcnJvcj5cclxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCJzdWNjZXNzRHRsc1wiIHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbilcIj57e3N1Y2Nlc3NEdGxzfX08YnIvPjxiciAvPjwvaW9uLWxhYmVsPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cIiFibG9ja2VkXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpICE9IDFcIj5cclxuICAgICAgICBIYXZlbid0IHJlY2VpdmVkIHRoZSBjb2RlPyBSZXNlbmQgb3B0aW9uIGF2YWlsYWJsZSBpbiA8Yj57e2NvdW50ZXIuZ2V0VmFsdWUoKX19IHNlY29uZChzKTwvYj4uXHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudGVyLmdldFZhbHVlKCkgPT0gMVwiPlxyXG4gICAgICAgICA8YSAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPkdldCBuZXcgY29kZTwvYT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8cD48YSBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwic2hvd0hlbHAgPSAhc2hvd0hlbHA7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+Q2FuJ3QgZ2V0IHRvIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZScgOiAnZW1haWwnfX0/PC9hPjwvcD5cclxuICAgIDxwICpuZ0lmPVwic2hvd0hlbHBcIj5cclxuICAgICAgWW91ciBjb2RlIGlzIGdvb2QgZm9yIDE1IG1pbnV0ZXMuIFlvdSBjYW4gdHJ5IGFnYWluIGxhdGVyLjxici8+XHJcbiAgICAgIG9yPGJyLz5cclxuICAgICAgSWYgeW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lIG51bWJlcicgOiAnZW1haWwgYWRkcmVzcyd9fSBoYXMgY2hhbmdlZCBjYWxsIE1ERVMgYXQgNjAxLTQ5My05NDI3LCBNb25kYXkgdGhyb3VnaCBGcmlkYXkgZnJvbSA4IGFtIHRvIDUgcG0uXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxwLWZvb3Rlcj5cclxuICAgIDxkaXYgKm5nSWY9XCJibG9ja2VkXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0IGlvbi1wYWRkaW5nLWJvdHRvbVwiICpuZ0lmPVwiIWJsb2NrZWQgJiYgIWhpZGVCdXR0b25zXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwicmVzZXRcIiAoY2xpY2spPVwiY2xvc2UoKVwiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgQ2xvc2VcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzaWduSW4oKVwiIGNvbG9yPVwic3VjY2Vzc1wiICpuZ0lmPVwiIXJlcXVlc3RDb2RlICYmIG9wdGlvbi52YWx1ZVwiPlxyXG4gICAgICAgIFN1Ym1pdFxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCJyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICBTdWJtaXRcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLWZvb3Rlcj5cclxuPC9mb3JtPiJdfQ==
|
|
645
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber: 26 }); })();
|
|
646
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFnRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVF0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNUNUMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQWlFOztJQUFBLGlCQUFRO0lBQzlGLDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQWlFO0lBQWpFLDZGQUFpRTtJQUN0RSxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSwwRUFBMEQ7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqQyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNsSiw0QkFBdUQ7SUFBQSxzRUFBc0Q7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFB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aEU7d0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQztpQkFDRixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzZFQTlXVSxZQUFZO29FQUFaLFlBQVk7Ozs7Ozs7O1lDekJ6QixrQ0FBdUQsWUFBQTtZQUNMLFlBQXFFOztZQUFBLGlCQUFLO1lBRTFILDZEQU9NLGtEQUFBO1lBbUROLGdDQUFVO1lBQ1IsNkRBRU0sZ0RBQUE7WUFZUixpQkFBVyxFQUFBOztZQTVFUCx1Q0FBcUI7WUFDdUIsZUFBcUU7WUFBckUsd0dBQXFFO1lBRW5GLGVBQXFDO1lBQXJDLDhEQUFxQztZQVNyQyxlQUFrQjtZQUFsQix1Q0FBa0I7WUFrRDVDLGVBQWE7WUFBYixrQ0FBYTtZQUc2QixlQUE4QjtZQUE5Qix1REFBOEI7OztpRkR4Q3JFLFlBQVk7Y0FMeEIsU0FBUzsyQkFDRSxTQUFTOzhSQU1JLFFBQVE7a0JBQTlCLFNBQVM7bUJBQUMsVUFBVTtZQVlyQixJQUFJO2tCQURILEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFLTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFHSSxLQUFLO2tCQUFkLE1BQU07WUFFRyxPQUFPO2tCQUFoQixNQUFNO1lBRUcsS0FBSztrQkFBZCxNQUFNO1lBR0EsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQzs7a0ZBMUNwQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFcnJvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yTW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRVc3BzUmVkaXJlY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC11c3BzLXJlZGlyZWN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlY3VyaXR5LXNlcnZpY2Uvc2VjdXJpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExleGlzTmV4aXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGV4aXMtbmV4aXMvbGV4aXMubmV4aXMuc2VydmljZSc7XHJcbmltcG9ydCB7IExleGlzTmV4aXNBdXRoU2VsZWN0aW9uUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xleGlzTmV4aXNBdXRoU2VsZWN0aW9uUmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgTGV4aXNOZXhpc0F1dGhTZWxlY3Rpb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xleGlzTmV4aXNBdXRoU2VsZWN0aW9uUmVzcG9uc2VNb2RlbCc7XHJcbmltcG9ydCB7IExleGlzTmV4aXNBY2NvdW50Q3JlYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9MZXhpc05leGlzQWNjb3VudENyZWF0aW9uTW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZXIgOiBVc2VyTW9kZWw7XHJcblxyXG4gIC8vSWYgc3BlY2lmaWVkLCBpdCB3aWxsIGNoYW5nZSB0aGUgZGVmYXVsdCBoZWFkaW5nIG9uIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgb25jZSBzcGVjaWZpZWQgaW4gdGhpcyBmaWVsZC5cclxuICBASW5wdXQoKSBoZWFkaW5nIDogc3RyaW5nO1xyXG5cclxuICAvL1JlcXVlc3QgbmV3IGF1dGhjb2RlIHdoZW4gY29tcG9uZW50cyBsb2FkLlxyXG4gIEBJbnB1dCgpXHJcbiAgcmVxdWVzdENvZGUgOiBib29sZWFuO1xyXG5cclxuICAvL1Bhc3MgdGhpcyBkYXRhIGFsb25nIHdpdGggb3V0cHV0IHNvIHRoYXQgY2FsbGluZyBjb21wb25lbnQgY2FuIHRha2UgY2FyZSBvZiBpdC5cclxuICBASW5wdXQoKVxyXG4gIGRhdGEgOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWZhRXJyb3IgOiBFcnJvck1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhpZGVCdXR0b25zIDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJldHVybmluZ1VzZXI6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBjbGVhcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnb3RwRm9ybURpcmVjdGl2ZScsIHtzdGF0aWMgOiBmYWxzZX0pIFxyXG4gIHB1YmxpYyBvdHBGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuICBwdWJsaWMgdXNwc1JlZGlyZWN0VXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIGF1dGhTZWxlY3Rpb25SZXF1ZXN0IDogTGV4aXNOZXhpc0F1dGhTZWxlY3Rpb25SZXF1ZXN0TW9kZWw7XHJcbiAgcHVibGljIGF1dGhTZWxlY3Rpb25SZXNwb25zZSA6IExleGlzTmV4aXNBdXRoU2VsZWN0aW9uUmVzcG9uc2VNb2RlbDtcclxuICBwdWJsaWMgYWNjb3VudENyZWF0aW9uTW9kZWw6IExleGlzTmV4aXNBY2NvdW50Q3JlYXRpb25Nb2RlbDtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgZmIgOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgY3M6IENhcHRjaGFTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXI6IENsYWltYW50VXNwc1JlZGlyZWN0U2VydmljZSwgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG46IExleGlzTmV4aXNTZXJ2aWNlKSB7IFxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlcy5tZmFFcnJvcj8uY3VycmVudFZhbHVlKXtcclxuICAgICAgdGhpcy5lcnJvckR0bHMgPSB0aGlzLm1mYUVycm9yLm1zZztcclxuICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlsaXplRm9ybSgpO1xyXG4gICAgLy90aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgaWYodGhpcy5yZXF1ZXN0Q29kZSl7XHJcbiAgICAgIGxldCBtZmFPcHRpb25zID0gdGhpcy51c2VyPy5zdXBwb3J0ZWRNZmFUeXBlcz8uc3BsaXQoXCIsXCIpIHx8IFsnZW1haWwnXTtcclxuICAgICAgaWYobWZhT3B0aW9ucy5sZW5ndGggPiAxKXtcclxuICAgICAgICAvL2FsbG93IHVzZXIgdG8gY2hvb3NlIG90cCBvcHRpb25cclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIHRoaXMucmVxdWVzdE5ld0F1dGhDb2RlKCdlbWFpbCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dChfID0+IHtcclxuICAgICAgdGhpcy5vdHBGaWVsZC5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApXHJcbiAgfVxyXG5cclxuICByZXF1ZXN0TmV3QXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmJsb2NrZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5scy5nZXROZXdBdXRoQ29kZShvdHBUeXBlKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IFwiQWNjZXNzIGNvZGUgc2VudCBzdWNjZXNzZnVsbHkuXCI7XHJcbiAgICAgICAgICB0aGlzLmNvdW50ZXIubmV4dCg2MCk7XHJcbiAgICAgICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZXRDb3VudGRvd24oKXtcclxuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XHJcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uID0gdGhpcy5jb3VudERvd24uc3Vic2NyaWJlKHZhbCA9PntcclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy50aW1lIC0gdmFsO1xyXG4gICAgICB0aGlzLmNvdW50ZXIubmV4dCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZUZvcm0oKXtcclxuICAgIGxldCBtZmFPcHRpb25zID0gdGhpcy51c2VyPy5zdXBwb3J0ZWRNZmFUeXBlcz8uc3BsaXQoXCIsXCIpIHx8IFsnZW1haWwnXTtcclxuICAgIHRoaXMub3RwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAnb3RwJyA6IFtudWxsICwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV1dLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5jbGVhci5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIGlmKHRoaXMub3RwRm9ybS52YWxpZCl7XHJcbiAgICAgIHRoaXMubHMuc2V0QXV0aENvZGUodGhpcy5vdHAudmFsdWUpO1xyXG4gICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2lnbkluKCl7XHJcbiAgICBpZih0aGlzLm90cC5pbnZhbGlkKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGF1dGggOiBhbnkgPSB7fTtcclxuICAgIGF1dGgudXNlcklkID0gdGhpcy51c2VyLnVzZXJuYW1lO1xyXG4gICAgYXV0aC5wYXNzd29yZCA9IHRoaXMudXNlci5wYXNzd29yZDtcclxuICAgIGF1dGgub3RwID0gdGhpcy5vdHAudmFsdWU7XHJcbiAgICBhdXRoLmlzdHJ1c3RlZERldmljZSA9IHRoaXMuY2hlY2tlZC52YWx1ZSArIFwiXCI7XHJcbiAgICB0aGlzLmJsb2NrZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB0aGlzLmVycm9yRHRscyA9IG51bGw7XHJcbiAgICB0aGlzLnV0aWxcclxuICAgICAgICAuc2hvd0xvYWRlcigpXHJcbiAgICAgICAgLnRoZW4oXHJcbiAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubHMubG9naW5BbmRDaGVja0Zvck1GQShhdXRoKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5scy5zZXRVc2VyKHVzZXJNb2RlbCkudGhlbihcclxuICAgICAgICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMubG5RdWVyeUFwaSgpOyAvLyBGb3IgdGVzdGluZyA6IExleGlzIE5leGlzIC0gTm9ybWFsIGZsb3dcclxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMubG5RdWVyeUFwaVBJKCk7IC8vIEZvciB0ZXN0aW5nIDogTGV4aXMgTmV4aXMgLSBTaWduIHVwIGZsb3dcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmVycm9yRHRsc1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFbmFibGUgTFgvTlhcIik7IC8qIGRvbnQgd29yayBvbiBpdCBub3cqL1xyXG4gICAgICAgICAgICAgICAgICAvL3RoaXMudXNwc1JlZGlyZWN0KCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xlYXIuZW1pdCgpLCAxMDAwKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICB9XHJcblxyXG4gIGxuUXVlcnlBcGkoKXtcclxuICAgIHRoaXMubG4uZ2V0TG5RdWVyeUFwaVJlc3BvbnNlKClcclxuICAgIC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0ZhaWxlZCB0byByZXRyaWV2ZSB0aGUgTE4gcHJvb2ZpbmcgcmVzcG9uc2UnKTtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkgfCBudWxsKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmKHJlc3BvbnNlPy5yZXF1ZXN0X3Jlc3VsdCA9PT0gXCJzdWNjZXNzXCIgJiYgXHJcbiAgICAgICAgICAocmVzcG9uc2U/LnJldmlld19zdGF0dXMgPT09IFwicmVqZWN0XCIgfHwgcmVzcG9uc2U/LnJldmlld19zdGF0dXMgPT09IFwiY2hhbGxlbmdlXCIpKXtcclxuICAgICAgICAgIGlmKHJlc3BvbnNlPy5hdXRoX3NlbGVjdGlvbl9tZXRob2RzWzBdPy5hdXRoX3NlbGVjdGlvbl9pZCl7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlbGVjdGlvblJlcXVlc3QgPSB7XHJcbiAgICAgICAgICAgICAgYXV0aF9zZWxlY3Rpb25faWQgOiByZXNwb25zZT8uYXV0aF9zZWxlY3Rpb25fbWV0aG9kc1swXT8uYXV0aF9zZWxlY3Rpb25faWQsXHJcbiAgICAgICAgICAgICAgJ2lpZHFhLmFuc3dlcnMnOiBudWxsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMubG5BdXRoZW50aWNhdGlvblFBKHRoaXMuYXV0aFNlbGVjdGlvblJlcXVlc3QpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvcihcIkFVVEggU0VMRUNUSU9OIElEXCIsIFwiQXV0aCBzZWxlY3Rpb24gaWQgbWlzc2luZ1wiLCByZXNwb25zZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXRpbC5pbmZvKCdFbXB0eSByZXNwb25zZSByZWNlaXZlZCcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxuUXVlcnlBcGlQSSgpe1xyXG4gICAgdGhpcy5zZXRTZXNzaW9uSWQodGhpcy5hY2NvdW50RGF0YSk7XHJcbiAgICBjb25zdCBsbkFjY291bnRDcmVhdGlvblRlc3REYXRhID0gdGhpcy5hY2NvdW50RGF0YTtcclxuICAgIHRoaXMubG4uZ2V0TG5RdWVyeUFwaVBJUmVzcG9uc2UobG5BY2NvdW50Q3JlYXRpb25UZXN0RGF0YSlcclxuICAgIC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0ZhaWxlZCB0byByZXRyaWV2ZSB0aGUgTE4gcHJvb2ZpbmcgcmVzcG9uc2UnKTtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkgfCBudWxsKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmKHJlc3BvbnNlPy5yZXF1ZXN0X3Jlc3VsdCA9PT0gXCJzdWNjZXNzXCIgJiYgXHJcbiAgICAgICAgICAocmVzcG9uc2U/LnJldmlld19zdGF0dXMgPT09IFwicmVqZWN0XCIgfHwgcmVzcG9uc2U/LnJldmlld19zdGF0dXMgPT09IFwiY2hhbGxlbmdlXCIpKXtcclxuICAgICAgICAgIGlmKHJlc3BvbnNlPy5hdXRoX3NlbGVjdGlvbl9tZXRob2RzWzBdPy5hdXRoX3NlbGVjdGlvbl9pZCl7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlbGVjdGlvblJlcXVlc3QgPSB7XHJcbiAgICAgICAgICAgICAgYXV0aF9zZWxlY3Rpb25faWQgOiByZXNwb25zZT8uYXV0aF9zZWxlY3Rpb25fbWV0aG9kc1swXT8uYXV0aF9zZWxlY3Rpb25faWQsXHJcbiAgICAgICAgICAgICAgJ2lpZHFhLmFuc3dlcnMnOiBudWxsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMubG5BdXRoZW50aWNhdGlvblFBKHRoaXMuYXV0aFNlbGVjdGlvblJlcXVlc3QpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvcihcIkFVVEggU0VMRUNUSU9OIElEXCIsIFwiQXV0aCBzZWxlY3Rpb24gaWQgbWlzc2luZ1wiLCByZXNwb25zZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXRpbC5pbmZvKCdFbXB0eSByZXNwb25zZSByZWNlaXZlZCcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFNlc3Npb25JZChhY2NvdW50RGF0YTogTGV4aXNOZXhpc0FjY291bnRDcmVhdGlvbk1vZGVsKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZXNzaW9uSWQgPSB3aW5kb3dbJ3Nlc3Npb25JZCddOyBcclxuICAgIGlmICghc2Vzc2lvbklkKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1Nlc3Npb24gSUQgbm90IGZvdW5kIGluIHdpbmRvdyBvYmplY3QuJyk7XHJcbiAgICAgIHJldHVybjsgLy8gaGFuZGxlIGFjY29yZGluZ2x5XHJcbiAgICB9XHJcbiAgICBhY2NvdW50RGF0YS5zZXNzaW9uX2lkID0gc2Vzc2lvbklkO1xyXG4gIH1cclxuXHJcbiAgLyogRm9yIHRlc3RpbmcsIHRoaXMgbW9kZWwgZGF0YSBmb3IgYWNjb3VudERhdGEgaXMgdGhlIG9ubHkgb25lIHRoYXQgTE4gc2VuZHMgdGhlIGF1dGggc2VsZWN0aW9uIGlkIGZvciAqL1xyXG4gIHByaXZhdGUgYWNjb3VudERhdGE6IExleGlzTmV4aXNBY2NvdW50Q3JlYXRpb25Nb2RlbCA9IHtcclxuICAgIHNlc3Npb25faWQ6IG51bGwsXHJcbiAgICBpbnB1dF9pcF9hZGRyZXNzOiBcIjE2NS4yMDEuNTYuMTMwXCIsXHJcbiAgICBhY2NvdW50X2ZpcnN0X25hbWU6IFwiV0FZTkVcIixcclxuICAgIGFjY291bnRfbGFzdF9uYW1lOiBcIkFHQVJXQUxcIixcclxuICAgIGFjY291bnRfYWRkcmVzc19zdHJlZXQxOiBcIjg3OSBTRUxXWU4gUkRcIixcclxuICAgIGFjY291bnRfYWRkcmVzc19jaXR5OiBcIkNMRVZFTEFORCBIRUlHSFRTXCIsXHJcbiAgICBhY2NvdW50X2FkZHJlc3Nfc3RhdGU6IFwiT0hcIixcclxuICAgIGFjY291bnRfYWRkcmVzc196aXA6IFwiNDQxMTJcIixcclxuICAgIGFjY291bnRfZGF0ZV9vZl9iaXJ0aDogXCIxOTYxMDIxMFwiLFxyXG4gICAgYWNjb3VudF9lbWFpbDogXCJXQVlORUFHQVJXQUwxMjA2QENPTUNBU1QuV0VCXCIsXHJcbiAgICBhY2NvdW50X3RlbGVwaG9uZTogXCI5MDcyMjkzOTg0XCIsXHJcbiAgICBuYXRpb25hbF9pZF9udW1iZXI6IFwiNjY2MDg3MzU3XCJcclxuICB9O1xyXG5cclxuICBsbkF1dGhlbnRpY2F0aW9uUUEoYXV0aFNlbGVjdGlvblJlcXVlc3QgOiBMZXhpc05leGlzQXV0aFNlbGVjdGlvblJlcXVlc3RNb2RlbCl7XHJcbiAgICB0aGlzLmxuLmxuQXV0aGVudGljYXRpb25RQShhdXRoU2VsZWN0aW9uUmVxdWVzdClcclxuICAgIC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0ZhaWxlZCB0byByZXRyaWV2ZSB0aGUgTE4gYXV0aG9yaXphdGlvbiBxdWVzdGlvbnMnKTtcclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkgfCBudWxsKSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIC8vIGV4dHJhY3RpbmcgcXVlc3Rpb25zIGZyb20gdGhlIHJlc3BvbnNlXHJcbiAgICAgICAgY29uc29sZS5sb2coJ1JFU1BPTlNFIDo6OiAnLCByZXNwb25zZSk7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VsZWN0aW9uUmVzcG9uc2UgPSByZXNwb25zZTtcclxuICAgICAgICBjb25zb2xlLmxvZygnQVVUSCBTRUxFQ1RJT04gUkVTUE9OU0UgOjo6ICcsIHJlc3BvbnNlKTtcclxuICAgICAgICBpZihyZXNwb25zZT8ucmVxdWVzdF9yZXN1bHQgPT09IFwiZmFpbF9pbnZhbGlkX3BhcmFtZXRlclwiKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZT8uZXJyb3JfZGV0YWlsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51dGlsLmluZm8oJ0VtcHR5IHJlc3BvbnNlIHJlY2VpdmVkJyk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVzZW5kQXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcclxuICAgIG90cFR5cGUgPSBcIlRFWFwiOyAvL1RoaXMgaGFzIHRvIGJlIGNoYW5nZWQgaW4gdGhlIGJhY2tlbmQgb25jZSBtZmFQcmVmZXJlbmNlIGlzIHNhdmVkXHJcbiAgICB0aGlzLmxzLmdlbmVyYXRlT3RwKHRoaXMudXNlci51c2VybmFtZSwgb3RwVHlwZSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9ICdBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS4nO1xyXG4gICAgICAgIHRoaXMuY291bnRlci5uZXh0KDYwKTtcclxuICAgICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXNwc1JlZGlyZWN0KCkge1xyXG4gICAgdGhpcy5jbGVhci5lbWl0KCk7XHJcbiAgICB0aGlzLnNzXHJcbiAgICAgIC5nZW5lcmF0ZVVSTEZvclVTUFModGhpcy51c2VyPy51c2VybmFtZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0ZhaWxlZCB0byByZXRyaWV2ZSB0aGUgZGF0YScpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGVycm9yKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogYW55IHwgbnVsbCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy51c3BzUmVkaXJlY3RVcmwgPSByZXNwb25zZS51c3BzVXJsO1xyXG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIHRoaXMuc3MubG9ja0NsYWltYW50QWNjb3VudCh0aGlzLnVzZXIudXNlcm5hbWUpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHt9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGVyci5tc2dbMF0uaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgICAgICdDbGFpbWFudCBBY2NvdW50IGlzIExvY2tlZCAtIE9UUCBhdHRlbXB0cyBleGNlZWRlZCdcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCB0aGlzLnVzcHNSZWRpcmVjdFVybF0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmNsZWFyLmVtaXQoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuaW5mbygnRW1wdHkgcmVzcG9uc2UgcmVjZWl2ZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm90cEZvcm1cIiAjb3RwRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gIDxoNCBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj57eyBoZWFkaW5nID8gaGVhZGluZyA6ICdDb25maXJtIGFjY2VzcyB0byB5b3VyIGFjY291bnQnIHwgdHJhbnNsYXRlfX08L2g0PlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiICpuZ0lmPVwiIW9wdGlvbi52YWx1ZSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJvdHBUeXBlXCI+e3snSG93IHdvdWxkIHlvdSBsaWtlIHVzIHRvIHNlbmQgeW91ciBhY2Nlc3MgY29kZT8nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj5BbiBhY2Nlc3MgY29kZSBoYXMgYmVlbiBzZW50IHRvIHlvdXIgZW1haWwgYWRkcmVzczombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPkFuIGFjY2VzcyBjb2RlIGhhcyBiZWVuIHNlbnQgdG8geW91ciBjZWxscGhvbmU6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+QW4gYWNjZXNzIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGNlbGxwaG9uZSA6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgQ2hlY2sgeW91ciBqdW5rIGZvbGRlciBpZiB5b3UgZG9uJ3Qgc2VlIGl0IGluIHlvdXIgaW5ib3guXHJcbiAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+PGJyLz48YnIvPjwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+RW50ZXIgY29kZTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj5FbnRlciBWYWxpZGF0aW9uIENvZGUgUmVjZWl2ZWQgOjwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8cC1pbnB1dE51bWJlciAjb3RwRmllbGQgZm9ybUNvbnRyb2xOYW1lPVwib3RwXCIgbWF4bGVuZ3RoPVwiNlwiIG1pbmxlbmd0aD1cIjZcIiBtb2RlPVwiZGVjaW1hbFwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIHNpemU9XCI2XCIgW2lucHV0SWRdPVwiJ2F1dGhDb2RlJ1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChrZXl1cC5lbnRlcik9XCIoIXJlcXVlc3RDb2RlICYmIG9wdGlvbi52YWx1ZSkgPyBzaWduSW4oKSA6IHN1Ym1pdCgpXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJvdHBGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6ICdBY2Nlc3MgY29kZSBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgbWlubGVuZ3RoOiAnQWNjZXNzIGNvZGUgc2hvdWxkIGhhdmUgNiBudW1iZXJzLidcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxpb24tY2hlY2tib3ggc2xvdD1cInN0YXJ0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tlZFwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJpb24tdGV4dC13cmFwXCI+e3snSSB0cnVzdCB0aGlzIGJyb3dzZXIuJyB8IHRyYW5zbGF0ZX19PC9pb24tbGFiZWw+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImVycm9yRHRsc1wiPnt7ZXJyb3JEdGxzfX08YnIgLz48YnIgLz48L21hdC1lcnJvcj5cclxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCJzdWNjZXNzRHRsc1wiIHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbilcIj57e3N1Y2Nlc3NEdGxzfX08YnIvPjxiciAvPjwvaW9uLWxhYmVsPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cIiFibG9ja2VkXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpICE9IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICBIYXZlbid0IHJlY2VpdmVkIHRoZSBjb2RlPyBSZXNlbmQgb3B0aW9uIGF2YWlsYWJsZSBpbiA8Yj57e2NvdW50ZXIuZ2V0VmFsdWUoKX19IHNlY29uZChzKTwvYj4uXHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudGVyLmdldFZhbHVlKCkgPT0gMSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPkdldCBuZXcgY29kZTwvYT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSA9PSAxICYmIHJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPlJlc2VuZCBWZXJpZmljYXRpb24gQ29kZTwvYT5cclxuICAgICA8L3NwYW4+XHJcbiAgICA8L2lvbi1sYWJlbD5cclxuICAgIDxwICpuZ0lmPVwiIXJldHVybmluZ1VzZXJcIj48YSB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwic2hvd0hlbHAgPSAhc2hvd0hlbHA7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+Q2FuJ3QgZ2V0IHRvIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZScgOiAnZW1haWwnfX0/PC9hPjwvcD5cclxuICAgIDxwICpuZ0lmPVwicmV0dXJuaW5nVXNlclwiPjxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwibGlua1wiIChjbGljayk9XCJ1c3BzUmVkaXJlY3QoKVwiPlVuYWJsZSB0byB2ZXJpZnk8L2E+PC9wPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93SGVscCAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICBZb3VyIGNvZGUgaXMgZ29vZCBmb3IgMTUgbWludXRlcy4gWW91IGNhbiB0cnkgYWdhaW4gbGF0ZXIuPGJyLz5cclxuICAgICAgb3I8YnIvPlxyXG4gICAgICBJZiB5b3VyIHt7b3B0aW9uLnZhbHVlID09ICd0ZXh0JyA/ICdjZWxscGhvbmUgbnVtYmVyJyA6ICdlbWFpbCBhZGRyZXNzJ319IGhhcyBjaGFuZ2VkIGNhbGwgS0RPTCBhdCA3ODUtNTc1LTE0NjAsIE1vbmRheSB0aHJvdWdoIEZyaWRheSBmcm9tIDggYW0gdG8gNDozMCBwbS5cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHAtZm9vdGVyPlxyXG4gICAgPGRpdiAqbmdJZj1cImJsb2NrZWRcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHQgaW9uLXBhZGRpbmctYm90dG9tXCIgKm5nSWY9XCIhYmxvY2tlZCAmJiAhaGlkZUJ1dHRvbnNcIj5cclxuICAgICAgPGlvbi1idXR0b24gdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJyZXNldFwiIChjbGljayk9XCJjbG9zZSgpXCIgY29sb3I9XCJzdWNjZXNzXCIgZmlsbD1cIm91dGxpbmVcIj5cclxuICAgICAgICBDbG9zZVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uICB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzaWduSW4oKVwiIGNvbG9yPVwic3VjY2Vzc1wiICpuZ0lmPVwiIXJlcXVlc3RDb2RlICYmIG9wdGlvbi52YWx1ZVwiPlxyXG4gICAgICAgIFN1Ym1pdFxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCJyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICBTdWJtaXRcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLWZvb3Rlcj5cclxuPC9mb3JtPiJdfQ==
|