@reusa/ngx-reusa-app-lib 0.0.1373 → 0.0.1374

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 (545) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1324 -2394
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +105 -159
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +53 -59
  4. package/esm2022/lib/components/address/address.component.mjs +152 -287
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +219 -79
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +43 -17
  7. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +9 -3
  8. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +4 -32
  9. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +15 -30
  10. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  11. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  12. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  13. package/esm2022/lib/components/email-update/email-update.component.mjs +140 -63
  14. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +574 -422
  15. package/esm2022/lib/components/error/error.component.mjs +5 -22
  16. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  17. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +49 -178
  18. package/esm2022/lib/components/footer/footer.component.mjs +101 -112
  19. package/esm2022/lib/components/header/header.component.mjs +174 -440
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +36 -25
  21. package/esm2022/lib/components/info/info.component.mjs +12 -4
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +97 -92
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +513 -143
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
  26. package/esm2022/lib/components/link/link.component.mjs +1 -1
  27. package/esm2022/lib/components/menu/menu.component.mjs +100 -68
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +288 -158
  29. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +54 -158
  32. package/esm2022/lib/components/profile/profile.component.mjs +353 -749
  33. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +38 -108
  34. package/esm2022/lib/components/questionnaire/AppValidators.mjs +47 -296
  35. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +65 -110
  36. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +173 -377
  37. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +95 -76
  38. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1153 -877
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +699 -208
  40. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +22 -28
  41. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +41 -128
  42. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  43. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  44. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
  45. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -497
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +30 -155
  47. package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
  48. package/esm2022/lib/components/select/select.component.mjs +10 -5
  49. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  50. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
  51. package/esm2022/lib/components/user-login/user-login.component.mjs +360 -139
  52. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +387 -655
  53. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +61 -125
  54. package/esm2022/lib/guards/auth.guard.mjs +2 -50
  55. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  56. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
  57. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  58. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  59. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  60. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  61. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  62. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  63. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  64. package/esm2022/lib/models/LibConstants.mjs +6 -45
  65. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  66. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  67. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  68. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  69. package/esm2022/lib/models/UserModel.mjs +1 -1
  70. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  71. package/esm2022/lib/models/dependent.model.mjs +1 -1
  72. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  73. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  74. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/ComboModel.mjs +653 -96
  76. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  77. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  78. package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +1 -1
  79. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  80. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  81. package/esm2022/lib/pages/BasePage.mjs +23 -4
  82. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  83. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  84. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  85. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  86. package/esm2022/lib/pages/common/login/login.component.mjs +13 -7
  87. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  88. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  89. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  90. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  91. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  92. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  93. package/esm2022/lib/services/base-service.mjs +1 -4
  94. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  95. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  96. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  97. package/esm2022/lib/services/claims/claims.service.mjs +14 -105
  98. package/esm2022/lib/services/help/help.service.mjs +1 -1
  99. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  100. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  101. package/esm2022/lib/services/login/login.service.mjs +14 -29
  102. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  103. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  104. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  105. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  106. package/esm2022/lib/services/util/util.service.mjs +5 -61
  107. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  108. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  109. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  110. package/esm2022/public-api.mjs +5 -47
  111. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +26939 -44815
  112. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  113. package/lib/components/add-employer/add-employer.component.d.ts +53 -137
  114. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  115. package/lib/components/add-participant/add-participant.component.d.ts +5 -11
  116. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  117. package/lib/components/add-payment/add-payment.component.d.ts +3 -9
  118. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  119. package/lib/components/address/address.component.d.ts +15 -42
  120. package/lib/components/address/address.component.d.ts.map +1 -1
  121. package/lib/components/bank-details/bank-details.component.d.ts +23 -1
  122. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  123. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  124. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  125. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  126. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  127. package/lib/components/email-update/email-update.component.d.ts +12 -1
  128. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  129. package/lib/components/employer-grid/employer-grid.component.d.ts +15 -25
  130. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  131. package/lib/components/error/error.component.d.ts +2 -3
  132. package/lib/components/error/error.component.d.ts.map +1 -1
  133. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  134. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  135. package/lib/components/footer/footer.component.d.ts.map +1 -1
  136. package/lib/components/header/header.component.d.ts +5 -17
  137. package/lib/components/header/header.component.d.ts.map +1 -1
  138. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  139. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  140. package/lib/components/job-title/job-title.component.d.ts +23 -22
  141. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  142. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +6 -5
  143. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  144. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  145. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  146. package/lib/components/menu/menu.component.d.ts +12 -3
  147. package/lib/components/menu/menu.component.d.ts.map +1 -1
  148. package/lib/components/mfa/mfa.component.d.ts +19 -7
  149. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  150. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  151. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  152. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  153. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  154. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  155. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  156. package/lib/components/profile/profile.component.d.ts +49 -82
  157. package/lib/components/profile/profile.component.d.ts.map +1 -1
  158. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  159. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  160. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  161. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  162. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  163. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  164. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -7
  165. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  166. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  167. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  168. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +35 -33
  169. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  170. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  171. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  172. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  173. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  174. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  175. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  176. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  177. package/lib/components/questionnaire/question.service.d.ts +1 -0
  178. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  179. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  180. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  181. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  182. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  183. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  184. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  185. package/lib/components/security-question/security-question.component.d.ts +37 -0
  186. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  187. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  188. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  189. package/lib/components/user-login/user-login.component.d.ts +38 -5
  190. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  191. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +10 -27
  192. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  193. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  194. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  195. package/lib/guards/auth.guard.d.ts.map +1 -1
  196. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  197. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  198. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  199. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  200. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  201. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  202. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  203. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  204. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  205. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  206. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  207. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  208. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  209. package/lib/models/LibConstants.d.ts +1 -40
  210. package/lib/models/LibConstants.d.ts.map +1 -1
  211. package/lib/models/OtpAuthModel.d.ts +1 -0
  212. package/lib/models/OtpAuthModel.d.ts.map +1 -1
  213. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  214. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  215. package/lib/models/PaymentComponentModel.d.ts +1 -1
  216. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  217. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  218. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  219. package/lib/models/UserModel.d.ts +1 -0
  220. package/lib/models/UserModel.d.ts.map +1 -1
  221. package/lib/models/dashboard-model.d.ts +0 -22
  222. package/lib/models/dashboard-model.d.ts.map +1 -1
  223. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  224. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  225. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -15
  226. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  227. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  228. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  229. package/lib/models/questionnaire/ComboModel.d.ts +82 -14
  230. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  231. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  232. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  233. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  234. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  235. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +1 -0
  236. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -1
  237. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  238. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  239. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  240. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  241. package/lib/pages/BasePage.d.ts +6 -3
  242. package/lib/pages/BasePage.d.ts.map +1 -1
  243. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  244. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  245. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  246. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  247. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  248. package/lib/services/base-service.d.ts +0 -12
  249. package/lib/services/base-service.d.ts.map +1 -1
  250. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  251. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  252. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  253. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  254. package/lib/services/claims/claims.service.d.ts +5 -39
  255. package/lib/services/claims/claims.service.d.ts.map +1 -1
  256. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  257. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  258. package/lib/services/login/login.service.d.ts +3 -5
  259. package/lib/services/login/login.service.d.ts.map +1 -1
  260. package/lib/services/ovp/ovp.service.d.ts +17 -0
  261. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  262. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  263. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  264. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  265. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  266. package/lib/services/security-service/security.service.d.ts +4 -12
  267. package/lib/services/security-service/security.service.d.ts.map +1 -1
  268. package/lib/services/util/util.service.d.ts +0 -6
  269. package/lib/services/util/util.service.d.ts.map +1 -1
  270. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  271. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  272. package/lib/validations/AppRegex.d.ts +2 -0
  273. package/lib/validations/AppRegex.d.ts.map +1 -1
  274. package/lib/validations/AppValidators.d.ts +24 -20
  275. package/lib/validations/AppValidators.d.ts.map +1 -1
  276. package/package.json +2 -2
  277. package/public-api.d.ts +4 -46
  278. package/public-api.d.ts.map +1 -1
  279. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  280. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  281. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  282. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  283. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  284. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  285. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  286. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  287. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  288. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  289. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  290. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  291. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  292. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  293. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  294. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  295. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  296. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  297. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  298. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  299. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  300. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  301. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  302. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  303. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  304. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  305. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  306. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -828
  307. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  308. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  309. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  310. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  311. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  312. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  313. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -690
  314. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  315. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  316. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  317. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  318. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  319. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  320. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  321. package/esm2022/lib/models/CountyModel.mjs +0 -3
  322. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  323. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  324. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  325. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  326. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  327. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  328. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  329. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  330. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  331. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  332. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  333. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  334. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  335. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  336. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  337. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  338. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  339. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  340. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  341. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  342. package/esm2022/lib/models/combo-model.mjs +0 -343
  343. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  344. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  345. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  346. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  347. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  348. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  349. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  350. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  351. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  352. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  353. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  354. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  355. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  356. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  357. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  358. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  359. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  360. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  361. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  362. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  363. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  364. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  365. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  366. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  367. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  368. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  369. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  370. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  371. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  372. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  373. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  374. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  375. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  376. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  377. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  378. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  379. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  380. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  381. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  382. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  383. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  384. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  385. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  386. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  387. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  388. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  389. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  390. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  391. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  392. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  393. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  394. package/lib/components/history-page/history-page.component.d.ts +0 -80
  395. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  396. package/lib/components/idme/idme.component.d.ts +0 -19
  397. package/lib/components/idme/idme.component.d.ts.map +0 -1
  398. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  399. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  400. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  401. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  402. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  403. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  404. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  405. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  406. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  407. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  408. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  409. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  410. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  411. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  412. package/lib/components/sms/sms.component.d.ts +0 -63
  413. package/lib/components/sms/sms.component.d.ts.map +0 -1
  414. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  415. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  416. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  417. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  418. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  419. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  420. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  421. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  422. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  423. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  424. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  425. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  426. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  427. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  428. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  429. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  430. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  431. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  432. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  433. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  434. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  435. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  436. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  437. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  438. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  439. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  440. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  441. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  442. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  443. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  444. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  445. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  446. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  447. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  448. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  449. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  450. package/lib/models/ActiveClaimModel.d.ts +0 -8
  451. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  452. package/lib/models/CountyModel.d.ts +0 -8
  453. package/lib/models/CountyModel.d.ts.map +0 -1
  454. package/lib/models/DuaAppDataModel.d.ts +0 -5
  455. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  456. package/lib/models/DuaRequestModel.d.ts +0 -10
  457. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  458. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  459. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  460. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  461. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  462. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  463. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  464. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  465. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  466. package/lib/models/GrossEarningsModel.d.ts +0 -6
  467. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  468. package/lib/models/HelpConstants.d.ts +0 -5
  469. package/lib/models/HelpConstants.d.ts.map +0 -1
  470. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  471. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  472. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  473. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  474. package/lib/models/RetroWeeksModel.d.ts +0 -11
  475. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  476. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  477. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  478. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  479. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  480. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  481. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  482. package/lib/models/WageCalculatorModel.d.ts +0 -15
  483. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  484. package/lib/models/WageInfoModel.d.ts +0 -9
  485. package/lib/models/WageInfoModel.d.ts.map +0 -1
  486. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  487. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  488. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  489. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  490. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  491. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  492. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  493. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  494. package/lib/models/combo-model.d.ts +0 -42
  495. package/lib/models/combo-model.d.ts.map +0 -1
  496. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  497. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  498. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  499. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  500. package/lib/models/fileupload/FileObject.d.ts +0 -8
  501. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  502. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  503. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  504. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  505. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  506. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  507. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  508. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  509. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  510. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  511. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  512. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  513. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  514. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  515. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  516. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  517. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  518. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  519. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  520. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  521. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  522. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  523. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  524. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  525. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  526. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  527. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  528. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  529. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  530. package/lib/services/appeal/appeal.service.d.ts +0 -16
  531. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  532. package/lib/services/birt-service/birt.service.d.ts +0 -17
  533. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  534. package/lib/services/employer/employer-service.d.ts +0 -16
  535. package/lib/services/employer/employer-service.d.ts.map +0 -1
  536. package/lib/services/event-service/event-service.d.ts +0 -20
  537. package/lib/services/event-service/event-service.d.ts.map +0 -1
  538. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  539. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  540. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  541. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  542. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  543. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  544. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  545. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -1,14 +1,8 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { BaseService } from '../../services/base-service';
3
2
  import { LibConstants } from '../../models/LibConstants';
4
- import { EmployerInfoModel } from '../../models/weekly-cert/employer-info-v2-model';
5
- import { WeeklyCertEligibilityModelV2 } from '../../models/weekly-cert/weekly-cert-eligibility-v2-model';
6
- import { WeeklyCertificationModel } from '../../models/weekly-cert/weekly-certification-v2-model';
7
- import { WorkSearchJournalModel } from '../../models/weekly-cert/work-search-record-v2-model';
8
- import { AdminLeaveDetailsModel } from '../../models/weekly-cert/admin-leave-details-model';
3
+ import { BaseService } from '../base-service';
9
4
  import * as i0 from "@angular/core";
10
- import * as i1 from "../../services/util/util.service";
11
- import * as i2 from "@angular/common/http";
5
+ import * as i1 from "@angular/common/http";
12
6
  export class WeeklyCertServiceV2 extends BaseService {
13
7
  setServiceContext() {
14
8
  this.serviceContext = LibConstants.weeklycert_service.context;
@@ -22,187 +16,21 @@ export class WeeklyCertServiceV2 extends BaseService {
22
16
  setServiceHost() {
23
17
  this.host = LibConstants.weeklycert_service.host;
24
18
  }
25
- constructor(util, http) {
19
+ constructor(http) {
26
20
  super(http);
27
- this.util = util;
28
21
  this.http = http;
29
- this.weeklyCertData = new WeeklyCertificationModel();
30
- this.weeklyCertServerData = new WeeklyCertEligibilityModelV2();
31
- this.workSearchJournal = new WorkSearchJournalModel();
32
- this.adminLeaveDetailsModel = new AdminLeaveDetailsModel();
33
- this.employerData = new EmployerInfoModel();
34
22
  }
35
- checkWeeklyEligibility() {
36
- return this.get('weeklycert/v2/check-eligibility');
23
+ generateEventForReopenAicFlow(ssnInput) {
24
+ // console.log("check the Aic Events for creation of this SSN:::"+ssnInput);
25
+ let paramsVal = null;
26
+ console.log("check the Aic Events for creation of this SSN::: 6...." + paramsVal);
27
+ return this.get(`weeklycert/events/${ssnInput}`).toPromise();
37
28
  }
38
- submitWeeklyCertification(last4OfSsn) {
39
- this.weeklyCertData.signature = last4OfSsn;
40
- return this.post('weeklycert/process', this.weeklyCertData);
29
+ getPartialEmployment() {
30
+ console.log("Calling to get the IF any partial employment");
31
+ return this.get('weeklycert/partial-employment');
41
32
  }
42
- getClaimantWorkSearchJournalRecords(weekToCertify) {
43
- return this.get(`weeklycert/existing-work-search/${weekToCertify.replace('/', '-').replace('/', '-')}`);
44
- }
45
- determineQuestionniareToOpen() {
46
- return this.post('weeklycert/file-weeklies/determine-qe', this.weeklyCertData);
47
- }
48
- getSundayDateAsString() {
49
- return this.weeklyCertServerData.sundayOfWeekToCertifyString;
50
- }
51
- getSaturdayDateAsString() {
52
- return this.weeklyCertServerData.weekToCertifyString;
53
- }
54
- getSaturdayDate() {
55
- return this.weeklyCertServerData.weekToCertify;
56
- }
57
- getSundayDate() {
58
- return this.weeklyCertServerData.sundayOfWeekToCertify;
59
- }
60
- getDisplayWorkSearchScreen() {
61
- return this.weeklyCertServerData.showWorkSearchScreen && !this.weeklyCertServerData.isWorkSearchWaived;
62
- }
63
- getEmployerRecords() {
64
- return this.weeklyCertData.employerDetailsList;
65
- }
66
- getWorkSearchData() {
67
- return this.weeklyCertData.workSearchData;
68
- }
69
- setWorkSearchData(workSearchData) {
70
- this.weeklyCertData.workSearchData = workSearchData;
71
- }
72
- setAdminLeaveDetails(adminLeaveDetails) {
73
- this.weeklyCertData.adminLeaveDetails = adminLeaveDetails;
74
- }
75
- getClaimTypeFlag() {
76
- let claimTypeFlag = this.weeklyCertData['tra_claim_flag'];
77
- return claimTypeFlag;
78
- }
79
- getWorkSearchRecordsCount() {
80
- if (this.weeklyCertData.workSearchRecords != null) {
81
- return this.weeklyCertData.workSearchRecords.length;
82
- }
83
- else {
84
- return 0;
85
- }
86
- }
87
- getWorkSearchRecords() {
88
- return this.weeklyCertData.workSearchRecords;
89
- }
90
- removeWorkSearchRecord(index) {
91
- this.weeklyCertData.workSearchRecords.splice(index, 1);
92
- }
93
- removeEmployerRecord(index) {
94
- this.weeklyCertData.employerDetailsList.splice(index, 1);
95
- }
96
- getEmployerRecordsCount() {
97
- if (this.weeklyCertData.employerDetailsList != null) {
98
- return this.weeklyCertData.employerDetailsList.length;
99
- }
100
- else {
101
- return 0;
102
- }
103
- }
104
- getTotalEarningAmount() {
105
- let totalAmount = 0.0;
106
- if (this.getEmployerRecordsCount() > 0) {
107
- this.weeklyCertData.employerDetailsList.forEach(element => {
108
- totalAmount = totalAmount + Number.parseFloat(element.grossEarning.toString());
109
- });
110
- }
111
- return totalAmount;
112
- }
113
- resetWeeklyCertData() {
114
- this.weeklyCertData = new WeeklyCertificationModel();
115
- }
116
- getWorkSearchRecordsCountWithNotHiredStatus() {
117
- let workSearchRecords = this.getWorkSearchRecords();
118
- if (workSearchRecords == null || workSearchRecords.length == 0) {
119
- return 0;
120
- }
121
- else {
122
- var count = 0;
123
- for (var index = 0; index < workSearchRecords.length; index++) {
124
- if (workSearchRecords[index].searchResult == 'NOHI') {
125
- count++;
126
- }
127
- }
128
- return count;
129
- }
130
- }
131
- getWorkSearchRecordsCountWithHiredStatus() {
132
- let workSearchRecords = this.getWorkSearchRecords();
133
- if (workSearchRecords == null || workSearchRecords.length == 0) {
134
- return 0;
135
- }
136
- else {
137
- var count = 0;
138
- for (var index = 0; index < workSearchRecords.length; index++) {
139
- if (workSearchRecords[index].searchResult == 'HIRE') {
140
- count++;
141
- }
142
- }
143
- return count;
144
- }
145
- }
146
- checkIfInadequateWorkSearchQuestionnaireShouldBeOpened() {
147
- if (this.weeklyCertData.workSearchData.isWorkSearchPerformedFlag == "1") {
148
- if (this.getWorkSearchRecordsCount() < 1) {
149
- return false;
150
- }
151
- if (this.getWorkSearchRecordsCountWithHiredStatus() > 0) {
152
- return false;
153
- }
154
- else if (this.getWorkSearchRecordsCount() < 3) {
155
- return true;
156
- }
157
- else if (this.getWorkSearchRecordsCountWithNotHiredStatus() < 1) {
158
- return true;
159
- }
160
- else {
161
- return false;
162
- }
163
- }
164
- else {
165
- return false;
166
- }
167
- }
168
- hasReferralRecords() {
169
- let hasReferralPresent = false;
170
- if (this.weeklyCertData.workSearchRecords != null && this.weeklyCertData.workSearchRecords.length > 0) {
171
- this.weeklyCertData.workSearchRecords.forEach((wrkSrchModel) => {
172
- if (wrkSrchModel.searchResult == 'MDES') {
173
- hasReferralPresent = true;
174
- }
175
- });
176
- }
177
- return hasReferralPresent;
178
- }
179
- convertNumberToBoolean(value) {
180
- if (value == 1) {
181
- return true;
182
- }
183
- else if (value == 0) {
184
- return false;
185
- }
186
- else {
187
- return null;
188
- }
189
- }
190
- setNullIfEmpty(value) {
191
- if (value == null || value == undefined || value == '') {
192
- return null;
193
- }
194
- return value;
195
- }
196
- getWorkSearchWaived() {
197
- return this.weeklyCertServerData.isWorkSearchWaived;
198
- }
199
- getWaitingWeekServed() {
200
- return this.weeklyCertServerData.isWaitingWeekServed;
201
- }
202
- getHidIsSeapParticipant() {
203
- return this.weeklyCertServerData.hidIsSeapParticipant;
204
- }
205
- static { this.ɵfac = function WeeklyCertServiceV2_Factory(t) { return new (t || WeeklyCertServiceV2)(i0.ɵɵinject(i1.UtilService), i0.ɵɵinject(i2.HttpClient)); }; }
33
+ static { this.ɵfac = function WeeklyCertServiceV2_Factory(t) { return new (t || WeeklyCertServiceV2)(i0.ɵɵinject(i1.HttpClient)); }; }
206
34
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WeeklyCertServiceV2, factory: WeeklyCertServiceV2.ɵfac, providedIn: 'root' }); }
207
35
  }
208
36
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeeklyCertServiceV2, [{
@@ -210,5 +38,5 @@ export class WeeklyCertServiceV2 extends BaseService {
210
38
  args: [{
211
39
  providedIn: 'root'
212
40
  }]
213
- }], () => [{ type: i1.UtilService }, { type: i2.HttpClient }], null); })();
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtdjIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDekcsT0FBTyxFQUFrQix3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBRWxILE9BQU8sRUFBRSxzQkFBc0IsRUFBeUIsTUFBTSxzREFBc0QsQ0FBQztBQUVySCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7OztBQU01RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUVsRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7SUFDaEUsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFD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LG9CQUFvQixDQUFDLGtCQUFrQixDQUFDO0lBQ3RELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUM7SUFDdkQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQztJQUN4RCxDQUFDO29GQS9OVSxtQkFBbUI7dUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUIsbUJBRmxCLE1BQU07O2lGQUVQLG1CQUFtQjtjQUgvQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb21iby1tb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVySW5mb01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dlZWtseS1jZXJ0L2VtcGxveWVyLWluZm8tdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0RWxpZ2liaWxpdHlNb2RlbFYyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LWVsaWdpYmlsaXR5LXYyLW1vZGVsJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydERhdGEsIFdlZWtseUNlcnRpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93ZWVrbHktY2VydGlmaWNhdGlvbi12Mi1tb2RlbCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC12Mi1tb2RlbCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hKb3VybmFsTW9kZWwsIFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBTdGF0dXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1N0YXR1c01vZGVsJztcclxuaW1wb3J0IHsgQWRtaW5MZWF2ZURldGFpbHNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC9hZG1pbi1sZWF2ZS1kZXRhaWxzLW1vZGVsJztcclxuaW1wb3J0IHsgRGVwZW5kZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVwZW5kZW50Lm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdlZWtseUNlcnRTZXJ2aWNlVjIgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIHNldFNlcnZpY2VDb250ZXh0KCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlQ29udGV4dCA9IExpYkNvbnN0YW50cy53ZWVrbHljZXJ0X3NlcnZpY2UuY29udGV4dDtcclxuICB9XHJcbiAgc2V0U2VydmljZVBvcnQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2VQb3J0ID0gTGliQ29uc3RhbnRzLndlZWtseWNlcnRfc2VydmljZS5wb3J0O1xyXG4gIH1cclxuICBzZXRTZXJ2aWNlUHJvdG9jb2woKSB7XHJcbiAgICB0aGlzLnByb3RvY29sID0gTGliQ29uc3RhbnRzLndlZWtseWNlcnRfc2VydmljZS5wcm90b2NvbDtcclxuICB9XHJcbiAgc2V0U2VydmljZUhvc3QoKSB7XHJcbiAgICB0aGlzLmhvc3QgPSBMaWJDb25zdGFudHMud2Vla2x5Y2VydF9zZXJ2aWNlLmhvc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd2Vla2x5Q2VydERhdGE6IFdlZWtseUNlcnRpZmljYXRpb25Nb2RlbCA9IG5ldyBXZWVrbHlDZXJ0aWZpY2F0aW9uTW9kZWwoKTtcclxuXHJcbiAgcHVibGljIHdlZWtseUNlcnRTZXJ2ZXJEYXRhOiBXZWVrbHlDZXJ0RWxpZ2liaWxpdHlNb2RlbFYyID0gbmV3IFdlZWtseUNlcnRFbGlnaWJpbGl0eU1vZGVsVjIoKTtcclxuXHJcbiAgcHVibGljIHdvcmtTZWFyY2hKb3VybmFsOiBXb3JrU2VhcmNoSm91cm5hbE1vZGVsID0gbmV3IFdvcmtTZWFyY2hKb3VybmFsTW9kZWwoKTtcclxuXHJcbiAgcHVibGljIGFkbWluTGVhdmVEZXRhaWxzTW9kZWw6IEFkbWluTGVhdmVEZXRhaWxzTW9kZWwgPSBuZXcgQWRtaW5MZWF2ZURldGFpbHNNb2RlbCgpO1xyXG5cclxuICBwdWJsaWMgZW1wbG95ZXJEYXRhOiBFbXBsb3llckluZm9Nb2RlbCA9IG5ldyBFbXBsb3llckluZm9Nb2RlbCgpO1xyXG5cclxuICBwdWJsaWMgcWVTdGF0dXNNb2RlbDogU3RhdHVzTW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tXZWVrbHlFbGlnaWJpbGl0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmdldDxXZWVrbHlDZXJ0RWxpZ2liaWxpdHlNb2RlbFYyPignd2Vla2x5Y2VydC92Mi9jaGVjay1lbGlnaWJpbGl0eScpO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0V2Vla2x5Q2VydGlmaWNhdGlvbihsYXN0NE9mU3NuOiBzdHJpbmcpIHtcclxuICAgICB0aGlzLndlZWtseUNlcnREYXRhLnNpZ25hdHVyZSA9IGxhc3Q0T2ZTc247XHJcbiAgICAgcmV0dXJuIHRoaXMucG9zdDxhbnk+KCd3ZWVrbHljZXJ0L3Byb2Nlc3MnLCB0aGlzLndlZWtseUNlcnREYXRhKTtcclxuICB9XHJcblxyXG4gIGdldENsYWltYW50V29ya1NlYXJjaEpvdXJuYWxSZWNvcmRzKHdlZWtUb0NlcnRpZnk6IHN0cmluZyl7XHJcbiAgIHJldHVybiB0aGlzLmdldDxXb3JrU2VhcmNoSm91cm5hbE1vZGVsPihgd2Vla2x5Y2VydC9leGlzdGluZy13b3JrLXNlYXJjaC8ke3dlZWtUb0NlcnRpZnkucmVwbGFjZSgnLycsJy0nKS5yZXBsYWNlKCcvJywnLScpfWApO1xyXG4gIH1cclxuXHJcbiAgZGV0ZXJtaW5lUXVlc3Rpb25uaWFyZVRvT3Blbigpe1xyXG4gICAgcmV0dXJuIHRoaXMucG9zdDxhbnk+KCd3ZWVrbHljZXJ0L2ZpbGUtd2Vla2xpZXMvZGV0ZXJtaW5lLXFlJywgdGhpcy53ZWVrbHlDZXJ0RGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdW5kYXlEYXRlQXNTdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLndlZWtseUNlcnRTZXJ2ZXJEYXRhLnN1bmRheU9mV2Vla1RvQ2VydGlmeVN0cmluZztcclxuICB9XHJcblxyXG4gIGdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy53ZWVrbHlDZXJ0U2VydmVyRGF0YS53ZWVrVG9DZXJ0aWZ5U3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2F0dXJkYXlEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla1RvQ2VydGlmeTtcclxuICB9XHJcblxyXG4gIGdldFN1bmRheURhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53ZWVrbHlDZXJ0U2VydmVyRGF0YS5zdW5kYXlPZldlZWtUb0NlcnRpZnk7XHJcbiAgfVxyXG5cclxuICBnZXREaXNwbGF5V29ya1NlYXJjaFNjcmVlbigpIHtcclxuICAgIHJldHVybiB0aGlzLndlZWtseUNlcnRTZXJ2ZXJEYXRhLnNob3dXb3JrU2VhcmNoU2NyZWVuICYmICF0aGlzLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmlzV29ya1NlYXJjaFdhaXZlZDtcclxuICB9XHJcblxyXG4gIGdldEVtcGxveWVyUmVjb3JkcygpOiBFbXBsb3llckluZm9Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLndlZWtseUNlcnREYXRhLmVtcGxveWVyRGV0YWlsc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBnZXRXb3JrU2VhcmNoRGF0YSgpOiBXb3JrU2VhcmNoTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGE7XHJcbiAgfVxyXG5cclxuICBzZXRXb3JrU2VhcmNoRGF0YSh3b3JrU2VhcmNoRGF0YTogV29ya1NlYXJjaE1vZGVsKSB7XHJcbiAgICB0aGlzLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hEYXRhID0gd29ya1NlYXJjaERhdGE7XHJcbiAgfVxyXG5cclxuICBzZXRBZG1pbkxlYXZlRGV0YWlscyhhZG1pbkxlYXZlRGV0YWlsczogQWRtaW5MZWF2ZURldGFpbHNNb2RlbCl7XHJcbiAgICB0aGlzLndlZWtseUNlcnREYXRhLmFkbWluTGVhdmVEZXRhaWxzID0gYWRtaW5MZWF2ZURldGFpbHM7XHJcbiAgfVxyXG5cclxuICBnZXRDbGFpbVR5cGVGbGFnKCkge1xyXG4gICAgbGV0IGNsYWltVHlwZUZsYWcgPSB0aGlzLndlZWtseUNlcnREYXRhWyd0cmFfY2xhaW1fZmxhZyddO1xyXG4gICAgcmV0dXJuIGNsYWltVHlwZUZsYWc7XHJcbiAgfVxyXG5cclxuICBnZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy53ZWVrbHlDZXJ0RGF0YS53b3JrU2VhcmNoUmVjb3JkcyAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hSZWNvcmRzLmxlbmd0aDtcclxuICAgIH1lbHNlIHsgICAgXHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0V29ya1NlYXJjaFJlY29yZHMoKTogV29ya1NlYXJjaFJlY29yZE1vZGVsW10ge1xyXG4gICAgcmV0dXJuIHRoaXMud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaFJlY29yZHM7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXb3JrU2VhcmNoUmVjb3JkKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaFJlY29yZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUVtcGxveWVyUmVjb3JkKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMud2Vla2x5Q2VydERhdGEuZW1wbG95ZXJEZXRhaWxzTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW1wbG95ZXJSZWNvcmRzQ291bnQoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLndlZWtseUNlcnREYXRhLmVtcGxveWVyRGV0YWlsc0xpc3QgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy53ZWVrbHlDZXJ0RGF0YS5lbXBsb3llckRldGFpbHNMaXN0Lmxlbmd0aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG90YWxFYXJuaW5nQW1vdW50KCk6IG51bWJlciB7XHJcbiAgICBsZXQgdG90YWxBbW91bnQ6IG51bWJlciA9IDAuMDtcclxuICAgIGlmICh0aGlzLmdldEVtcGxveWVyUmVjb3Jkc0NvdW50KCkgPiAwKSB7XHJcbiAgICAgIHRoaXMud2Vla2x5Q2VydERhdGEuZW1wbG95ZXJEZXRhaWxzTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRvdGFsQW1vdW50ID0gdG90YWxBbW91bnQgKyBOdW1iZXIucGFyc2VGbG9hdChlbGVtZW50Lmdyb3NzRWFybmluZy50b1N0cmluZygpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG90YWxBbW91bnQ7XHJcbiAgfVxyXG5cclxuICByZXNldFdlZWtseUNlcnREYXRhKCkge1xyXG4gICAgdGhpcy53ZWVrbHlDZXJ0RGF0YSA9IG5ldyBXZWVrbHlDZXJ0aWZpY2F0aW9uTW9kZWwoKTtcclxuICB9XHJcblxyXG4gIGdldFdvcmtTZWFyY2hSZWNvcmRzQ291bnRXaXRoTm90SGlyZWRTdGF0dXMoKSB7XHJcbiAgICBsZXQgd29ya1NlYXJjaFJlY29yZHM6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbFtdID0gdGhpcy5nZXRXb3JrU2VhcmNoUmVjb3JkcygpO1xyXG4gICAgaWYgKHdvcmtTZWFyY2hSZWNvcmRzID09IG51bGwgfHwgd29ya1NlYXJjaFJlY29yZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgd29ya1NlYXJjaFJlY29yZHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHdvcmtTZWFyY2hSZWNvcmRzW2luZGV4XS5zZWFyY2hSZXN1bHQgPT0gJ05PSEknKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50V2l0aEhpcmVkU3RhdHVzKCk6IG51bWJlciB7XHJcbiAgICBsZXQgd29ya1NlYXJjaFJlY29yZHM6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbFtdID0gdGhpcy5nZXRXb3JrU2VhcmNoUmVjb3JkcygpO1xyXG4gICAgaWYgKHdvcmtTZWFyY2hSZWNvcmRzID09IG51bGwgfHwgd29ya1NlYXJjaFJlY29yZHMubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgd29ya1NlYXJjaFJlY29yZHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHdvcmtTZWFyY2hSZWNvcmRzW2luZGV4XS5zZWFyY2hSZXN1bHQgPT0gJ0hJUkUnKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY291bnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0lmSW5hZGVxdWF0ZVdvcmtTZWFyY2hRdWVzdGlvbm5haXJlU2hvdWxkQmVPcGVuZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZih0aGlzLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hEYXRhLmlzV29ya1NlYXJjaFBlcmZvcm1lZEZsYWcgPT0gXCIxXCIpe1xyXG4gICAgICBpZiAoIHRoaXMuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudCgpIDwgMSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5nZXRXb3JrU2VhcmNoUmVjb3Jkc0NvdW50V2l0aEhpcmVkU3RhdHVzKCkgPiAwKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudCgpIDwgMykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudFdpdGhOb3RIaXJlZFN0YXR1cygpIDwgMSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBoYXNSZWZlcnJhbFJlY29yZHMoKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaGFzUmVmZXJyYWxQcmVzZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy53ZWVrbHlDZXJ0RGF0YS53b3JrU2VhcmNoUmVjb3JkcyAhPSBudWxsICYmIHRoaXMud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaFJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hSZWNvcmRzLmZvckVhY2goXHJcbiAgICAgICAgKHdya1NyY2hNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHdya1NyY2hNb2RlbC5zZWFyY2hSZXN1bHQgPT0gJ01ERVMnKSB7XHJcbiAgICAgICAgICAgIGhhc1JlZmVycmFsUHJlc2VudCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGhhc1JlZmVycmFsUHJlc2VudDtcclxuICB9XHJcblxyXG4gIGNvbnZlcnROdW1iZXJUb0Jvb2xlYW4odmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSA9PSAxKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TnVsbElmRW1wdHkodmFsdWUpe1xyXG4gICAgaWYodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gJycpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldFdvcmtTZWFyY2hXYWl2ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy53ZWVrbHlDZXJ0U2VydmVyRGF0YS5pc1dvcmtTZWFyY2hXYWl2ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRXYWl0aW5nV2Vla1NlcnZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmlzV2FpdGluZ1dlZWtTZXJ2ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRIaWRJc1NlYXBQYXJ0aWNpcGFudCgpIHtcclxuICAgIHJldHVybiB0aGlzLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmhpZElzU2VhcFBhcnRpY2lwYW50O1xyXG4gIH1cclxufVxyXG4iXX0=
41
+ }], () => [{ type: i1.HttpClient }], null); })();
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtdjIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUVsRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7SUFDaEUsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQW1CLElBQWdCO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURLLFNBQUksR0FBSixJQUFJLENBQVk7SUFFbkMsQ0FBQztJQUVELDZCQUE2QixDQUFDLFFBQWdCO1FBQzlDLDZFQUE2RTtRQUMzRSxJQUFJLFNBQVMsR0FBRSxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsR0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQU0scUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckUsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLDhDQUE4QyxDQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUF5QiwrQkFBK0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7b0ZBOUJRLG1CQUFtQjt1RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTs7aUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFydGlhbEVtcGxveW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9QYXJ0aWFsRW1wbG95bWVudE1vZGVsJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5Q2VydFNlcnZpY2VWMiBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuXHJcbiAgc2V0U2VydmljZUNvbnRleHQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2VDb250ZXh0ID0gTGliQ29uc3RhbnRzLndlZWtseWNlcnRfc2VydmljZS5jb250ZXh0O1xyXG4gIH1cclxuICBzZXRTZXJ2aWNlUG9ydCgpIHtcclxuICAgIHRoaXMuc2VydmljZVBvcnQgPSBMaWJDb25zdGFudHMud2Vla2x5Y2VydF9zZXJ2aWNlLnBvcnQ7XHJcbiAgfVxyXG4gIHNldFNlcnZpY2VQcm90b2NvbCgpIHtcclxuICAgIHRoaXMucHJvdG9jb2wgPSBMaWJDb25zdGFudHMud2Vla2x5Y2VydF9zZXJ2aWNlLnByb3RvY29sO1xyXG4gIH1cclxuICBzZXRTZXJ2aWNlSG9zdCgpIHtcclxuICAgIHRoaXMuaG9zdCA9IExpYkNvbnN0YW50cy53ZWVrbHljZXJ0X3NlcnZpY2UuaG9zdDtcclxuICB9ICBcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVFdmVudEZvclJlb3BlbkFpY0Zsb3coc3NuSW5wdXQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7ICAgIFxyXG4gIC8vICBjb25zb2xlLmxvZyhcImNoZWNrIHRoZSBBaWMgRXZlbnRzIGZvciBjcmVhdGlvbiBvZiB0aGlzIFNTTjo6OlwiK3NzbklucHV0KTtcclxuICAgIGxldCBwYXJhbXNWYWwgPW51bGw7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoZWNrIHRoZSBBaWMgRXZlbnRzIGZvciBjcmVhdGlvbiBvZiB0aGlzIFNTTjo6OiA2Li4uLlwiK3BhcmFtc1ZhbCk7XHJcbiAgICAgICByZXR1cm4gdGhpcy5nZXQ8YW55Pihgd2Vla2x5Y2VydC9ldmVudHMvJHtzc25JbnB1dH1gKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBnZXRQYXJ0aWFsRW1wbG95bWVudCgpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIHRvIGdldCB0aGUgSUYgYW55IHBhcnRpYWwgZW1wbG95bWVudFwiICk7XHJcbiAgICAgICByZXR1cm4gdGhpcy5nZXQ8UGFydGlhbEVtcGxveW1lbnRNb2RlbD4oJ3dlZWtseWNlcnQvcGFydGlhbC1lbXBsb3ltZW50Jyk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIFxyXG5cclxuIl19
@@ -45,5 +45,7 @@ export class AppRegex {
45
45
  * @description Regular Expression to station no. format
46
46
  */
47
47
  static { this.STATION_NO_REGEX = /^[A-Za-z0-9]{4}$/; }
48
+ static { this.ACCOUNT_NUMBER_REGEX_MIN = /^\d{8,17}$/; }
49
+ static { this.ROUTING_NUMBER_REGEX = /^[0-4]{1}[0-9]{8}$/; }
48
50
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwUmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3ZhbGlkYXRpb25zL0FwcFJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFDakI7O01BRUU7YUFDSyxtQkFBYyxHQUFZLHdCQUF3QixDQUFDO0lBRTFEOztNQUVFO2FBQ0ssZUFBVSxHQUFhLDBCQUEwQixDQUFDO0lBRXpEOztNQUVFO2FBQ0ssMEJBQXFCLEdBQWEsZ0JBQWdCLENBQUM7SUFFMUQ7O01BRUU7YUFDSyx3QkFBbUIsR0FBYSw0QkFBNEIsQ0FBQztJQUVwRTs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLGlCQUFZLEdBQWEsWUFBWSxDQUFDO0lBRTdDOztNQUVFO2FBQ0sseUJBQW9CLEdBQVksT0FBTyxDQUFDO0lBRS9DOztNQUVFO2FBQ0ssZ0JBQVcsR0FBYSx3SkFBd0osQ0FBQztJQUV4TDs7T0FFRzthQUNJLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKlxuICogXG4gKiBAZGVzY3JpcHRpb24gQ2xhc3MgQ29udGFpbnMgYWxsIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCBpbiB0aGUgcHJvamVjdC5cbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFwcFJlZ2V4e1xuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIHVzZXJuYW1lXG4gICAgKi9cbiAgICBzdGF0aWMgVVNFUk5BTUVfUkVHRVggOiBSZWdFeHAgPSAvXlthLXpBLVpdezF9W1xcd1xcQFxcLl0qJC87XG5cbiAgICAvKiogXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBGaXJzdCBOYW1lLCBMYXN0IE5hbWVcbiAgICAqL1xuICAgIHN0YXRpYyBOQU1FX1JFR0VYIDogUmVnRXhwICA9IC9eW0EtWmEteiVdW0EtWmEtelxccyctXSokLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIGF0IGxlYXN0IDEgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMgcHJlc2VudCBvciBub3QgOiAnXycgJ0AnICcqJyAnJCcgJyEnICcjJyAnLidcbiAgICAqL1xuICAgIHN0YXRpYyBDTEFJTUFOVF9TWU1CT0xfUkVHRVggOiBSZWdFeHAgID0gLy4qW19AKiQhIy5dKy4qLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIGF0IGxlYXN0IDIgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMgcHJlc2VudCBvciBub3QgOiAnXycgJ0AnICcqJyAnJCcgJyEnICcjJyAnLidcbiAgICAqL1xuICAgIHN0YXRpYyBBR0VOQ1lfU1lNQk9MX1JFR0VYIDogUmVnRXhwICA9IC8uKltfQCokISMuXSsuKltfQCokISMuXSsuKi87XG5cbiAgICAvKiogXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBzbWFsbCBjYXNlIGxldHRlciBpcyBwcmVzZW50IG9yIG5vdFxuICAgICovXG4gICAgc3RhdGljIExPV0VSX0NBU0VfUkVHRVggOiBSZWdFeHAgID0gLy4qW2Etel0rLiovO1xuXG4gICAgLyoqIFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgdXBwZXIgY2FzZSBsZXR0ZXIgaXMgcHJlc2VudCBvciBub3RcbiAgICAqL1xuICAgIHN0YXRpYyBVUFBFUl9DQVNFX1JFR0VYIDogUmVnRXhwICA9IC8uKltBLVpdKy4qLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIG51bWJiZXIgaXMgcHJlc2VudCBvciBub3RcbiAgICAqL1xuICAgIHN0YXRpYyBOVU1CRVJfUkVHRVggOiBSZWdFeHAgID0gLy4qWzAtOV0rLiovO1xuXG4gICAgLyoqIFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgYWNjb3VudG51bWJlciBoYXMgb25seSBudW1iZXJzIHByZXNlbnQgb3Igbm90XG4gICAgKi9cbiAgICBzdGF0aWMgQUNDT1VOVF9OVU1CRVJfUkVHRVggOiBSZWdFeHAgPSAvXlxcZCskLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGVtYWlsIGZvcm1hdFxuICAgICovXG4gICAgc3RhdGljIEVNQUlMX1JFR0VYIDogUmVnRXhwICA9IC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byBzdGF0aW9uIG5vLiBmb3JtYXRcbiAgICAgKi9cbiAgICBzdGF0aWMgU1RBVElPTl9OT19SRUdFWCA9IC9eW0EtWmEtejAtOV17NH0kLztcbn0iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwUmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3ZhbGlkYXRpb25zL0FwcFJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFDakI7O01BRUU7YUFDSyxtQkFBYyxHQUFZLHdCQUF3QixDQUFDO0lBRTFEOztNQUVFO2FBQ0ssZUFBVSxHQUFhLDBCQUEwQixDQUFDO0lBRXpEOztNQUVFO2FBQ0ssMEJBQXFCLEdBQWEsZ0JBQWdCLENBQUM7SUFFMUQ7O01BRUU7YUFDSyx3QkFBbUIsR0FBYSw0QkFBNEIsQ0FBQztJQUVwRTs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLGlCQUFZLEdBQWEsWUFBWSxDQUFDO0lBRTdDOztNQUVFO2FBQ0sseUJBQW9CLEdBQVksT0FBTyxDQUFDO0lBRS9DOztNQUVFO2FBQ0ssZ0JBQVcsR0FBYSx3SkFBd0osQ0FBQztJQUV4TDs7T0FFRzthQUNJLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDO2FBRXRDLDZCQUF3QixHQUFZLFlBQVksQ0FBQzthQUVqRCx5QkFBb0IsR0FBVSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKipcclxuICogXHJcbiAqIEBkZXNjcmlwdGlvbiBDbGFzcyBDb250YWlucyBhbGwgcmVndWxhciBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBwcm9qZWN0LlxyXG4gKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBcHBSZWdleHtcclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgdXNlcm5hbWVcclxuICAgICovXHJcbiAgICBzdGF0aWMgVVNFUk5BTUVfUkVHRVggOiBSZWdFeHAgPSAvXlthLXpBLVpdezF9W1xcd1xcQFxcLl0qJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBGaXJzdCBOYW1lLCBMYXN0IE5hbWVcclxuICAgICovXHJcbiAgICBzdGF0aWMgTkFNRV9SRUdFWCA6IFJlZ0V4cCAgPSAvXltBLVphLXolXVtBLVphLXpcXHMnLV0qJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBhdCBsZWFzdCAxIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyIGlzIHByZXNlbnQgb3Igbm90IDogJ18nICdAJyAnKicgJyQnICchJyAnIycgJy4nXHJcbiAgICAqL1xyXG4gICAgc3RhdGljIENMQUlNQU5UX1NZTUJPTF9SRUdFWCA6IFJlZ0V4cCAgPSAvLipbX0AqJCEjLl0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgYXQgbGVhc3QgMiBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlciBpcyBwcmVzZW50IG9yIG5vdCA6ICdfJyAnQCcgJyonICckJyAnIScgJyMnICcuJ1xyXG4gICAgKi9cclxuICAgIHN0YXRpYyBBR0VOQ1lfU1lNQk9MX1JFR0VYIDogUmVnRXhwICA9IC8uKltfQCokISMuXSsuKltfQCokISMuXSsuKi87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBzbWFsbCBjYXNlIGxldHRlciBpcyBwcmVzZW50IG9yIG5vdFxyXG4gICAgKi9cclxuICAgIHN0YXRpYyBMT1dFUl9DQVNFX1JFR0VYIDogUmVnRXhwICA9IC8uKlthLXpdKy4qLztcclxuXHJcbiAgICAvKiogXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIHVwcGVyIGNhc2UgbGV0dGVyIGlzIHByZXNlbnQgb3Igbm90XHJcbiAgICAqL1xyXG4gICAgc3RhdGljIFVQUEVSX0NBU0VfUkVHRVggOiBSZWdFeHAgID0gLy4qW0EtWl0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgbnVtYmJlciBpcyBwcmVzZW50IG9yIG5vdFxyXG4gICAgKi9cclxuICAgIHN0YXRpYyBOVU1CRVJfUkVHRVggOiBSZWdFeHAgID0gLy4qWzAtOV0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgYWNjb3VudG51bWJlciBoYXMgb25seSBudW1iZXJzIHByZXNlbnQgb3Igbm90XHJcbiAgICAqL1xyXG4gICAgc3RhdGljIEFDQ09VTlRfTlVNQkVSX1JFR0VYIDogUmVnRXhwID0gL15cXGQrJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBlbWFpbCBmb3JtYXRcclxuICAgICovXHJcbiAgICBzdGF0aWMgRU1BSUxfUkVHRVggOiBSZWdFeHAgID0gL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHN0YXRpb24gbm8uIGZvcm1hdFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgU1RBVElPTl9OT19SRUdFWCA9IC9eW0EtWmEtejAtOV17NH0kLztcclxuXHJcbiAgICBzdGF0aWMgQUNDT1VOVF9OVU1CRVJfUkVHRVhfTUlOIDogUmVnRXhwID0gL15cXGR7OCwxN30kLztcclxuXHJcbiAgICBzdGF0aWMgUk9VVElOR19OVU1CRVJfUkVHRVg6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87ICBcclxufSJdfQ==
@@ -1,10 +1,20 @@
1
- import { Validators } from '@angular/forms';
2
1
  /***
3
2
  *
4
3
  * @description Class Contains all common form validation used in the project.
5
4
  * @author Prerak Tiwari
6
5
  */
7
6
  export class AppValidators {
7
+ /**
8
+ * checks if state field has a value other than KS
9
+ * @param c control
10
+ * @returns {requiredKansas: boolean}
11
+ */
12
+ static requiredKansas(c) {
13
+ if (c.value?.value == undefined || c.value?.value === 'KS') {
14
+ return null;
15
+ }
16
+ return { requiredKansas: true };
17
+ }
8
18
  static confirmPasswordValidator(c) {
9
19
  if (c.get('password').value != c.get('confirmPassword').value) {
10
20
  return { invalid: true };
@@ -61,16 +71,24 @@ export class AppValidators {
61
71
  }
62
72
  // @dynamic
63
73
  static requiredIfValidator(predicate) {
64
- const func = (formControl => {
65
- if (!formControl.parent) {
74
+ return (formControl) => {
75
+ try {
76
+ if (!formControl) {
77
+ return null;
78
+ }
79
+ if (predicate()) {
80
+ const val = formControl.value;
81
+ // Check for null, undefined, or empty string
82
+ if (val === null || val === undefined || val === '') {
83
+ return { required: 'required' };
84
+ }
85
+ }
66
86
  return null;
67
87
  }
68
- if (predicate() === '1' || predicate() === 'true' || predicate()) {
69
- return Validators.required(formControl);
88
+ catch (e) {
89
+ return null;
70
90
  }
71
- return null;
72
- });
73
- return func;
91
+ };
74
92
  }
75
93
  /**
76
94
  *
@@ -115,6 +133,12 @@ export class AppValidators {
115
133
  }
116
134
  return;
117
135
  }
136
+ static isValidLengthRoutingNumber(control) {
137
+ debugger;
138
+ if (control.value != null && (control.value.length != 9)) {
139
+ return { invalidLengthRouting: true };
140
+ }
141
+ }
118
142
  static isValidZipCode(control) {
119
143
  if (control.value != null && !AppValidators.isNumber(control.value)) {
120
144
  return { invalidNumber: true };
@@ -151,18 +175,6 @@ export class AppValidators {
151
175
  }
152
176
  };
153
177
  }
154
- static isBetweenDate(from, to) {
155
- return (control) => {
156
- if (!control.value) {
157
- // if control is empty return no error
158
- return null;
159
- }
160
- let wsDate = control.value;
161
- if (wsDate < from || wsDate > to) {
162
- return { dateNotBetween: true };
163
- }
164
- };
165
- }
166
178
  static equal(matchingControlName, error) {
167
179
  return (control) => {
168
180
  if (!control.parent) {
@@ -202,68 +214,40 @@ export class AppValidators {
202
214
  return valid ? null : error;
203
215
  };
204
216
  }
205
- static isAfter(first) {
206
- //return (control: AbstractControl): ValidationErrors | null => {
207
- return (control) => {
208
- if (!control.value) {
209
- // if control is empty return no error
217
+ /**
218
+ *
219
+ * @param weekstart and weekEnd date
220
+ * @param error earningsRequired error which should be returned in case validation fails
221
+ *
222
+ * @description Form validator to validate earnings and hours worked is avalible if ldw falls within the week of filling
223
+ *
224
+ * @author Steevan Macwan
225
+ */
226
+ static requireEarningsIfWorked(sunDate, satDate) {
227
+ return (group) => {
228
+ const lastDayWorked = group.get('lastDayWorked')?.value;
229
+ const grossEarning = group.get('grossEarning')?.value;
230
+ const hoursWorked = group.get('hoursWorkedInWeek')?.value;
231
+ // Skip if lastDayWorked is missing
232
+ if (!lastDayWorked) {
210
233
  return null;
211
234
  }
212
- let wsDate = control.value;
213
- //first = new Date('01-01-1970 00:03:44');
214
- if (wsDate.getDate() > first.getDate()) {
215
- console.log("dateAfter : true");
216
- return { dateAfter: false };
217
- }
218
- console.log("dateAfter : false");
219
- };
220
- }
221
- static test(control) {
222
- const testConst = control.value;
223
- if (testConst === "hi") {
224
- return null;
225
- }
226
- else {
227
- return { nomatch: true };
228
- }
229
- }
230
- static areAllDigitsSame(str) {
231
- return str.split('').every(c => c === str[0]);
232
- }
233
- static amountLessThanOne(control) {
234
- let val = Number.parseFloat(control.value);
235
- if (val < 1.00) {
236
- return { payAmountLessThanOne: true };
237
- }
238
- return;
239
- }
240
- /***
241
- * This method checks if the entered city has length<=30
242
- */
243
- static isValidWsCity(control) {
244
- if (control.value != null && (control.value.length <= 30)) {
245
- //do nothing
246
- }
247
- else {
248
- return { invalidwsCityLength: true };
249
- }
250
- }
251
- static isEqual(value) {
252
- return (control) => {
253
- if (value != control.value) {
254
- return { notEqual: true };
235
+ const lastDay = lastDayWorked instanceof Date ? lastDayWorked : new Date(lastDayWorked);
236
+ // Check if lastDayWorked falls within the week
237
+ if (lastDay >= sunDate && lastDay <= satDate) {
238
+ if (!grossEarning || grossEarning === 0) {
239
+ group.get('grossEarning')?.setErrors({ earningsRequired: true });
240
+ }
241
+ if (!hoursWorked || hoursWorked === 0) {
242
+ group.get('hoursWorkedInWeek')?.setErrors({ earningsRequired: true });
243
+ }
244
+ // If work was performed but grossEarning or hoursWorked is missing
245
+ if (!grossEarning || grossEarning === 0 || !hoursWorked || hoursWorked === 0) {
246
+ return { earningsRequired: true };
247
+ }
255
248
  }
256
249
  return null;
257
250
  };
258
251
  }
259
- static isValidWebsite(control) {
260
- var reg = /^(https?:\/\/|ftp:\/\/)?(www\.)?([a-zA-Z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,6})(\/[a-zA-Z0-9#\/?=&%.\-]*)?$/i;
261
- if (control.value != null && !reg.test(control.value)) {
262
- return { invalidWebsite: true };
263
- }
264
- else {
265
- return null;
266
- }
267
- }
268
252
  }
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pIOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUV4QixNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBa0I7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLFNBQTJCO1FBQ3BFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVztJQUNYLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLG1CQUEyQjtRQUN0RSxNQUFNLElBQUksR0FBRyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNoRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO2dCQUN4RSxPQUFPO2FBQ1I7WUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDM0MsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQy9DO2lCQUFNO2dCQUNMLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO0lBQ1gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQXNCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBdUIsRUFBMkIsRUFBRTtZQUNoRSxNQUFNLDZCQUE2QixHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RJLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzRSxDQUFDLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO0lBQ1gsTUFBTSxDQUFDLCtCQUErQixDQUFDLGNBQXNCLENBQUMsRUFBRSxJQUFhO1FBQzNFLE9BQU8sU0FBUyxRQUFRLENBQUMsU0FBb0I7WUFDM0MsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUE7WUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3hELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtvQkFDYixpQkFBaUIsRUFBRSxDQUFBO2lCQUNwQjtZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxpQkFBaUIsR0FBRyxXQUFXLEVBQUU7Z0JBQ25DLE9BQU87b0JBQ0wsMEJBQTBCLEVBQUUsSUFBSTtpQkFDakMsQ0FBQTthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQUE7SUFDSCxDQUFDO0lBRUQsV0FBVztJQUNYLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxJQUFJLFNBQVMsRUFBRSxLQUFLLEdBQUcsSUFBSSxTQUFTLEVBQUUsS0FBSyxNQUFNLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQ2hFLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN6QztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLEtBQXVCO1FBQ2xELE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBd0IsRUFBMEIsRUFBRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsc0NBQXNDO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsNERBQTREO1lBQzVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUM7Ozs7OztNQU1FO0lBQ0osTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQXdCO1FBQ2xELElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRyxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0csR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ2YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDO1NBQzFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLElBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQztZQUNqRSxPQUFPLEVBQUMsYUFBYSxFQUFHLElBQUksRUFBQyxDQUFDO1NBQy9CO2FBQUssSUFBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBQztZQUN6RixZQUFZO1NBQ2I7YUFBSTtZQUNILE9BQU8sRUFBQyxhQUFhLEVBQUcsSUFBSSxFQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE9BQXdCO1FBQ3BELElBQUcsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQztZQUMvQyxPQUFPLEVBQUMsY0FBYyxFQUFHLElBQUksRUFBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTTtRQUMzQixJQUFJLEdBQUcsR0FBRyxzRUFBc0UsQ0FBQztRQUNqRixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUNwQixJQUFJLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBVyxFQUFFLEVBQVE7UUFDcEMsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7WUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xCLHNDQUFzQztnQkFDdEMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0IsSUFBRyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUM7Z0JBQ3RFLE9BQU8sRUFBQyxjQUFjLEVBQUcsSUFBSSxFQUFDLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFVLEVBQUUsRUFBTztRQUN0QyxPQUFPLENBQUMsT0FBd0IsRUFBMEIsRUFBRTtZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsc0NBQXNDO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFHLE1BQU0sR0FBRyxJQUFJLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBQztnQkFDOUIsT0FBTyxFQUFDLGNBQWMsRUFBRyxJQUFJLEVBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUEyQixFQUFFLEtBQXVCO1FBQy9ELE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxlQUFlLEdBQW9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO2dCQUM1QyxzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhELHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBMkIsRUFBRSxLQUF1QjtRQUNsRSxPQUFPLENBQUMsT0FBd0IsRUFBMEIsRUFBRTtZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELElBQUksZUFBZSxHQUFvQixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDNUMsc0NBQXNDO2dCQUN0QyxPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV4RCx3RkFBd0Y7WUFDeEYsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQVk7UUFFekIsa0VBQWtFO1FBQ2xFLE9BQU8sQ0FBQyxPQUF3QixFQUF5QixFQUFFO1lBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNsQixzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLDBDQUEwQztZQUMxQyxJQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUM7Z0JBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtnQkFDL0IsT0FBTyxFQUFDLFNBQVMsRUFBRyxLQUFLLEVBQUMsQ0FBQzthQUM1QjtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtRQUNsQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUF3QjtRQUVsQyxNQUFNLFNBQVMsR0FBVSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEVBQUMsT0FBTyxFQUFHLElBQUksRUFBQyxDQUFBO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFXO1FBQ25DLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEVBQUU7WUFDZCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdkM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUNEOztRQUVJO0lBQ0osTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUF3QjtRQUMzQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDekQsWUFBWTtTQUNiO2FBQU07WUFDTCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1FBQ2xCLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQzFELElBQUcsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUM7Z0JBQ3hCLE9BQU8sRUFBQyxRQUFRLEVBQUcsSUFBSSxFQUFDLENBQUM7YUFDMUI7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLElBQUksR0FBRyxHQUFHLDhHQUE4RyxDQUFDO1FBQ3pILElBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQztZQUNuRCxPQUFPLEVBQUMsY0FBYyxFQUFHLElBQUksRUFBQyxDQUFDO1NBQ2pDO2FBQUk7WUFDSixPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLyoqKlxuICogXG4gKiBAZGVzY3JpcHRpb24gQ2xhc3MgQ29udGFpbnMgYWxsIGNvbW1vbiBmb3JtIHZhbGlkYXRpb24gdXNlZCBpbiB0aGUgcHJvamVjdC5cbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG5leHBvcnQgY2xhc3MgQXBwVmFsaWRhdG9ycyB7XG5cbiAgc3RhdGljIGNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IGludmFsaWQ6IGJvb2xlYW4gfSB7XG4gICAgaWYgKGMuZ2V0KCdwYXNzd29yZCcpLnZhbHVlICE9IGMuZ2V0KCdjb25maXJtUGFzc3dvcmQnKS52YWx1ZSkge1xuICAgICAgcmV0dXJuIHsgaW52YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBwYXNzd29yZEFuZENvbmZpcm1QYXNzd29yZE11c3RNYXRjaChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBjb25zdCB7IHZhbHVlOiBwYXNzd29yZCB9ID0gZm9ybUdyb3VwLmdldCgncGFzc3dvcmQnKTtcbiAgICBjb25zdCB7IHZhbHVlOiBjb25maXJtUGFzc3dvcmQgfSA9IGZvcm1Hcm91cC5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpO1xuICAgIHJldHVybiBwYXNzd29yZCA9PT0gY29uZmlybVBhc3N3b3JkID8gbnVsbCA6IHsgcGFzc3dvcmROb3RNYXRjaDogdHJ1ZSB9O1xuICB9XG5cbiAgLy8gQGR5bmFtaWNcbiAgc3RhdGljIGNvbmZpcm1WYWxpZGF0b3IoY29udHJvbE5hbWU6IHN0cmluZywgbWF0Y2hpbmdDb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZnVuYyA9IChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdO1xuICAgICAgY29uc3QgbWF0Y2hpbmdDb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW21hdGNoaW5nQ29udHJvbE5hbWVdO1xuICAgICAgaWYgKG1hdGNoaW5nQ29udHJvbC5lcnJvcnMgJiYgIW1hdGNoaW5nQ29udHJvbC5lcnJvcnMuY29uZmlybWVkVmFsaWRhdG9yKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChjb250cm9sLnZhbHVlICE9PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgbWF0Y2hpbmdDb250cm9sLnNldEVycm9ycyh7IG5vdE1hdGNoOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWF0Y2hpbmdDb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH1cbiAgXG4gIC8vIEBkeW5hbWljXG4gIHN0YXRpYyBzZWxlY3RBdGxlYXN0T25lKHZhbGlkYXRvcjogVmFsaWRhdG9yRm4pIHtcbiAgICBjb25zdCBmdW5jID0gKGdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgaXNBdGxlYXN0T25lUGFzc1RoZVZhbGlkYXRpb24gPSBncm91cCAmJiBncm91cC5jb250cm9scyAmJiBPYmplY3Qua2V5cyhncm91cC5jb250cm9scykuc29tZShrID0+ICF2YWxpZGF0b3IoZ3JvdXAuY29udHJvbHNba10pKTtcbiAgICAgIHJldHVybiBpc0F0bGVhc3RPbmVQYXNzVGhlVmFsaWRhdGlvbiA/IG51bGwgOiB7IHNlbGVjdEF0bGVhc3RPbmU6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH1cblxuICAvLyBAZHluYW1pY1xuICBzdGF0aWMgYXRMZWFzdE9uZU5vblplcm9WYWx1ZVZhbGlkYXRvcihtaW5SZXF1aXJlZDogbnVtYmVyID0gMSwgbmFtZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gdmFsaWRhdGUoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgIGxldCBub09mTm9uWmVyb1ZhbHVlcyA9IDBcbiAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2tleV1cbiAgICAgICAgbGV0IHZhbHVlID0gbmFtZSA/ICBjb250cm9sLnZhbHVlW25hbWVdIDogY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlID4gMCkge1xuICAgICAgICAgIG5vT2ZOb25aZXJvVmFsdWVzKytcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGlmIChub09mTm9uWmVyb1ZhbHVlcyA8IG1pblJlcXVpcmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVxdWlyZUNoZWNrYm94VG9CZUNoZWNrZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgLy8gQGR5bmFtaWNcbiAgc3RhdGljIHJlcXVpcmVkSWZWYWxpZGF0b3IocHJlZGljYXRlKSB7XG4gICAgY29uc3QgZnVuYyA9IChmb3JtQ29udHJvbCA9PiB7XG4gICAgICBpZiAoIWZvcm1Db250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZWRpY2F0ZSgpID09PSAnMScgfHwgcHJlZGljYXRlKCkgPT09ICd0cnVlJyB8fCBwcmVkaWNhdGUoKSkge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5yZXF1aXJlZChmb3JtQ29udHJvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KVxuICAgIHJldHVybiBmdW5jO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gcmVnZXggUmVndWxhciBFeHByZXNzaW9uIGFnYWluc3Qgd2hpY2ggdmFsdWUgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gRm9ybSB2YWxpZGF0b3IgdG8gdmFsaWRhdGUgY29udHJvbCB2YWx1ZSBhZ2FpbnN0IGEgcmVndWxhciBleHByZXNzaW9uXG4gICAqIFxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcbiAgICovXG4gICBzdGF0aWMgbWF0Y2gocmVnZXg6IFJlZ0V4cCwgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgZnVuYyA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgYWdhaW5zdCB0aGUgcmVnZXhwIHN1cHBsaWVkXG4gICAgICBjb25zdCB2YWxpZCA9IHJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSk7XG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuXG4gICAgLyoqKlxuICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBlbnRlcmVkIHJvdXRpbmcgbnVtYmVyIGlzIHZhbGlkIG9yIG5vdCBhcyBwZXIgZm9sbG93aW5nIGxvZ2ljXG4gICAgKiBcbiAgICAqICgzICogKGQxICsgZDQgKyBkNykgKyA3ICogKGQyICsgZDUgKyBkOCkgKyAxICogKGQzICsgZDYgKyBkOSkgKSBtb2QgMTAgPSAwXG4gICAgKiBcbiAgICAqICBUaGlzIGZvcm11bGEgaXMgdGFrZW4gZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb3V0aW5nX3RyYW5zaXRfbnVtYmVyI01JQ1JfUm91dGluZ19udW1iZXJfZm9ybWF0XG4gICAgKi9cbiAgc3RhdGljIGlzVmFsaWRSb3V0aW5nTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgbGV0IHJvdXRpbmdOdW1iZXIgPSBjb250cm9sLnZhbHVlO1xuICAgIGxldCBzdW0gPSAwLCBtb2QgPSAwO1xuICAgIGxldCByb3V0aW5nTnVtYmVyQXJyID0gKHJvdXRpbmdOdW1iZXIgKyBcIlwiKS5zcGxpdChcIlwiKTtcbiAgICBsZXQgc3VtMSA9IDMgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclswXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzNdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbNl0pKTtcbiAgICBsZXQgc3VtMiA9IDcgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsxXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzRdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbN10pKTtcbiAgICBsZXQgc3VtMyA9IDEgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsyXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzVdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbOF0pKTtcblxuICAgIHN1bSA9IHN1bTEgKyBzdW0yICsgc3VtMztcbiAgICBtb2QgPSBzdW0gJSAxMDtcblxuICAgIGlmICghKG1vZCA9PSAwKSkge1xuICAgICAgcmV0dXJuIHsgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfXtcbiAgICBpZihjb250cm9sLnZhbHVlICE9IG51bGwgJiYgIUFwcFZhbGlkYXRvcnMuaXNOdW1iZXIoY29udHJvbC52YWx1ZSkpe1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTnVtYmVyIDogdHJ1ZX07XG4gICAgfWVsc2UgaWYoY29udHJvbC52YWx1ZSAhPSBudWxsICYmIChjb250cm9sLnZhbHVlLmxlbmd0aCA9PSA1IHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoID09IDkpKXtcbiAgICAgIC8vZG8gbm90aGluZ1xuICAgIH1lbHNle1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTGVuZ3RoIDogdHJ1ZX07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRDYW5hZGlhblppcENvZGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbczogc3RyaW5nXTogYm9vbGVhbiB9IHtcbiAgICBpZighQXBwVmFsaWRhdG9ycy5pc0NhbmFkYVppcENvZGUoY29udHJvbC52YWx1ZSkpe1xuICAgICAgcmV0dXJuIHtpbnZhbGlkWmlwQ29kZSA6IHRydWV9O1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpc0NhbmFkYVppcENvZGUoc3RyaW5nKSB7XG4gICAgdmFyIHJlZyA9IC9eW0FCQ0VHSEotTlBSU1RWWFldXFxkW0FCQ0VHSEotTlBSU1RWLVpdWyAtXT9cXGRbQUJDRUdISi1OUFJTVFYtWl1cXGQkL2k7XG4gICAgcmV0dXJuIHJlZy50ZXN0KHN0cmluZyk7XG4gIH1cblxuICBzdGF0aWMgaXNOdW1iZXIobnVtYmVyKSB7XG4gICAgdmFyIHJlZyA9IG5ldyBSZWdFeHAoXCJeWzAtOV0qJFwiKTsgXG4gICAgcmV0dXJuIHJlZy50ZXN0KG51bWJlcik7XG4gIH1cblxuICBzdGF0aWMgaXNCZXR3ZWVuKGZyb20gOiBEYXRlLCB0bzogRGF0ZSkgOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGxldCB3c0RhdGUgPSBjb250cm9sLnZhbHVlO1xuICAgICAgaWYod3NEYXRlLmdldFRpbWUoKSA8IGZyb20uZ2V0VGltZSgpIHx8IHdzRGF0ZS5nZXRUaW1lKCkgPiB0by5nZXRUaW1lKCkpe1xuICAgICAgICByZXR1cm4ge2RhdGVOb3RCZXR3ZWVuIDogdHJ1ZX07XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc0JldHdlZW5EYXRlKGZyb206IERhdGUsIHRvOkRhdGUpIDogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgd3NEYXRlID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGlmKHdzRGF0ZSA8IGZyb20gfHwgd3NEYXRlID4gdG8pe1xuICAgICAgICByZXR1cm4ge2RhdGVOb3RCZXR3ZWVuIDogdHJ1ZX07XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBlcXVhbChtYXRjaGluZ0NvbnRyb2xOYW1lOiBzdHJpbmcsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wucGFyZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgbGV0IG1hdGNoaW5nQ29udHJvbDogQWJzdHJhY3RDb250cm9sID0gY29udHJvbC5wYXJlbnQuZ2V0KG1hdGNoaW5nQ29udHJvbE5hbWUpO1xuICAgICAgaWYgKCFjb250cm9sLnZhbHVlIHx8ICFtYXRjaGluZ0NvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbGlkID0gKGNvbnRyb2wudmFsdWUgPT09IG1hdGNoaW5nQ29udHJvbC52YWx1ZSk7XG5cbiAgICAgIC8vIGlmIHRydWUsIHJldHVybiBubyBlcnJvciAobm8gZXJyb3IpLCBlbHNlIHJldHVybiBlcnJvciBwYXNzZWQgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXJcbiAgICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiBlcnJvcjtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gbWF0Y2hpbmdDb250cm9sTmFtZSBGb3JtIGNvbnRyb2wgbmFtZSBhZ2FpbnN0IHdoaWNoIGN1cnJlbnQgZm9ybSBjb250cm9sIHZhbHVlIHNob3VsZCBiZSBtYXRjaGVkXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gRm9ybSB2YWxpZGF0b3IgdG8gdmFsaWRhdGUgY29udHJvbCB2YWx1ZSBhZ2FpbnN0IGEgb3RoZXIgY29udHJvbCB2YWx1ZVxuICAgKiBcbiAgICogQGF1dGhvciBQcmVyYWsgVGl3YXJpXG4gICAqL1xuICBzdGF0aWMgbm90RXF1YWwobWF0Y2hpbmdDb250cm9sTmFtZTogc3RyaW5nLCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKCFjb250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGxldCBtYXRjaGluZ0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IGNvbnRyb2wucGFyZW50LmdldChtYXRjaGluZ0NvbnRyb2xOYW1lKTtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSB8fCAhbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWxpZCA9IChjb250cm9sLnZhbHVlICE9PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpO1xuXG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBpc0FmdGVyKGZpcnN0IDogRGF0ZSkgIHtcbiAgICBcbiAgICAvL3JldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogIFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH09PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgd3NEYXRlID0gY29udHJvbC52YWx1ZTtcbiAgICAgIC8vZmlyc3QgPSBuZXcgRGF0ZSgnMDEtMDEtMTk3MCAwMDowMzo0NCcpO1xuICAgICAgaWYod3NEYXRlLmdldERhdGUoKSA+IGZpcnN0LmdldERhdGUoKSl7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZGF0ZUFmdGVyIDogdHJ1ZVwiKVxuICAgICAgICByZXR1cm4ge2RhdGVBZnRlciA6IGZhbHNlfTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKFwiZGF0ZUFmdGVyIDogZmFsc2VcIilcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIHRlc3QoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfXwgbnVsbCAge1xuXG4gICAgY29uc3QgdGVzdENvbnN0OnN0cmluZyA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKHRlc3RDb25zdCA9PT0gXCJoaVwiKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtub21hdGNoIDogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXJlQWxsRGlnaXRzU2FtZShzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3RyLnNwbGl0KCcnKS5ldmVyeShjID0+IGMgPT09IHN0clswXSk7XG59XG5cbiAgc3RhdGljIGFtb3VudExlc3NUaGFuT25lKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgbGV0IHZhbCA9IE51bWJlci5wYXJzZUZsb2F0KGNvbnRyb2wudmFsdWUpO1xuICAgIGlmICh2YWwgPCAxLjAwKSB7XG4gICAgICByZXR1cm4geyBwYXlBbW91bnRMZXNzVGhhbk9uZTogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgLyoqKlxuICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBlbnRlcmVkIGNpdHkgaGFzIGxlbmd0aDw9MzBcbiAgICAqL1xuICBzdGF0aWMgaXNWYWxpZFdzQ2l0eShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtzOiBzdHJpbmddOiBib29sZWFuIH0ge1xuICAgIGlmIChjb250cm9sLnZhbHVlICE9IG51bGwgJiYgKGNvbnRyb2wudmFsdWUubGVuZ3RoIDw9IDMwKSkge1xuICAgICAgLy9kbyBub3RoaW5nXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IGludmFsaWR3c0NpdHlMZW5ndGg6IHRydWUgfTtcbiAgICB9XG4gIH0gXG5cbiAgc3RhdGljIGlzRXF1YWwodmFsdWUpIDogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZih2YWx1ZSAhPSBjb250cm9sLnZhbHVlKXtcbiAgICAgICAgcmV0dXJuIHtub3RFcXVhbCA6IHRydWV9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRXZWJzaXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB2YXIgcmVnID0gL14oaHR0cHM/OlxcL1xcL3xmdHA6XFwvXFwvKT8od3d3XFwuKT8oW2EtekEtWjAtOV0rKFtcXC1cXC5dezF9W2EtejAtOV0rKSpcXC5bYS16XXsyLDZ9KShcXC9bYS16QS1aMC05I1xcLz89JiUuXFwtXSopPyQvaTtcbiAgICBpZihjb250cm9sLnZhbHVlICE9IG51bGwgJiYgIXJlZy50ZXN0KGNvbnRyb2wudmFsdWUpKXtcbiAgICAgIHJldHVybiB7aW52YWxpZFdlYnNpdGUgOiB0cnVlfTtcbiAgIH1lbHNle1xuICAgIHJldHVybiBudWxsO1xuICAgfVxuICB9XG4gIFxufSJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDeEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBa0I7UUFDdEMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEVBQUMsY0FBYyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBa0I7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLFNBQTJCO1FBQ3BFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFD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QixDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkU7Z0JBRUQsbUVBQW1FO2dCQUNuRSxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVksS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLENBQUMsRUFBRTtvQkFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDO2lCQUNuQzthQUNGO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG4vKioqXHJcbiAqIFxyXG4gKiBAZGVzY3JpcHRpb24gQ2xhc3MgQ29udGFpbnMgYWxsIGNvbW1vbiBmb3JtIHZhbGlkYXRpb24gdXNlZCBpbiB0aGUgcHJvamVjdC5cclxuICogQGF1dGhvciBQcmVyYWsgVGl3YXJpXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQXBwVmFsaWRhdG9ycyB7XHJcbiAgLyoqXHJcbiAgICogY2hlY2tzIGlmIHN0YXRlIGZpZWxkIGhhcyBhIHZhbHVlIG90aGVyIHRoYW4gS1NcclxuICAgKiBAcGFyYW0gYyBjb250cm9sXHJcbiAgICogQHJldHVybnMge3JlcXVpcmVkS2Fuc2FzOiBib29sZWFufVxyXG4gICAqL1xyXG4gIHN0YXRpYyByZXF1aXJlZEthbnNhcyhjOiBBYnN0cmFjdENvbnRyb2wpOiB7cmVxdWlyZWRLYW5zYXM6IGJvb2xlYW59IHtcclxuICAgIGlmIChjLnZhbHVlPy52YWx1ZSA9PSB1bmRlZmluZWQgfHwgYy52YWx1ZT8udmFsdWUgPT09ICdLUycpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge3JlcXVpcmVkS2Fuc2FzOiB0cnVlfTtcclxuICB9XHJcbiAgc3RhdGljIGNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IGludmFsaWQ6IGJvb2xlYW4gfSB7XHJcbiAgICBpZiAoYy5nZXQoJ3Bhc3N3b3JkJykudmFsdWUgIT0gYy5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpLnZhbHVlKSB7XHJcbiAgICAgIHJldHVybiB7IGludmFsaWQ6IHRydWUgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBwYXNzd29yZEFuZENvbmZpcm1QYXNzd29yZE11c3RNYXRjaChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIGNvbnN0IHsgdmFsdWU6IHBhc3N3b3JkIH0gPSBmb3JtR3JvdXAuZ2V0KCdwYXNzd29yZCcpO1xyXG4gICAgY29uc3QgeyB2YWx1ZTogY29uZmlybVBhc3N3b3JkIH0gPSBmb3JtR3JvdXAuZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcclxuICAgIHJldHVybiBwYXNzd29yZCA9PT0gY29uZmlybVBhc3N3b3JkID8gbnVsbCA6IHsgcGFzc3dvcmROb3RNYXRjaDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLy8gQGR5bmFtaWNcclxuICBzdGF0aWMgY29uZmlybVZhbGlkYXRvcihjb250cm9sTmFtZTogc3RyaW5nLCBtYXRjaGluZ0NvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGZ1bmMgPSAoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdO1xyXG4gICAgICBjb25zdCBtYXRjaGluZ0NvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNbbWF0Y2hpbmdDb250cm9sTmFtZV07XHJcbiAgICAgIGlmIChtYXRjaGluZ0NvbnRyb2wuZXJyb3JzICYmICFtYXRjaGluZ0NvbnRyb2wuZXJyb3JzLmNvbmZpcm1lZFZhbGlkYXRvcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgbWF0Y2hpbmdDb250cm9sLnNldEVycm9ycyh7IG5vdE1hdGNoOiB0cnVlIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmdW5jO1xyXG4gIH1cclxuICBcclxuICAvLyBAZHluYW1pY1xyXG4gIHN0YXRpYyBzZWxlY3RBdGxlYXN0T25lKHZhbGlkYXRvcjogVmFsaWRhdG9yRm4pIHtcclxuICAgIGNvbnN0IGZ1bmMgPSAoZ3JvdXA6IFVudHlwZWRGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IGlzQXRsZWFzdE9uZVBhc3NUaGVWYWxpZGF0aW9uID0gZ3JvdXAgJiYgZ3JvdXAuY29udHJvbHMgJiYgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpLnNvbWUoayA9PiAhdmFsaWRhdG9yKGdyb3VwLmNvbnRyb2xzW2tdKSk7XHJcbiAgICAgIHJldHVybiBpc0F0bGVhc3RPbmVQYXNzVGhlVmFsaWRhdGlvbiA/IG51bGwgOiB7IHNlbGVjdEF0bGVhc3RPbmU6IHRydWUgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBmdW5jO1xyXG4gIH1cclxuXHJcbiAgLy8gQGR5bmFtaWNcclxuICBzdGF0aWMgYXRMZWFzdE9uZU5vblplcm9WYWx1ZVZhbGlkYXRvcihtaW5SZXF1aXJlZDogbnVtYmVyID0gMSwgbmFtZT86IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiB2YWxpZGF0ZShmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICBsZXQgbm9PZk5vblplcm9WYWx1ZXMgPSAwXHJcbiAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNba2V5XVxyXG4gICAgICAgIGxldCB2YWx1ZSA9IG5hbWUgPyAgY29udHJvbC52YWx1ZVtuYW1lXSA6IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlID4gMCkge1xyXG4gICAgICAgICAgbm9PZk5vblplcm9WYWx1ZXMrK1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgaWYgKG5vT2ZOb25aZXJvVmFsdWVzIDwgbWluUmVxdWlyZWQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcmVxdWlyZUNoZWNrYm94VG9CZUNoZWNrZWQ6IHRydWUsXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEBkeW5hbWljXHJcbiAgc3RhdGljIHJlcXVpcmVkSWZWYWxpZGF0b3IocHJlZGljYXRlKSB7XHJcbiAgICByZXR1cm4gKGZvcm1Db250cm9sKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKCFmb3JtQ29udHJvbCkge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwcmVkaWNhdGUoKSkge1xyXG4gICAgICAgICAgY29uc3QgdmFsID0gZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICAvLyBDaGVjayBmb3IgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eSBzdHJpbmdcclxuICAgICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJykge1xyXG4gICAgICAgICAgICByZXR1cm4geyByZXF1aXJlZDogJ3JlcXVpcmVkJyB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBjYXRjaChlKXtcclxuICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHJlZ2V4IFJlZ3VsYXIgRXhwcmVzc2lvbiBhZ2FpbnN0IHdoaWNoIHZhbHVlIG5lZWRzIHRvIGJlIHZhbGlkYXRlZFxyXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXHJcbiAgICogXHJcbiAgICogQGRlc2NyaXB0aW9uIEZvcm0gdmFsaWRhdG9yIHRvIHZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgYWdhaW5zdCBhIHJlZ3VsYXIgZXhwcmVzc2lvblxyXG4gICAqIFxyXG4gICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxyXG4gICAqL1xyXG4gICBzdGF0aWMgbWF0Y2gocmVnZXg6IFJlZ0V4cCwgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICBjb25zdCBmdW5jID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xyXG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0ZXN0IHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCBhZ2FpbnN0IHRoZSByZWdleHAgc3VwcGxpZWRcclxuICAgICAgY29uc3QgdmFsaWQgPSByZWdleC50ZXN0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXHJcbiAgICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiBlcnJvcjtcclxuICAgIH07XHJcbiAgICByZXR1cm4gZnVuYztcclxuICB9XHJcblxyXG4gICAgLyoqKlxyXG4gICAgKiBUaGlzIG1ldGhvZCBjaGVja3MgaWYgdGhlIGVudGVyZWQgcm91dGluZyBudW1iZXIgaXMgdmFsaWQgb3Igbm90IGFzIHBlciBmb2xsb3dpbmcgbG9naWNcclxuICAgICogXHJcbiAgICAqICgzICogKGQxICsgZDQgKyBkNykgKyA3ICogKGQyICsgZDUgKyBkOCkgKyAxICogKGQzICsgZDYgKyBkOSkgKSBtb2QgMTAgPSAwXHJcbiAgICAqIFxyXG4gICAgKiAgVGhpcyBmb3JtdWxhIGlzIHRha2VuIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUm91dGluZ190cmFuc2l0X251bWJlciNNSUNSX1JvdXRpbmdfbnVtYmVyX2Zvcm1hdFxyXG4gICAgKi9cclxuICBzdGF0aWMgaXNWYWxpZFJvdXRpbmdOdW1iZXIoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbczogc3RyaW5nXTogYm9vbGVhbiB9IHtcclxuICAgIGxldCByb3V0aW5nTnVtYmVyID0gY29udHJvbC52YWx1ZTtcclxuICAgIGxldCBzdW0gPSAwLCBtb2QgPSAwO1xyXG4gICAgbGV0IHJvdXRpbmdOdW1iZXJBcnIgPSAocm91dGluZ051bWJlciArIFwiXCIpLnNwbGl0KFwiXCIpO1xyXG4gICAgbGV0IHN1bTEgPSAzICogKHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbMF0pICsgcGFyc2VJbnQocm91dGluZ051bWJlckFyclszXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzZdKSk7XHJcbiAgICBsZXQgc3VtMiA9IDcgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsxXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzRdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbN10pKTtcclxuICAgIGxldCBzdW0zID0gMSAqIChwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzJdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbNV0pICsgcGFyc2VJbnQocm91dGluZ051bWJlckFycls4XSkpO1xyXG5cclxuICAgIHN1bSA9IHN1bTEgKyBzdW0yICsgc3VtMztcclxuICAgIG1vZCA9IHN1bSAlIDEwO1xyXG5cclxuICAgIGlmICghKG1vZCA9PSAwKSkge1xyXG4gICAgICByZXR1cm4geyBpc1JvdXRpbmdOdW1iZXJOb3RWYWxpZDogdHJ1ZSB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgc3RhdGljIGlzVmFsaWRMZW5ndGhSb3V0aW5nTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfXtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICBpZihjb250cm9sLnZhbHVlICE9IG51bGwgJiYgKGNvbnRyb2wudmFsdWUubGVuZ3RoICE9IDkpKXtcclxuICAgICAgcmV0dXJuIHtpbnZhbGlkTGVuZ3RoUm91dGluZyA6IHRydWV9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfXtcclxuICAgIGlmKGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJiAhQXBwVmFsaWRhdG9ycy5pc051bWJlcihjb250cm9sLnZhbHVlKSl7XHJcbiAgICAgIHJldHVybiB7aW52YWxpZE51bWJlciA6IHRydWV9O1xyXG4gICAgfWVsc2UgaWYoY29udHJvbC52YWx1ZSAhPSBudWxsICYmIChjb250cm9sLnZhbHVlLmxlbmd0aCA9PSA1IHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoID09IDkpKXtcclxuICAgICAgLy9kbyBub3RoaW5nXHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHtpbnZhbGlkTGVuZ3RoIDogdHJ1ZX07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNWYWxpZENhbmFkaWFuWmlwQ29kZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtzOiBzdHJpbmddOiBib29sZWFuIH0ge1xyXG4gICAgaWYoIUFwcFZhbGlkYXRvcnMuaXNDYW5hZGFaaXBDb2RlKGNvbnRyb2wudmFsdWUpKXtcclxuICAgICAgcmV0dXJuIHtpbnZhbGlkWmlwQ29kZSA6IHRydWV9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzQ2FuYWRhWmlwQ29kZShzdHJpbmcpIHtcclxuICAgIHZhciByZWcgPSAvXltBQkNFR0hKLU5QUlNUVlhZXVxcZFtBQkNFR0hKLU5QUlNUVi1aXVsgLV0/XFxkW0FCQ0VHSEotTlBSU1RWLVpdXFxkJC9pO1xyXG4gICAgcmV0dXJuIHJlZy50ZXN0KHN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNOdW1iZXIobnVtYmVyKSB7XHJcbiAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cChcIl5bMC05XSokXCIpOyBcclxuICAgIHJldHVybiByZWcudGVzdChudW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGlzQmV0d2Vlbihmcm9tIDogRGF0ZSwgdG86IERhdGUpIDogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBsZXQgd3NEYXRlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgaWYod3NEYXRlLmdldFRpbWUoKSA8IGZyb20uZ2V0VGltZSgpIHx8IHdzRGF0ZS5nZXRUaW1lKCkgPiB0by5nZXRUaW1lKCkpe1xyXG4gICAgICAgIHJldHVybiB7ZGF0ZU5vdEJldHdlZW4gOiB0cnVlfTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBlcXVhbChtYXRjaGluZ0NvbnRyb2xOYW1lOiBzdHJpbmcsIGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgaWYgKCFjb250cm9sLnBhcmVudCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBtYXRjaGluZ0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IGNvbnRyb2wucGFyZW50LmdldChtYXRjaGluZ0NvbnRyb2xOYW1lKTtcclxuICAgICAgaWYgKCFjb250cm9sLnZhbHVlIHx8ICFtYXRjaGluZ0NvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB2YWxpZCA9IChjb250cm9sLnZhbHVlID09PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpO1xyXG5cclxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG1hdGNoaW5nQ29udHJvbE5hbWUgRm9ybSBjb250cm9sIG5hbWUgYWdhaW5zdCB3aGljaCBjdXJyZW50IGZvcm0gY29udHJvbCB2YWx1ZSBzaG91bGQgYmUgbWF0Y2hlZFxyXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXHJcbiAgICogXHJcbiAgICogQGRlc2NyaXB0aW9uIEZvcm0gdmFsaWRhdG9yIHRvIHZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgYWdhaW5zdCBhIG90aGVyIGNvbnRyb2wgdmFsdWVcclxuICAgKiBcclxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICAgKi9cclxuICBzdGF0aWMgbm90RXF1YWwobWF0Y2hpbmdDb250cm9sTmFtZTogc3RyaW5nLCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgIGlmICghY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbWF0Y2hpbmdDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBjb250cm9sLnBhcmVudC5nZXQobWF0Y2hpbmdDb250cm9sTmFtZSk7XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSB8fCAhbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgdmFsaWQgPSAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKTtcclxuXHJcbiAgICAgIC8vIGlmIHRydWUsIHJldHVybiBubyBlcnJvciAobm8gZXJyb3IpLCBlbHNlIHJldHVybiBlcnJvciBwYXNzZWQgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXJcclxuICAgICAgcmV0dXJuIHZhbGlkID8gbnVsbCA6IGVycm9yO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB3ZWVrc3RhcnQgYW5kIHdlZWtFbmQgZGF0ZVxyXG4gICAqIEBwYXJhbSBlcnJvciBlYXJuaW5nc1JlcXVpcmVkIGVycm9yIHdoaWNoIHNob3VsZCBiZSByZXR1cm5lZCBpbiBjYXNlIHZhbGlkYXRpb24gZmFpbHNcclxuICAgKiBcclxuICAgKiBAZGVzY3JpcHRpb24gRm9ybSB2YWxpZGF0b3IgdG8gdmFsaWRhdGUgZWFybmluZ3MgYW5kIGhvdXJzIHdvcmtlZCBpcyBhdmFsaWJsZSBpZiBsZHcgZmFsbHMgd2l0aGluIHRoZSB3ZWVrIG9mIGZpbGxpbmdcclxuICAgKiBcclxuICAgKiBAYXV0aG9yIFN0ZWV2YW4gTWFjd2FuXHJcbiAgICovXHJcbiAgc3RhdGljIHJlcXVpcmVFYXJuaW5nc0lmV29ya2VkKHN1bkRhdGU6IERhdGUsIHNhdERhdGU6IERhdGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGdyb3VwOiBGb3JtR3JvdXApOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IGxhc3REYXlXb3JrZWQ6IERhdGUgPSBncm91cC5nZXQoJ2xhc3REYXlXb3JrZWQnKT8udmFsdWU7XHJcbiAgICAgIGNvbnN0IGdyb3NzRWFybmluZzogbnVtYmVyID0gZ3JvdXAuZ2V0KCdncm9zc0Vhcm5pbmcnKT8udmFsdWU7XHJcbiAgICAgIGNvbnN0IGhvdXJzV29ya2VkOiBudW1iZXIgPSBncm91cC5nZXQoJ2hvdXJzV29ya2VkSW5XZWVrJyk/LnZhbHVlO1xyXG5cclxuICAgICAgLy8gU2tpcCBpZiBsYXN0RGF5V29ya2VkIGlzIG1pc3NpbmdcclxuICAgICAgaWYgKCFsYXN0RGF5V29ya2VkKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGxhc3REYXkgPSBsYXN0RGF5V29ya2VkIGluc3RhbmNlb2YgRGF0ZSA/IGxhc3REYXlXb3JrZWQgOiBuZXcgRGF0ZShsYXN0RGF5V29ya2VkKTtcclxuXHJcbiAgICAgIC8vIENoZWNrIGlmIGxhc3REYXlXb3JrZWQgZmFsbHMgd2l0aGluIHRoZSB3ZWVrXHJcbiAgICAgIGlmIChsYXN0RGF5ID49IHN1bkRhdGUgJiYgbGFzdERheSA8PSBzYXREYXRlKSB7XHJcbiAgICAgICAgaWYgKCFncm9zc0Vhcm5pbmcgfHwgZ3Jvc3NFYXJuaW5nID09PSAwKSB7XHJcbiAgICAgICAgICBncm91cC5nZXQoJ2dyb3NzRWFybmluZycpPy5zZXRFcnJvcnMoeyBlYXJuaW5nc1JlcXVpcmVkOiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWhvdXJzV29ya2VkIHx8IGhvdXJzV29ya2VkID09PSAwKSB7XHJcbiAgICAgICAgICBncm91cC5nZXQoJ2hvdXJzV29ya2VkSW5XZWVrJyk/LnNldEVycm9ycyh7IGVhcm5pbmdzUmVxdWlyZWQ6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBJZiB3b3JrIHdhcyBwZXJmb3JtZWQgYnV0IGdyb3NzRWFybmluZyBvciBob3Vyc1dvcmtlZCBpcyBtaXNzaW5nXHJcbiAgICAgICAgaWYgKCFncm9zc0Vhcm5pbmcgfHwgZ3Jvc3NFYXJuaW5nID09PSAwIHx8ICFob3Vyc1dvcmtlZCB8fCBob3Vyc1dvcmtlZCA9PT0gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHsgZWFybmluZ3NSZXF1aXJlZDogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==