@reusa/ngx-reusa-app-lib 0.0.1305 → 0.0.1307

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 (536) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2404 -1286
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +159 -105
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +59 -53
  4. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  5. package/esm2022/lib/components/address/address.component.mjs +285 -150
  6. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  7. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +281 -0
  8. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  9. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  10. package/esm2022/lib/components/bank-details/bank-details.component.mjs +79 -219
  11. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  12. package/esm2022/lib/components/contact-us/contact-us.component.mjs +17 -43
  13. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  14. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +21 -4
  15. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  16. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  17. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  18. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  19. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  20. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  21. package/esm2022/lib/components/email-update/email-update.component.mjs +63 -140
  22. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +363 -560
  23. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  24. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  25. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  26. package/esm2022/lib/components/error/error.component.mjs +22 -5
  27. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  28. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  29. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  30. package/esm2022/lib/components/footer/footer.component.mjs +94 -83
  31. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  32. package/esm2022/lib/components/header/header.component.mjs +439 -171
  33. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  34. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +25 -36
  35. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  36. package/esm2022/lib/components/info/info.component.mjs +4 -12
  37. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  38. package/esm2022/lib/components/job-title/job-title.component.mjs +92 -97
  39. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +143 -513
  40. package/esm2022/lib/components/link/link.component.mjs +1 -1
  41. package/esm2022/lib/components/menu/menu.component.mjs +69 -100
  42. package/esm2022/lib/components/mfa/mfa.component.mjs +158 -287
  43. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  44. package/esm2022/lib/components/money-expect/money-expect.component.mjs +158 -54
  45. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  46. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  47. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  48. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  49. package/esm2022/lib/components/profile/profile.component.mjs +717 -354
  50. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +108 -38
  51. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  52. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +510 -0
  53. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  54. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  55. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +377 -173
  56. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +76 -95
  57. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +849 -1070
  58. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +207 -667
  59. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  60. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +116 -32
  61. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  62. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  63. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  64. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +457 -233
  65. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  66. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -30
  67. package/esm2022/lib/components/select/select.component.mjs +5 -10
  68. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  69. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  70. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  71. package/esm2022/lib/components/user-login/user-login.component.mjs +139 -357
  72. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  73. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  74. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  75. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  76. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +613 -237
  77. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +114 -59
  78. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +804 -0
  79. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  80. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  81. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  82. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  83. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  84. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  85. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +683 -0
  86. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  87. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  88. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  89. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  90. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  91. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  92. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  93. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  94. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  95. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  96. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  97. package/esm2022/lib/models/CountyModel.mjs +3 -0
  98. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  99. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  100. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  101. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  102. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  103. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  104. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  105. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  106. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  107. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  108. package/esm2022/lib/models/LibConstants.mjs +45 -6
  109. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  110. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  111. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  112. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  113. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  114. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  115. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  116. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  117. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  118. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  119. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  120. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  121. package/esm2022/lib/models/combo-model.mjs +343 -0
  122. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  123. package/esm2022/lib/models/dependent.model.mjs +1 -1
  124. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  125. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  126. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  127. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  128. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  129. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  130. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  131. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  132. package/esm2022/lib/models/questionnaire/ComboModel.mjs +96 -653
  133. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  134. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  135. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  136. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  137. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  138. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  139. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  140. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  141. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  142. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  143. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  144. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  145. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  146. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  147. package/esm2022/lib/pages/BasePage.mjs +4 -23
  148. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  149. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  150. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  151. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  152. package/esm2022/lib/pages/common/login/login.component.mjs +7 -11
  153. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  154. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  155. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  156. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  157. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  158. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  159. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  160. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  161. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  162. package/esm2022/lib/services/base-service.mjs +4 -1
  163. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  164. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  165. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  166. package/esm2022/lib/services/claims/claims.service.mjs +102 -14
  167. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  168. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  169. package/esm2022/lib/services/help/help.service.mjs +1 -1
  170. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  171. package/esm2022/lib/services/login/login.service.mjs +29 -11
  172. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  173. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  174. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  175. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  176. package/esm2022/lib/services/util/util.service.mjs +61 -5
  177. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  178. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  179. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  180. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  181. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  182. package/esm2022/lib/validations/AppValidators.mjs +84 -31
  183. package/esm2022/public-api.mjs +47 -5
  184. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +41172 -23230
  185. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  186. package/lib/components/add-employer/add-employer.component.d.ts +137 -50
  187. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  188. package/lib/components/add-participant/add-participant.component.d.ts +11 -5
  189. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  190. package/lib/components/add-payment/add-payment.component.d.ts +9 -3
  191. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  192. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  193. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  194. package/lib/components/address/address.component.d.ts +42 -15
  195. package/lib/components/address/address.component.d.ts.map +1 -1
  196. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  197. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  198. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  199. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  200. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  201. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  202. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  203. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  204. package/lib/components/bank-details/bank-details.component.d.ts +1 -23
  205. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  206. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  207. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  208. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  209. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  210. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  211. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  212. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  213. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  214. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  215. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  216. package/lib/components/email-update/email-update.component.d.ts +1 -12
  217. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  218. package/lib/components/employer-grid/employer-grid.component.d.ts +21 -14
  219. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  220. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  221. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  222. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  223. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  224. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  225. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  226. package/lib/components/error/error.component.d.ts +3 -2
  227. package/lib/components/error/error.component.d.ts.map +1 -1
  228. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  229. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  230. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  231. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  232. package/lib/components/footer/footer.component.d.ts.map +1 -1
  233. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  234. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  235. package/lib/components/header/header.component.d.ts +17 -5
  236. package/lib/components/header/header.component.d.ts.map +1 -1
  237. package/lib/components/history-page/history-page.component.d.ts +80 -0
  238. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  239. package/lib/components/idme/idme.component.d.ts +19 -0
  240. package/lib/components/idme/idme.component.d.ts.map +1 -0
  241. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  242. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  243. package/lib/components/job-title/job-title.component.d.ts +22 -23
  244. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  245. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -6
  246. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  247. package/lib/components/menu/menu.component.d.ts +3 -12
  248. package/lib/components/menu/menu.component.d.ts.map +1 -1
  249. package/lib/components/mfa/mfa.component.d.ts +7 -19
  250. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  251. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  252. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  253. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  254. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  255. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  256. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  257. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  258. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  259. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  260. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  261. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  262. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  263. package/lib/components/profile/profile.component.d.ts +83 -49
  264. package/lib/components/profile/profile.component.d.ts.map +1 -1
  265. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  266. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  267. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  268. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  269. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  270. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  271. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  272. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  273. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  274. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  275. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -1
  276. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  277. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  278. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  279. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +31 -33
  280. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  281. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  282. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  283. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  284. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  285. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  286. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  287. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  288. package/lib/components/questionnaire/question.service.d.ts +0 -1
  289. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  290. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  291. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  292. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +10 -3
  293. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  294. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  295. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  296. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  297. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  298. package/lib/components/sms/sms.component.d.ts +63 -0
  299. package/lib/components/sms/sms.component.d.ts.map +1 -0
  300. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  301. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  302. package/lib/components/user-login/user-login.component.d.ts +5 -38
  303. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  304. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  305. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  306. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  307. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  308. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  309. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  310. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  311. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  312. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +27 -10
  313. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  314. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  315. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  316. package/lib/components/weekly-certification/weekly-certification.component.d.ts +99 -0
  317. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  318. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  319. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  320. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  321. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  322. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  323. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  324. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  325. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  326. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  327. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  328. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  329. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  330. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +69 -0
  331. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  332. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  333. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  334. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  335. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  336. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  337. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  338. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  339. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  340. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  341. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  342. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  343. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  344. package/lib/guards/auth.guard.d.ts.map +1 -1
  345. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  346. package/lib/models/ActiveClaimModel.d.ts +8 -0
  347. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  348. package/lib/models/CountyModel.d.ts +8 -0
  349. package/lib/models/CountyModel.d.ts.map +1 -0
  350. package/lib/models/DuaAppDataModel.d.ts +5 -0
  351. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  352. package/lib/models/DuaRequestModel.d.ts +10 -0
  353. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  354. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  355. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  356. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  357. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  358. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  359. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  360. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  361. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  362. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  363. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  364. package/lib/models/GrossEarningsModel.d.ts +6 -0
  365. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  366. package/lib/models/HelpConstants.d.ts +5 -0
  367. package/lib/models/HelpConstants.d.ts.map +1 -0
  368. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  369. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  370. package/lib/models/LibConstants.d.ts +40 -1
  371. package/lib/models/LibConstants.d.ts.map +1 -1
  372. package/lib/models/PaymentComponentModel.d.ts +1 -1
  373. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  374. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  375. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  376. package/lib/models/RetroWeeksModel.d.ts +11 -0
  377. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  378. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  379. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  380. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  381. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  382. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  383. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  384. package/lib/models/WageCalculatorModel.d.ts +15 -0
  385. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  386. package/lib/models/WageInfoModel.d.ts +9 -0
  387. package/lib/models/WageInfoModel.d.ts.map +1 -0
  388. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  389. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  390. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  391. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  392. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  393. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  394. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  395. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  396. package/lib/models/combo-model.d.ts +42 -0
  397. package/lib/models/combo-model.d.ts.map +1 -0
  398. package/lib/models/dashboard-model.d.ts +16 -0
  399. package/lib/models/dashboard-model.d.ts.map +1 -1
  400. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  401. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  402. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  403. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  404. package/lib/models/fileupload/FileObject.d.ts +8 -0
  405. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  406. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  407. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  408. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  409. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  410. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  411. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  412. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +13 -4
  413. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  414. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  415. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  416. package/lib/models/questionnaire/ComboModel.d.ts +14 -82
  417. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  418. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  419. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  420. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  421. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  422. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  423. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  424. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  425. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  426. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  427. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  428. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  429. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  430. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  431. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  432. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  433. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  434. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  435. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  436. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  437. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  438. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  439. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  440. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  441. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  442. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  443. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  444. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  445. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  446. package/lib/pages/BasePage.d.ts +3 -6
  447. package/lib/pages/BasePage.d.ts.map +1 -1
  448. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  449. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  450. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  451. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  452. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  453. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  454. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  455. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  456. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  457. package/lib/services/appeal/appeal.service.d.ts +16 -0
  458. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  459. package/lib/services/base-service.d.ts +12 -0
  460. package/lib/services/base-service.d.ts.map +1 -1
  461. package/lib/services/birt-service/birt.service.d.ts +17 -0
  462. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  463. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  464. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  465. package/lib/services/claims/claims.service.d.ts +38 -5
  466. package/lib/services/claims/claims.service.d.ts.map +1 -1
  467. package/lib/services/employer/employer-service.d.ts +16 -0
  468. package/lib/services/employer/employer-service.d.ts.map +1 -0
  469. package/lib/services/event-service/event-service.d.ts +20 -0
  470. package/lib/services/event-service/event-service.d.ts.map +1 -0
  471. package/lib/services/login/login.service.d.ts +5 -3
  472. package/lib/services/login/login.service.d.ts.map +1 -1
  473. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  474. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  475. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  476. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  477. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  478. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  479. package/lib/services/security-service/security.service.d.ts +12 -4
  480. package/lib/services/security-service/security.service.d.ts.map +1 -1
  481. package/lib/services/util/util.service.d.ts +6 -0
  482. package/lib/services/util/util.service.d.ts.map +1 -1
  483. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  484. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  485. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  486. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  487. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  488. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  489. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  490. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  491. package/lib/validations/AppRegex.d.ts +0 -2
  492. package/lib/validations/AppRegex.d.ts.map +1 -1
  493. package/lib/validations/AppValidators.d.ts +20 -14
  494. package/lib/validations/AppValidators.d.ts.map +1 -1
  495. package/package.json +2 -2
  496. package/public-api.d.ts +46 -4
  497. package/public-api.d.ts.map +1 -1
  498. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -402
  499. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -285
  500. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -199
  501. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  502. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  503. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  504. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  505. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  506. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  507. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  508. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  509. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  510. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  511. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  512. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  513. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  514. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  515. package/lib/components/security-question/security-question.component.d.ts +0 -37
  516. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  517. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  518. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  519. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  520. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  521. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  522. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  523. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  524. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  525. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  526. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  527. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  528. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  529. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  530. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  531. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  532. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  533. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  534. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  535. package/lib/services/ovp/ovp.service.d.ts +0 -17
  536. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -1,394 +1,738 @@
1
- import { Component, EventEmitter, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { ComboOption } from '../../models/questionnaire/ComboModel';
3
+ import { Validators } from '@angular/forms';
4
+ import { BasePage } from '../../pages/BasePage';
5
+ import { LibConstants } from '../../models/LibConstants';
6
+ import { AddressPopupComponent } from '../address-popup/address-popup.component';
3
7
  import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/util/util.service";
8
+ import * as i1 from "../../services/logger/logger.service";
5
9
  import * as i2 from "../../services/login/login.service";
6
- import * as i3 from "@ionic/angular";
7
- import * as i4 from "../../services/claimant-service/claimant.service";
8
- import * as i5 from "@angular/router";
9
- import * as i6 from "../../services/claimant-service/claimant-usps-redirect.service";
10
- import * as i7 from "../../services/lexis-nexis/lexis.nexis.service";
11
- import * as i8 from "@angular/common";
12
- import * as i9 from "primeng/api";
13
- import * as i10 from "@angular/forms";
14
- import * as i11 from "primeng/dialog";
15
- import * as i12 from "primeng/selectbutton";
16
- import * as i13 from "../questionnaire/form-builder/form-builder.page";
17
- import * as i14 from "../security-question/security-question.component";
18
- import * as i15 from "../lexis-nexis/lexis-nexis.component";
19
- import * as i16 from "@ngx-translate/core";
10
+ import * as i3 from "../../services/claimant-service/claimant.service";
11
+ import * as i4 from "../../services/birt-service/birt.service";
12
+ import * as i5 from "../../services/claims/claims.service";
13
+ import * as i6 from "@ionic/angular";
14
+ import * as i7 from "../../services/security-service/security.service";
15
+ import * as i8 from "../../services/util/util.service";
16
+ import * as i9 from "@angular/forms";
17
+ import * as i10 from "../../services/address-validation-service/address-validation.service";
18
+ import * as i11 from "@angular/common";
19
+ import * as i12 from "primeng/api";
20
+ import * as i13 from "@angular/material/form-field";
21
+ import * as i14 from "primeng/dialog";
22
+ import * as i15 from "primeng/table";
23
+ import * as i16 from "primeng/inputtext";
24
+ import * as i17 from "primeng/inputmask";
25
+ import * as i18 from "primeng/selectbutton";
26
+ import * as i19 from "../error/error.component";
27
+ import * as i20 from "../questionnaire/form-builder/form-builder.page";
28
+ import * as i21 from "@ngx-translate/core";
20
29
  const _c0 = ["fb"];
30
+ const _c1 = ["otpFormDirective"];
31
+ const _c2 = ["securityQuestionFormDirective"];
32
+ function ProfileComponent_ng_template_1_p_selectButton_9_Template(rf, ctx) { if (rf & 1) {
33
+ const _r13 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "p-selectButton", 11);
35
+ i0.ɵɵlistener("ngModelChange", function ProfileComponent_ng_template_1_p_selectButton_9_Template_p_selectButton_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.selected = $event); })("onOptionClick", function ProfileComponent_ng_template_1_p_selectButton_9_Template_p_selectButton_onOptionClick_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.onValueChange($event)); });
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r10 = i0.ɵɵnextContext(2);
39
+ i0.ɵɵproperty("options", ctx_r10.profileOpts)("ngModel", ctx_r10.selected);
40
+ } }
41
+ function ProfileComponent_ng_template_1_p_selectButton_10_Template(rf, ctx) { if (rf & 1) {
42
+ const _r16 = i0.ɵɵgetCurrentView();
43
+ i0.ɵɵelementStart(0, "p-selectButton", 11);
44
+ i0.ɵɵlistener("ngModelChange", function ProfileComponent_ng_template_1_p_selectButton_10_Template_p_selectButton_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r15.selected = $event); })("onOptionClick", function ProfileComponent_ng_template_1_p_selectButton_10_Template_p_selectButton_onOptionClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r17 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r17.onValueChange($event)); });
45
+ i0.ɵɵelementEnd();
46
+ } if (rf & 2) {
47
+ const ctx_r11 = i0.ɵɵnextContext(2);
48
+ i0.ɵɵproperty("options", ctx_r11.profileOptsIVR)("ngModel", ctx_r11.selected);
49
+ } }
21
50
  function ProfileComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
22
- const _r8 = i0.ɵɵgetCurrentView();
23
- i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 7);
51
+ i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 8);
24
52
  i0.ɵɵtext(3);
25
53
  i0.ɵɵpipe(4, "translate");
26
- i0.ɵɵelementStart(5, "span", 8);
54
+ i0.ɵɵelementStart(5, "span", 9);
27
55
  i0.ɵɵtext(6);
28
56
  i0.ɵɵelementEnd()()();
29
- i0.ɵɵelementStart(7, "ion-row")(8, "ion-col")(9, "p-selectButton", 9);
30
- i0.ɵɵlistener("ngModelChange", function ProfileComponent_ng_template_1_Template_p_selectButton_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.selected = $event); })("onOptionClick", function ProfileComponent_ng_template_1_Template_p_selectButton_onOptionClick_9_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.onValueChange($event)); });
31
- i0.ɵɵelementEnd()()()();
57
+ i0.ɵɵelementStart(7, "ion-row")(8, "ion-col");
58
+ i0.ɵɵtemplate(9, ProfileComponent_ng_template_1_p_selectButton_9_Template, 1, 2, "p-selectButton", 10)(10, ProfileComponent_ng_template_1_p_selectButton_10_Template, 1, 2, "p-selectButton", 10);
59
+ i0.ɵɵelementEnd()()();
32
60
  } if (rf & 2) {
33
61
  const ctx_r0 = i0.ɵɵnextContext();
34
62
  i0.ɵɵadvance(3);
35
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 4, "header.account.your.account"), "");
63
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 4, "Your Account"), " ");
36
64
  i0.ɵɵadvance(3);
37
- i0.ɵɵtextInterpolate1("(CID ", ctx_r0.ls.getUser().claimantId, ")");
65
+ i0.ɵɵtextInterpolate1("(CLAIMANT ID ", ctx_r0.ls.getUser().claimantId, ")");
38
66
  i0.ɵɵadvance(3);
39
- i0.ɵɵproperty("options", ctx_r0.profileOpts)("ngModel", ctx_r0.selected);
67
+ i0.ɵɵproperty("ngIf", !ctx_r0.isME());
68
+ i0.ɵɵadvance(1);
69
+ i0.ɵɵproperty("ngIf", ctx_r0.isME());
40
70
  } }
41
- function ProfileComponent_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "div");
43
- i0.ɵɵtext(1);
71
+ function ProfileComponent_div_2_app_form_builder_1_Template(rf, ctx) { if (rf & 1) {
72
+ const _r24 = i0.ɵɵgetCurrentView();
73
+ i0.ɵɵelementStart(0, "app-form-builder", 14, 15);
74
+ i0.ɵɵlistener("onError", function ProfileComponent_div_2_app_form_builder_1_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.handleError($event)); })("onComplete", function ProfileComponent_div_2_app_form_builder_1_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.success($event)); });
44
75
  i0.ɵɵelementEnd();
45
76
  } if (rf & 2) {
46
- const ctx_r10 = i0.ɵɵnextContext(2);
47
- i0.ɵɵadvance(1);
48
- i0.ɵɵtextInterpolate1(" ", ctx_r10.getSecQuestionsPaymentOptions(), " ");
77
+ const ctx_r18 = i0.ɵɵnextContext(2);
78
+ i0.ɵɵproperty("flowKey", ctx_r18.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
49
79
  } }
50
- function ProfileComponent_div_2_app_form_builder_2_Template(rf, ctx) { if (rf & 1) {
51
- const _r16 = i0.ɵɵgetCurrentView();
52
- i0.ɵɵelementStart(0, "app-form-builder", 12, 13);
53
- i0.ɵɵlistener("onError", function ProfileComponent_div_2_app_form_builder_2_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r15.handleError($event)); })("onComplete", function ProfileComponent_div_2_app_form_builder_2_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r17 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r17.success($event)); });
80
+ function ProfileComponent_div_2_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
81
+ i0.ɵɵelementStart(0, "div", 17);
82
+ i0.ɵɵelement(1, "ion-icon", 18);
83
+ i0.ɵɵelementStart(2, "span");
84
+ i0.ɵɵtext(3);
85
+ i0.ɵɵelementEnd()();
86
+ } if (rf & 2) {
87
+ const ctx_r26 = i0.ɵɵnextContext(3);
88
+ i0.ɵɵadvance(3);
89
+ i0.ɵɵtextInterpolate(ctx_r26.errorText);
90
+ } }
91
+ function ProfileComponent_div_2_div_2_app_form_builder_2_Template(rf, ctx) { if (rf & 1) {
92
+ const _r30 = i0.ɵɵgetCurrentView();
93
+ i0.ɵɵelementStart(0, "app-form-builder", 14, 15);
94
+ i0.ɵɵlistener("onError", function ProfileComponent_div_2_div_2_app_form_builder_2_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r29.handleError($event)); })("onComplete", function ProfileComponent_div_2_div_2_app_form_builder_2_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.success($event)); });
54
95
  i0.ɵɵelementEnd();
55
96
  } if (rf & 2) {
56
- const ctx_r11 = i0.ɵɵnextContext(2);
57
- i0.ɵɵproperty("flowKey", ctx_r11.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
97
+ const ctx_r27 = i0.ɵɵnextContext(3);
98
+ i0.ɵɵproperty("flowKey", ctx_r27.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
58
99
  } }
59
- function ProfileComponent_div_2_app_form_builder_3_Template(rf, ctx) { if (rf & 1) {
60
- const _r20 = i0.ɵɵgetCurrentView();
61
- i0.ɵɵelementStart(0, "app-form-builder", 12, 13);
62
- i0.ɵɵlistener("onError", function ProfileComponent_div_2_app_form_builder_3_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r19.handleError($event)); })("onComplete", function ProfileComponent_div_2_app_form_builder_3_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.success($event)); });
100
+ function ProfileComponent_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
101
+ i0.ɵɵelementStart(0, "div");
102
+ i0.ɵɵtemplate(1, ProfileComponent_div_2_div_2_div_1_Template, 4, 1, "div", 16)(2, ProfileComponent_div_2_div_2_app_form_builder_2_Template, 2, 11, "app-form-builder", 13);
63
103
  i0.ɵɵelementEnd();
64
104
  } if (rf & 2) {
65
- const ctx_r12 = i0.ɵɵnextContext(2);
66
- i0.ɵɵproperty("flowKey", ctx_r12.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
105
+ const ctx_r19 = i0.ɵɵnextContext(2);
106
+ i0.ɵɵadvance(1);
107
+ i0.ɵɵproperty("ngIf", ctx_r19.showInlineError && ctx_r19.selected === "contact-details");
108
+ i0.ɵɵadvance(1);
109
+ i0.ɵɵproperty("ngIf", ctx_r19.selected == "contact-details");
67
110
  } }
68
- function ProfileComponent_div_2_div_4_app_form_builder_1_Template(rf, ctx) { if (rf & 1) {
69
- const _r25 = i0.ɵɵgetCurrentView();
70
- i0.ɵɵelementStart(0, "app-form-builder", 12, 13);
71
- i0.ɵɵlistener("onError", function ProfileComponent_div_2_div_4_app_form_builder_1_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r24.handleError($event)); })("onComplete", function ProfileComponent_div_2_div_4_app_form_builder_1_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r26 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r26.success($event)); });
111
+ function ProfileComponent_div_2_app_form_builder_3_Template(rf, ctx) { if (rf & 1) {
112
+ const _r34 = i0.ɵɵgetCurrentView();
113
+ i0.ɵɵelementStart(0, "app-form-builder", 14, 15);
114
+ i0.ɵɵlistener("onError", function ProfileComponent_div_2_app_form_builder_3_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r33.handleError($event)); })("onComplete", function ProfileComponent_div_2_app_form_builder_3_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r35 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r35.success($event)); });
72
115
  i0.ɵɵelementEnd();
73
116
  } if (rf & 2) {
74
- const ctx_r22 = i0.ɵɵnextContext(3);
75
- i0.ɵɵproperty("flowKey", ctx_r22.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
117
+ const ctx_r20 = i0.ɵɵnextContext(2);
118
+ i0.ɵɵproperty("flowKey", ctx_r20.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
76
119
  } }
77
- function ProfileComponent_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵelementStart(0, "div");
79
- i0.ɵɵtemplate(1, ProfileComponent_div_2_div_4_app_form_builder_1_Template, 2, 11, "app-form-builder", 11);
120
+ function ProfileComponent_div_2_app_form_builder_4_Template(rf, ctx) { if (rf & 1) {
121
+ const _r38 = i0.ɵɵgetCurrentView();
122
+ i0.ɵɵelementStart(0, "app-form-builder", 14, 15);
123
+ i0.ɵɵlistener("onError", function ProfileComponent_div_2_app_form_builder_4_Template_app_form_builder_onError_0_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r37 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r37.handleError($event)); })("onComplete", function ProfileComponent_div_2_app_form_builder_4_Template_app_form_builder_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r38); const ctx_r39 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r39.success($event)); });
80
124
  i0.ɵɵelementEnd();
81
125
  } if (rf & 2) {
82
- const ctx_r13 = i0.ɵɵnextContext(2);
83
- i0.ɵɵadvance(1);
84
- i0.ɵɵproperty("ngIf", ctx_r13.selected == "payment-details");
126
+ const ctx_r21 = i0.ɵɵnextContext(2);
127
+ i0.ɵɵproperty("flowKey", ctx_r21.selected)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0);
85
128
  } }
86
129
  function ProfileComponent_div_2_Template(rf, ctx) { if (rf & 1) {
87
- i0.ɵɵelementStart(0, "div", 10);
88
- i0.ɵɵtemplate(1, ProfileComponent_div_2_div_1_Template, 2, 1, "div", 3)(2, ProfileComponent_div_2_app_form_builder_2_Template, 2, 11, "app-form-builder", 11)(3, ProfileComponent_div_2_app_form_builder_3_Template, 2, 11, "app-form-builder", 11)(4, ProfileComponent_div_2_div_4_Template, 2, 1, "div", 3);
130
+ i0.ɵɵelementStart(0, "div", 12);
131
+ i0.ɵɵtemplate(1, ProfileComponent_div_2_app_form_builder_1_Template, 2, 11, "app-form-builder", 13)(2, ProfileComponent_div_2_div_2_Template, 3, 2, "div", 5)(3, ProfileComponent_div_2_app_form_builder_3_Template, 2, 11, "app-form-builder", 13)(4, ProfileComponent_div_2_app_form_builder_4_Template, 2, 11, "app-form-builder", 13);
89
132
  i0.ɵɵelementEnd();
90
133
  } if (rf & 2) {
91
134
  const ctx_r1 = i0.ɵɵnextContext();
92
135
  i0.ɵɵadvance(1);
93
- i0.ɵɵproperty("ngIf", ctx_r1.selected == "payment-details" && !ctx_r1.isPaymentOptionQuestionsEnabled && ctx_r1.isPaymentOptionDivEnabled);
94
- i0.ɵɵadvance(1);
95
136
  i0.ɵɵproperty("ngIf", ctx_r1.selected == "personal-details");
96
137
  i0.ɵɵadvance(1);
97
138
  i0.ɵɵproperty("ngIf", ctx_r1.selected == "contact-details");
98
139
  i0.ɵɵadvance(1);
99
- i0.ɵɵproperty("ngIf", ctx_r1.isPaymentOptionQuestionsEnabled);
140
+ i0.ɵɵproperty("ngIf", ctx_r1.selected == "payment-details");
141
+ i0.ɵɵadvance(1);
142
+ i0.ɵɵproperty("ngIf", ctx_r1.selected == "update-ivr");
100
143
  } }
101
- function ProfileComponent_div_3_Template(rf, ctx) { if (rf & 1) {
102
- i0.ɵɵelementStart(0, "div")(1, "div", 14);
103
- i0.ɵɵelement(2, "ion-icon", 15);
104
- i0.ɵɵelementStart(3, "h1");
105
- i0.ɵɵtext(4);
106
- i0.ɵɵpipe(5, "translate");
107
- i0.ɵɵelementEnd()()();
144
+ function ProfileComponent_div_3_div_1_div_4_Template(rf, ctx) { if (rf & 1) {
145
+ i0.ɵɵelementStart(0, "div")(1, "h3", 23);
146
+ i0.ɵɵtext(2);
147
+ i0.ɵɵpipe(3, "translate");
148
+ i0.ɵɵelementEnd()();
149
+ } if (rf & 2) {
150
+ i0.ɵɵadvance(2);
151
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "profile.proof.of.unemployment.label.no.active.claim"), " ");
152
+ } }
153
+ function ProfileComponent_div_3_div_1_ng_template_5_ng_template_1_Template(rf, ctx) { if (rf & 1) {
154
+ i0.ɵɵelementStart(0, "tr")(1, "td")(2, "a", 29);
155
+ i0.ɵɵelement(3, "i", 30);
156
+ i0.ɵɵelementEnd()();
157
+ i0.ɵɵelementStart(4, "td");
158
+ i0.ɵɵtext(5);
159
+ i0.ɵɵelementEnd();
160
+ i0.ɵɵelementStart(6, "td");
161
+ i0.ɵɵtext(7);
162
+ i0.ɵɵelementEnd()();
163
+ } if (rf & 2) {
164
+ const data_r48 = ctx.$implicit;
165
+ const expanded_r49 = ctx.expanded;
166
+ i0.ɵɵadvance(2);
167
+ i0.ɵɵproperty("pRowToggler", data_r48);
168
+ i0.ɵɵadvance(1);
169
+ i0.ɵɵproperty("ngClass", expanded_r49 ? "pi pi-chevron-down" : "pi pi-chevron-right");
170
+ i0.ɵɵadvance(2);
171
+ i0.ɵɵtextInterpolate2(" ", data_r48.effectiveDate, " - ", data_r48.byeDate, " ");
172
+ i0.ɵɵadvance(2);
173
+ i0.ɵɵtextInterpolate1(" ", data_r48.entitlementType, " ");
174
+ } }
175
+ function ProfileComponent_div_3_div_1_ng_template_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
176
+ const _r52 = i0.ɵɵgetCurrentView();
177
+ i0.ɵɵelementStart(0, "tr")(1, "td", 31)(2, "ion-grid")(3, "ion-row")(4, "ion-col", 32);
178
+ i0.ɵɵelement(5, "img", 33);
179
+ i0.ɵɵelementEnd();
180
+ i0.ɵɵelementStart(6, "ion-col", 34)(7, "ion-row");
181
+ i0.ɵɵelement(8, "span", 35);
182
+ i0.ɵɵelementEnd();
183
+ i0.ɵɵelementStart(9, "ion-row")(10, "ion-button", 36);
184
+ i0.ɵɵlistener("click", function ProfileComponent_div_3_div_1_ng_template_5_ng_template_2_Template_ion_button_click_10_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r51.getVerificationReport()); });
185
+ i0.ɵɵtext(11);
186
+ i0.ɵɵpipe(12, "translate");
187
+ i0.ɵɵelementEnd()()()()()()();
188
+ } if (rf & 2) {
189
+ const data_r50 = ctx.$implicit;
190
+ const ctx_r47 = i0.ɵɵnextContext(4);
191
+ i0.ɵɵadvance(5);
192
+ i0.ɵɵproperty("src", ctx_r47.docFileLink, i0.ɵɵsanitizeUrl);
193
+ i0.ɵɵadvance(3);
194
+ i0.ɵɵproperty("innerHTML", data_r50.description, i0.ɵɵsanitizeHtml);
195
+ i0.ɵɵadvance(3);
196
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 3, "profile.proof.of.unemployment.button.download.report"), " ");
197
+ } }
198
+ const _c3 = () => ({ "border-collapse": "separate", "border-spacing": "0 8px" });
199
+ function ProfileComponent_div_3_div_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
200
+ i0.ɵɵelementStart(0, "p-table", 26);
201
+ i0.ɵɵtemplate(1, ProfileComponent_div_3_div_1_ng_template_5_ng_template_1_Template, 8, 5, "ng-template", 27)(2, ProfileComponent_div_3_div_1_ng_template_5_ng_template_2_Template, 13, 5, "ng-template", 28);
202
+ i0.ɵɵelementEnd();
108
203
  } if (rf & 2) {
204
+ const ctx_r44 = i0.ɵɵnextContext(3);
205
+ i0.ɵɵproperty("value", ctx_r44.listOfActiveClaim)("rowExpandMode", "single")("tableStyle", i0.ɵɵpureFunction0(3, _c3));
206
+ } }
207
+ function ProfileComponent_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
208
+ i0.ɵɵelementStart(0, "div", 22)(1, "h2", 23);
209
+ i0.ɵɵtext(2);
210
+ i0.ɵɵpipe(3, "translate");
211
+ i0.ɵɵelementEnd();
212
+ i0.ɵɵtemplate(4, ProfileComponent_div_3_div_1_div_4_Template, 4, 3, "div", 24)(5, ProfileComponent_div_3_div_1_ng_template_5_Template, 3, 4, "ng-template", null, 25, i0.ɵɵtemplateRefExtractor);
213
+ i0.ɵɵelementEnd();
214
+ } if (rf & 2) {
215
+ const _r45 = i0.ɵɵreference(6);
216
+ const ctx_r40 = i0.ɵɵnextContext(2);
217
+ i0.ɵɵadvance(2);
218
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "profile.proof.of.unemployment.label.proof.of.unemployment.pay"), " ");
219
+ i0.ɵɵadvance(2);
220
+ i0.ɵɵproperty("ngIf", !ctx_r40.listOfActiveClaim || ctx_r40.listOfActiveClaim.length === 0)("ngIfElse", _r45);
221
+ } }
222
+ function ProfileComponent_div_3_ng_template_2_ion_col_2_div_10_Template(rf, ctx) { if (rf & 1) {
223
+ i0.ɵɵelementStart(0, "div");
224
+ i0.ɵɵtext(1);
225
+ i0.ɵɵpipe(2, "translate");
226
+ i0.ɵɵelementEnd();
227
+ } if (rf & 2) {
228
+ i0.ɵɵadvance(1);
229
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "profile.proof.of.unemployment.status.download.start"));
230
+ } }
231
+ function ProfileComponent_div_3_ng_template_2_ion_col_2_mat_error_11_Template(rf, ctx) { if (rf & 1) {
232
+ i0.ɵɵelementStart(0, "mat-error");
233
+ i0.ɵɵtext(1);
234
+ i0.ɵɵpipe(2, "translate");
235
+ i0.ɵɵelementEnd();
236
+ } if (rf & 2) {
237
+ i0.ɵɵadvance(1);
238
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "profile.proof.of.unemployment.status.download.error"));
239
+ } }
240
+ function ProfileComponent_div_3_ng_template_2_ion_col_2_Template(rf, ctx) { if (rf & 1) {
241
+ const _r57 = i0.ɵɵgetCurrentView();
242
+ i0.ɵɵelementStart(0, "ion-col", 39)(1, "label");
243
+ i0.ɵɵtext(2);
244
+ i0.ɵɵpipe(3, "translate");
245
+ i0.ɵɵelementEnd();
246
+ i0.ɵɵelement(4, "br");
247
+ i0.ɵɵelementStart(5, "ion-button", 41);
248
+ i0.ɵɵlistener("click", function ProfileComponent_div_3_ng_template_2_ion_col_2_Template_ion_button_click_5_listener() { i0.ɵɵrestoreView(_r57); const ctx_r56 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r56.getExternalClaimantReport()); });
249
+ i0.ɵɵelement(6, "ion-icon", 42);
250
+ i0.ɵɵtext(7);
251
+ i0.ɵɵpipe(8, "translate");
252
+ i0.ɵɵelementEnd();
253
+ i0.ɵɵelement(9, "br");
254
+ i0.ɵɵtemplate(10, ProfileComponent_div_3_ng_template_2_ion_col_2_div_10_Template, 3, 3, "div", 5)(11, ProfileComponent_div_3_ng_template_2_ion_col_2_mat_error_11_Template, 3, 3, "mat-error", 5);
255
+ i0.ɵɵelementEnd();
256
+ } if (rf & 2) {
257
+ const ctx_r53 = i0.ɵɵnextContext(3);
258
+ i0.ɵɵadvance(2);
259
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, "profile.proof.of.unemployment.label.download.unemployment.claim.report"), " ");
260
+ i0.ɵɵadvance(5);
261
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(8, 6, "profile.proof.of.unemployment.button.external.claimant.report"), " ");
262
+ i0.ɵɵadvance(3);
263
+ i0.ɵɵproperty("ngIf", ctx_r53.downloadStatus == "started");
264
+ i0.ɵɵadvance(1);
265
+ i0.ɵɵproperty("ngIf", ctx_r53.downloadStatus == "error");
266
+ } }
267
+ function ProfileComponent_div_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
268
+ const _r59 = i0.ɵɵgetCurrentView();
269
+ i0.ɵɵelementStart(0, "ion-grid", 37)(1, "ion-row");
270
+ i0.ɵɵtemplate(2, ProfileComponent_div_3_ng_template_2_ion_col_2_Template, 12, 8, "ion-col", 38);
271
+ i0.ɵɵelementStart(3, "ion-col", 39)(4, "label");
272
+ i0.ɵɵtext(5);
273
+ i0.ɵɵpipe(6, "translate");
274
+ i0.ɵɵelementEnd();
275
+ i0.ɵɵelement(7, "br");
276
+ i0.ɵɵelementStart(8, "ion-button", 40);
277
+ i0.ɵɵlistener("click", function ProfileComponent_div_3_ng_template_2_Template_ion_button_click_8_listener() { i0.ɵɵrestoreView(_r59); const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.redirectLink(".claimantsummaryverification")); });
278
+ i0.ɵɵtext(9);
279
+ i0.ɵɵpipe(10, "translate");
280
+ i0.ɵɵelementEnd()()()();
281
+ } if (rf & 2) {
282
+ const ctx_r41 = i0.ɵɵnextContext(2);
283
+ i0.ɵɵadvance(2);
284
+ i0.ɵɵproperty("ngIf", !ctx_r41.isME());
285
+ i0.ɵɵadvance(3);
286
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 3, "profile.proof.of.unemployment.label.summary.unemployment.claim"), " ");
109
287
  i0.ɵɵadvance(4);
110
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 1, "header.account.saved.successfully"));
288
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 5, "profile.proof.of.unemployment.button.unemployment.verification"));
289
+ } }
290
+ function ProfileComponent_div_3_Template(rf, ctx) { if (rf & 1) {
291
+ i0.ɵɵelementStart(0, "div", 19);
292
+ i0.ɵɵtemplate(1, ProfileComponent_div_3_div_1_Template, 7, 5, "div", 20)(2, ProfileComponent_div_3_ng_template_2_Template, 11, 7, "ng-template", null, 21, i0.ɵɵtemplateRefExtractor);
293
+ i0.ɵɵelementEnd();
294
+ } if (rf & 2) {
295
+ const _r42 = i0.ɵɵreference(3);
296
+ const ctx_r2 = i0.ɵɵnextContext();
297
+ i0.ɵɵadvance(1);
298
+ i0.ɵɵproperty("ngIf", ctx_r2.phaseTwoProofOfUIView === "true")("ngIfElse", _r42);
111
299
  } }
300
+ const _c4 = a0 => ({ type: a0 });
301
+ const _c5 = () => ({ required: "Authcode is required.", minlength: "Authcode should have 6 numbers." });
112
302
  function ProfileComponent_div_4_Template(rf, ctx) { if (rf & 1) {
113
- i0.ɵɵelementStart(0, "div")(1, "div", 14);
114
- i0.ɵɵelement(2, "ion-icon", 16);
303
+ const _r62 = i0.ɵɵgetCurrentView();
304
+ i0.ɵɵelementStart(0, "div", 43)(1, "form", 44, 45)(3, "ion-row")(4, "div", 46)(5, "ion-row");
305
+ i0.ɵɵelement(6, "label", 47);
306
+ i0.ɵɵpipe(7, "translate");
307
+ i0.ɵɵelementEnd();
308
+ i0.ɵɵelementStart(8, "ion-row")(9, "ion-col");
309
+ i0.ɵɵelement(10, "p-inputMask", 48)(11, "app-error", 49);
310
+ i0.ɵɵelementEnd();
311
+ i0.ɵɵelementStart(12, "ion-col")(13, "ion-button", 50);
312
+ i0.ɵɵlistener("click", function ProfileComponent_div_4_Template_ion_button_click_13_listener() { i0.ɵɵrestoreView(_r62); const ctx_r61 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r61.verify()); });
313
+ i0.ɵɵtext(14);
314
+ i0.ɵɵpipe(15, "translate");
315
+ i0.ɵɵelementEnd()()()()()()();
316
+ } if (rf & 2) {
317
+ const _r60 = i0.ɵɵreference(2);
318
+ const ctx_r3 = i0.ɵɵnextContext();
319
+ i0.ɵɵadvance(1);
320
+ i0.ɵɵproperty("formGroup", ctx_r3.otpForm);
321
+ i0.ɵɵadvance(5);
322
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(7, 7, "profile.contact.details.label.otp", i0.ɵɵpureFunction1(12, _c4, ctx_r3.type)), i0.ɵɵsanitizeHtml);
323
+ i0.ɵɵadvance(4);
324
+ i0.ɵɵproperty("autoFocus", true);
325
+ i0.ɵɵadvance(1);
326
+ i0.ɵɵproperty("field", ctx_r3.otp)("form", _r60)("errDef", i0.ɵɵpureFunction0(14, _c5));
327
+ i0.ɵɵadvance(3);
328
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 10, "profile.contact.details.button.verify"));
329
+ } }
330
+ const _c6 = a0 => ({ securityQuestionToAsk: a0 });
331
+ const _c7 = () => ({ required: "Security Answer is required." });
332
+ function ProfileComponent_div_5_Template(rf, ctx) { if (rf & 1) {
333
+ const _r65 = i0.ɵɵgetCurrentView();
334
+ i0.ɵɵelementStart(0, "div", 43)(1, "form", 44, 51)(3, "ion-row")(4, "div", 46)(5, "ion-row");
335
+ i0.ɵɵelement(6, "label", 52);
336
+ i0.ɵɵpipe(7, "translate");
337
+ i0.ɵɵelementEnd();
338
+ i0.ɵɵelementStart(8, "ion-row")(9, "ion-col");
339
+ i0.ɵɵelement(10, "input", 53)(11, "app-error", 49);
340
+ i0.ɵɵelementEnd();
341
+ i0.ɵɵelementStart(12, "ion-col")(13, "ion-button", 50);
342
+ i0.ɵɵlistener("click", function ProfileComponent_div_5_Template_ion_button_click_13_listener() { i0.ɵɵrestoreView(_r65); const ctx_r64 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r64.verifySecurityQuestion()); });
343
+ i0.ɵɵtext(14);
344
+ i0.ɵɵpipe(15, "translate");
345
+ i0.ɵɵelementEnd()()()()()()();
346
+ } if (rf & 2) {
347
+ const _r63 = i0.ɵɵreference(2);
348
+ const ctx_r4 = i0.ɵɵnextContext();
349
+ i0.ɵɵadvance(1);
350
+ i0.ɵɵproperty("formGroup", ctx_r4.securityQuestionForm);
351
+ i0.ɵɵadvance(5);
352
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(7, 6, "profile.contact.details.label.securityQuestion", i0.ɵɵpureFunction1(11, _c6, ctx_r4.securityQuestionToAsk)), i0.ɵɵsanitizeHtml);
353
+ i0.ɵɵadvance(5);
354
+ i0.ɵɵproperty("field", ctx_r4.securityQuestionAnswer)("form", _r63)("errDef", i0.ɵɵpureFunction0(13, _c7));
355
+ i0.ɵɵadvance(3);
356
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 9, "profile.contact.details.button.verify"));
357
+ } }
358
+ function ProfileComponent_mat_error_6_Template(rf, ctx) { if (rf & 1) {
359
+ i0.ɵɵelementStart(0, "mat-error");
360
+ i0.ɵɵtext(1);
361
+ i0.ɵɵelementEnd();
362
+ } if (rf & 2) {
363
+ const ctx_r5 = i0.ɵɵnextContext();
364
+ i0.ɵɵadvance(1);
365
+ i0.ɵɵtextInterpolate(ctx_r5.errorDtls);
366
+ } }
367
+ function ProfileComponent_ion_label_7_Template(rf, ctx) { if (rf & 1) {
368
+ i0.ɵɵelementStart(0, "ion-label", 54);
369
+ i0.ɵɵtext(1);
370
+ i0.ɵɵelement(2, "br");
371
+ i0.ɵɵelementEnd();
372
+ } if (rf & 2) {
373
+ const ctx_r6 = i0.ɵɵnextContext();
374
+ i0.ɵɵadvance(1);
375
+ i0.ɵɵtextInterpolate(ctx_r6.successDtls);
376
+ } }
377
+ function ProfileComponent_div_8_Template(rf, ctx) { if (rf & 1) {
378
+ i0.ɵɵelementStart(0, "div")(1, "div", 55);
379
+ i0.ɵɵelement(2, "ion-icon", 56);
115
380
  i0.ɵɵelementStart(3, "h1");
116
381
  i0.ɵɵtext(4);
117
382
  i0.ɵɵpipe(5, "translate");
118
383
  i0.ɵɵelementEnd()()();
119
384
  } if (rf & 2) {
120
- const ctx_r3 = i0.ɵɵnextContext();
121
385
  i0.ɵɵadvance(4);
122
- i0.ɵɵtextInterpolate(ctx_r3.errorText ? ctx_r3.errorText : i0.ɵɵpipeBind1(5, 1, "header.account.could.not.process"));
386
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 1, "profile.banner.success"));
387
+ } }
388
+ function ProfileComponent_div_9_section_3_Template(rf, ctx) { if (rf & 1) {
389
+ i0.ɵɵelementStart(0, "section")(1, "h1");
390
+ i0.ɵɵtext(2);
391
+ i0.ɵɵpipe(3, "translate");
392
+ i0.ɵɵelementEnd()();
393
+ } if (rf & 2) {
394
+ const ctx_r66 = i0.ɵɵnextContext(2);
395
+ i0.ɵɵadvance(2);
396
+ i0.ɵɵtextInterpolate(ctx_r66.errorText ? ctx_r66.errorText : i0.ɵɵpipeBind1(3, 1, "profile.banner.request.process.failure"));
397
+ } }
398
+ function ProfileComponent_div_9_section_4_Template(rf, ctx) { if (rf & 1) {
399
+ i0.ɵɵelementStart(0, "section")(1, "h1");
400
+ i0.ɵɵtext(2);
401
+ i0.ɵɵpipe(3, "translate");
402
+ i0.ɵɵelementEnd()();
403
+ } if (rf & 2) {
404
+ const ctx_r67 = i0.ɵɵnextContext(2);
405
+ i0.ɵɵadvance(2);
406
+ i0.ɵɵtextInterpolate(ctx_r67.errorText ? ctx_r67.errorText : i0.ɵɵpipeBind1(3, 1, "profile.banner.request.process.failure"));
407
+ } }
408
+ function ProfileComponent_div_9_Template(rf, ctx) { if (rf & 1) {
409
+ i0.ɵɵelementStart(0, "div")(1, "div", 55);
410
+ i0.ɵɵelement(2, "ion-icon", 57);
411
+ i0.ɵɵtemplate(3, ProfileComponent_div_9_section_3_Template, 4, 3, "section", 5)(4, ProfileComponent_div_9_section_4_Template, 4, 3, "section", 5);
412
+ i0.ɵɵelementEnd()();
413
+ } if (rf & 2) {
414
+ const ctx_r8 = i0.ɵɵnextContext();
415
+ i0.ɵɵadvance(3);
416
+ i0.ɵɵproperty("ngIf", ctx_r8.isMS());
417
+ i0.ɵɵadvance(1);
418
+ i0.ɵɵproperty("ngIf", !ctx_r8.isMS());
123
419
  } }
124
- function ProfileComponent_ng_template_5_ion_button_10_Template(rf, ctx) { if (rf & 1) {
125
- const _r29 = i0.ɵɵgetCurrentView();
126
- i0.ɵɵelementStart(0, "ion-button", 22);
127
- i0.ɵɵlistener("click", function ProfileComponent_ng_template_5_ion_button_10_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.save()); })("keydown.enter", function ProfileComponent_ng_template_5_ion_button_10_Template_ion_button_keydown_enter_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.save()); });
420
+ function ProfileComponent_ng_template_10_ion_button_10_Template(rf, ctx) { if (rf & 1) {
421
+ const _r70 = i0.ɵɵgetCurrentView();
422
+ i0.ɵɵelementStart(0, "ion-button", 63);
423
+ i0.ɵɵlistener("click", function ProfileComponent_ng_template_10_ion_button_10_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r70); const ctx_r69 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r69.save()); });
128
424
  i0.ɵɵtext(1);
129
425
  i0.ɵɵpipe(2, "translate");
130
426
  i0.ɵɵelementEnd();
131
427
  } if (rf & 2) {
132
- const ctx_r27 = i0.ɵɵnextContext(2);
133
- i0.ɵɵproperty("disabled", ctx_r27.isButtonDisabled);
428
+ const ctx_r68 = i0.ɵɵnextContext(2);
429
+ i0.ɵɵproperty("disabled", ctx_r68.isOtpSent == true || ctx_r68.displaySecurityQuestion == true);
134
430
  i0.ɵɵadvance(1);
135
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "header.account.save"));
431
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 2, "profile.button.save"));
136
432
  } }
137
- function ProfileComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
138
- const _r32 = i0.ɵɵgetCurrentView();
139
- i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 17)(3, "ion-button", 18);
140
- i0.ɵɵlistener("click", function ProfileComponent_ng_template_5_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.logout()); })("keydown.enter", function ProfileComponent_ng_template_5_Template_ion_button_keydown_enter_3_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.logout()); });
433
+ function ProfileComponent_ng_template_10_Template(rf, ctx) { if (rf & 1) {
434
+ const _r72 = i0.ɵɵgetCurrentView();
435
+ i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 58)(3, "ion-button", 59);
436
+ i0.ɵɵlistener("click", function ProfileComponent_ng_template_10_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r72); const ctx_r71 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r71.logout()); });
141
437
  i0.ɵɵtext(4);
142
438
  i0.ɵɵpipe(5, "translate");
143
439
  i0.ɵɵelementEnd()();
144
- i0.ɵɵelementStart(6, "ion-col", 19)(7, "ion-button", 20);
145
- i0.ɵɵlistener("click", function ProfileComponent_ng_template_5_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r32); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.cancel()); })("keydown.enter", function ProfileComponent_ng_template_5_Template_ion_button_keydown_enter_7_listener() { i0.ɵɵrestoreView(_r32); const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.cancel()); });
440
+ i0.ɵɵelementStart(6, "ion-col", 60)(7, "ion-button", 61);
441
+ i0.ɵɵlistener("click", function ProfileComponent_ng_template_10_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r72); const ctx_r73 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r73.cancel()); });
146
442
  i0.ɵɵtext(8);
147
443
  i0.ɵɵpipe(9, "translate");
148
444
  i0.ɵɵelementEnd();
149
- i0.ɵɵtemplate(10, ProfileComponent_ng_template_5_ion_button_10_Template, 3, 4, "ion-button", 21);
445
+ i0.ɵɵtemplate(10, ProfileComponent_ng_template_10_ion_button_10_Template, 3, 4, "ion-button", 62);
150
446
  i0.ɵɵelementEnd()()();
151
447
  } if (rf & 2) {
152
- const ctx_r4 = i0.ɵɵnextContext();
153
- i0.ɵɵadvance(3);
154
- i0.ɵɵproperty("disabled", ctx_r4.isButtonDisabled);
155
- i0.ɵɵadvance(1);
156
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 5, "header.account.logout"));
157
- i0.ɵɵadvance(3);
158
- i0.ɵɵproperty("disabled", ctx_r4.isButtonDisabled);
159
- i0.ɵɵadvance(1);
160
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 7, "header.account.close"));
448
+ const ctx_r9 = i0.ɵɵnextContext();
449
+ i0.ɵɵadvance(4);
450
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "profile.button.logout"));
451
+ i0.ɵɵadvance(4);
452
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 5, "profile.button.close"));
161
453
  i0.ɵɵadvance(2);
162
- i0.ɵɵproperty("ngIf", !(ctx_r4.showSuccess || ctx_r4.showError));
163
- } }
164
- function ProfileComponent_app_lexis_nexis_6_Template(rf, ctx) { if (rf & 1) {
165
- const _r37 = i0.ɵɵgetCurrentView();
166
- i0.ɵɵelementStart(0, "app-lexis-nexis", 23);
167
- i0.ɵɵlistener("success", function ProfileComponent_app_lexis_nexis_6_Template_app_lexis_nexis_success_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.onSecurityQuestionSuccess()); })("error", function ProfileComponent_app_lexis_nexis_6_Template_app_lexis_nexis_error_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r38 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r38.triggerUdol()); })("usps", function ProfileComponent_app_lexis_nexis_6_Template_app_lexis_nexis_usps_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.triggerUdol()); });
168
- i0.ɵɵelementEnd();
169
- } if (rf & 2) {
170
- const ctx_r5 = i0.ɵɵnextContext();
171
- i0.ɵɵproperty("display", ctx_r5.isLexisNexisPopupEnabled)("userName", ctx_r5.userName)("customerEventType", ctx_r5.customerEventType);
454
+ i0.ɵɵproperty("ngIf", !(ctx_r9.showSuccess || ctx_r9.showError) && ctx_r9.selected != "proof-of-unemployment");
172
455
  } }
173
- function ProfileComponent_app_security_question_7_Template(rf, ctx) { if (rf & 1) {
174
- const _r41 = i0.ɵɵgetCurrentView();
175
- i0.ɵɵelementStart(0, "app-security-question", 24);
176
- i0.ɵɵlistener("success", function ProfileComponent_app_security_question_7_Template_app_security_question_success_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r40.onSecurityQuestionSuccess()); })("clear", function ProfileComponent_app_security_question_7_Template_app_security_question_clear_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r42.enableLexisNexis()); });
177
- i0.ɵɵelementEnd();
178
- } if (rf & 2) {
179
- const ctx_r6 = i0.ɵɵnextContext();
180
- i0.ɵɵproperty("display", ctx_r6.isSecurityQuestionEnabled)("questionsAndAnswers", ctx_r6.usersQuesAndAns)("questionsAndKeysOfUser", ctx_r6.mappedKeysQuestionsForUser);
181
- } }
182
- const _c1 = () => ({ width: "60vw" });
183
- const _c2 = () => ({ "1024px": "75vw", "768px": "85vw", "640px": "100vw" });
184
- export class ProfileComponent {
185
- constructor(util, ls, nav, cs, router, ur, ln) {
186
- this.util = util;
456
+ const _c8 = () => ({ width: "60vw" });
457
+ const _c9 = () => ({ "1024px": "75vw", "768px": "85vw", "640px": "100vw" });
458
+ export class ProfileComponent extends BasePage {
459
+ constructor(logger, ls, cs, bs, claimService, nav, ss, util, formbuilder, addrSvc, alertCtrl, modalCtrl) {
460
+ super();
461
+ this.logger = logger;
187
462
  this.ls = ls;
188
- this.nav = nav;
189
463
  this.cs = cs;
190
- this.router = router;
191
- this.ur = ur;
192
- this.ln = ln;
464
+ this.bs = bs;
465
+ this.claimService = claimService;
466
+ this.nav = nav;
467
+ this.ss = ss;
468
+ this.util = util;
469
+ this.formbuilder = formbuilder;
470
+ this.addrSvc = addrSvc;
471
+ this.alertCtrl = alertCtrl;
472
+ this.modalCtrl = modalCtrl;
193
473
  this.showSuccess = false;
194
474
  this.showError = false;
475
+ this.phaseTwoProofOfUIView = LibConstants.PhaseTwoProofOfUIView;
476
+ this.downloadStatus = "";
477
+ this.docFileLink = "assets/images/sampleDoc.png";
478
+ this.claimantAddressId = 0;
479
+ this.lastValidatedAddress = null;
480
+ this.lastValidateResult = '';
481
+ this.attemptCount = 0;
482
+ this.isAddressValidated = '0';
483
+ this.showInlineError = false;
195
484
  this.onCancel = new EventEmitter();
196
- this.error = new EventEmitter();
197
485
  this.profileOpts = ComboOption.CLAIMANT_PROFILE_OPTS;
486
+ this.profileOptsIVR = ComboOption.CLAIMANT_PROFILE_OPTS_IVR;
198
487
  this.selected = 'personal-details';
199
- this.isReturningUser = true;
200
- this.isSecurityQuestionEnabled = false;
201
- this.isPaymentOptionQuestionsEnabled = false;
202
- this.isPaymentOptionDivEnabled = true;
203
- this.isLexisNexisPopupEnabled = false;
204
- this.isButtonDisabled = false;
205
- this.isLexisNexisProofedWithinTwentyFourHours = false;
488
+ this.failCounter = 0;
489
+ this.accepted = new EventEmitter();
206
490
  }
207
491
  ngOnInit() {
208
- if (localStorage.getItem("language") === "es") {
209
- this.profileOpts = ComboOption.CLAIMANT_PROFILE_OPTS_ES;
210
- }
211
- else {
212
- this.profileOpts = ComboOption.CLAIMANT_PROFILE_OPTS;
213
- }
214
- this.getUserDetails();
215
- //Get user personal-details
216
- this.getPersonalDetails();
217
- }
218
- ngAfterViewInit() {
219
- const pDialog = document.querySelector('div[role=dialog]');
220
- pDialog?.setAttribute('aria-labelledby', 'pdialog-title');
221
- setTimeout(() => {
222
- document.querySelectorAll('div .ionButton').forEach(element => {
223
- element.setAttribute('role', 'button');
224
- });
225
- }, 1000);
226
- }
227
- getUserDetails() {
228
- this.cs.getUserDetailsForLoggedInUser().subscribe((res) => {
229
- this.ssn = res?.ssn;
230
- this.verificationPreference = res;
231
- this.userName = res?.userName;
232
- this.isLexisNexisProofedWithin24Hours(this.userName);
233
- }, (err) => {
234
- console.log(err);
235
- });
236
- }
237
- isLexisNexisProofedWithin24Hours(ssn) {
238
- this.ln.isLexisNexisProofedWithin24Hours(this.userName).subscribe((res) => {
239
- this.isLexisNexisProofedWithinTwentyFourHours = res;
240
- });
241
492
  }
242
493
  onValueChange(event) {
243
494
  this.showError = false;
244
495
  this.showSuccess = false;
245
- if (this.selected != 'payment-details') {
246
- this.isPaymentOptionQuestionsEnabled = true;
496
+ this.downloadStatus = "";
497
+ if (this.selected === 'proof-of-unemployment') {
498
+ this.getListOfActiveClaim();
247
499
  }
248
500
  }
249
501
  cancel() {
250
- this.util.hideLoader();
251
502
  this.onCancel.emit();
252
503
  }
253
- save() {
254
- if (this.fb.invalid) {
255
- console.log(this.fb);
256
- return;
257
- }
258
- const dirtyItems = this.fb.getDirtyItems();
259
- this.util.showLoader();
260
- // this.saveQuestionnaire(); // First saving the change in the db
261
- if (this.selected === 'personal-details') {
262
- const nameControls = ['fstname', 'middlename', 'lstname'];
263
- if (dirtyItems.some(item => nameControls.includes(item))) {
264
- this.customerEventType = 'name';
265
- // Uncomment to enable Lexis Nexis
266
- const dirtyItemWithValues = this.fb.getDirtyItemsWithValues();
267
- if (this.isLexisNexisProofedWithinTwentyFourHours && this.validateNameChange(dirtyItemWithValues)) {
268
- this.util.hideLoader();
269
- this.enableLexisNexis();
504
+ initilizeForm() {
505
+ this.otpForm = this.formbuilder.group({
506
+ 'otp': [null, [Validators.required, Validators.minLength(6)]],
507
+ });
508
+ }
509
+ initializeSecurityQuestionForm() {
510
+ this.securityQuestionForm = this.formbuilder.group({
511
+ 'securityQuestionAnswer': [null, [Validators.required]],
512
+ });
513
+ }
514
+ get otp() {
515
+ return this.otpForm.get('otp');
516
+ }
517
+ get securityQuestionAnswer() {
518
+ return this.securityQuestionForm.get('securityQuestionAnswer');
519
+ }
520
+ async save() {
521
+ if (this.isMS()) {
522
+ if (this.otpVerified) {
523
+ this.logger.debug("OTP VERIFIED AND SAVING");
524
+ this.fb.submitQuestionnaire();
525
+ }
526
+ else if (this.selected == 'contact-details') {
527
+ let formData = this.fb.questionnaire.questionnaire.questionnaireForm.value;
528
+ //Code for the address validation popup
529
+ //
530
+ // const form = this.fb.questionnaire.questionnaire.questionnaireForm;
531
+ // const v = form.value;
532
+ // //Determine Current address and type based on the answer to mailing address question
533
+ // const currentType = v.diffmailaddress == 'Y' ? 'mail' : 'res';
534
+ // const currentAddress = currentType == 'mail' ? v.mailAddress : v.resAdress;
535
+ // this.showInlineError = false
536
+ // //check if address changed since last validation and if no change continue without interruption
537
+ // if (this.lastValidatedAddress != null) {
538
+ // const lastAddressType = this.lastValidatedAddress.diffmailaddress == 'Y' ? 'mail' : 'res';
539
+ // if (lastAddressType == currentType
540
+ // && !this.isAddressChanged(currentAddress, this.lastValidatedAddress)) {
541
+ // this.isAddressValidated = '1';
542
+ // return this.finishAndSave(form.value, this.isAddressValidated);
543
+ // }
544
+ // }
545
+ // //Starting the process to validate the address
546
+ // const returnComponent = await this.addrSvc.validateAddressProcess(currentType, currentAddress, form);
547
+ // this.lastValidatedAddress = returnComponent.lastValidatedAddress
548
+ // if (returnComponent.showInlineError == true) {
549
+ // this.errorText = returnComponent.errorText;
550
+ // this.showInlineError = returnComponent.showInlineError;
551
+ // }
552
+ // if (returnComponent.showPopup == true) {
553
+ // await this.handleRecommendations(returnComponent.addressValidationResponse, returnComponent.addressValidationRequest, v);
554
+ // }
555
+ // if (returnComponent.showInlineError == false && returnComponent.showPopup == false) {
556
+ // this.finishAndSave(form.value, returnComponent.isAddressValidated);
557
+ // }
558
+ if ((formData['phone'] == formData['hidOriginalPhone']) && (formData['email'] == formData['hidOriginalEmail'])) {
559
+ this.logger.debug("Phone or Email Not Changed");
560
+ this.isOtpSent = false;
561
+ this.fb.submitQuestionnaire();
562
+ }
563
+ else if (formData["hidIsEmailChanged"] === "Y" && formData["hidIsPhoneChanged"] === "Y") {
564
+ this.logger.debug("Both Email and Phone Changed");
565
+ this.errorText = "Please contact MDES support for assistance updating Email Address.";
566
+ this.showError = true;
567
+ }
568
+ else if (formData["hidOriginalPhone"] === "null" && formData["hidIsEmailChanged"] === "Y") {
569
+ this.logger.debug("Trying to change email but phone number is not present");
570
+ this.errorText = "Please contact MDES support for assistance updating Email Address and Cell Phone Number.";
571
+ this.showError = true;
270
572
  }
271
573
  else {
272
- this.util.showLoader();
273
- this.saveQuestionnaire();
574
+ if (formData["hidIsEmailChanged"] === "Y") {
575
+ this.logger.debug("Email Changed");
576
+ this.type = 'text';
577
+ }
578
+ else if (formData["hidIsPhoneChanged"] === "Y") {
579
+ this.logger.debug("Phone Changed");
580
+ this.type = 'email';
581
+ }
582
+ this.isOtpSent = true;
583
+ this.initilizeForm();
584
+ this.ss.sendOtpWithoutCaptcha(this.type).subscribe(res => {
585
+ this.successDtls = "Access code sent successfully.";
586
+ }, err => {
587
+ this.isOtpSent = false;
588
+ this.successDtls = null;
589
+ this.errorDtls = err.msg;
590
+ });
274
591
  }
275
- // Comment to enable Lexis Nexis
276
- // this.onCancel.emit();
277
- // this.triggerUdol();
278
592
  }
279
- else {
280
- this.util.showLoader();
281
- this.saveQuestionnaire();
593
+ else if ((this.selected == 'personal-details') || (this.selected == 'payment-details')) {
594
+ this.fb.submitQuestionnaire();
282
595
  }
283
- this.util.hideLoader();
284
596
  }
285
- else if (this.selected === 'contact-details') {
286
- const contactdetailsControls = ['phone'];
287
- // dirtyItems.forEach((item) => {
288
- if (dirtyItems.some(item => contactdetailsControls.includes(item))) {
289
- // if (item === 'phone') {
290
- this.customerEventType = 'phone';
291
- this.util.hideLoader();
292
- if (this.isLexisNexisProofedWithinTwentyFourHours) {
293
- this.getAllSecurityQuestions();
294
- }
295
- else {
296
- this.saveQuestionnaire();
297
- }
597
+ else if (this.isME()) {
598
+ if (this.securityQuestionVerified) {
599
+ this.logger.debug("SECURITY QUESTION VERIFIED AND SAVING");
600
+ this.fb.submitQuestionnaire();
601
+ }
602
+ else if (this.selected == 'contact-details') {
603
+ this.ss.getRandomSecurityQuestionSelf().subscribe({
604
+ next: (res) => {
605
+ this.randomSecurityQuestionModel = res;
606
+ this.securityQuestionToAsk = this.randomSecurityQuestionModel.securityQuestionDescription;
607
+ this.successDtls = null;
608
+ }, error: (err) => {
609
+ this.displaySecurityQuestion = false;
610
+ this.successDtls = null;
611
+ this.errorDtls = err.message;
612
+ }
613
+ });
614
+ this.initializeSecurityQuestionForm();
615
+ this.displaySecurityQuestion = true;
298
616
  }
299
617
  else {
300
- this.saveQuestionnaire();
618
+ this.fb.submitQuestionnaire();
301
619
  }
302
- // });
303
620
  }
304
- else if (this.selected === 'payment-details') {
305
- this.saveQuestionnaire();
306
- // this.isPaymentOptionQuestionsEnabled=false;
307
- this.isSecurityQuestionEnabled = false;
308
- this.isLexisNexisPopupEnabled = false;
309
- this.isButtonDisabled = false;
310
- // this.isPaymentOptionDivEnabled=true;
621
+ else {
622
+ this.fb.submitQuestionnaire();
311
623
  }
312
624
  }
313
- onSecurityQuestionSuccess() {
314
- if (this.selected != 'payment-details') {
315
- this.util.showLoader();
316
- this.saveQuestionnaire();
625
+ /** Handle Recommendation Popup */
626
+ async handleRecommendations(res, req, v) {
627
+ const suggestions = Array.from(res.addressRecommendationModel ?? []);
628
+ if (!suggestions.length)
629
+ return;
630
+ const modal = await this.modalCtrl.create({
631
+ component: AddressPopupComponent,
632
+ componentProps: { original: req, choices: suggestions },
633
+ backdropDismiss: false,
634
+ animated: true,
635
+ showBackdrop: true
636
+ });
637
+ document.body.appendChild(modal);
638
+ await modal.present();
639
+ const { data, role } = await modal.onWillDismiss();
640
+ if (role !== 'confirm' || !data?.selected)
641
+ return;
642
+ this.patchFormWithSelectedAddress(data.selected, v.diffmailaddress === 'Y');
643
+ }
644
+ /** Patch Form With Selected Address */
645
+ patchFormWithSelectedAddress(sel, isMail) {
646
+ const patchObj = isMail
647
+ ? { mailAddress: this.mapAddress(sel) }
648
+ : { resAdress: this.mapAddress(sel),
649
+ mailAddress: this.mapAddress(sel)
650
+ };
651
+ this.lastValidatedAddress = this.mapAddress(sel);
652
+ this.fb.questionnaire.questionnaire.questionnaireForm.form.patchValue(patchObj);
653
+ }
654
+ mapAddress(sel) {
655
+ if (sel.isOriginal) {
656
+ // Original Address
657
+ return {
658
+ streetAddress: sel.line1,
659
+ optionalAddress: sel.line2,
660
+ city: sel.city,
661
+ state: { label: sel.state, value: sel.state },
662
+ zip: sel.zipCode,
663
+ country: { label: sel.country, value: sel.country }
664
+ };
317
665
  }
318
666
  else {
319
- this.isPaymentOptionQuestionsEnabled = true;
320
- // this.isPaymentOptionDivEnabled=true;
667
+ // USPS Recommended Address
668
+ return {
669
+ streetAddress: sel.deliveryLine1,
670
+ optionalAddress: sel.deliveryLine2,
671
+ city: sel.cityName,
672
+ state: { label: sel.stateAbbrevation, value: sel.stateAbbrevation },
673
+ zip: sel.zipCode,
674
+ country: { label: sel.country, value: sel.country }
675
+ };
321
676
  }
322
- this.isSecurityQuestionEnabled = false;
323
- this.isLexisNexisPopupEnabled = false;
324
- this.isButtonDisabled = false;
325
677
  }
326
- saveQuestionnaire() {
327
- this.fb.submitQuestionnaire();
678
+ verify() {
679
+ this.otpCode = this.otpForm.get('otp')?.value;
680
+ this.ss.validateOtpForClaimant(this.otpCode).subscribe(res => {
681
+ this.otpVerified = true;
682
+ this.isOtpSent = false;
683
+ this.successDtls = null;
684
+ this.accepted.emit(true);
685
+ }, err => {
686
+ this.logger.debug('Verify status error ', err);
687
+ this.otpVerified = false;
688
+ this.successDtls = null;
689
+ this.accepted.emit(false);
690
+ this.errorDtls = err.msg;
691
+ });
328
692
  }
329
- getAllSecurityQuestions() {
330
- this.cs.getAllSecurityQuestion().subscribe((res) => {
331
- this.allSecurityQuestions = res;
332
- this.loadSecurityQuestionsOfClaimant(res);
333
- // this.saveQuestionnaire();
334
- }, (err) => { });
693
+ verifySecurityQuestion() {
694
+ this.securityAnswer = this.securityQuestionForm.get('securityQuestionAnswer')?.value;
695
+ if (this.securityAnswer !== null) {
696
+ this.randomSecurityQuestionModel.securityAnswer = this.securityAnswer;
697
+ this.ss.validateUserSecurityInformation(this.randomSecurityQuestionModel).subscribe(res => {
698
+ this.securityQuestionVerified = true;
699
+ this.displaySecurityQuestion = false;
700
+ this.successDtls = null;
701
+ this.errorDtls = null;
702
+ this.accepted.emit(true);
703
+ }, err => {
704
+ this.logger.debug('Verify status error ', err);
705
+ this.securityQuestionVerified = false;
706
+ this.successDtls = null;
707
+ this.errorDtls = err.msg;
708
+ this.accepted.emit(false);
709
+ });
710
+ }
335
711
  }
336
- loadSecurityQuestionsOfClaimant(allQuestionWithKeys) {
337
- var userName = this.userName;
338
- this.util.get(`user/security/${userName}`).subscribe((res) => {
339
- this.usersQuesAndAns = res;
340
- // Initialize mappedKeysQuestionsForUser
341
- this.mappedKeysQuestionsForUser = [];
342
- // List of possible security question fields
343
- const securityQuestionFields = [
344
- 'securityQuestion',
345
- 'securityQuestion2',
346
- 'securityQuestion3',
347
- ];
348
- // Create a map for quick lookup of question descriptions
349
- const questionMap = new Map();
350
- for (const item of allQuestionWithKeys) {
351
- questionMap.set(item.key, item.description || '');
352
- }
353
- // Iterate through each security question field
354
- for (const field of securityQuestionFields) {
355
- const fieldValue = this.usersQuesAndAns[field];
356
- if (fieldValue && questionMap.has(fieldValue)) {
357
- this.mappedKeysQuestionsForUser.push({
358
- question: questionMap.get(fieldValue),
359
- questionKey: fieldValue,
360
- });
361
- }
362
- }
363
- this.isSecurityQuestionEnabled = true;
364
- }, (err) => {
365
- console.error('Error loading security questions:', err);
712
+ redirectLink(view) {
713
+ let userModel = this.ls.getUser();
714
+ this.util.showLoader().then(() => {
715
+ window.open(`${LibConstants.benefitsUrlExternal}/faces/virtual/contextswitch.xhtml?a=${userModel.access_token}&r=${userModel.refresh_token}&v=2299&CLAIMANT_PORTAL=true&view=${view}`, "_self");
366
716
  });
367
717
  }
368
- enableLexisNexis() {
369
- this.util.showLoader();
370
- this.isButtonDisabled = true;
371
- this.isSecurityQuestionEnabled = false;
372
- this.ln.isLexisNexisIdProofingEnabledWithUserId(this.userName).subscribe((res) => {
373
- // If lexis-nexis id proofing is enabled
374
- if (res) {
375
- this.isLexisNexisPopupEnabled = true;
376
- }
377
- else {
378
- this.util.showError("The claimant account with user name" + this.userName + " has been blocked. Please contact KDOL.");
379
- }
718
+ getExternalClaimantReport() {
719
+ this.downloadStatus = "started";
720
+ return this.bs.getExternalClaimantReport(this.ls.getUser().ssn).subscribe(res => {
721
+ this.downloadRawFile(res, 'ExternalAgencyReport.pdf');
722
+ }, err => {
723
+ this.downloadStatus = "error";
724
+ this.logger.debug('Getting External Claimant Report error', err);
380
725
  });
381
- //this.onCancel.emit();
382
- // usps redirect call
383
- //this.triggerUdol();
384
726
  }
385
- triggerUdol() {
386
- this.onCancel.emit();
387
- this.util.hideLoader();
388
- console.log("usps is triggered");
389
- localStorage.setItem('userId', this.userName);
390
- this.ls.logout();
391
- setTimeout(() => this.router.navigate(['/usps-redirect', ""]), 1000);
727
+ downloadRawFile(res, filename) {
728
+ let binaryData = [];
729
+ binaryData.push(res);
730
+ const url = window.URL.createObjectURL(new Blob(binaryData, { type: "application/xlsx" }));
731
+ const a = document.createElement('a');
732
+ a.href = url;
733
+ a.download = filename;
734
+ a.click();
735
+ URL.revokeObjectURL(url);
392
736
  }
393
737
  handleError(error) {
394
738
  if (error?.errorCode == '422') {
@@ -403,103 +747,122 @@ export class ProfileComponent {
403
747
  this.nav.navigateRoot('/landing');
404
748
  this.ls.logout();
405
749
  }
406
- getPersonalDetails() {
407
- this.cs.getUserPersonalDetails().subscribe({
408
- next: (res) => {
409
- if (res) {
410
- this.userPersonalDetail = res;
411
- }
412
- else {
413
- this.util.showError("Failed to get the user info.");
414
- }
415
- },
416
- error: (err) => {
417
- // Log the error for debugging purposes
418
- console.error('Error fetching user details:', err);
419
- this.util.showError("An error occurred while fetching user information.");
420
- }
750
+ getListOfActiveClaim() {
751
+ this.claimService.getListOfActiveClaim().subscribe((res) => {
752
+ this.listOfActiveClaim = res;
421
753
  });
422
754
  }
423
- getSecQuestionsPaymentOptions() {
424
- if (this.selected === 'payment-details') {
425
- this.isPaymentOptionDivEnabled = false;
426
- this.customerEventType = 'account';
427
- this.util.hideLoader();
428
- // this.isLexisNexisProofedWithinTwentyFourHours=true;
429
- if (this.isLexisNexisProofedWithinTwentyFourHours) {
430
- this.getAllSecurityQuestions();
431
- }
432
- else {
433
- //this.saveQuestionnaire();
434
- this.isPaymentOptionDivEnabled = false;
435
- this.isPaymentOptionQuestionsEnabled = true;
436
- }
437
- }
755
+ getVerificationReport() {
756
+ this.downloadStatus = "started";
757
+ return this.bs.getVerificationReport(this.ls.getUser().claimantId).subscribe(res => {
758
+ this.downloadRawFile(res, 'UnemploymentVerificationReport.pdf');
759
+ }, err => {
760
+ this.downloadStatus = "error";
761
+ this.logger.debug('Getting Unemployment Verification Report error', err);
762
+ });
438
763
  }
439
- validateNameChange(formData) {
440
- const keysToCheck = ['fstname', 'middlename', 'lstname'];
441
- // Iterate through the form data and check if the control has changed
442
- for (let item of formData) {
443
- const controlName = item.controlName.toLowerCase();
444
- // Find the matching key in the response data
445
- const matchedKey = keysToCheck.find(key => key.toLowerCase() === controlName);
446
- if (matchedKey) {
447
- // Retrieve the current value from the user data and the form value
448
- const userPersonValue = this.userPersonalDetail.data[matchedKey];
449
- const formControlValue = item.controlValue;
450
- // Check if values are null, undefined, or empty, or if they differ (ignoring case)
451
- const userIsEmpty = this.isNullOrEmpty(userPersonValue);
452
- const formIsEmpty = this.isNullOrEmpty(formControlValue);
453
- // Case-insensitive comparison of the values
454
- if ((userIsEmpty && !formIsEmpty) || (!userIsEmpty && formIsEmpty) ||
455
- (userPersonValue && formControlValue && userPersonValue.toLowerCase() !== formControlValue.toLowerCase())) {
456
- // If values differ (ignoring case), return true (change detected)
457
- return true;
458
- }
764
+ finishAndSave(formData, isAddressValidated) {
765
+ this.showInlineError = false;
766
+ this.fb.questionnaire.questionnaire.questionnaireForm.form.controls['hidIsAddressValidated'].setValue(isAddressValidated);
767
+ if ((formData['phone'] == formData['hidOriginalPhone']) && (formData['email'] == formData['hidOriginalEmail'])) {
768
+ this.logger.debug("Phone or Email Not Changed");
769
+ this.isOtpSent = false;
770
+ console.log("address validation form flag", formData.hidIsAddressValidated);
771
+ this.fb.submitQuestionnaire();
772
+ }
773
+ else if (formData["hidIsEmailChanged"] === "Y" && formData["hidIsPhoneChanged"] === "Y") {
774
+ this.logger.debug("Both Email and Phone Changed");
775
+ this.errorText = "Please contact MDES support for assistance updating Email Address.";
776
+ this.showError = true;
777
+ }
778
+ else if (formData["hidOriginalPhone"] === "null" && formData["hidIsEmailChanged"] === "Y") {
779
+ this.logger.debug("Trying to change email but phone number is not present");
780
+ this.errorText = "Please contact MDES support for assistance updating Email Address and Cell Phone Number.";
781
+ this.showError = true;
782
+ }
783
+ else {
784
+ if (formData["hidIsEmailChanged"] === "Y") {
785
+ this.logger.debug("Email Changed");
786
+ this.type = 'text';
787
+ }
788
+ else if (formData["hidIsPhoneChanged"] === "Y") {
789
+ this.logger.debug("Phone Changed");
790
+ this.type = 'email';
459
791
  }
792
+ this.isOtpSent = true;
793
+ this.initilizeForm();
794
+ this.ss.sendOtpWithoutCaptcha(this.type).subscribe(res => {
795
+ this.successDtls = "Access code sent successfully.";
796
+ }, err => {
797
+ this.isOtpSent = false;
798
+ this.successDtls = null;
799
+ this.errorDtls = err.msg;
800
+ });
460
801
  }
461
- // If no differences were found, return false (no changes)
462
- return false;
463
802
  }
464
- // Utility method to check for null,undefined or empty string
465
- isNullOrEmpty(value) {
466
- return value === null || value === "" || value === undefined;
803
+ isAddressChanged(current, last) {
804
+ return current.streetAddress !== last.streetAddress ||
805
+ current.optionalAddress !== last.optionalAddress ||
806
+ current.city !== last.city ||
807
+ current.state?.value !== last.state?.value ||
808
+ current.zip !== last.zip ||
809
+ current.country?.value !== last.country?.value;
467
810
  }
468
- static { this.ɵfac = function ProfileComponent_Factory(t) { return new (t || ProfileComponent)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.LoginService), i0.ɵɵdirectiveInject(i3.NavController), i0.ɵɵdirectiveInject(i4.ClaimantService), i0.ɵɵdirectiveInject(i5.Router), i0.ɵɵdirectiveInject(i6.ClaimantUspsRedirectService), i0.ɵɵdirectiveInject(i7.LexisNexisService)); }; }
811
+ static { this.ɵfac = function ProfileComponent_Factory(t) { return new (t || ProfileComponent)(i0.ɵɵdirectiveInject(i1.LoggerService), i0.ɵɵdirectiveInject(i2.LoginService), i0.ɵɵdirectiveInject(i3.ClaimantService), i0.ɵɵdirectiveInject(i4.BirtService), i0.ɵɵdirectiveInject(i5.ClaimService), i0.ɵɵdirectiveInject(i6.NavController), i0.ɵɵdirectiveInject(i7.SecurityService), i0.ɵɵdirectiveInject(i8.UtilService), i0.ɵɵdirectiveInject(i9.UntypedFormBuilder), i0.ɵɵdirectiveInject(i10.AddressValidationService), i0.ɵɵdirectiveInject(i6.AlertController), i0.ɵɵdirectiveInject(i6.ModalController)); }; }
469
812
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProfileComponent, selectors: [["app-profile"]], viewQuery: function ProfileComponent_Query(rf, ctx) { if (rf & 1) {
470
813
  i0.ɵɵviewQuery(_c0, 5);
814
+ i0.ɵɵviewQuery(_c1, 5);
815
+ i0.ɵɵviewQuery(_c2, 5);
471
816
  } if (rf & 2) {
472
817
  let _t;
473
818
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fb = _t.first);
474
- } }, outputs: { onCancel: "onCancel", error: "error" }, decls: 8, vars: 10, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "breakpoints"], ["pTemplate", "header"], ["style", "margin-left: -8px;", 4, "ngIf"], [4, "ngIf"], ["pTemplate", "footer"], [3, "display", "userName", "customerEventType", "success", "error", "usps", 4, "ngIf"], [3, "display", "questionsAndAnswers", "questionsAndKeysOfUser", "success", "clear", 4, "ngIf"], ["id", "pdialog-title", 1, "ion-text-left", "heading", 2, "padding-left", "24px"], [2, "font-size", "16px"], ["styleClass", "ion-padding-start", "optionLabel", "text", "optionValue", "value", 3, "options", "ngModel", "ngModelChange", "onOptionClick"], [2, "margin-left", "-8px"], [3, "flowKey", "showOnlyQuestion", "hideHeader", "hideFooter", "sizeXs", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "offsetXl", "offsetLg", "onError", "onComplete", 4, "ngIf"], [3, "flowKey", "showOnlyQuestion", "hideHeader", "hideFooter", "sizeXs", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "offsetXl", "offsetLg", "onError", "onComplete"], ["fb", ""], [1, "ion-text-center", "ion-padding-top"], ["name", "checkmark-circle", 2, "font-size", "80px", "color", "var(--ion-color-green)"], ["name", "close-circle-outline", 2, "font-size", "80px", "color", "var(--ion-color-danger)"], ["size", "12", "sizeXl", "4", "sizeLg", "4", "sizeMd", "5", 1, "ion-text-left"], ["tabindex", "0", "shape", "round", "fill", "outline", "type", "button", 1, "ionButton", 3, "disabled", "click", "keydown.enter"], ["size", "12", "sizeXl", "8", "sizeLg", "8", "sizeMd", "7", 1, "ion-text-right"], ["tabindex", "0", "shape", "round", "fill", "outline", "type", "reset", 1, "ionButton", 3, "disabled", "click", "keydown.enter"], ["tabindex", "0", "shape", "round", "type", "submit", "class", "ionButton", 3, "disabled", "click", "keydown.enter", 4, "ngIf"], ["tabindex", "0", "shape", "round", "type", "submit", 1, "ionButton", 3, "disabled", "click", "keydown.enter"], [3, "display", "userName", "customerEventType", "success", "error", "usps"], [3, "display", "questionsAndAnswers", "questionsAndKeysOfUser", "success", "clear"]], template: function ProfileComponent_Template(rf, ctx) { if (rf & 1) {
819
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.otpFormDirective = _t.first);
820
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.securityQuestionFormDirective = _t.first);
821
+ } }, inputs: { form: "form", question: "question" }, outputs: { onCancel: "onCancel", accepted: "accepted" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 13, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "breakpoints"], ["pTemplate", "header"], ["style", "margin-left: -8px;", 4, "ngIf"], ["class", "proof-of-unemployment", 4, "ngIf"], ["style", "margin-top: -90px;", 4, "ngIf"], [4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], ["pTemplate", "footer"], [1, "ion-text-left", "heading", 2, "padding-left", "24px"], [2, "font-size", "16px"], ["styleClass", "ion-padding-start", "optionLabel", "text", "optionValue", "value", 3, "options", "ngModel", "ngModelChange", "onOptionClick", 4, "ngIf"], ["styleClass", "ion-padding-start", "optionLabel", "text", "optionValue", "value", 3, "options", "ngModel", "ngModelChange", "onOptionClick"], [2, "margin-left", "-8px"], [3, "flowKey", "showOnlyQuestion", "hideHeader", "hideFooter", "sizeXs", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "offsetXl", "offsetLg", "onError", "onComplete", 4, "ngIf"], [3, "flowKey", "showOnlyQuestion", "hideHeader", "hideFooter", "sizeXs", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "offsetXl", "offsetLg", "onError", "onComplete"], ["fb", ""], ["class", "error-banner", 4, "ngIf"], [1, "error-banner"], ["name", "alert-circle-outline", 2, "color", "var(--ion-color-danger)", "font-size", "18px", "margin-right", "8px"], [1, "proof-of-unemployment"], ["style", "padding: 0px 1rem", 4, "ngIf", "ngIfElse"], ["nonPhraseTwoView", ""], [2, "padding", "0px 1rem"], [2, "font-family", "'Open Sans, Light'"], [4, "ngIf", "ngIfElse"], ["activeClaimTable", ""], ["dataKey", "claimId", "styleClass", "seperate-row", 1, "seperate-row", 3, "value", "rowExpandMode", "tableStyle"], ["pTemplate", "body"], ["pTemplate", "rowexpansion"], ["href", "#", 3, "pRowToggler"], [2, "font-size", "1.5rem", 3, "ngClass"], ["colspan", "7", 2, "border-left", "1px solid #e4e4e4", "border-right", "1px solid #e4e4e4"], [2, "display", "flex", "justify-content", "center"], ["height", "500px", "width", "420px", 3, "src"], [2, "display", "flex", "flex-direction", "column", "justify-content", "space-between"], [2, "font-size", "19px", 3, "innerHTML"], ["fill", "outline", "shape", "round", 2, "padding-inline-end", "2rem", 3, "click"], [2, "margin-top", "15px"], ["layout", "row", "style", "margin:3px;", 4, "ngIf"], ["layout", "row", 2, "margin", "3px"], ["shape", "round", "fill", "outline", 1, "Claimant-summary-ver-btn", 3, "click"], ["shape", "round", "fill", "outline", 1, "Claimant-report-btn", 3, "click"], ["name", "download-outline"], [2, "margin-top", "-90px"], [3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid"], ["for", "otp", 3, "innerHTML"], ["formControlName", "otp", "mask", "999999", "size", "6", "maxlength", "6", "minlength", "6", "title", "Enter Authcode", 3, "autoFocus"], [3, "field", "form", "errDef"], ["shape", "round", "type", "submit", 3, "click"], ["securityQuestionFormDirective", "ngForm"], ["for", "securityQuestionAnswer", 3, "innerHTML"], ["pInputText", "", "formControlName", "securityQuestionAnswer", "size", "30", "maxlength", "30", "title", "Security Answer"], [2, "color", "var(--ion-color-green)"], [1, "ion-text-center", "ion-padding-top"], ["name", "checkmark-circle", 2, "font-size", "80px", "color", "var(--ion-color-green)"], ["name", "close-circle-outline", 2, "font-size", "80px", "color", "var(--ion-color-danger)"], ["size", "12", "sizeXl", "4", "sizeLg", "4", "sizeMd", "5", 1, "ion-text-left"], ["shape", "round", "fill", "outline", "type", "button", 3, "click"], ["size", "12", "sizeXl", "8", "sizeLg", "8", "sizeMd", "7", 1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "disabled", "click", 4, "ngIf"], ["shape", "round", "type", "submit", 3, "disabled", "click"]], template: function ProfileComponent_Template(rf, ctx) { if (rf & 1) {
475
822
  i0.ɵɵelementStart(0, "p-dialog", 0);
476
- i0.ɵɵtemplate(1, ProfileComponent_ng_template_1_Template, 10, 6, "ng-template", 1)(2, ProfileComponent_div_2_Template, 5, 4, "div", 2)(3, ProfileComponent_div_3_Template, 6, 3, "div", 3)(4, ProfileComponent_div_4_Template, 6, 3, "div", 3)(5, ProfileComponent_ng_template_5_Template, 11, 9, "ng-template", 4)(6, ProfileComponent_app_lexis_nexis_6_Template, 1, 3, "app-lexis-nexis", 5)(7, ProfileComponent_app_security_question_7_Template, 1, 3, "app-security-question", 6);
823
+ i0.ɵɵtemplate(1, ProfileComponent_ng_template_1_Template, 11, 6, "ng-template", 1)(2, ProfileComponent_div_2_Template, 5, 4, "div", 2)(3, ProfileComponent_div_3_Template, 4, 2, "div", 3)(4, ProfileComponent_div_4_Template, 16, 15, "div", 4)(5, ProfileComponent_div_5_Template, 16, 14, "div", 4)(6, ProfileComponent_mat_error_6_Template, 2, 1, "mat-error", 5)(7, ProfileComponent_ion_label_7_Template, 3, 1, "ion-label", 6)(8, ProfileComponent_div_8_Template, 6, 3, "div", 5)(9, ProfileComponent_div_9_Template, 5, 2, "div", 5)(10, ProfileComponent_ng_template_10_Template, 11, 7, "ng-template", 7);
477
824
  i0.ɵɵelementEnd();
478
825
  } if (rf & 2) {
479
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(8, _c1));
480
- i0.ɵɵproperty("breakpoints", i0.ɵɵpureFunction0(9, _c2));
826
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(11, _c8));
827
+ i0.ɵɵproperty("breakpoints", i0.ɵɵpureFunction0(12, _c9));
481
828
  i0.ɵɵadvance(2);
482
829
  i0.ɵɵproperty("ngIf", !(ctx.showSuccess || ctx.showError));
483
830
  i0.ɵɵadvance(1);
831
+ i0.ɵɵproperty("ngIf", ctx.selected == "proof-of-unemployment");
832
+ i0.ɵɵadvance(1);
833
+ i0.ɵɵproperty("ngIf", ctx.isMS() && ctx.selected == "contact-details" && ctx.isOtpSent == true);
834
+ i0.ɵɵadvance(1);
835
+ i0.ɵɵproperty("ngIf", ctx.isME() && ctx.selected == "contact-details" && ctx.displaySecurityQuestion == true);
836
+ i0.ɵɵadvance(1);
837
+ i0.ɵɵproperty("ngIf", ctx.errorDtls);
838
+ i0.ɵɵadvance(1);
839
+ i0.ɵɵproperty("ngIf", ctx.successDtls);
840
+ i0.ɵɵadvance(1);
484
841
  i0.ɵɵproperty("ngIf", ctx.showSuccess);
485
842
  i0.ɵɵadvance(1);
486
843
  i0.ɵɵproperty("ngIf", ctx.showError);
487
- i0.ɵɵadvance(2);
488
- i0.ɵɵproperty("ngIf", ctx.isLexisNexisPopupEnabled);
489
- i0.ɵɵadvance(1);
490
- i0.ɵɵproperty("ngIf", ctx.isSecurityQuestionEnabled);
491
- } }, dependencies: [i3.IonButton, i3.IonCol, i3.IonGrid, i3.IonIcon, i3.IonRow, i8.NgIf, i9.PrimeTemplate, i10.NgControlStatus, i10.NgModel, i11.Dialog, i12.SelectButton, i13.FormBuilderPage, i14.SecurityQuestionComponent, i15.LexisNexisComponent, i16.TranslatePipe], styles: ["ion-col[_ngcontent-%COMP%]{margin-left:0!important}ion-button[_ngcontent-%COMP%]:focus{outline:none}"] }); }
844
+ } }, dependencies: [i6.IonButton, i6.IonCol, i6.IonGrid, i6.IonIcon, i6.IonLabel, i6.IonRow, i11.NgClass, i11.NgIf, i12.PrimeTemplate, i13.MatError, i9.ɵNgNoValidate, i9.DefaultValueAccessor, i9.NgControlStatus, i9.NgControlStatusGroup, i9.MinLengthValidator, i9.MaxLengthValidator, i9.FormGroupDirective, i9.FormControlName, i9.NgModel, i14.Dialog, i15.Table, i15.RowToggler, i16.InputText, i17.InputMask, i18.SelectButton, i19.ErrorComponent, i20.FormBuilderPage, i21.TranslatePipe], styles: ["ion-col[_ngcontent-%COMP%]{margin-left:0!important}.Claimant-report-btn[_ngcontent-%COMP%]{margin-inline-end:3%}.proof-unemployment-btn-label[_ngcontent-%COMP%]{margin-bottom:3px}.error-banner[_ngcontent-%COMP%]{display:flex;align-items:center;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;padding:8px 12px;margin-bottom:10px;font-size:14px}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}"] }); }
492
845
  }
493
846
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProfileComponent, [{
494
847
  type: Component,
495
- args: [{ selector: 'app-profile', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" [breakpoints]=\"{'1024px': '75vw', '768px': '85vw', '640px': '100vw'}\"\r\n [style]=\"{width: '60vw'}\" position=\"top\">\r\n <ng-template pTemplate=\"header\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left heading\" style=\"padding-left: 24px;\" id=\"pdialog-title\">\r\n {{'header.account.your.account' | translate}}<span style=\"font-size: 16px;\">(CID\r\n {{ls.getUser().claimantId}})</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col>\r\n <p-selectButton styleClass=\"ion-padding-start\" [options]=\"profileOpts\" optionLabel=\"text\"\r\n optionValue=\"value\" [(ngModel)]=\"selected\" (onOptionClick)=\"onValueChange($event)\">\r\n </p-selectButton>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ng-template> \r\n \r\n <div *ngIf=\"!(showSuccess || showError)\" style=\"margin-left: -8px;\">\r\n <div *ngIf=\"selected == 'payment-details' && !isPaymentOptionQuestionsEnabled && isPaymentOptionDivEnabled\"> \r\n {{ getSecQuestionsPaymentOptions() }} \r\n </div>\r\n <app-form-builder #fb *ngIf=\"selected == 'personal-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\" [hideHeader]=\"true\" [hideFooter]=\"true\"\r\n [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\" [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n <app-form-builder #fb *ngIf=\"selected == 'contact-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\" [hideHeader]=\"true\" [hideFooter]=\"true\"\r\n [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\" [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n <div *ngIf=\"(isPaymentOptionQuestionsEnabled)\">\r\n <app-form-builder #fb *ngIf=\"selected == 'payment-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\" [hideHeader]=\"true\" [hideFooter]=\"true\"\r\n [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\" [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showSuccess\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"></ion-icon>\r\n <h1>{{'header.account.saved.successfully' | translate}}</h1>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showError\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"close-circle-outline\" style=\"font-size: 80px; color: var(--ion-color-danger);\"></ion-icon>\r\n <h1>{{errorText ? errorText : 'header.account.could.not.process' | translate}}</h1>\r\n </div>\r\n </div>\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left\" size=\"12\" sizeXl=\"4\" sizeLg=\"4\" sizeMd=\"5\">\r\n <ion-button tabindex=\"0\" shape=\"round\" fill=\"outline\" type=\"button\" [disabled]=\"isButtonDisabled\" (click)=\"logout()\" (keydown.enter)=\"logout()\" class=\"ionButton\">{{'header.account.logout' | translate}}</ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\" size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"7\">\r\n <ion-button tabindex=\"0\" shape=\"round\" fill=\"outline\" type=\"reset\" [disabled]=\"isButtonDisabled\" (click)=\"cancel()\" (keydown.enter)=\"cancel()\" class=\"ionButton\">{{'header.account.close' | translate}}</ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" [disabled]=\"isButtonDisabled\" (click)=\"save()\" (keydown.enter)=\"save()\" *ngIf=\"!(showSuccess || showError)\" class=\"ionButton\">{{'header.account.save' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ng-template>\r\n <app-lexis-nexis *ngIf=\"isLexisNexisPopupEnabled\" [display]=\"isLexisNexisPopupEnabled\" [userName] = 'this.userName' [customerEventType] = 'this.customerEventType' (success)=\"onSecurityQuestionSuccess()\" (error)=\"triggerUdol()\" (usps)=\"triggerUdol()\"></app-lexis-nexis>\r\n <!-- Uncomment to enable lexis - nexis -->\r\n <app-security-question *ngIf=\"isSecurityQuestionEnabled\" [display]=\"isSecurityQuestionEnabled\" [questionsAndAnswers]=\"usersQuesAndAns\" [questionsAndKeysOfUser]=\"mappedKeysQuestionsForUser\" (success)=\"onSecurityQuestionSuccess()\" (clear)=\"enableLexisNexis()\"></app-security-question>\r\n <!-- Comment when lexis nexis is enabled -->\r\n <!-- <app-security-question *ngIf=\"isSecurityQuestionEnabled\" [display]=\"isSecurityQuestionEnabled\" [questionsAndAnswers]=\"usersQuesAndAns\" [questionsAndKeysOfUser]=\"mappedKeysQuestionsForUser\" (success)=\"onSecurityQuestionSuccess()\" (clear)=\"triggerUdol()\"></app-security-question> -->\r\n \r\n</p-dialog>", styles: ["ion-col{margin-left:0!important}ion-button:focus{outline:none}\n"] }]
496
- }], () => [{ type: i1.UtilService }, { type: i2.LoginService }, { type: i3.NavController }, { type: i4.ClaimantService }, { type: i5.Router }, { type: i6.ClaimantUspsRedirectService }, { type: i7.LexisNexisService }], { fb: [{
848
+ args: [{ selector: 'app-profile', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\"\r\n [breakpoints]=\"{'1024px': '75vw', '768px': '85vw', '640px': '100vw'}\" [style]=\"{width: '60vw'}\" position=\"top\">\r\n <ng-template pTemplate=\"header\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left heading\" style=\"padding-left: 24px;\">\r\n {{\"Your Account\" | translate}} <span style=\"font-size: 16px;\">(CLAIMANT ID\r\n {{ls.getUser().claimantId}})</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col>\r\n <p-selectButton *ngIf=\"!isME()\" styleClass=\"ion-padding-start\" [options]=\"profileOpts\" optionLabel=\"text\"\r\n optionValue=\"value\" [(ngModel)]=\"selected\" (onOptionClick)=\"onValueChange($event)\">\r\n </p-selectButton>\r\n <p-selectButton *ngIf=\"isME()\" styleClass=\"ion-padding-start\" [options]=\"profileOptsIVR\" optionLabel=\"text\"\r\n optionValue=\"value\" [(ngModel)]=\"selected\" (onOptionClick)=\"onValueChange($event)\">\r\n </p-selectButton>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ng-template>\r\n <div *ngIf=\"!(showSuccess || showError)\" style=\"margin-left: -8px;\">\r\n <app-form-builder #fb *ngIf=\"selected == 'personal-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\"\r\n [hideHeader]=\"true\" [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\"\r\n [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n <div *ngIf=\"selected == 'contact-details'\">\r\n <div *ngIf=\"showInlineError && selected === 'contact-details'\" class=\"error-banner\">\r\n <ion-icon name=\"alert-circle-outline\" style=\"color: var(--ion-color-danger); font-size: 18px; margin-right: 8px;\"></ion-icon>\r\n <span>{{ errorText }}</span>\r\n </div>\r\n <app-form-builder #fb *ngIf=\"selected == 'contact-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\"\r\n [hideHeader]=\"true\" [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\"\r\n [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n </div>\r\n <app-form-builder #fb *ngIf=\"selected == 'payment-details'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\"\r\n [hideHeader]=\"true\" [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\"\r\n [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n <app-form-builder #fb *ngIf=\"selected == 'update-ivr'\" [flowKey]=\"selected\" [showOnlyQuestion]=\"true\"\r\n [hideHeader]=\"true\" [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\"\r\n [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" (onError)=\"handleError($event)\" (onComplete)=\"success($event)\">\r\n </app-form-builder>\r\n </div>\r\n <div class=\"proof-of-unemployment\" *ngIf=\"selected == 'proof-of-unemployment'\">\r\n <div *ngIf=\"phaseTwoProofOfUIView==='true';else nonPhraseTwoView\" style=\"padding: 0px 1rem\">\r\n <h2 style=\"font-family: 'Open Sans, Light';\">\r\n {{ \"profile.proof.of.unemployment.label.proof.of.unemployment.pay\"| translate}}\r\n </h2>\r\n <div *ngIf=\"!listOfActiveClaim || listOfActiveClaim.length === 0; else activeClaimTable\">\r\n <h3 style=\"font-family: 'Open Sans, Light';\">\r\n {{\"profile.proof.of.unemployment.label.no.active.claim\"| translate}}\r\n </h3>\r\n </div>\r\n <ng-template #activeClaimTable>\r\n <p-table [value]=\"listOfActiveClaim\" dataKey=\"claimId\" [rowExpandMode]=\"'single'\" styleClass=\"seperate-row\" class=\"seperate-row\"\r\n [tableStyle]=\"{'border-collapse': 'separate','border-spacing': '0 8px'}\"\r\n >\r\n <ng-template pTemplate=\"body\" let-data let-expanded=\"expanded\">\r\n <tr>\r\n <td>\r\n <a href=\"#\" [pRowToggler]=\"data\">\r\n <i [ngClass]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\" style=\"font-size: 1.5rem;\"></i>\r\n </a> \r\n <td >\r\n {{data.effectiveDate}} - {{data.byeDate}}\r\n </td>\r\n <td>\r\n {{data.entitlementType}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-data>\r\n <tr>\r\n <td colspan=\"7\" style=\" border-left: 1px solid #e4e4e4;border-right: 1px solid #e4e4e4;\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col style=\"display: flex;justify-content: center;\">\r\n <img [src]=\"docFileLink\" height='500px' width='420px'/>\r\n </ion-col>\r\n <ion-col style=\"display: flex;flex-direction: column;justify-content: space-between;\">\r\n <ion-row >\r\n <span [innerHTML]=\"data.description\" style=\"font-size: 19px;\"></span>\r\n </ion-row>\r\n <ion-row>\r\n \r\n <ion-button fill=\"outline\" shape=\"round\" style=\"padding-inline-end: 2rem;\" (click)=\"getVerificationReport()\">\r\n {{ \"profile.proof.of.unemployment.button.download.report\"| translate}}\r\n </ion-button>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n \r\n </ion-grid>\r\n \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-template>\r\n </div>\r\n <ng-template #nonPhraseTwoView>\r\n <ion-grid style=\"margin-top: 15px;\">\r\n <ion-row>\r\n <ion-col *ngIf=\"!isME()\" layout=\"row\" style = \"margin:3px;\">\r\n <label>\r\n {{ \"profile.proof.of.unemployment.label.download.unemployment.claim.report\"| translate}}\r\n </label>\r\n <br>\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"getExternalClaimantReport()\"\r\n class=\"Claimant-report-btn\">\r\n <ion-icon name=\"download-outline\"></ion-icon>{{ \"profile.proof.of.unemployment.button.external.claimant.report\"| translate}}\r\n </ion-button>\r\n <br>\r\n <div *ngIf=\"downloadStatus=='started'\">{{ \"profile.proof.of.unemployment.status.download.start\"| translate}}</div>\r\n <mat-error *ngIf=\"downloadStatus=='error'\">{{ \"profile.proof.of.unemployment.status.download.error\"| translate}}</mat-error>\r\n </ion-col>\r\n <ion-col layout=\"row\" style = \"margin:3px;\">\r\n <label>\r\n {{ \"profile.proof.of.unemployment.label.summary.unemployment.claim\"| translate}}\r\n </label>\r\n <br>\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"redirectLink('.claimantsummaryverification')\"\r\n class=\"Claimant-summary-ver-btn\">{{ \"profile.proof.of.unemployment.button.unemployment.verification\"| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"isMS() && selected == 'contact-details' && isOtpSent == true\" style=\"margin-top: -90px;\">\r\n <form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <ion-row>\r\n <div class=\"p-fluid p-formgrid\">\r\n <ion-row>\r\n <label for=\"otp\" [innerHTML]=\"'profile.contact.details.label.otp' | translate:{ type: type }\"></label>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col>\r\n <p-inputMask formControlName=\"otp\" mask=\"999999\" size=\"6\" maxlength=\"6\" minlength=\"6\"\r\n [autoFocus]='true' title='Enter Authcode'></p-inputMask>\r\n <app-error [field]='otp' [form]=\"otpFormDirective\" [errDef]=\"{ \r\n required: 'Authcode is required.',\r\n minlength: 'Authcode should have 6 numbers.'\r\n }\"></app-error>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"verify()\">{{ \"profile.contact.details.button.verify\"| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-row>\r\n </form>\r\n </div>\r\n <div *ngIf=\"isME() && selected == 'contact-details' && displaySecurityQuestion == true\" style=\"margin-top: -90px;\">\r\n <form [formGroup]=\"securityQuestionForm\" #securityQuestionFormDirective=\"ngForm\">\r\n <ion-row>\r\n <div class=\"p-fluid p-formgrid\">\r\n <ion-row>\r\n <label for=\"securityQuestionAnswer\" [innerHTML]=\"'profile.contact.details.label.securityQuestion' | translate:{ securityQuestionToAsk: securityQuestionToAsk }\"></label>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col>\r\n \t<input pInputText formControlName=\"securityQuestionAnswer\" size=\"30\" maxlength=\"30\" title=\"Security Answer\" />\r\n <app-error [field]='securityQuestionAnswer' [form]=\"securityQuestionFormDirective\" [errDef]=\"{ \r\n required: 'Security Answer is required.'\r\n }\"></app-error>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"verifySecurityQuestion()\">{{ \"profile.contact.details.button.verify\"| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-row>\r\n </form>\r\n </div>\r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}</mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br /></ion-label>\r\n\r\n <div *ngIf=\"showSuccess\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"></ion-icon>\r\n <h1>{{ \"profile.banner.success\"| translate}}</h1>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showError\">\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-icon name=\"close-circle-outline\" style=\"font-size: 80px; color: var(--ion-color-danger);\"></ion-icon>\r\n <section *ngIf=\"isMS()\">\r\n <h1>{{ errorText ? errorText : ('profile.banner.request.process.failure' | translate) }}</h1>\r\n </section>\r\n <section *ngIf=\"!isMS()\">\r\n <h1>{{errorText ? errorText : ('profile.banner.request.process.failure' | translate) }}</h1>\r\n </section>\r\n </div>\r\n </div>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left\" size=\"12\" sizeXl=\"4\" sizeLg=\"4\" sizeMd=\"5\">\r\n <ion-button shape=\"round\" fill=\"outline\" type=\"button\" (click)=\"logout()\">{{ \"profile.button.logout\"| translate}}</ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\" size=\"12\" sizeXl=\"8\" sizeLg=\"8\" sizeMd=\"7\">\r\n <ion-button shape=\"round\" fill=\"outline\" type=\"reset\" (click)=\"cancel()\">{{ \"profile.button.close\"| translate}}</ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"save()\" *ngIf=\"!(showSuccess || showError) && selected!='proof-of-unemployment'\"\r\n [disabled]=\"isOtpSent== true || displaySecurityQuestion== true\">{{ \"profile.button.save\"| translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ng-template>\r\n</p-dialog>", styles: ["ion-col{margin-left:0!important}.Claimant-report-btn{margin-inline-end:3%}.proof-unemployment-btn-label{margin-bottom:3px}.error-banner{display:flex;align-items:center;background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:4px;padding:8px 12px;margin-bottom:10px;font-size:14px}.seperate-row td:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row td:first-child{border-right:none}.seperate-row td:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row td{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}\n"] }]
849
+ }], () => [{ type: i1.LoggerService }, { type: i2.LoginService }, { type: i3.ClaimantService }, { type: i4.BirtService }, { type: i5.ClaimService }, { type: i6.NavController }, { type: i7.SecurityService }, { type: i8.UtilService }, { type: i9.UntypedFormBuilder }, { type: i10.AddressValidationService }, { type: i6.AlertController }, { type: i6.ModalController }], { fb: [{
497
850
  type: ViewChild,
498
851
  args: ['fb']
499
852
  }], onCancel: [{
500
853
  type: Output
501
- }], error: [{
854
+ }], otpFormDirective: [{
855
+ type: ViewChild,
856
+ args: ['otpFormDirective', { static: false }]
857
+ }], securityQuestionFormDirective: [{
858
+ type: ViewChild,
859
+ args: ['securityQuestionFormDirective', { static: false }]
860
+ }], form: [{
861
+ type: Input
862
+ }], question: [{
863
+ type: Input
864
+ }], accepted: [{
502
865
  type: Output
503
866
  }] }); })();
504
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileComponent, { className: "ProfileComponent", filePath: "lib\\components\\profile\\profile.component.ts", lineNumber: 19 }); })();
505
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNFNUQsZ0NBQVUsY0FBQSxpQkFBQTtJQUdFLFlBQTZDOztJQUFBLCtCQUErQjtJQUFBLFlBQzVDO0lBQUEsaUJBQU8sRUFBQSxFQUFBO0lBRy9DLCtCQUFTLGNBQUEsd0JBQUE7SUFHbUIsK09BQXNCLHNMQUFrQixlQUFBLDRCQUFxQixDQUFBLElBQXZDO0lBQzlDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBUmIsZUFBNkM7SUFBN0MsbUZBQTZDO0lBQStCLGVBQzVDO0lBRDRDLG1FQUM1QztJQUtlLGVBQXVCO0lBQXZCLDRDQUF1Qiw0QkFBQTs7O0lBU2xGLDJCQUE2RztJQUNqRyxZQUNaO0lBQUEsaUJBQU07OztJQURNLGVBQ1o7SUFEWSx3RUFDWjs7OztJQUNBLGdEQUN1SztJQUEvRCx1TUFBVyxlQUFBLDJCQUFtQixDQUFBLElBQUMsZ01BQWUsZUFBQSx1QkFBZSxDQUFBLElBQTlCO0lBQ3ZJLGlCQUFtQjs7O0lBRjBDLDBDQUFvQiwwQkFBQSxvQkFBQSxvQkFBQSxjQUFBLGNBQUEsY0FBQSxjQUFBLGNBQUEsZUFBQSxlQUFBOzs7O0lBR2pG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RkEzVlUsZ0JBQWdCO29FQUFoQixnQkFBZ0I7Ozs7OztZQ2xCN0IsbUNBQzZDO1lBQ3pDLGtGQWdCYyxvREFBQSxvREFBQSxvREFBQSxxRUFBQSw0RUFBQSx3RkFBQTtZQW1EbEIsaUJBQVc7O1lBcEVQLHlDQUF5QjtZQUR5Qix3REFBcUU7WUFvQmpILGVBQWlDO1lBQWpDLDBEQUFpQztZQWdCakMsZUFBaUI7WUFBakIsc0NBQWlCO1lBT2pCLGVBQWU7WUFBZixvQ0FBZTtZQW9CSCxlQUE4QjtZQUE5QixtREFBOEI7WUFFeEIsZUFBK0I7WUFBL0Isb0RBQStCOzs7aUZEL0M5QyxnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxhQUFhO2dPQVFOLEVBQUU7a0JBQWxCLFNBQVM7bUJBQUMsSUFBSTtZQUdmLFFBQVE7a0JBRFAsTUFBTTtZQUlQLEtBQUs7a0JBREosTUFBTTs7a0ZBVEksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LXNlcnZpY2UvY2xhaW1hbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlclBhZ2UgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlL2Zvcm0tYnVpbGRlci9mb3JtLWJ1aWxkZXIucGFnZSc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVF1ZXN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvU2VjdXJpdHlRdWVzdGlvbk1vZGVsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRVc3BzUmVkaXJlY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC11c3BzLXJlZGlyZWN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMZXhpc05leGlzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xleGlzLW5leGlzL2xleGlzLm5leGlzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcHJvZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHNob3dTdWNjZXNzID0gZmFsc2U7XHJcbiAgc2hvd0Vycm9yID0gZmFsc2U7XHJcbiAgZXJyb3JUZXh0OiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgnZmInKSBmYjogRm9ybUJ1aWxkZXJQYWdlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcHVibGljIHByb2ZpbGVPcHRzID0gQ29tYm9PcHRpb24uQ0xBSU1BTlRfUFJPRklMRV9PUFRTO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWQgPSAncGVyc29uYWwtZGV0YWlscyc7XHJcblxyXG4gIHB1YmxpYyBpc1JldHVybmluZ1VzZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25QcmVmZXJlbmNlO1xyXG5cclxuICBwdWJsaWMgc3NuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1c3RvbWVyRXZlbnRUeXBlIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBhbGxTZWN1cml0eVF1ZXN0aW9ucztcclxuICBwdWJsaWMgdXNlcnNRdWVzQW5kQW5zO1xyXG4gIHB1YmxpYyBtYXBwZWRLZXlzUXVlc3Rpb25zRm9yVXNlcjtcclxuXHJcbiAgcHVibGljIGlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNQYXltZW50T3B0aW9uUXVlc3Rpb25zRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1BheW1lbnRPcHRpb25EaXZFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgaXNMZXhpc05leGlzUG9wdXBFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHVzcHNSZWRpcmVjdFVybDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgaXNCdXR0b25EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluVHdlbnR5Rm91ckhvdXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyB1c2VyUGVyc29uYWxEZXRhaWw6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbHM6IExvZ2luU2VydmljZSxcclxuICAgIHB1YmxpYyBuYXY6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwdWJsaWMgY3M6IENsYWltYW50U2VydmljZSxcclxuICAgIHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcclxuICAgIHB1YmxpYyB1cjogQ2xhaW1hbnRVc3BzUmVkaXJlY3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxuOiBMZXhpc05leGlzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID09PSBcImVzXCIpe1xyXG4gICAgICB0aGlzLnByb2ZpbGVPcHRzID0gQ29tYm9PcHRpb24uQ0xBSU1BTlRfUFJPRklMRV9PUFRTX0VTO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLnByb2ZpbGVPcHRzID0gQ29tYm9PcHRpb24uQ0xBSU1BTlRfUFJPRklMRV9PUFRTO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRVc2VyRGV0YWlscygpO1xyXG5cclxuICAgIC8vR2V0IHVzZXIgcGVyc29uYWwtZGV0YWlsc1xyXG4gICAgdGhpcy5nZXRQZXJzb25hbERldGFpbHMoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgY29uc3QgcERpYWxvZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdltyb2xlPWRpYWxvZ10nKTtcclxuICAgICAgcERpYWxvZz8uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknLCAncGRpYWxvZy10aXRsZScpOyBcclxuICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RpdiAuaW9uQnV0dG9uJykuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCAxMDAwKVxyXG4gICAgICBcclxuICB9XHJcblxyXG4gIFxyXG4gIGdldFVzZXJEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5jcy5nZXRVc2VyRGV0YWlsc0ZvckxvZ2dlZEluVXNlcigpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zc24gPSByZXM/LnNzbjtcclxuICAgICAgICB0aGlzLnZlcmlmaWNhdGlvblByZWZlcmVuY2UgPSByZXM7XHJcbiAgICAgICAgdGhpcy51c2VyTmFtZSA9IHJlcz8udXNlck5hbWU7XHJcbiAgICAgICAgdGhpcy5pc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluMjRIb3Vycyh0aGlzLnVzZXJOYW1lKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluMjRIb3Vycyhzc24gOiBTdHJpbmcpe1xyXG4gICAgdGhpcy5sbi5pc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluMjRIb3Vycyh0aGlzLnVzZXJOYW1lKS5zdWJzY3JpYmUoKHJlcyA6IGJvb2xlYW4pID0+IHtcclxuICAgICAgdGhpcy5pc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluVHdlbnR5Rm91ckhvdXJzID0gcmVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblZhbHVlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNob3dFcnJvciA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IGZhbHNlOyAgXHJcbiAgICBpZih0aGlzLnNlbGVjdGVkICE9ICdwYXltZW50LWRldGFpbHMnKXtcclxuICAgICAgdGhpcy5pc1BheW1lbnRPcHRpb25RdWVzdGlvbnNFbmFibGVkPXRydWU7XHJcbiAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLm9uQ2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBpZiggdGhpcy5mYi5pbnZhbGlkKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaXJ0eUl0ZW1zID0gdGhpcy5mYi5nZXREaXJ0eUl0ZW1zKCk7XHJcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xyXG5cclxuICAgLy8gdGhpcy5zYXZlUXVlc3Rpb25uYWlyZSgpOyAvLyBGaXJzdCBzYXZpbmcgdGhlIGNoYW5nZSBpbiB0aGUgZGJcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkID09PSAncGVyc29uYWwtZGV0YWlscycpIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWVDb250cm9scyA9IFsnZnN0bmFtZScsICdtaWRkbGVuYW1lJywgJ2xzdG5hbWUnXTtcclxuICAgICAgICAgIGlmIChkaXJ0eUl0ZW1zLnNvbWUoaXRlbSA9PiBuYW1lQ29udHJvbHMuaW5jbHVkZXMoaXRlbSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbWVyRXZlbnRUeXBlID0gJ25hbWUnOyAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCB0byBlbmFibGUgTGV4aXMgTmV4aXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRpcnR5SXRlbVdpdGhWYWx1ZXMgPSB0aGlzLmZiLmdldERpcnR5SXRlbXNXaXRoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGV4aXNOZXhpc1Byb29mZWRXaXRoaW5Ud2VudHlGb3VySG91cnMgJiYgdGhpcy52YWxpZGF0ZU5hbWVDaGFuZ2UoZGlydHlJdGVtV2l0aFZhbHVlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpOyAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVMZXhpc05leGlzKCk7XHJcbiAgICAgICAgICAgICAgICAgIH1lbHNleyAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgICAgICAgICAgICAgfSAgICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gQ29tbWVudCB0byBlbmFibGUgTGV4aXMgTmV4aXNcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMub25DYW5jZWwuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy50cmlnZ2VyVWRvbCgpO1xyXG4gICAgICAgICAgfWVsc2V7ICBcclxuICAgICAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTsgICAgICAgXHJcbiAgICAgICAgICAgICB0aGlzLnNhdmVRdWVzdGlvbm5haXJlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZCA9PT0gJ2NvbnRhY3QtZGV0YWlscycpIHsgIFxyXG4gICAgICAgIGNvbnN0IGNvbnRhY3RkZXRhaWxzQ29udHJvbHMgPSBbJ3Bob25lJ107ICAgICAgIFxyXG4gICAgICAgICAgIC8vIGRpcnR5SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGlydHlJdGVtcy5zb21lKGl0ZW0gPT4gY29udGFjdGRldGFpbHNDb250cm9scy5pbmNsdWRlcyhpdGVtKSkpIHtcclxuICAgICAgICAgIC8vICAgIGlmIChpdGVtID09PSAncGhvbmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lckV2ZW50VHlwZSA9ICdwaG9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaXNMZXhpc05leGlzUHJvb2ZlZFdpdGhpblR3ZW50eUZvdXJIb3Vycyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRBbGxTZWN1cml0eVF1ZXN0aW9ucygpO1xyXG4gICAgICAgICAgICAgICAgICB9ZWxzZXsgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfWVsc2V7ICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgIHRoaXMuc2F2ZVF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgICAgXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQgPT09ICdwYXltZW50LWRldGFpbHMnKSB7ICAgICAgICAgICBcclxuICAgICAgICAgICAgICB0aGlzLnNhdmVRdWVzdGlvbm5haXJlKCk7IFxyXG4gICAgICAgICAgICAgIC8vICB0aGlzLmlzUGF5bWVudE9wdGlvblF1ZXN0aW9uc0VuYWJsZWQ9ZmFsc2U7XHJcbiAgICAgICAgICAgICB0aGlzLmlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICB0aGlzLmlzQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgLy8gdGhpcy5pc1BheW1lbnRPcHRpb25EaXZFbmFibGVkPXRydWU7XHJcbiAgICB9XHJcbiAgICAgXHJcbiAgfVxyXG5cclxuICBvblNlY3VyaXR5UXVlc3Rpb25TdWNjZXNzKCl7XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkICE9ICdwYXltZW50LWRldGFpbHMnKXtcclxuICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICAgICB0aGlzLnNhdmVRdWVzdGlvbm5haXJlKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pc1BheW1lbnRPcHRpb25RdWVzdGlvbnNFbmFibGVkPXRydWU7XHJcbiAgICAvLyAgdGhpcy5pc1BheW1lbnRPcHRpb25EaXZFbmFibGVkPXRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgXHJcbiAgfVxyXG5cclxuICBzYXZlUXVlc3Rpb25uYWlyZSgpIHsgICAgXHJcbiAgICB0aGlzLmZiLnN1Ym1pdFF1ZXN0aW9ubmFpcmUoKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFNlY3VyaXR5UXVlc3Rpb25zKCkge1xyXG4gICAgdGhpcy5jcy5nZXRBbGxTZWN1cml0eVF1ZXN0aW9uKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hbGxTZWN1cml0eVF1ZXN0aW9ucyA9IHJlcztcclxuICAgICAgICB0aGlzLmxvYWRTZWN1cml0eVF1ZXN0aW9uc09mQ2xhaW1hbnQocmVzKTtcclxuICAgICAgIC8vIHRoaXMuc2F2ZVF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge31cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2FkU2VjdXJpdHlRdWVzdGlvbnNPZkNsYWltYW50KFxyXG4gICAgYWxsUXVlc3Rpb25XaXRoS2V5czogU2VjdXJpdHlRdWVzdGlvbk1vZGVsW11cclxuICApIHtcclxuICAgIHZhciB1c2VyTmFtZSA9IHRoaXMudXNlck5hbWU7XHJcbiAgICB0aGlzLnV0aWwuZ2V0PFVzZXJNb2RlbD4oYHVzZXIvc2VjdXJpdHkvJHt1c2VyTmFtZX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXJzUXVlc0FuZEFucyA9IHJlcztcclxuICAgICAgICAvLyBJbml0aWFsaXplIG1hcHBlZEtleXNRdWVzdGlvbnNGb3JVc2VyXHJcbiAgICAgICAgdGhpcy5tYXBwZWRLZXlzUXVlc3Rpb25zRm9yVXNlciA9IFtdO1xyXG4gICAgICAgIC8vIExpc3Qgb2YgcG9zc2libGUgc2VjdXJpdHkgcXVlc3Rpb24gZmllbGRzXHJcbiAgICAgICAgY29uc3Qgc2VjdXJpdHlRdWVzdGlvbkZpZWxkcyA9IFtcclxuICAgICAgICAgICdzZWN1cml0eVF1ZXN0aW9uJyxcclxuICAgICAgICAgICdzZWN1cml0eVF1ZXN0aW9uMicsXHJcbiAgICAgICAgICAnc2VjdXJpdHlRdWVzdGlvbjMnLFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIGZvciBxdWljayBsb29rdXAgb2YgcXVlc3Rpb24gZGVzY3JpcHRpb25zXHJcbiAgICAgICAgY29uc3QgcXVlc3Rpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYWxsUXVlc3Rpb25XaXRoS2V5cykge1xyXG4gICAgICAgICAgcXVlc3Rpb25NYXAuc2V0KGl0ZW0ua2V5LCBpdGVtLmRlc2NyaXB0aW9uIHx8ICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIHNlY3VyaXR5IHF1ZXN0aW9uIGZpZWxkXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBzZWN1cml0eVF1ZXN0aW9uRmllbGRzKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy51c2Vyc1F1ZXNBbmRBbnNbZmllbGRdO1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZFZhbHVlICYmIHF1ZXN0aW9uTWFwLmhhcyhmaWVsZFZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1hcHBlZEtleXNRdWVzdGlvbnNGb3JVc2VyLnB1c2goe1xyXG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiBxdWVzdGlvbk1hcC5nZXQoZmllbGRWYWx1ZSksXHJcbiAgICAgICAgICAgICAgcXVlc3Rpb25LZXk6IGZpZWxkVmFsdWUsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgXHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHNlY3VyaXR5IHF1ZXN0aW9uczonLCBlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZW5hYmxlTGV4aXNOZXhpcygpIHtcclxuICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICB0aGlzLmlzQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pc1NlY3VyaXR5UXVlc3Rpb25FbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmxuLmlzTGV4aXNOZXhpc0lkUHJvb2ZpbmdFbmFibGVkV2l0aFVzZXJJZCh0aGlzLnVzZXJOYW1lKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAvLyBJZiBsZXhpcy1uZXhpcyBpZCBwcm9vZmluZyBpcyBlbmFibGVkXHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIlRoZSBjbGFpbWFudCBhY2NvdW50IHdpdGggdXNlciBuYW1lXCIgKyB0aGlzLnVzZXJOYW1lICsgXCIgaGFzIGJlZW4gYmxvY2tlZC4gUGxlYXNlIGNvbnRhY3QgS0RPTC5cIilcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvL3RoaXMub25DYW5jZWwuZW1pdCgpO1xyXG4gICAgLy8gdXNwcyByZWRpcmVjdCBjYWxsXHJcbiAgICAvL3RoaXMudHJpZ2dlclVkb2woKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVZG9sKCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIHRoaXMudXNlck5hbWUpO1xyXG4gICAgdGhpcy5scy5sb2dvdXQoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvdXNwcy1yZWRpcmVjdCcsIFwiXCJdKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFcnJvcihlcnJvcikge1xyXG4gICAgaWYgKGVycm9yPy5lcnJvckNvZGUgPT0gJzQyMicpIHtcclxuICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnJvci5tc2dbMF07XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzdWNjZXNzKG1zZykge1xyXG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJy9sYW5kaW5nJyk7XHJcbiAgICB0aGlzLmxzLmxvZ291dCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGVyc29uYWxEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5jcy5nZXRVc2VyUGVyc29uYWxEZXRhaWxzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMudXNlclBlcnNvbmFsRGV0YWlsID0gcmVzO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKFwiRmFpbGVkIHRvIGdldCB0aGUgdXNlciBpbmZvLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgLy8gTG9nIHRoZSBlcnJvciBmb3IgZGVidWdnaW5nIHB1cnBvc2VzXHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdXNlciBkZXRhaWxzOicsIGVycik7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGZldGNoaW5nIHVzZXIgaW5mb3JtYXRpb24uXCIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VjUXVlc3Rpb25zUGF5bWVudE9wdGlvbnMoKXtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkID09PSAncGF5bWVudC1kZXRhaWxzJykgeyAgXHJcbiAgICAgICAgdGhpcy5pc1BheW1lbnRPcHRpb25EaXZFbmFibGVkPWZhbHNlOyAgIFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21lckV2ZW50VHlwZSA9ICdhY2NvdW50JztcclxuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7ICAgICBcclxuICAgICAgICAgLy8gdGhpcy5pc0xleGlzTmV4aXNQcm9vZmVkV2l0aGluVHdlbnR5Rm91ckhvdXJzPXRydWU7ICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBpZih0aGlzLmlzTGV4aXNOZXhpc1Byb29mZWRXaXRoaW5Ud2VudHlGb3VySG91cnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QWxsU2VjdXJpdHlRdWVzdGlvbnMoKTtcclxuICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgLy90aGlzLnNhdmVRdWVzdGlvbm5haXJlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1BheW1lbnRPcHRpb25EaXZFbmFibGVkPWZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQYXltZW50T3B0aW9uUXVlc3Rpb25zRW5hYmxlZD10cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbn1cclxuXHJcbiAgdmFsaWRhdGVOYW1lQ2hhbmdlKGZvcm1EYXRhOiBBcnJheTx7IGNvbnRyb2xOYW1lOiBzdHJpbmcsIGNvbnRyb2xWYWx1ZTogYW55IH0+KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXlzVG9DaGVjayA9IFsnZnN0bmFtZScsICdtaWRkbGVuYW1lJywgJ2xzdG5hbWUnXTtcclxuICBcclxuICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZm9ybSBkYXRhIGFuZCBjaGVjayBpZiB0aGUgY29udHJvbCBoYXMgY2hhbmdlZFxyXG4gICAgZm9yIChsZXQgaXRlbSBvZiBmb3JtRGF0YSkge1xyXG4gICAgICBjb25zdCBjb250cm9sTmFtZSA9IGl0ZW0uY29udHJvbE5hbWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgXHJcbiAgICAgIC8vIEZpbmQgdGhlIG1hdGNoaW5nIGtleSBpbiB0aGUgcmVzcG9uc2UgZGF0YVxyXG4gICAgICBjb25zdCBtYXRjaGVkS2V5ID0ga2V5c1RvQ2hlY2suZmluZChrZXkgPT4ga2V5LnRvTG93ZXJDYXNlKCkgPT09IGNvbnRyb2xOYW1lKTtcclxuICBcclxuICAgICAgaWYgKG1hdGNoZWRLZXkpIHtcclxuICAgICAgICAvLyBSZXRyaWV2ZSB0aGUgY3VycmVudCB2YWx1ZSBmcm9tIHRoZSB1c2VyIGRhdGEgYW5kIHRoZSBmb3JtIHZhbHVlXHJcbiAgICAgICAgY29uc3QgdXNlclBlcnNvblZhbHVlID0gdGhpcy51c2VyUGVyc29uYWxEZXRhaWwuZGF0YVttYXRjaGVkS2V5XTtcclxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbFZhbHVlID0gaXRlbS5jb250cm9sVmFsdWU7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gQ2hlY2sgaWYgdmFsdWVzIGFyZSBudWxsLCB1bmRlZmluZWQsIG9yIGVtcHR5LCBvciBpZiB0aGV5IGRpZmZlciAoaWdub3JpbmcgY2FzZSlcclxuICAgICAgICBjb25zdCB1c2VySXNFbXB0eSA9IHRoaXMuaXNOdWxsT3JFbXB0eSh1c2VyUGVyc29uVmFsdWUpO1xyXG4gICAgICAgIGNvbnN0IGZvcm1Jc0VtcHR5ID0gdGhpcy5pc051bGxPckVtcHR5KGZvcm1Db250cm9sVmFsdWUpO1xyXG5cclxuICAgICAgICAvLyBDYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gb2YgdGhlIHZhbHVlc1xyXG4gICAgICAgIGlmICgodXNlcklzRW1wdHkgJiYgIWZvcm1Jc0VtcHR5KSB8fCAoIXVzZXJJc0VtcHR5ICYmIGZvcm1Jc0VtcHR5KSB8fFxyXG4gICAgICAgICAgICAodXNlclBlcnNvblZhbHVlICYmIGZvcm1Db250cm9sVmFsdWUgJiYgdXNlclBlcnNvblZhbHVlLnRvTG93ZXJDYXNlKCkgIT09IGZvcm1Db250cm9sVmFsdWUudG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgIC8vIElmIHZhbHVlcyBkaWZmZXIgKGlnbm9yaW5nIGNhc2UpLCByZXR1cm4gdHJ1ZSAoY2hhbmdlIGRldGVjdGVkKVxyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyBJZiBubyBkaWZmZXJlbmNlcyB3ZXJlIGZvdW5kLCByZXR1cm4gZmFsc2UgKG5vIGNoYW5nZXMpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBVdGlsaXR5IG1ldGhvZCB0byBjaGVjayBmb3IgbnVsbCx1bmRlZmluZWQgIG9yIGVtcHR5IHN0cmluZ1xyXG4gIGlzTnVsbE9yRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSBcIlwiIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBcclxuICBcclxufVxyXG4iLCI8cC1kaWFsb2cgdmlzaWJsZT1cInRydWVcIiBtb2RhbD1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBbYnJlYWtwb2ludHNdPVwieycxMDI0cHgnOiAnNzV2dycsICc3NjhweCc6ICc4NXZ3JywgJzY0MHB4JzogJzEwMHZ3J31cIlxyXG4gICAgW3N0eWxlXT1cInt3aWR0aDogJzYwdncnfVwiIHBvc2l0aW9uPVwidG9wXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPGlvbi1ncmlkPlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdCBoZWFkaW5nXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDI0cHg7XCIgaWQ9XCJwZGlhbG9nLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snaGVhZGVyLmFjY291bnQueW91ci5hY2NvdW50JyB8IHRyYW5zbGF0ZX19PHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE2cHg7XCI+KENJRFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2xzLmdldFVzZXIoKS5jbGFpbWFudElkfX0pPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHN0eWxlQ2xhc3M9XCJpb24tcGFkZGluZy1zdGFydFwiIFtvcHRpb25zXT1cInByb2ZpbGVPcHRzXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiIChvbk9wdGlvbkNsaWNrKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPiBcclxuIFxyXG4gICAgPGRpdiAqbmdJZj1cIiEoc2hvd1N1Y2Nlc3MgfHwgc2hvd0Vycm9yKVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC04cHg7XCI+XHJcbiAgICAgICAgPGRpdiAgKm5nSWY9XCJzZWxlY3RlZCA9PSAncGF5bWVudC1kZXRhaWxzJyAmJiAhaXNQYXltZW50T3B0aW9uUXVlc3Rpb25zRW5hYmxlZCAmJiBpc1BheW1lbnRPcHRpb25EaXZFbmFibGVkXCI+ICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICB7eyBnZXRTZWNRdWVzdGlvbnNQYXltZW50T3B0aW9ucygpIH19ICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ3BlcnNvbmFsLWRldGFpbHMnXCIgW2Zsb3dLZXldPVwic2VsZWN0ZWRcIiBbc2hvd09ubHlRdWVzdGlvbl09XCJ0cnVlXCIgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiIFtoaWRlRm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbc2l6ZVhzXT1cIjEyXCIgW3NpemVTbV09XCIxMlwiIFtzaXplTWRdPVwiMTJcIiBbc2l6ZUxnXT1cIjEyXCIgW3NpemVYbF09XCIxMlwiIFtvZmZzZXRYbF09XCIwXCIgW29mZnNldExnXT1cIjBcIiAob25FcnJvcik9XCJoYW5kbGVFcnJvcigkZXZlbnQpXCIgKG9uQ29tcGxldGUpPVwic3VjY2VzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZm9ybS1idWlsZGVyPlxyXG4gICAgICAgIDxhcHAtZm9ybS1idWlsZGVyICNmYiAqbmdJZj1cInNlbGVjdGVkID09ICdjb250YWN0LWRldGFpbHMnXCIgW2Zsb3dLZXldPVwic2VsZWN0ZWRcIiBbc2hvd09ubHlRdWVzdGlvbl09XCJ0cnVlXCIgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiIFtoaWRlRm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbc2l6ZVhzXT1cIjEyXCIgW3NpemVTbV09XCIxMlwiIFtzaXplTWRdPVwiMTJcIiBbc2l6ZUxnXT1cIjEyXCIgW3NpemVYbF09XCIxMlwiIFtvZmZzZXRYbF09XCIwXCIgW29mZnNldExnXT1cIjBcIiAob25FcnJvcik9XCJoYW5kbGVFcnJvcigkZXZlbnQpXCIgKG9uQ29tcGxldGUpPVwic3VjY2VzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZm9ybS1idWlsZGVyPlxyXG4gICAgICAgIDxkaXYgICpuZ0lmPVwiKGlzUGF5bWVudE9wdGlvblF1ZXN0aW9uc0VuYWJsZWQpXCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ3BheW1lbnQtZGV0YWlscydcIiBbZmxvd0tleV09XCJzZWxlY3RlZFwiIFtzaG93T25seVF1ZXN0aW9uXT1cInRydWVcIiBbaGlkZUhlYWRlcl09XCJ0cnVlXCIgW2hpZGVGb290ZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3NpemVYc109XCIxMlwiIFtzaXplU21dPVwiMTJcIiBbc2l6ZU1kXT1cIjEyXCIgW3NpemVMZ109XCIxMlwiIFtzaXplWGxdPVwiMTJcIiBbb2Zmc2V0WGxdPVwiMFwiIFtvZmZzZXRMZ109XCIwXCIgKG9uRXJyb3IpPVwiaGFuZGxlRXJyb3IoJGV2ZW50KVwiIChvbkNvbXBsZXRlKT1cInN1Y2Nlc3MoJGV2ZW50KVwiPlxyXG4gICAgPC9hcHAtZm9ybS1idWlsZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93U3VjY2Vzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIHN0eWxlPVwiZm9udC1zaXplOiA4MHB4OyBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKTtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aDE+e3snaGVhZGVyLmFjY291bnQuc2F2ZWQuc3VjY2Vzc2Z1bGx5JyB8IHRyYW5zbGF0ZX19PC9oMT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RXJyb3JcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLWNpcmNsZS1vdXRsaW5lXCIgc3R5bGU9XCJmb250LXNpemU6IDgwcHg7IGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aDE+e3tlcnJvclRleHQgPyBlcnJvclRleHQgOiAnaGVhZGVyLmFjY291bnQuY291bGQubm90LnByb2Nlc3MnIHwgdHJhbnNsYXRlfX08L2gxPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCIgc2l6ZT1cIjEyXCIgc2l6ZVhsPVwiNFwiIHNpemVMZz1cIjRcIiBzaXplTWQ9XCI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0J1dHRvbkRpc2FibGVkXCIgKGNsaWNrKT1cImxvZ291dCgpXCIgKGtleWRvd24uZW50ZXIpPVwibG9nb3V0KClcIiBjbGFzcz1cImlvbkJ1dHRvblwiPnt7J2hlYWRlci5hY2NvdW50LmxvZ291dCcgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIiBzaXplPVwiMTJcIiBzaXplWGw9XCI4XCIgc2l6ZUxnPVwiOFwiIHNpemVNZD1cIjdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiB0eXBlPVwicmVzZXRcIiBbZGlzYWJsZWRdPVwiaXNCdXR0b25EaXNhYmxlZFwiIChjbGljayk9XCJjYW5jZWwoKVwiIChrZXlkb3duLmVudGVyKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJpb25CdXR0b25cIj57eydoZWFkZXIuYWNjb3VudC5jbG9zZScgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiICBbZGlzYWJsZWRdPVwiaXNCdXR0b25EaXNhYmxlZFwiIChjbGljayk9XCJzYXZlKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzYXZlKClcIiAqbmdJZj1cIiEoc2hvd1N1Y2Nlc3MgfHwgc2hvd0Vycm9yKVwiIGNsYXNzPVwiaW9uQnV0dG9uXCI+e3snaGVhZGVyLmFjY291bnQuc2F2ZScgfCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPGFwcC1sZXhpcy1uZXhpcyAqbmdJZj1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFt1c2VyTmFtZV0gPSAndGhpcy51c2VyTmFtZScgW2N1c3RvbWVyRXZlbnRUeXBlXSA9ICd0aGlzLmN1c3RvbWVyRXZlbnRUeXBlJyAoc3VjY2Vzcyk9XCJvblNlY3VyaXR5UXVlc3Rpb25TdWNjZXNzKClcIiAoZXJyb3IpPVwidHJpZ2dlclVkb2woKVwiICh1c3BzKT1cInRyaWdnZXJVZG9sKClcIj48L2FwcC1sZXhpcy1uZXhpcz5cclxuICAgIDwhLS0gVW5jb21tZW50IHRvIGVuYWJsZSBsZXhpcyAtIG5leGlzIC0tPlxyXG4gICAgPGFwcC1zZWN1cml0eS1xdWVzdGlvbiAqbmdJZj1cImlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWRcIiBbZGlzcGxheV09XCJpc1NlY3VyaXR5UXVlc3Rpb25FbmFibGVkXCIgW3F1ZXN0aW9uc0FuZEFuc3dlcnNdPVwidXNlcnNRdWVzQW5kQW5zXCIgW3F1ZXN0aW9uc0FuZEtleXNPZlVzZXJdPVwibWFwcGVkS2V5c1F1ZXN0aW9uc0ZvclVzZXJcIiAoc3VjY2Vzcyk9XCJvblNlY3VyaXR5UXVlc3Rpb25TdWNjZXNzKClcIiAoY2xlYXIpPVwiZW5hYmxlTGV4aXNOZXhpcygpXCI+PC9hcHAtc2VjdXJpdHktcXVlc3Rpb24+XHJcbiAgICA8IS0tIENvbW1lbnQgd2hlbiBsZXhpcyBuZXhpcyBpcyBlbmFibGVkIC0tPlxyXG4gICAgPCEtLSA8YXBwLXNlY3VyaXR5LXF1ZXN0aW9uICpuZ0lmPVwiaXNTZWN1cml0eVF1ZXN0aW9uRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzU2VjdXJpdHlRdWVzdGlvbkVuYWJsZWRcIiBbcXVlc3Rpb25zQW5kQW5zd2Vyc109XCJ1c2Vyc1F1ZXNBbmRBbnNcIiBbcXVlc3Rpb25zQW5kS2V5c09mVXNlcl09XCJtYXBwZWRLZXlzUXVlc3Rpb25zRm9yVXNlclwiIChzdWNjZXNzKT1cIm9uU2VjdXJpdHlRdWVzdGlvblN1Y2Nlc3MoKVwiIChjbGVhcik9XCJ0cmlnZ2VyVWRvbCgpXCI+PC9hcHAtc2VjdXJpdHktcXVlc3Rpb24+IC0tPlxyXG4gICBcclxuPC9wLWRpYWxvZz4iXX0=
867
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileComponent, { className: "ProfileComponent", filePath: "lib\\components\\profile\\profile.component.ts", lineNumber: 31 }); })();
868
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBZ0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU96RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1A3RCwwQ0FDdUY7SUFBL0Qsb1FBQXNCLDBNQUFrQixlQUFBLDZCQUFxQixDQUFBLElBQXZDO0lBQzlDLGlCQUFpQjs7O0lBRjhDLDZDQUF1Qiw2QkFBQTs7OztJQUd0RiwwQ0FDdUY7SUFBL0QscVFBQXNCLDJNQUFrQixlQUFBLDZCQUFxQixDQUFBLElBQXZDO0lBQzlDLGlCQUFpQjs7O0lBRjZDLGdEQUEwQiw2QkFBQTs7O0lBWnBHLGdDQUFVLGNBQUEsaUJBQUE7SUFHRSxZQUErQjs7SUFBQSwrQkFBK0I7SUFBQSxZQUM5QjtJQUFBLGlCQUFPLEVBQUEsRUFBQTtJQUcvQywrQkFBUyxjQUFBO0lBRUQsc0dB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dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXJQYWdlIH0gZnJvbSAnLi4vcXVlc3Rpb25uYWlyZS9mb3JtLWJ1aWxkZXIvZm9ybS1idWlsZGVyLnBhZ2UnO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LXNlcnZpY2UvY2xhaW1hbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN1cml0eS1zZXJ2aWNlL3NlY3VyaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbGVtZW50c01vZGVsJztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcbmltcG9ydCB7IEJpcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmlydC1zZXJ2aWNlL2JpcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDbGFpbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbXMvY2xhaW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZlQ2xhaW1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BY3RpdmVDbGFpbU1vZGVsJzsgXG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hZGRyZXNzLXZhbGlkYXRpb24tc2VydmljZS9hZGRyZXNzLXZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBZGRyZXNzUmVjb21tZW5kYXRpb25Nb2RlbCBhcyBBZGRyUmVjfSBmcm9tICcuLi8uLi9tb2RlbHMvYWRkcmVzc1ZhbGlkYXRpb24vQWRkcmVzc1JlY29tbWVuZGF0aW9uTW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy1wb3B1cC9hZGRyZXNzLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvblJlcXVlc3RDb21wb25lbnRNb2RlbCBhcyBBZGRyUmVxfSBmcm9tICcuLi8uLi9tb2RlbHMvYWRkcmVzc1ZhbGlkYXRpb24vQWRkcmVzc1ZhbGlkYXRpb25SZXF1ZXN0Q29tcG9uZW50TW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25SZXNwb25zZUNvbXBvbmVudE1vZGVsIGFzIEFkZHJSZXN9IGZyb20gJy4uLy4uL21vZGVscy9hZGRyZXNzVmFsaWRhdGlvbi9BZGRyZXNzVmFsaWRhdGlvblJlc3BvbnNlQ29tcG9uZW50TW9kZWwnO1xuaW1wb3J0IHsgU2VjdXJpdHlRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1NlY3VyaXR5UXVlc3Rpb25BbnN3ZXJNb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9maWxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2hvd1N1Y2Nlc3MgPSBmYWxzZTtcbiAgc2hvd0Vycm9yID0gZmFsc2U7XG4gIHBoYXNlVHdvUHJvb2ZPZlVJVmlldyA9IExpYkNvbnN0YW50cy5QaGFzZVR3b1Byb29mT2ZVSVZpZXc7XG4gIGRvd25sb2FkU3RhdHVzID0gXCJcIjtcbiAgZG9jRmlsZUxpbms6c3RyaW5nID0gXCJhc3NldHMvaW1hZ2VzL3NhbXBsZURvYy5wbmdcIjtcbiAgZXJyb3JUZXh0OiBzdHJpbmc7XG4gIGNsYWltYW50QWRkcmVzc0lkOiBudW1iZXI9IDA7XG4gIGxhc3RWYWxpZGF0ZWRBZGRyZXNzOiBhbnkgPSBudWxsO1xuICBsYXN0VmFsaWRhdGVSZXN1bHQ6IHN0cmluZyA9Jyc7XG4gIGF0dGVtcHRDb3VudDogbnVtYmVyID0gMDtcbiAgaXNBZGRyZXNzVmFsaWRhdGVkOiBzdHJpbmcgPSAnMCc7XG4gIHNob3dJbmxpbmVFcnJvciA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdmYicpIGZiOiBGb3JtQnVpbGRlclBhZ2VcblxuICBAT3V0cHV0KClcbiAgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwcm9maWxlT3B0cyA9IENvbWJvT3B0aW9uLkNMQUlNQU5UX1BST0ZJTEVfT1BUUztcblxuICBwdWJsaWMgcHJvZmlsZU9wdHNJVlIgPSBDb21ib09wdGlvbi5DTEFJTUFOVF9QUk9GSUxFX09QVFNfSVZSO1xuXG4gIHB1YmxpYyBzZWxlY3RlZCA9ICdwZXJzb25hbC1kZXRhaWxzJztcblxuICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBpc090cFNlbnQ6IGJvb2xlYW47XG5cbiAgcHVibGljIHN1Y2Nlc3NEdGxzO1xuXG4gIHB1YmxpYyBlcnJvckR0bHM7XG5cbiAgQFZpZXdDaGlsZCgnb3RwRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuXG4gIHB1YmxpYyBvdHBGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XG5cbiAgcHVibGljIG90cEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHVibGljIG90cENvZGU7XG5cbiAgcHVibGljIG90cFZlcmlmaWVkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBkaXNwbGF5U2VjdXJpdHlRdWVzdGlvbjogYm9vbGVhbjtcblxuICBwdWJsaWMgc2VjdXJpdHlRdWVzdGlvbkZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHVibGljIHNlY3VyaXR5UXVlc3Rpb25Ub0FzaztcblxuICBwdWJsaWMgc2VjdXJpdHlBbnN3ZXI7XG5cbiAgcHVibGljIHNlY3VyaXR5UXVlc3Rpb25WZXJpZmllZDogYm9vbGVhbjtcblxuICBwdWJsaWMgcmFuZG9tU2VjdXJpdHlRdWVzdGlvbk1vZGVsOiBTZWN1cml0eVF1ZXN0aW9uQW5zd2VyTW9kZWw7XG5cbiAgcHVibGljIGZhaWxDb3VudGVyOiBudW1iZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlY3VyaXR5UXVlc3Rpb25Gb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG5cbiAgcHVibGljIHNlY3VyaXR5UXVlc3Rpb25Gb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XG5cbiAgcHVibGljIHByb29mT2ZVbmVtcGxveW1lbnREYXRhOmFueTtcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcXVlc3Rpb246IEVsZW1lbnRzTW9kZWw7XG4gIEBPdXRwdXQoKSBhY2NlcHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgbGlzdE9mQWN0aXZlQ2xhaW06QWN0aXZlQ2xhaW1Nb2RlbFtdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLCBwdWJsaWMgY3M6IENsYWltYW50U2VydmljZSwgcHVibGljIGJzOiBCaXJ0U2VydmljZSwgcHVibGljIGNsYWltU2VydmljZTogQ2xhaW1TZXJ2aWNlLFxuICAgIHB1YmxpYyBuYXY6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyBzczogU2VjdXJpdHlTZXJ2aWNlLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBmb3JtYnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgYWRkclN2YyAgOiBBZGRyZXNzVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydEN0cmwgOiBBbGVydENvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBtb2RhbEN0cmw6IE1vZGFsQ29udHJvbGxlcikge1xuICAgICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudCkge1xuICAgIHRoaXMuc2hvd0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IGZhbHNlO1xuICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSBcIlwiO1xuICAgIGlmKHRoaXMuc2VsZWN0ZWQ9PT0ncHJvb2Ytb2YtdW5lbXBsb3ltZW50Jyl7XG4gICAgICB0aGlzLmdldExpc3RPZkFjdGl2ZUNsYWltKCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgaW5pdGlsaXplRm9ybSgpIHtcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZvcm1idWlsZGVyLmdyb3VwKHtcbiAgICAgICdvdHAnOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDYpXV0sXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXplU2VjdXJpdHlRdWVzdGlvbkZvcm0oKSB7XG5cdCAgdGhpcy5zZWN1cml0eVF1ZXN0aW9uRm9ybSA9IHRoaXMuZm9ybWJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgJ3NlY3VyaXR5UXVlc3Rpb25BbnN3ZXInOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBvdHAoKSB7XG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xuICB9XG5cbiAgZ2V0IHNlY3VyaXR5UXVlc3Rpb25BbnN3ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VjdXJpdHlRdWVzdGlvbkZvcm0uZ2V0KCdzZWN1cml0eVF1ZXN0aW9uQW5zd2VyJyk7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICh0aGlzLmlzTVMoKSkge1xuICAgICAgaWYgKHRoaXMub3RwVmVyaWZpZWQpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJPVFAgVkVSSUZJRUQgQU5EIFNBVklOR1wiKTtcbiAgICAgICAgdGhpcy5mYi5zdWJtaXRRdWVzdGlvbm5haXJlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWQgPT0gJ2NvbnRhY3QtZGV0YWlscycpIHtcbiAgICAgICAgbGV0IGZvcm1EYXRhID0gdGhpcy5mYi5xdWVzdGlvbm5haXJlLnF1ZXN0aW9ubmFpcmUucXVlc3Rpb25uYWlyZUZvcm0udmFsdWU7XG4gICAgICAgIC8vQ29kZSBmb3IgdGhlIGFkZHJlc3MgdmFsaWRhdGlvbiBwb3B1cFxuICAgICAgICAvL1xuICAgICAgICAvLyBjb25zdCBmb3JtID0gdGhpcy5mYi5xdWVzdGlvbm5haXJlLnF1ZXN0aW9ubmFpcmUucXVlc3Rpb25uYWlyZUZvcm07XG4gICAgICAgIC8vIGNvbnN0IHYgPSBmb3JtLnZhbHVlO1xuXG4gICAgICAgIC8vIC8vRGV0ZXJtaW5lIEN1cnJlbnQgYWRkcmVzcyBhbmQgdHlwZSBiYXNlZCBvbiB0aGUgYW5zd2VyIHRvIG1haWxpbmcgYWRkcmVzcyBxdWVzdGlvblxuICAgICAgICAvLyBjb25zdCBjdXJyZW50VHlwZSA9IHYuZGlmZm1haWxhZGRyZXNzID09ICdZJyA/ICdtYWlsJyA6ICdyZXMnO1xuICAgICAgICAvLyBjb25zdCBjdXJyZW50QWRkcmVzcyA9IGN1cnJlbnRUeXBlID09ICdtYWlsJyA/IHYubWFpbEFkZHJlc3MgOiB2LnJlc0FkcmVzcztcbiAgICAgICAgLy8gdGhpcy5zaG93SW5saW5lRXJyb3IgPSBmYWxzZVxuICAgICAgICAvLyAvL2NoZWNrIGlmIGFkZHJlc3MgY2hhbmdlZCBzaW5jZSBsYXN0IHZhbGlkYXRpb24gYW5kIGlmIG5vIGNoYW5nZSBjb250aW51ZSB3aXRob3V0IGludGVycnVwdGlvblxuICAgICAgICAvLyBpZiAodGhpcy5sYXN0VmFsaWRhdGVkQWRkcmVzcyAhPSBudWxsKSB7XG4gICAgICAgIC8vICAgY29uc3QgbGFzdEFkZHJlc3NUeXBlID0gdGhpcy5sYXN0VmFsaWRhdGVkQWRkcmVzcy5kaWZmbWFpbGFkZHJlc3MgPT0gJ1knID8gJ21haWwnIDogJ3Jlcyc7XG5cbiAgICAgICAgLy8gICBpZiAobGFzdEFkZHJlc3NUeXBlID09IGN1cnJlbnRUeXBlXG4gICAgICAgIC8vICAgICAmJiAhdGhpcy5pc0FkZHJlc3NDaGFuZ2VkKGN1cnJlbnRBZGRyZXNzLCB0aGlzLmxhc3RWYWxpZGF0ZWRBZGRyZXNzKSkge1xuICAgICAgICAvLyAgICAgdGhpcy5pc0FkZHJlc3NWYWxpZGF0ZWQgPSAnMSc7XG4gICAgICAgIC8vICAgICByZXR1cm4gdGhpcy5maW5pc2hBbmRTYXZlKGZvcm0udmFsdWUsIHRoaXMuaXNBZGRyZXNzVmFsaWRhdGVkKTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gLy9TdGFydGluZyB0aGUgcHJvY2VzcyB0byB2YWxpZGF0ZSB0aGUgYWRkcmVzc1xuICAgICAgICAvLyBjb25zdCByZXR1cm5Db21wb25lbnQgPSBhd2FpdCB0aGlzLmFkZHJTdmMudmFsaWRhdGVBZGRyZXNzUHJvY2VzcyhjdXJyZW50VHlwZSwgY3VycmVudEFkZHJlc3MsIGZvcm0pO1xuICAgICAgICAvLyB0aGlzLmxhc3RWYWxpZGF0ZWRBZGRyZXNzID0gcmV0dXJuQ29tcG9uZW50Lmxhc3RWYWxpZGF0ZWRBZGRyZXNzXG5cbiAgICAgICAgLy8gaWYgKHJldHVybkNvbXBvbmVudC5zaG93SW5saW5lRXJyb3IgPT0gdHJ1ZSkge1xuICAgICAgICAvLyAgIHRoaXMuZXJyb3JUZXh0ID0gcmV0dXJuQ29tcG9uZW50LmVycm9yVGV4dDtcbiAgICAgICAgLy8gICB0aGlzLnNob3dJbmxpbmVFcnJvciA9IHJldHVybkNvbXBvbmVudC5zaG93SW5saW5lRXJyb3I7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKHJldHVybkNvbXBvbmVudC5zaG93UG9wdXAgPT0gdHJ1ZSkge1xuICAgICAgICAvLyAgIGF3YWl0IHRoaXMuaGFuZGxlUmVjb21tZW5kYXRpb25zKHJldHVybkNvbXBvbmVudC5hZGRyZXNzVmFsaWRhdGlvblJlc3BvbnNlLCByZXR1cm5Db21wb25lbnQuYWRkcmVzc1ZhbGlkYXRpb25SZXF1ZXN0LCB2KTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBpZiAocmV0dXJuQ29tcG9uZW50LnNob3dJbmxpbmVFcnJvciA9PSBmYWxzZSAmJiByZXR1cm5Db21wb25lbnQuc2hvd1BvcHVwID09IGZhbHNlKSB7XG4gICAgICAgIC8vICAgdGhpcy5maW5pc2hBbmRTYXZlKGZvcm0udmFsdWUsIHJldHVybkNvbXBvbmVudC5pc0FkZHJlc3NWYWxpZGF0ZWQpO1xuICAgICAgICAvLyB9XG4gICAgICAgIGlmICgoZm9ybURhdGFbJ3Bob25lJ10gPT0gZm9ybURhdGFbJ2hpZE9yaWdpbmFsUGhvbmUnXSkgJiYgKGZvcm1EYXRhWydlbWFpbCddID09IGZvcm1EYXRhWydoaWRPcmlnaW5hbEVtYWlsJ10pKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJQaG9uZSBvciBFbWFpbCBOb3QgQ2hhbmdlZFwiKTtcbiAgICAgICAgICB0aGlzLmlzT3RwU2VudCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmIuc3VibWl0UXVlc3Rpb25uYWlyZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1EYXRhW1wiaGlkSXNFbWFpbENoYW5nZWRcIl0gPT09IFwiWVwiICYmIGZvcm1EYXRhW1wiaGlkSXNQaG9uZUNoYW5nZWRcIl0gPT09IFwiWVwiKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJCb3RoIEVtYWlsIGFuZCBQaG9uZSBDaGFuZ2VkXCIpO1xuICAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gXCJQbGVhc2UgY29udGFjdCBNREVTIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UgdXBkYXRpbmcgRW1haWwgQWRkcmVzcy5cIjtcbiAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9ybURhdGFbXCJoaWRPcmlnaW5hbFBob25lXCJdID09PSBcIm51bGxcIiAmJiBmb3JtRGF0YVtcImhpZElzRW1haWxDaGFuZ2VkXCJdID09PSBcIllcIikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiVHJ5aW5nIHRvIGNoYW5nZSBlbWFpbCBidXQgcGhvbmUgbnVtYmVyIGlzIG5vdCBwcmVzZW50XCIpO1xuICAgICAgICAgIHRoaXMuZXJyb3JUZXh0ID0gXCJQbGVhc2UgY29udGFjdCBNREVTIHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UgdXBkYXRpbmcgRW1haWwgQWRkcmVzcyBhbmQgQ2VsbCBQaG9uZSBOdW1iZXIuXCI7XG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChmb3JtRGF0YVtcImhpZElzRW1haWxDaGFuZ2VkXCJdID09PSBcIllcIikge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJFbWFpbCBDaGFuZ2VkXCIpO1xuICAgICAgICAgICAgdGhpcy50eXBlID0gJ3RleHQnO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybURhdGFbXCJoaWRJc1Bob25lQ2hhbmdlZFwiXSA9PT0gXCJZXCIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiUGhvbmUgQ2hhbmdlZFwiKTtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9ICdlbWFpbCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNPdHBTZW50ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcbiAgICAgICAgICB0aGlzLnNzLnNlbmRPdHBXaXRob3V0Q2FwdGNoYSh0aGlzLnR5cGUpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IFwiQWNjZXNzIGNvZGUgc2VudCBzdWNjZXNzZnVsbHkuXCI7XG4gICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNPdHBTZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKCh0aGlzLnNlbGVjdGVkID09ICdwZXJzb25hbC1kZXRhaWxzJykgfHwgKHRoaXMuc2VsZWN0ZWQgPT0gJ3BheW1lbnQtZGV0YWlscycpKSB7XG4gICAgICAgIHRoaXMuZmIuc3VibWl0UXVlc3Rpb25uYWlyZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5pc01FKCkpIHtcblx0ICAgIGlmICh0aGlzLnNlY3VyaXR5UXVlc3Rpb25WZXJpZmllZCkge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlNFQ1VSSVRZIFFVRVNUSU9OIFZFUklGSUVEIEFORCBTQVZJTkdcIik7XG4gICAgICAgIHRoaXMuZmIuc3VibWl0UXVlc3Rpb25uYWlyZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkID09ICdjb250YWN0LWRldGFpbHMnKSB7ICBcbiAgICAgICAgdGhpcy5zcy5nZXRSYW5kb21TZWN1cml0eVF1ZXN0aW9uU2VsZigpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDoocmVzOiBTZWN1cml0eVF1ZXN0aW9uQW5zd2VyTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmFuZG9tU2VjdXJpdHlRdWVzdGlvbk1vZGVsID0gcmVzO1xuICAgICAgICAgICAgdGhpcy5zZWN1cml0eVF1ZXN0aW9uVG9Bc2sgPSB0aGlzLnJhbmRvbVNlY3VyaXR5UXVlc3Rpb25Nb2RlbC5zZWN1cml0eVF1ZXN0aW9uRGVzY3JpcHRpb247XG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcbiAgICAgICAgICB9LCBlcnJvcjooZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5U2VjdXJpdHlRdWVzdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tZXNzYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XHRcdFxuICAgICAgICB0aGlzLmluaXRpYWxpemVTZWN1cml0eVF1ZXN0aW9uRm9ybSgpO1xuICAgICAgICB0aGlzLmRpc3BsYXlTZWN1cml0eVF1ZXN0aW9uID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmIuc3VibWl0UXVlc3Rpb25uYWlyZSgpO1xuICAgICAgfVxuXHQgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZiLnN1Ym1pdFF1ZXN0aW9ubmFpcmUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlIFJlY29tbWVuZGF0aW9uIFBvcHVwICovXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWNvbW1lbmRhdGlvbnMocmVzOiBBZGRyUmVzLCByZXE6IEFkZHJSZXEsIHY6IGFueSkge1xuICAgY29uc3Qgc3VnZ2VzdGlvbnM6IEFkZHJSZWNbXSA9IEFycmF5LmZyb20ocmVzLmFkZHJlc3NSZWNvbW1lbmRhdGlvbk1vZGVsID8/IFtdKTtcbiAgIGlmICghc3VnZ2VzdGlvbnMubGVuZ3RoKSByZXR1cm47XG4gICBjb25zdCBtb2RhbCA9IGF3YWl0IHRoaXMubW9kYWxDdHJsLmNyZWF0ZSh7XG4gICAgIGNvbXBvbmVudDogQWRkcmVzc1BvcHVwQ29tcG9uZW50LFxuICAgICBjb21wb25lbnRQcm9wczogeyBvcmlnaW5hbDogcmVxLCBjaG9pY2VzOiBzdWdnZXN0aW9ucyB9LFxuICAgICBiYWNrZHJvcERpc21pc3M6IGZhbHNlLFxuICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgc2hvd0JhY2tkcm9wOiB0cnVlXG4gICB9KTtcbiAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobW9kYWwpO1xuICAgYXdhaXQgbW9kYWwucHJlc2VudCgpO1xuICAgY29uc3QgeyBkYXRhLCByb2xlIH0gPSBhd2FpdCBtb2RhbC5vbldpbGxEaXNtaXNzKCk7XG4gICBpZiAocm9sZSAhPT0gJ2NvbmZpcm0nIHx8ICFkYXRhPy5zZWxlY3RlZCkgcmV0dXJuO1xuICAgdGhpcy5wYXRjaEZvcm1XaXRoU2VsZWN0ZWRBZGRyZXNzKGRhdGEuc2VsZWN0ZWQsIHYuZGlmZm1haWxhZGRyZXNzID09PSAnWScpO1xuICB9XG5cbiAgICAvKiogUGF0Y2ggRm9ybSBXaXRoIFNlbGVjdGVkIEFkZHJlc3MgKi9cbnB1YmxpYyBwYXRjaEZvcm1XaXRoU2VsZWN0ZWRBZGRyZXNzKHNlbDogYW55LCBpc01haWw6IGJvb2xlYW4pIHtcbmNvbnN0IHBhdGNoT2JqID0gaXNNYWlsXG4/IHsgbWFpbEFkZHJlc3M6IHRoaXMubWFwQWRkcmVzcyhzZWwpIH1cbjogeyByZXNBZHJlc3M6IHRoaXMubWFwQWRkcmVzcyhzZWwpLFxuICBtYWlsQWRkcmVzczogdGhpcy5tYXBBZGRyZXNzKHNlbClcbiB9O1xudGhpcy5sYXN0VmFsaWRhdGVkQWRkcmVzcz0gdGhpcy5tYXBBZGRyZXNzKHNlbCk7XG50aGlzLmZiLnF1ZXN0aW9ubmFpcmUucXVlc3Rpb25uYWlyZS5xdWVzdGlvbm5haXJlRm9ybS5mb3JtLnBhdGNoVmFsdWUocGF0Y2hPYmopO1xufVxuXG5wcml2YXRlIG1hcEFkZHJlc3Moc2VsOiBhbnkpIHtcbmlmIChzZWwuaXNPcmlnaW5hbCkge1xuLy8gT3JpZ2luYWwgQWRkcmVzc1xucmV0dXJuIHtcbnN0cmVldEFkZHJlc3M6IHNlbC5saW5lMSxcbm9wdGlvbmFsQWRkcmVzczogc2VsLmxpbmUyLFxuY2l0eTogc2VsLmNpdHksXG5zdGF0ZTogeyBsYWJlbDogc2VsLnN0YXRlLCB2YWx1ZTogc2VsLnN0YXRlIH0sXG56aXA6IHNlbC56aXBDb2RlLFxuY291bnRyeTogeyBsYWJlbDogc2VsLmNvdW50cnksIHZhbHVlOiBzZWwuY291bnRyeSB9XG59O1xufSBlbHNlIHtcbi8vIFVTUFMgUmVjb21tZW5kZWQgQWRkcmVzc1xucmV0dXJuIHtcbnN0cmVldEFkZHJlc3M6IHNlbC5kZWxpdmVyeUxpbmUxLFxub3B0aW9uYWxBZGRyZXNzOiBzZWwuZGVsaXZlcnlMaW5lMixcbmNpdHk6IHNlbC5jaXR5TmFtZSxcbnN0YXRlOiB7IGxhYmVsOiBzZWwuc3RhdGVBYmJyZXZhdGlvbiwgdmFsdWU6IHNlbC5zdGF0ZUFiYnJldmF0aW9uIH0sXG56aXA6IHNlbC56aXBDb2RlLFxuY291bnRyeTogeyBsYWJlbDogc2VsLmNvdW50cnksIHZhbHVlOiBzZWwuY291bnRyeSB9XG59O1xufVxufVxuXG4gIHZlcmlmeSgpIHtcbiAgICB0aGlzLm90cENvZGUgPSB0aGlzLm90cEZvcm0uZ2V0KCdvdHAnKT8udmFsdWU7XG4gICAgdGhpcy5zcy52YWxpZGF0ZU90cEZvckNsYWltYW50KHRoaXMub3RwQ29kZSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLm90cFZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNPdHBTZW50ID0gZmFsc2U7XG4gICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcbiAgICAgIHRoaXMuYWNjZXB0ZWQuZW1pdCh0cnVlKTtcbiAgICB9LCBlcnIgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1ZlcmlmeSBzdGF0dXMgZXJyb3IgJywgZXJyKTtcbiAgICAgIHRoaXMub3RwVmVyaWZpZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsOyBcbiAgICAgIHRoaXMuYWNjZXB0ZWQuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XG4gICAgfSlcbiAgfVxuXG4gIHZlcmlmeVNlY3VyaXR5UXVlc3Rpb24oKSB7XG4gICAgdGhpcy5zZWN1cml0eUFuc3dlciA9IHRoaXMuc2VjdXJpdHlRdWVzdGlvbkZvcm0uZ2V0KCdzZWN1cml0eVF1ZXN0aW9uQW5zd2VyJyk/LnZhbHVlO1xuICAgIGlmICh0aGlzLnNlY3VyaXR5QW5zd2VyICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnJhbmRvbVNlY3VyaXR5UXVlc3Rpb25Nb2RlbC5zZWN1cml0eUFuc3dlciA9IHRoaXMuc2VjdXJpdHlBbnN3ZXI7XG4gICAgICB0aGlzLnNzLnZhbGlkYXRlVXNlclNlY3VyaXR5SW5mb3JtYXRpb24odGhpcy5yYW5kb21TZWN1cml0eVF1ZXN0aW9uTW9kZWwpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnNlY3VyaXR5UXVlc3Rpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGlzcGxheVNlY3VyaXR5UXVlc3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XG4gICAgICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcbiAgICAgICAgdGhpcy5hY2NlcHRlZC5lbWl0KHRydWUpO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1ZlcmlmeSBzdGF0dXMgZXJyb3IgJywgZXJyKTtcbiAgICAgICAgdGhpcy5zZWN1cml0eVF1ZXN0aW9uVmVyaWZpZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XG4gICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZzsgICAgIFxuICAgICAgICB0aGlzLmFjY2VwdGVkLmVtaXQoZmFsc2UpOyAgICBcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmVkaXJlY3RMaW5rKHZpZXcpIHtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcbiAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5JkNMQUlNQU5UX1BPUlRBTD10cnVlJnZpZXc9JHt2aWV3fWAsICBcIl9zZWxmXCIpO1xuICAgIH0pO1xuICB9XG4gIGdldEV4dGVybmFsQ2xhaW1hbnRSZXBvcnQoKSB7XG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IFwic3RhcnRlZFwiO1xuICAgIHJldHVybiB0aGlzLmJzLmdldEV4dGVybmFsQ2xhaW1hbnRSZXBvcnQodGhpcy5scy5nZXRVc2VyKCkuc3NuKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuZG93bmxvYWRSYXdGaWxlKHJlcywnRXh0ZXJuYWxBZ2VuY3lSZXBvcnQucGRmJylcbiAgICB9LCBlcnIgPT4ge1xuICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IFwiZXJyb3JcIjtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdHZXR0aW5nIEV4dGVybmFsIENsYWltYW50IFJlcG9ydCBlcnJvcicsIGVycik7XG4gICAgfSlcbiAgfVxuICBkb3dubG9hZFJhd0ZpbGUocmVzOmFueSwgZmlsZW5hbWU6IHN0cmluZyl7XG4gICAgbGV0IGJpbmFyeURhdGEgPSBbXTtcbiAgICBiaW5hcnlEYXRhLnB1c2gocmVzKTtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihiaW5hcnlEYXRhLCB7IHR5cGU6IFwiYXBwbGljYXRpb24veGxzeFwiIH0pKTtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgYS5jbGljaygpO1xuICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbn1cbiAgaGFuZGxlRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3I/LmVycm9yQ29kZSA9PSAnNDIyJykge1xuICAgICAgdGhpcy5lcnJvclRleHQgPSBlcnJvci5tc2dbMF07XG4gICAgfVxuICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIHN1Y2Nlc3MobXNnKSB7XG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IHRydWU7XG4gIH1cblxuICBsb2dvdXQoKSB7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvbGFuZGluZycpO1xuICAgIHRoaXMubHMubG9nb3V0KCk7XG4gIH1cblxuIGdldExpc3RPZkFjdGl2ZUNsYWltKCl7XG4gICAgdGhpcy5jbGFpbVNlcnZpY2UuZ2V0TGlzdE9mQWN0aXZlQ2xhaW0oKS5zdWJzY3JpYmUoKHJlcyk9PntcbiAgICAgIHRoaXMubGlzdE9mQWN0aXZlQ2xhaW0gPSByZXM7XG4gICAgfSlcbiAgfVxuXG4gIGdldFZlcmlmaWNhdGlvblJlcG9ydCgpe1xuICAgIHRoaXMuZG93bmxvYWRTdGF0dXMgPSBcInN0YXJ0ZWRcIjtcbiAgICByZXR1cm4gdGhpcy5icy5nZXRWZXJpZmljYXRpb25SZXBvcnQodGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmRvd25sb2FkUmF3RmlsZShyZXMsJ1VuZW1wbG95bWVudFZlcmlmaWNhdGlvblJlcG9ydC5wZGYnKVxuICAgIH0sIGVyciA9PiB7XG4gICAgICB0aGlzLmRvd25sb2FkU3RhdHVzID0gXCJlcnJvclwiO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0dldHRpbmcgVW5lbXBsb3ltZW50IFZlcmlmaWNhdGlvbiBSZXBvcnQgZXJyb3InLCBlcnIpO1xuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZmluaXNoQW5kU2F2ZShmb3JtRGF0YTogYW55LCBpc0FkZHJlc3NWYWxpZGF0ZWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dJbmxpbmVFcnJvcj0gZmFsc2U7IFxuICAgICAgIHRoaXMuZmIucXVlc3Rpb25uYWlyZS5xdWVzdGlvbm5haXJlLnF1ZXN0aW9ubmFpcmVGb3JtLmZvcm0uY29udHJvbHNbJ2hpZElzQWRkcmVzc1ZhbGlkYXRlZCddLnNldFZhbHVlKGlzQWRkcmVzc1ZhbGlkYXRlZCk7XG5cbiAgICAgaWYgKChmb3JtRGF0YVsncGhvbmUnXSA9PSBmb3JtRGF0YVsnaGlkT3JpZ2luYWxQaG9uZSddKSAmJiAoZm9ybURhdGFbJ2VtYWlsJ10gPT0gZm9ybURhdGFbJ2hpZE9yaWdpbmFsRW1haWwnXSkpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlBob25lIG9yIEVtYWlsIE5vdCBDaGFuZ2VkXCIpO1xuICAgICAgICAgIHRoaXMuaXNPdHBTZW50ID0gZmFsc2U7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJhZGRyZXNzIHZhbGlkYXRpb24gZm9ybSBmbGFnXCIsZm9ybURhdGEuaGlkSXNBZGRyZXNzVmFsaWRhdGVkKTtcbiAgICAgICAgICB0aGlzLmZiLnN1Ym1pdFF1ZXN0aW9ubmFpcmUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChmb3JtRGF0YVtcImhpZElzRW1haWxDaGFuZ2VkXCJdID09PSBcIllcIiAmJiBmb3JtRGF0YVtcImhpZElzUGhvbmVDaGFuZ2VkXCJdID09PSBcIllcIikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiQm90aCBFbWFpbCBhbmQgUGhvbmUgQ2hhbmdlZFwiKTtcbiAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IFwiUGxlYXNlIGNvbnRhY3QgTURFUyBzdXBwb3J0IGZvciBhc3Npc3RhbmNlIHVwZGF0aW5nIEVtYWlsIEFkZHJlc3MuXCI7XG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1EYXRhW1wiaGlkT3JpZ2luYWxQaG9uZVwiXSA9PT0gXCJudWxsXCIgJiYgZm9ybURhdGFbXCJoaWRJc0VtYWlsQ2hhbmdlZFwiXSA9PT0gXCJZXCIpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlRyeWluZyB0byBjaGFuZ2UgZW1haWwgYnV0IHBob25lIG51bWJlciBpcyBub3QgcHJlc2VudFwiKTtcbiAgICAgICAgICB0aGlzLmVycm9yVGV4dCA9IFwiUGxlYXNlIGNvbnRhY3QgTURFUyBzdXBwb3J0IGZvciBhc3Npc3RhbmNlIHVwZGF0aW5nIEVtYWlsIEFkZHJlc3MgYW5kIENlbGwgUGhvbmUgTnVtYmVyLlwiO1xuICAgICAgICAgIHRoaXMuc2hvd0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAoZm9ybURhdGFbXCJoaWRJc0VtYWlsQ2hhbmdlZFwiXSA9PT0gXCJZXCIpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiRW1haWwgQ2hhbmdlZFwiKTtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcbiAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1EYXRhW1wiaGlkSXNQaG9uZUNoYW5nZWRcIl0gPT09IFwiWVwiKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIlBob25lIENoYW5nZWRcIik7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSAnZW1haWwnO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzT3RwU2VudCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5pbml0aWxpemVGb3JtKCk7XG4gICAgICAgICAgdGhpcy5zcy5zZW5kT3RwV2l0aG91dENhcHRjaGEodGhpcy50eXBlKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xuICAgICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzT3RwU2VudCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICB9XG4gIGlzQWRkcmVzc0NoYW5nZWQoY3VycmVudDphbnksIGxhc3Q6YW55KTogYm9vbGVhbntcbiAgcmV0dXJuIGN1cnJlbnQuc3RyZWV0QWRkcmVzcyAhPT0gbGFzdC5zdHJlZXRBZGRyZXNzIHx8XG4gICAgICAgICBjdXJyZW50Lm9wdGlvbmFsQWRkcmVzcyAhPT0gbGFzdC5vcHRpb25hbEFkZHJlc3MgfHwgXG4gICAgICAgICBjdXJyZW50LmNpdHkgIT09IGxhc3QuY2l0eSB8fFxuICAgICAgICAgY3VycmVudC5zdGF0ZT8udmFsdWUgIT09IGxhc3Quc3RhdGU/LnZhbHVlIHx8XG4gICAgICAgICBjdXJyZW50LnppcCAhPT0gbGFzdC56aXAgfHxcbiAgICAgICAgIGN1cnJlbnQuY291bnRyeT8udmFsdWUgIT09IGxhc3QuY291bnRyeT8udmFsdWU7XG4gIH1cbn1cbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBbYnJlYWtwb2ludHNdPVwieycxMDI0cHgnOiAnNzV2dycsICc3NjhweCc6ICc4NXZ3JywgJzY0MHB4JzogJzEwMHZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNjB2dyd9XCIgcG9zaXRpb249XCJ0b3BcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0IGhlYWRpbmdcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMjRweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1wiWW91ciBBY2NvdW50XCIgfCB0cmFuc2xhdGV9fSA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDtcIj4oQ0xBSU1BTlQgSURcclxuICAgICAgICAgICAgICAgICAgICAgICAge3tscy5nZXRVc2VyKCkuY2xhaW1hbnRJZH19KTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiAqbmdJZj1cIiFpc01FKClcIiBzdHlsZUNsYXNzPVwiaW9uLXBhZGRpbmctc3RhcnRcIiBbb3B0aW9uc109XCJwcm9maWxlT3B0c1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCIgKG9uT3B0aW9uQ2xpY2spPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gKm5nSWY9XCJpc01FKClcIiBzdHlsZUNsYXNzPVwiaW9uLXBhZGRpbmctc3RhcnRcIiBbb3B0aW9uc109XCJwcm9maWxlT3B0c0lWUlwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCIgKG9uT3B0aW9uQ2xpY2spPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPGRpdiAqbmdJZj1cIiEoc2hvd1N1Y2Nlc3MgfHwgc2hvd0Vycm9yKVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC04cHg7XCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ3BlcnNvbmFsLWRldGFpbHMnXCIgW2Zsb3dLZXldPVwic2VsZWN0ZWRcIiBbc2hvd09ubHlRdWVzdGlvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiIFtoaWRlRm9vdGVyXT1cInRydWVcIiBbc2l6ZVhzXT1cIjEyXCIgW3NpemVTbV09XCIxMlwiIFtzaXplTWRdPVwiMTJcIiBbc2l6ZUxnXT1cIjEyXCJcclxuICAgICAgICAgICAgW3NpemVYbF09XCIxMlwiIFtvZmZzZXRYbF09XCIwXCIgW29mZnNldExnXT1cIjBcIiAob25FcnJvcik9XCJoYW5kbGVFcnJvcigkZXZlbnQpXCIgKG9uQ29tcGxldGUpPVwic3VjY2VzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZm9ybS1idWlsZGVyPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZCA9PSAnY29udGFjdC1kZXRhaWxzJ1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SW5saW5lRXJyb3IgJiYgc2VsZWN0ZWQgPT09ICdjb250YWN0LWRldGFpbHMnXCIgY2xhc3M9XCJlcnJvci1iYW5uZXJcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImFsZXJ0LWNpcmNsZS1vdXRsaW5lXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlcik7IGZvbnQtc2l6ZTogMThweDsgbWFyZ2luLXJpZ2h0OiA4cHg7XCI+PC9pb24taWNvbj5cclxuICAgICAgICA8c3Bhbj57eyBlcnJvclRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ2NvbnRhY3QtZGV0YWlscydcIiBbZmxvd0tleV09XCJzZWxlY3RlZFwiIFtzaG93T25seVF1ZXN0aW9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbaGlkZUhlYWRlcl09XCJ0cnVlXCIgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFtzaXplWHNdPVwiMTJcIiBbc2l6ZVNtXT1cIjEyXCIgW3NpemVNZF09XCIxMlwiIFtzaXplTGddPVwiMTJcIlxyXG4gICAgICAgICAgICBbc2l6ZVhsXT1cIjEyXCIgW29mZnNldFhsXT1cIjBcIiBbb2Zmc2V0TGddPVwiMFwiIChvbkVycm9yKT1cImhhbmRsZUVycm9yKCRldmVudClcIiAob25Db21wbGV0ZSk9XCJzdWNjZXNzKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mb3JtLWJ1aWxkZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ3BheW1lbnQtZGV0YWlscydcIiBbZmxvd0tleV09XCJzZWxlY3RlZFwiIFtzaG93T25seVF1ZXN0aW9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbaGlkZUhlYWRlcl09XCJ0cnVlXCIgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFtzaXplWHNdPVwiMTJcIiBbc2l6ZVNtXT1cIjEyXCIgW3NpemVNZF09XCIxMlwiIFtzaXplTGddPVwiMTJcIlxyXG4gICAgICAgICAgICBbc2l6ZVhsXT1cIjEyXCIgW29mZnNldFhsXT1cIjBcIiBbb2Zmc2V0TGddPVwiMFwiIChvbkVycm9yKT1cImhhbmRsZUVycm9yKCRldmVudClcIiAob25Db21wbGV0ZSk9XCJzdWNjZXNzKCRldmVudClcIj5cclxuICAgICAgICA8L2FwcC1mb3JtLWJ1aWxkZXI+XHJcbiAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI2ZiICpuZ0lmPVwic2VsZWN0ZWQgPT0gJ3VwZGF0ZS1pdnInXCIgW2Zsb3dLZXldPVwic2VsZWN0ZWRcIiBbc2hvd09ubHlRdWVzdGlvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiIFtoaWRlRm9vdGVyXT1cInRydWVcIiBbc2l6ZVhzXT1cIjEyXCIgW3NpemVTbV09XCIxMlwiIFtzaXplTWRdPVwiMTJcIiBbc2l6ZUxnXT1cIjEyXCJcclxuICAgICAgICAgICAgW3NpemVYbF09XCIxMlwiIFtvZmZzZXRYbF09XCIwXCIgW29mZnNldExnXT1cIjBcIiAob25FcnJvcik9XCJoYW5kbGVFcnJvcigkZXZlbnQpXCIgKG9uQ29tcGxldGUpPVwic3VjY2VzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9hcHAtZm9ybS1idWlsZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvb2Ytb2YtdW5lbXBsb3ltZW50XCIgKm5nSWY9XCJzZWxlY3RlZCA9PSAncHJvb2Ytb2YtdW5lbXBsb3ltZW50J1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJwaGFzZVR3b1Byb29mT2ZVSVZpZXc9PT0ndHJ1ZSc7ZWxzZSAgbm9uUGhyYXNlVHdvVmlld1wiIHN0eWxlPVwicGFkZGluZzogMHB4IDFyZW1cIj5cclxuICAgICAgICAgICAgPGgyIHN0eWxlPVwiZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMsIExpZ2h0JztcIj5cclxuICAgICAgICAgICAgICAgIHt7IFwicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQubGFiZWwucHJvb2Yub2YudW5lbXBsb3ltZW50LnBheVwifCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxpc3RPZkFjdGl2ZUNsYWltIHx8IGxpc3RPZkFjdGl2ZUNsYWltLmxlbmd0aCA9PT0gMDsgZWxzZSBhY3RpdmVDbGFpbVRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgIDxoMyBzdHlsZT1cImZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zLCBMaWdodCc7XCI+XHJcbiAgICAgICAgICAgICAgICB7e1wicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQubGFiZWwubm8uYWN0aXZlLmNsYWltXCJ8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2FjdGl2ZUNsYWltVGFibGU+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZSBbdmFsdWVdPVwibGlzdE9mQWN0aXZlQ2xhaW1cIiBkYXRhS2V5PVwiY2xhaW1JZFwiIFtyb3dFeHBhbmRNb2RlXT1cIidzaW5nbGUnXCIgc3R5bGVDbGFzcz1cInNlcGVyYXRlLXJvd1wiIGNsYXNzPVwic2VwZXJhdGUtcm93XCJcclxuICAgICAgICAgICAgICAgIFt0YWJsZVN0eWxlXT1cInsnYm9yZGVyLWNvbGxhcHNlJzogJ3NlcGFyYXRlJywnYm9yZGVyLXNwYWNpbmcnOiAnMCA4cHgnfVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YSBsZXQtZXhwYW5kZWQ9XCJleHBhbmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBbcFJvd1RvZ2dsZXJdPVwiZGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJleHBhbmRlZCA/ICdwaSBwaS1jaGV2cm9uLWRvd24nIDogJ3BpIHBpLWNoZXZyb24tcmlnaHQnXCIgc3R5bGU9XCJmb250LXNpemU6IDEuNXJlbTtcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZWZmZWN0aXZlRGF0ZX19IC0ge3tkYXRhLmJ5ZURhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZW50aXRsZW1lbnRUeXBlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicm93ZXhwYW5zaW9uXCIgbGV0LWRhdGE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiN1wiIHN0eWxlPVwiIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2U0ZTRlNDtib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTRlNGU0O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImRpc3BsYXk6IGZsZXg7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJkb2NGaWxlTGlua1wiIGhlaWdodD0nNTAwcHgnIHdpZHRoPSc0MjBweCcvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImRpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93ID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YS5kZXNjcmlwdGlvblwiIHN0eWxlPVwiZm9udC1zaXplOiAxOXB4O1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwicGFkZGluZy1pbmxpbmUtZW5kOiAycmVtO1wiIChjbGljayk9XCJnZXRWZXJpZmljYXRpb25SZXBvcnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBcInByb2ZpbGUucHJvb2Yub2YudW5lbXBsb3ltZW50LmJ1dHRvbi5kb3dubG9hZC5yZXBvcnRcInwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvcC10YWJsZT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vblBocmFzZVR3b1ZpZXc+XHJcbiAgICAgICAgICAgIDxpb24tZ3JpZCBzdHlsZT1cIm1hcmdpbi10b3A6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiIWlzTUUoKVwiIGxheW91dD1cInJvd1wiIHN0eWxlID0gXCJtYXJnaW46M3B4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJwcm9maWxlLnByb29mLm9mLnVuZW1wbG95bWVudC5sYWJlbC5kb3dubG9hZC51bmVtcGxveW1lbnQuY2xhaW0ucmVwb3J0XCJ8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImdldEV4dGVybmFsQ2xhaW1hbnRSZXBvcnQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiQ2xhaW1hbnQtcmVwb3J0LWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIj48L2lvbi1pY29uPnt7IFwicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQuYnV0dG9uLmV4dGVybmFsLmNsYWltYW50LnJlcG9ydFwifCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRvd25sb2FkU3RhdHVzPT0nc3RhcnRlZCdcIj57eyBcInByb2ZpbGUucHJvb2Yub2YudW5lbXBsb3ltZW50LnN0YXR1cy5kb3dubG9hZC5zdGFydFwifCB0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJkb3dubG9hZFN0YXR1cz09J2Vycm9yJ1wiPnt7IFwicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQuc3RhdHVzLmRvd25sb2FkLmVycm9yXCJ8IHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBsYXlvdXQ9XCJyb3dcIiBzdHlsZSA9IFwibWFyZ2luOjNweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQubGFiZWwuc3VtbWFyeS51bmVtcGxveW1lbnQuY2xhaW1cInwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwicmVkaXJlY3RMaW5rKCcuY2xhaW1hbnRzdW1tYXJ5dmVyaWZpY2F0aW9uJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIkNsYWltYW50LXN1bW1hcnktdmVyLWJ0blwiPnt7IFwicHJvZmlsZS5wcm9vZi5vZi51bmVtcGxveW1lbnQuYnV0dG9uLnVuZW1wbG95bWVudC52ZXJpZmljYXRpb25cInwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpc01TKCkgJiYgc2VsZWN0ZWQgPT0gJ2NvbnRhY3QtZGV0YWlscycgJiYgaXNPdHBTZW50ID09IHRydWVcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC05MHB4O1wiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwib3RwRm9ybVwiICNvdHBGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm90cFwiIFtpbm5lckhUTUxdPVwiJ3Byb2ZpbGUuY29udGFjdC5kZXRhaWxzLmxhYmVsLm90cCcgfCB0cmFuc2xhdGU6eyB0eXBlOiB0eXBlIH1cIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgZm9ybUNvbnRyb2xOYW1lPVwib3RwXCIgbWFzaz1cIjk5OTk5OVwiIHNpemU9XCI2XCIgbWF4bGVuZ3RoPVwiNlwiIG1pbmxlbmd0aD1cIjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPSd0cnVlJyB0aXRsZT0nRW50ZXIgQXV0aGNvZGUnPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J290cCcgW2Zvcm1dPVwib3RwRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ0F1dGhjb2RlIGlzIHJlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoOiAnQXV0aGNvZGUgc2hvdWxkIGhhdmUgNiBudW1iZXJzLidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwidmVyaWZ5KClcIj57eyBcInByb2ZpbGUuY29udGFjdC5kZXRhaWxzLmJ1dHRvbi52ZXJpZnlcInwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImlzTUUoKSAmJiBzZWxlY3RlZCA9PSAnY29udGFjdC1kZXRhaWxzJyAmJiBkaXNwbGF5U2VjdXJpdHlRdWVzdGlvbiA9PSB0cnVlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOTBweDtcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNlY3VyaXR5UXVlc3Rpb25Gb3JtXCIgI3NlY3VyaXR5UXVlc3Rpb25Gb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VjdXJpdHlRdWVzdGlvbkFuc3dlclwiIFtpbm5lckhUTUxdPVwiJ3Byb2ZpbGUuY29udGFjdC5kZXRhaWxzLmxhYmVsLnNlY3VyaXR5UXVlc3Rpb24nIHwgdHJhbnNsYXRlOnsgc2VjdXJpdHlRdWVzdGlvblRvQXNrOiBzZWN1cml0eVF1ZXN0aW9uVG9Bc2sgfVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHQ8aW5wdXQgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eVF1ZXN0aW9uQW5zd2VyXCIgc2l6ZT1cIjMwXCIgbWF4bGVuZ3RoPVwiMzBcIiB0aXRsZT1cIlNlY3VyaXR5IEFuc3dlclwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3NlY3VyaXR5UXVlc3Rpb25BbnN3ZXInIFtmb3JtXT1cInNlY3VyaXR5UXVlc3Rpb25Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnU2VjdXJpdHkgQW5zd2VyIGlzIHJlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwidmVyaWZ5U2VjdXJpdHlRdWVzdGlvbigpXCI+e3sgXCJwcm9maWxlLmNvbnRhY3QuZGV0YWlscy5idXR0b24udmVyaWZ5XCJ8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlcnJvckR0bHNcIj57e2Vycm9yRHRsc319PC9tYXQtZXJyb3I+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwic3VjY2Vzc0R0bHNcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JlZW4pXCI+e3tzdWNjZXNzRHRsc319PGJyIC8+PC9pb24tbGFiZWw+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dTdWNjZXNzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgc3R5bGU9XCJmb250LXNpemU6IDgwcHg7IGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JlZW4pO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxoMT57eyBcInByb2ZpbGUuYmFubmVyLnN1Y2Nlc3NcInwgdHJhbnNsYXRlfX08L2gxPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dFcnJvclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2UtY2lyY2xlLW91dGxpbmVcIiBzdHlsZT1cImZvbnQtc2l6ZTogODBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaXNNUygpXCI+XHJcbiAgICAgICAgICAgICAgICA8aDE+e3sgZXJyb3JUZXh0ID8gZXJyb3JUZXh0IDogKCdwcm9maWxlLmJhbm5lci5yZXF1ZXN0LnByb2Nlc3MuZmFpbHVyZScgfCB0cmFuc2xhdGUpIH19PC9oMT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpc01TKClcIj5cclxuICAgICAgICAgICAgICAgIDxoMT57e2Vycm9yVGV4dCA/IGVycm9yVGV4dCA6ICgncHJvZmlsZS5iYW5uZXIucmVxdWVzdC5wcm9jZXNzLmZhaWx1cmUnIHwgdHJhbnNsYXRlKSB9fTwvaDE+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIiBzaXplPVwiMTJcIiBzaXplWGw9XCI0XCIgc2l6ZUxnPVwiNFwiIHNpemVNZD1cIjVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImxvZ291dCgpXCI+e3sgXCJwcm9maWxlLmJ1dHRvbi5sb2dvdXRcInwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCIgc2l6ZT1cIjEyXCIgc2l6ZVhsPVwiOFwiIHNpemVMZz1cIjhcIiBzaXplTWQ9XCI3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgdHlwZT1cInJlc2V0XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgXCJwcm9maWxlLmJ1dHRvbi5jbG9zZVwifCB0cmFuc2xhdGV9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzYXZlKClcIiAqbmdJZj1cIiEoc2hvd1N1Y2Nlc3MgfHwgc2hvd0Vycm9yKSAmJiBzZWxlY3RlZCE9J3Byb29mLW9mLXVuZW1wbG95bWVudCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNPdHBTZW50PT0gdHJ1ZSB8fCBkaXNwbGF5U2VjdXJpdHlRdWVzdGlvbj09IHRydWVcIj57eyBcInByb2ZpbGUuYnV0dG9uLnNhdmVcInwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz4iXX0=