@reusa/ngx-reusa-app-lib 0.0.1321 → 0.0.1322

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.
Files changed (528) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1251 -2377
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +99 -158
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +16 -36
  4. package/esm2022/lib/components/address/address.component.mjs +81 -267
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +123 -47
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +16 -4
  7. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +9 -3
  8. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +4 -32
  9. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +15 -30
  10. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  11. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  12. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  13. package/esm2022/lib/components/email-update/email-update.component.mjs +36 -16
  14. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +435 -319
  15. package/esm2022/lib/components/error/error.component.mjs +5 -22
  16. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  17. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +49 -178
  18. package/esm2022/lib/components/footer/footer.component.mjs +67 -90
  19. package/esm2022/lib/components/header/header.component.mjs +136 -456
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
  21. package/esm2022/lib/components/info/info.component.mjs +12 -4
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +1 -1
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +94 -93
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +331 -142
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +340 -0
  26. package/esm2022/lib/components/link/link.component.mjs +1 -1
  27. package/esm2022/lib/components/menu/menu.component.mjs +53 -60
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +188 -116
  29. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +261 -0
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +36 -148
  32. package/esm2022/lib/components/profile/profile.component.mjs +338 -722
  33. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +33 -110
  34. package/esm2022/lib/components/questionnaire/AppValidators.mjs +47 -296
  35. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +65 -110
  36. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +129 -386
  37. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +70 -72
  38. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1075 -861
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +565 -186
  40. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +22 -28
  41. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +29 -113
  42. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  43. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  44. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
  45. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -491
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +27 -155
  47. package/esm2022/lib/components/security-question/security-question.component.mjs +189 -0
  48. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  49. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
  50. package/esm2022/lib/components/user-login/user-login.component.mjs +300 -116
  51. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +241 -613
  52. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +59 -114
  53. package/esm2022/lib/guards/auth.guard.mjs +2 -50
  54. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  55. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
  56. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  57. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  58. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  59. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  60. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  61. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  62. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  63. package/esm2022/lib/models/LibConstants.mjs +6 -45
  64. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  65. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  66. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  67. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  68. package/esm2022/lib/models/dependent.model.mjs +1 -1
  69. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  70. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  71. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  72. package/esm2022/lib/models/questionnaire/ComboModel.mjs +179 -101
  73. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  74. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  76. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  77. package/esm2022/lib/pages/BasePage.mjs +23 -4
  78. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  79. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  80. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  81. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  82. package/esm2022/lib/pages/common/login/login.component.mjs +5 -6
  83. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  84. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  85. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
  86. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  87. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  88. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
  89. package/esm2022/lib/services/base-service.mjs +1 -4
  90. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  91. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  92. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  93. package/esm2022/lib/services/claims/claims.service.mjs +14 -102
  94. package/esm2022/lib/services/help/help.service.mjs +1 -1
  95. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  96. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  97. package/esm2022/lib/services/login/login.service.mjs +11 -29
  98. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  99. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  100. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  101. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  102. package/esm2022/lib/services/util/util.service.mjs +5 -61
  103. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  104. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  105. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  106. package/esm2022/public-api.mjs +5 -47
  107. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +25009 -44499
  108. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  109. package/lib/components/add-employer/add-employer.component.d.ts +52 -85
  110. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  111. package/lib/components/add-participant/add-participant.component.d.ts +2 -11
  112. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  113. package/lib/components/add-payment/add-payment.component.d.ts +2 -7
  114. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  115. package/lib/components/address/address.component.d.ts +5 -41
  116. package/lib/components/address/address.component.d.ts.map +1 -1
  117. package/lib/components/bank-details/bank-details.component.d.ts +6 -0
  118. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  119. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  120. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  121. package/lib/components/email-update/email-update.component.d.ts +7 -1
  122. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  123. package/lib/components/employer-grid/employer-grid.component.d.ts +12 -1
  124. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  125. package/lib/components/error/error.component.d.ts +2 -3
  126. package/lib/components/error/error.component.d.ts.map +1 -1
  127. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  128. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  129. package/lib/components/footer/footer.component.d.ts.map +1 -1
  130. package/lib/components/header/header.component.d.ts +2 -17
  131. package/lib/components/header/header.component.d.ts.map +1 -1
  132. package/lib/components/job-title/job-title.component.d.ts +21 -22
  133. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  134. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +2 -5
  135. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  136. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  137. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  138. package/lib/components/menu/menu.component.d.ts +1 -2
  139. package/lib/components/menu/menu.component.d.ts.map +1 -1
  140. package/lib/components/mfa/mfa.component.d.ts +14 -7
  141. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  142. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  143. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  144. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  145. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  146. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  147. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  148. package/lib/components/profile/profile.component.d.ts +49 -81
  149. package/lib/components/profile/profile.component.d.ts.map +1 -1
  150. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  151. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  152. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  153. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  154. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  155. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  156. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -7
  157. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  158. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  159. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  160. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +33 -31
  161. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  162. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  163. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  164. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  165. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  166. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  167. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  168. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  169. package/lib/components/questionnaire/question.service.d.ts +1 -0
  170. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  171. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  172. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  173. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  174. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  175. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  176. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  177. package/lib/components/security-question/security-question.component.d.ts +37 -0
  178. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  179. package/lib/components/user-login/user-login.component.d.ts +32 -5
  180. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  181. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +3 -26
  182. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  183. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  184. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  185. package/lib/guards/auth.guard.d.ts.map +1 -1
  186. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  187. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  188. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  189. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  190. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  191. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  192. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  193. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  194. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  195. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  196. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  197. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  198. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  199. package/lib/models/LibConstants.d.ts +1 -40
  200. package/lib/models/LibConstants.d.ts.map +1 -1
  201. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  202. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  203. package/lib/models/PaymentComponentModel.d.ts +1 -1
  204. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  205. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  206. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  207. package/lib/models/dashboard-model.d.ts +0 -22
  208. package/lib/models/dashboard-model.d.ts.map +1 -1
  209. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  210. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  211. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -13
  212. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  213. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  214. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  215. package/lib/models/questionnaire/ComboModel.d.ts +16 -28
  216. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  217. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  218. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  219. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  220. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  221. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  222. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  223. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  224. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  225. package/lib/pages/BasePage.d.ts +6 -3
  226. package/lib/pages/BasePage.d.ts.map +1 -1
  227. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  228. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  229. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  230. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  231. package/lib/services/base-service.d.ts +0 -12
  232. package/lib/services/base-service.d.ts.map +1 -1
  233. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  234. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  235. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  236. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  237. package/lib/services/claims/claims.service.d.ts +5 -38
  238. package/lib/services/claims/claims.service.d.ts.map +1 -1
  239. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  240. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  241. package/lib/services/login/login.service.d.ts +3 -5
  242. package/lib/services/login/login.service.d.ts.map +1 -1
  243. package/lib/services/ovp/ovp.service.d.ts +17 -0
  244. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  245. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  246. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  247. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  248. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  249. package/lib/services/security-service/security.service.d.ts +4 -12
  250. package/lib/services/security-service/security.service.d.ts.map +1 -1
  251. package/lib/services/util/util.service.d.ts +0 -6
  252. package/lib/services/util/util.service.d.ts.map +1 -1
  253. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  254. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  255. package/lib/validations/AppRegex.d.ts +2 -0
  256. package/lib/validations/AppRegex.d.ts.map +1 -1
  257. package/lib/validations/AppValidators.d.ts +24 -20
  258. package/lib/validations/AppValidators.d.ts.map +1 -1
  259. package/package.json +2 -2
  260. package/public-api.d.ts +4 -46
  261. package/public-api.d.ts.map +1 -1
  262. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  263. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  264. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  265. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  266. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  267. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  268. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  269. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  270. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  271. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  272. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  273. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  274. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  275. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  276. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  277. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  278. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  279. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  280. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  281. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  282. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  283. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  284. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  285. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  286. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  287. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  288. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  289. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -806
  290. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  291. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  292. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  293. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  294. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  295. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  296. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -685
  297. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  298. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  299. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  300. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  301. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  302. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  303. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  304. package/esm2022/lib/models/CountyModel.mjs +0 -3
  305. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  306. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  307. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  308. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  309. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  310. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  311. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  312. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  313. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  314. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  315. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  316. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  317. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  318. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  319. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  320. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  321. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  322. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  323. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  324. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  325. package/esm2022/lib/models/combo-model.mjs +0 -343
  326. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  327. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  328. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  329. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  330. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  331. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  332. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  333. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  334. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  335. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  336. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  337. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  338. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  339. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  340. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  341. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  342. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  343. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  344. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  345. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  346. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  347. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  348. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  349. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  350. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  351. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  352. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  353. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  354. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  355. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  356. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  357. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  358. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  359. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  360. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  361. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  362. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  363. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  364. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  365. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  366. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  367. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  368. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  369. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  370. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  371. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  372. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  373. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  374. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  375. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  376. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  377. package/lib/components/history-page/history-page.component.d.ts +0 -80
  378. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  379. package/lib/components/idme/idme.component.d.ts +0 -19
  380. package/lib/components/idme/idme.component.d.ts.map +0 -1
  381. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  382. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  383. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  384. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  385. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  386. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  387. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  388. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  389. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  390. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  391. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  392. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  393. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  394. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  395. package/lib/components/sms/sms.component.d.ts +0 -63
  396. package/lib/components/sms/sms.component.d.ts.map +0 -1
  397. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  398. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  399. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  400. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  401. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  402. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  403. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  404. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  405. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  406. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  407. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  408. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  409. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  410. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  411. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  412. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  413. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  414. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  415. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  416. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  417. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  418. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  419. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  420. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  421. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  422. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  423. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  424. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  425. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  426. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  427. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  428. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  429. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  430. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  431. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  432. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  433. package/lib/models/ActiveClaimModel.d.ts +0 -8
  434. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  435. package/lib/models/CountyModel.d.ts +0 -8
  436. package/lib/models/CountyModel.d.ts.map +0 -1
  437. package/lib/models/DuaAppDataModel.d.ts +0 -5
  438. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  439. package/lib/models/DuaRequestModel.d.ts +0 -10
  440. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  441. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  442. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  443. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  444. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  445. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  446. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  447. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  448. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  449. package/lib/models/GrossEarningsModel.d.ts +0 -6
  450. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  451. package/lib/models/HelpConstants.d.ts +0 -5
  452. package/lib/models/HelpConstants.d.ts.map +0 -1
  453. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  454. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  455. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  456. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  457. package/lib/models/RetroWeeksModel.d.ts +0 -11
  458. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  459. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  460. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  461. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  462. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  463. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  464. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  465. package/lib/models/WageCalculatorModel.d.ts +0 -15
  466. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  467. package/lib/models/WageInfoModel.d.ts +0 -9
  468. package/lib/models/WageInfoModel.d.ts.map +0 -1
  469. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  470. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  471. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  472. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  473. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  474. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  475. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  476. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  477. package/lib/models/combo-model.d.ts +0 -42
  478. package/lib/models/combo-model.d.ts.map +0 -1
  479. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  480. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  481. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  482. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  483. package/lib/models/fileupload/FileObject.d.ts +0 -8
  484. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  485. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  486. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  487. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  488. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  489. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  490. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  491. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  492. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  493. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  494. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  495. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  496. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  497. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  498. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  499. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  500. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  501. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  502. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  503. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  504. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  505. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  506. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  507. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  508. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  509. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  510. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  511. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  512. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  513. package/lib/services/appeal/appeal.service.d.ts +0 -16
  514. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  515. package/lib/services/birt-service/birt.service.d.ts +0 -17
  516. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  517. package/lib/services/employer/employer-service.d.ts +0 -16
  518. package/lib/services/employer/employer-service.d.ts.map +0 -1
  519. package/lib/services/event-service/event-service.d.ts +0 -20
  520. package/lib/services/event-service/event-service.d.ts.map +0 -1
  521. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  522. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  523. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  524. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  525. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  526. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  527. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  528. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -6,16 +6,23 @@ import * as i1 from "../../services/util/util.service";
6
6
  import * as i2 from "@ionic/angular";
7
7
  import * as i3 from "@angular/forms";
8
8
  import * as i4 from "../../services/login/login.service";
9
- import * as i5 from "@angular/common";
10
- import * as i6 from "primeng/api";
11
- import * as i7 from "primeng/dialog";
12
- import * as i8 from "primeng/password";
13
- import * as i9 from "primeng/inputtext";
14
- import * as i10 from "../error/error.component";
15
- import * as i11 from "../captcha/captcha.component";
16
- import * as i12 from "../email-update/email-update.component";
17
- import * as i13 from "../mfa-popup/mfa-popup.component";
18
- import * as i14 from "@ngx-translate/core";
9
+ import * as i5 from "../../services/weekly-cert/weekly-cert-v2.service";
10
+ import * as i6 from "../../services/ovp/ovp.service";
11
+ import * as i7 from "@angular/router";
12
+ import * as i8 from "../../services/claimant-service/claimant.service";
13
+ import * as i9 from "../../services/lexis-nexis/lexis.nexis.service";
14
+ import * as i10 from "@angular/common";
15
+ import * as i11 from "primeng/api";
16
+ import * as i12 from "primeng/dialog";
17
+ import * as i13 from "primeng/password";
18
+ import * as i14 from "primeng/inputtext";
19
+ import * as i15 from "../error/error.component";
20
+ import * as i16 from "../captcha/captcha.component";
21
+ import * as i17 from "../email-update/email-update.component";
22
+ import * as i18 from "../mfa-popup/mfa-popup.component";
23
+ import * as i19 from "../mfa2/mfa2.component";
24
+ import * as i20 from "../lexis-nexis/lexis-nexis.component";
25
+ import * as i21 from "@ngx-translate/core";
19
26
  const _c0 = ["loginFormDirective"];
20
27
  const _c1 = ["resetFormDirective"];
21
28
  function UserLoginComponent_div_4_Template(rf, ctx) { if (rf & 1) {
@@ -34,82 +41,91 @@ function UserLoginComponent_div_5_Template(rf, ctx) { if (rf & 1) {
34
41
  i0.ɵɵtext(5, "Claimants may call 1-800-593-7660");
35
42
  i0.ɵɵelementEnd()()();
36
43
  } }
37
- function UserLoginComponent_app_mfa_popup_12_Template(rf, ctx) { if (rf & 1) {
38
- const _r7 = i0.ɵɵgetCurrentView();
39
- i0.ɵɵelementStart(0, "app-mfa-popup", 9);
40
- i0.ɵɵlistener("success", function UserLoginComponent_app_mfa_popup_12_Template_app_mfa_popup_success_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.loginSuccess()); })("clear", function UserLoginComponent_app_mfa_popup_12_Template_app_mfa_popup_clear_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.reset()); });
44
+ function UserLoginComponent_app_mfa2_12_Template(rf, ctx) { if (rf & 1) {
45
+ const _r9 = i0.ɵɵgetCurrentView();
46
+ i0.ɵɵelementStart(0, "app-mfa2", 13);
47
+ i0.ɵɵlistener("displayChange", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_displayChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.isOtpModalEnabled = $event); })("success", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.loginSuccess()); })("clear", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_clear_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.enableLexisNexis()); });
41
48
  i0.ɵɵelementEnd();
42
49
  } if (rf & 2) {
43
50
  const ctx_r2 = i0.ɵɵnextContext();
44
- i0.ɵɵproperty("user", ctx_r2.userModel);
51
+ i0.ɵɵproperty("display", ctx_r2.isOtpModalEnabled)("returningUser", ctx_r2.isReturningUser)("verificationPreference", ctx_r2.verificationPreference)("ssn", ctx_r2.ssn);
52
+ } }
53
+ function UserLoginComponent_app_lexis_nexis_13_Template(rf, ctx) { if (rf & 1) {
54
+ const _r13 = i0.ɵɵgetCurrentView();
55
+ i0.ɵɵelementStart(0, "app-lexis-nexis", 14);
56
+ i0.ɵɵlistener("success", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_success_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onLnSuccess()); })("error", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_error_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onLNError()); })("usps", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_usps_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.triggerUSPS()); });
57
+ i0.ɵɵelementEnd();
58
+ } if (rf & 2) {
59
+ const ctx_r3 = i0.ɵɵnextContext();
60
+ i0.ɵɵproperty("display", ctx_r3.isLexisNexisPopupEnabled)("userModel", ctx_r3.userModel);
45
61
  } }
46
62
  const _c2 = () => ({ required: "Captcha is required." });
47
- function UserLoginComponent_form_13_div_15_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "div", 28);
49
- i0.ɵɵelement(1, "app-captcha", 29)(2, "app-error", 16);
63
+ function UserLoginComponent_form_15_div_15_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelementStart(0, "div", 33);
65
+ i0.ɵɵelement(1, "app-captcha", 34)(2, "app-error", 21);
50
66
  i0.ɵɵelementEnd();
51
67
  } if (rf & 2) {
52
68
  i0.ɵɵnextContext();
53
- const _r9 = i0.ɵɵreference(1);
54
- const ctx_r10 = i0.ɵɵnextContext();
69
+ const _r16 = i0.ɵɵreference(1);
70
+ const ctx_r17 = i0.ɵɵnextContext();
55
71
  i0.ɵɵadvance(1);
56
- i0.ɵɵproperty("formControl", ctx_r10.captcha);
72
+ i0.ɵɵproperty("formControl", ctx_r17.captcha);
57
73
  i0.ɵɵadvance(1);
58
- i0.ɵɵproperty("field", ctx_r10.captcha)("form", _r9)("errDef", i0.ɵɵpureFunction0(4, _c2));
74
+ i0.ɵɵproperty("field", ctx_r17.captcha)("form", _r16)("errDef", i0.ɵɵpureFunction0(4, _c2));
59
75
  } }
60
76
  const _c3 = () => ({ required: "User ID is required.", minlength: "User ID should have minimum 5 characters." });
61
77
  const _c4 = () => ({ required: "Password is required." });
62
- function UserLoginComponent_form_13_Template(rf, ctx) { if (rf & 1) {
63
- const _r12 = i0.ɵɵgetCurrentView();
64
- i0.ɵɵelementStart(0, "form", 10, 11)(2, "div", 12)(3, "div", 13)(4, "label", 14);
78
+ function UserLoginComponent_form_15_Template(rf, ctx) { if (rf & 1) {
79
+ const _r19 = i0.ɵɵgetCurrentView();
80
+ i0.ɵɵelementStart(0, "form", 15, 16)(2, "div", 17)(3, "div", 18)(4, "label", 19);
65
81
  i0.ɵɵtext(5);
66
82
  i0.ɵɵpipe(6, "translate");
67
83
  i0.ɵɵelementEnd();
68
- i0.ɵɵelement(7, "input", 15)(8, "app-error", 16);
84
+ i0.ɵɵelement(7, "input", 20)(8, "app-error", 21);
69
85
  i0.ɵɵelementEnd();
70
- i0.ɵɵelementStart(9, "div", 13)(10, "label", 17);
86
+ i0.ɵɵelementStart(9, "div", 18)(10, "label", 22);
71
87
  i0.ɵɵtext(11);
72
88
  i0.ɵɵpipe(12, "translate");
73
89
  i0.ɵɵelementEnd();
74
- i0.ɵɵelement(13, "p-password", 18)(14, "app-error", 16);
90
+ i0.ɵɵelement(13, "p-password", 23)(14, "app-error", 21);
75
91
  i0.ɵɵelementEnd()();
76
- i0.ɵɵtemplate(15, UserLoginComponent_form_13_div_15_Template, 3, 5, "div", 19);
77
- i0.ɵɵelementStart(16, "div", 20)(17, "div", 21)(18, "ion-button", 22);
78
- i0.ɵɵlistener("click", function UserLoginComponent_form_13_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.signIn()); });
79
- i0.ɵɵelement(19, "ion-icon", 23);
92
+ i0.ɵɵtemplate(15, UserLoginComponent_form_15_div_15_Template, 3, 5, "div", 24);
93
+ i0.ɵɵelementStart(16, "div", 25)(17, "div", 26)(18, "ion-button", 27);
94
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.signIn()); });
95
+ i0.ɵɵelement(19, "ion-icon", 28);
80
96
  i0.ɵɵtext(20);
81
97
  i0.ɵɵpipe(21, "translate");
82
98
  i0.ɵɵelementEnd()();
83
- i0.ɵɵelementStart(22, "ion-row", 24)(23, "ion-col", 25)(24, "a", 26);
84
- i0.ɵɵlistener("click", function UserLoginComponent_form_13_Template_a_click_24_listener() { i0.ɵɵrestoreView(_r12); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.showDialog()); });
99
+ i0.ɵɵelementStart(22, "ion-row", 29)(23, "ion-col", 30)(24, "a", 31);
100
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_a_click_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.showDialog()); })("keydown.enter", function UserLoginComponent_form_15_Template_a_keydown_enter_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.showDialog()); });
85
101
  i0.ɵɵtext(25);
86
102
  i0.ɵɵpipe(26, "translate");
87
103
  i0.ɵɵelementEnd()();
88
- i0.ɵɵelementStart(27, "ion-col", 21)(28, "a", 27);
89
- i0.ɵɵlistener("click", function UserLoginComponent_form_13_Template_a_click_28_listener() { i0.ɵɵrestoreView(_r12); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.showForgotPassword = !ctx_r14.showForgotPassword); });
104
+ i0.ɵɵelementStart(27, "ion-col", 26)(28, "a", 32);
105
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_a_click_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.showForgotPassword = !ctx_r22.showForgotPassword); })("keydown.enter", function UserLoginComponent_form_15_Template_a_keydown_enter_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.showForgotPassword = !ctx_r23.showForgotPassword); });
90
106
  i0.ɵɵtext(29);
91
107
  i0.ɵɵpipe(30, "translate");
92
108
  i0.ɵɵelementEnd()()()()();
93
109
  } if (rf & 2) {
94
- const _r9 = i0.ɵɵreference(1);
95
- const ctx_r3 = i0.ɵɵnextContext();
96
- i0.ɵɵproperty("formGroup", ctx_r3.loginForm);
110
+ const _r16 = i0.ɵɵreference(1);
111
+ const ctx_r4 = i0.ɵɵnextContext();
112
+ i0.ɵɵproperty("formGroup", ctx_r4.loginForm);
97
113
  i0.ɵɵadvance(4);
98
- i0.ɵɵstyleProp("font-size", ctx_r3.fontSize)("color", ctx_r3.color);
114
+ i0.ɵɵstyleProp("font-size", ctx_r4.fontSize)("color", ctx_r4.color);
99
115
  i0.ɵɵadvance(1);
100
116
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 25, "User ID"));
101
117
  i0.ɵɵadvance(2);
102
- i0.ɵɵproperty("formControl", ctx_r3.username);
118
+ i0.ɵɵproperty("formControl", ctx_r4.username);
103
119
  i0.ɵɵadvance(1);
104
- i0.ɵɵproperty("field", ctx_r3.username)("form", _r9)("errDef", i0.ɵɵpureFunction0(35, _c3));
120
+ i0.ɵɵproperty("field", ctx_r4.username)("form", _r16)("errDef", i0.ɵɵpureFunction0(35, _c3));
105
121
  i0.ɵɵadvance(2);
106
- i0.ɵɵstyleProp("font-size", ctx_r3.fontSize)("color", ctx_r3.color);
122
+ i0.ɵɵstyleProp("font-size", ctx_r4.fontSize)("color", ctx_r4.color);
107
123
  i0.ɵɵadvance(1);
108
124
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 27, "Password (Case Sensitive)"));
109
125
  i0.ɵɵadvance(2);
110
- i0.ɵɵproperty("formControl", ctx_r3.password)("toggleMask", true)("feedback", false);
126
+ i0.ɵɵproperty("formControl", ctx_r4.password)("toggleMask", true)("feedback", false);
111
127
  i0.ɵɵadvance(1);
112
- i0.ɵɵproperty("field", ctx_r3.password)("form", _r9)("errDef", i0.ɵɵpureFunction0(36, _c4));
128
+ i0.ɵɵproperty("field", ctx_r4.password)("form", _r16)("errDef", i0.ɵɵpureFunction0(36, _c4));
113
129
  i0.ɵɵadvance(1);
114
130
  i0.ɵɵproperty("ngIf", false);
115
131
  i0.ɵɵadvance(5);
@@ -119,68 +135,94 @@ function UserLoginComponent_form_13_Template(rf, ctx) { if (rf & 1) {
119
135
  i0.ɵɵadvance(4);
120
136
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 33, "Forgot Password?"));
121
137
  } }
122
- function UserLoginComponent_form_14_Template(rf, ctx) { if (rf & 1) {
123
- const _r17 = i0.ɵɵgetCurrentView();
124
- i0.ɵɵelementStart(0, "form", 10, 30)(2, "div", 12)(3, "div", 13)(4, "label", 14);
138
+ function UserLoginComponent_form_16_Template(rf, ctx) { if (rf & 1) {
139
+ const _r26 = i0.ɵɵgetCurrentView();
140
+ i0.ɵɵelementStart(0, "form", 15, 35)(2, "div", 17)(3, "div", 18)(4, "label", 19);
125
141
  i0.ɵɵtext(5);
126
142
  i0.ɵɵpipe(6, "translate");
127
143
  i0.ɵɵelementEnd();
128
- i0.ɵɵelement(7, "input", 15)(8, "app-error", 16);
144
+ i0.ɵɵelement(7, "input", 20)(8, "app-error", 21);
129
145
  i0.ɵɵelementEnd();
130
- i0.ɵɵelementStart(9, "div", 25);
131
- i0.ɵɵelement(10, "app-captcha", 29)(11, "app-error", 16);
146
+ i0.ɵɵelementStart(9, "div", 30);
147
+ i0.ɵɵelement(10, "app-captcha", 34)(11, "app-error", 21);
132
148
  i0.ɵɵelementEnd()();
133
- i0.ɵɵelementStart(12, "div", 20)(13, "div", 21)(14, "ion-button", 22);
134
- i0.ɵɵlistener("click", function UserLoginComponent_form_14_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r16.showForgotPassword = !ctx_r16.showForgotPassword); });
135
- i0.ɵɵelement(15, "ion-icon", 31);
149
+ i0.ɵɵelementStart(12, "div", 25)(13, "div", 26)(14, "ion-button", 27);
150
+ i0.ɵɵlistener("click", function UserLoginComponent_form_16_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r25.showForgotPassword = !ctx_r25.showForgotPassword); });
151
+ i0.ɵɵelement(15, "ion-icon", 36);
136
152
  i0.ɵɵtext(16);
137
153
  i0.ɵɵpipe(17, "translate");
138
154
  i0.ɵɵelementEnd();
139
- i0.ɵɵelementStart(18, "ion-button", 32);
140
- i0.ɵɵlistener("click", function UserLoginComponent_form_14_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r17); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.initiateForgotPassword()); });
141
- i0.ɵɵelement(19, "ion-icon", 33);
155
+ i0.ɵɵelementStart(18, "ion-button", 37);
156
+ i0.ɵɵlistener("click", function UserLoginComponent_form_16_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.initiateForgotPassword()); });
157
+ i0.ɵɵelement(19, "ion-icon", 38);
142
158
  i0.ɵɵtext(20);
143
159
  i0.ɵɵpipe(21, "translate");
144
160
  i0.ɵɵelementEnd()()()();
145
161
  } if (rf & 2) {
146
- const _r15 = i0.ɵɵreference(1);
147
- const ctx_r4 = i0.ɵɵnextContext();
148
- i0.ɵɵproperty("formGroup", ctx_r4.resetForm);
162
+ const _r24 = i0.ɵɵreference(1);
163
+ const ctx_r5 = i0.ɵɵnextContext();
164
+ i0.ɵɵproperty("formGroup", ctx_r5.resetForm);
149
165
  i0.ɵɵadvance(4);
150
- i0.ɵɵstyleProp("font-size", ctx_r4.fontSize)("color", ctx_r4.color);
166
+ i0.ɵɵstyleProp("font-size", ctx_r5.fontSize)("color", ctx_r5.color);
151
167
  i0.ɵɵadvance(1);
152
168
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 17, "User ID"));
153
169
  i0.ɵɵadvance(2);
154
- i0.ɵɵproperty("formControl", ctx_r4.resetUsername);
170
+ i0.ɵɵproperty("formControl", ctx_r5.resetUsername);
155
171
  i0.ɵɵadvance(1);
156
- i0.ɵɵproperty("field", ctx_r4.resetUsername)("form", _r15)("errDef", i0.ɵɵpureFunction0(23, _c3));
172
+ i0.ɵɵproperty("field", ctx_r5.resetUsername)("form", _r24)("errDef", i0.ɵɵpureFunction0(23, _c3));
157
173
  i0.ɵɵadvance(2);
158
- i0.ɵɵproperty("formControl", ctx_r4.resetCaptcha);
174
+ i0.ɵɵproperty("formControl", ctx_r5.resetCaptcha);
159
175
  i0.ɵɵadvance(1);
160
- i0.ɵɵproperty("field", ctx_r4.resetCaptcha)("form", _r15)("errDef", i0.ɵɵpureFunction0(24, _c2));
176
+ i0.ɵɵproperty("field", ctx_r5.resetCaptcha)("form", _r24)("errDef", i0.ɵɵpureFunction0(24, _c2));
161
177
  i0.ɵɵadvance(5);
162
178
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 19, "Login"), " ");
163
179
  i0.ɵɵadvance(2);
164
- i0.ɵɵpropertyInterpolate("disabled", ctx_r4.resetForm.invalid);
180
+ i0.ɵɵpropertyInterpolate("disabled", ctx_r5.resetForm.invalid);
165
181
  i0.ɵɵadvance(2);
166
182
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 21, "Send email"), " ");
167
183
  } }
168
- function UserLoginComponent_app_email_update_15_Template(rf, ctx) { if (rf & 1) {
169
- const _r20 = i0.ɵɵgetCurrentView();
170
- i0.ɵɵelementStart(0, "app-email-update", 34);
171
- i0.ɵɵlistener("onClose", function UserLoginComponent_app_email_update_15_Template_app_email_update_onClose_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.logout()); })("onSuccess", function UserLoginComponent_app_email_update_15_Template_app_email_update_onSuccess_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.emailVerificationSuccess()); });
184
+ function UserLoginComponent_ng_template_21_Template(rf, ctx) { if (rf & 1) {
185
+ const _r29 = i0.ɵɵgetCurrentView();
186
+ i0.ɵɵelementStart(0, "ion-button", 39);
187
+ i0.ɵɵlistener("click", function UserLoginComponent_ng_template_21_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.close()); });
188
+ i0.ɵɵtext(1);
189
+ i0.ɵɵpipe(2, "translate");
190
+ i0.ɵɵelementEnd();
191
+ i0.ɵɵelementStart(3, "ion-button", 40);
192
+ i0.ɵɵlistener("click", function UserLoginComponent_ng_template_21_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.triggerUSPSForExpiredProcess()); });
193
+ i0.ɵɵtext(4);
194
+ i0.ɵɵpipe(5, "translate");
172
195
  i0.ɵɵelementEnd();
173
196
  } if (rf & 2) {
174
- const ctx_r5 = i0.ɵɵnextContext();
175
- i0.ɵɵproperty("email", ctx_r5.userModel.emailId);
197
+ i0.ɵɵadvance(1);
198
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "usps.expd.popup.cancel"), " ");
199
+ i0.ɵɵadvance(3);
200
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, "usps.expd.popup.process"), " ");
201
+ } }
202
+ function UserLoginComponent_app_email_update_22_Template(rf, ctx) { if (rf & 1) {
203
+ const _r32 = i0.ɵɵgetCurrentView();
204
+ i0.ɵɵelementStart(0, "app-email-update", 41);
205
+ i0.ɵɵlistener("onClose", function UserLoginComponent_app_email_update_22_Template_app_email_update_onClose_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.logout()); })("onSuccess", function UserLoginComponent_app_email_update_22_Template_app_email_update_onSuccess_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.emailVerificationSuccess()); });
206
+ i0.ɵɵelementEnd();
207
+ } if (rf & 2) {
208
+ const ctx_r7 = i0.ɵɵnextContext();
209
+ i0.ɵɵproperty("email", ctx_r7.userModel.emailId);
176
210
  } }
211
+ const _c5 = () => ({ width: "45vw" });
212
+ const _c6 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
177
213
  export class UserLoginComponent {
178
- constructor(util, nav, fb, loginService, platform) {
214
+ constructor(util, nav, fb, loginService, platform, wcService, ovpService, cdr, router, cs, ln) {
179
215
  this.util = util;
180
216
  this.nav = nav;
181
217
  this.fb = fb;
182
218
  this.loginService = loginService;
183
219
  this.platform = platform;
220
+ this.wcService = wcService;
221
+ this.ovpService = ovpService;
222
+ this.cdr = cdr;
223
+ this.router = router;
224
+ this.cs = cs;
225
+ this.ln = ln;
184
226
  this.show2FADialog = false;
185
227
  this.showForgotPassword = false;
186
228
  this.showUsernameError = false;
@@ -189,10 +231,17 @@ export class UserLoginComponent {
189
231
  this.isLoginInProgress = false;
190
232
  this.showProgressBar = false;
191
233
  this.showEmailVerificationDialog = false;
234
+ this.isLexisNexisPopupEnabled = false;
235
+ this.mfaLoginHeader = "Validation code has been sent to the phone number entered";
236
+ this.isUSPSExpired = false;
237
+ this.isPhoneMfaRequiredForAccountActivation = true;
192
238
  this.success = new EventEmitter();
193
239
  this.error = new EventEmitter();
194
240
  }
195
241
  ngOnInit() {
242
+ this.isOtpModalEnabled = false;
243
+ this.isLexisNexisEnabled = false;
244
+ this.isReturningUser = true;
196
245
  this.initilizeLoginForm();
197
246
  }
198
247
  reset() {
@@ -206,13 +255,13 @@ export class UserLoginComponent {
206
255
  }
207
256
  initilizeLoginForm() {
208
257
  this.loginForm = this.fb.group({
209
- 'username': [null, Validators.required],
210
- 'password': [null, Validators.required],
211
- 'captcha': [null]
258
+ username: [null, Validators.required],
259
+ password: [null, Validators.required],
260
+ captcha: [null],
212
261
  });
213
262
  this.resetForm = this.fb.group({
214
- 'username': [null, Validators.required],
215
- 'captcha': [null, Validators.required]
263
+ username: [null, Validators.required],
264
+ captcha: [null, Validators.required],
216
265
  });
217
266
  }
218
267
  get username() {
@@ -230,7 +279,7 @@ export class UserLoginComponent {
230
279
  get resetCaptcha() {
231
280
  return this.resetForm.controls['captcha'];
232
281
  }
233
- async signIn() {
282
+ signIn() {
234
283
  if (this.loginForm.invalid) {
235
284
  return;
236
285
  }
@@ -240,30 +289,105 @@ export class UserLoginComponent {
240
289
  this.util
241
290
  .showLoader()
242
291
  .then(() => {
243
- this.loginService.loginAndCheckForMFA(auth)
244
- .subscribe(res => {
245
- let userModel = res;
246
- this.loginService.setUser(userModel).then(res => {
247
- this.loginSuccess();
248
- });
249
- }, err => {
250
- if ((err.is2FARequired + '') == 'true') {
292
+ this.loginService.loginAndCheckForMFA(auth).subscribe({
293
+ next: (res) => {
294
+ let userModel = res;
295
+ this.loginService
296
+ .setUser(userModel)
297
+ .then((res) => {
298
+ this.userModel = userModel;
299
+ this.ssn = userModel?.ssn;
300
+ this.loginSuccess();
301
+ })
302
+ .catch((e) => {
303
+ console.log(e);
304
+ this.util.hideLoader();
305
+ });
306
+ },
307
+ error: (err) => {
308
+ if (err.is2FARequired + '' == 'true') {
309
+ this.util.hideLoader();
310
+ this.userModel = err;
311
+ this.userModel.username = this.username.value;
312
+ this.userModel.password = this.password.value;
313
+ this.show2FADialog = true;
314
+ }
315
+ else if (err.details.includes("Your identity must be verified at USPS but your timeframe has expired.")) {
316
+ // this.util.errorHandler(err);
317
+ //
318
+ // this.error.emit(err);
319
+ setTimeout(() => this.triggerUSPSForExpired(this.username.value), 2000);
320
+ }
321
+ else {
322
+ console.log('inside else', err);
323
+ this.util.errorHandler(err);
324
+ this.util.hideLoader();
325
+ this.error.emit(err);
326
+ }
327
+ },
328
+ complete: () => {
251
329
  this.util.hideLoader();
252
- this.userModel = err;
253
- this.userModel.username = this.username.value;
254
- this.userModel.password = this.password.value;
255
- this.show2FADialog = true;
256
- }
257
- else {
258
- console.log('inside else', err);
259
- this.util.errorHandler(err);
260
- this.util.hideLoader();
261
- this.error.emit(err);
262
- }
330
+ },
263
331
  });
332
+ })
333
+ .catch((e) => {
334
+ this.util.hideLoader();
264
335
  });
265
336
  }
266
- loginSuccess() {
337
+ enableLexisNexis(triggerExitAPI = true) {
338
+ this.show2FADialog = false;
339
+ if (!triggerExitAPI) {
340
+ return;
341
+ }
342
+ /*
343
+ this.ln.isLexisNexisIdProofingEnabledWithUserId(this.userModel.username).subscribe((res) => {
344
+ // If lexis-nexis id proofing is enabled
345
+ if (res) {
346
+ this.isLexisNexisPopupEnabled = true;
347
+ } else {
348
+ this.util.showError("The claimant account with user name" + this.userModel.username + " has been blocked. Please contact KDOL.")
349
+ }
350
+ });
351
+ */
352
+ }
353
+ onLnSuccess() {
354
+ this.isLexisNexisPopupEnabled = false;
355
+ this.util.hideLoader();
356
+ this.util.success('Your ID proofing was successful. Try re-login or change your password to continue!');
357
+ if (this.resetForm.invalid) {
358
+ this.password.reset();
359
+ this.loginForm.reset();
360
+ this.loginFormDirective.reset();
361
+ this.resetForm.reset();
362
+ }
363
+ }
364
+ onLNError() {
365
+ this.triggerUSPS();
366
+ }
367
+ triggerUSPS() {
368
+ this.isLexisNexisPopupEnabled = false;
369
+ this.util.hideLoader();
370
+ console.log("usps is triggered");
371
+ localStorage.setItem('userId', JSON.stringify(this.userModel.username));
372
+ setTimeout(() => this.router.navigate(['/usps-redirect', ""]), 1000);
373
+ }
374
+ triggerUSPSForExpired(username) {
375
+ this.isLexisNexisPopupEnabled = false;
376
+ this.isUSPSExpired = true;
377
+ console.log("usps is triggered");
378
+ localStorage.setItem('userId', JSON.stringify(username));
379
+ //setTimeout(() => this.router.navigate(['/usps-redirect', ""]), 1000);
380
+ }
381
+ triggerUSPSForExpiredProcess() {
382
+ this.util.showLoader();
383
+ this.isLexisNexisPopupEnabled = false;
384
+ this.isUSPSExpired = true;
385
+ console.log("usps is triggered");
386
+ localStorage.setItem('userId', localStorage.getItem("userId"));
387
+ setTimeout(() => this.router.navigate(['/usps-redirect', ""]), 1000);
388
+ this.close();
389
+ }
390
+ async loginSuccess() {
267
391
  let userModel = this.loginService.getUser();
268
392
  this.userModel = userModel;
269
393
  if (userModel.changePwd) {
@@ -272,7 +396,8 @@ export class UserLoginComponent {
272
396
  this.isLoginInProgress = false;
273
397
  return;
274
398
  }
275
- if (userModel.emailStatus != 'VERF' && userModel.isEmailVerificationRequired) {
399
+ if (userModel.emailStatus != 'VERF' &&
400
+ userModel.isEmailVerificationRequired) {
276
401
  this.util.hideLoader();
277
402
  this.showEmailVerificationDialog = true;
278
403
  return;
@@ -283,12 +408,47 @@ export class UserLoginComponent {
283
408
  return;
284
409
  }
285
410
  const isCapacitor = this.platform.is('capacitor');
286
- if (userModel.daysTillPasswordExpire && userModel.daysTillPasswordExpire < 10 && LibConstants.legacyMenu == 'true' && isCapacitor) {
411
+ if (userModel.daysTillPasswordExpire &&
412
+ userModel.daysTillPasswordExpire < 10 &&
413
+ LibConstants.legacyMenu == 'true' &&
414
+ isCapacitor) {
287
415
  this.nav.navigateRoot('change-password?changePwd=true');
288
416
  this.showProgressBar = false;
289
417
  this.isLoginInProgress = false;
290
418
  return;
291
419
  }
420
+ if (userModel.ssn != null) {
421
+ console.log("AIC FLOW in LoginService");
422
+ const data = await this.wcService.generateEventForReopenAicFlow(userModel.ssn)
423
+ .then(async => {
424
+ }).catch(async (err) => {
425
+ this.util.hideLoader();
426
+ this.util.errorHandler(err);
427
+ });
428
+ }
429
+ /* it was commented for PGLP-2281
430
+ if(userModel.ssn!=null){
431
+ console.log("overpayment LoginService");
432
+ const data= await this.ovpService.triggerRepaymentEvent(userModel.ssn)
433
+ .then(async =>{
434
+ }
435
+ ).catch(async err =>{
436
+ this.util.hideLoader();
437
+ this.util.errorHandler(err);
438
+ })
439
+ }*/
440
+ if (userModel.claimantId != null) {
441
+ const data = this.ovpService.triggerOverpaymentEvent().subscribe((x) => { }, (err) => {
442
+ this.util.hideLoader();
443
+ this.util.errorHandler(err);
444
+ });
445
+ }
446
+ if (userModel.claimantId != null) {
447
+ const data = this.ovpService.triggerOverpaymentEventHistory().subscribe((x) => { }, (err) => {
448
+ this.util.hideLoader();
449
+ this.util.errorHandler(err);
450
+ });
451
+ }
292
452
  this.show2FADialog = false;
293
453
  this.success.emit();
294
454
  }
@@ -306,12 +466,10 @@ export class UserLoginComponent {
306
466
  this.resetCaptcha.markAsDirty();
307
467
  return;
308
468
  }
309
- this.util
310
- .showLoader()
311
- .then(() => {
469
+ this.util.showLoader().then(() => {
312
470
  this.loginService
313
471
  .initiateForgotPasswordV2(this.resetUsername.value)
314
- .subscribe(res => {
472
+ .subscribe((res) => {
315
473
  this.util.success('Your password has been reset. You should receive an email with a temporary password and login instructions.');
316
474
  this.loginForm.reset();
317
475
  this.loginService.reset();
@@ -319,7 +477,7 @@ export class UserLoginComponent {
319
477
  this.resetUsername.markAsDirty();
320
478
  this.showForgotPassword = !this.showForgotPassword;
321
479
  this.util.hideLoader();
322
- }, err => {
480
+ }, (err) => {
323
481
  this.util.errorHandler(err);
324
482
  this.loginForm.reset();
325
483
  this.loginService.reset();
@@ -337,7 +495,11 @@ export class UserLoginComponent {
337
495
  this.showEmailVerificationDialog = false;
338
496
  this.success.emit();
339
497
  }
340
- static { this.ɵfac = function UserLoginComponent_Factory(t) { return new (t || UserLoginComponent)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder), i0.ɵɵdirectiveInject(i4.LoginService), i0.ɵɵdirectiveInject(i2.Platform)); }; }
498
+ close() {
499
+ this.util.hideLoader();
500
+ this.isUSPSExpired = false;
501
+ }
502
+ static { this.ɵfac = function UserLoginComponent_Factory(t) { return new (t || UserLoginComponent)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder), i0.ɵɵdirectiveInject(i4.LoginService), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i5.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i6.OvpService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.LexisNexisService)); }; }
341
503
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserLoginComponent, selectors: [["app-user-login"]], viewQuery: function UserLoginComponent_Query(rf, ctx) { if (rf & 1) {
342
504
  i0.ɵɵviewQuery(_c0, 5);
343
505
  i0.ɵɵviewQuery(_c1, 5);
@@ -345,13 +507,13 @@ export class UserLoginComponent {
345
507
  let _t;
346
508
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginFormDirective = _t.first);
347
509
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resetFormDirective = _t.first);
348
- } }, inputs: { fontSize: "fontSize", color: "color" }, outputs: { success: "success", error: "error" }, decls: 16, vars: 8, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "user", "success", "clear", 4, "ngIf"], [3, "formGroup", 4, "ngIf"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "user", "success", "clear"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], [1, "link", 2, "font-size", "14px", 3, "click"], ["type", "submit", 1, "link", 2, "font-size", "14px", 3, "click"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
510
+ } }, inputs: { fontSize: "fontSize", color: "color", isPhoneMfaRequiredForAccountActivation: "isPhoneMfaRequiredForAccountActivation" }, outputs: { success: "success", error: "error" }, decls: 23, vars: 26, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear", 4, "ngIf"], [3, "display", "userModel", "success", "error", "usps", 4, "ngIf"], [3, "display", "user", "returningUser", "heading", "displayChange", "success", "clear"], [3, "formGroup", 4, "ngIf"], ["appendTo", "body", "position", "top", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], ["pTemplate", "footer"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear"], [3, "display", "userModel", "success", "error", "usps"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], ["tabindex", "0", "role", "button", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], ["tabindex", "0", "role", "button", "type", "submit", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
349
511
  i0.ɵɵelementStart(0, "p-dialog", 0);
350
512
  i0.ɵɵlistener("visibleChange", function UserLoginComponent_Template_p_dialog_visibleChange_0_listener($event) { return ctx.displayDialog = $event; });
351
513
  i0.ɵɵelementStart(1, "h4", 1);
352
514
  i0.ɵɵtext(2, "Message");
353
515
  i0.ɵɵelementEnd();
354
- i0.ɵɵtext(3, " If you forgot your User ID, a Customer Service Representative is available to assist you Monday through Friday from 8 AM to 5 PM. ");
516
+ i0.ɵɵtext(3, " If you forgot your User ID, a Customer Service Representative is available to assist you during normal business hours. ");
355
517
  i0.ɵɵtemplate(4, UserLoginComponent_div_4_Template, 6, 0, "div", 2)(5, UserLoginComponent_div_5_Template, 6, 0, "div", 2);
356
518
  i0.ɵɵelement(6, "br");
357
519
  i0.ɵɵelementStart(7, "p-footer")(8, "div", 3)(9, "ion-button", 4);
@@ -359,7 +521,18 @@ export class UserLoginComponent {
359
521
  i0.ɵɵelement(10, "ion-icon", 5);
360
522
  i0.ɵɵtext(11, " Close ");
361
523
  i0.ɵɵelementEnd()()()();
362
- i0.ɵɵtemplate(12, UserLoginComponent_app_mfa_popup_12_Template, 1, 1, "app-mfa-popup", 6)(13, UserLoginComponent_form_13_Template, 31, 37, "form", 7)(14, UserLoginComponent_form_14_Template, 22, 25, "form", 7)(15, UserLoginComponent_app_email_update_15_Template, 1, 1, "app-email-update", 8);
524
+ i0.ɵɵtemplate(12, UserLoginComponent_app_mfa2_12_Template, 1, 4, "app-mfa2", 6)(13, UserLoginComponent_app_lexis_nexis_13_Template, 1, 2, "app-lexis-nexis", 7);
525
+ i0.ɵɵelementStart(14, "app-mfa-popup", 8);
526
+ i0.ɵɵlistener("displayChange", function UserLoginComponent_Template_app_mfa_popup_displayChange_14_listener($event) { return ctx.show2FADialog = $event; })("success", function UserLoginComponent_Template_app_mfa_popup_success_14_listener() { return ctx.loginSuccess(); })("clear", function UserLoginComponent_Template_app_mfa_popup_clear_14_listener($event) { return ctx.enableLexisNexis($event); });
527
+ i0.ɵɵelementEnd();
528
+ i0.ɵɵtemplate(15, UserLoginComponent_form_15_Template, 31, 37, "form", 9)(16, UserLoginComponent_form_16_Template, 22, 25, "form", 9);
529
+ i0.ɵɵelementStart(17, "p-dialog", 10);
530
+ i0.ɵɵtext(18);
531
+ i0.ɵɵpipe(19, "translate");
532
+ i0.ɵɵelement(20, "br");
533
+ i0.ɵɵtemplate(21, UserLoginComponent_ng_template_21_Template, 6, 6, "ng-template", 11);
534
+ i0.ɵɵelementEnd();
535
+ i0.ɵɵtemplate(22, UserLoginComponent_app_email_update_22_Template, 1, 1, "app-email-update", 12);
363
536
  } if (rf & 2) {
364
537
  i0.ɵɵproperty("visible", ctx.displayDialog)("modal", true);
365
538
  i0.ɵɵadvance(4);
@@ -367,19 +540,28 @@ export class UserLoginComponent {
367
540
  i0.ɵɵadvance(1);
368
541
  i0.ɵɵproperty("ngIf", ctx.util.isState("ME"));
369
542
  i0.ɵɵadvance(7);
370
- i0.ɵɵproperty("ngIf", ctx.show2FADialog);
543
+ i0.ɵɵproperty("ngIf", ctx.isOtpModalEnabled);
544
+ i0.ɵɵadvance(1);
545
+ i0.ɵɵproperty("ngIf", ctx.isLexisNexisPopupEnabled);
546
+ i0.ɵɵadvance(1);
547
+ i0.ɵɵproperty("display", ctx.show2FADialog)("user", ctx.userModel)("returningUser", ctx.isReturningUser)("heading", ctx.mfaLoginHeader);
371
548
  i0.ɵɵadvance(1);
372
549
  i0.ɵɵproperty("ngIf", !ctx.showForgotPassword);
373
550
  i0.ɵɵadvance(1);
374
551
  i0.ɵɵproperty("ngIf", ctx.showForgotPassword);
375
552
  i0.ɵɵadvance(1);
553
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(24, _c5));
554
+ i0.ɵɵproperty("visible", ctx.isUSPSExpired)("modal", true)("breakpoints", i0.ɵɵpureFunction0(25, _c6))("baseZIndex", 5000)("draggable", false)("resizable", false);
555
+ i0.ɵɵadvance(1);
556
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 22, "usps.expd.popup.heading"), "");
557
+ i0.ɵɵadvance(4);
376
558
  i0.ɵɵproperty("ngIf", ctx.showEmailVerificationDialog);
377
- } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i5.NgIf, i6.Footer, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MinLengthValidator, i3.MaxLengthValidator, i3.FormControlDirective, i3.FormGroupDirective, i7.Dialog, i8.Password, i9.InputText, i10.ErrorComponent, i11.CaptchaComponent, i12.EmailUpdateComponent, i13.MfaPopupComponent, i14.TranslatePipe] }); }
559
+ } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i10.NgIf, i11.Footer, i11.PrimeTemplate, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MinLengthValidator, i3.MaxLengthValidator, i3.FormControlDirective, i3.FormGroupDirective, i12.Dialog, i13.Password, i14.InputText, i15.ErrorComponent, i16.CaptchaComponent, i17.EmailUpdateComponent, i18.MfaPopupComponent, i19.Mfa2Component, i20.LexisNexisComponent, i21.TranslatePipe] }); }
378
560
  }
379
561
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserLoginComponent, [{
380
562
  type: Component,
381
- args: [{ selector: 'app-user-login', template: "<p-dialog [(visible)]=\"displayDialog\" [modal]=\"true\" appendTo=\"body\">\r\n <h4 class=\"heading\">Message</h4>\r\n\r\n If you forgot your User ID, a Customer Service Representative is available to assist you Monday through Friday\r\n from 8 AM to 5 PM.\r\n <div *ngIf=\"util.isState('MS')\">\r\n <ul>\r\n <li>Employers may call 601-493-9427</li>\r\n <li>Claimants may call 601-493-9427.</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"util.isState('ME')\">\r\n <ul>\r\n <li>Employers may call 207-621-5120</li>\r\n <li>Claimants may call 1-800-593-7660</li>\r\n </ul>\r\n </div>\r\n <br />\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n Close\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n\r\n<app-mfa-popup *ngIf=\"show2FADialog\" [user]=\"userModel\" (success)=\"loginSuccess()\" (clear)=\"reset()\"></app-mfa-popup>\r\n\r\n<form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\" *ngIf=\"!showForgotPassword\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"username\">\r\n <app-error [field]='username' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfilePassword\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'Password (Case Sensitive)' | translate}}</label>\r\n <p-password [formControl]=\"password\" inputId=\"userProfilePassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <app-error [field]='password' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Password is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"ion-padding-start ion-padding-end ion-text-left\" style=\"margin-top: -8px;\" *ngIf=\"false\">\r\n <app-captcha [formControl]=\"captcha\"></app-captcha>\r\n <app-error [field]='captcha' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"signIn()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"power-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n </div>\r\n <ion-row class=\"ion-padding-top\">\r\n <ion-col class=\"ion-text-left\">\r\n <a class=\"link\" style=\"font-size: 14px;\" (click)=\"showDialog()\">{{'Forgot user ID?' | translate}}</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <a class=\"link\" (click)=\"showForgotPassword = !showForgotPassword\" style=\"font-size: 14px;\"\r\n type=\"submit\">{{'Forgot\r\n Password?' | translate}}</a>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</form>\r\n\r\n<form *ngIf=\"showForgotPassword\" [formGroup]=\"resetForm\" #resetFormDirective=\"ngForm\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"resetUsername\">\r\n <app-error [field]='resetUsername' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"ion-text-left\">\r\n <app-captcha [formControl]=\"resetCaptcha\"></app-captcha>\r\n <app-error [field]='resetCaptcha' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"showForgotPassword = !showForgotPassword\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"arrow-back-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n\r\n <ion-button (click)=\"initiateForgotPassword()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\"\r\n disabled=\"{{resetForm.invalid}}\" class=\"white-background\">\r\n <ion-icon name=\"mail-outline\" slot=\"start\"></ion-icon>\r\n {{'Send email' | translate}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<app-email-update [email]=\"userModel.emailId\" *ngIf=\"showEmailVerificationDialog\" (onClose)=\"logout()\" (onSuccess)=\"emailVerificationSuccess()\"></app-email-update>" }]
382
- }], () => [{ type: i1.UtilService }, { type: i2.NavController }, { type: i3.UntypedFormBuilder }, { type: i4.LoginService }, { type: i2.Platform }], { loginFormDirective: [{
563
+ args: [{ selector: 'app-user-login', template: "<p-dialog [(visible)]=\"displayDialog\" [modal]=\"true\" appendTo=\"body\">\r\n <h4 class=\"heading\">Message</h4>\r\n\r\n If you forgot your User ID, a Customer Service Representative is available to assist you during normal business hours.\r\n <div *ngIf=\"util.isState('MS')\">\r\n <ul>\r\n <li>Employers may call 601-493-9427</li>\r\n <li>Claimants may call 601-493-9427.</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"util.isState('ME')\">\r\n <ul>\r\n <li>Employers may call 207-621-5120</li>\r\n <li>Claimants may call 1-800-593-7660</li>\r\n </ul>\r\n </div>\r\n <!-- todo: get KS number-->\r\n <br />\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n Close\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n<app-mfa2 *ngIf=\"isOtpModalEnabled\" [(display)]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [verificationPreference]=\"verificationPreference\" [ssn]=\"ssn\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis()\"></app-mfa2>\r\n<app-lexis-nexis *ngIf=\"isLexisNexisPopupEnabled\" [display]=\"isLexisNexisPopupEnabled\" [userModel] = \"userModel\" (success)=\"onLnSuccess()\" (error)=\"onLNError()\" (usps)=\"triggerUSPS()\"></app-lexis-nexis>\r\n<app-mfa-popup [(display)]=\"show2FADialog\" [user]=\"userModel\" [returningUser]=\"isReturningUser\" [heading]=\"mfaLoginHeader\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis($event)\"></app-mfa-popup>\r\n\r\n\r\n<form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\" *ngIf=\"!showForgotPassword\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"username\">\r\n <app-error [field]='username' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfilePassword\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'Password (Case Sensitive)' | translate}}</label>\r\n <p-password [formControl]=\"password\" inputId=\"userProfilePassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <app-error [field]='password' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Password is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"ion-padding-start ion-padding-end ion-text-left\" style=\"margin-top: -8px;\" *ngIf=\"false\">\r\n <app-captcha [formControl]=\"captcha\"></app-captcha>\r\n <app-error [field]='captcha' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"signIn()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"power-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n </div>\r\n <ion-row class=\"ion-padding-top\">\r\n <ion-col class=\"ion-text-left\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" style=\"font-size: 14px;\" (click)=\"showDialog()\" (keydown.enter)=\"showDialog()\">{{'Forgot user ID?' | translate}}</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" (click)=\"showForgotPassword = !showForgotPassword\" (keydown.enter)=\"showForgotPassword = !showForgotPassword\" style=\"font-size: 14px;\"\r\n type=\"submit\">{{'Forgot\r\n Password?' | translate}}</a>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</form>\r\n\r\n<form *ngIf=\"showForgotPassword\" [formGroup]=\"resetForm\" #resetFormDirective=\"ngForm\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"resetUsername\">\r\n <app-error [field]='resetUsername' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"ion-text-left\">\r\n <app-captcha [formControl]=\"resetCaptcha\"></app-captcha>\r\n <app-error [field]='resetCaptcha' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"showForgotPassword = !showForgotPassword\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"arrow-back-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n\r\n <ion-button (click)=\"initiateForgotPassword()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\"\r\n disabled=\"{{resetForm.invalid}}\" class=\"white-background\">\r\n <ion-icon name=\"mail-outline\" slot=\"start\"></ion-icon>\r\n {{'Send email' | translate}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n\r\n \r\n</form>\r\n\r\n<p-dialog [visible]=\"isUSPSExpired\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n[baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" closeOnEscape=\"false\">\r\n {{'usps.expd.popup.heading' | translate}}<br/>\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'usps.expd.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"triggerUSPSForExpiredProcess()\">\r\n {{'usps.expd.popup.process' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n<app-email-update [email]=\"userModel.emailId\" *ngIf=\"showEmailVerificationDialog\" (onClose)=\"logout()\" (onSuccess)=\"emailVerificationSuccess()\"></app-email-update>" }]
564
+ }], () => [{ type: i1.UtilService }, { type: i2.NavController }, { type: i3.UntypedFormBuilder }, { type: i4.LoginService }, { type: i2.Platform }, { type: i5.WeeklyCertServiceV2 }, { type: i6.OvpService }, { type: i0.ChangeDetectorRef }, { type: i7.Router }, { type: i8.ClaimantService }, { type: i9.LexisNexisService }], { loginFormDirective: [{
383
565
  type: ViewChild,
384
566
  args: ['loginFormDirective', { static: false }]
385
567
  }], resetFormDirective: [{
@@ -389,10 +571,12 @@ export class UserLoginComponent {
389
571
  type: Input
390
572
  }], color: [{
391
573
  type: Input
574
+ }], isPhoneMfaRequiredForAccountActivation: [{
575
+ type: Input
392
576
  }], success: [{
393
577
  type: Output
394
578
  }], error: [{
395
579
  type: Output
396
580
  }] }); })();
397
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginComponent, { className: "UserLoginComponent", filePath: "lib\\components\\user-login\\user-login.component.ts", lineNumber: 14 }); })();
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFvRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNFckQsMkJBQWdDLFNBQUEsU0FBQTtJQUVwQiwrQ0FBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSTtJQUFBLGdEQUFnQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7O0lBR2pELDJCQUFnQyxTQUFBLFNBQUE7SUFFcEIsK0NBQStCO0lBQUEsaUJBQUs7SUFDeEMsMEJBQUk7SUFBQSxpREFBaUM7SUFBQSxpQkFBSyxFQUFBLEVBQUE7Ozs7SUFjdEQsd0NBQXFHO0lBQTdDLHFMQUFXLGVBQUEscUJBQWMsQ0FBQSxJQUFDLG9LQUFVLGVBQUEsY0FBTyxDQUFBLElBQWpCO0lBQW1CLGlCQUFnQjs7O0lBQWhGLHVDQUFrQjs7OztJQW9CbkQsK0JBQXFHO0lBQ2pHLGtDQUFtRCxvQkFBQTtJQUl2RCxpQkFBTTs7Ozs7SUFKVyxlQUF1QjtJQUF2Qiw2Q0FBdUI7SUFDekIsZUFBaUI7SUFBakIsdUNBQWlCLGFBQUEsc0NBQUE7Ozs7OztJQXBCcEMs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LGtCQUFrQjtrQkFBM0UsU0FBUzttQkFBQyxvQkFBb0IsRUFBRSxFQUFDLE1BQU0sRUFBRyxLQUFLLEVBQUM7WUFleEMsUUFBUTtrQkFBaEIsS0FBSztZQUVHLEtBQUs7a0JBQWIsS0FBSztZQUdOLE9BQU87a0JBRE4sTUFBTTtZQUlQLEtBQUs7a0JBREosTUFBTTs7a0ZBekJJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWxvZ2luJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91c2VyLWxvZ2luLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXNlckxvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdsb2dpbkZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBwdWJsaWMgbG9naW5Gb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XG4gIEBWaWV3Q2hpbGQoJ3Jlc2V0Rm9ybURpcmVjdGl2ZScsIHtzdGF0aWMgOiBmYWxzZX0pIHB1YmxpYyByZXNldEZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcblxuICBwdWJsaWMgc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0ZvcmdvdFBhc3N3b3JkID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93VXNlcm5hbWVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgY2Fwc09uID0gZmFsc2U7XG4gIHB1YmxpYyBkaXNwbGF5RGlhbG9nID0gZmFsc2U7XG4gIHB1YmxpYyBsb2dpbkZvcm0gOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwdWJsaWMgcmVzZXRGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIGlzTG9naW5JblByb2dyZXNzID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgcHVibGljIHNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyB1c2VyTW9kZWwgOiBVc2VyTW9kZWw7XG5cbiAgQElucHV0KCkgZm9udFNpemUgOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgY29sb3IgOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIFxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgXG4gIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyBmYiA6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIGxvZ2luU2VydmljZSA6IExvZ2luU2VydmljZSwgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0pIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlsaXplTG9naW5Gb3JtKCk7XG4gIH1cblxuICByZXNldCgpe1xuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgdGhpcy51c2VyTW9kZWwgPSBudWxsO1xuICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xuICB9XG5cbiAgaW5pdGlsaXplTG9naW5Gb3JtKCl7XG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICd1c2VybmFtZScgOiBbbnVsbCxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdwYXNzd29yZCcgOiBbbnVsbCxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdjYXB0Y2hhJyA6IFtudWxsXVxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNldEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICd1c2VybmFtZScgOiBbbnVsbCxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdjYXB0Y2hhJyA6IFtudWxsLFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdXNlcm5hbWUoKXtcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHBhc3N3b3JkKCl7XG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydwYXNzd29yZCddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBjYXB0Y2hhKCl7XG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydjYXB0Y2hhJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHJlc2V0VXNlcm5hbWUoKXtcbiAgICByZXR1cm4gdGhpcy5yZXNldEZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHJlc2V0Q2FwdGNoYSgpe1xuICAgIHJldHVybiB0aGlzLnJlc2V0Rm9ybS5jb250cm9sc1snY2FwdGNoYSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGFzeW5jIHNpZ25Jbigpe1xuICAgIGlmKHRoaXMubG9naW5Gb3JtLmludmFsaWQpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgYXV0aCA6IGFueT0ge307XG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlO1xuXG4gICAgdGhpcy51dGlsXG4gICAgICAgIC5zaG93TG9hZGVyKClcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5BbmRDaGVja0Zvck1GQShhdXRoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gcmVzO1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnNldFVzZXIodXNlck1vZGVsKS50aGVuKFxuICAgICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblN1Y2Nlc3MoKTsgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgaWYoKGVyci5pczJGQVJlcXVpcmVkICsgJycpID09ICd0cnVlJyl7XG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgID0gZXJyO1xuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93MkZBRGlhbG9nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgZWxzZScsIGVycilcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gIH1cblxuICBsb2dpblN1Y2Nlc3MoKXtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIHRoaXMudXNlck1vZGVsID0gdXNlck1vZGVsO1xuXG4gICAgaWYodXNlck1vZGVsLmNoYW5nZVB3ZCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJ2NoYW5nZS1wYXNzd29yZCcpO1xuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgaWYodXNlck1vZGVsLmVtYWlsU3RhdHVzICE9ICdWRVJGJyAmJiB1c2VyTW9kZWwuaXNFbWFpbFZlcmlmaWNhdGlvblJlcXVpcmVkKXtcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYodXNlck1vZGVsLmlzMkZBUmVxdWlyZWQpe1xuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgXG4gICAgY29uc3QgaXNDYXBhY2l0b3IgPSB0aGlzLnBsYXRmb3JtLmlzKCdjYXBhY2l0b3InKTtcbiAgICBpZih1c2VyTW9kZWwuZGF5c1RpbGxQYXNzd29yZEV4cGlyZSAmJiB1c2VyTW9kZWwuZGF5c1RpbGxQYXNzd29yZEV4cGlyZSA8IDEwICYmIExpYkNvbnN0YW50cy5sZWdhY3lNZW51ID09ICd0cnVlJyAmJiBpc0NhcGFjaXRvcil7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJ2NoYW5nZS1wYXNzd29yZD9jaGFuZ2VQd2Q9dHJ1ZScpO1xuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKSB7XG4gICAgdGhpcy5kaXNwbGF5RGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmQoKXtcbiAgICBpZih0aGlzLnJlc2V0Rm9ybS5pbnZhbGlkKXtcbiAgICAgIHRoaXMucGFzc3dvcmQucmVzZXQoKTtcbiAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KClcbiAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0KCk7XG4gICAgICB0aGlzLnJlc2V0Rm9ybS5yZXNldCgpXG4gICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xuICAgICAgdGhpcy5yZXNldFVzZXJuYW1lLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLnJlc2V0Q2FwdGNoYS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnV0aWxcbiAgICAgICAgLnNob3dMb2FkZXIoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgICAgICAgLmluaXRpYXRlRm9yZ290UGFzc3dvcmRWMih0aGlzLnJlc2V0VXNlcm5hbWUudmFsdWUpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3Ugc2hvdWxkIHJlY2VpdmUgYW4gZW1haWwgd2l0aCBhIHRlbXBvcmFyeSBwYXNzd29yZCBhbmQgbG9naW4gaW5zdHJ1Y3Rpb25zLicpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldFVzZXJuYW1lLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dGb3Jnb3RQYXNzd29yZCA9ICF0aGlzLnNob3dGb3Jnb3RQYXNzd29yZDtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkID0gIXRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkO1xuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIGVtYWlsVmVyaWZpY2F0aW9uU3VjY2Vzcygpe1xuICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XG4gICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcbiAgfVxuXG59XG4iLCI8cC1kaWFsb2cgWyh2aXNpYmxlKV09XCJkaXNwbGF5RGlhbG9nXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj5NZXNzYWdlPC9oND5cclxuXHJcbiAgICBJZiB5b3UgZm9yZ290IHlvdXIgVXNlciBJRCwgYSBDdXN0b21lciBTZXJ2aWNlIFJlcHJlc2VudGF0aXZlIGlzIGF2YWlsYWJsZSB0byBhc3Npc3QgeW91IE1vbmRheSB0aHJvdWdoIEZyaWRheVxyXG4gICAgZnJvbSA4IEFNIHRvIDUgUE0uXHJcbiAgICA8ZGl2ICpuZ0lmPVwidXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+RW1wbG95ZXJzIG1heSBjYWxsIDYwMS00OTMtOTQyNzwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5DbGFpbWFudHMgbWF5IGNhbGwgNjAxLTQ5My05NDI3LjwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInV0aWwuaXNTdGF0ZSgnTUUnKVwiPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpPkVtcGxveWVycyBtYXkgY2FsbCAyMDctNjIxLTUxMjA8L2xpPlxyXG4gICAgICAgICAgICA8bGk+Q2xhaW1hbnRzIG1heSBjYWxsIDEtODAwLTU5My03NjYwPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnIgLz5cclxuICAgIDxwLWZvb3Rlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImRpc3BsYXlEaWFsb2cgPSAhZGlzcGxheURpYWxvZ1wiIGNvbG9yPVwic3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJjbG9zZS1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICBDbG9zZVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtZm9vdGVyPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuPGFwcC1tZmEtcG9wdXAgKm5nSWY9XCJzaG93MkZBRGlhbG9nXCIgW3VzZXJdPVwidXNlck1vZGVsXCIgKHN1Y2Nlc3MpPVwibG9naW5TdWNjZXNzKClcIiAoY2xlYXIpPVwicmVzZXQoKVwiPjwvYXBwLW1mYS1wb3B1cD5cclxuXHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgI2xvZ2luRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiICpuZ0lmPVwiIXNob3dGb3Jnb3RQYXNzd29yZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZUlkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J1VzZXIgSUQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1c2VyUHJvZmlsZUlkXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNVwiIFtmb3JtQ29udHJvbF09XCJ1c2VybmFtZVwiPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3VzZXJuYW1lJyBbZm9ybV09XCJsb2dpbkZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAnVXNlciBJRCBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICBtaW5sZW5ndGg6ICdVc2VyIElEIHNob3VsZCBoYXZlIG1pbmltdW0gNSBjaGFyYWN0ZXJzLidcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZVBhc3N3b3JkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J1Bhc3N3b3JkIChDYXNlIFNlbnNpdGl2ZSknIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwicGFzc3dvcmRcIiBpbnB1dElkPVwidXNlclByb2ZpbGVQYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgW2ZlZWRiYWNrXT0nZmFsc2UnPjwvcC1wYXNzd29yZD5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdwYXNzd29yZCcgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdQYXNzd29yZCBpcyByZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmctc3RhcnQgaW9uLXBhZGRpbmctZW5kIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC04cHg7XCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxhcHAtY2FwdGNoYSBbZm9ybUNvbnRyb2xdPVwiY2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdjYXB0Y2hhJyBbZm9ybV09XCJsb2dpbkZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgcmVxdWlyZWQ6ICdDYXB0Y2hhIGlzIHJlcXVpcmVkLidcclxuICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaWduSW4oKVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicG93ZXItb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eydMb2dpbicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImxpbmtcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIiAoY2xpY2spPVwic2hvd0RpYWxvZygpXCI+e3snRm9yZ290IHVzZXIgSUQ/JyB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibGlua1wiIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCI+e3snRm9yZ290XHJcbiAgICAgICAgICAgICAgICAgICAgUGFzc3dvcmQ/JyB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxmb3JtICpuZ0lmPVwic2hvd0ZvcmdvdFBhc3N3b3JkXCIgW2Zvcm1Hcm91cF09XCJyZXNldEZvcm1cIiAjcmVzZXRGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVzZXJQcm9maWxlSWRcIiBbc3R5bGUuZm9udC1zaXplXT1cImZvbnRTaXplXCIgW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3snVXNlciBJRCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBpZD1cInVzZXJQcm9maWxlSWRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgbWF4bGVuZ3RoPVwiMzBcIiBtaW5sZW5ndGg9XCI1XCIgW2Zvcm1Db250cm9sXT1cInJlc2V0VXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdyZXNldFVzZXJuYW1lJyBbZm9ybV09XCJyZXNldEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAnVXNlciBJRCBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICBtaW5sZW5ndGg6ICdVc2VyIElEIHNob3VsZCBoYXZlIG1pbmltdW0gNSBjaGFyYWN0ZXJzLidcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sXT1cInJlc2V0Q2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncmVzZXRDYXB0Y2hhJyBbZm9ybV09XCJyZXNldEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogJ0NhcHRjaGEgaXMgcmVxdWlyZWQuJ1xyXG4gICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNob3dGb3Jnb3RQYXNzd29yZCA9ICFzaG93Rm9yZ290UGFzc3dvcmRcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWJhY2stb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7eydMb2dpbicgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCgpXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD1cInt7cmVzZXRGb3JtLmludmFsaWR9fVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJtYWlsLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snU2VuZCBlbWFpbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPlxyXG5cclxuPGFwcC1lbWFpbC11cGRhdGUgW2VtYWlsXT1cInVzZXJNb2RlbC5lbWFpbElkXCIgKm5nSWY9XCJzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2dcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwiZW1haWxWZXJpZmljYXRpb25TdWNjZXNzKClcIj48L2FwcC1lbWFpbC11cGRhdGU+Il19
581
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginComponent, { className: "UserLoginComponent", filePath: "lib\\components\\user-login\\user-login.component.ts", lineNumber: 21 }); })();
582
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBb0UsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0NyRCwyQkFBZ0MsU0FBQSxTQUFBO0lBRXBCLCtDQUErQjtJQUFBLGlCQUFLO0lBQ3hDLDBCQUFJO0lBQUEsZ0RBQWdDO0lBQUEsaUJBQUssRUFBQSxFQUFBOzs7SUFHakQsMkJBQWdDLFNBQUEsU0FBQTtJQUVwQiwrQ0FBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSTtJQUFBLGlEQUFpQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQWN0RCxvQ0FBNE47SUFBeEwsa1BBQStCLCtKQUE0RyxlQUFBLHNCQUFjLENBQUEsSUFBMUgsMkpBQXFJLGVBQUEsMEJBQWtCLENBQUEsSUFBdko7SUFBeUosaUJBQVc7OztJQUFuTSxrREFBK0IseUNBQUEseURBQUEsbUJBQUE7Ozs7SUFDbkUsMkNBQXdMO0lBQXZFLDJMQUFXLGVBQUEscUJBQWEsQ0FBQSxJQUFDLDBLQUFVLGVBQUEsbUJBQVcsQ0FBQSxJQUFyQix3S0FBK0IsZUFB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LEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxzQ0FBc0M7a0JBQTlDLEtBQUs7WUFHTixPQUFPO2tCQUROLE1BQU07WUFJUCxLQUFLO2tCQURKLE1BQU07O2tGQXBDSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1zZXJ2aWNlL2NsYWltYW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPdnBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZwL292cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRXhwaXJ5IH0gZnJvbSAnQG5nLWlkbGUvY29yZSc7XHJcbmltcG9ydCB7IExleGlzTmV4aXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGV4aXMtbmV4aXMvbGV4aXMubmV4aXMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItbG9naW4uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnbG9naW5Gb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGxvZ2luRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG4gIEBWaWV3Q2hpbGQoJ3Jlc2V0Rm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyByZXNldEZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgcHVibGljIHNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0ZvcmdvdFBhc3N3b3JkID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dVc2VybmFtZUVycm9yID0gZmFsc2U7XHJcbiAgcHVibGljIGNhcHNPbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkaXNwbGF5RGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIGxvZ2luRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgcmVzZXRGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBpc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIGlzTGV4aXNOZXhpc0VuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzT3RwTW9kYWxFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpc1JldHVybmluZ1VzZXI6IGJvb2xlYW47XHJcbiAgcHVibGljIHZlcmlmaWNhdGlvblByZWZlcmVuY2U7XHJcbiAgcHVibGljIHNzbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbWZhTG9naW5IZWFkZXIgOiBzdHJpbmcgPSBcIlZhbGlkYXRpb24gY29kZSBoYXMgYmVlbiBzZW50IHRvIHRoZSBwaG9uZSBudW1iZXIgZW50ZXJlZFwiO1xyXG4gIHB1YmxpYyBpc1VTUFNFeHBpcmVkOiBib29sZWFuID1mYWxzZTtcclxuXHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG5cclxuICBASW5wdXQoKSBmb250U2l6ZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBpc1Bob25lTWZhUmVxdWlyZWRGb3JBY2NvdW50QWN0aXZhdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwdWJsaWMgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSxcclxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgcHJpdmF0ZSB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsXHJcbiAgICBwcml2YXRlIG92cFNlcnZpY2U6IE92cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBjczogQ2xhaW1hbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxuOiBMZXhpc05leGlzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNSZXR1cm5pbmdVc2VyID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdGlsaXplTG9naW5Gb3JtKCk7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgdGhpcy5sb2dpbkZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXNlck1vZGVsID0gbnVsbDtcclxuICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplTG9naW5Gb3JtKCkge1xyXG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgcGFzc3dvcmQ6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY2FwdGNoYTogW251bGxdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZXNldEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY2FwdGNoYTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlcm5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhc3N3b3JkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydwYXNzd29yZCddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBjYXB0Y2hhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydjYXB0Y2hhJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2V0VXNlcm5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNldEZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2V0Q2FwdGNoYSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc2V0Rm9ybS5jb250cm9sc1snY2FwdGNoYSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIHNpZ25JbigpIHtcclxuICAgIGlmICh0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoOiBhbnkgPSB7fTtcclxuICAgIGF1dGgudXNlcklkID0gdGhpcy51c2VybmFtZS52YWx1ZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlO1xyXG5cclxuICAgIHRoaXMudXRpbFxyXG4gICAgICAuc2hvd0xvYWRlcigpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpbkFuZENoZWNrRm9yTUZBKGF1dGgpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB1c2VyTW9kZWw6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgICAgICAuc2V0VXNlcih1c2VyTW9kZWwpXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNzbiA9IHVzZXJNb2RlbD8uc3NuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpblN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIuaXMyRkFSZXF1aXJlZCArICcnID09ICd0cnVlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSBlcnI7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsLnBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYoZXJyLmRldGFpbHMuaW5jbHVkZXMoXCJZb3VyIGlkZW50aXR5IG11c3QgYmUgdmVyaWZpZWQgYXQgVVNQUyBidXQgeW91ciB0aW1lZnJhbWUgaGFzIGV4cGlyZWQuXCIpKXtcclxuICAgICAgICAgICAgIC8vIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgIC8vIFxyXG4gICAgICAgICAgICAgLy8gdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXJVU1BTRm9yRXhwaXJlZCh0aGlzLnVzZXJuYW1lLnZhbHVlKSwgMjAwMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2luc2lkZSBlbHNlJywgZXJyKTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVuYWJsZUxleGlzTmV4aXModHJpZ2dlckV4aXRBUEkgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICAgIGlmICghdHJpZ2dlckV4aXRBUEkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgICB0aGlzLmxuLmlzTGV4aXNOZXhpc0lkUHJvb2ZpbmdFbmFibGVkV2l0aFVzZXJJZCh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAvLyBJZiBsZXhpcy1uZXhpcyBpZCBwcm9vZmluZyBpcyBlbmFibGVkXHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKFwiVGhlIGNsYWltYW50IGFjY291bnQgd2l0aCB1c2VyIG5hbWVcIiArIHRoaXMudXNlck1vZGVsLnVzZXJuYW1lICsgXCIgaGFzIGJlZW4gYmxvY2tlZC4gUGxlYXNlIGNvbnRhY3QgS0RPTC5cIilcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgKi9cclxuICB9XHJcblxyXG4gIG9uTG5TdWNjZXNzKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIElEIHByb29maW5nIHdhcyBzdWNjZXNzZnVsLiBUcnkgcmUtbG9naW4gb3IgY2hhbmdlIHlvdXIgcGFzc3dvcmQgdG8gY29udGludWUhJyk7XHJcbiAgICBpZiAodGhpcy5yZXNldEZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnBhc3N3b3JkLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxORXJyb3IoKXtcclxuICAgIHRoaXMudHJpZ2dlclVTUFMoKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTRm9yRXhwaXJlZCh1c2VybmFtZSA6IFN0cmluZyl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1VTUFNFeHBpcmVkPXRydWU7ICBcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgXHJcbiAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh1c2VybmFtZSkpO1xyXG4gICAgLy9zZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCBcIlwiXSksIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclVTUFNGb3JFeHBpcmVkUHJvY2Vzcygpe1xyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQ9dHJ1ZTsgIFxyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlcklkXCIpKTsgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gYXN5bmMgbG9naW5TdWNjZXNzKCkge1xyXG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgIHRoaXMudXNlck1vZGVsID0gdXNlck1vZGVsO1xyXG4gICAgaWYgKHVzZXJNb2RlbC5jaGFuZ2VQd2QpIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB1c2VyTW9kZWwuZW1haWxTdGF0dXMgIT0gJ1ZFUkYnICYmXHJcbiAgICAgIHVzZXJNb2RlbC5pc0VtYWlsVmVyaWZpY2F0aW9uUmVxdWlyZWRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXNlck1vZGVsLmlzMkZBUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy5zaG93MkZBRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzQ2FwYWNpdG9yID0gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlICYmXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlIDwgMTAgJiZcclxuICAgICAgTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmXHJcbiAgICAgIGlzQ2FwYWNpdG9yXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQ/Y2hhbmdlUHdkPXRydWUnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gICAgaWYodXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQUlDIEZMT1cgaW4gTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLndjU2VydmljZS5nZW5lcmF0ZUV2ZW50Rm9yUmVvcGVuQWljRmxvdyh1c2VyTW9kZWwuc3NuKVxyXG4gICAgICAgLnRoZW4oYXN5bmMgPT57ICAgICAgICAgIFxyXG4gICAgICAgfVxyXG5cclxuICAgICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgIH0pICBcclxuICB9XHJcbiAvKiAgIGl0IHdhcyBjb21tZW50ZWQgICBmb3IgUEdMUC0yMjgxICAgXHJcbiBpZih1c2VyTW9kZWwuc3NuIT1udWxsKXtcclxuICAgIGNvbnNvbGUubG9nKFwib3ZlcnBheW1lbnQgTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgY29uc3QgZGF0YT0gYXdhaXQgdGhpcy5vdnBTZXJ2aWNlLnRyaWdnZXJSZXBheW1lbnRFdmVudCh1c2VyTW9kZWwuc3NuKVxyXG4gICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgXHJcbiAgICAgfVxyXG4gICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgIH0pICBcclxufSovXHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudCgpLnN1YnNjcmliZShcclxuICAgICAgICAoeCkgPT4ge30sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudEhpc3RvcnkoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+IHt9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlzcGxheURpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpbml0aWF0ZUZvcmdvdFBhc3N3b3JkKCkge1xyXG4gICAgaWYgKHRoaXMucmVzZXRGb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXNzd29yZC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0VXNlcm5hbWUubWFya0FzRGlydHkoKTtcclxuICAgICAgdGhpcy5yZXNldENhcHRjaGEubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAuaW5pdGlhdGVGb3Jnb3RQYXNzd29yZFYyKHRoaXMucmVzZXRVc2VybmFtZS52YWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcclxuICAgICAgICAgICAgICAnWW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4gWW91IHNob3VsZCByZWNlaXZlIGFuIGVtYWlsIHdpdGggYSB0ZW1wb3JhcnkgcGFzc3dvcmQgYW5kIGxvZ2luIGluc3RydWN0aW9ucy4nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRVc2VybmFtZS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3Jnb3RQYXNzd29yZCA9ICF0aGlzLnNob3dGb3Jnb3RQYXNzd29yZDtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkID0gIXRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcygpIHtcclxuICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7ICBcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQgPSBmYWxzZTsgICBcclxuICAgXHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyBbKHZpc2libGUpXT1cImRpc3BsYXlEaWFsb2dcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPk1lc3NhZ2U8L2g0PlxyXG5cclxuICAgIElmIHlvdSBmb3Jnb3QgeW91ciBVc2VyIElELCBhIEN1c3RvbWVyIFNlcnZpY2UgUmVwcmVzZW50YXRpdmUgaXMgYXZhaWxhYmxlIHRvIGFzc2lzdCB5b3UgZHVyaW5nIG5vcm1hbCBidXNpbmVzcyBob3Vycy5cclxuICAgIDxkaXYgKm5nSWY9XCJ1dGlsLmlzU3RhdGUoJ01TJylcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT5FbXBsb3llcnMgbWF5IGNhbGwgNjAxLTQ5My05NDI3PC9saT5cclxuICAgICAgICAgICAgPGxpPkNsYWltYW50cyBtYXkgY2FsbCA2MDEtNDkzLTk0MjcuPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidXRpbC5pc1N0YXRlKCdNRScpXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+RW1wbG95ZXJzIG1heSBjYWxsIDIwNy02MjEtNTEyMDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5DbGFpbWFudHMgbWF5IGNhbGwgMS04MDAtNTkzLTc2NjA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gdG9kbzogZ2V0IEtTIG51bWJlci0tPlxyXG4gICAgPGJyIC8+XHJcbiAgICA8cC1mb290ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJkaXNwbGF5RGlhbG9nID0gIWRpc3BsYXlEaWFsb2dcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiY2xvc2Utc2hhcnBcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgQ2xvc2VcclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9wLWZvb3Rlcj5cclxuPC9wLWRpYWxvZz5cclxuPGFwcC1tZmEyICpuZ0lmPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbKGRpc3BsYXkpXT1cImlzT3RwTW9kYWxFbmFibGVkXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgW3ZlcmlmaWNhdGlvblByZWZlcmVuY2VdPVwidmVyaWZpY2F0aW9uUHJlZmVyZW5jZVwiIFtzc25dPVwic3NuXCIgKHN1Y2Nlc3MpPVwibG9naW5TdWNjZXNzKClcIiAoY2xlYXIpPVwiZW5hYmxlTGV4aXNOZXhpcygpXCI+PC9hcHAtbWZhMj5cclxuPGFwcC1sZXhpcy1uZXhpcyAqbmdJZj1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFt1c2VyTW9kZWxdID0gXCJ1c2VyTW9kZWxcIiAoc3VjY2Vzcyk9XCJvbkxuU3VjY2VzcygpXCIgKGVycm9yKT1cIm9uTE5FcnJvcigpXCIgKHVzcHMpPVwidHJpZ2dlclVTUFMoKVwiPjwvYXBwLWxleGlzLW5leGlzPlxyXG48YXBwLW1mYS1wb3B1cCBbKGRpc3BsYXkpXT1cInNob3cyRkFEaWFsb2dcIiBbdXNlcl09XCJ1c2VyTW9kZWxcIiBbcmV0dXJuaW5nVXNlcl09XCJpc1JldHVybmluZ1VzZXJcIiBbaGVhZGluZ109XCJtZmFMb2dpbkhlYWRlclwiIChzdWNjZXNzKT1cImxvZ2luU3VjY2VzcygpXCIgKGNsZWFyKT1cImVuYWJsZUxleGlzTmV4aXMoJGV2ZW50KVwiPjwvYXBwLW1mYS1wb3B1cD5cclxuXHJcblxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiICNsb2dpbkZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAqbmdJZj1cIiFzaG93Rm9yZ290UGFzc3dvcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgcC1ncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVJZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydVc2VyIElEJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwidXNlclByb2ZpbGVJZFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBtYXhsZW5ndGg9XCIzMFwiIG1pbmxlbmd0aD1cIjVcIiBbZm9ybUNvbnRyb2xdPVwidXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSd1c2VybmFtZScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ1VzZXIgSUQgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiAnVXNlciBJRCBzaG91bGQgaGF2ZSBtaW5pbXVtIDUgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVQYXNzd29yZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydQYXNzd29yZCAoQ2FzZSBTZW5zaXRpdmUpJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cInBhc3N3b3JkXCIgaW5wdXRJZD1cInVzZXJQcm9maWxlUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJz48L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncGFzc3dvcmQnIFtmb3JtXT1cImxvZ2luRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXN0YXJ0IGlvbi1wYWRkaW5nLWVuZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOHB4O1wiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sXT1cImNhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nY2FwdGNoYScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnQ2FwdGNoYSBpcyByZXF1aXJlZC4nXHJcbiAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBvd2VyLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snTG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIChjbGljayk9XCJzaG93RGlhbG9nKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93RGlhbG9nKClcIj57eydGb3Jnb3QgdXNlciBJRD8nIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd0ZvcmdvdFBhc3N3b3JkID0gIXNob3dGb3Jnb3RQYXNzd29yZFwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPnt7J0ZvcmdvdFxyXG4gICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkPycgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48Zm9ybSAqbmdJZj1cInNob3dGb3Jnb3RQYXNzd29yZFwiIFtmb3JtR3JvdXBdPVwicmVzZXRGb3JtXCIgI3Jlc2V0Rm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZUlkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J1VzZXIgSUQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1c2VyUHJvZmlsZUlkXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNVwiIFtmb3JtQ29udHJvbF09XCJyZXNldFVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncmVzZXRVc2VybmFtZScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ1VzZXIgSUQgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiAnVXNlciBJRCBzaG91bGQgaGF2ZSBtaW5pbXVtIDUgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICAgICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbF09XCJyZXNldENhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3Jlc2V0Q2FwdGNoYScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6ICdDYXB0Y2hhIGlzIHJlcXVpcmVkLidcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1iYWNrLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snTG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImluaXRpYXRlRm9yZ290UGFzc3dvcmQoKVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJ7e3Jlc2V0Rm9ybS5pbnZhbGlkfX1cIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWFpbC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7J1NlbmQgZW1haWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbjwvZm9ybT5cclxuXHJcbjxwLWRpYWxvZyBbdmlzaWJsZV09XCJpc1VTUFNFeHBpcmVkXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbltiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiPlxyXG4gICAge3sndXNwcy5leHBkLnBvcHVwLmhlYWRpbmcnIHwgdHJhbnNsYXRlfX08YnIvPlxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICB7eyd1c3BzLmV4cGQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInRyaWdnZXJVU1BTRm9yRXhwaXJlZFByb2Nlc3MoKVwiPlxyXG4gICAgICAgICAge3sndXNwcy5leHBkLnBvcHVwLnByb2Nlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuPGFwcC1lbWFpbC11cGRhdGUgW2VtYWlsXT1cInVzZXJNb2RlbC5lbWFpbElkXCIgKm5nSWY9XCJzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2dcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwiZW1haWxWZXJpZmljYXRpb25TdWNjZXNzKClcIj48L2FwcC1lbWFpbC11cGRhdGU+Il19