@reusa/ngx-reusa-app-lib 0.0.1323 → 0.0.1324

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1324 -2386
  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 +150 -285
  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 +560 -363
  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 +83 -94
  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 -69
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +287 -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 -717
  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 +1122 -855
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +667 -207
  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 +32 -116
  42. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  43. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  44. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
  45. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -491
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +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 +357 -139
  52. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +273 -623
  53. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +59 -114
  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/PartialEmploymentModel.mjs +3 -0
  66. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  67. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  68. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  69. package/esm2022/lib/models/dependent.model.mjs +1 -1
  70. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  71. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  72. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  73. package/esm2022/lib/models/questionnaire/ComboModel.mjs +653 -96
  74. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  76. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  77. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  78. package/esm2022/lib/pages/BasePage.mjs +23 -4
  79. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  80. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  81. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  82. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  83. package/esm2022/lib/pages/common/login/login.component.mjs +11 -7
  84. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  85. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  86. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  87. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  88. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  89. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  90. package/esm2022/lib/services/base-service.mjs +1 -4
  91. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  92. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  93. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  94. package/esm2022/lib/services/claims/claims.service.mjs +14 -102
  95. package/esm2022/lib/services/help/help.service.mjs +1 -1
  96. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  97. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  98. package/esm2022/lib/services/login/login.service.mjs +11 -29
  99. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  100. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  101. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  102. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  103. package/esm2022/lib/services/util/util.service.mjs +5 -61
  104. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  105. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  106. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  107. package/esm2022/public-api.mjs +5 -47
  108. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +26729 -44608
  109. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  110. package/lib/components/add-employer/add-employer.component.d.ts +53 -137
  111. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  112. package/lib/components/add-participant/add-participant.component.d.ts +5 -11
  113. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  114. package/lib/components/add-payment/add-payment.component.d.ts +3 -9
  115. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  116. package/lib/components/address/address.component.d.ts +15 -42
  117. package/lib/components/address/address.component.d.ts.map +1 -1
  118. package/lib/components/bank-details/bank-details.component.d.ts +23 -1
  119. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  120. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  121. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  122. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  123. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  124. package/lib/components/email-update/email-update.component.d.ts +12 -1
  125. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  126. package/lib/components/employer-grid/employer-grid.component.d.ts +14 -21
  127. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  128. package/lib/components/error/error.component.d.ts +2 -3
  129. package/lib/components/error/error.component.d.ts.map +1 -1
  130. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  131. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  132. package/lib/components/footer/footer.component.d.ts.map +1 -1
  133. package/lib/components/header/header.component.d.ts +5 -17
  134. package/lib/components/header/header.component.d.ts.map +1 -1
  135. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  136. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  137. package/lib/components/job-title/job-title.component.d.ts +23 -22
  138. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  139. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +6 -5
  140. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  141. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  142. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  143. package/lib/components/menu/menu.component.d.ts +12 -3
  144. package/lib/components/menu/menu.component.d.ts.map +1 -1
  145. package/lib/components/mfa/mfa.component.d.ts +19 -7
  146. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  147. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  148. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  149. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  150. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  151. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  152. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  153. package/lib/components/profile/profile.component.d.ts +49 -81
  154. package/lib/components/profile/profile.component.d.ts.map +1 -1
  155. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  156. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  157. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  158. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  159. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  160. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  161. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -7
  162. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  163. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  164. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  165. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +33 -31
  166. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  167. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  168. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  169. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  170. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  171. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  172. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  173. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  174. package/lib/components/questionnaire/question.service.d.ts +1 -0
  175. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  176. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  177. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  178. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  179. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  180. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  181. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  182. package/lib/components/security-question/security-question.component.d.ts +37 -0
  183. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  184. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  185. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  186. package/lib/components/user-login/user-login.component.d.ts +38 -5
  187. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  188. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +10 -27
  189. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  190. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  191. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  192. package/lib/guards/auth.guard.d.ts.map +1 -1
  193. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  194. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  195. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  196. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  197. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  198. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  199. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  200. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  201. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  202. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  203. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  204. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  205. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  206. package/lib/models/LibConstants.d.ts +1 -40
  207. package/lib/models/LibConstants.d.ts.map +1 -1
  208. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  209. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  210. package/lib/models/PaymentComponentModel.d.ts +1 -1
  211. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  212. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  213. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  214. package/lib/models/dashboard-model.d.ts +0 -22
  215. package/lib/models/dashboard-model.d.ts.map +1 -1
  216. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  217. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  218. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -13
  219. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  220. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  221. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  222. package/lib/models/questionnaire/ComboModel.d.ts +82 -14
  223. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  224. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  225. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  226. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  227. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  228. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  229. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  230. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  231. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  232. package/lib/pages/BasePage.d.ts +6 -3
  233. package/lib/pages/BasePage.d.ts.map +1 -1
  234. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  235. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  236. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  237. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  238. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  239. package/lib/services/base-service.d.ts +0 -12
  240. package/lib/services/base-service.d.ts.map +1 -1
  241. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  242. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  243. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  244. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  245. package/lib/services/claims/claims.service.d.ts +5 -38
  246. package/lib/services/claims/claims.service.d.ts.map +1 -1
  247. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  248. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  249. package/lib/services/login/login.service.d.ts +3 -5
  250. package/lib/services/login/login.service.d.ts.map +1 -1
  251. package/lib/services/ovp/ovp.service.d.ts +17 -0
  252. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  253. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  254. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  255. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  256. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  257. package/lib/services/security-service/security.service.d.ts +4 -12
  258. package/lib/services/security-service/security.service.d.ts.map +1 -1
  259. package/lib/services/util/util.service.d.ts +0 -6
  260. package/lib/services/util/util.service.d.ts.map +1 -1
  261. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  262. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  263. package/lib/validations/AppRegex.d.ts +2 -0
  264. package/lib/validations/AppRegex.d.ts.map +1 -1
  265. package/lib/validations/AppValidators.d.ts +24 -20
  266. package/lib/validations/AppValidators.d.ts.map +1 -1
  267. package/package.json +2 -2
  268. package/public-api.d.ts +4 -46
  269. package/public-api.d.ts.map +1 -1
  270. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  271. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  272. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  273. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  274. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  275. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  276. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  277. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  278. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  279. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  280. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  281. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  282. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  283. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  284. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  285. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  286. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  287. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  288. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  289. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  290. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  291. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  292. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  293. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  294. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  295. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  296. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  297. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -806
  298. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  299. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  300. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  301. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  302. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  303. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  304. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -685
  305. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  306. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  307. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  308. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  309. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  310. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  311. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  312. package/esm2022/lib/models/CountyModel.mjs +0 -3
  313. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  314. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  315. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  316. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  317. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  318. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  319. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  320. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  321. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  322. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  323. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  324. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  325. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  326. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  327. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  328. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  329. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  330. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  331. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  332. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  333. package/esm2022/lib/models/combo-model.mjs +0 -343
  334. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  335. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  336. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  337. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  338. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  339. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  340. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  341. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  342. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  343. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  344. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  345. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  346. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  347. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  348. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  349. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  350. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  351. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  352. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  353. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  354. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  355. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  356. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  357. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  358. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  359. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  360. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  361. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  362. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  363. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  364. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  365. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  366. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  367. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  368. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  369. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  370. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  371. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  372. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  373. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  374. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  375. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  376. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  377. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  378. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  379. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  380. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  381. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  382. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  383. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  384. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  385. package/lib/components/history-page/history-page.component.d.ts +0 -80
  386. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  387. package/lib/components/idme/idme.component.d.ts +0 -19
  388. package/lib/components/idme/idme.component.d.ts.map +0 -1
  389. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  390. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  391. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  392. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  393. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  394. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  395. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  396. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  397. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  398. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  399. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  400. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  401. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  402. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  403. package/lib/components/sms/sms.component.d.ts +0 -63
  404. package/lib/components/sms/sms.component.d.ts.map +0 -1
  405. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  406. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  407. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  408. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  409. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  410. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  411. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  412. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  413. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  414. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  415. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  416. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  417. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  418. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  419. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  420. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  421. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  422. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  423. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  424. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  425. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  426. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  427. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  428. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  429. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  430. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  431. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  432. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  433. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  434. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  435. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  436. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  437. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  438. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  439. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  440. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  441. package/lib/models/ActiveClaimModel.d.ts +0 -8
  442. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  443. package/lib/models/CountyModel.d.ts +0 -8
  444. package/lib/models/CountyModel.d.ts.map +0 -1
  445. package/lib/models/DuaAppDataModel.d.ts +0 -5
  446. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  447. package/lib/models/DuaRequestModel.d.ts +0 -10
  448. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  449. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  450. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  451. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  452. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  453. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  454. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  455. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  456. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  457. package/lib/models/GrossEarningsModel.d.ts +0 -6
  458. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  459. package/lib/models/HelpConstants.d.ts +0 -5
  460. package/lib/models/HelpConstants.d.ts.map +0 -1
  461. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  462. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  463. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  464. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  465. package/lib/models/RetroWeeksModel.d.ts +0 -11
  466. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  467. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  468. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  469. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  470. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  471. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  472. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  473. package/lib/models/WageCalculatorModel.d.ts +0 -15
  474. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  475. package/lib/models/WageInfoModel.d.ts +0 -9
  476. package/lib/models/WageInfoModel.d.ts.map +0 -1
  477. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  478. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  479. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  480. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  481. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  482. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  483. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  484. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  485. package/lib/models/combo-model.d.ts +0 -42
  486. package/lib/models/combo-model.d.ts.map +0 -1
  487. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  488. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  489. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  490. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  491. package/lib/models/fileupload/FileObject.d.ts +0 -8
  492. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  493. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  494. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  495. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  496. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  497. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  498. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  499. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  500. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  501. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  502. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  503. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  504. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  505. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  506. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  507. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  508. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  509. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  510. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  511. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  512. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  513. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  514. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  515. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  516. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  517. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  518. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  519. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  520. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  521. package/lib/services/appeal/appeal.service.d.ts +0 -16
  522. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  523. package/lib/services/birt-service/birt.service.d.ts +0 -17
  524. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  525. package/lib/services/employer/employer-service.d.ts +0 -16
  526. package/lib/services/employer/employer-service.d.ts.map +0 -1
  527. package/lib/services/event-service/event-service.d.ts +0 -20
  528. package/lib/services/event-service/event-service.d.ts.map +0 -1
  529. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  530. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  531. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  532. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  533. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  534. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  535. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  536. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -2,7 +2,7 @@ import { HttpParams } from '@angular/common/http';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
3
3
  import { ValidationModel } from '../../models/questionnaire/ValidationModel';
4
4
  import { rowExpansionTrigger } from '../../annimations/app-animations';
5
- import { LibConstants } from '../../models/LibConstants';
5
+ import { PartialEmploymentModel } from '../../models/PartialEmploymentModel';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./question-control.service";
8
8
  import * as i2 from "./question.service";
@@ -11,17 +11,51 @@ import * as i4 from "../../services/questionnaire/validation.service";
11
11
  import * as i5 from "../../services/util/util.service";
12
12
  import * as i6 from "@ionic/angular";
13
13
  import * as i7 from "../../services/logger/logger.service";
14
- import * as i8 from "@angular/platform-browser";
15
- import * as i9 from "../../services/login/login.service";
16
- import * as i10 from "../../services/address-validation-service/address-validation.service";
14
+ import * as i8 from "../../services/claimant-service/claimant.service";
15
+ import * as i9 from "../../services/weekly-cert/weekly-cert-v2.service";
16
+ import * as i10 from "../../services/login/login.service";
17
+ import * as i11 from "@angular/common";
18
+ import * as i12 from "primeng/api";
19
+ import * as i13 from "@angular/forms";
20
+ import * as i14 from "primeng/autocomplete";
21
+ import * as i15 from "primeng/dialog";
22
+ import * as i16 from "primeng/password";
23
+ import * as i17 from "primeng/inputtext";
24
+ import * as i18 from "primeng/inputmask";
25
+ import * as i19 from "primeng/divider";
26
+ import * as i20 from "primeng/calendar";
27
+ import * as i21 from "primeng/checkbox";
28
+ import * as i22 from "primeng/selectbutton";
29
+ import * as i23 from "primeng/inputnumber";
30
+ import * as i24 from "../captcha/captcha.component";
31
+ import * as i25 from "../file-uploader/file-uploader.component";
32
+ import * as i26 from "../overlay-info/overlay-info.component";
33
+ import * as i27 from "../employer-grid/employer-grid.component";
34
+ import * as i28 from "../legal-disclaimar/legal-disclaimar.component";
35
+ import * as i29 from "../money-expect/money-expect.component";
36
+ import * as i30 from "../search-employer/search-employer.component";
37
+ import * as i31 from "../address/address.component";
38
+ import * as i32 from "../bank-details/bank-details.component";
39
+ import * as i33 from "../mfa2/mfa2.component";
40
+ import * as i34 from "../dependent-grid/dependent-grid.component";
41
+ import * as i35 from "../weekly-cert-employer-grid/weekly-cert-employer-grid.component";
42
+ import * as i36 from "../add-participant/add-participant.component";
43
+ import * as i37 from "../dropdown/dropdown.component";
44
+ import * as i38 from "../requalify-lift-previous-issues/requalify-lift-previous-issues.component";
45
+ import * as i39 from "../add-payment/add-payment.component";
46
+ import * as i40 from "../link/link.component";
47
+ import * as i41 from "../sign-ssn/sign-ssn.component";
48
+ import * as i42 from "../job-title/job-title.component";
49
+ import * as i43 from "../../pipes/translate/dynamic-translate.pipe";
50
+ import * as i44 from "../../pipes/trust-html/trust-html.pipe";
17
51
  const _c0 = ["bankdtls"];
18
52
  const _c1 = ["wcEmployerGrid"];
19
- const _c2 = ["jobTitle"];
53
+ const _c2 = ["pCalendar"];
20
54
  const _c3 = ["address"];
21
- function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Template(rf, ctx) { if (rf & 1) {
55
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template(rf, ctx) { if (rf & 1) {
22
56
  const _r30 = i0.ɵɵgetCurrentView();
23
- i0.ɵɵelementStart(0, "ion-button", 15);
24
- i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r29.reject()); });
57
+ i0.ɵɵelementStart(0, "ion-button", 14);
58
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r29.reject()); });
25
59
  i0.ɵɵtext(1);
26
60
  i0.ɵɵelementEnd();
27
61
  } if (rf & 2) {
@@ -29,10 +63,10 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Temp
29
63
  i0.ɵɵadvance(1);
30
64
  i0.ɵɵtextInterpolate1(" ", ctx_r27.popUpNoActionLabel, " ");
31
65
  } }
32
- function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Template(rf, ctx) { if (rf & 1) {
66
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template(rf, ctx) { if (rf & 1) {
33
67
  const _r32 = i0.ɵɵgetCurrentView();
34
- i0.ɵɵelementStart(0, "ion-button", 16);
35
- i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.accept()); });
68
+ i0.ɵɵelementStart(0, "ion-button", 15);
69
+ i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.accept()); });
36
70
  i0.ɵɵtext(1);
37
71
  i0.ɵɵelementEnd();
38
72
  } if (rf & 2) {
@@ -40,8 +74,8 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Temp
40
74
  i0.ɵɵadvance(1);
41
75
  i0.ɵɵtextInterpolate1(" ", ctx_r28.popUpYesActionLabel, " ");
42
76
  } }
43
- function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
44
- i0.ɵɵtemplate(0, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Template, 2, 1, "ion-button", 13)(1, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Template, 2, 1, "ion-button", 14);
77
+ function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵtemplate(0, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template, 2, 1, "ion-button", 12)(1, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template, 2, 1, "ion-button", 13);
45
79
  } if (rf & 2) {
46
80
  const ctx_r26 = i0.ɵɵnextContext(2);
47
81
  i0.ɵɵproperty("ngIf", ctx_r26.popUpNoActionLabel);
@@ -57,8 +91,10 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
57
91
  i0.ɵɵelementStart(1, "h4", 10);
58
92
  i0.ɵɵtext(2);
59
93
  i0.ɵɵelementEnd();
60
- i0.ɵɵelement(3, "div", 11);
61
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_p_dialog_1_ng_template_4_Template, 2, 2, "ng-template", 12);
94
+ i0.ɵɵelementStart(3, "p");
95
+ i0.ɵɵtext(4);
96
+ i0.ɵɵelementEnd();
97
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template, 2, 2, "ng-template", 11);
62
98
  i0.ɵɵelementEnd();
63
99
  } if (rf & 2) {
64
100
  const ctx_r0 = i0.ɵɵnextContext();
@@ -67,12 +103,12 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
67
103
  i0.ɵɵattribute("aria-label", ctx_r0.question.title);
68
104
  i0.ɵɵadvance(2);
69
105
  i0.ɵɵtextInterpolate1(" ", ctx_r0.popUpHeader, " ");
70
- i0.ɵɵadvance(1);
71
- i0.ɵɵproperty("innerHTML", ctx_r0.sanitizer.bypassSecurityTrustHtml(ctx_r0.popUpText), i0.ɵɵsanitizeHtml);
106
+ i0.ɵɵadvance(2);
107
+ i0.ɵɵtextInterpolate1("", ctx_r0.popUpText, " ");
72
108
  } }
73
109
  function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf & 1) {
74
110
  i0.ɵɵelementStart(0, "label");
75
- i0.ɵɵelement(1, "span", 18);
111
+ i0.ɵɵelement(1, "span", 17);
76
112
  i0.ɵɵpipe(2, "trustHtml");
77
113
  i0.ɵɵpipe(3, "dynamicTranslate");
78
114
  i0.ɵɵelementEnd();
@@ -83,7 +119,7 @@ function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf &
83
119
  i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r35.question.title, ctx_r35.dynamicParam)), i0.ɵɵsanitizeHtml);
84
120
  } }
85
121
  function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelementStart(0, "div", 17);
122
+ i0.ɵɵelementStart(0, "div", 16);
87
123
  i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_2_label_1_Template, 4, 7, "label", 3);
88
124
  i0.ɵɵelementEnd();
89
125
  } if (rf & 2) {
@@ -93,242 +129,160 @@ function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
93
129
  i0.ɵɵproperty("ngIf", ctx_r1.question.indent === 1 && ctx_r1.question.type != "html" && ctx_r1.question.type != "hidden" && ctx_r1.question.type != "label");
94
130
  } }
95
131
  function DynamicFormQuestionComponent_div_3_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵelementStart(0, "div", 17);
97
- i0.ɵɵelement(1, "span", 18);
98
- i0.ɵɵpipe(2, "trustHtml");
99
- i0.ɵɵpipe(3, "dynamicTranslate");
100
- i0.ɵɵelementEnd();
132
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
133
+ i0.ɵɵelement(2, "span", 17);
134
+ i0.ɵɵpipe(3, "trustHtml");
135
+ i0.ɵɵpipe(4, "dynamicTranslate");
136
+ i0.ɵɵelementEnd()();
101
137
  } if (rf & 2) {
102
138
  const ctx_r2 = i0.ɵɵnextContext();
103
139
  i0.ɵɵproperty("ngStyle", ctx_r2.setStyle(ctx_r2.question.indent));
104
140
  i0.ɵɵadvance(1);
105
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r2.question.title, ctx_r2.dynamicParam)), i0.ɵɵsanitizeHtml);
141
+ i0.ɵɵattribute("for", ctx_r2.question.name);
142
+ i0.ɵɵadvance(1);
143
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r2.question.title, ctx_r2.dynamicParam)), i0.ɵɵsanitizeHtml);
106
144
  } }
107
145
  function DynamicFormQuestionComponent_div_4_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementStart(0, "div", 17);
109
- i0.ɵɵelement(1, "span", 18);
110
- i0.ɵɵpipe(2, "trustHtml");
111
- i0.ɵɵpipe(3, "dynamicTranslate");
112
- i0.ɵɵelementEnd();
146
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
147
+ i0.ɵɵelement(2, "span", 17);
148
+ i0.ɵɵpipe(3, "trustHtml");
149
+ i0.ɵɵpipe(4, "dynamicTranslate");
150
+ i0.ɵɵelementEnd()();
113
151
  } if (rf & 2) {
114
152
  const ctx_r3 = i0.ɵɵnextContext();
115
153
  i0.ɵɵproperty("ngStyle", ctx_r3.setStyle(ctx_r3.question.indent));
116
154
  i0.ɵɵadvance(1);
117
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r3.question.title, ctx_r3.dynamicParam)), i0.ɵɵsanitizeHtml);
155
+ i0.ɵɵattribute("for", ctx_r3.question.name);
156
+ i0.ɵɵadvance(1);
157
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r3.question.title, ctx_r3.dynamicParam)), i0.ɵɵsanitizeHtml);
118
158
  } }
119
159
  function DynamicFormQuestionComponent_div_5_Template(rf, ctx) { if (rf & 1) {
120
- i0.ɵɵelementStart(0, "div", 17);
121
- i0.ɵɵelement(1, "span", 18);
122
- i0.ɵɵpipe(2, "trustHtml");
123
- i0.ɵɵpipe(3, "dynamicTranslate");
124
- i0.ɵɵelementEnd();
160
+ i0.ɵɵelementStart(0, "div", 16)(1, "label");
161
+ i0.ɵɵelement(2, "span", 17);
162
+ i0.ɵɵpipe(3, "trustHtml");
163
+ i0.ɵɵpipe(4, "dynamicTranslate");
164
+ i0.ɵɵelementEnd()();
125
165
  } if (rf & 2) {
126
166
  const ctx_r4 = i0.ɵɵnextContext();
127
167
  i0.ɵɵproperty("ngStyle", ctx_r4.setStyle(ctx_r4.question.indent));
128
168
  i0.ɵɵadvance(1);
129
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r4.question.title, ctx_r4.dynamicParam)), i0.ɵɵsanitizeHtml);
169
+ i0.ɵɵattribute("for", ctx_r4.question.name);
170
+ i0.ɵɵadvance(1);
171
+ i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r4.question.title, ctx_r4.dynamicParam)), i0.ɵɵsanitizeHtml);
130
172
  } }
131
173
  function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template(rf, ctx) { if (rf & 1) {
132
- const _r65 = i0.ɵɵgetCurrentView();
133
- i0.ɵɵelementStart(0, "app-employer-grid", 34);
134
- i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r65); const ctx_r64 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r64.onModelDisplay($event)); });
174
+ const _r53 = i0.ɵɵgetCurrentView();
175
+ i0.ɵɵelementStart(0, "app-employer-grid", 29);
176
+ i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r52.onModelDisplay($event)); });
135
177
  i0.ɵɵelementEnd();
136
178
  } if (rf & 2) {
137
179
  const ctx_r36 = i0.ɵɵnextContext(2);
138
180
  i0.ɵɵproperty("formControlName", ctx_r36.question.name)("form", ctx_r36.form)("dynamicParam", ctx_r36.dynamicParam);
139
181
  } }
140
- function DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template(rf, ctx) { if (rf & 1) {
141
- const _r67 = i0.ɵɵgetCurrentView();
142
- i0.ɵɵelementStart(0, "app-offline-employer-grid", 34);
143
- i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template_app_offline_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r67); const ctx_r66 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r66.onModelDisplay($event)); });
182
+ function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template(rf, ctx) { if (rf & 1) {
183
+ const _r55 = i0.ɵɵgetCurrentView();
184
+ i0.ɵɵelementStart(0, "app-legal-disclaimar", 30);
185
+ i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.onAccepted($event)); });
144
186
  i0.ɵɵelementEnd();
145
187
  } if (rf & 2) {
146
188
  const ctx_r37 = i0.ɵɵnextContext(2);
147
- i0.ɵɵproperty("formControlName", ctx_r37.question.name)("form", ctx_r37.form)("dynamicParam", ctx_r37.dynamicParam);
189
+ i0.ɵɵproperty("componentData", ctx_r37.question.componentData)("question", ctx_r37.question)("form", ctx_r37.form);
148
190
  } }
149
- function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template(rf, ctx) { if (rf & 1) {
150
- const _r69 = i0.ɵɵgetCurrentView();
151
- i0.ɵɵelementStart(0, "app-legal-disclaimar", 35);
152
- i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r69); const ctx_r68 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r68.onAccepted($event)); });
153
- i0.ɵɵelementEnd();
154
- } if (rf & 2) {
155
- const ctx_r38 = i0.ɵɵnextContext(2);
156
- i0.ɵɵproperty("componentData", ctx_r38.question.componentData)("question", ctx_r38.question)("form", ctx_r38.form);
191
+ function DynamicFormQuestionComponent_div_6_money_expect_3_Template(rf, ctx) { if (rf & 1) {
192
+ i0.ɵɵelement(0, "money-expect");
157
193
  } }
158
- function DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template(rf, ctx) { if (rf & 1) {
159
- const _r71 = i0.ɵɵgetCurrentView();
160
- i0.ɵɵelementStart(0, "app-offline-legal-disclaimar", 35);
161
- i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template_app_offline_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r71); const ctx_r70 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r70.onAccepted($event)); });
162
- i0.ɵɵelementEnd();
194
+ function DynamicFormQuestionComponent_div_6_app_captcha_4_Template(rf, ctx) { if (rf & 1) {
195
+ i0.ɵɵelement(0, "app-captcha", 31);
163
196
  } if (rf & 2) {
164
197
  const ctx_r39 = i0.ɵɵnextContext(2);
165
- i0.ɵɵproperty("componentData", ctx_r39.question.componentData)("question", ctx_r39.question)("form", ctx_r39.form);
198
+ i0.ɵɵproperty("formControlName", ctx_r39.question.name);
166
199
  } }
167
- function DynamicFormQuestionComponent_div_6_money_expect_5_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵelement(0, "money-expect", 36);
200
+ function DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template(rf, ctx) { if (rf & 1) {
201
+ i0.ɵɵelement(0, "app-file-uploader", 31);
169
202
  } if (rf & 2) {
170
203
  const ctx_r40 = i0.ɵɵnextContext(2);
171
- i0.ɵɵproperty("componentData", ctx_r40.question.componentData);
204
+ i0.ɵɵproperty("formControlName", ctx_r40.question.name);
172
205
  } }
173
- function DynamicFormQuestionComponent_div_6_app_captcha_6_Template(rf, ctx) { if (rf & 1) {
174
- i0.ɵɵelement(0, "app-captcha", 37);
206
+ function DynamicFormQuestionComponent_div_6_app_address_6_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵelement(0, "app-address", 32, 33);
175
208
  } if (rf & 2) {
176
209
  const ctx_r41 = i0.ɵɵnextContext(2);
177
- i0.ɵɵproperty("formControlName", ctx_r41.question.name);
210
+ i0.ɵɵproperty("formControlName", ctx_r41.question.name)("fromPopup", false)("countyRequired", ctx_r41.question.countyRequired)("inputId", ctx_r41.question.name);
178
211
  } }
179
- function DynamicFormQuestionComponent_div_6_app_file_uploader_7_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelement(0, "app-file-uploader", 37);
212
+ function DynamicFormQuestionComponent_div_6_app_bank_details_7_Template(rf, ctx) { if (rf & 1) {
213
+ i0.ɵɵelement(0, "app-bank-details", 31, 34);
181
214
  } if (rf & 2) {
182
215
  const ctx_r42 = i0.ɵɵnextContext(2);
183
216
  i0.ɵɵproperty("formControlName", ctx_r42.question.name);
184
217
  } }
185
- function DynamicFormQuestionComponent_div_6_app_address_8_Template(rf, ctx) { if (rf & 1) {
186
- i0.ɵɵelement(0, "app-address", 38, 39);
218
+ function DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template(rf, ctx) { if (rf & 1) {
219
+ i0.ɵɵelement(0, "app-requalify-lift-previous-issues", 35);
187
220
  } if (rf & 2) {
188
221
  const ctx_r43 = i0.ɵɵnextContext(2);
189
- i0.ɵɵproperty("formControlName", ctx_r43.question.name)("fromPopup", false)("countyRequired", ctx_r43.question.countyRequired)("questionaireForm", ctx_r43.questionaireForm)("inputId", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("diffMailAddress", (ctx_r43.form == null ? null : ctx_r43.form.controls["diffMailingAddress"] == null ? null : ctx_r43.form.controls["diffMailingAddress"].value) === "Y" || (ctx_r43.form == null ? null : ctx_r43.form.controls["diffmailaddress"] == null ? null : ctx_r43.form.controls["diffmailaddress"].value) === "Y" ? true : false)("enableAddressValidation", ctx_r43.isAddressValidationEnabled);
222
+ i0.ɵɵproperty("formControlName", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("form", ctx_r43.form);
190
223
  } }
191
- function DynamicFormQuestionComponent_div_6_app_job_title_9_Template(rf, ctx) { if (rf & 1) {
192
- i0.ɵɵelement(0, "app-job-title", 40);
224
+ function DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template(rf, ctx) { if (rf & 1) {
225
+ i0.ɵɵelement(0, "app-dependent-grid", 31);
193
226
  } if (rf & 2) {
194
227
  const ctx_r44 = i0.ɵɵnextContext(2);
195
- i0.ɵɵproperty("formControlName", ctx_r44.question.name)("isRequired", ctx_r44.question.isRequired);
228
+ i0.ɵɵproperty("formControlName", ctx_r44.question.name);
196
229
  } }
197
- function DynamicFormQuestionComponent_div_6_app_bank_details_10_Template(rf, ctx) { if (rf & 1) {
198
- i0.ɵɵelement(0, "app-bank-details", 37, 41);
230
+ function DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelement(0, "app-weekly-cert-employer-grid", 36, 37);
199
232
  } if (rf & 2) {
200
233
  const ctx_r45 = i0.ɵɵnextContext(2);
201
- i0.ɵɵproperty("formControlName", ctx_r45.question.name);
234
+ i0.ɵɵproperty("dynamicParam", ctx_r45.dynamicParam)("formControlName", ctx_r45.question.name);
202
235
  } }
203
- function DynamicFormQuestionComponent_div_6_app_offline_bank_details_11_Template(rf, ctx) { if (rf & 1) {
204
- i0.ɵɵelement(0, "app-offline-bank-details", 37, 41);
236
+ function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template(rf, ctx) { if (rf & 1) {
237
+ const _r60 = i0.ɵɵgetCurrentView();
238
+ i0.ɵɵelementStart(0, "app-search-employer", 38);
239
+ i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r59.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r60); const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.resetEmployer()); });
240
+ i0.ɵɵelementEnd();
205
241
  } if (rf & 2) {
206
242
  const ctx_r46 = i0.ɵɵnextContext(2);
207
243
  i0.ɵɵproperty("formControlName", ctx_r46.question.name);
208
244
  } }
209
- function DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_12_Template(rf, ctx) { if (rf & 1) {
210
- i0.ɵɵelement(0, "app-requalify-lift-previous-issues", 42);
245
+ function DynamicFormQuestionComponent_div_6_app_add_participant_12_Template(rf, ctx) { if (rf & 1) {
246
+ i0.ɵɵelement(0, "app-add-participant", 31);
211
247
  } if (rf & 2) {
212
248
  const ctx_r47 = i0.ɵɵnextContext(2);
213
- i0.ɵɵproperty("formControlName", ctx_r47.question.name)("componentData", ctx_r47.question.componentData)("form", ctx_r47.form)("question", ctx_r47.question);
249
+ i0.ɵɵproperty("formControlName", ctx_r47.question.name);
214
250
  } }
215
- function DynamicFormQuestionComponent_div_6_app_dependent_grid_13_Template(rf, ctx) { if (rf & 1) {
216
- i0.ɵɵelement(0, "app-dependent-grid", 37);
251
+ function DynamicFormQuestionComponent_div_6_app_add_payment_13_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelement(0, "app-add-payment", 39);
217
253
  } if (rf & 2) {
218
254
  const ctx_r48 = i0.ɵɵnextContext(2);
219
- i0.ɵɵproperty("formControlName", ctx_r48.question.name);
255
+ i0.ɵɵproperty("potentialIssueId", ctx_r48.potentialIssueId)("formControlName", ctx_r48.question.name);
220
256
  } }
221
- function DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_14_Template(rf, ctx) { if (rf & 1) {
222
- i0.ɵɵelement(0, "app-weekly-cert-employer-grid", 43, 44);
257
+ function DynamicFormQuestionComponent_div_6_app_link_14_Template(rf, ctx) { if (rf & 1) {
258
+ i0.ɵɵelement(0, "app-link", 40);
223
259
  } if (rf & 2) {
224
260
  const ctx_r49 = i0.ɵɵnextContext(2);
225
- i0.ɵɵproperty("form", ctx_r49.form)("dynamicParam", ctx_r49.dynamicParam)("formControlName", ctx_r49.question.name);
261
+ i0.ɵɵproperty("isRequired", ctx_r49.question.isRequired)("formControlName", ctx_r49.question.name)("text", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.text)("uri", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.uri)("externalUrl", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.externalUrl);
226
262
  } }
227
- function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template(rf, ctx) { if (rf & 1) {
228
- const _r77 = i0.ɵɵgetCurrentView();
229
- i0.ɵɵelementStart(0, "app-search-employer", 45);
230
- i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r77); const ctx_r76 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r76.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_15_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r77); const ctx_r78 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r78.resetEmployer()); });
231
- i0.ɵɵelementEnd();
263
+ function DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template(rf, ctx) { if (rf & 1) {
264
+ i0.ɵɵelement(0, "app-sign-ssn", 41);
232
265
  } if (rf & 2) {
233
266
  const ctx_r50 = i0.ɵɵnextContext(2);
234
- i0.ɵɵproperty("formControlName", ctx_r50.question.name);
267
+ i0.ɵɵproperty("isRequired", ctx_r50.question.isRequired)("formControlName", ctx_r50.question.name)("inputId", ctx_r50.question.name);
235
268
  } }
236
- function DynamicFormQuestionComponent_div_6_app_add_participant_16_Template(rf, ctx) { if (rf & 1) {
237
- i0.ɵɵelement(0, "app-add-participant", 46);
269
+ function DynamicFormQuestionComponent_div_6_app_job_title_16_Template(rf, ctx) { if (rf & 1) {
270
+ i0.ɵɵelement(0, "app-job-title", 42, 43);
238
271
  } if (rf & 2) {
239
272
  const ctx_r51 = i0.ɵɵnextContext(2);
240
- i0.ɵɵproperty("formControlName", ctx_r51.question.name)("dynamicParam", ctx_r51.dynamicParam);
241
- } }
242
- function DynamicFormQuestionComponent_div_6_app_add_payment_17_Template(rf, ctx) { if (rf & 1) {
243
- i0.ɵɵelement(0, "app-add-payment", 47);
244
- } if (rf & 2) {
245
- const ctx_r52 = i0.ɵɵnextContext(2);
246
- i0.ɵɵproperty("potentialIssueId", ctx_r52.potentialIssueId)("formControlName", ctx_r52.question.name);
247
- } }
248
- function DynamicFormQuestionComponent_div_6_app_link_18_Template(rf, ctx) { if (rf & 1) {
249
- i0.ɵɵelement(0, "app-link", 48);
250
- } if (rf & 2) {
251
- const ctx_r53 = i0.ɵɵnextContext(2);
252
- i0.ɵɵproperty("isRequired", ctx_r53.question.isRequired)("formControlName", ctx_r53.question.name)("text", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.text)("uri", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.uri)("externalUrl", ctx_r53.linkComponentData == null ? null : ctx_r53.linkComponentData.externalUrl);
253
- } }
254
- function DynamicFormQuestionComponent_div_6_app_sign_ssn_19_Template(rf, ctx) { if (rf & 1) {
255
- i0.ɵɵelement(0, "app-sign-ssn", 49);
256
- } if (rf & 2) {
257
- const ctx_r54 = i0.ɵɵnextContext(2);
258
- i0.ɵɵproperty("isRequired", ctx_r54.question.isRequired)("formControlName", ctx_r54.question.name)("inputId", ctx_r54.question.name);
259
- } }
260
- function DynamicFormQuestionComponent_div_6_app_employer_pay_grid_20_Template(rf, ctx) { if (rf & 1) {
261
- i0.ɵɵelement(0, "app-employer-pay-grid", 37);
262
- } if (rf & 2) {
263
- const ctx_r55 = i0.ɵɵnextContext(2);
264
- i0.ɵɵproperty("formControlName", ctx_r55.question.name);
265
- } }
266
- function DynamicFormQuestionComponent_div_6_app_sms_21_Template(rf, ctx) { if (rf & 1) {
267
- const _r80 = i0.ɵɵgetCurrentView();
268
- i0.ɵɵelementStart(0, "app-sms", 50);
269
- i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_sms_21_Template_app_sms_accepted_0_listener($event) { i0.ɵɵrestoreView(_r80); const ctx_r79 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r79.onAcceptedOtp($event)); });
270
- i0.ɵɵelementEnd();
271
- } if (rf & 2) {
272
- const ctx_r56 = i0.ɵɵnextContext(2);
273
- i0.ɵɵproperty("formControlName", ctx_r56.question.name)("question", ctx_r56.question)("form", ctx_r56.form);
274
- } }
275
- function DynamicFormQuestionComponent_div_6_app_farm_usage_22_Template(rf, ctx) { if (rf & 1) {
276
- i0.ɵɵelement(0, "app-farm-usage", 37);
277
- } if (rf & 2) {
278
- const ctx_r57 = i0.ɵɵnextContext(2);
279
- i0.ɵɵproperty("formControlName", ctx_r57.question.name);
280
- } }
281
- function DynamicFormQuestionComponent_div_6_app_wage_grid_23_Template(rf, ctx) { if (rf & 1) {
282
- i0.ɵɵelement(0, "app-wage-grid", 37);
283
- } if (rf & 2) {
284
- const ctx_r58 = i0.ɵɵnextContext(2);
285
- i0.ɵɵproperty("formControlName", ctx_r58.question.name);
286
- } }
287
- function DynamicFormQuestionComponent_div_6_app_gross_earnings_24_Template(rf, ctx) { if (rf & 1) {
288
- i0.ɵɵelement(0, "app-gross-earnings", 37);
289
- } if (rf & 2) {
290
- const ctx_r59 = i0.ɵɵnextContext(2);
291
- i0.ɵɵproperty("formControlName", ctx_r59.question.name);
292
- } }
293
- function DynamicFormQuestionComponent_div_6_app_scrollable_text_25_Template(rf, ctx) { if (rf & 1) {
294
- i0.ɵɵelement(0, "app-scrollable-text", 51);
295
- } if (rf & 2) {
296
- const ctx_r60 = i0.ɵɵnextContext(2);
297
- i0.ɵɵproperty("componentData", ctx_r60.question.componentData)("formControlName", ctx_r60.question.name);
298
- } }
299
- function DynamicFormQuestionComponent_div_6_app_employer_info_26_Template(rf, ctx) { if (rf & 1) {
300
- i0.ɵɵelement(0, "app-employer-info", 37);
301
- } if (rf & 2) {
302
- const ctx_r61 = i0.ɵɵnextContext(2);
303
- i0.ɵɵproperty("formControlName", ctx_r61.question.name);
304
- } }
305
- function DynamicFormQuestionComponent_div_6_app_idme_27_Template(rf, ctx) { if (rf & 1) {
306
- i0.ɵɵelement(0, "app-idme", 37);
307
- } if (rf & 2) {
308
- const ctx_r62 = i0.ɵɵnextContext(2);
309
- i0.ɵɵproperty("formControlName", ctx_r62.question.name);
310
- } }
311
- function DynamicFormQuestionComponent_div_6_app_wage_calculator_28_Template(rf, ctx) { if (rf & 1) {
312
- i0.ɵɵelement(0, "app-wage-calculator", 37);
313
- } if (rf & 2) {
314
- const ctx_r63 = i0.ɵɵnextContext(2);
315
- i0.ɵɵproperty("formControlName", ctx_r63.question.name);
273
+ i0.ɵɵproperty("control", ctx_r51.form.controls[ctx_r51.question.name]);
316
274
  } }
317
275
  function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
318
276
  i0.ɵɵelementStart(0, "div");
319
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid", 19)(2, DynamicFormQuestionComponent_div_6_app_offline_employer_grid_2_Template, 1, 3, "app-offline-employer-grid", 19)(3, DynamicFormQuestionComponent_div_6_app_legal_disclaimar_3_Template, 1, 3, "app-legal-disclaimar", 20)(4, DynamicFormQuestionComponent_div_6_app_offline_legal_disclaimar_4_Template, 1, 3, "app-offline-legal-disclaimar", 20)(5, DynamicFormQuestionComponent_div_6_money_expect_5_Template, 1, 1, "money-expect", 21)(6, DynamicFormQuestionComponent_div_6_app_captcha_6_Template, 1, 1, "app-captcha", 22)(7, DynamicFormQuestionComponent_div_6_app_file_uploader_7_Template, 1, 1, "app-file-uploader", 22)(8, DynamicFormQuestionComponent_div_6_app_address_8_Template, 2, 8, "app-address", 23)(9, DynamicFormQuestionComponent_div_6_app_job_title_9_Template, 1, 2, "app-job-title", 24)(10, DynamicFormQuestionComponent_div_6_app_bank_details_10_Template, 2, 1, "app-bank-details", 22)(11, DynamicFormQuestionComponent_div_6_app_offline_bank_details_11_Template, 2, 1, "app-offline-bank-details", 22)(12, DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_12_Template, 1, 4, "app-requalify-lift-previous-issues", 25)(13, DynamicFormQuestionComponent_div_6_app_dependent_grid_13_Template, 1, 1, "app-dependent-grid", 22)(14, DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_14_Template, 2, 3, "app-weekly-cert-employer-grid", 26)(15, DynamicFormQuestionComponent_div_6_app_search_employer_15_Template, 1, 1, "app-search-employer", 27)(16, DynamicFormQuestionComponent_div_6_app_add_participant_16_Template, 1, 2, "app-add-participant", 28)(17, DynamicFormQuestionComponent_div_6_app_add_payment_17_Template, 1, 2, "app-add-payment", 29)(18, DynamicFormQuestionComponent_div_6_app_link_18_Template, 1, 5, "app-link", 30)(19, DynamicFormQuestionComponent_div_6_app_sign_ssn_19_Template, 1, 3, "app-sign-ssn", 31)(20, DynamicFormQuestionComponent_div_6_app_employer_pay_grid_20_Template, 1, 1, "app-employer-pay-grid", 22)(21, DynamicFormQuestionComponent_div_6_app_sms_21_Template, 1, 3, "app-sms", 32)(22, DynamicFormQuestionComponent_div_6_app_farm_usage_22_Template, 1, 1, "app-farm-usage", 22)(23, DynamicFormQuestionComponent_div_6_app_wage_grid_23_Template, 1, 1, "app-wage-grid", 22)(24, DynamicFormQuestionComponent_div_6_app_gross_earnings_24_Template, 1, 1, "app-gross-earnings", 22)(25, DynamicFormQuestionComponent_div_6_app_scrollable_text_25_Template, 1, 2, "app-scrollable-text", 33)(26, DynamicFormQuestionComponent_div_6_app_employer_info_26_Template, 1, 1, "app-employer-info", 22)(27, DynamicFormQuestionComponent_div_6_app_idme_27_Template, 1, 1, "app-idme", 22)(28, DynamicFormQuestionComponent_div_6_app_wage_calculator_28_Template, 1, 1, "app-wage-calculator", 22);
277
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid", 18)(2, DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template, 1, 3, "app-legal-disclaimar", 19)(3, DynamicFormQuestionComponent_div_6_money_expect_3_Template, 1, 0, "money-expect", 3)(4, DynamicFormQuestionComponent_div_6_app_captcha_4_Template, 1, 1, "app-captcha", 20)(5, DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template, 1, 1, "app-file-uploader", 20)(6, DynamicFormQuestionComponent_div_6_app_address_6_Template, 2, 4, "app-address", 21)(7, DynamicFormQuestionComponent_div_6_app_bank_details_7_Template, 2, 1, "app-bank-details", 20)(8, DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template, 1, 3, "app-requalify-lift-previous-issues", 22)(9, DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template, 1, 1, "app-dependent-grid", 20)(10, DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template, 2, 2, "app-weekly-cert-employer-grid", 23)(11, DynamicFormQuestionComponent_div_6_app_search_employer_11_Template, 1, 1, "app-search-employer", 24)(12, DynamicFormQuestionComponent_div_6_app_add_participant_12_Template, 1, 1, "app-add-participant", 20)(13, DynamicFormQuestionComponent_div_6_app_add_payment_13_Template, 1, 2, "app-add-payment", 25)(14, DynamicFormQuestionComponent_div_6_app_link_14_Template, 1, 5, "app-link", 26)(15, DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template, 1, 3, "app-sign-ssn", 27)(16, DynamicFormQuestionComponent_div_6_app_job_title_16_Template, 2, 1, "app-job-title", 28);
320
278
  i0.ɵɵelementEnd();
321
279
  } if (rf & 2) {
322
280
  const ctx_r5 = i0.ɵɵnextContext();
323
281
  i0.ɵɵadvance(1);
324
282
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-grid");
325
283
  i0.ɵɵadvance(1);
326
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-employer-grid");
327
- i0.ɵɵadvance(1);
328
284
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-legal-disclaimar");
329
285
  i0.ɵɵadvance(1);
330
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-legal-disclaimar");
331
- i0.ɵɵadvance(1);
332
286
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "money-expect");
333
287
  i0.ɵɵadvance(1);
334
288
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-captcha");
@@ -337,12 +291,8 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
337
291
  i0.ɵɵadvance(1);
338
292
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-address");
339
293
  i0.ɵɵadvance(1);
340
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
341
- i0.ɵɵadvance(1);
342
294
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-bank-details");
343
295
  i0.ɵɵadvance(1);
344
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-offline-bank-details");
345
- i0.ɵɵadvance(1);
346
296
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-requalify-lift-previous-issues");
347
297
  i0.ɵɵadvance(1);
348
298
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-dependent-grid");
@@ -359,27 +309,11 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
359
309
  i0.ɵɵadvance(1);
360
310
  i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sign-ssn");
361
311
  i0.ɵɵadvance(1);
362
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-pay-grid");
363
- i0.ɵɵadvance(1);
364
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sms");
365
- i0.ɵɵadvance(1);
366
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-farm-usage");
367
- i0.ɵɵadvance(1);
368
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-wage-grid");
369
- i0.ɵɵadvance(1);
370
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-gross-earnings");
371
- i0.ɵɵadvance(1);
372
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-scrollable-text");
373
- i0.ɵɵadvance(1);
374
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-info");
375
- i0.ɵɵadvance(1);
376
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-idme");
377
- i0.ɵɵadvance(1);
378
- i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-wage-calculator");
312
+ i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
379
313
  } }
380
314
  function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
381
- i0.ɵɵelementStart(0, "div", 17);
382
- i0.ɵɵelement(1, "span", 18);
315
+ i0.ɵɵelementStart(0, "div", 16);
316
+ i0.ɵɵelement(1, "span", 17);
383
317
  i0.ɵɵpipe(2, "trustHtml");
384
318
  i0.ɵɵpipe(3, "dynamicTranslate");
385
319
  i0.ɵɵelementEnd();
@@ -390,21 +324,21 @@ function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
390
324
  i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r6.question.title, ctx_r6.dynamicParam)), i0.ɵɵsanitizeHtml);
391
325
  } }
392
326
  function DynamicFormQuestionComponent_div_8_div_4_Template(rf, ctx) { if (rf & 1) {
393
- i0.ɵɵelementStart(0, "div", 55);
394
- i0.ɵɵelement(1, "app-overlay-info", 56);
327
+ i0.ɵɵelementStart(0, "div", 47);
328
+ i0.ɵɵelement(1, "app-overlay-info", 48);
395
329
  i0.ɵɵpipe(2, "dynamicTranslate");
396
330
  i0.ɵɵelementEnd();
397
331
  } if (rf & 2) {
398
- const ctx_r81 = i0.ɵɵnextContext(2);
332
+ const ctx_r63 = i0.ɵɵnextContext(2);
399
333
  i0.ɵɵadvance(1);
400
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r81.question.description, ctx_r81.dynamicParam));
334
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r63.question.description, ctx_r63.dynamicParam));
401
335
  } }
402
336
  function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
403
- i0.ɵɵelementStart(0, "div", 52);
404
- i0.ɵɵelement(1, "div", 53);
337
+ i0.ɵɵelementStart(0, "div", 44);
338
+ i0.ɵɵelement(1, "div", 45);
405
339
  i0.ɵɵpipe(2, "trustHtml");
406
340
  i0.ɵɵpipe(3, "dynamicTranslate");
407
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 54);
341
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 46);
408
342
  i0.ɵɵelementEnd();
409
343
  } if (rf & 2) {
410
344
  const ctx_r7 = i0.ɵɵnextContext();
@@ -414,323 +348,450 @@ function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
414
348
  i0.ɵɵproperty("ngIf", ctx_r7.question.description);
415
349
  } }
416
350
  function DynamicFormQuestionComponent_ng_container_10_div_2_Template(rf, ctx) { if (rf & 1) {
417
- const _r97 = i0.ɵɵgetCurrentView();
418
- i0.ɵɵelementStart(0, "div")(1, "div", 59)(2, "p-calendar", 60);
419
- i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onBlur_2_listener() { i0.ɵɵrestoreView(_r97); const ctx_r96 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r96.validate(ctx_r96.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onSelect_2_listener() { i0.ɵɵrestoreView(_r97); const ctx_r98 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r98.validate(ctx_r98.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onInput_2_listener($event) { i0.ɵɵrestoreView(_r97); const ctx_r99 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r99.dateInput($event)); });
351
+ const _r85 = i0.ɵɵgetCurrentView();
352
+ i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 53);
353
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r84 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r84.validate(ctx_r84.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r86 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r86.validate(ctx_r86.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r85); const ctx_r87 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r87.dateInput($event)); });
420
354
  i0.ɵɵelementEnd()()();
421
355
  } if (rf & 2) {
422
- const ctx_r82 = i0.ɵɵnextContext(2);
356
+ const ctx_r64 = i0.ɵɵnextContext(2);
423
357
  i0.ɵɵadvance(1);
424
- i0.ɵɵproperty("ngStyle", ctx_r82.setStyle(ctx_r82.question.indent));
425
- i0.ɵɵadvance(1);
426
- i0.ɵɵproperty("formControlName", ctx_r82.question.name)("inputId", ctx_r82.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r82.showMinDate ? ctx_r82.minDate : null)("maxDate", ctx_r82.showMaxDate ? ctx_r82.maxDate : null)("showOnFocus", false)("iconAriaLabel", ctx_r82.question.title);
358
+ i0.ɵɵproperty("ngStyle", ctx_r64.setStyle(ctx_r64.question.indent));
359
+ i0.ɵɵadvance(2);
360
+ i0.ɵɵproperty("formControlName", ctx_r64.question.name)("inputId", ctx_r64.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r64.showMinDate ? ctx_r64.minDate : null)("maxDate", ctx_r64.showMaxDate ? ctx_r64.maxDate : null)("showOnFocus", false)("iconAriaLabel", ctx_r64.question.title);
427
361
  } }
428
362
  function DynamicFormQuestionComponent_ng_container_10_div_3_Template(rf, ctx) { if (rf & 1) {
429
- const _r101 = i0.ɵɵgetCurrentView();
430
- i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 61);
431
- i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r101); const ctx_r100 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r100.validate(ctx_r100.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r101); const ctx_r102 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r102.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r101); const ctx_r103 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r103.mask($event)); });
432
- i0.ɵɵelementEnd()();
363
+ const _r90 = i0.ɵɵgetCurrentView();
364
+ i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 54);
365
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r89 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r89.blurDOB(ctx_r89.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r91 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r91.validate(ctx_r91.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r90); const ctx_r92 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r92.dateInput($event)); });
366
+ i0.ɵɵelementEnd()()();
433
367
  } if (rf & 2) {
434
- const ctx_r83 = i0.ɵɵnextContext(2);
435
- i0.ɵɵproperty("ngStyle", ctx_r83.setStyle(ctx_r83.question.indent));
368
+ const ctx_r65 = i0.ɵɵnextContext(2);
436
369
  i0.ɵɵadvance(1);
437
- i0.ɵɵproperty("inputId", ctx_r83.question.name)("formControlName", ctx_r83.question.name)("type", ctx_r83.type);
438
- i0.ɵɵattribute("aria-label", ctx_r83.question.title);
370
+ i0.ɵɵproperty("ngStyle", ctx_r65.setStyle(ctx_r65.question.indent));
371
+ i0.ɵɵadvance(2);
372
+ i0.ɵɵproperty("formControlName", ctx_r65.question.name)("inputId", ctx_r65.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r65.minDateDOB)("maxDate", ctx_r65.maxDateDOB)("showOnFocus", false)("iconAriaLabel", ctx_r65.question.title);
439
373
  } }
440
374
  function DynamicFormQuestionComponent_ng_container_10_div_4_Template(rf, ctx) { if (rf & 1) {
441
- const _r105 = i0.ɵɵgetCurrentView();
442
- i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 62);
443
- i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r105); const ctx_r104 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r104.validate(ctx_r104.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r105); const ctx_r106 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r106.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r105); const ctx_r107 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r107.mask($event)); });
375
+ const _r94 = i0.ɵɵgetCurrentView();
376
+ i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 55);
377
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r94); const ctx_r93 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r93.validate(ctx_r93.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r94); const ctx_r95 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r95.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r94); const ctx_r96 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r96.mask($event)); });
444
378
  i0.ɵɵelementEnd()();
445
379
  } if (rf & 2) {
446
- const ctx_r84 = i0.ɵɵnextContext(2);
447
- i0.ɵɵproperty("ngStyle", ctx_r84.setStyle(ctx_r84.question.indent));
380
+ const ctx_r66 = i0.ɵɵnextContext(2);
381
+ i0.ɵɵproperty("ngStyle", ctx_r66.setStyle(ctx_r66.question.indent));
448
382
  i0.ɵɵadvance(1);
449
- i0.ɵɵproperty("inputId", ctx_r84.question.name)("formControlName", ctx_r84.question.name)("type", ctx_r84.type);
450
- i0.ɵɵattribute("aria-label", ctx_r84.question.title);
383
+ i0.ɵɵclassProp("hide-content", ctx_r66.maskClass);
384
+ i0.ɵɵproperty("inputId", ctx_r66.question.name)("formControlName", ctx_r66.question.name);
385
+ i0.ɵɵattribute("aria-label", ctx_r66.question.title);
451
386
  } }
452
387
  function DynamicFormQuestionComponent_ng_container_10_div_5_Template(rf, ctx) { if (rf & 1) {
453
- const _r109 = i0.ɵɵgetCurrentView();
454
- i0.ɵɵelementStart(0, "div", 59)(1, "p-inputMask", 63);
455
- i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_5_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r109); const ctx_r108 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r108.validate(ctx_r108.question)); });
388
+ const _r98 = i0.ɵɵgetCurrentView();
389
+ i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 56);
390
+ i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_5_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r98); const ctx_r97 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r97.validate(ctx_r97.question)); });
456
391
  i0.ɵɵelementEnd()();
457
392
  } if (rf & 2) {
458
- const ctx_r85 = i0.ɵɵnextContext(2);
459
- i0.ɵɵproperty("ngStyle", ctx_r85.setStyle(ctx_r85.question.indent));
393
+ const ctx_r67 = i0.ɵɵnextContext(2);
394
+ i0.ɵɵproperty("ngStyle", ctx_r67.setStyle(ctx_r67.question.indent));
460
395
  i0.ɵɵadvance(1);
461
- i0.ɵɵproperty("inputId", ctx_r85.question.name)("formControlName", ctx_r85.question.name)("value", 81 - 586 - 0 - 1);
396
+ i0.ɵɵproperty("inputId", ctx_r67.question.name)("formControlName", ctx_r67.question.name)("value", 81 - 586 - 0 - 1);
462
397
  } }
463
398
  function DynamicFormQuestionComponent_ng_container_10_div_6_Template(rf, ctx) { if (rf & 1) {
464
- i0.ɵɵelementStart(0, "div", 59);
465
- i0.ɵɵelement(1, "p-inputNumber", 64);
399
+ i0.ɵɵelementStart(0, "div", 51);
400
+ i0.ɵɵelement(1, "p-inputNumber", 57);
466
401
  i0.ɵɵelementEnd();
467
402
  } if (rf & 2) {
468
- const ctx_r86 = i0.ɵɵnextContext(2);
469
- i0.ɵɵproperty("ngStyle", ctx_r86.setStyle(ctx_r86.question.indent));
403
+ const ctx_r68 = i0.ɵɵnextContext(2);
404
+ i0.ɵɵproperty("ngStyle", ctx_r68.setStyle(ctx_r68.question.indent));
470
405
  i0.ɵɵadvance(1);
471
- i0.ɵɵproperty("inputId", ctx_r86.question.name)("formControlName", ctx_r86.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r86.question.title);
406
+ i0.ɵɵproperty("inputId", ctx_r68.question.name)("formControlName", ctx_r68.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r68.question.title);
472
407
  } }
473
408
  function DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template(rf, ctx) { if (rf & 1) {
474
- i0.ɵɵelement(0, "input", 68);
409
+ i0.ɵɵelement(0, "input", 61);
410
+ i0.ɵɵpipe(1, "translate");
475
411
  } if (rf & 2) {
476
- const ctx_r110 = i0.ɵɵnextContext(3);
477
- i0.ɵɵproperty("maxLength", ctx_r110.question.maxLength)("placeholder", ctx_r110.question.placeholder || ctx_r110.question.placeholder === "" ? ctx_r110.question.placeholder : "Optional")("id", ctx_r110.question.name)("formControlName", ctx_r110.question.name);
478
- i0.ɵɵattribute("aria-label", ctx_r110.question.title);
412
+ const ctx_r99 = i0.ɵɵnextContext(3);
413
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 5, "common.optional"));
414
+ i0.ɵɵproperty("maxLength", ctx_r99.question.maxLength)("id", ctx_r99.question.name)("formControlName", ctx_r99.question.name);
415
+ i0.ɵɵattribute("aria-label", ctx_r99.question.title);
479
416
  } }
480
417
  function DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template(rf, ctx) { if (rf & 1) {
481
- i0.ɵɵelement(0, "input", 69);
418
+ i0.ɵɵelement(0, "input", 62);
419
+ i0.ɵɵpipe(1, "translate");
482
420
  } if (rf & 2) {
483
- const ctx_r111 = i0.ɵɵnextContext(3);
484
- i0.ɵɵproperty("placeholder", ctx_r111.question.placeholder || ctx_r111.question.placeholder === "" ? ctx_r111.question.placeholder : "Optional")("id", ctx_r111.question.name)("formControlName", ctx_r111.question.name);
485
- i0.ɵɵattribute("aria-label", ctx_r111.question.title);
421
+ const ctx_r100 = i0.ɵɵnextContext(3);
422
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
423
+ i0.ɵɵproperty("id", ctx_r100.question.name)("formControlName", ctx_r100.question.name);
424
+ i0.ɵɵattribute("aria-label", ctx_r100.question.title);
486
425
  } }
487
426
  function DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template(rf, ctx) { if (rf & 1) {
488
- i0.ɵɵelement(0, "input", 68);
427
+ i0.ɵɵelement(0, "input", 61);
428
+ i0.ɵɵpipe(1, "translate");
489
429
  } if (rf & 2) {
490
- const ctx_r112 = i0.ɵɵnextContext(3);
491
- i0.ɵɵproperty("maxLength", ctx_r112.question.maxLength)("placeholder", ctx_r112.question.placeholder || ctx_r112.question.placeholder === "" ? ctx_r112.question.placeholder : "Optional")("id", ctx_r112.question.name)("formControlName", ctx_r112.question.name);
430
+ const ctx_r101 = i0.ɵɵnextContext(3);
431
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
432
+ i0.ɵɵproperty("maxLength", ctx_r101.question.maxLength)("id", ctx_r101.question.name)("formControlName", ctx_r101.question.name);
492
433
  } }
493
434
  function DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template(rf, ctx) { if (rf & 1) {
494
- i0.ɵɵelement(0, "input", 70);
435
+ i0.ɵɵelement(0, "input", 63);
436
+ i0.ɵɵpipe(1, "translate");
495
437
  } if (rf & 2) {
496
- const ctx_r113 = i0.ɵɵnextContext(3);
497
- i0.ɵɵproperty("id", ctx_r113.question.name)("formControlName", ctx_r113.question.name)("placeholder", ctx_r113.question.placeholder || ctx_r113.question.placeholder === "" ? ctx_r113.question.placeholder : "Optional");
498
- i0.ɵɵattribute("aria-label", ctx_r113.question.title);
438
+ const ctx_r102 = i0.ɵɵnextContext(3);
439
+ i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 4, "common.optional"));
440
+ i0.ɵɵproperty("id", ctx_r102.question.name)("formControlName", ctx_r102.question.name);
441
+ i0.ɵɵattribute("aria-label", ctx_r102.question.title);
499
442
  } }
500
443
  function DynamicFormQuestionComponent_ng_container_10_div_7_Template(rf, ctx) { if (rf & 1) {
501
- i0.ɵɵelementStart(0, "div", 59);
502
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 1, 5, "input", 65)(2, DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template, 1, 4, "input", 66)(3, DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template, 1, 4, "input", 65)(4, DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template, 1, 4, "input", 67);
444
+ i0.ɵɵelementStart(0, "div", 51);
445
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 2, 7, "input", 58)(2, DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template, 2, 6, "input", 59)(3, DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template, 2, 6, "input", 58)(4, DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template, 2, 6, "input", 60);
503
446
  i0.ɵɵelementEnd();
504
447
  } if (rf & 2) {
505
- const ctx_r87 = i0.ɵɵnextContext(2);
506
- i0.ɵɵproperty("ngStyle", ctx_r87.setStyle(ctx_r87.question.indent));
448
+ const ctx_r69 = i0.ɵɵnextContext(2);
449
+ i0.ɵɵproperty("ngStyle", ctx_r69.setStyle(ctx_r69.question.indent));
507
450
  i0.ɵɵadvance(1);
508
- i0.ɵɵproperty("ngIf", ctx_r87.question.size && ctx_r87.question.maxLength);
451
+ i0.ɵɵproperty("ngIf", ctx_r69.question.size && ctx_r69.question.maxLength);
509
452
  i0.ɵɵadvance(1);
510
- i0.ɵɵproperty("ngIf", ctx_r87.question.size && !ctx_r87.question.maxLength);
453
+ i0.ɵɵproperty("ngIf", ctx_r69.question.size && !ctx_r69.question.maxLength);
511
454
  i0.ɵɵadvance(1);
512
- i0.ɵɵproperty("ngIf", !ctx_r87.question.size && ctx_r87.question.maxLength);
455
+ i0.ɵɵproperty("ngIf", !ctx_r69.question.size && ctx_r69.question.maxLength);
513
456
  i0.ɵɵadvance(1);
514
- i0.ɵɵproperty("ngIf", !ctx_r87.question.size && !ctx_r87.question.maxLength);
457
+ i0.ɵɵproperty("ngIf", !ctx_r69.question.size && !ctx_r69.question.maxLength);
515
458
  } }
516
459
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template(rf, ctx) { if (rf & 1) {
517
- i0.ɵɵelement(0, "input", 72);
460
+ i0.ɵɵelement(0, "input", 65);
518
461
  } if (rf & 2) {
519
- const ctx_r114 = i0.ɵɵnextContext(3);
520
- i0.ɵɵproperty("maxLength", ctx_r114.question.maxLength)("id", ctx_r114.question.name)("formControlName", ctx_r114.question.name)("placeholder", ctx_r114.question.placeholder ? ctx_r114.question.placeholder : "");
521
- i0.ɵɵattribute("aria-label", ctx_r114.question.title);
462
+ const ctx_r103 = i0.ɵɵnextContext(3);
463
+ i0.ɵɵproperty("maxLength", ctx_r103.question.maxLength)("id", ctx_r103.question.name)("formControlName", ctx_r103.question.name)("placeholder", ctx_r103.question.placeholder ? ctx_r103.question.placeholder : "");
464
+ i0.ɵɵattribute("aria-label", ctx_r103.question.title);
522
465
  } }
523
466
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template(rf, ctx) { if (rf & 1) {
524
- i0.ɵɵelement(0, "input", 70);
467
+ i0.ɵɵelement(0, "input", 63);
525
468
  } if (rf & 2) {
526
- const ctx_r115 = i0.ɵɵnextContext(3);
527
- i0.ɵɵproperty("id", ctx_r115.question.name)("formControlName", ctx_r115.question.name)("placeholder", ctx_r115.question.placeholder ? ctx_r115.question.placeholder : "");
528
- i0.ɵɵattribute("aria-label", ctx_r115.question.title);
469
+ const ctx_r104 = i0.ɵɵnextContext(3);
470
+ i0.ɵɵproperty("id", ctx_r104.question.name)("formControlName", ctx_r104.question.name)("placeholder", ctx_r104.question.placeholder ? ctx_r104.question.placeholder : "");
471
+ i0.ɵɵattribute("aria-label", ctx_r104.question.title);
529
472
  } }
530
473
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template(rf, ctx) { if (rf & 1) {
531
- i0.ɵɵelement(0, "input", 72);
474
+ i0.ɵɵelement(0, "input", 65);
532
475
  } if (rf & 2) {
533
- const ctx_r116 = i0.ɵɵnextContext(3);
534
- i0.ɵɵproperty("maxLength", ctx_r116.question.maxLength)("id", ctx_r116.question.name)("formControlName", ctx_r116.question.name)("placeholder", ctx_r116.question.placeholder ? ctx_r116.question.placeholder : "");
535
- i0.ɵɵattribute("aria-label", ctx_r116.question.title);
476
+ const ctx_r105 = i0.ɵɵnextContext(3);
477
+ i0.ɵɵproperty("maxLength", ctx_r105.question.maxLength)("id", ctx_r105.question.name)("formControlName", ctx_r105.question.name)("placeholder", ctx_r105.question.placeholder ? ctx_r105.question.placeholder : "");
478
+ i0.ɵɵattribute("aria-label", ctx_r105.question.title);
536
479
  } }
537
480
  function DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template(rf, ctx) { if (rf & 1) {
538
- i0.ɵɵelement(0, "input", 70);
481
+ i0.ɵɵelement(0, "input", 63);
539
482
  } if (rf & 2) {
540
- const ctx_r117 = i0.ɵɵnextContext(3);
541
- i0.ɵɵproperty("id", ctx_r117.question.name)("formControlName", ctx_r117.question.name)("placeholder", ctx_r117.question.placeholder ? ctx_r117.question.placeholder : "");
542
- i0.ɵɵattribute("aria-label", ctx_r117.question.title);
483
+ const ctx_r106 = i0.ɵɵnextContext(3);
484
+ i0.ɵɵproperty("id", ctx_r106.question.name)("formControlName", ctx_r106.question.name)("placeholder", ctx_r106.question.placeholder ? ctx_r106.question.placeholder : "");
485
+ i0.ɵɵattribute("aria-label", ctx_r106.question.title);
543
486
  } }
544
487
  function DynamicFormQuestionComponent_ng_container_10_div_8_Template(rf, ctx) { if (rf & 1) {
545
- i0.ɵɵelementStart(0, "div", 59);
546
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template, 1, 5, "input", 71)(2, DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template, 1, 4, "input", 67)(3, DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template, 1, 5, "input", 71)(4, DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template, 1, 4, "input", 67);
488
+ i0.ɵɵelementStart(0, "div", 51);
489
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template, 1, 5, "input", 64)(2, DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template, 1, 4, "input", 60)(3, DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template, 1, 5, "input", 64)(4, DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template, 1, 4, "input", 60);
547
490
  i0.ɵɵelementEnd();
548
491
  } if (rf & 2) {
549
- const ctx_r88 = i0.ɵɵnextContext(2);
550
- i0.ɵɵproperty("ngStyle", ctx_r88.setStyle(ctx_r88.question.indent));
492
+ const ctx_r70 = i0.ɵɵnextContext(2);
493
+ i0.ɵɵproperty("ngStyle", ctx_r70.setStyle(ctx_r70.question.indent));
551
494
  i0.ɵɵadvance(1);
552
- i0.ɵɵproperty("ngIf", ctx_r88.question.size && ctx_r88.question.maxLength);
495
+ i0.ɵɵproperty("ngIf", ctx_r70.question.size && ctx_r70.question.maxLength);
553
496
  i0.ɵɵadvance(1);
554
- i0.ɵɵproperty("ngIf", ctx_r88.question.size && !ctx_r88.question.maxLength);
497
+ i0.ɵɵproperty("ngIf", ctx_r70.question.size && !ctx_r70.question.maxLength);
555
498
  i0.ɵɵadvance(1);
556
- i0.ɵɵproperty("ngIf", !ctx_r88.question.size && ctx_r88.question.maxLength);
499
+ i0.ɵɵproperty("ngIf", !ctx_r70.question.size && ctx_r70.question.maxLength);
557
500
  i0.ɵɵadvance(1);
558
- i0.ɵɵproperty("ngIf", !ctx_r88.question.size && !ctx_r88.question.maxLength);
501
+ i0.ɵɵproperty("ngIf", !ctx_r70.question.size && !ctx_r70.question.maxLength);
559
502
  } }
560
- const _c6 = a0 => ({ "padding-left.px": a0 });
561
- function DynamicFormQuestionComponent_ng_container_10_div_9_Template(rf, ctx) { if (rf & 1) {
562
- i0.ɵɵelementStart(0, "div", 59);
563
- i0.ɵɵelement(1, "input", 70);
564
- i0.ɵɵelementEnd();
503
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template(rf, ctx) { if (rf & 1) {
504
+ i0.ɵɵelement(0, "input", 69);
565
505
  } if (rf & 2) {
566
- const ctx_r89 = i0.ɵɵnextContext(2);
567
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c6, ctx_r89.question.indent * 10))("ngStyle", ctx_r89.setStyle(ctx_r89.question.indent));
568
- i0.ɵɵadvance(1);
569
- i0.ɵɵproperty("id", ctx_r89.question.name)("formControlName", ctx_r89.question.name)("placeholder", ctx_r89.question.placeholder ? ctx_r89.question.placeholder : "");
570
- i0.ɵɵattribute("aria-label", ctx_r89.question.title);
506
+ const ctx_r107 = i0.ɵɵnextContext(3);
507
+ i0.ɵɵproperty("maxLength", ctx_r107.question.maxLength)("id", ctx_r107.question.name)("formControlName", ctx_r107.question.name)("disabled", !ctx_r107.phoneVerified)("autocomplete", (ctx_r107.question == null ? null : ctx_r107.question.name.includes("secAns")) ? "off" : "on");
508
+ i0.ɵɵattribute("aria-label", ctx_r107.question.title);
571
509
  } }
572
- function DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
573
- const _r120 = i0.ɵɵgetCurrentView();
574
- i0.ɵɵelementStart(0, "p-inputMask", 74);
575
- i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r120); const ctx_r119 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r119.checkForValueChange($event)); });
576
- i0.ɵɵelementEnd();
510
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template(rf, ctx) { if (rf & 1) {
511
+ i0.ɵɵelement(0, "input", 70);
577
512
  } if (rf & 2) {
578
- const ctx_r118 = i0.ɵɵnextContext(3);
579
- i0.ɵɵproperty("inputId", ctx_r118.question.name)("formControlName", ctx_r118.question.name)("placeholder", ctx_r118.question.isRequired ? "999-999-9999" : "Optional");
580
- i0.ɵɵattribute("aria-label", ctx_r118.question.title);
513
+ const ctx_r108 = i0.ɵɵnextContext(3);
514
+ i0.ɵɵproperty("id", ctx_r108.question.name)("formControlName", ctx_r108.question.name)("disabled", !ctx_r108.phoneVerified);
515
+ i0.ɵɵattribute("aria-label", ctx_r108.question.title);
581
516
  } }
582
- function DynamicFormQuestionComponent_ng_container_10_div_10_Template(rf, ctx) { if (rf & 1) {
583
- i0.ɵɵelementStart(0, "div");
584
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_10_p_inputMask_1_Template, 1, 4, "p-inputMask", 73);
517
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template(rf, ctx) { if (rf & 1) {
518
+ i0.ɵɵelement(0, "input", 71);
519
+ } if (rf & 2) {
520
+ const ctx_r109 = i0.ɵɵnextContext(3);
521
+ i0.ɵɵproperty("maxLength", ctx_r109.question.maxLength)("id", ctx_r109.question.name)("formControlName", ctx_r109.question.name)("disabled", !ctx_r109.phoneVerified);
522
+ i0.ɵɵattribute("aria-label", ctx_r109.question.title);
523
+ } }
524
+ function DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template(rf, ctx) { if (rf & 1) {
525
+ i0.ɵɵelement(0, "input", 70);
526
+ } if (rf & 2) {
527
+ const ctx_r110 = i0.ɵɵnextContext(3);
528
+ i0.ɵɵproperty("id", ctx_r110.question.name)("formControlName", ctx_r110.question.name)("disabled", !ctx_r110.phoneVerified);
529
+ i0.ɵɵattribute("aria-label", ctx_r110.question.title);
530
+ } }
531
+ function DynamicFormQuestionComponent_ng_container_10_div_9_Template(rf, ctx) { if (rf & 1) {
532
+ i0.ɵɵelementStart(0, "div", 51);
533
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template, 1, 6, "input", 66)(2, DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template, 1, 4, "input", 67)(3, DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template, 1, 5, "input", 68)(4, DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template, 1, 4, "input", 67);
585
534
  i0.ɵɵelementEnd();
586
535
  } if (rf & 2) {
587
- const ctx_r90 = i0.ɵɵnextContext(2);
536
+ const ctx_r71 = i0.ɵɵnextContext(2);
537
+ i0.ɵɵproperty("ngStyle", ctx_r71.setStyle(ctx_r71.question.indent));
538
+ i0.ɵɵadvance(1);
539
+ i0.ɵɵproperty("ngIf", ctx_r71.question.size && ctx_r71.question.maxLength);
588
540
  i0.ɵɵadvance(1);
589
- i0.ɵɵproperty("ngIf", ctx_r90.question.inputType && ctx_r90.question.inputType === "text");
541
+ i0.ɵɵproperty("ngIf", ctx_r71.question.size && !ctx_r71.question.maxLength);
542
+ i0.ɵɵadvance(1);
543
+ i0.ɵɵproperty("ngIf", !ctx_r71.question.size && ctx_r71.question.maxLength);
544
+ i0.ɵɵadvance(1);
545
+ i0.ɵɵproperty("ngIf", !ctx_r71.question.size && !ctx_r71.question.maxLength);
590
546
  } }
591
- function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_10_Template(rf, ctx) { if (rf & 1) {
592
- i0.ɵɵelementStart(0, "li", 78);
593
- i0.ɵɵtext(1, "1 of the following characters ");
594
- i0.ɵɵelementStart(2, "b");
595
- i0.ɵɵtext(3, "_ @ * $ ! # .");
547
+ function DynamicFormQuestionComponent_ng_container_10_div_10_Template(rf, ctx) { if (rf & 1) {
548
+ i0.ɵɵelementStart(0, "div")(1, "div", 51);
549
+ i0.ɵɵelement(2, "input", 72);
596
550
  i0.ɵɵelementEnd()();
551
+ } if (rf & 2) {
552
+ const ctx_r72 = i0.ɵɵnextContext(2);
553
+ i0.ɵɵadvance(1);
554
+ i0.ɵɵproperty("ngStyle", ctx_r72.setStyle(ctx_r72.question.indent));
555
+ i0.ɵɵadvance(1);
556
+ i0.ɵɵproperty("maxLength", ctx_r72.question.maxLength)("id", ctx_r72.question.name)("formControlName", ctx_r72.question.name);
557
+ i0.ɵɵattribute("aria-label", ctx_r72.question.title)("aria-label", ctx_r72.question.title);
597
558
  } }
598
- function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_11_Template(rf, ctx) { if (rf & 1) {
599
- i0.ɵɵelementStart(0, "li", 78);
600
- i0.ɵɵtext(1, "2 of the following characters ");
601
- i0.ɵɵelementStart(2, "b");
602
- i0.ɵɵtext(3, "_ @ * $ ! # .");
559
+ function DynamicFormQuestionComponent_ng_container_10_div_11_Template(rf, ctx) { if (rf & 1) {
560
+ i0.ɵɵelementStart(0, "div")(1, "div", 51);
561
+ i0.ɵɵelement(2, "input", 72);
603
562
  i0.ɵɵelementEnd()();
563
+ } if (rf & 2) {
564
+ const ctx_r73 = i0.ɵɵnextContext(2);
565
+ i0.ɵɵadvance(1);
566
+ i0.ɵɵproperty("ngStyle", ctx_r73.setStyle(ctx_r73.question.indent));
567
+ i0.ɵɵadvance(1);
568
+ i0.ɵɵproperty("maxLength", ctx_r73.question.maxLength)("id", ctx_r73.question.name)("formControlName", ctx_r73.question.name);
569
+ i0.ɵɵattribute("aria-label", ctx_r73.question.title)("aria-label", ctx_r73.question.title);
604
570
  } }
605
- function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_12_Template(rf, ctx) { if (rf & 1) {
606
- i0.ɵɵelementStart(0, "li", 78);
607
- i0.ɵɵtext(1, "8 characters");
571
+ const _c6 = a0 => ({ "padding-left.px": a0 });
572
+ function DynamicFormQuestionComponent_ng_container_10_div_12_Template(rf, ctx) { if (rf & 1) {
573
+ i0.ɵɵelementStart(0, "div", 51);
574
+ i0.ɵɵelement(1, "input", 63);
608
575
  i0.ɵɵelementEnd();
576
+ } if (rf & 2) {
577
+ const ctx_r74 = i0.ɵɵnextContext(2);
578
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c6, ctx_r74.question.indent * 10))("ngStyle", ctx_r74.setStyle(ctx_r74.question.indent));
579
+ i0.ɵɵadvance(1);
580
+ i0.ɵɵproperty("id", ctx_r74.question.name)("formControlName", ctx_r74.question.name)("placeholder", ctx_r74.question.placeholder ? ctx_r74.question.placeholder : "");
581
+ i0.ɵɵattribute("aria-label", ctx_r74.question.title);
609
582
  } }
610
- function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_13_Template(rf, ctx) { if (rf & 1) {
611
- i0.ɵɵelementStart(0, "li", 78);
612
- i0.ɵɵtext(1, "14 characters");
583
+ function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
584
+ const _r113 = i0.ɵɵgetCurrentView();
585
+ i0.ɵɵelementStart(0, "p-inputMask", 74);
586
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r113); const ctx_r112 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r112.checkForValueChange($event)); });
587
+ i0.ɵɵpipe(1, "translate");
613
588
  i0.ɵɵelementEnd();
589
+ } if (rf & 2) {
590
+ const ctx_r111 = i0.ɵɵnextContext(3);
591
+ i0.ɵɵproperty("inputId", ctx_r111.question.name)("formControlName", ctx_r111.question.name)("placeholder", ctx_r111.question.isRequired ? "999-999-9999" : i0.ɵɵpipeBind1(1, 4, "common.optional"));
592
+ i0.ɵɵattribute("aria-label", ctx_r111.question.title);
614
593
  } }
615
- function DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_Template(rf, ctx) { if (rf & 1) {
616
- i0.ɵɵelement(0, "p-divider");
617
- i0.ɵɵelementStart(1, "p", 76);
618
- i0.ɵɵtext(2, "Password must include at least");
594
+ function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
595
+ i0.ɵɵelementStart(0, "div");
596
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template, 2, 6, "p-inputMask", 73);
619
597
  i0.ɵɵelementEnd();
620
- i0.ɵɵelementStart(3, "ul", 77)(4, "li", 78);
621
- i0.ɵɵtext(5, "1 lowercase letter");
598
+ } if (rf & 2) {
599
+ const ctx_r75 = i0.ɵɵnextContext(2);
600
+ i0.ɵɵadvance(1);
601
+ i0.ɵɵproperty("ngIf", ctx_r75.question.inputType && ctx_r75.question.inputType === "text");
602
+ } }
603
+ function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
604
+ const _r116 = i0.ɵɵgetCurrentView();
605
+ i0.ɵɵelementStart(0, "p-inputMask", 76);
606
+ i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r116); const ctx_r115 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r115.checkForValueChange($event)); });
607
+ i0.ɵɵpipe(1, "translate");
622
608
  i0.ɵɵelementEnd();
623
- i0.ɵɵelementStart(6, "li", 78);
624
- i0.ɵɵtext(7, "1 uppercase letter");
609
+ } if (rf & 2) {
610
+ const ctx_r114 = i0.ɵɵnextContext(3);
611
+ i0.ɵɵproperty("inputId", ctx_r114.question.name)("formControlName", ctx_r114.question.name)("placeholder", ctx_r114.question.isRequired ? "999 999-9999" : i0.ɵɵpipeBind1(1, 4, "common.optional"));
612
+ i0.ɵɵattribute("aria-label", ctx_r114.question.title);
613
+ } }
614
+ function DynamicFormQuestionComponent_ng_container_10_div_14_Template(rf, ctx) { if (rf & 1) {
615
+ i0.ɵɵelementStart(0, "div");
616
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template, 2, 6, "p-inputMask", 75);
625
617
  i0.ɵɵelementEnd();
626
- i0.ɵɵelementStart(8, "li", 78);
627
- i0.ɵɵtext(9, "1 number");
618
+ } if (rf & 2) {
619
+ const ctx_r76 = i0.ɵɵnextContext(2);
620
+ i0.ɵɵadvance(1);
621
+ i0.ɵɵproperty("ngIf", ctx_r76.question.inputType && ctx_r76.question.inputType === "text");
622
+ } }
623
+ function DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_5_Template(rf, ctx) { if (rf & 1) {
624
+ i0.ɵɵelement(0, "p-divider");
625
+ i0.ɵɵelementStart(1, "p", 78);
626
+ i0.ɵɵtext(2);
627
+ i0.ɵɵpipe(3, "translate");
628
628
  i0.ɵɵelementEnd();
629
- i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_10_Template, 4, 0, "li", 79)(11, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_11_Template, 4, 0, "li", 79)(12, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_12_Template, 2, 0, "li", 79)(13, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_li_13_Template, 2, 0, "li", 79);
629
+ i0.ɵɵelementStart(4, "ul", 79)(5, "li", 80);
630
+ i0.ɵɵtext(6);
631
+ i0.ɵɵpipe(7, "translate");
630
632
  i0.ɵɵelementEnd();
631
- i0.ɵɵelement(14, "p-divider");
632
- i0.ɵɵelementStart(15, "p", 76);
633
- i0.ɵɵtext(16, "Suggestion");
633
+ i0.ɵɵelementStart(8, "li", 80);
634
+ i0.ɵɵtext(9);
635
+ i0.ɵɵpipe(10, "translate");
634
636
  i0.ɵɵelementEnd();
635
- i0.ɵɵelementStart(17, "ul", 77)(18, "li", 78);
636
- i0.ɵɵtext(19, "Don't use your name, email or phone");
637
+ i0.ɵɵelementStart(11, "li", 80);
638
+ i0.ɵɵtext(12);
639
+ i0.ɵɵpipe(13, "translate");
637
640
  i0.ɵɵelementEnd();
638
- i0.ɵɵelementStart(20, "li", 78);
639
- i0.ɵɵtext(21, "Don't use your kid, partner or pet name.");
641
+ i0.ɵɵelementStart(14, "li", 80);
642
+ i0.ɵɵtext(15);
643
+ i0.ɵɵpipe(16, "translate");
644
+ i0.ɵɵelementStart(17, "b");
645
+ i0.ɵɵtext(18, "_ @ * $ ! # .");
646
+ i0.ɵɵelementEnd()();
647
+ i0.ɵɵelementStart(19, "li", 80);
648
+ i0.ɵɵtext(20);
649
+ i0.ɵɵpipe(21, "translate");
650
+ i0.ɵɵelementEnd()();
651
+ i0.ɵɵelement(22, "p-divider");
652
+ i0.ɵɵelementStart(23, "p", 78);
653
+ i0.ɵɵtext(24);
654
+ i0.ɵɵpipe(25, "translate");
655
+ i0.ɵɵelementEnd();
656
+ i0.ɵɵelementStart(26, "ul", 79)(27, "li", 80);
657
+ i0.ɵɵtext(28);
658
+ i0.ɵɵpipe(29, "translate");
659
+ i0.ɵɵelementEnd();
660
+ i0.ɵɵelementStart(30, "li", 80);
661
+ i0.ɵɵtext(31);
662
+ i0.ɵɵpipe(32, "translate");
663
+ i0.ɵɵelementEnd();
664
+ i0.ɵɵelementStart(33, "li", 80);
665
+ i0.ɵɵtext(34);
666
+ i0.ɵɵpipe(35, "translate");
640
667
  i0.ɵɵelementEnd()();
641
668
  } if (rf & 2) {
642
- const ctx_r121 = i0.ɵɵnextContext(3);
643
- i0.ɵɵadvance(10);
644
- i0.ɵɵproperty("ngIf", !ctx_r121.isSameSymbolPolicyForClaimantAndAgency);
645
- i0.ɵɵadvance(1);
646
- i0.ɵɵproperty("ngIf", ctx_r121.isSameSymbolPolicyForClaimantAndAgency);
647
- i0.ɵɵadvance(1);
648
- i0.ɵɵproperty("ngIf", !ctx_r121.isNewPasswordPolicyEnabledForClaimant);
649
- i0.ɵɵadvance(1);
650
- i0.ɵɵproperty("ngIf", ctx_r121.isNewPasswordPolicyEnabledForClaimant);
669
+ i0.ɵɵadvance(2);
670
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 10, "common.password.must.include"));
671
+ i0.ɵɵadvance(4);
672
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 12, "common.password.one.uppercase"));
673
+ i0.ɵɵadvance(3);
674
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 14, "common.password.one.lowercase"));
675
+ i0.ɵɵadvance(3);
676
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 16, "common.password.one.number"));
677
+ i0.ɵɵadvance(3);
678
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(16, 18, "common.password.two.mentioned.char"), " ");
679
+ i0.ɵɵadvance(5);
680
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21, 20, "common.password.forteen.chars"));
681
+ i0.ɵɵadvance(4);
682
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(25, 22, "common.password.suggestion.header"));
683
+ i0.ɵɵadvance(4);
684
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(29, 24, "common.password.suggestion.name.email.phone"));
685
+ i0.ɵɵadvance(3);
686
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(32, 26, "common.password.suggestion.kid.partner.pet"));
687
+ i0.ɵɵadvance(3);
688
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(35, 28, "common.password.suggestion.name.or.userid"));
651
689
  } }
652
- function DynamicFormQuestionComponent_ng_container_10_div_11_Template(rf, ctx) { if (rf & 1) {
653
- i0.ɵɵelementStart(0, "div")(1, "p-password", 75);
654
- i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_11_ng_template_2_Template, 22, 4, "ng-template", 12);
690
+ function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
691
+ i0.ɵɵelementStart(0, "div")(1, "p-password", 77);
692
+ i0.ɵɵpipe(2, "translate");
693
+ i0.ɵɵpipe(3, "translate");
694
+ i0.ɵɵpipe(4, "translate");
695
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_5_Template, 36, 30, "ng-template", 11);
655
696
  i0.ɵɵelementEnd()();
656
697
  } if (rf & 2) {
657
- const ctx_r91 = i0.ɵɵnextContext(2);
698
+ const ctx_r77 = i0.ɵɵnextContext(2);
658
699
  i0.ɵɵadvance(1);
659
- i0.ɵɵproperty("inputId", ctx_r91.question.name)("formControlName", ctx_r91.question.name)("toggleMask", true)("maxLength", ctx_r91.question.maxLength)("ariaLabel", ctx_r91.question.title);
700
+ i0.ɵɵpropertyInterpolate("weakLabel", i0.ɵɵpipeBind1(2, 8, "common.password.weak"));
701
+ i0.ɵɵpropertyInterpolate("mediumLabel", i0.ɵɵpipeBind1(3, 10, "common.password.weak"));
702
+ i0.ɵɵpropertyInterpolate("strongLabel", i0.ɵɵpipeBind1(4, 12, "common.password.strong"));
703
+ i0.ɵɵproperty("inputId", ctx_r77.question.name)("formControlName", ctx_r77.question.name)("toggleMask", true)("maxLength", ctx_r77.question.maxLength)("ariaLabel", ctx_r77.question.title);
660
704
  } }
661
- function DynamicFormQuestionComponent_ng_container_10_div_12_Template(rf, ctx) { if (rf & 1) {
705
+ function DynamicFormQuestionComponent_ng_container_10_div_16_Template(rf, ctx) { if (rf & 1) {
662
706
  i0.ɵɵelementStart(0, "div");
663
- i0.ɵɵelement(1, "app-file-uploader", 80);
707
+ i0.ɵɵelement(1, "app-file-uploader", 81);
664
708
  i0.ɵɵelementEnd();
665
709
  } if (rf & 2) {
666
- const ctx_r92 = i0.ɵɵnextContext(2);
710
+ const ctx_r78 = i0.ɵɵnextContext(2);
667
711
  i0.ɵɵadvance(1);
668
- i0.ɵɵproperty("allowedFileType", ctx_r92.question.allowedFileType)("formControlName", ctx_r92.question.name)("maxSizeInMB", ctx_r92.question.sizeInMB)("multiple", ctx_r92.question.multiple)("noOfFilesToUpload", ctx_r92.question.noOFFiles);
669
- i0.ɵɵattribute("aria-label", ctx_r92.question.title);
712
+ i0.ɵɵproperty("allowedFileType", ctx_r78.question.allowedFileType)("formControlName", ctx_r78.question.name)("maxSizeInMB", ctx_r78.question.sizeInMB)("multiple", ctx_r78.question.multiple)("noOfFilesToUpload", ctx_r78.question.noOFFiles);
713
+ i0.ɵɵattribute("aria-label", ctx_r78.question.title);
670
714
  } }
671
- function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
672
- const _r127 = i0.ɵɵgetCurrentView();
673
- i0.ɵɵelementStart(0, "div")(1, "div", 59)(2, "input", 81);
674
- i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_13_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r127); const ctx_r126 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r126.checkForValueChange($event)); });
715
+ function DynamicFormQuestionComponent_ng_container_10_div_17_Template(rf, ctx) { if (rf & 1) {
716
+ const _r119 = i0.ɵɵgetCurrentView();
717
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 82);
718
+ i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_17_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r119); const ctx_r118 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r118.checkForValueChange($event)); });
675
719
  i0.ɵɵelementEnd()()();
676
720
  } if (rf & 2) {
677
- const ctx_r93 = i0.ɵɵnextContext(2);
721
+ const ctx_r79 = i0.ɵɵnextContext(2);
678
722
  i0.ɵɵadvance(1);
679
- i0.ɵɵproperty("ngStyle", ctx_r93.setStyle(ctx_r93.question.indent));
723
+ i0.ɵɵproperty("ngStyle", ctx_r79.setStyle(ctx_r79.question.indent));
680
724
  i0.ɵɵadvance(1);
681
- i0.ɵɵproperty("id", ctx_r93.question.name)("formControlName", ctx_r93.question.name)("placeholder", ctx_r93.question.placeholder ? ctx_r93.question.placeholder : "");
682
- i0.ɵɵattribute("aria-label", ctx_r93.question.title)("aria-label", ctx_r93.question.title);
725
+ i0.ɵɵproperty("id", ctx_r79.question.name)("formControlName", ctx_r79.question.name)("disabled", true)("placeholder", ctx_r79.question.placeholder ? ctx_r79.question.placeholder : "");
726
+ i0.ɵɵattribute("aria-label", ctx_r79.question.title)("aria-label", ctx_r79.question.title);
683
727
  } }
684
- function DynamicFormQuestionComponent_ng_container_10_div_14_input_1_Template(rf, ctx) { if (rf & 1) {
685
- i0.ɵɵelement(0, "input", 70);
728
+ function DynamicFormQuestionComponent_ng_container_10_div_19_Template(rf, ctx) { if (rf & 1) {
729
+ const _r121 = i0.ɵɵgetCurrentView();
730
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 83);
731
+ i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_19_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r121); const ctx_r120 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r120.checkForValueChange($event)); });
732
+ i0.ɵɵelementEnd()()();
686
733
  } if (rf & 2) {
687
- const ctx_r128 = i0.ɵɵnextContext(3);
688
- i0.ɵɵproperty("id", ctx_r128.question.name)("formControlName", ctx_r128.question.name)("placeholder", ctx_r128.question.placeholder ? ctx_r128.question.placeholder : "");
689
- i0.ɵɵattribute("aria-label", ctx_r128.question.title);
734
+ const ctx_r80 = i0.ɵɵnextContext(2);
735
+ i0.ɵɵadvance(1);
736
+ i0.ɵɵproperty("ngStyle", ctx_r80.setStyle(ctx_r80.question.indent));
737
+ i0.ɵɵadvance(1);
738
+ i0.ɵɵproperty("id", ctx_r80.question.name)("formControlName", ctx_r80.question.name);
739
+ i0.ɵɵattribute("aria-label", ctx_r80.question.title)("aria-label", ctx_r80.question.title);
690
740
  } }
691
- function DynamicFormQuestionComponent_ng_container_10_div_14_input_2_Template(rf, ctx) { if (rf & 1) {
692
- i0.ɵɵelement(0, "input", 70);
741
+ function DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template(rf, ctx) { if (rf & 1) {
742
+ i0.ɵɵelement(0, "input", 63);
693
743
  } if (rf & 2) {
694
- const ctx_r129 = i0.ɵɵnextContext(3);
695
- i0.ɵɵproperty("id", ctx_r129.question.name)("formControlName", ctx_r129.question.name)("placeholder", ctx_r129.question.placeholder ? ctx_r129.question.placeholder : "");
696
- i0.ɵɵattribute("aria-label", ctx_r129.question.title);
744
+ const ctx_r122 = i0.ɵɵnextContext(3);
745
+ i0.ɵɵproperty("id", ctx_r122.question.name)("formControlName", ctx_r122.question.name)("placeholder", ctx_r122.question.placeholder ? ctx_r122.question.placeholder : "");
746
+ i0.ɵɵattribute("aria-label", ctx_r122.question.title);
697
747
  } }
698
- function DynamicFormQuestionComponent_ng_container_10_div_14_Template(rf, ctx) { if (rf & 1) {
699
- i0.ɵɵelementStart(0, "div", 59);
700
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_14_input_1_Template, 1, 4, "input", 67)(2, DynamicFormQuestionComponent_ng_container_10_div_14_input_2_Template, 1, 4, "input", 67);
748
+ function DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template(rf, ctx) { if (rf & 1) {
749
+ i0.ɵɵelement(0, "input", 63);
750
+ } if (rf & 2) {
751
+ const ctx_r123 = i0.ɵɵnextContext(3);
752
+ i0.ɵɵproperty("id", ctx_r123.question.name)("formControlName", ctx_r123.question.name)("placeholder", ctx_r123.question.placeholder ? ctx_r123.question.placeholder : "");
753
+ i0.ɵɵattribute("aria-label", ctx_r123.question.title);
754
+ } }
755
+ function DynamicFormQuestionComponent_ng_container_10_div_20_Template(rf, ctx) { if (rf & 1) {
756
+ i0.ɵɵelementStart(0, "div", 51);
757
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template, 1, 4, "input", 60)(2, DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template, 1, 4, "input", 60);
701
758
  i0.ɵɵelementEnd();
702
759
  } if (rf & 2) {
703
- const ctx_r94 = i0.ɵɵnextContext(2);
704
- i0.ɵɵproperty("ngStyle", ctx_r94.setStyle(ctx_r94.question.indent));
760
+ const ctx_r81 = i0.ɵɵnextContext(2);
761
+ i0.ɵɵproperty("ngStyle", ctx_r81.setStyle(ctx_r81.question.indent));
705
762
  i0.ɵɵadvance(1);
706
- i0.ɵɵproperty("ngIf", ctx_r94.question.size);
763
+ i0.ɵɵproperty("ngIf", ctx_r81.question.size);
707
764
  i0.ɵɵadvance(1);
708
- i0.ɵɵproperty("ngIf", !ctx_r94.question.size);
765
+ i0.ɵɵproperty("ngIf", !ctx_r81.question.size);
709
766
  } }
710
- function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
711
- i0.ɵɵelementStart(0, "div", 82);
712
- i0.ɵɵelement(1, "app-overlay-info", 56);
767
+ function DynamicFormQuestionComponent_ng_container_10_div_21_Template(rf, ctx) { if (rf & 1) {
768
+ i0.ɵɵelementStart(0, "div", 84);
769
+ i0.ɵɵelement(1, "app-overlay-info", 48);
713
770
  i0.ɵɵpipe(2, "dynamicTranslate");
714
771
  i0.ɵɵelementEnd();
715
772
  } if (rf & 2) {
716
- const ctx_r95 = i0.ɵɵnextContext(2);
773
+ const ctx_r82 = i0.ɵɵnextContext(2);
717
774
  i0.ɵɵadvance(1);
718
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r95.question.description, ctx_r95.dynamicParam));
775
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r82.question.description, ctx_r82.dynamicParam));
719
776
  } }
720
777
  function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
721
778
  i0.ɵɵelementContainerStart(0);
722
- i0.ɵɵelementStart(1, "div", 57);
723
- i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template, 3, 10, "div", 3)(3, DynamicFormQuestionComponent_ng_container_10_div_3_Template, 2, 5, "div", 8)(4, DynamicFormQuestionComponent_ng_container_10_div_4_Template, 2, 5, "div", 8)(5, DynamicFormQuestionComponent_ng_container_10_div_5_Template, 2, 4, "div", 8)(6, DynamicFormQuestionComponent_ng_container_10_div_6_Template, 2, 5, "div", 8)(7, DynamicFormQuestionComponent_ng_container_10_div_7_Template, 5, 5, "div", 8)(8, DynamicFormQuestionComponent_ng_container_10_div_8_Template, 5, 5, "div", 8)(9, DynamicFormQuestionComponent_ng_container_10_div_9_Template, 2, 8, "div", 8)(10, DynamicFormQuestionComponent_ng_container_10_div_10_Template, 2, 1, "div", 3)(11, DynamicFormQuestionComponent_ng_container_10_div_11_Template, 3, 5, "div", 3)(12, DynamicFormQuestionComponent_ng_container_10_div_12_Template, 2, 6, "div", 3)(13, DynamicFormQuestionComponent_ng_container_10_div_13_Template, 3, 6, "div", 3)(14, DynamicFormQuestionComponent_ng_container_10_div_14_Template, 3, 3, "div", 8)(15, DynamicFormQuestionComponent_ng_container_10_div_15_Template, 3, 4, "div", 58);
779
+ i0.ɵɵelementStart(1, "div", 49);
780
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template, 4, 10, "div", 3)(3, DynamicFormQuestionComponent_ng_container_10_div_3_Template, 4, 10, "div", 3)(4, DynamicFormQuestionComponent_ng_container_10_div_4_Template, 2, 6, "div", 8)(5, DynamicFormQuestionComponent_ng_container_10_div_5_Template, 2, 4, "div", 8)(6, DynamicFormQuestionComponent_ng_container_10_div_6_Template, 2, 5, "div", 8)(7, DynamicFormQuestionComponent_ng_container_10_div_7_Template, 5, 5, "div", 8)(8, DynamicFormQuestionComponent_ng_container_10_div_8_Template, 5, 5, "div", 8)(9, DynamicFormQuestionComponent_ng_container_10_div_9_Template, 5, 5, "div", 8)(10, DynamicFormQuestionComponent_ng_container_10_div_10_Template, 3, 6, "div", 3)(11, DynamicFormQuestionComponent_ng_container_10_div_11_Template, 3, 6, "div", 3)(12, DynamicFormQuestionComponent_ng_container_10_div_12_Template, 2, 8, "div", 8)(13, DynamicFormQuestionComponent_ng_container_10_div_13_Template, 2, 1, "div", 3)(14, DynamicFormQuestionComponent_ng_container_10_div_14_Template, 2, 1, "div", 3)(15, DynamicFormQuestionComponent_ng_container_10_div_15_Template, 6, 14, "div", 3)(16, DynamicFormQuestionComponent_ng_container_10_div_16_Template, 2, 6, "div", 3)(17, DynamicFormQuestionComponent_ng_container_10_div_17_Template, 3, 7, "div", 3);
781
+ i0.ɵɵelementStart(18, "div");
782
+ i0.ɵɵtemplate(19, DynamicFormQuestionComponent_ng_container_10_div_19_Template, 3, 5, "div", 3);
783
+ i0.ɵɵelementEnd();
784
+ i0.ɵɵtemplate(20, DynamicFormQuestionComponent_ng_container_10_div_20_Template, 3, 3, "div", 8)(21, DynamicFormQuestionComponent_ng_container_10_div_21_Template, 3, 4, "div", 50);
724
785
  i0.ɵɵelementEnd();
725
786
  i0.ɵɵelementContainerEnd();
726
787
  } if (rf & 2) {
727
788
  const ctx_r8 = i0.ɵɵnextContext();
728
789
  i0.ɵɵadvance(2);
729
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date");
790
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name != "dob");
730
791
  i0.ɵɵadvance(1);
731
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ssn");
792
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name === "dob");
732
793
  i0.ɵɵadvance(1);
733
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "custommask");
794
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ssn");
734
795
  i0.ɵɵadvance(1);
735
796
  i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ean");
736
797
  i0.ɵɵadvance(1);
@@ -738,73 +799,83 @@ function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf
738
799
  i0.ɵɵadvance(1);
739
800
  i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && (!ctx_r8.question.customTag || ctx_r8.question.customTag === "Optional") && !ctx_r8.question.isRequired);
740
801
  i0.ɵɵadvance(1);
741
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired);
802
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && !ctx_r8.checkFlowKey());
803
+ i0.ɵɵadvance(1);
804
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && ctx_r8.checkFlowKey());
805
+ i0.ɵɵadvance(1);
806
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("firstName") && ctx_r8.checkFlowKey());
807
+ i0.ɵɵadvance(1);
808
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("lastName") && ctx_r8.checkFlowKey());
742
809
  i0.ɵɵadvance(1);
743
810
  i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && ctx_r8.question.customTag && !ctx_r8.question.customTag.includes("phone"));
744
811
  i0.ɵɵadvance(1);
745
- i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone"));
812
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && !ctx_r8.checkFlowKey());
813
+ i0.ɵɵadvance(1);
814
+ i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && ctx_r8.checkFlowKey());
746
815
  i0.ɵɵadvance(1);
747
816
  i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("password"));
748
817
  i0.ɵɵadvance(1);
749
818
  i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("fileupload"));
750
819
  i0.ɵɵadvance(1);
751
- i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password" && ctx_r8.question.customTag != "custommask"));
820
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "firstName" && ctx_r8.question.customTag != "lastName" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && ctx_r8.checkFlowKey());
821
+ i0.ɵɵadvance(2);
822
+ i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && !ctx_r8.checkFlowKey());
752
823
  i0.ɵɵadvance(1);
753
824
  i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && !ctx_r8.question.customTag);
754
825
  i0.ɵɵadvance(1);
755
826
  i0.ɵɵproperty("ngIf", ctx_r8.question.description);
756
827
  } }
757
- function DynamicFormQuestionComponent_ng_container_11_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
758
- i0.ɵɵelementStart(0, "div", 87);
759
- i0.ɵɵelement(1, "app-overlay-info", 56);
760
- i0.ɵɵpipe(2, "dynamicTranslate");
828
+ function DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template(rf, ctx) { if (rf & 1) {
829
+ i0.ɵɵelementStart(0, "small", 87);
830
+ i0.ɵɵtext(1);
761
831
  i0.ɵɵelementEnd();
762
832
  } if (rf & 2) {
763
- const ctx_r132 = i0.ɵɵnextContext(3);
833
+ const ctx_r126 = i0.ɵɵnextContext(3);
764
834
  i0.ɵɵadvance(1);
765
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r132.question.description, ctx_r132.dynamicParam));
835
+ i0.ɵɵtextInterpolate(ctx_r126.question.description);
766
836
  } }
767
837
  function DynamicFormQuestionComponent_ng_container_11_div_1_Template(rf, ctx) { if (rf & 1) {
768
- i0.ɵɵelementStart(0, "div", 84);
838
+ i0.ɵɵelementStart(0, "div", 51);
769
839
  i0.ɵɵelement(1, "textarea", 85);
770
- i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_11_div_1_div_2_Template, 3, 4, "div", 86);
771
- i0.ɵɵelementEnd();
840
+ i0.ɵɵelementStart(2, "div");
841
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template, 2, 1, "small", 86);
842
+ i0.ɵɵelementEnd()();
772
843
  } if (rf & 2) {
773
- const ctx_r130 = i0.ɵɵnextContext(2);
774
- i0.ɵɵproperty("ngStyle", ctx_r130.setStyle(ctx_r130.question.indent));
775
- i0.ɵɵadvance(1);
776
- i0.ɵɵproperty("id", ctx_r130.question.name)("formControlName", ctx_r130.question.name)("maxLength", ctx_r130.question.maxLength)("rows", 3)("cols", 35)("placeholder", ctx_r130.question.placeholder ? ctx_r130.question.placeholder : "");
777
- i0.ɵɵattribute("aria-label", ctx_r130.question.title);
844
+ const ctx_r124 = i0.ɵɵnextContext(2);
845
+ i0.ɵɵproperty("ngStyle", ctx_r124.setStyle(ctx_r124.question.indent));
778
846
  i0.ɵɵadvance(1);
779
- i0.ɵɵproperty("ngIf", ctx_r130.question.description);
847
+ i0.ɵɵproperty("id", ctx_r124.question.name)("formControlName", ctx_r124.question.name)("maxLength", ctx_r124.question.maxLength)("rows", 3)("cols", 35)("placeholder", ctx_r124.question.placeholder ? ctx_r124.question.placeholder : "");
848
+ i0.ɵɵattribute("aria-label", ctx_r124.question.title);
849
+ i0.ɵɵadvance(2);
850
+ i0.ɵɵproperty("ngIf", ctx_r124.question.description);
780
851
  } }
781
- function DynamicFormQuestionComponent_ng_container_11_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
782
- i0.ɵɵelementStart(0, "div", 87);
783
- i0.ɵɵelement(1, "app-overlay-info", 56);
784
- i0.ɵɵpipe(2, "dynamicTranslate");
852
+ function DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template(rf, ctx) { if (rf & 1) {
853
+ i0.ɵɵelementStart(0, "small", 87);
854
+ i0.ɵɵtext(1);
785
855
  i0.ɵɵelementEnd();
786
856
  } if (rf & 2) {
787
- const ctx_r133 = i0.ɵɵnextContext(3);
857
+ const ctx_r127 = i0.ɵɵnextContext(3);
788
858
  i0.ɵɵadvance(1);
789
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r133.question.description, ctx_r133.dynamicParam));
859
+ i0.ɵɵtextInterpolate(ctx_r127.question.description);
790
860
  } }
791
861
  function DynamicFormQuestionComponent_ng_container_11_div_2_Template(rf, ctx) { if (rf & 1) {
792
- i0.ɵɵelementStart(0, "div", 84);
862
+ i0.ɵɵelementStart(0, "div", 51);
793
863
  i0.ɵɵelement(1, "textarea", 88);
794
- i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_11_div_2_div_2_Template, 3, 4, "div", 86);
795
- i0.ɵɵelementEnd();
864
+ i0.ɵɵelementStart(2, "div");
865
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template, 2, 1, "small", 86);
866
+ i0.ɵɵelementEnd()();
796
867
  } if (rf & 2) {
797
- const ctx_r131 = i0.ɵɵnextContext(2);
798
- i0.ɵɵproperty("ngStyle", ctx_r131.setStyle(ctx_r131.question.indent));
868
+ const ctx_r125 = i0.ɵɵnextContext(2);
869
+ i0.ɵɵproperty("ngStyle", ctx_r125.setStyle(ctx_r125.question.indent));
799
870
  i0.ɵɵadvance(1);
800
- i0.ɵɵproperty("id", ctx_r131.question.name)("formControlName", ctx_r131.question.name)("rows", 3)("cols", 35)("placeholder", ctx_r131.question.placeholder ? ctx_r131.question.placeholder : "");
801
- i0.ɵɵattribute("aria-label", ctx_r131.question.title);
802
- i0.ɵɵadvance(1);
803
- i0.ɵɵproperty("ngIf", ctx_r131.question.description);
871
+ i0.ɵɵproperty("id", ctx_r125.question.name)("formControlName", ctx_r125.question.name)("rows", 3)("cols", 35)("placeholder", ctx_r125.question.placeholder ? ctx_r125.question.placeholder : "");
872
+ i0.ɵɵattribute("aria-label", ctx_r125.question.title);
873
+ i0.ɵɵadvance(2);
874
+ i0.ɵɵproperty("ngIf", ctx_r125.question.description);
804
875
  } }
805
876
  function DynamicFormQuestionComponent_ng_container_11_Template(rf, ctx) { if (rf & 1) {
806
877
  i0.ɵɵelementContainerStart(0);
807
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_11_div_1_Template, 3, 9, "div", 83)(2, DynamicFormQuestionComponent_ng_container_11_div_2_Template, 3, 8, "div", 83);
878
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_11_div_1_Template, 4, 9, "div", 8)(2, DynamicFormQuestionComponent_ng_container_11_div_2_Template, 4, 8, "div", 8);
808
879
  i0.ɵɵelementContainerEnd();
809
880
  } if (rf & 2) {
810
881
  const ctx_r9 = i0.ɵɵnextContext();
@@ -818,39 +889,39 @@ function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_templa
818
889
  i0.ɵɵtext(2);
819
890
  i0.ɵɵelementEnd()();
820
891
  } if (rf & 2) {
821
- const value_r137 = ctx.$implicit;
892
+ const value_r131 = ctx.$implicit;
822
893
  i0.ɵɵadvance(2);
823
- i0.ɵɵtextInterpolate(value_r137.text);
894
+ i0.ɵɵtextInterpolate(value_r131.text);
824
895
  } }
825
896
  function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template(rf, ctx) { if (rf & 1) {
826
- const _r139 = i0.ɵɵgetCurrentView();
897
+ const _r133 = i0.ɵɵgetCurrentView();
827
898
  i0.ɵɵelementStart(0, "p-autoComplete", 91);
828
- i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(_r139); const ctx_r138 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r138.filterValue($event, ctx_r138.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r139); const ctx_r140 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r140.onSelect($event, ctx_r140.question.name)); });
899
+ i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(_r133); const ctx_r132 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r132.filterValue($event, ctx_r132.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r133); const ctx_r134 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r134.onSelect($event, ctx_r134.question.name)); });
829
900
  i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template, 3, 1, "ng-template", 92);
830
901
  i0.ɵɵelementEnd();
831
902
  } if (rf & 2) {
832
- const ctx_r134 = i0.ɵɵnextContext(2);
833
- i0.ɵɵproperty("formControlName", ctx_r134.question.name)("suggestions", ctx_r134.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
903
+ const ctx_r128 = i0.ɵɵnextContext(2);
904
+ i0.ɵɵproperty("formControlName", ctx_r128.question.name)("suggestions", ctx_r128.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
834
905
  } }
835
906
  function DynamicFormQuestionComponent_ng_container_12_div_5_Template(rf, ctx) { if (rf & 1) {
836
- i0.ɵɵelementStart(0, "div", 82);
837
- i0.ɵɵelement(1, "app-overlay-info", 56);
907
+ i0.ɵɵelementStart(0, "div", 84);
908
+ i0.ɵɵelement(1, "app-overlay-info", 48);
838
909
  i0.ɵɵpipe(2, "dynamicTranslate");
839
910
  i0.ɵɵelementEnd();
840
911
  } if (rf & 2) {
841
- const ctx_r135 = i0.ɵɵnextContext(2);
912
+ const ctx_r129 = i0.ɵɵnextContext(2);
842
913
  i0.ɵɵadvance(1);
843
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r135.question.description, ctx_r135.dynamicParam));
914
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r129.question.description, ctx_r129.dynamicParam));
844
915
  } }
845
916
  function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
846
- const _r142 = i0.ɵɵgetCurrentView();
917
+ const _r136 = i0.ɵɵgetCurrentView();
847
918
  i0.ɵɵelementContainerStart(0);
848
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
919
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
849
920
  i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template, 2, 5, "p-autoComplete", 89);
850
921
  i0.ɵɵelementStart(4, "app-dropdown", 90);
851
- i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r141 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r141.onSelect($event, ctx_r141.question.name)); })("onClick", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onClick_4_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r143 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r143.filterValue($event, ctx_r143.question)); });
922
+ i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r136); const ctx_r135 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r135.onSelect($event, ctx_r135.question.name)); })("onClick", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onClick_4_listener($event) { i0.ɵɵrestoreView(_r136); const ctx_r137 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r137.filterValue($event, ctx_r137.question)); });
852
923
  i0.ɵɵelementEnd()();
853
- i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 58);
924
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 50);
854
925
  i0.ɵɵelementEnd();
855
926
  i0.ɵɵelementContainerEnd();
856
927
  } if (rf & 2) {
@@ -860,54 +931,102 @@ function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf
860
931
  i0.ɵɵadvance(1);
861
932
  i0.ɵɵproperty("ngIf", false);
862
933
  i0.ɵɵadvance(1);
863
- i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title)("placeholder", ctx_r10.question.placeholder ? ctx_r10.question.placeholder : "");
934
+ i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title);
864
935
  i0.ɵɵadvance(1);
865
936
  i0.ɵɵproperty("ngIf", ctx_r10.question.description);
866
937
  } }
867
- function DynamicFormQuestionComponent_ng_container_13_div_4_Template(rf, ctx) { if (rf & 1) {
868
- i0.ɵɵelementStart(0, "div", 82);
869
- i0.ɵɵelement(1, "app-overlay-info", 56);
938
+ function DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
939
+ i0.ɵɵelementStart(0, "div");
940
+ i0.ɵɵelement(1, "app-overlay-info", 48);
941
+ i0.ɵɵpipe(2, "dynamicTranslate");
942
+ i0.ɵɵelementEnd();
943
+ } if (rf & 2) {
944
+ const ctx_r140 = i0.ɵɵnextContext(3);
945
+ i0.ɵɵadvance(1);
946
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r140.question.description, ctx_r140.dynamicParam));
947
+ } }
948
+ function DynamicFormQuestionComponent_ng_container_13_div_2_Template(rf, ctx) { if (rf & 1) {
949
+ const _r142 = i0.ɵɵgetCurrentView();
950
+ i0.ɵɵelementStart(0, "div", 95)(1, "div", 51)(2, "p-selectButton", 96);
951
+ i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_2_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r142); const ctx_r141 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r141.onRadioOptionClick($event, ctx_r141.question)); });
952
+ i0.ɵɵelementEnd()();
953
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template, 3, 4, "div", 3);
954
+ i0.ɵɵelementEnd();
955
+ } if (rf & 2) {
956
+ const ctx_r138 = i0.ɵɵnextContext(2);
957
+ i0.ɵɵadvance(1);
958
+ i0.ɵɵproperty("ngStyle", ctx_r138.setStyle(ctx_r138.question.indent));
959
+ i0.ɵɵadvance(1);
960
+ i0.ɵɵproperty("options", ctx_r138.question.choices)("formControlName", ctx_r138.question.name);
961
+ i0.ɵɵadvance(1);
962
+ i0.ɵɵproperty("ngIf", ctx_r138.question.description);
963
+ } }
964
+ function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template(rf, ctx) { if (rf & 1) {
965
+ const _r146 = i0.ɵɵgetCurrentView();
966
+ i0.ɵɵelementStart(0, "app-mfa2", 99);
967
+ i0.ɵɵlistener("formChange", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_formChange_0_listener($event) { i0.ɵɵrestoreView(_r146); const ctx_r145 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r145.form = $event); })("success", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r146); const ctx_r147 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r147.enableFields()); });
968
+ i0.ɵɵelementEnd();
969
+ } if (rf & 2) {
970
+ const ctx_r143 = i0.ɵɵnextContext(3);
971
+ i0.ɵɵproperty("display", ctx_r143.isOtpModalEnabled)("returningUser", ctx_r143.isReturningUser)("form", ctx_r143.form);
972
+ } }
973
+ function DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template(rf, ctx) { if (rf & 1) {
974
+ i0.ɵɵelementStart(0, "div", 84);
975
+ i0.ɵɵelement(1, "app-overlay-info", 48);
870
976
  i0.ɵɵpipe(2, "dynamicTranslate");
871
977
  i0.ɵɵelementEnd();
872
978
  } if (rf & 2) {
873
- const ctx_r144 = i0.ɵɵnextContext(2);
979
+ const ctx_r144 = i0.ɵɵnextContext(3);
874
980
  i0.ɵɵadvance(1);
875
981
  i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r144.question.description, ctx_r144.dynamicParam));
876
982
  } }
983
+ function DynamicFormQuestionComponent_ng_container_13_div_3_Template(rf, ctx) { if (rf & 1) {
984
+ const _r149 = i0.ɵɵgetCurrentView();
985
+ i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "p-selectButton", 97);
986
+ i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_3_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r149); const ctx_r148 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r148.generateOtpForNewUserCreation($event, ctx_r148.form)); });
987
+ i0.ɵɵelementEnd()();
988
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template, 1, 3, "app-mfa2", 98)(4, DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template, 3, 4, "div", 50);
989
+ i0.ɵɵelementEnd();
990
+ } if (rf & 2) {
991
+ const ctx_r139 = i0.ɵɵnextContext(2);
992
+ i0.ɵɵadvance(1);
993
+ i0.ɵɵproperty("ngStyle", ctx_r139.setStyle(ctx_r139.question.indent));
994
+ i0.ɵɵadvance(1);
995
+ i0.ɵɵproperty("options", ctx_r139.question.choices)("formControlName", ctx_r139.question.name);
996
+ i0.ɵɵadvance(1);
997
+ i0.ɵɵproperty("ngIf", ctx_r139.isOtpModalEnabled);
998
+ i0.ɵɵadvance(1);
999
+ i0.ɵɵproperty("ngIf", ctx_r139.question.description);
1000
+ } }
877
1001
  function DynamicFormQuestionComponent_ng_container_13_Template(rf, ctx) { if (rf & 1) {
878
- const _r146 = i0.ɵɵgetCurrentView();
879
1002
  i0.ɵɵelementContainerStart(0);
880
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59)(3, "p-selectButton", 93);
881
- i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_Template_p_selectButton_onOptionClick_3_listener($event) { i0.ɵɵrestoreView(_r146); const ctx_r145 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r145.onRadioOptionClick($event, ctx_r145.question)); });
882
- i0.ɵɵelementEnd()();
883
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_13_div_4_Template, 3, 4, "div", 58);
1003
+ i0.ɵɵelementStart(1, "div", 93);
1004
+ i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_13_div_2_Template, 4, 4, "div", 94)(3, DynamicFormQuestionComponent_ng_container_13_div_3_Template, 5, 5, "div", 3);
884
1005
  i0.ɵɵelementEnd();
885
1006
  i0.ɵɵelementContainerEnd();
886
1007
  } if (rf & 2) {
887
1008
  const ctx_r11 = i0.ɵɵnextContext();
888
1009
  i0.ɵɵadvance(2);
889
- i0.ɵɵproperty("ngStyle", ctx_r11.setStyle(ctx_r11.question.indent));
890
- i0.ɵɵadvance(1);
891
- i0.ɵɵproperty("options", ctx_r11.question.choices)("formControlName", ctx_r11.question.name);
1010
+ i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name != "verification");
892
1011
  i0.ɵɵadvance(1);
893
- i0.ɵɵproperty("ngIf", ctx_r11.question.description);
1012
+ i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name === "verification");
894
1013
  } }
895
1014
  function DynamicFormQuestionComponent_ng_container_14_div_4_Template(rf, ctx) { if (rf & 1) {
896
- i0.ɵɵelementStart(0, "div", 82);
897
- i0.ɵɵelement(1, "app-overlay-info", 56);
1015
+ i0.ɵɵelementStart(0, "div", 84);
1016
+ i0.ɵɵelement(1, "app-overlay-info", 48);
898
1017
  i0.ɵɵpipe(2, "dynamicTranslate");
899
1018
  i0.ɵɵelementEnd();
900
1019
  } if (rf & 2) {
901
- const ctx_r147 = i0.ɵɵnextContext(2);
1020
+ const ctx_r150 = i0.ɵɵnextContext(2);
902
1021
  i0.ɵɵadvance(1);
903
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r147.question.description, ctx_r147.dynamicParam));
1022
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r150.question.description, ctx_r150.dynamicParam));
904
1023
  } }
905
1024
  function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
906
1025
  i0.ɵɵelementContainerStart(0);
907
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
908
- i0.ɵɵelement(3, "p-inputNumber", 94);
1026
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1027
+ i0.ɵɵelement(3, "p-inputNumber", 100);
909
1028
  i0.ɵɵelementEnd();
910
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 58);
1029
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 50);
911
1030
  i0.ɵɵelementEnd();
912
1031
  i0.ɵɵelementContainerEnd();
913
1032
  } if (rf & 2) {
@@ -916,26 +1035,26 @@ function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf
916
1035
  i0.ɵɵproperty("ngStyle", ctx_r12.setStyle(ctx_r12.question.indent));
917
1036
  i0.ɵɵadvance(1);
918
1037
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r12.question.name);
919
- i0.ɵɵproperty("inputId", ctx_r12.question.name)("useGrouping", false)("min", ctx_r12.minValue)("max", ctx_r12.maxValue)("size", ctx_r12.question.size ? ctx_r12.question.size : null)("maxlength", ctx_r12.question.maxLength ? ctx_r12.question.maxLength : null)("ariaLabel", ctx_r12.question.title)("placeholder", ctx_r12.question.placeholder ? ctx_r12.question.placeholder : "")("required", ctx_r12.question.isRequired);
1038
+ i0.ɵɵproperty("inputId", ctx_r12.question.name)("useGrouping", false)("min", ctx_r12.minValue)("max", ctx_r12.maxValue)("size", ctx_r12.question.size ? ctx_r12.question.size : null)("maxlength", ctx_r12.question.maxLength ? ctx_r12.question.maxLength : null)("ariaLabel", ctx_r12.question.title)("placeholder", ctx_r12.question.placeholder ? ctx_r12.question.placeholder : "");
920
1039
  i0.ɵɵadvance(1);
921
1040
  i0.ɵɵproperty("ngIf", ctx_r12.question.description);
922
1041
  } }
923
1042
  function DynamicFormQuestionComponent_ng_container_15_div_4_Template(rf, ctx) { if (rf & 1) {
924
- i0.ɵɵelementStart(0, "div", 82);
925
- i0.ɵɵelement(1, "app-overlay-info", 56);
1043
+ i0.ɵɵelementStart(0, "div", 84);
1044
+ i0.ɵɵelement(1, "app-overlay-info", 48);
926
1045
  i0.ɵɵpipe(2, "dynamicTranslate");
927
1046
  i0.ɵɵelementEnd();
928
1047
  } if (rf & 2) {
929
- const ctx_r148 = i0.ɵɵnextContext(2);
1048
+ const ctx_r151 = i0.ɵɵnextContext(2);
930
1049
  i0.ɵɵadvance(1);
931
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r148.question.description, ctx_r148.dynamicParam));
1050
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
932
1051
  } }
933
1052
  function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf & 1) {
934
1053
  i0.ɵɵelementContainerStart(0);
935
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
936
- i0.ɵɵelement(3, "p-inputNumber", 95);
1054
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1055
+ i0.ɵɵelement(3, "p-inputNumber", 101);
937
1056
  i0.ɵɵelementEnd();
938
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 58);
1057
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 50);
939
1058
  i0.ɵɵelementEnd();
940
1059
  i0.ɵɵelementContainerEnd();
941
1060
  } if (rf & 2) {
@@ -944,26 +1063,26 @@ function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf
944
1063
  i0.ɵɵproperty("ngStyle", ctx_r13.setStyle(ctx_r13.question.indent));
945
1064
  i0.ɵɵadvance(1);
946
1065
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r13.question.name);
947
- i0.ɵɵproperty("inputId", ctx_r13.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r13.minValue)("max", ctx_r13.maxValue)("size", ctx_r13.question.size ? ctx_r13.question.size : null)("maxlength", ctx_r13.question.maxLength ? ctx_r13.question.maxLength : null)("ariaLabel", ctx_r13.question.title)("placeholder", ctx_r13.question.placeholder ? ctx_r13.question.placeholder : "")("required", ctx_r13.question.isRequired);
1066
+ i0.ɵɵproperty("inputId", ctx_r13.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r13.minValue)("max", ctx_r13.maxValue)("size", ctx_r13.question.size ? ctx_r13.question.size : null)("maxlength", ctx_r13.question.maxLength ? ctx_r13.question.maxLength : null)("ariaLabel", ctx_r13.question.title)("placeholder", ctx_r13.question.placeholder ? ctx_r13.question.placeholder : "");
948
1067
  i0.ɵɵadvance(1);
949
1068
  i0.ɵɵproperty("ngIf", ctx_r13.question.description);
950
1069
  } }
951
1070
  function DynamicFormQuestionComponent_ng_container_16_div_4_Template(rf, ctx) { if (rf & 1) {
952
- i0.ɵɵelementStart(0, "div", 82);
953
- i0.ɵɵelement(1, "app-overlay-info", 56);
1071
+ i0.ɵɵelementStart(0, "div", 84);
1072
+ i0.ɵɵelement(1, "app-overlay-info", 48);
954
1073
  i0.ɵɵpipe(2, "dynamicTranslate");
955
1074
  i0.ɵɵelementEnd();
956
1075
  } if (rf & 2) {
957
- const ctx_r149 = i0.ɵɵnextContext(2);
1076
+ const ctx_r152 = i0.ɵɵnextContext(2);
958
1077
  i0.ɵɵadvance(1);
959
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r149.question.description, ctx_r149.dynamicParam));
1078
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r152.question.description, ctx_r152.dynamicParam));
960
1079
  } }
961
1080
  function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf & 1) {
962
1081
  i0.ɵɵelementContainerStart(0);
963
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
964
- i0.ɵɵelement(3, "p-inputNumber", 96);
1082
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1083
+ i0.ɵɵelement(3, "p-inputNumber", 102);
965
1084
  i0.ɵɵelementEnd();
966
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 58);
1085
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 50);
967
1086
  i0.ɵɵelementEnd();
968
1087
  i0.ɵɵelementContainerEnd();
969
1088
  } if (rf & 2) {
@@ -972,34 +1091,34 @@ function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf
972
1091
  i0.ɵɵproperty("ngStyle", ctx_r14.setStyle(ctx_r14.question.indent));
973
1092
  i0.ɵɵadvance(1);
974
1093
  i0.ɵɵpropertyInterpolate("formControlName", ctx_r14.question.name);
975
- i0.ɵɵproperty("inputId", ctx_r14.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r14.minValue)("max", ctx_r14.maxValue)("size", ctx_r14.question.size ? ctx_r14.question.size : null)("maxlength", ctx_r14.question.maxLength ? ctx_r14.question.maxLength : null)("ariaLabel", ctx_r14.question.title)("placeholder", ctx_r14.question.placeholder ? ctx_r14.question.placeholder : "")("required", ctx_r14.question.isRequired);
1094
+ i0.ɵɵproperty("inputId", ctx_r14.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r14.minValue)("max", ctx_r14.maxValue)("size", ctx_r14.question.size ? ctx_r14.question.size : null)("maxlength", ctx_r14.question.maxLength ? ctx_r14.question.maxLength : null)("ariaLabel", ctx_r14.question.title)("placeholder", ctx_r14.question.placeholder ? ctx_r14.question.placeholder : "");
976
1095
  i0.ɵɵadvance(1);
977
1096
  i0.ɵɵproperty("ngIf", ctx_r14.question.description);
978
1097
  } }
979
1098
  function DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
980
- i0.ɵɵelement(0, "p-checkbox", 99);
1099
+ i0.ɵɵelement(0, "p-checkbox", 105);
981
1100
  } if (rf & 2) {
982
- const choice_r152 = ctx.$implicit;
983
- const ctx_r150 = i0.ɵɵnextContext(2);
984
- i0.ɵɵproperty("name", ctx_r150.question.name + "-group")("value", choice_r152.value)("label", choice_r152.text)("formControl", ctx_r150.form.controls[ctx_r150.question.name])("inputId", ctx_r150.question.name + "-" + choice_r152.value);
985
- i0.ɵɵattribute("aria-label", ctx_r150.question.title);
1101
+ const choice_r155 = ctx.$implicit;
1102
+ const ctx_r153 = i0.ɵɵnextContext(2);
1103
+ i0.ɵɵproperty("name", ctx_r153.question.name + "-group")("value", choice_r155.value)("label", choice_r155.text)("formControl", ctx_r153.form.controls[ctx_r153.question.name])("inputId", ctx_r153.question.name + "-" + choice_r155.value);
1104
+ i0.ɵɵattribute("aria-label", ctx_r153.question.title);
986
1105
  } }
987
1106
  function DynamicFormQuestionComponent_ng_container_17_div_4_Template(rf, ctx) { if (rf & 1) {
988
- i0.ɵɵelementStart(0, "div", 82);
989
- i0.ɵɵelement(1, "app-overlay-info", 56);
1107
+ i0.ɵɵelementStart(0, "div", 84);
1108
+ i0.ɵɵelement(1, "app-overlay-info", 48);
990
1109
  i0.ɵɵpipe(2, "dynamicTranslate");
991
1110
  i0.ɵɵelementEnd();
992
1111
  } if (rf & 2) {
993
- const ctx_r151 = i0.ɵɵnextContext(2);
1112
+ const ctx_r154 = i0.ɵɵnextContext(2);
994
1113
  i0.ɵɵadvance(1);
995
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
1114
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r154.question.description, ctx_r154.dynamicParam));
996
1115
  } }
997
1116
  function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf & 1) {
998
1117
  i0.ɵɵelementContainerStart(0);
999
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 97);
1000
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 98);
1118
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 103);
1119
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
1001
1120
  i0.ɵɵelementEnd();
1002
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 58);
1121
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 50);
1003
1122
  i0.ɵɵelementEnd();
1004
1123
  i0.ɵɵelementContainerEnd();
1005
1124
  } if (rf & 2) {
@@ -1012,29 +1131,29 @@ function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf
1012
1131
  i0.ɵɵproperty("ngIf", ctx_r15.question.description);
1013
1132
  } }
1014
1133
  function DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
1015
- i0.ɵɵelement(0, "p-checkbox", 99);
1134
+ i0.ɵɵelement(0, "p-checkbox", 105);
1016
1135
  } if (rf & 2) {
1017
- const choice_r155 = ctx.$implicit;
1018
- const ctx_r153 = i0.ɵɵnextContext(2);
1019
- i0.ɵɵproperty("name", ctx_r153.question.name + "-group")("value", choice_r155.value)("label", choice_r155.text)("formControl", ctx_r153.form.controls[ctx_r153.question.name])("inputId", ctx_r153.question.name + "-" + choice_r155.value);
1020
- i0.ɵɵattribute("aria-label", ctx_r153.question.title);
1136
+ const choice_r158 = ctx.$implicit;
1137
+ const ctx_r156 = i0.ɵɵnextContext(2);
1138
+ i0.ɵɵproperty("name", ctx_r156.question.name + "-group")("value", choice_r158.value)("label", choice_r158.text)("formControl", ctx_r156.form.controls[ctx_r156.question.name])("inputId", ctx_r156.question.name + "-" + choice_r158.value);
1139
+ i0.ɵɵattribute("aria-label", ctx_r156.question.title);
1021
1140
  } }
1022
1141
  function DynamicFormQuestionComponent_ng_container_18_div_4_Template(rf, ctx) { if (rf & 1) {
1023
- i0.ɵɵelementStart(0, "div", 82);
1024
- i0.ɵɵelement(1, "app-overlay-info", 56);
1142
+ i0.ɵɵelementStart(0, "div", 84);
1143
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1025
1144
  i0.ɵɵpipe(2, "dynamicTranslate");
1026
1145
  i0.ɵɵelementEnd();
1027
1146
  } if (rf & 2) {
1028
- const ctx_r154 = i0.ɵɵnextContext(2);
1147
+ const ctx_r157 = i0.ɵɵnextContext(2);
1029
1148
  i0.ɵɵadvance(1);
1030
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r154.question.description, ctx_r154.dynamicParam));
1149
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r157.question.description, ctx_r157.dynamicParam));
1031
1150
  } }
1032
1151
  function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf & 1) {
1033
1152
  i0.ɵɵelementContainerStart(0);
1034
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
1035
- i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 98);
1153
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1154
+ i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 104);
1036
1155
  i0.ɵɵelementEnd();
1037
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 58);
1156
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 50);
1038
1157
  i0.ɵɵelementEnd();
1039
1158
  i0.ɵɵelementContainerEnd();
1040
1159
  } if (rf & 2) {
@@ -1047,21 +1166,21 @@ function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf
1047
1166
  i0.ɵɵproperty("ngIf", ctx_r16.question.description);
1048
1167
  } }
1049
1168
  function DynamicFormQuestionComponent_ng_container_19_div_4_Template(rf, ctx) { if (rf & 1) {
1050
- i0.ɵɵelementStart(0, "div", 82);
1051
- i0.ɵɵelement(1, "app-overlay-info", 56);
1169
+ i0.ɵɵelementStart(0, "div", 84);
1170
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1052
1171
  i0.ɵɵpipe(2, "dynamicTranslate");
1053
1172
  i0.ɵɵelementEnd();
1054
1173
  } if (rf & 2) {
1055
- const ctx_r156 = i0.ɵɵnextContext(2);
1174
+ const ctx_r159 = i0.ɵɵnextContext(2);
1056
1175
  i0.ɵɵadvance(1);
1057
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r156.question.description, ctx_r156.dynamicParam));
1176
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r159.question.description, ctx_r159.dynamicParam));
1058
1177
  } }
1059
1178
  function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf & 1) {
1060
1179
  i0.ɵɵelementContainerStart(0);
1061
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 59);
1062
- i0.ɵɵelement(3, "p-selectButton", 100);
1180
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
1181
+ i0.ɵɵelement(3, "p-selectButton", 106);
1063
1182
  i0.ɵɵelementEnd();
1064
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 58);
1183
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 50);
1065
1184
  i0.ɵɵelementEnd();
1066
1185
  i0.ɵɵelementContainerEnd();
1067
1186
  } if (rf & 2) {
@@ -1075,23 +1194,23 @@ function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf
1075
1194
  i0.ɵɵproperty("ngIf", ctx_r17.question.description);
1076
1195
  } }
1077
1196
  function DynamicFormQuestionComponent_ng_container_20_div_6_Template(rf, ctx) { if (rf & 1) {
1078
- i0.ɵɵelementStart(0, "div", 82);
1079
- i0.ɵɵelement(1, "app-overlay-info", 56);
1197
+ i0.ɵɵelementStart(0, "div", 84);
1198
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1080
1199
  i0.ɵɵpipe(2, "dynamicTranslate");
1081
1200
  i0.ɵɵelementEnd();
1082
1201
  } if (rf & 2) {
1083
- const ctx_r157 = i0.ɵɵnextContext(2);
1202
+ const ctx_r160 = i0.ɵɵnextContext(2);
1084
1203
  i0.ɵɵadvance(1);
1085
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r157.question.description, ctx_r157.dynamicParam));
1204
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r160.question.description, ctx_r160.dynamicParam));
1086
1205
  } }
1087
1206
  function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf & 1) {
1088
1207
  i0.ɵɵelementContainerStart(0);
1089
- i0.ɵɵelementStart(1, "div", 57)(2, "div", 101);
1090
- i0.ɵɵelement(3, "p-checkbox", 102);
1091
- i0.ɵɵelementStart(4, "label", 103);
1208
+ i0.ɵɵelementStart(1, "div", 49)(2, "div", 107);
1209
+ i0.ɵɵelement(3, "p-checkbox", 108);
1210
+ i0.ɵɵelementStart(4, "label", 109);
1092
1211
  i0.ɵɵtext(5);
1093
1212
  i0.ɵɵelementEnd()();
1094
- i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 104);
1213
+ i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 110);
1095
1214
  i0.ɵɵelementEnd();
1096
1215
  i0.ɵɵelementContainerEnd();
1097
1216
  } if (rf & 2) {
@@ -1105,22 +1224,22 @@ function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf
1105
1224
  i0.ɵɵproperty("ngIf", ctx_r18.question.description);
1106
1225
  } }
1107
1226
  function DynamicFormQuestionComponent_ng_container_21_div_5_Template(rf, ctx) { if (rf & 1) {
1108
- i0.ɵɵelementStart(0, "div", 107);
1109
- i0.ɵɵelement(1, "app-overlay-info", 56);
1227
+ i0.ɵɵelementStart(0, "div", 113);
1228
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1110
1229
  i0.ɵɵpipe(2, "dynamicTranslate");
1111
1230
  i0.ɵɵelementEnd();
1112
1231
  } if (rf & 2) {
1113
- const ctx_r158 = i0.ɵɵnextContext(2);
1232
+ const ctx_r161 = i0.ɵɵnextContext(2);
1114
1233
  i0.ɵɵadvance(1);
1115
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r158.question.description, ctx_r158.dynamicParam));
1234
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r161.question.description, ctx_r161.dynamicParam));
1116
1235
  } }
1117
1236
  function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf & 1) {
1118
1237
  i0.ɵɵelementContainerStart(0);
1119
- i0.ɵɵelementStart(1, "div", 57)(2, "label");
1238
+ i0.ɵɵelementStart(1, "div", 49)(2, "label");
1120
1239
  i0.ɵɵtext(3);
1121
1240
  i0.ɵɵelementEnd();
1122
- i0.ɵɵelement(4, "input", 105);
1123
- i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 106);
1241
+ i0.ɵɵelement(4, "input", 111);
1242
+ i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 112);
1124
1243
  i0.ɵɵelementEnd();
1125
1244
  i0.ɵɵelementContainerEnd();
1126
1245
  } if (rf & 2) {
@@ -1134,21 +1253,21 @@ function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf
1134
1253
  i0.ɵɵproperty("ngIf", ctx_r19.question.description);
1135
1254
  } }
1136
1255
  function DynamicFormQuestionComponent_ng_container_22_div_4_Template(rf, ctx) { if (rf & 1) {
1137
- i0.ɵɵelementStart(0, "div", 107);
1138
- i0.ɵɵelement(1, "app-overlay-info", 56);
1256
+ i0.ɵɵelementStart(0, "div", 113);
1257
+ i0.ɵɵelement(1, "app-overlay-info", 48);
1139
1258
  i0.ɵɵpipe(2, "dynamicTranslate");
1140
1259
  i0.ɵɵelementEnd();
1141
1260
  } if (rf & 2) {
1142
- const ctx_r159 = i0.ɵɵnextContext(2);
1261
+ const ctx_r162 = i0.ɵɵnextContext(2);
1143
1262
  i0.ɵɵadvance(1);
1144
- i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r159.question.description, ctx_r159.dynamicParam));
1263
+ i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r162.question.description, ctx_r162.dynamicParam));
1145
1264
  } }
1146
1265
  function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf & 1) {
1147
1266
  i0.ɵɵelementContainerStart(0);
1148
- i0.ɵɵelementStart(1, "div", 57)(2, "label");
1267
+ i0.ɵɵelementStart(1, "div", 49)(2, "label");
1149
1268
  i0.ɵɵtext(3);
1150
1269
  i0.ɵɵelementEnd();
1151
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 106);
1270
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 112);
1152
1271
  i0.ɵɵelementEnd();
1153
1272
  i0.ɵɵelementContainerEnd();
1154
1273
  } if (rf & 2) {
@@ -1160,8 +1279,8 @@ function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf
1160
1279
  } }
1161
1280
  function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf & 1) {
1162
1281
  i0.ɵɵelementContainerStart(0);
1163
- i0.ɵɵelementStart(1, "div", 57);
1164
- i0.ɵɵelement(2, "app-overlay-info", 108);
1282
+ i0.ɵɵelementStart(1, "div", 49);
1283
+ i0.ɵɵelement(2, "app-overlay-info", 114);
1165
1284
  i0.ɵɵpipe(3, "dynamicTranslate");
1166
1285
  i0.ɵɵelementEnd();
1167
1286
  i0.ɵɵelementContainerEnd();
@@ -1172,8 +1291,8 @@ function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf
1172
1291
  } }
1173
1292
  function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf & 1) {
1174
1293
  i0.ɵɵelementContainerStart(0);
1175
- i0.ɵɵelementStart(1, "div", 57);
1176
- i0.ɵɵelement(2, "app-overlay-info", 109);
1294
+ i0.ɵɵelementStart(1, "div", 49);
1295
+ i0.ɵɵelement(2, "app-overlay-info", 115);
1177
1296
  i0.ɵɵpipe(3, "dynamicTranslate");
1178
1297
  i0.ɵɵelementEnd();
1179
1298
  i0.ɵɵelementContainerEnd();
@@ -1184,8 +1303,8 @@ function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf
1184
1303
  } }
1185
1304
  function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf & 1) {
1186
1305
  i0.ɵɵelementContainerStart(0);
1187
- i0.ɵɵelementStart(1, "div", 57);
1188
- i0.ɵɵelement(2, "app-overlay-info", 110);
1306
+ i0.ɵɵelementStart(1, "div", 49);
1307
+ i0.ɵɵelement(2, "app-overlay-info", 116);
1189
1308
  i0.ɵɵpipe(3, "dynamicTranslate");
1190
1309
  i0.ɵɵelementEnd();
1191
1310
  i0.ɵɵelementContainerEnd();
@@ -1195,54 +1314,54 @@ function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf
1195
1314
  i0.ɵɵproperty("displayText", ctx_r23.question.title)("formControlName", ctx_r23.question.name)("labelWithPopup", i0.ɵɵpipeBind2(3, 4, ctx_r23.question.description, ctx_r23.dynamicParam))("labelWithLink", true);
1196
1315
  } }
1197
1316
  function DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1198
- i0.ɵɵelementStart(0, "ion-col", 114);
1199
- i0.ɵɵelement(1, "app-question", 115);
1317
+ i0.ɵɵelementStart(0, "ion-col", 120);
1318
+ i0.ɵɵelement(1, "app-question", 121);
1200
1319
  i0.ɵɵelementEnd();
1201
1320
  } if (rf & 2) {
1202
- const element_r162 = i0.ɵɵnextContext().$implicit;
1203
- const ctx_r163 = i0.ɵɵnextContext(2);
1204
- i0.ɵɵproperty("sizeXl", element_r162.sizeXL)("sizeLg", element_r162.sizeLG)("sizeMd", element_r162.sizeMD)("offsetMd", element_r162.offSetMD);
1321
+ const element_r165 = i0.ɵɵnextContext().$implicit;
1322
+ const ctx_r166 = i0.ɵɵnextContext(2);
1323
+ i0.ɵɵproperty("sizeXl", element_r165.sizeXL)("sizeLg", element_r165.sizeLG)("sizeMd", element_r165.sizeMD)("offsetMd", element_r165.offSetMD);
1205
1324
  i0.ɵɵadvance(1);
1206
- i0.ɵɵproperty("question", element_r162)("form", ctx_r163.form)("forScreenQuestionnaire", ctx_r163.forScreenQuestionnaire);
1325
+ i0.ɵɵproperty("question", element_r165)("form", ctx_r166.form)("forScreenQuestionnaire", ctx_r166.forScreenQuestionnaire);
1207
1326
  } }
1208
1327
  function DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template(rf, ctx) { if (rf & 1) {
1209
1328
  i0.ɵɵelementContainerStart(0);
1210
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 113);
1329
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 119);
1211
1330
  i0.ɵɵelementContainerEnd();
1212
1331
  } if (rf & 2) {
1213
- const element_r162 = ctx.$implicit;
1214
- const ctx_r160 = i0.ɵɵnextContext(2);
1332
+ const element_r165 = ctx.$implicit;
1333
+ const ctx_r163 = i0.ɵɵnextContext(2);
1215
1334
  i0.ɵɵadvance(1);
1216
- i0.ɵɵproperty("ngIf", element_r162.colElement === "COL1" && ctx_r160.visibleIf(element_r162.visibleIf, element_r162.name));
1335
+ i0.ɵɵproperty("ngIf", element_r165.colElement === "COL1" && ctx_r163.visibleIf(element_r165.visibleIf, element_r165.name));
1217
1336
  } }
1218
1337
  function DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template(rf, ctx) { if (rf & 1) {
1219
- i0.ɵɵelementStart(0, "ion-col", 117);
1220
- i0.ɵɵelement(1, "app-question", 115);
1338
+ i0.ɵɵelementStart(0, "ion-col", 123);
1339
+ i0.ɵɵelement(1, "app-question", 121);
1221
1340
  i0.ɵɵelementEnd();
1222
1341
  } if (rf & 2) {
1223
- const element_r165 = i0.ɵɵnextContext().$implicit;
1224
- const ctx_r166 = i0.ɵɵnextContext(2);
1225
- i0.ɵɵproperty("sizeXl", element_r165.sizeXL)("sizeLg", element_r165.sizeLG)("sizeMd", element_r165.sizeMD)("offsetMd", element_r165.offSetMD);
1342
+ const element_r168 = i0.ɵɵnextContext().$implicit;
1343
+ const ctx_r169 = i0.ɵɵnextContext(2);
1344
+ i0.ɵɵproperty("sizeXl", element_r168.sizeXL)("sizeLg", element_r168.sizeLG)("sizeMd", element_r168.sizeMD)("offsetMd", element_r168.offSetMD);
1226
1345
  i0.ɵɵadvance(1);
1227
- i0.ɵɵproperty("question", element_r165)("form", ctx_r166.form)("forScreenQuestionnaire", ctx_r166.forScreenQuestionnaire);
1346
+ i0.ɵɵproperty("question", element_r168)("form", ctx_r169.form)("forScreenQuestionnaire", ctx_r169.forScreenQuestionnaire);
1228
1347
  } }
1229
1348
  function DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template(rf, ctx) { if (rf & 1) {
1230
1349
  i0.ɵɵelementContainerStart(0);
1231
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 116);
1350
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 122);
1232
1351
  i0.ɵɵelementContainerEnd();
1233
1352
  } if (rf & 2) {
1234
- const element_r165 = ctx.$implicit;
1235
- const ctx_r161 = i0.ɵɵnextContext(2);
1353
+ const element_r168 = ctx.$implicit;
1354
+ const ctx_r164 = i0.ɵɵnextContext(2);
1236
1355
  i0.ɵɵadvance(1);
1237
- i0.ɵɵproperty("ngIf", element_r165.colElement === "COL2" && ctx_r161.visibleIf(element_r165.visibleIf, element_r165.name));
1356
+ i0.ɵɵproperty("ngIf", element_r168.colElement === "COL2" && ctx_r164.visibleIf(element_r168.visibleIf, element_r168.name));
1238
1357
  } }
1239
1358
  function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf & 1) {
1240
- i0.ɵɵelementContainerStart(0, 111);
1359
+ i0.ɵɵelementContainerStart(0, 117);
1241
1360
  i0.ɵɵelementStart(1, "ion-row")(2, "ion-col")(3, "ion-row");
1242
- i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 112);
1361
+ i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 118);
1243
1362
  i0.ɵɵelementEnd()();
1244
1363
  i0.ɵɵelementStart(5, "ion-col")(6, "ion-row");
1245
- i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 112);
1364
+ i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 118);
1246
1365
  i0.ɵɵelementEnd()()();
1247
1366
  i0.ɵɵelementContainerEnd();
1248
1367
  } if (rf & 2) {
@@ -1253,19 +1372,19 @@ function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf
1253
1372
  i0.ɵɵproperty("ngForOf", ctx_r24.question.elements);
1254
1373
  } }
1255
1374
  function DynamicFormQuestionComponent_div_27_small_1_Template(rf, ctx) { if (rf & 1) {
1256
- i0.ɵɵelementStart(0, "small", 119);
1375
+ i0.ɵɵelementStart(0, "small", 125);
1257
1376
  i0.ɵɵtext(1);
1258
1377
  i0.ɵɵpipe(2, "dynamicTranslate");
1259
1378
  i0.ɵɵelementEnd();
1260
1379
  } if (rf & 2) {
1261
- const ctx_r168 = i0.ɵɵnextContext(2);
1380
+ const ctx_r171 = i0.ɵɵnextContext(2);
1262
1381
  i0.ɵɵproperty("@rowExpansionTrigger", "active");
1263
1382
  i0.ɵɵadvance(1);
1264
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r168.isValid, ctx_r168.dynamicParam));
1383
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r171.isValid, ctx_r171.dynamicParam));
1265
1384
  } }
1266
1385
  function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
1267
- i0.ɵɵelementStart(0, "div", 59);
1268
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 118);
1386
+ i0.ɵɵelementStart(0, "div", 51);
1387
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 124);
1269
1388
  i0.ɵɵelementEnd();
1270
1389
  } if (rf & 2) {
1271
1390
  const ctx_r25 = i0.ɵɵnextContext();
@@ -1274,7 +1393,7 @@ function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
1274
1393
  i0.ɵɵproperty("ngIf", ctx_r25.isValid != "");
1275
1394
  } }
1276
1395
  export class DynamicFormQuestionComponent {
1277
- constructor(qcs, service, translate, validationService, util, navController, logger, sanitizer, loginService, addrSvc, modalCtrl) {
1396
+ constructor(qcs, service, translate, validationService, util, navController, logger, claimantService, weeklycertService, elementRef, renderer, ls) {
1278
1397
  this.qcs = qcs;
1279
1398
  this.service = service;
1280
1399
  this.translate = translate;
@@ -1282,29 +1401,34 @@ export class DynamicFormQuestionComponent {
1282
1401
  this.util = util;
1283
1402
  this.navController = navController;
1284
1403
  this.logger = logger;
1285
- this.sanitizer = sanitizer;
1286
- this.loginService = loginService;
1287
- this.addrSvc = addrSvc;
1288
- this.modalCtrl = modalCtrl;
1404
+ this.claimantService = claimantService;
1405
+ this.weeklycertService = weeklycertService;
1406
+ this.elementRef = elementRef;
1407
+ this.renderer = renderer;
1408
+ this.ls = ls;
1289
1409
  this.onDynamicParamUpdate = new EventEmitter();
1290
- this.isNewPasswordPolicyEnabled = LibConstants.isNewPasswordPolicyEnabled == 'true';
1291
- this.isNewPasswordPolicyEnabledForClaimant = LibConstants.isNewPasswordPolicyEnabledForClaimant == 'true';
1292
- this.isNewPasswordPolicyEnabledForEmployer = LibConstants.isNewPasswordPolicyEnabledForEmployer == 'true';
1293
- this.isSameSymbolPolicyForClaimantAndAgency = LibConstants.isSameSymbolPolicyForClaimantAndAgency == 'true';
1294
- this.isAddressValidationEnabled = LibConstants.isAddressValidationEnabled == 'true';
1295
1410
  this.legalAccepted = null;
1296
- this.OtpCompleted = null;
1297
1411
  this.index = 1;
1298
1412
  this.returnModel = new ValidationModel();
1299
- this.type = 'text';
1413
+ this.maskClass = true;
1300
1414
  this.showMinDate = false;
1301
1415
  this.showMaxDate = false;
1302
1416
  this.minValue = null;
1303
1417
  this.maxValue = null;
1304
- this.td = null;
1305
- this.alpRnd = 'XsPjxWl';
1306
- this.varn = 37043;
1307
- this.showAddressSuggestion = false;
1418
+ this.toDayDate = new Date();
1419
+ this.registerClaimantFlag = false;
1420
+ this.phoneVerified = true;
1421
+ this.isFieldDisabled = true;
1422
+ this.partEmpModel = new PartialEmploymentModel();
1423
+ this.isOtpModalEnabled = false;
1424
+ this.isReturningUser = false;
1425
+ this.minDateDOB = new Date(this.toDayDate.getFullYear() - 100, this.toDayDate.getMonth(), this.toDayDate.getDate());
1426
+ this.maxDateDOB = new Date(this.toDayDate.getFullYear() - 10, this.toDayDate.getMonth(), this.toDayDate.getDate());
1427
+ }
1428
+ ngAfterViewInit() {
1429
+ if (this.pCalendar) {
1430
+ this.modifyCalendarAttributes();
1431
+ }
1308
1432
  }
1309
1433
  visibleIf(strExp, elementName) {
1310
1434
  if (!strExp) {
@@ -1313,7 +1437,9 @@ export class DynamicFormQuestionComponent {
1313
1437
  let isVisible = false;
1314
1438
  if (strExp.includes('&&')) {
1315
1439
  let expr = strExp.split('&&');
1316
- isVisible = this.calculateOperandValue(expr[0]) && this.calculateOperandValue(expr[1]);
1440
+ isVisible =
1441
+ this.calculateOperandValue(expr[0]) &&
1442
+ this.calculateOperandValue(expr[1]);
1317
1443
  if (expr.length >= 3) {
1318
1444
  isVisible = isVisible && this.calculateOperandValue(expr[2]);
1319
1445
  }
@@ -1329,7 +1455,9 @@ export class DynamicFormQuestionComponent {
1329
1455
  }
1330
1456
  if (strExp.includes('||')) {
1331
1457
  let expr = strExp.split('||');
1332
- isVisible = this.calculateOperandValue(expr[0]) || this.calculateOperandValue(expr[1]);
1458
+ isVisible =
1459
+ this.calculateOperandValue(expr[0]) ||
1460
+ this.calculateOperandValue(expr[1]);
1333
1461
  if (expr.length >= 3) {
1334
1462
  isVisible = isVisible || this.calculateOperandValue(expr[2]);
1335
1463
  }
@@ -1364,13 +1492,15 @@ export class DynamicFormQuestionComponent {
1364
1492
  let operand1 = splitArray[0];
1365
1493
  let operand2 = splitArray[1];
1366
1494
  operand1 = operand1.replace('{', '').replace('}', '').trim(); //claimantPriorPay102 diffmailaddress315
1367
- operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
1495
+ operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
1368
1496
  if (this.form.controls[operand1]) {
1369
1497
  var valueOfCnrtrlToCheck;
1370
- if (this.form.controls[operand1].value && typeof (this.form.controls[operand1]).value === 'string') {
1498
+ if (this.form.controls[operand1].value &&
1499
+ typeof this.form.controls[operand1].value === 'string') {
1371
1500
  valueOfCnrtrlToCheck = this.form.controls[operand1].value;
1372
1501
  }
1373
- if (this.form.controls[operand1].value && typeof (this.form.controls[operand1]).value != 'string') {
1502
+ if (this.form.controls[operand1].value &&
1503
+ typeof this.form.controls[operand1].value != 'string') {
1374
1504
  valueOfCnrtrlToCheck = this.form.controls[operand1].value['value'];
1375
1505
  }
1376
1506
  if (operand2 === 'null' && isDoesNotEqual && valueOfCnrtrlToCheck) {
@@ -1379,35 +1509,152 @@ export class DynamicFormQuestionComponent {
1379
1509
  if (operand2 === 'null' && !isDoesNotEqual && !valueOfCnrtrlToCheck) {
1380
1510
  return true;
1381
1511
  }
1382
- operand2 = operand2.replace('\'', '').replace('\'', '').trim(); //null
1383
- if (operand2 != 'null' && !isDoesNotEqual && (valueOfCnrtrlToCheck === operand2)) {
1512
+ operand2 = operand2.replace("'", '').replace("'", '').trim(); //null
1513
+ if (operand2 != 'null' &&
1514
+ !isDoesNotEqual &&
1515
+ valueOfCnrtrlToCheck === operand2) {
1384
1516
  return true;
1385
1517
  }
1386
- if (operand2 != 'null' && isDoesNotEqual && (valueOfCnrtrlToCheck != operand2)) {
1518
+ if (operand2 != 'null' &&
1519
+ isDoesNotEqual &&
1520
+ valueOfCnrtrlToCheck != operand2) {
1387
1521
  return true;
1388
1522
  }
1389
1523
  return false;
1390
1524
  }
1391
1525
  }
1392
1526
  ngOnInit() {
1527
+ // this.logger.debug('is DynamicFormQuestionComponent ngOnInit called', this.question)
1528
+ this.getPartialEmploymentInfo();
1393
1529
  this.filterResult = this.question.choices;
1394
1530
  this.setMinMaxDate();
1395
1531
  this.setMinMaxValue();
1396
1532
  this.setDefaultValue();
1397
1533
  this.setLinkComponentData();
1534
+ let currentQes = this.service.searchBs.getValue();
1535
+ this.currentflowkey = currentQes.flowKey;
1536
+ if ((localStorage.getItem('disableFieldsOnSignup') === 'true') && localStorage.getItem("flowKey") == '345') {
1537
+ this.disableFields();
1538
+ }
1539
+ }
1540
+ checkFlowKey() {
1541
+ if (this.currentflowkey === 'register-claimant') {
1542
+ //console.info("currentflowkey ",this.currentflowkey)
1543
+ return (this.registerClaimantFlag = true);
1544
+ }
1545
+ else {
1546
+ return this.registerClaimantFlag;
1547
+ }
1548
+ }
1549
+ // phoneNumberVerified(): boolean{
1550
+ // return this.phoneVerified,
1551
+ // }
1552
+ disableFields() {
1553
+ if (this.checkFlowKey()) {
1554
+ this.form.get('phone').disable();
1555
+ this.form.get('email').disable();
1556
+ this.form.get('username').disable();
1557
+ this.form.get('password').disable();
1558
+ this.form.get('confirmPassword').disable();
1559
+ this.form.get('secQues1').disable();
1560
+ this.form.get('secAns1').disable();
1561
+ this.form.get('secQues2').disable();
1562
+ this.form.get('secAns2').disable();
1563
+ this.form.get('secQues3').disable();
1564
+ this.form.get('secAns3').disable();
1565
+ this.form.get('resAdress').disable();
1566
+ this.form.get('diffmailaddress').disable();
1567
+ //this.form.get('mailaddress').disable();
1568
+ }
1569
+ }
1570
+ enableFields() {
1571
+ this.form.get('email').enable();
1572
+ this.form.get('username').enable();
1573
+ this.form.get('password').enable();
1574
+ this.form.get('confirmPassword').enable();
1575
+ this.form.get('secQues1').enable();
1576
+ this.form.get('secAns1').enable();
1577
+ this.form.get('secQues2').enable();
1578
+ this.form.get('secAns2').enable();
1579
+ this.form.get('secQues3').enable();
1580
+ this.form.get('secAns3').enable();
1581
+ this.form.get('resAdress').enable();
1582
+ this.form.get('diffmailaddress').enable();
1583
+ //this.form.get('mailaddress').enable();
1584
+ }
1585
+ checkIfUserExist() {
1586
+ // console.info("dob ", this.form.get("dob").value);
1587
+ if (!this.form.get('ssn').value &&
1588
+ !this.form.get('dob').value &&
1589
+ !this.checkFlowKey()) {
1590
+ }
1591
+ else {
1592
+ let ssnfromuser = this.form.get('ssn').value;
1593
+ let dateOfbirth = this.form.get('dob').value;
1594
+ //console.info("test with ssnfromuser ", ssnfromuser);
1595
+ let formatedD = dateOfbirth.replace(/\//g, "-");
1596
+ if (dateOfbirth != null && ssnfromuser != null) {
1597
+ this.claimantService.checkIfUserAlreadyExist(ssnfromuser, formatedD).subscribe((x) => {
1598
+ if (x != null) {
1599
+ this.disableFields();
1600
+ this.form.get('phone').setValue(x.toString());
1601
+ if (window["env"]["environment"] === "ksprod") {
1602
+ this.form.get('phone').disable();
1603
+ }
1604
+ /**Delete the else block after the workshare testing is done */
1605
+ else {
1606
+ this.form.get('phone').disable();
1607
+ }
1608
+ }
1609
+ else {
1610
+ this.disableFields();
1611
+ this.form.get('phone').enable();
1612
+ }
1613
+ }, (err) => {
1614
+ if (err.errorCode === "404") {
1615
+ }
1616
+ else {
1617
+ this.util.hideLoader();
1618
+ this.util.errorHandler(err);
1619
+ }
1620
+ });
1621
+ }
1622
+ }
1623
+ }
1624
+ getPartialEmploymentInfo() {
1625
+ if (this.question.name === 'workPerformed') {
1626
+ this.weeklycertService
1627
+ .getPartialEmployment()
1628
+ .subscribe((res) => {
1629
+ if (res.partialEmploymentFlag === '1') {
1630
+ this.form.value[this.question.name] = 'Y';
1631
+ this.form.controls[this.question.name].addValidators((control) => {
1632
+ return control.value !== 'Y' ? { forceYes: true } : null;
1633
+ });
1634
+ }
1635
+ });
1636
+ }
1398
1637
  }
1399
1638
  setLinkComponentData() {
1400
1639
  if (this.question.componentName == 'app-link') {
1401
- this.linkComponentData = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1640
+ this.linkComponentData = this.question.componentData
1641
+ ? JSON.parse(this.question.componentData)
1642
+ : null;
1402
1643
  }
1403
1644
  }
1404
1645
  showLabelForCustomComponent() {
1405
- let parsedData = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1646
+ let parsedData = this.question.componentData
1647
+ ? JSON.parse(this.question.componentData)
1648
+ : null;
1406
1649
  return parsedData?.showLabel == 'Y';
1407
1650
  }
1408
1651
  setMinMaxValue() {
1409
- if (this.question.type === 'number' || this.question.type === 'decimal' || this.question.type === 'currency') {
1410
- let minMaxModel = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1652
+ if (this.question.type === 'number' ||
1653
+ this.question.type === 'decimal' ||
1654
+ this.question.type === 'currency') {
1655
+ let minMaxModel = this.question.componentData
1656
+ ? JSON.parse(this.question.componentData)
1657
+ : null;
1411
1658
  if (minMaxModel) {
1412
1659
  if (minMaxModel.minValue) {
1413
1660
  this.minValue = minMaxModel.minValue;
@@ -1420,7 +1667,9 @@ export class DynamicFormQuestionComponent {
1420
1667
  }
1421
1668
  setMinMaxDate() {
1422
1669
  if (this.question.inputType === 'date') {
1423
- let minMaxModel = this.question.componentData ? JSON.parse(this.question.componentData) : null;
1670
+ let minMaxModel = this.question.componentData
1671
+ ? JSON.parse(this.question.componentData)
1672
+ : null;
1424
1673
  if (minMaxModel && (minMaxModel.maxDateKey || minMaxModel.minDateKey)) {
1425
1674
  if (this.dynamicParam[minMaxModel.minDateKey]) {
1426
1675
  this.parseDate(this.dynamicParam[minMaxModel.minDateKey], 'min');
@@ -1462,34 +1711,48 @@ export class DynamicFormQuestionComponent {
1462
1711
  }
1463
1712
  }
1464
1713
  setStyle(indent) {
1465
- //let padding = indent <= 1 ? '0 px' : indent * 0 + 'px';
1466
- let padding = '0 px';
1714
+ let padding = indent <= 1 ? '0 px' : indent * 10 + 'px';
1467
1715
  let styleObj = {
1468
- 'padding-left': padding
1716
+ 'padding-left': padding,
1469
1717
  };
1470
1718
  return Object.assign(styleObj);
1471
1719
  }
1472
1720
  setMargin(margin) {
1473
1721
  let mar = margin + 'px';
1474
1722
  let styleObj = {
1475
- 'margin-right': mar
1723
+ 'margin-right': mar,
1476
1724
  };
1477
1725
  return Object.assign(styleObj);
1478
1726
  }
1479
1727
  get isValid() {
1480
- let message = "";
1728
+ let message = '';
1481
1729
  let questionType = this.question.type;
1482
- if ('html' === questionType || 'label' === questionType || 'simpleLabel' === questionType || 'displaytextaslabel' === questionType
1483
- || ('button' === questionType && !this.question.validators && this.question.componentName != 'app-sign-ssn' && this.question.componentName != 'app-link')
1484
- || 'label-with-overlay' === questionType) {
1485
- return "";
1730
+ if ('html' === questionType ||
1731
+ 'label' === questionType ||
1732
+ 'simpleLabel' === questionType ||
1733
+ 'displaytextaslabel' === questionType ||
1734
+ ('button' === questionType &&
1735
+ !this.question.validators &&
1736
+ this.question.componentName != 'app-sign-ssn' &&
1737
+ this.question.componentName != 'app-link') ||
1738
+ 'label-with-overlay' === questionType) {
1739
+ return '';
1486
1740
  }
1487
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.required
1488
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1741
+ if (this.question &&
1742
+ this.question.name &&
1743
+ this.form &&
1744
+ this.form.controls[this.question.name].errors?.required &&
1745
+ (this.form.controls[this.question.name].dirty ||
1746
+ this.form.controls[this.question.name].touched)) {
1489
1747
  this.form.controls[this.question.name].markAsDirty();
1490
1748
  return this.question.requiredErrorText;
1491
1749
  }
1492
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.maxlength && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1750
+ if (this.question &&
1751
+ this.question.name &&
1752
+ this.form &&
1753
+ this.form.controls[this.question.name].errors?.maxlength &&
1754
+ (this.form.controls[this.question.name].dirty ||
1755
+ this.form.controls[this.question.name].touched)) {
1493
1756
  this.logger.debug('errors?.maxLength', this.question);
1494
1757
  this.form.controls[this.question.name].markAsDirty();
1495
1758
  if (this.question.description) {
@@ -1497,7 +1760,7 @@ export class DynamicFormQuestionComponent {
1497
1760
  }
1498
1761
  let validatorList = this.question.validators;
1499
1762
  var keepGoing = true;
1500
- validatorList.forEach(validator => {
1763
+ validatorList.forEach((validator) => {
1501
1764
  this.logger.debug('validator.type ', validator.type);
1502
1765
  if (keepGoing) {
1503
1766
  if (validator.type === 'text' && validator.maxLength) {
@@ -1506,18 +1769,22 @@ export class DynamicFormQuestionComponent {
1506
1769
  keepGoing = false;
1507
1770
  }
1508
1771
  else {
1509
- message = "";
1772
+ message = '';
1510
1773
  }
1511
1774
  }
1512
1775
  });
1513
1776
  return message;
1514
1777
  }
1515
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.pattern
1516
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1778
+ if (this.question &&
1779
+ this.question.name &&
1780
+ this.form &&
1781
+ this.form.controls[this.question.name].errors?.pattern &&
1782
+ (this.form.controls[this.question.name].dirty ||
1783
+ this.form.controls[this.question.name].touched)) {
1517
1784
  // this.logger.debug('errors?.pattern',this.question)
1518
1785
  let validatorList = this.question.validators;
1519
1786
  var keepGoing = true;
1520
- validatorList.forEach(validator => {
1787
+ validatorList.forEach((validator) => {
1521
1788
  // this.logger.debug('validator.type ', validator.type)
1522
1789
  if (keepGoing) {
1523
1790
  if (validator.type === 'regex') {
@@ -1527,18 +1794,22 @@ export class DynamicFormQuestionComponent {
1527
1794
  keepGoing = false;
1528
1795
  }
1529
1796
  else {
1530
- message = "";
1797
+ message = '';
1531
1798
  }
1532
1799
  }
1533
1800
  });
1534
1801
  return message;
1535
1802
  }
1536
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.dateComparision
1537
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1803
+ if (this.question &&
1804
+ this.question.name &&
1805
+ this.form &&
1806
+ this.form.controls[this.question.name].errors?.dateComparision &&
1807
+ (this.form.controls[this.question.name].dirty ||
1808
+ this.form.controls[this.question.name].touched)) {
1538
1809
  let validatorList = this.question.validators;
1539
1810
  var keepGoing = true;
1540
- let message = "";
1541
- validatorList.forEach(validator => {
1811
+ let message = '';
1812
+ validatorList.forEach((validator) => {
1542
1813
  if (keepGoing) {
1543
1814
  // this.logger.debug('validator.type.minlength ', validator.type)
1544
1815
  if (validator.type === 'expression') {
@@ -1548,194 +1819,180 @@ export class DynamicFormQuestionComponent {
1548
1819
  this.form.controls[this.question.name].markAsDirty();
1549
1820
  }
1550
1821
  else {
1551
- message = "";
1822
+ message = '';
1552
1823
  }
1553
1824
  }
1554
1825
  });
1555
1826
  return message;
1556
1827
  }
1557
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.minlength
1558
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1828
+ if (this.question &&
1829
+ this.question.name &&
1830
+ this.form &&
1831
+ this.form.controls[this.question.name].errors?.minlength &&
1832
+ (this.form.controls[this.question.name].dirty ||
1833
+ this.form.controls[this.question.name].touched)) {
1559
1834
  let validatorList = this.question.validators;
1560
1835
  var keepGoing = true;
1561
- let message = "";
1562
- validatorList.forEach(validator => {
1836
+ let message = '';
1837
+ validatorList.forEach((validator) => {
1563
1838
  if (keepGoing) {
1564
- //this.logger.debug('validator.type.minlength ', validator.type)
1839
+ //console.log('validator.type.minlength ', validator.type)
1565
1840
  if (validator.type === 'text') {
1566
- //this.logger.debug('validator.text ', validator.text)
1841
+ //console.log('validator.text ', validator.text)
1567
1842
  message = validator.text;
1568
1843
  this.form.controls[this.question.name].markAsDirty();
1569
1844
  keepGoing = false;
1570
1845
  }
1571
1846
  else {
1572
- message = "";
1847
+ message = '';
1573
1848
  }
1574
1849
  }
1575
1850
  });
1576
1851
  return message;
1577
1852
  }
1578
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.passwordComparision
1579
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1853
+ if (this.question &&
1854
+ this.question.name &&
1855
+ this.form &&
1856
+ this.form.controls[this.question.name].errors?.passwordComparision &&
1857
+ (this.form.controls[this.question.name].dirty ||
1858
+ this.form.controls[this.question.name].touched)) {
1580
1859
  let validatorList = this.question.validators;
1581
1860
  var keepGoing = true;
1582
- let message = "";
1583
- validatorList.forEach(validator => {
1861
+ let message = '';
1862
+ validatorList.forEach((validator) => {
1584
1863
  if (keepGoing) {
1585
- // this.logger.debug('validator.type.minlength ', validator.type)
1864
+ // console.log('validator.type.minlength ', validator.type)
1586
1865
  if (validator.type === 'expression') {
1587
- // this.logger.debug('validator.text ', validator.text)
1866
+ // console.log('validator.text ', validator.text)
1588
1867
  message = validator.text;
1589
1868
  this.form.controls[this.question.name].markAsDirty();
1590
1869
  keepGoing = false;
1591
1870
  }
1592
1871
  else {
1593
- message = "";
1872
+ message = '';
1594
1873
  }
1595
1874
  }
1596
1875
  });
1597
1876
  return message;
1598
1877
  }
1599
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.requiredIf
1600
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1878
+ if (this.question &&
1879
+ this.question.name &&
1880
+ this.form &&
1881
+ this.form.controls[this.question.name].errors?.requiredIf &&
1882
+ (this.form.controls[this.question.name].dirty ||
1883
+ this.form.controls[this.question.name].touched)) {
1601
1884
  this.form.controls[this.question.name].markAsDirty();
1602
- return "required";
1885
+ return 'required';
1603
1886
  }
1604
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bpEmplrFlag
1605
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1887
+ if (this.question &&
1888
+ this.question.name &&
1889
+ this.form &&
1890
+ this.form.controls[this.question.name].errors?.bpEmplrFlag &&
1891
+ this.form.controls[this.question.name].dirty &&
1892
+ this.form.controls[this.question.name].touched) {
1606
1893
  var keepGoing = true;
1607
- if (this.util.isState('MS')) {
1608
- let message = "Enter details or delete each employer(s) to continue";
1609
- this.form.controls[this.question.name].markAsDirty();
1610
- return message;
1894
+ let message;
1895
+ if (localStorage.getItem("language") === "es") {
1896
+ message = 'Confirmar o eliminar cada empleador(es) para continuar';
1611
1897
  }
1612
1898
  else {
1613
- let message = "Confirm or Delete each employer(s) to continue";
1614
- this.form.controls[this.question.name].markAsDirty();
1615
- return message;
1899
+ message = 'Confirm or Delete each employer(s) to continue';
1616
1900
  }
1901
+ this.form.controls[this.question.name].markAsDirty();
1902
+ return message;
1617
1903
  }
1618
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.simpleCheckBoxValidationFlag
1619
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1904
+ if (this.question &&
1905
+ this.question.name &&
1906
+ this.form &&
1907
+ this.form.controls[this.question.name].errors
1908
+ ?.simpleCheckBoxValidationFlag &&
1909
+ (this.form.controls[this.question.name].dirty ||
1910
+ this.form.controls[this.question.name].touched)) {
1620
1911
  var keepGoing = true;
1621
- let message = "required";
1912
+ let message = 'required';
1622
1913
  this.form.controls[this.question.name].markAsDirty();
1623
1914
  return message;
1624
1915
  }
1625
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.cpatchvalidationFlag
1626
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1916
+ if (this.question &&
1917
+ this.question.name &&
1918
+ this.form &&
1919
+ this.form.controls[this.question.name].errors?.cpatchvalidationFlag &&
1920
+ (this.form.controls[this.question.name].dirty ||
1921
+ this.form.controls[this.question.name].touched)) {
1627
1922
  var keepGoing = true;
1628
- let message = "required";
1923
+ let message = 'required';
1629
1924
  this.form.controls[this.question.name].markAsDirty();
1630
1925
  return message;
1631
1926
  }
1632
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.uploadvalidationFlag
1633
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1927
+ if (this.question &&
1928
+ this.question.name &&
1929
+ this.form &&
1930
+ this.form.controls[this.question.name].errors?.uploadvalidationFlag &&
1931
+ (this.form.controls[this.question.name].dirty ||
1932
+ this.form.controls[this.question.name].touched)) {
1634
1933
  var keepGoing = true;
1635
- let message = "required";
1934
+ let message = 'required';
1636
1935
  this.form.controls[this.question.name].markAsDirty();
1637
1936
  return message;
1638
1937
  }
1639
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bpEmplrLengthFlag
1640
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1938
+ if (this.question &&
1939
+ this.question.name &&
1940
+ this.form &&
1941
+ this.form.controls[this.question.name].errors?.bpEmplrLengthFlag &&
1942
+ (this.form.controls[this.question.name].dirty ||
1943
+ this.form.controls[this.question.name].touched)) {
1641
1944
  var keepGoing = true;
1642
- let message = "Add previous employment details";
1945
+ let message = 'Add previous employment details';
1643
1946
  this.form.controls[this.question.name].markAsDirty();
1644
1947
  return message;
1645
1948
  }
1646
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.addressValidationFlag
1647
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1949
+ if (this.question &&
1950
+ this.question.name &&
1951
+ this.form &&
1952
+ this.form.controls[this.question.name].errors?.addressValidationFlag &&
1953
+ (this.form.controls[this.question.name].dirty ||
1954
+ this.form.controls[this.question.name].touched)) {
1648
1955
  var keepGoing = true;
1649
1956
  //let message: string = "Please provide valid address.";
1650
- this.addresses.forEach(address => address.submit());
1957
+ this.addresses.forEach((address) => address.submit());
1651
1958
  this.form.controls[this.question.name].markAsDirty();
1652
1959
  return message;
1653
1960
  }
1654
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.bankDetailsValidationFlag
1655
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1961
+ if (this.question &&
1962
+ this.question.name &&
1963
+ this.form &&
1964
+ this.form.controls[this.question.name].errors
1965
+ ?.bankDetailsValidationFlag &&
1966
+ (this.form.controls[this.question.name].dirty ||
1967
+ this.form.controls[this.question.name].touched)) {
1656
1968
  var keepGoing = true;
1657
1969
  //let message: string = "Please provide valid bank details.";
1658
1970
  this.bankdtls?.submit();
1659
1971
  this.form.controls[this.question.name].markAsDirty();
1660
1972
  return message;
1661
1973
  }
1662
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.jobTitleFlag
1663
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1974
+ if (this.question &&
1975
+ this.question.name &&
1976
+ this.form &&
1977
+ this.form.controls[this.question.name].errors?.wcEmployerValidation &&
1978
+ this.form.controls[this.question.name].dirty &&
1979
+ this.form.controls[this.question.name].touched) {
1664
1980
  var keepGoing = true;
1665
1981
  let message = "required";
1666
- this.jobTitle?.submit();
1667
- this.form.controls[this.question.name].markAsDirty();
1668
- return message;
1669
- }
1670
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerValidation
1671
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1672
- var keepGoing = true;
1673
- let message = "Update employer(s) to continue";
1674
1982
  this.wcEmployerGrid?.submit();
1675
1983
  this.form.controls[this.question.name].markAsDirty();
1676
1984
  return message;
1677
1985
  }
1678
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerRequired
1679
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1680
- var keepGoing = true;
1681
- let message = "Add employer details";
1682
- this.form.controls[this.question.name].markAsDirty();
1683
- return message;
1684
- }
1685
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcRequired
1686
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1687
- var keepGoing = true;
1688
- let message = "required";
1689
- this.form.controls[this.question.name].markAsDirty();
1690
- return message;
1691
- }
1692
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcPartialClaimEmployment
1693
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1694
- var keepGoing = true;
1695
- let message = null;
1696
- if (this.loginService.isCsr()) {
1697
- message = "Verify employment. The last day worked on the application is during the week or employment details were on the prior week. If claimant did not work select Next to continue.";
1698
- }
1699
- else if (this.loginService.isClaimant()) {
1700
- message = "Did you work during the week? If yes, provide your employment details. If no, please call us at 601-493-9427, Monday through Friday from 8:00 AM to 5:00 PM for assistance.";
1701
- }
1702
- this.form.controls[this.question.name].markAsDirty();
1703
- return message;
1704
- }
1705
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcDependentRequired
1706
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1707
- var keepGoing = true;
1708
- let message = "Add dependent details";
1709
- this.form.controls[this.question.name].markAsDirty();
1710
- return message;
1711
- }
1712
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerPaymentInfoRequired
1713
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1714
- var keepGoing = true;
1715
- let message = "Add employer payment details";
1716
- this.form.controls[this.question.name].markAsDirty();
1717
- return message;
1718
- }
1719
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.remunerationPaymentInfoRequired
1720
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1721
- var keepGoing = true;
1722
- let message = "Add remuneration payment details";
1723
- this.form.controls[this.question.name].markAsDirty();
1724
- return message;
1725
- }
1726
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.grossEarningsInfoRequired
1727
- && (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
1728
- var keepGoing = true;
1729
- let message = "Add hours worked details";
1730
- this.form.controls[this.question.name].markAsDirty();
1731
- return message;
1732
- }
1733
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.notEquals
1734
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1986
+ if (this.question &&
1987
+ this.question.name &&
1988
+ this.form &&
1989
+ this.form.controls[this.question.name].errors?.notEquals &&
1990
+ (this.form.controls[this.question.name].dirty ||
1991
+ this.form.controls[this.question.name].touched)) {
1735
1992
  let validatorList = this.question.validators;
1736
1993
  var keepGoing = true;
1737
- let message = "";
1738
- validatorList.forEach(validator => {
1994
+ let message = '';
1995
+ validatorList.forEach((validator) => {
1739
1996
  if (keepGoing) {
1740
1997
  if (validator.type === 'customvalidation') {
1741
1998
  message = validator.text;
@@ -1743,46 +2000,7 @@ export class DynamicFormQuestionComponent {
1743
2000
  keepGoing = false;
1744
2001
  }
1745
2002
  else {
1746
- message = "";
1747
- }
1748
- }
1749
- });
1750
- var keepGoing = true;
1751
- this.form.controls[this.question.name].markAsDirty();
1752
- return message;
1753
- }
1754
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.atLeastOne
1755
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1756
- let validatorList = this.question.validators;
1757
- var keepGoing = true;
1758
- let message = "";
1759
- validatorList.forEach(validator => {
1760
- if (keepGoing) {
1761
- if (validator.type === 'customvalidation') {
1762
- message = validator.text;
1763
- this.form.controls[this.question.name].markAsDirty();
1764
- keepGoing = false;
1765
- }
1766
- }
1767
- });
1768
- var keepGoing = true;
1769
- this.form.controls[this.question.name].markAsDirty();
1770
- return message;
1771
- }
1772
- if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.isGreaterDate
1773
- && (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
1774
- let validatorList = this.question.validators;
1775
- var keepGoing = true;
1776
- let message = "";
1777
- validatorList.forEach(validator => {
1778
- if (keepGoing) {
1779
- if (validator.type === 'customvalidation') {
1780
- message = validator.text;
1781
- this.form.controls[this.question.name].markAsDirty();
1782
- keepGoing = false;
1783
- }
1784
- else {
1785
- message = "";
2003
+ message = '';
1786
2004
  }
1787
2005
  }
1788
2006
  });
@@ -1793,59 +2011,86 @@ export class DynamicFormQuestionComponent {
1793
2011
  // this.logger.debug('message from panel outer-- ',message);
1794
2012
  return message;
1795
2013
  }
1796
- onAcceptedOtp(agreed) {
1797
- this.OtpCompleted = agreed;
1798
- }
1799
2014
  onAccepted(agreed) {
1800
- //this.logger.debug('onAccepted called',agreed);
2015
+ //console.log('onAccepted called',agreed);
1801
2016
  this.legalAccepted = agreed;
1802
2017
  }
1803
2018
  onCompleteRequalify(requalifyData) {
1804
- //this.logger.debug("onCompleteRequalify", requalifyData);
2019
+ //console.log("onCompleteRequalify", requalifyData);
1805
2020
  }
1806
2021
  onModelDisplay(modelDisplay) {
1807
- //this.logger.debug('modelDisplay called',modelDisplay);
2022
+ //console.log('modelDisplay called',modelDisplay);
2023
+ }
2024
+ generateOtpForNewUserCreation(event, form) {
2025
+ if (form.controls.phone.value == null || form.value.verification == null) {
2026
+ this.isOtpModalEnabled = false;
2027
+ console.log("Fields are null.");
2028
+ return;
2029
+ }
2030
+ // Remove non-numeric characters
2031
+ // let validPhone = form.value.phone.replace(/\D/g, '');
2032
+ let validPhone = form.controls.phone.value.replaceAll("-", "").replaceAll(" ", "");
2033
+ // Count digits
2034
+ let phoneLength = validPhone.length;
2035
+ console.log("Phone number length", phoneLength);
2036
+ if (phoneLength != 10) {
2037
+ console.log("Phone number must be of length 10");
2038
+ return;
2039
+ }
2040
+ this.ls
2041
+ .generateOtpForNewUserCreation(form.controls.phone.value, event.option.value)
2042
+ .subscribe({
2043
+ next: (res) => {
2044
+ console.log('Access code sent successfully.');
2045
+ this.isOtpModalEnabled = true;
2046
+ },
2047
+ error: (err) => {
2048
+ console.log('Could not generate the authentication OTP code.');
2049
+ console.error(err);
2050
+ },
2051
+ });
1808
2052
  }
1809
2053
  onRadioOptionClick(event, element) {
2054
+ if (element?.name === "diffmailaddress" && localStorage.getItem("flowKey") == '345') {
2055
+ localStorage.setItem('disableFieldsOnSignup', 'false');
2056
+ }
1810
2057
  let query = event.query;
1811
2058
  if (element.serviceType && element.serviceType === 'FETCH') {
1812
2059
  let serviceCallType = element.serviceCallType;
1813
2060
  let serviceName = element.serviceName;
1814
- const options = event.option.value ? { params: new HttpParams().set('selection', event.option.value) } : {};
2061
+ const options = event.option.value
2062
+ ? { params: new HttpParams().set('selection', event.option.value) }
2063
+ : {};
1815
2064
  if (serviceCallType === 'GET') {
1816
2065
  this.util.showLoader();
1817
- this.validationService
1818
- .get(`${serviceName}`, options)
1819
- .subscribe(res => {
2066
+ this.validationService.get(`${serviceName}`, options).subscribe((res) => {
1820
2067
  let values = res;
1821
2068
  if (values.success == true) {
1822
- //this.logger.debug(values.serviceCallValues.serviceType);
1823
- //this.logger.debug(values.serviceCallValues);
1824
- if (values.serviceCallValues && values.serviceCallValues.serviceType
1825
- && values.serviceCallValues.serviceType === 'FETCH') {
2069
+ //console.log(values.serviceCallValues.serviceType);
2070
+ //console.log(values.serviceCallValues);
2071
+ if (values.serviceCallValues &&
2072
+ values.serviceCallValues.serviceType &&
2073
+ values.serviceCallValues.serviceType === 'FETCH') {
1826
2074
  let serviceCallTypeInTrue = values.serviceCallValues.serviceCallType;
1827
2075
  let serviceNameInTrue = values.serviceCallValues.serviceName;
1828
2076
  if (serviceCallTypeInTrue === 'GET') {
1829
2077
  this.util.showLoader();
1830
- this.validationService
1831
- .get(`${serviceNameInTrue}`)
1832
- .subscribe(resp => {
2078
+ this.validationService.get(`${serviceNameInTrue}`).subscribe((resp) => {
1833
2079
  let loaderModel = resp;
1834
- this.logger.debug(" value from loader = ", loaderModel);
2080
+ // console.log(" value from loader = ", loaderModel);
1835
2081
  this.setFormValues(loaderModel.data);
1836
2082
  this.util.hideLoader();
1837
- }, errp => {
2083
+ }, (errp) => {
1838
2084
  this.util.hideLoader();
1839
2085
  this.form.controls[element.name]?.reset();
1840
2086
  this.form.controls[element.name]?.updateValueAndValidity();
1841
2087
  this.util.errorHandler(errp);
1842
2088
  });
1843
2089
  }
1844
- ;
1845
2090
  }
1846
2091
  this.util.hideLoader();
1847
2092
  }
1848
- }, err => {
2093
+ }, (err) => {
1849
2094
  this.util.hideLoader();
1850
2095
  this.form.controls[element.name]?.reset();
1851
2096
  this.form.controls[element.name]?.updateValueAndValidity();
@@ -1855,8 +2100,7 @@ export class DynamicFormQuestionComponent {
1855
2100
  }
1856
2101
  }
1857
2102
  setFormValues(data) {
1858
- Object.keys(data)
1859
- .forEach(key => {
2103
+ Object.keys(data).forEach((key) => {
1860
2104
  let valueToSet = data[key];
1861
2105
  this.setValueInFormControl(key, valueToSet);
1862
2106
  });
@@ -1882,15 +2126,21 @@ export class DynamicFormQuestionComponent {
1882
2126
  let serviceUpdateParam = element.serviceUpdateParam;
1883
2127
  if (serviceCallType === 'GET') {
1884
2128
  // this.logger.debug('Inside GET');
1885
- this.validationService
1886
- .get(`${serviceName}`)
1887
- .subscribe((res) => {
1888
- choices = res;
2129
+ this.validationService.get(`${serviceName}`).subscribe((res) => {
2130
+ this.logger.debug('res--', res, ' - res[0].length -', res);
2131
+ choices.push(res);
1889
2132
  let query = event.query;
1890
2133
  //let filtered: any[] = [];
1891
- this.filterResult = choices;
2134
+ for (let i = 0; i < choices.length; i++) {
2135
+ let choice = choices[i];
2136
+ //this.logger.debug('choice - ', choice, 'choice.text--', choice.text, 'query.toLowerCase()', query?.toLowerCase());
2137
+ //if (choice.text.toLowerCase().indexOf(query.toLowerCase()) == 0) {
2138
+ filtered.push(choice[0]);
2139
+ //}
2140
+ }
2141
+ this.filterResult = filtered;
1892
2142
  this.logger.debug('this.filterResult123--', this.filterResult);
1893
- }, err => {
2143
+ }, (err) => {
1894
2144
  this.util.hideLoader();
1895
2145
  this.util.errorHandler(err);
1896
2146
  });
@@ -1907,8 +2157,7 @@ export class DynamicFormQuestionComponent {
1907
2157
  this.filterResult = filtered;
1908
2158
  }
1909
2159
  }
1910
- onSelect(event, cntrlName) {
1911
- }
2160
+ onSelect(event, cntrlName) { }
1912
2161
  //This shoud be similira to method present in panel
1913
2162
  validate(element) {
1914
2163
  if (!element.serviceName) {
@@ -1925,7 +2174,7 @@ export class DynamicFormQuestionComponent {
1925
2174
  let allValuePresent = true;
1926
2175
  // this.logger.debug('serviceCallParam',serviceCallParam);
1927
2176
  if (serviceCallParam) {
1928
- var splitted = serviceCallParam.split(",");
2177
+ var splitted = serviceCallParam.split(',');
1929
2178
  let valueArr = [];
1930
2179
  let paramArr = [];
1931
2180
  for (let i = 0; i < splitted.length; i++) {
@@ -1947,11 +2196,10 @@ export class DynamicFormQuestionComponent {
1947
2196
  if (allValuePresent) {
1948
2197
  if (serviceCallType === 'POST') {
1949
2198
  // this.logger.debug('Inside GET');
1950
- this.validationService
1951
- .post(`${serviceName}`, model)
1952
- .subscribe(res => {
2199
+ this.validationService.post(`${serviceName}`, model).subscribe((res) => {
1953
2200
  this.returnModel = res;
1954
- if (this.returnModel.returnType && this.returnModel.returnType === 'POPUP') {
2201
+ if (this.returnModel.returnType &&
2202
+ this.returnModel.returnType === 'POPUP') {
1955
2203
  this.displayPosition = true;
1956
2204
  this.position = 'top';
1957
2205
  this.popUpHeader = this.returnModel.popUpHeader;
@@ -1960,7 +2208,7 @@ export class DynamicFormQuestionComponent {
1960
2208
  this.popUpNoActionLabel = this.returnModel.popUpNoButtonLabel;
1961
2209
  }
1962
2210
  this.logger.debug('this.returnModel ', this.returnModel);
1963
- }, err => {
2211
+ }, (err) => {
1964
2212
  this.util.hideLoader();
1965
2213
  this.util.errorHandler(err);
1966
2214
  });
@@ -1968,26 +2216,27 @@ export class DynamicFormQuestionComponent {
1968
2216
  }
1969
2217
  }
1970
2218
  }
1971
- /**
1972
- * @description This method will be called after selecting button from action label
1973
- * encrypts parameter values for URL using base64 encoding and XOR using random key
1974
- **/
2219
+ blurDOB(element) {
2220
+ this.validate(element);
2221
+ this.checkIfUserExist();
2222
+ }
1975
2223
  accept() {
1976
- this.logger.debug('accept called123', this.returnModel.identifier);
2224
+ console.log('accept called123', this.returnModel.identifier);
1977
2225
  let paramArray = [];
1978
2226
  if (this.returnModel.identifier) {
1979
2227
  let modelArr = this.returnModel.identifier;
1980
- this.td = this.util.generateRandomKey();
1981
- localStorage.setItem('vxk', btoa(btoa(this.alpRnd + (this.td).toString() + (this.varn).toString())));
1982
2228
  for (var val of modelArr) {
1983
- paramArray.push({ [this.util.xorEncrypt(val.key, this.td)]: this.util.xorEncrypt(val.value, this.td) });
2229
+ paramArray.push({ [val.key]: val.value });
1984
2230
  }
1985
- let params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
2231
+ const params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
1986
2232
  //this.util.openPageByContextRootWithData(this.getContextRoot(), this.returnModel.yesAction, params, this.navController)
1987
- this.navController.navigateRoot(this.returnModel.yesAction, { queryParams: params });
2233
+ this.navController.navigateRoot(this.returnModel.yesAction, {
2234
+ queryParams: params,
2235
+ });
1988
2236
  return;
1989
2237
  }
1990
- if (this.returnModel.yesAction && this.returnModel.yesAction.substring(0, 4) != '/cp/') {
2238
+ if (this.returnModel.yesAction &&
2239
+ this.returnModel.yesAction.substring(0, 4) != '/cp/') {
1991
2240
  this.navController.navigateRoot([this.returnModel.yesAction]);
1992
2241
  this.displayPosition = false;
1993
2242
  return;
@@ -1998,7 +2247,8 @@ export class DynamicFormQuestionComponent {
1998
2247
  this.navController.navigateRoot([this.returnModel.yesAction]);
1999
2248
  }
2000
2249
  reject() {
2001
- if (this.returnModel.noAction && this.returnModel.noAction.substring(0, 4) != '/cp/') {
2250
+ if (this.returnModel.noAction &&
2251
+ this.returnModel.noAction.substring(0, 4) != '/cp/') {
2002
2252
  this.navController.navigateRoot([this.returnModel.noAction]);
2003
2253
  this.displayPosition = false;
2004
2254
  }
@@ -2007,10 +2257,9 @@ export class DynamicFormQuestionComponent {
2007
2257
  }
2008
2258
  }
2009
2259
  getContextRoot() {
2010
- return window.location.pathname.substring(0, window.location.pathname.indexOf("/", 2));
2011
- }
2012
- uploadFile(ev) {
2260
+ return window.location.pathname.substring(0, window.location.pathname.indexOf('/', 2));
2013
2261
  }
2262
+ uploadFile(ev) { }
2014
2263
  getTranslation(key, dynamicParam) {
2015
2264
  if (!dynamicParam) {
2016
2265
  return key;
@@ -2020,7 +2269,7 @@ export class DynamicFormQuestionComponent {
2020
2269
  let params;
2021
2270
  if (Array.isArray(dynamicParam)) {
2022
2271
  params = dynamicParam;
2023
- params.forEach(prm => {
2272
+ params.forEach((prm) => {
2024
2273
  dynamicObj[prm.key] = prm.value;
2025
2274
  });
2026
2275
  }
@@ -2029,7 +2278,7 @@ export class DynamicFormQuestionComponent {
2029
2278
  dynamicObj[param.key] = param.value;
2030
2279
  }
2031
2280
  this.translate.use('en');
2032
- let translatedString = "";
2281
+ let translatedString = '';
2033
2282
  this.translate.set(key, key);
2034
2283
  translatedString = this.translate.instant(key, Object.assign(dynamicObj));
2035
2284
  return translatedString;
@@ -2038,19 +2287,19 @@ export class DynamicFormQuestionComponent {
2038
2287
  return object?.text ? object?.text : object;
2039
2288
  }
2040
2289
  unmask(event) {
2041
- this.type = 'text';
2290
+ this.maskClass = false;
2042
2291
  }
2043
2292
  mask(event) {
2044
- this.type = 'password';
2293
+ this.maskClass = true;
2045
2294
  }
2046
2295
  dateInput(event) {
2047
2296
  let currentValue = event.srcElement.value;
2048
2297
  if (currentValue) {
2049
2298
  if (currentValue.length == 2 && currentValue.charAt(2) != '/') {
2050
- event.target.value = currentValue + "/";
2299
+ event.target.value = currentValue + '/';
2051
2300
  }
2052
2301
  if (currentValue.length == 5 && currentValue.charAt(5) != '/') {
2053
- event.target.value = currentValue + "/";
2302
+ event.target.value = currentValue + '/';
2054
2303
  }
2055
2304
  }
2056
2305
  }
@@ -2065,7 +2314,10 @@ export class DynamicFormQuestionComponent {
2065
2314
  this.form.updateValueAndValidity();
2066
2315
  this.dynamicParam = this.dynamicParam ? this.dynamicParam : [];
2067
2316
  if (Array.isArray(this.dynamicParam)) {
2068
- this.dynamicParam.push({ key: this.question.name, value: currentValue });
2317
+ this.dynamicParam.push({
2318
+ key: this.question.name,
2319
+ value: currentValue,
2320
+ });
2069
2321
  }
2070
2322
  else {
2071
2323
  this.dynamicParam[this.question.name] = currentValue;
@@ -2085,11 +2337,16 @@ export class DynamicFormQuestionComponent {
2085
2337
  let compData = JSON.parse(this.question.componentData);
2086
2338
  let addressFc = this.form.get(compData.addressFormControlName);
2087
2339
  let empIdFc = this.form.get(compData.employerIdFormControlName);
2088
- empIdFc.setValue(employer.employerId ? employer.employerId : "-1");
2340
+ empIdFc.setValue(employer.employerId ? employer.employerId : '-1');
2089
2341
  addressFc.setValue({
2090
- country: employer.country, city: employer.city,
2091
- zip: employer.zip, streetAddress: employer.addressDisplayVal, state: employer.state,
2092
- optionalAddress: null, county: null, town: null
2342
+ country: employer.country,
2343
+ city: employer.city,
2344
+ zip: employer.zip,
2345
+ streetAddress: employer.addressDisplayVal,
2346
+ state: employer.state,
2347
+ optionalAddress: null,
2348
+ county: null,
2349
+ town: null,
2093
2350
  });
2094
2351
  }
2095
2352
  }
@@ -2098,11 +2355,16 @@ export class DynamicFormQuestionComponent {
2098
2355
  let compData = JSON.parse(this.question.componentData);
2099
2356
  let addressFc = this.form.get(compData.addressFormControlName);
2100
2357
  let empIdFc = this.form.get(compData.employerIdFormControlName);
2101
- empIdFc.setValue("-1");
2358
+ empIdFc.setValue('-1');
2102
2359
  addressFc.setValue({
2103
- country: null, city: null,
2104
- zip: null, streetAddress: null, state: null,
2105
- optionalAddress: null, county: null, town: null
2360
+ country: null,
2361
+ city: null,
2362
+ zip: null,
2363
+ streetAddress: null,
2364
+ state: null,
2365
+ optionalAddress: null,
2366
+ county: null,
2367
+ town: null,
2106
2368
  });
2107
2369
  }
2108
2370
  }
@@ -2117,14 +2379,21 @@ export class DynamicFormQuestionComponent {
2117
2379
  if (this.question.type == 'dropdown') {
2118
2380
  const choice = this.question.defaultValue;
2119
2381
  var jsonObject = JSON.parse(choice);
2120
- this.setFormControlValue(this.question.name, this.question.choices.filter(c => c.value == jsonObject.value)[0]);
2382
+ this.setFormControlValue(this.question.name, this.question.choices.filter((c) => c.value == jsonObject.value)[0]);
2121
2383
  }
2122
2384
  else {
2123
2385
  this.setFormControlValue(this.question.name, value);
2124
2386
  }
2125
2387
  }
2126
2388
  }
2127
- static { this.ɵfac = function DynamicFormQuestionComponent_Factory(t) { return new (t || DynamicFormQuestionComponent)(i0.ɵɵdirectiveInject(i1.QuestionControlService), i0.ɵɵdirectiveInject(i2.QuestionService), i0.ɵɵdirectiveInject(i3.TranslateService), i0.ɵɵdirectiveInject(i4.ValidationService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.NavController), i0.ɵɵdirectiveInject(i7.LoggerService), i0.ɵɵdirectiveInject(i8.DomSanitizer), i0.ɵɵdirectiveInject(i9.LoginService), i0.ɵɵdirectiveInject(i10.AddressValidationService), i0.ɵɵdirectiveInject(i6.ModalController)); }; }
2389
+ modifyCalendarAttributes() {
2390
+ const inputElement = this.pCalendar.nativeElement.querySelectorAll('p-calendar [aria-controls]');
2391
+ inputElement.forEach((element) => {
2392
+ this.renderer.setAttribute(element, 'aria-controls', this.question.name);
2393
+ this.renderer.setAttribute(element, 'aria-expanded', 'false');
2394
+ });
2395
+ }
2396
+ static { this.ɵfac = function DynamicFormQuestionComponent_Factory(t) { return new (t || DynamicFormQuestionComponent)(i0.ɵɵdirectiveInject(i1.QuestionControlService), i0.ɵɵdirectiveInject(i2.QuestionService), i0.ɵɵdirectiveInject(i3.TranslateService), i0.ɵɵdirectiveInject(i4.ValidationService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.NavController), i0.ɵɵdirectiveInject(i7.LoggerService), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i10.LoginService)); }; }
2128
2397
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicFormQuestionComponent, selectors: [["app-question"]], viewQuery: function DynamicFormQuestionComponent_Query(rf, ctx) { if (rf & 1) {
2129
2398
  i0.ɵɵviewQuery(_c0, 5);
2130
2399
  i0.ɵɵviewQuery(_c1, 5);
@@ -2134,13 +2403,13 @@ export class DynamicFormQuestionComponent {
2134
2403
  let _t;
2135
2404
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bankdtls = _t.first);
2136
2405
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wcEmployerGrid = _t.first);
2137
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.jobTitle = _t.first);
2406
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pCalendar = _t.first);
2138
2407
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addresses = _t);
2139
- } }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId", questionaireForm: "questionaireForm" }, outputs: { onDynamicParamUpdate: "onDynamicParamUpdate" }, decls: 28, vars: 29, consts: [[3, "formGroup", "id"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", "visibleChange", 4, "ngIf"], ["class", "form-label", 3, "ngStyle", 4, "ngIf"], [4, "ngIf"], ["style", "display: flex;", 4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "responsive", 4, "ngSwitchCase"], [3, "ngStyle", 4, "ngIf"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "baseZIndex", "draggable", "resizable", "visibleChange"], [1, "heading", "ion-padding-left"], [3, "innerHTML"], ["pTemplate", "footer"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click"], [1, "form-label", 3, "ngStyle"], [3, "innerHtml"], [3, "formControlName", "form", "dynamicParam", "modelDisplay", 4, "ngIf"], [3, "componentData", "question", "form", "accepted", 4, "ngIf"], [3, "componentData", 4, "ngIf"], [3, "formControlName", 4, "ngIf"], [3, "formControlName", "fromPopup", "countyRequired", "questionaireForm", "inputId", "componentData", "diffMailAddress", "enableAddressValidation", 4, "ngIf"], [3, "formControlName", "isRequired", 4, "ngIf"], [3, "formControlName", "componentData", "form", "question", 4, "ngIf"], [3, "form", "dynamicParam", "formControlName", 4, "ngIf"], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty", 4, "ngIf"], [3, "formControlName", "dynamicParam", 4, "ngIf"], [3, "potentialIssueId", "formControlName", 4, "ngIf"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl", 4, "ngIf"], [3, "isRequired", "formControlName", "inputId", 4, "ngIf"], [3, "formControlName", "question", "form", "accepted", 4, "ngIf"], [3, "componentData", "formControlName", 4, "ngIf"], [3, "formControlName", "form", "dynamicParam", "modelDisplay"], [3, "componentData", "question", "form", "accepted"], [3, "componentData"], [3, "formControlName"], [3, "formControlName", "fromPopup", "countyRequired", "questionaireForm", "inputId", "componentData", "diffMailAddress", "enableAddressValidation"], ["address", ""], [3, "formControlName", "isRequired"], ["bankdtls", ""], [3, "formControlName", "componentData", "form", "question"], [3, "form", "dynamicParam", "formControlName"], ["wcEmployerGrid", ""], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty"], [3, "formControlName", "dynamicParam"], [3, "potentialIssueId", "formControlName"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl"], [3, "isRequired", "formControlName", "inputId"], [3, "formControlName", "question", "form", "accepted"], [3, "componentData", "formControlName"], [2, "display", "flex"], [1, "heading", 2, "color", "var(--ion-color-medium-gray)", "padding-top", "20px", 3, "innerHTML"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top:13px", 4, "ngIf"], [2, "padding-left", "8px", "padding-top", "13px"], [3, "overlayText"], [1, "container", 2, "display", "flex"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top:3px", 4, "ngIf"], [3, "ngStyle"], ["yearRange", "1901:2099", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["mask", "999-99-9999", "placeholder", "999-99-9999", 3, "inputId", "formControlName", "type", "onComplete", "onFocus", "onBlur"], ["mask", "9999", "placeholder", "9999", 3, "inputId", "formControlName", "type", "onComplete", "onFocus", "onBlur"], ["mask", "99-99999-9-99", "placeholder", "99-99999-9-99", 3, "inputId", "formControlName", "value", "onComplete"], ["mode", "decimal", "locale", "en-US", 3, "inputId", "formControlName", "minFractionDigits", "ariaLabel"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder"], ["mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["weakLabel", "Weak password", "mediumLabel", "Weak password", "strongLabel", "Strong password", "strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_@*$!#.]+.*[_@*$!#.])(?=.{14,})", 3, "inputId", "formControlName", "toggleMask", "maxLength", "ariaLabel"], [1, "mt-1", 2, "font-size", "small"], [2, "line-height", "1.25"], [2, "margin-left", "-25px", "font-size", "small"], ["style", "margin-left: -25px; font-size: small;", 4, "ngIf"], [3, "allowedFileType", "formControlName", "maxSizeInMB", "multiple", "noOfFilesToUpload"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", "blur"], [2, "padding-left", "8px", "padding-top", "3px"], ["style", "display: flex; align-items: center;", 3, "ngStyle", 4, "ngIf"], [2, "display", "flex", "align-items", "center", 3, "ngStyle"], ["autoResize", "true", 3, "id", "formControlName", "maxLength", "rows", "cols", "placeholder"], ["style", "flex-grow: 1;", "style", "padding-left: 3px; padding-top:3px", 4, "ngIf"], [2, "padding-left", "3px", "padding-top", "3px"], ["autoResize", "true", 3, "id", "formControlName", "rows", "cols", "placeholder"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect", 4, "ngIf"], ["optionLabel", "text", "appendTo", "body", 3, "options", "formControlName", "autoDisplayFirst", "inputId", "ariaLabel", "placeholder", "onChange", "onClick"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect"], ["pTemplate", "item"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], ["mode", "currency", "currency", "USD", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder", "required"], [1, "formgroup-inline", 3, "ngStyle"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId", 4, "ngFor", "ngForOf"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "multiple"], [1, "field-checkbox"], ["binary", "true", "inputId", "binary", 3, "formControlName"], ["for", "binary"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top: 3px", 4, "ngIf"], ["type", "hidden", 3, "formControlName"], ["style", "flex-grow: 1;", "style", "padding-left: 2px", 4, "ngIf"], [2, "padding-left", "2px"], [3, "displayText", "overlayText", "displayAsLabel"], [3, "displayText", "formControlName", "overlayText", "labelWithLink"], [3, "displayText", "formControlName", "labelWithPopup", "labelWithLink"], [1, "responsive"], [4, "ngFor", "ngForOf"], ["class", "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [1, "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], [3, "question", "form", "forScreenQuestionnaire"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], ["class", "p-error", 4, "ngIf"], [1, "p-error"]], template: function DynamicFormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
2408
+ } }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId" }, outputs: { onDynamicParamUpdate: "onDynamicParamUpdate" }, decls: 28, vars: 29, consts: [[3, "formGroup", "id"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", "visibleChange", 4, "ngIf"], ["class", "form-label", 3, "ngStyle", 4, "ngIf"], [4, "ngIf"], ["style", "display: flex;", 4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "responsive", 4, "ngSwitchCase"], [3, "ngStyle", 4, "ngIf"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "baseZIndex", "draggable", "resizable", "visibleChange"], [1, "heading", "ion-padding-left"], ["pTemplate", "footer"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click"], [1, "form-label", 3, "ngStyle"], [3, "innerHtml"], [3, "formControlName", "form", "dynamicParam", "modelDisplay", 4, "ngIf"], [3, "componentData", "question", "form", "accepted", 4, "ngIf"], [3, "formControlName", 4, "ngIf"], [3, "formControlName", "fromPopup", "countyRequired", "inputId", 4, "ngIf"], [3, "formControlName", "componentData", "form", 4, "ngIf"], [3, "dynamicParam", "formControlName", 4, "ngIf"], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty", 4, "ngIf"], [3, "potentialIssueId", "formControlName", 4, "ngIf"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl", 4, "ngIf"], [3, "isRequired", "formControlName", "inputId", 4, "ngIf"], [3, "control", 4, "ngIf"], [3, "formControlName", "form", "dynamicParam", "modelDisplay"], [3, "componentData", "question", "form", "accepted"], [3, "formControlName"], [3, "formControlName", "fromPopup", "countyRequired", "inputId"], ["address", ""], ["bankdtls", ""], [3, "formControlName", "componentData", "form"], [3, "dynamicParam", "formControlName"], ["wcEmployerGrid", ""], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty"], [3, "potentialIssueId", "formControlName"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl"], [3, "isRequired", "formControlName", "inputId"], [3, "control"], ["jobTitle", ""], [2, "display", "flex"], [1, "heading", 2, "color", "var(--ion-color-medium-gray)", "padding-top", "20px", 3, "innerHTML"], ["style", "padding-left: 8px; padding-top:13px", 4, "ngIf"], [2, "padding-left", "8px", "padding-top", "13px"], [3, "overlayText"], [1, "container", 2, "display", "flex"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top:3px", 4, "ngIf"], [3, "ngStyle"], ["pCalendar", ""], ["yearRange", "1901:2099", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["yearRange", "1901:2050", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["autocomplete", "off", "mask", "999-99-9999", "placeholder", "999-99-9999", 3, "inputId", "formControlName", "onComplete", "onFocus", "onBlur"], ["autocomplete", "off", "mask", "99-99999-9-99", "placeholder", "99-99999-9-99", 3, "inputId", "formControlName", "value", "onComplete"], ["mode", "decimal", "locale", "en-US", 3, "inputId", "formControlName", "minFractionDigits", "ariaLabel"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "placeholder", "id", "formControlName"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])", 3, "inputId", "formControlName", "toggleMask", "maxLength", "weakLabel", "mediumLabel", "strongLabel", "ariaLabel"], [1, "mt-1", 2, "font-size", "small"], [2, "line-height", "1.25"], [2, "margin-left", "-25px", "font-size", "small"], [3, "allowedFileType", "formControlName", "maxSizeInMB", "multiple", "noOfFilesToUpload"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", "placeholder", "blur"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "blur"], [2, "padding-left", "8px", "padding-top", "3px"], ["autoResize", "true", 3, "id", "formControlName", "maxLength", "rows", "cols", "placeholder"], ["styleClass", "p-d-block", 4, "ngIf"], ["styleClass", "p-d-block"], ["autoResize", "true", 3, "id", "formControlName", "rows", "cols", "placeholder"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect", 4, "ngIf"], ["optionLabel", "text", "appendTo", "body", 3, "options", "formControlName", "autoDisplayFirst", "inputId", "ariaLabel", "onChange", "onClick"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect"], ["pTemplate", "item"], [1, "container"], ["class", "shared-row", 4, "ngIf"], [1, "shared-row"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], [3, "display", "returningUser", "form", "formChange", "success", 4, "ngIf"], [3, "display", "returningUser", "form", "formChange", "success"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "currency", "currency", "USD", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], [1, "formgroup-inline", 3, "ngStyle"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId", 4, "ngFor", "ngForOf"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "multiple"], [1, "field-checkbox"], ["binary", "true", "inputId", "binary", 3, "formControlName"], ["for", "binary"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top: 3px", 4, "ngIf"], ["type", "hidden", 3, "formControlName"], ["style", "flex-grow: 1;", "style", "padding-left: 2px", 4, "ngIf"], [2, "padding-left", "2px"], [3, "displayText", "overlayText", "displayAsLabel"], [3, "displayText", "formControlName", "overlayText", "labelWithLink"], [3, "displayText", "formControlName", "labelWithPopup", "labelWithLink"], [1, "responsive"], [4, "ngFor", "ngForOf"], ["class", "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [1, "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], [3, "question", "form", "forScreenQuestionnaire"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], ["class", "p-error", 4, "ngIf"], [1, "p-error"]], template: function DynamicFormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
2140
2409
  i0.ɵɵelementStart(0, "div", 0);
2141
- i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template, 5, 14, "p-dialog", 1)(2, DynamicFormQuestionComponent_div_2_Template, 2, 2, "div", 2)(3, DynamicFormQuestionComponent_div_3_Template, 4, 7, "div", 2)(4, DynamicFormQuestionComponent_div_4_Template, 4, 7, "div", 2)(5, DynamicFormQuestionComponent_div_5_Template, 4, 7, "div", 2)(6, DynamicFormQuestionComponent_div_6_Template, 29, 28, "div", 3)(7, DynamicFormQuestionComponent_div_7_Template, 4, 7, "div", 2)(8, DynamicFormQuestionComponent_div_8_Template, 5, 7, "div", 4);
2410
+ i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template, 6, 14, "p-dialog", 1)(2, DynamicFormQuestionComponent_div_2_Template, 2, 2, "div", 2)(3, DynamicFormQuestionComponent_div_3_Template, 5, 8, "div", 2)(4, DynamicFormQuestionComponent_div_4_Template, 5, 8, "div", 2)(5, DynamicFormQuestionComponent_div_5_Template, 5, 8, "div", 2)(6, DynamicFormQuestionComponent_div_6_Template, 17, 16, "div", 3)(7, DynamicFormQuestionComponent_div_7_Template, 4, 7, "div", 2)(8, DynamicFormQuestionComponent_div_8_Template, 5, 7, "div", 4);
2142
2411
  i0.ɵɵelementStart(9, "div", 5);
2143
- i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template, 16, 14, "ng-container", 6)(11, DynamicFormQuestionComponent_ng_container_11_Template, 3, 2, "ng-container", 6)(12, DynamicFormQuestionComponent_ng_container_12_Template, 6, 9, "ng-container", 6)(13, DynamicFormQuestionComponent_ng_container_13_Template, 5, 4, "ng-container", 6)(14, DynamicFormQuestionComponent_ng_container_14_Template, 5, 12, "ng-container", 6)(15, DynamicFormQuestionComponent_ng_container_15_Template, 5, 14, "ng-container", 6)(16, DynamicFormQuestionComponent_ng_container_16_Template, 5, 14, "ng-container", 6)(17, DynamicFormQuestionComponent_ng_container_17_Template, 5, 3, "ng-container", 6)(18, DynamicFormQuestionComponent_ng_container_18_Template, 5, 3, "ng-container", 6)(19, DynamicFormQuestionComponent_ng_container_19_Template, 5, 6, "ng-container", 6)(20, DynamicFormQuestionComponent_ng_container_20_Template, 7, 4, "ng-container", 6)(21, DynamicFormQuestionComponent_ng_container_21_Template, 6, 4, "ng-container", 6)(22, DynamicFormQuestionComponent_ng_container_22_Template, 5, 2, "ng-container", 6)(23, DynamicFormQuestionComponent_ng_container_23_Template, 4, 6, "ng-container", 6)(24, DynamicFormQuestionComponent_ng_container_24_Template, 4, 7, "ng-container", 6)(25, DynamicFormQuestionComponent_ng_container_25_Template, 4, 7, "ng-container", 6)(26, DynamicFormQuestionComponent_ng_container_26_Template, 8, 2, "ng-container", 7);
2412
+ i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template, 22, 19, "ng-container", 6)(11, DynamicFormQuestionComponent_ng_container_11_Template, 3, 2, "ng-container", 6)(12, DynamicFormQuestionComponent_ng_container_12_Template, 6, 8, "ng-container", 6)(13, DynamicFormQuestionComponent_ng_container_13_Template, 4, 2, "ng-container", 6)(14, DynamicFormQuestionComponent_ng_container_14_Template, 5, 11, "ng-container", 6)(15, DynamicFormQuestionComponent_ng_container_15_Template, 5, 13, "ng-container", 6)(16, DynamicFormQuestionComponent_ng_container_16_Template, 5, 13, "ng-container", 6)(17, DynamicFormQuestionComponent_ng_container_17_Template, 5, 3, "ng-container", 6)(18, DynamicFormQuestionComponent_ng_container_18_Template, 5, 3, "ng-container", 6)(19, DynamicFormQuestionComponent_ng_container_19_Template, 5, 6, "ng-container", 6)(20, DynamicFormQuestionComponent_ng_container_20_Template, 7, 4, "ng-container", 6)(21, DynamicFormQuestionComponent_ng_container_21_Template, 6, 4, "ng-container", 6)(22, DynamicFormQuestionComponent_ng_container_22_Template, 5, 2, "ng-container", 6)(23, DynamicFormQuestionComponent_ng_container_23_Template, 4, 6, "ng-container", 6)(24, DynamicFormQuestionComponent_ng_container_24_Template, 4, 7, "ng-container", 6)(25, DynamicFormQuestionComponent_ng_container_25_Template, 4, 7, "ng-container", 6)(26, DynamicFormQuestionComponent_ng_container_26_Template, 8, 2, "ng-container", 7);
2144
2413
  i0.ɵɵelementEnd();
2145
2414
  i0.ɵɵtemplate(27, DynamicFormQuestionComponent_div_27_Template, 2, 2, "div", 8);
2146
2415
  i0.ɵɵelementEnd();
@@ -2200,12 +2469,12 @@ export class DynamicFormQuestionComponent {
2200
2469
  i0.ɵɵproperty("ngSwitchCase", "panel");
2201
2470
  i0.ɵɵadvance(1);
2202
2471
  i0.ɵɵproperty("ngIf", ctx.question.type != "panel");
2203
- } }, styles: [".form-label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label[_ngcontent-%COMP%]{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox[_ngcontent-%COMP%]{padding:6px 0;width:-webkit-fill-available}.p-dropdown[_ngcontent-%COMP%]{display:inline-flex;min-width:185px}.p-calendar[_ngcontent-%COMP%] .p-inputtext[_ngcontent-%COMP%]{max-width:134px}[_nghost-%COMP%] .p-dropdown{display:inline-flex;min-width:110px}[_nghost-%COMP%] .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content[_ngcontent-%COMP%]{max-width:-moz-fit-content;max-width:fit-content}"], data: { animation: [rowExpansionTrigger] } }); }
2472
+ } }, dependencies: [i6.IonButton, i6.IonCol, i6.IonRow, i11.NgForOf, i11.NgIf, i11.NgStyle, i11.NgSwitch, i11.NgSwitchCase, i12.PrimeTemplate, i13.DefaultValueAccessor, i13.NgControlStatus, i13.NgControlStatusGroup, i13.MaxLengthValidator, i13.FormControlDirective, i13.FormGroupDirective, i13.FormControlName, i14.AutoComplete, i15.Dialog, i16.Password, i17.InputText, i18.InputMask, i19.Divider, i20.Calendar, i21.Checkbox, i22.SelectButton, i23.InputNumber, i24.CaptchaComponent, i25.FileUploaderComponent, DynamicFormQuestionComponent, i26.OverlayInfoComponent, i27.EmployerGridComponent, i28.LegalDisclaimarComponent, i29.MoneyExpectComponent, i30.SearchEmployerComponent, i31.AddressComponent, i32.BankDetailsComponent, i33.Mfa2Component, i34.DependentGridComponent, i35.WeeklyCertEmployerGridComponent, i36.AddParticipantComponent, i37.Dropdown, i38.RequalifyLiftPreviousIssuesComponent, i39.AddPaymentComponent, i40.LinkComponent, i41.SignSsnComponent, i42.JobTitleComponent, i3.TranslatePipe, i43.DynamicTranslatePipe, i44.TrustHtmlPipe], styles: [".form-label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label[_ngcontent-%COMP%]{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox[_ngcontent-%COMP%]{padding:6px 0;width:-webkit-fill-available}.p-dropdown[_ngcontent-%COMP%]{display:inline-flex;min-width:185px}.p-calendar[_ngcontent-%COMP%] .p-inputtext[_ngcontent-%COMP%]{max-width:134px}[_nghost-%COMP%] .p-dropdown{display:inline-flex;min-width:185px}[_nghost-%COMP%] .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content[_ngcontent-%COMP%]{max-width:-moz-fit-content;max-width:fit-content}.hide-content[_ngcontent-%COMP%]{position:relative;display:inline-block}.hide-content[_ngcontent-%COMP%]:after{content:\"***-**\";position:absolute;left:9px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row[_ngcontent-%COMP%]{display:flex;column-gap:15px}"], data: { animation: [rowExpansionTrigger] } }); }
2204
2473
  }
2205
2474
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormQuestionComponent, [{
2206
2475
  type: Component,
2207
- args: [{ selector: 'app-question', changeDetection: ChangeDetectionStrategy.Default, animations: [rowExpansionTrigger], template: "<div [formGroup]=\"form\" [id]=\"'question-div-' + question.name\">\r\n <p-dialog *ngIf=\"displayPosition\" [(visible)]=\"displayPosition\" [position]=\"position\"\r\n [modal]=\"true\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" [attr.aria-label]=\"question.title\">\r\n\r\n <h4 class=\"heading ion-padding-left\">\r\n {{popUpHeader}}\r\n </h4>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(popUpText)\"></div>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" *ngIf=\"popUpNoActionLabel\" size=\"small\" type=\"submit\" fill=\"outline\" (click)=\"reject()\">\r\n {{popUpNoActionLabel}}\r\n </ion-button>\r\n\r\n <ion-button shape=\"round\" *ngIf=\"popUpYesActionLabel\" size=\"small\" type=\"submit\" fill=\"solid\" (click)=\"accept()\">\r\n {{popUpYesActionLabel}}\r\n </ion-button>\r\n\r\n </ng-template>\r\n </p-dialog>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!forScreenQuestionnaire\" class=\"form-label\">\r\n <label [attr.for]=\"question.name\" *ngIf=\"question.indent===1 && question.type!='html' && question.type!='hidden' && question.type!='label'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.indent===1 && question.type!='html' && question.type!='hidden' && question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.customTag && (question.customTag!='component' || (question.customTag=='component' && showLabelForCustomComponent())) && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='label' && question.type!='simplecheckbox'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && !question.customTag && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag==='component' && question.type!='html' && !question.description\">\r\n <app-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-employer-grid>\r\n\r\n <app-offline-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-offline-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-offline-employer-grid>\r\n\r\n <app-legal-disclaimar *ngIf=\"question.componentName==='app-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-legal-disclaimar>\r\n\r\n <app-offline-legal-disclaimar *ngIf=\"question.componentName==='app-offline-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-offline-legal-disclaimar>\r\n\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\" [componentData]=\"question.componentData\" ></money-expect>\r\n <app-captcha [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-captcha'\"></app-captcha>\r\n\r\n <app-file-uploader [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-file-uploader'\">\r\n </app-file-uploader>\r\n <app-address [formControlName]=\"question.name\" [fromPopup]=\"false\" [countyRequired]=\"question.countyRequired\" [questionaireForm]=\"questionaireForm\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\" [componentData]=\"question.componentData\"\r\n [diffMailAddress]=\"(form?.controls['diffMailingAddress']?.value === 'Y') || (form?.controls['diffmailaddress']?.value === 'Y')? true : false\"\r\n [enableAddressValidation]=\"isAddressValidationEnabled\" > </app-address>\r\n <!-- <app-address-suggestion *ngIf=\"showAddressSuggestion\"></app-address-suggestion> -->\r\n <app-job-title [formControlName]=\"question.name\" [isRequired]=\"question.isRequired\"\r\n *ngIf=\"question.componentName==='app-job-title'\" > </app-job-title> \r\n \r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n\r\n <app-offline-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-offline-bank-details'\" #bankdtls>\r\n </app-offline-bank-details>\r\n\r\n <app-requalify-lift-previous-issues *ngIf=\"question.componentName==='app-requalify-lift-previous-issues'\"\r\n [formControlName]=\"question.name\" [componentData]=\"question.componentData\" [form]=\"form\" [question]=\"question\">\r\n </app-requalify-lift-previous-issues> \r\n <app-dependent-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-dependent-grid'\"></app-dependent-grid>\r\n <app-weekly-cert-employer-grid #wcEmployerGrid [form]=\"form\" [dynamicParam]=\"dynamicParam\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-weekly-cert-employer-grid'\"></app-weekly-cert-employer-grid>\r\n <app-search-employer [formControlName]=\"question.name\" empType=\"REG\" (onFound)=\"setEmployer($event)\" \r\n (onEmpty)=\"resetEmployer()\" *ngIf=\"question.componentName==='app-search-employer'\"></app-search-employer>\r\n <app-add-participant [formControlName]=\"question.name\" [dynamicParam]=\"dynamicParam\" *ngIf=\"question.componentName==='app-add-participant'\"> </app-add-participant>\r\n <app-add-payment [potentialIssueId]=\"potentialIssueId\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-payment'\"></app-add-payment>\r\n <app-link [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-link'\" [text]=\"linkComponentData?.text\" [uri]=\"linkComponentData?.uri\" [externalUrl]=\"linkComponentData?.externalUrl\"></app-link>\r\n <app-sign-ssn [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sign-ssn'\" [inputId]=\"question.name\"></app-sign-ssn>\r\n <app-employer-pay-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-pay-grid'\"></app-employer-pay-grid>\r\n <app-sms [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sms'\" [question]=\"question\" [form]=\"form\"\r\n (accepted)=\"onAcceptedOtp($event)\"></app-sms>\r\n <app-farm-usage [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-farm-usage'\"></app-farm-usage>\r\n <app-wage-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-wage-grid'\"></app-wage-grid>\r\n <app-gross-earnings [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-gross-earnings'\"></app-gross-earnings>\r\n <app-scrollable-text [componentData]=\"question.componentData\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-scrollable-text'\"></app-scrollable-text>\r\n <app-employer-info [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-info'\"></app-employer-info>\r\n <app-idme [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-idme'\"></app-idme>\r\n <app-wage-calculator [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-wage-calculator'\"></app-wage-calculator>\r\n </div>\r\n\r\n <div *ngIf=\"question.indent!=1 && question.type!='html' && question.type!='label' && question.type!='hidden'\" class=\"form-label\" [ngStyle]=\"setStyle(question.indent)\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.type==='html'\" style=\"display: flex;\">\r\n <div [innerHTML]=\"question.html | dynamicTranslate:dynamicParam | trustHtml\"\r\n style=\"color:var(--ion-color-medium-gray); padding-top: 20px;\" class=\"heading\">\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:13px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div [ngSwitch]=\"question.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div *ngIf=\"question.inputType && question.inputType==='date'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2099\" [showIcon]=\"true\" [minDate]=\"showMinDate ? minDate : null\"\r\n [maxDate]=\"showMaxDate ? maxDate : null\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"999-99-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"999-99-9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [type]=\"type\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='custommask'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [type]=\"type\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ean'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"99-99999-9-99\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"99-99999-9-99\" [value]=\"81-00586-0-01\" (onComplete)=\"validate(question)\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='dueamt'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber [inputId]=\"question.name\" [formControlName]=\"question.name\" mode=\"decimal\" locale=\"en-US\"\r\n [minFractionDigits]=\"2\" [ariaLabel]=\"question.title\"></p-inputNumber>\r\n </div>\r\n\r\n\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && (!question.customTag || question.customTag==='Optional') && !question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\"\r\n [maxLength]=\"question.maxLength\" [placeholder]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [placeholder]=\" (question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [placeholder]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" />\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [placeholder]=\"(question.placeholder || question.placeholder === '') ? question.placeholder:'Optional'\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n \r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" \r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && question.customTag && !question.customTag.includes('phone')\"\r\n [ngStyle]=\"{'padding-left.px': question.indent*10}\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone')\">\r\n <p-inputMask mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : 'Optional'\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel=\"Weak password\" \r\n mediumLabel=\"Weak password\" strongLabel=\"Strong password\" strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_@*$!#.]+.*[_@*$!#.])(?=.{14,})\" [ariaLabel]=\"question.title\">\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Password must include at least</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">1 lowercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 uppercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 number</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isSameSymbolPolicyForClaimantAndAgency\">1 of the following characters <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isSameSymbolPolicyForClaimantAndAgency\">2 of the following characters <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isNewPasswordPolicyEnabledForClaimant\">8 characters</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isNewPasswordPolicyEnabledForClaimant\">14 characters</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Suggestion</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your name, email or phone</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your kid, partner or pet name.</li>\r\n </ul>\r\n </ng-template>\r\n </p-password>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('fileupload')\">\r\n <app-file-uploader [allowedFileType]=\"question.allowedFileType\" [formControlName]=\"question.name\"\r\n [maxSizeInMB]=\"question.sizeInMB\" [multiple]=\"question.multiple\" [noOfFilesToUpload]=\"question.noOFFiles\" [attr.aria-label]=\"question.title\">\r\n </app-file-uploader>\r\n </div>\r\n\r\n <!--Email Address-->\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password'\r\n && question.customTag!='custommask')\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" \r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && !question.customTag\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"question.size\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"!question.size\" pInputText [formControlName]=\"question.name\" \r\n [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n <!-- </ion-col>\r\n <ion-col size=\"1\" *ngIf=\"question.description\" style=\"padding-top: 12px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row> -->\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'comment'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.maxLength\" style=\"display: flex; align-items: center;\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\"\r\n [maxLength]=\"question.maxLength\" [rows]=\"3\" [cols]=\"35\" [attr.aria-label]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 3px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\" style=\"display: flex; align-items: center;\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\" [rows]=\"3\"\r\n [cols]=\"35\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 3px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-autoComplete *ngIf=\"false\" [formControlName]=\"question.name\" [suggestions]=\"filterResult\" appendTo=\"body\"\r\n (completeMethod)=\"filterValue($event,question)\" field=\"text\" [dropdown]=\"true\" minLength=\"1\"\r\n [forceSelection]=\"true\" (onSelect)=\"onSelect($event,question.name)\" [completeOnFocus]=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.text}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <app-dropdown [options]=\"filterResult\" [formControlName]=\"question.name\" optionLabel=\"text\" appendTo=\"body\"\r\n (onChange)=\"onSelect($event,question.name)\" [autoDisplayFirst]=\"false\" (onClick)=\"filterValue($event,question)\" [inputId]=\"question.name\"\r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></app-dropdown>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radiogroup' \">\r\n\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"onRadioOptionClick($event,question)\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\"\r\n [min]=\"minValue\" [max]=\"maxValue\"\r\n [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"currency\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" currency=\"USD\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" \r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"formgroup-inline\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multicheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'singleselectcheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\" [attr.aria-label]=\"question.title\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'simplecheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox binary=\"true\" inputId=\"binary\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n <label for=\"binary\">{{question.title}}</label>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top: 3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'displaytextaslabel'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{getText(form.controls[question.name].value)}}</label>\r\n <input type=\"hidden\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{question.title}}</label>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-overlay'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [displayAsLabel]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-link'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-popup'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [labelWithPopup]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container class=\"responsive\" *ngSwitchCase=\"'panel'\">\r\n <ion-row>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL1' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\" class=\"col-fit-content\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL2' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.type!='panel'\">\r\n <small class=\"p-error\" *ngIf=\"isValid!=''\" [@rowExpansionTrigger]=\"'active'\">{{isValid | dynamicTranslate:dynamicParam}}</small>\r\n </div>\r\n</div>", styles: [".form-label{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox{padding:6px 0;width:-webkit-fill-available}.p-dropdown{display:inline-flex;min-width:185px}.p-calendar .p-inputtext{max-width:134px}:host ::ng-deep .p-dropdown{display:inline-flex;min-width:110px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}\n"] }]
2208
- }], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.DomSanitizer }, { type: i9.LoginService }, { type: i10.AddressValidationService }, { type: i6.ModalController }], { question: [{
2476
+ args: [{ selector: 'app-question', changeDetection: ChangeDetectionStrategy.Default, animations: [rowExpansionTrigger], template: "<div [formGroup]=\"form\" [id]=\"'question-div-' + question.name\">\r\n <p-dialog *ngIf=\"displayPosition\" [(visible)]=\"displayPosition\" [position]=\"position\"\r\n [modal]=\"true\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" [attr.aria-label]=\"question.title\">\r\n\r\n <h4 class=\"heading ion-padding-left\">\r\n {{popUpHeader}}\r\n </h4>\r\n <p>{{popUpText}}\r\n </p>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" *ngIf=\"popUpNoActionLabel\" size=\"small\" type=\"submit\" fill=\"outline\" (click)=\"reject()\">\r\n {{popUpNoActionLabel}}\r\n </ion-button>\r\n\r\n <ion-button shape=\"round\" *ngIf=\"popUpYesActionLabel\" size=\"small\" type=\"submit\" fill=\"solid\" (click)=\"accept()\">\r\n {{popUpYesActionLabel}}\r\n </ion-button>\r\n\r\n </ng-template>\r\n </p-dialog>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!forScreenQuestionnaire\" class=\"form-label\">\r\n <label [attr.for]=\"question.name\" *ngIf=\"question.indent===1 && question.type!='html' && question.type!='hidden' && question.type!='label'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.indent===1 && question.type!='html' && question.type!='hidden' && question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.customTag && (question.customTag!='component' || (question.customTag=='component' && showLabelForCustomComponent())) && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='label' && question.type!='simplecheckbox'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && !question.customTag && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag==='component' && question.type!='html' && !question.description\">\r\n <app-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-employer-grid>\r\n <app-legal-disclaimar *ngIf=\"question.componentName==='app-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-legal-disclaimar>\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\"></money-expect>\r\n <app-captcha [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-captcha'\"></app-captcha>\r\n\r\n <app-file-uploader [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-file-uploader'\">\r\n </app-file-uploader>\r\n <app-address [formControlName]=\"question.name\" [fromPopup]=\"false\" [countyRequired]=\"question.countyRequired\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\"> </app-address>\r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n <app-requalify-lift-previous-issues *ngIf=\"question.componentName==='app-requalify-lift-previous-issues'\"\r\n [formControlName]=\"question.name\" [componentData]=\"question.componentData\" [form]=\"form\" >\r\n </app-requalify-lift-previous-issues> \r\n <app-dependent-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-dependent-grid'\"></app-dependent-grid>\r\n <app-weekly-cert-employer-grid #wcEmployerGrid [dynamicParam]=\"dynamicParam\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-weekly-cert-employer-grid'\"></app-weekly-cert-employer-grid>\r\n <app-search-employer [formControlName]=\"question.name\" empType=\"REG\" (onFound)=\"setEmployer($event)\" \r\n (onEmpty)=\"resetEmployer()\" *ngIf=\"question.componentName==='app-search-employer'\"></app-search-employer>\r\n <app-add-participant [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-participant'\"> </app-add-participant>\r\n <app-add-payment [potentialIssueId]=\"potentialIssueId\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-payment'\"></app-add-payment>\r\n <app-link [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-link'\" [text]=\"linkComponentData?.text\" [uri]=\"linkComponentData?.uri\" [externalUrl]=\"linkComponentData?.externalUrl\"></app-link>\r\n <app-sign-ssn [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sign-ssn'\" [inputId]=\"question.name\"></app-sign-ssn>\r\n <app-job-title [control]=\"form.controls[question.name]\" *ngIf=\"question.componentName==='app-job-title'\" #jobTitle> </app-job-title>\r\n </div>\r\n\r\n <div *ngIf=\"question.indent!=1 && question.type!='html' && question.type!='label' && question.type!='hidden'\" class=\"form-label\" [ngStyle]=\"setStyle(question.indent)\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.type==='html'\" style=\"display: flex;\">\r\n <div [innerHTML]=\"question.html | dynamicTranslate:dynamicParam | trustHtml\"\r\n style=\"color:var(--ion-color-medium-gray); padding-top: 20px;\" class=\"heading\">\r\n </div>\r\n <div *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:13px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div [ngSwitch]=\"question.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name!='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2099\" [showIcon]=\"true\" [minDate]=\"showMinDate ? minDate : null\"\r\n [maxDate]=\"showMaxDate ? maxDate : null\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name==='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" [showIcon]=\"true\" [minDate]=\"minDateDOB\"\r\n [maxDate]=\"maxDateDOB\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"blurDOB(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n \r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" [class.hide-content]=\"maskClass\" mask=\"999-99-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"999-99-9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ean'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" mask=\"99-99999-9-99\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"99-99999-9-99\" [value]=\"81-00586-0-01\" (onComplete)=\"validate(question)\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='dueamt'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber [inputId]=\"question.name\" [formControlName]=\"question.name\" mode=\"decimal\" locale=\"en-US\"\r\n [minFractionDigits]=\"2\" [ariaLabel]=\"question.title\"></p-inputNumber>\r\n </div>\r\n\r\n\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && (!question.customTag || question.customTag==='Optional') && !question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\"\r\n [maxLength]=\"question.maxLength\" placeholder='{{\"common.optional\" | translate}}' [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" placeholder='{{\"common.optional\" | translate}}'\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n placeholder='{{\"common.optional\" | translate}}' [id]=\"question.name\" pInputText [formControlName]=\"question.name\" />\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" placeholder='{{\"common.optional\" | translate}}' [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && !checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" \r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\" [autocomplete]=\"question?.name.includes('secAns')?'off': 'on'\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n </div>\r\n\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('firstName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('lastName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && question.customTag && !question.customTag.includes('phone')\"\r\n [ngStyle]=\"{'padding-left.px': question.indent*10}\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && !checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : ('common.optional' | translate)\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999 999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999 999-9999' : ('common.optional' | translate)\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n \r\n <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel='{{\"common.password.weak\" | translate}}'\r\n mediumLabel='{{\"common.password.weak\" | translate}}' strongLabel='{{\"common.password.strong\" | translate}}' strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])\" [ariaLabel]=\"question.title\">\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">{{\"common.password.must.include\" | translate}}</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.uppercase\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.lowercase\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.one.number\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.two.mentioned.char\" | translate}} <b>_ &#64; * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.forteen.chars\" | translate}}</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">{{\"common.password.suggestion.header\" | translate}}</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.name.email.phone\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.kid.partner.pet\" | translate}}</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">{{\"common.password.suggestion.name.or.userid\" | translate}}</li>\r\n </ul>\r\n </ng-template>\r\n </p-password>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('fileupload')\">\r\n <app-file-uploader [allowedFileType]=\"question.allowedFileType\" [formControlName]=\"question.name\"\r\n [maxSizeInMB]=\"question.sizeInMB\" [multiple]=\"question.multiple\" [noOfFilesToUpload]=\"question.noOFFiles\" [attr.aria-label]=\"question.title\">\r\n </app-file-uploader>\r\n </div>\r\n\r\n <!--Email Address-->\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='firstName' && question.customTag!='lastName' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [disabled]=\"true\"\r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n </div>\r\n <div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && !checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && !question.customTag\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"question.size\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"!question.size\" pInputText [formControlName]=\"question.name\" \r\n [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n <!-- </ion-col>\r\n <ion-col size=\"1\" *ngIf=\"question.description\" style=\"padding-top: 12px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row> -->\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'comment'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\"\r\n [maxLength]=\"question.maxLength\" [rows]=\"3\" [cols]=\"35\" [attr.aria-label]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\" [rows]=\"3\"\r\n [cols]=\"35\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-autoComplete *ngIf=\"false\" [formControlName]=\"question.name\" [suggestions]=\"filterResult\" appendTo=\"body\"\r\n (completeMethod)=\"filterValue($event,question)\" field=\"text\" [dropdown]=\"true\" minLength=\"1\"\r\n [forceSelection]=\"true\" (onSelect)=\"onSelect($event,question.name)\" [completeOnFocus]=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.text}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <app-dropdown [options]=\"filterResult\" [formControlName]=\"question.name\" optionLabel=\"text\" appendTo=\"body\"\r\n (onChange)=\"onSelect($event,question.name)\" [autoDisplayFirst]=\"false\" (onClick)=\"filterValue($event,question)\" [inputId]=\"question.name\"\r\n [ariaLabel]=\"question.title\"></app-dropdown>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radiogroup'\">\r\n\r\n <div class=\"container\"> \r\n <div class=\"shared-row\" *ngIf=\"question.name && question.name!='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"onRadioOptionClick($event,question)\"></p-selectButton>\r\n </div>\r\n <div *ngIf=\"question.description\" >\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"question.name && question.name==='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"generateOtpForNewUserCreation($event,form)\"></p-selectButton>\r\n </div>\r\n <app-mfa2 *ngIf=\"isOtpModalEnabled\" [display]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [(form)]=\"form\" (success)=\"enableFields()\"></app-mfa2>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\"\r\n [min]=\"minValue\" [max]=\"maxValue\"\r\n [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"currency\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" currency=\"USD\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" \r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"formgroup-inline\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multicheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'singleselectcheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\" [attr.aria-label]=\"question.title\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'simplecheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox binary=\"true\" inputId=\"binary\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n <label for=\"binary\">{{question.title}}</label>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top: 3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'displaytextaslabel'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{getText(form.controls[question.name].value)}}</label>\r\n <input type=\"hidden\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{question.title}}</label>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-overlay'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [displayAsLabel]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-link'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-popup'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [labelWithPopup]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container class=\"responsive\" *ngSwitchCase=\"'panel'\">\r\n <ion-row>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL1' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\" class=\"col-fit-content\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL2' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.type!='panel'\">\r\n <small class=\"p-error\" *ngIf=\"isValid!=''\" [@rowExpansionTrigger]=\"'active'\">{{isValid | dynamicTranslate:dynamicParam}}</small>\r\n </div>\r\n</div>", styles: [".form-label{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox{padding:6px 0;width:-webkit-fill-available}.p-dropdown{display:inline-flex;min-width:185px}.p-calendar .p-inputtext{max-width:134px}:host ::ng-deep .p-dropdown{display:inline-flex;min-width:185px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}.hide-content{position:relative;display:inline-block}.hide-content:after{content:\"***-**\";position:absolute;left:9px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row{display:flex;column-gap:15px}\n"] }]
2477
+ }], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.ClaimantService }, { type: i9.WeeklyCertServiceV2 }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i10.LoginService }], { question: [{
2209
2478
  type: Input
2210
2479
  }], form: [{
2211
2480
  type: Input
@@ -2217,8 +2486,6 @@ export class DynamicFormQuestionComponent {
2217
2486
  type: Input
2218
2487
  }], potentialIssueId: [{
2219
2488
  type: Input
2220
- }], questionaireForm: [{
2221
- type: Input
2222
2489
  }], onDynamicParamUpdate: [{
2223
2490
  type: Output
2224
2491
  }], bankdtls: [{
@@ -2230,9 +2497,9 @@ export class DynamicFormQuestionComponent {
2230
2497
  }], wcEmployerGrid: [{
2231
2498
  type: ViewChild,
2232
2499
  args: ['wcEmployerGrid']
2233
- }], jobTitle: [{
2500
+ }], pCalendar: [{
2234
2501
  type: ViewChild,
2235
- args: ['jobTitle']
2502
+ args: ['pCalendar']
2236
2503
  }] }); })();
2237
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 68 }); })();
2238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFVN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNibkQsc0NBQWtIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQy9HLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDJEQUNGOzs7O0lBRUEsc0NBQWlIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDREQUNGOzs7SUFOQSxxSEFFYSx3R0FBQTs7O0lBRmMsaURBQXdCO0lBSXhCLGVBQXlCO0lBQXpCLGtEQUF5Qjs7Ozs7O0lBYnhELG1DQUV1STtJQUZyRyw0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cUI7WUFBckIsc0NBQXFCO1lBUXJCLGVBQWtDO1lBQWxDLG1EQUFrQztZQUtsQyxlQUErQjtZQUEvQixnREFBK0I7WUFLL0IsZUFBZ0M7WUFBaEMsaURBQWdDO1lBTWIsZUFBcUI7WUFBckIsc0NBQXFCO1lBNkJiLGVBQTRCO1lBQTVCLG1EQUE0Qjs2cEJEaGE1RCxDQUFDLG1CQUFtQixDQUFDOztpRkFHdEIsNEJBQTRCO2NBUnhDLFNBQVM7MkJBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxPQUFPLGNBQ3BDLENBQUMsbUJBQW1CLENBQUM7a1dBSXhCLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNJLG9CQUFvQjtrQkFBN0IsTUFBTTtZQWdDZ0IsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBQ0ksU0FBUztrQkFBakMsWUFBWTttQkFBQyxTQUFTO1lBQ00sY0FBYztrQkFBMUMsU0FBUzttQkFBQyxnQkFBZ0I7WUFDSixRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7O2tGQTNDViw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9saW5rL2xpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdGb3JtLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRWxlbWVudHNNb2RlbCc7XG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XG5pbXBvcnQgeyBTZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1NlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1ZhbGlkYXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBDaG9pY2VzLCBRdWVzdGlvbkNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvTG9hZGVyTW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFua0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0JztcbmltcG9ydCB7IHJvd0V4cGFuc2lvblRyaWdnZXIgfSBmcm9tICcuLi8uLi9hbm5pbWF0aW9ucy9hcHAtYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZC93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBKb2JUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL2pvYi10aXRsZS9qb2ItdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uUmVxdWVzdENvbXBvbmVudE1vZGVsIGFzIEFkZHJSZXF9IGZyb20gJy4uLy4uL21vZGVscy9hZGRyZXNzVmFsaWRhdGlvbi9BZGRyZXNzVmFsaWRhdGlvblJlcXVlc3RDb21wb25lbnRNb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvblJlc3BvbnNlQ29tcG9uZW50TW9kZWwgYXMgQWRkclJlc30gZnJvbSAnLi4vLi4vbW9kZWxzL2FkZHJlc3NWYWxpZGF0aW9uL0FkZHJlc3NWYWxpZGF0aW9uUmVzcG9uc2VDb21wb25lbnRNb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzUmVjb21tZW5kYXRpb25Nb2RlbCBhcyBBZGRyUmVjfSBmcm9tICcuLi8uLi9tb2RlbHMvYWRkcmVzc1ZhbGlkYXRpb24vQWRkcmVzc1JlY29tbWVuZGF0aW9uTW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWRkcmVzcy12YWxpZGF0aW9uLXNlcnZpY2UvYWRkcmVzcy12YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRkcmVzc1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy1wb3B1cC9hZGRyZXNzLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5cbmludGVyZmFjZSBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsIHtcbiAgb3JpZ2luYWxWYWx1ZUNvbnRyb2w6IHN0cmluZztcbiAgZm9ybUNvbnRyb2xUb1VwZGF0ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwge1xuICBhZGRyZXNzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIGVtcGxveWVySWRGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1pbk1heERhdGVNb2RlbCB7XG4gIG1pbkRhdGVLZXk6IHN0cmluZztcbiAgbWF4RGF0ZUtleTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTWluTWF4VmFsdWVNb2RlbCB7XG4gIG1pblZhbHVlOiBzdHJpbmc7XG4gIG1heFZhbHVlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBMaW5rQ29tcG9uZW50TW9kZWwge1xuICB1cmk6IHN0cmluZztcbiAgZXh0ZXJuYWxVcmw6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcXVlc3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVF1ZXN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IEVsZW1lbnRzTW9kZWw7XG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGluZGV4TnVtYmVyOiBudW1iZXI7XG4gIEBJbnB1dCgpIGZvclNjcmVlblF1ZXN0aW9ubmFpcmU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbTogYW55O1xuICBASW5wdXQoKSBwb3RlbnRpYWxJc3N1ZUlkOiBudW1iZXI7XG4gIEBJbnB1dCgpIHF1ZXN0aW9uYWlyZUZvcm07XG4gIEBPdXRwdXQoKSBvbkR5bmFtaWNQYXJhbVVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkID0gTGliQ29uc3RhbnRzLmlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkID09ICd0cnVlJztcbiAgcHVibGljIGlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yQ2xhaW1hbnQgPSBMaWJDb25zdGFudHMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JDbGFpbWFudCA9PSAndHJ1ZSc7XG4gIHB1YmxpYyBpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckVtcGxveWVyID0gTGliQ29uc3RhbnRzLmlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yRW1wbG95ZXIgPT0gJ3RydWUnO1xuICBwdWJsaWMgaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3kgPSBMaWJDb25zdGFudHMuaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3kgPT0gJ3RydWUnO1xuICBwdWJsaWMgaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPSBMaWJDb25zdGFudHMuaXNBZGRyZXNzVmFsaWRhdGlvbkVuYWJsZWQgPT0gJ3RydWUnO1xuICBcbiAgZmlsdGVyUmVzdWx0OiBhbnlbXTtcbiAgbWluRGF0ZTogRGF0ZTtcbiAgbGVnYWxBY2NlcHRlZDogYm9vbGVhbiA9IG51bGw7XG4gIE90cENvbXBsZXRlZDogYm9vbGVhbiA9IG51bGw7XG4gIG1heERhdGU6IERhdGU7XG4gIGluZGV4OiBudW1iZXIgPSAxO1xuICByZXR1cm5Nb2RlbCA9IG5ldyBWYWxpZGF0aW9uTW9kZWwoKTtcbiAgZGlzcGxheVBvc2l0aW9uOiBib29sZWFuO1xuICBwb3NpdGlvbjogc3RyaW5nO1xuICBwb3BVcEhlYWRlcjogc3RyaW5nO1xuICBwb3BVcFRleHQ6IHN0cmluZztcbiAgcG9wVXBZZXNBY3Rpb25MYWJlbDogc3RyaW5nO1xuICBwb3BVcE5vQWN0aW9uTGFiZWw6IHN0cmluZztcbiAgdHlwZSA9ICd0ZXh0JztcbiAgc2hvd01pbkRhdGUgOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dNYXhEYXRlIDogYm9vbGVhbiA9IGZhbHNlO1xuICBtaW5WYWx1ZSA9IG51bGw7XG4gIG1heFZhbHVlID0gbnVsbDtcbiAgdGQgPSBudWxsO1xuICBhbHBSbmQgPSAnWHNQanhXbCdcbiAgdmFybiA9IDM3MDQzO1xuICBzdGF0dXNDaGFuZ2VMaXN0ZW5lckFkZGVkOiBib29sZWFuO1xuICBzaG93QWRkcmVzc1N1Z2dlc3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdiYW5rZHRscycpIGJhbmtkdGxzOiBCYW5rRGV0YWlsc0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZHJlbignYWRkcmVzcycpIGFkZHJlc3NlczogUXVlcnlMaXN0PEFkZHJlc3NDb21wb25lbnQ+O1xuICBAVmlld0NoaWxkKCd3Y0VtcGxveWVyR3JpZCcpIHdjRW1wbG95ZXJHcmlkOiBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdqb2JUaXRsZScpIGpvYlRpdGxlOiBKb2JUaXRsZUNvbXBvbmVudDtcblxuICBsaW5rQ29tcG9uZW50RGF0YSA6IExpbmtDb21wb25lbnRNb2RlbDtcbiAgXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxY3M6IFF1ZXN0aW9uQ29udHJvbFNlcnZpY2UsIHB1YmxpYyBzZXJ2aWNlOiBRdWVzdGlvblNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsIFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwdWJsaWMgc2FuaXRpemVyIDogRG9tU2FuaXRpemVyLCBwdWJsaWMgbG9naW5TZXJ2aWNlOiBMb2dpblNlcnZpY2UsICAgIHByaXZhdGUgYWRkclN2YyAgOiBBZGRyZXNzVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbEN0cmw6IE1vZGFsQ29udHJvbGxlcikge1xuXG4gIH1cblxuXG4gIHZpc2libGVJZihzdHJFeHA6IHN0cmluZywgZWxlbWVudE5hbWU6IHN0cmluZykge1xuXG4gICAgaWYgKCFzdHJFeHApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpZiAoc3RyRXhwLmluY2x1ZGVzKCcmJicpKSB7XG4gICAgICBsZXQgZXhwcjogc3RyaW5nW10gPSBzdHJFeHAuc3BsaXQoJyYmJyk7XG4gICAgICBpc1Zpc2libGUgPSB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzBdKSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzFdKVxuICAgICAgaWYoZXhwci5sZW5ndGggPj0gMyl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzJdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPj0gNCl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzNdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPT0gNSl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSAmJiB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzRdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPiA1KXtcbiAgICAgICAgICB0aHJvdyBcIkFwcFZhbGlkYXRvcnMgOiBNb3JlIHRoYW4gNSAnJiYnIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkLlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3RyRXhwLmluY2x1ZGVzKCd8fCcpKSB7XG4gICAgICBsZXQgZXhwcjogc3RyaW5nW10gPSBzdHJFeHAuc3BsaXQoJ3x8Jyk7XG4gICAgICBpc1Zpc2libGUgPSB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzBdKSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzFdKVxuICAgICAgaWYoZXhwci5sZW5ndGggPj0gMyl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzJdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPj0gNCl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzNdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPT0gNSl7XG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzRdKVxuICAgICAgfVxuICAgICAgaWYoZXhwci5sZW5ndGggPiA1KXtcbiAgICAgICAgICB0aHJvdyBcIkFwcFZhbGlkYXRvcnMgOiBNb3JlIHRoYW4gNSAnfHwnIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkLlwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIHJldHVybiBpc1Zpc2libGU7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKGVsZW1lbnROYW1lLCBudWxsKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjYWxjdWxhdGVPcGVyYW5kVmFsdWUoc3RyRXhwOiBzdHJpbmcpIHtcbiAgICB2YXIgc3BsaXRBcnJheTogc3RyaW5nW107XG4gICAgbGV0IGlzRG9lc05vdEVxdWFsOiBib29sZWFuO1xuICAgIGxldCBpbmRleDogbnVtYmVyID0gc3RyRXhwLmluZGV4T2YoJyE9Jyk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgc3BsaXRBcnJheSA9IHN0ckV4cC5zcGxpdCgnPT0nKTtcbiAgICAgIGlzRG9lc05vdEVxdWFsID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNwbGl0QXJyYXkgPSBzdHJFeHAuc3BsaXQoJyE9Jyk7XG4gICAgICBpc0RvZXNOb3RFcXVhbCA9IHRydWU7XG4gICAgfVxuICAgIGxldCBvcGVyYW5kMTogc3RyaW5nID0gc3BsaXRBcnJheVswXTtcbiAgICBsZXQgb3BlcmFuZDI6IHN0cmluZyA9IHNwbGl0QXJyYXlbMV07XG4gICAgb3BlcmFuZDEgPSBvcGVyYW5kMS5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJykudHJpbSgpOyAvL2NsYWltYW50UHJpb3JQYXkxMDIgZGlmZm1haWxhZGRyZXNzMzE1XG4gICAgb3BlcmFuZDIgPSBvcGVyYW5kMi5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJykudHJpbSgpOyAvL251bGwgXG4gICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0pIHtcbiAgICAgIHZhciB2YWx1ZU9mQ25ydHJsVG9DaGVjaztcblxuICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgJiYgdHlwZW9mICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdKS52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPSB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAmJiB0eXBlb2YgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0pLnZhbHVlICE9ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID0gdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZVsndmFsdWUnXTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wZXJhbmQyID09PSAnbnVsbCcgJiYgaXNEb2VzTm90RXF1YWwgJiYgdmFsdWVPZkNucnRybFRvQ2hlY2spIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAob3BlcmFuZDIgPT09ICdudWxsJyAmJiAhaXNEb2VzTm90RXF1YWwgJiYgIXZhbHVlT2ZDbnJ0cmxUb0NoZWNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgb3BlcmFuZDIgPSBvcGVyYW5kMi5yZXBsYWNlKCdcXCcnLCAnJykucmVwbGFjZSgnXFwnJywgJycpLnRyaW0oKTsgLy9udWxsXG5cbiAgICAgIGlmIChvcGVyYW5kMiAhPSAnbnVsbCcgJiYgIWlzRG9lc05vdEVxdWFsICYmICh2YWx1ZU9mQ25ydHJsVG9DaGVjayA9PT0gb3BlcmFuZDIpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3BlcmFuZDIgIT0gJ251bGwnICYmIGlzRG9lc05vdEVxdWFsICYmICh2YWx1ZU9mQ25ydHJsVG9DaGVjayAhPSBvcGVyYW5kMikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbHRlclJlc3VsdCA9IHRoaXMucXVlc3Rpb24uY2hvaWNlcztcbiAgICB0aGlzLnNldE1pbk1heERhdGUoKTtcbiAgICB0aGlzLnNldE1pbk1heFZhbHVlKCk7XG4gICAgdGhpcy5zZXREZWZhdWx0VmFsdWUoKTtcbiAgICB0aGlzLnNldExpbmtDb21wb25lbnREYXRhKCk7XG4gIH1cblxuICBzZXRMaW5rQ29tcG9uZW50RGF0YSgpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgPT0gJ2FwcC1saW5rJyl7XG4gICAgICB0aGlzLmxpbmtDb21wb25lbnREYXRhID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBzaG93TGFiZWxGb3JDdXN0b21Db21wb25lbnQoKSB7XG4gICAgbGV0IHBhcnNlZERhdGEgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkgOiBudWxsO1xuICAgIHJldHVybiBwYXJzZWREYXRhPy5zaG93TGFiZWwgPT0gJ1knO1xuICB9XG5cbiAgc2V0TWluTWF4VmFsdWUoKSB7XG4gICAgIGlmICh0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdudW1iZXInIHx8IHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2RlY2ltYWwnIHx8IHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2N1cnJlbmN5Jykge1xuICAgICAgbGV0IG1pbk1heE1vZGVsIDogTWluTWF4VmFsdWVNb2RlbCA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSA6IG51bGw7XG4gICAgICBpZihtaW5NYXhNb2RlbCl7XG4gICAgICAgIGlmKG1pbk1heE1vZGVsLm1pblZhbHVlKXtcbiAgICAgICAgICB0aGlzLm1pblZhbHVlID0gbWluTWF4TW9kZWwubWluVmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYobWluTWF4TW9kZWwubWF4VmFsdWUpe1xuICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBtaW5NYXhNb2RlbC5tYXhWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gIH1cblxuICBzZXRNaW5NYXhEYXRlKCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICBsZXQgbWluTWF4TW9kZWwgOiBNaW5NYXhEYXRlTW9kZWwgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkgOiBudWxsO1xuICAgICAgaWYobWluTWF4TW9kZWwgJiYgKG1pbk1heE1vZGVsLm1heERhdGVLZXkgfHwgbWluTWF4TW9kZWwubWluRGF0ZUtleSkpe1xuICAgICAgICBpZih0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5taW5EYXRlS2V5XSl7XG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWluRGF0ZUtleV0sICdtaW4nKTtcbiAgICAgICAgICB0aGlzLnNob3dNaW5EYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZih0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5tYXhEYXRlS2V5XSl7XG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWF4RGF0ZUtleV0sICdtYXgnKTtcbiAgICAgICAgICB0aGlzLnNob3dNYXhEYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNle1xuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5taW4pIHtcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLnF1ZXN0aW9uLm1pbiwgJ21pbicpXG4gICAgICAgICAgdGhpcy5zaG93TWluRGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24ubWF4KSB7XG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5xdWVzdGlvbi5tYXgsICdtYXgnKVxuICAgICAgICAgIHRoaXMuc2hvd01heERhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhcnNlRGF0ZShzdHJEYXRlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IERhdGUge1xuICAgIGlmIChzdHJEYXRlICYmIHR5cGUgPT09ICdtYXgnKSB7XG4gICAgICB2YXIgc3BsaXRBcnJheSA9IHN0ckRhdGUuc3BsaXQoJy0nKTtcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICB0aGlzLm1heERhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XG4gICAgICB0aGlzLm1heERhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XG4gICAgICByZXR1cm4gdGhpcy5tYXhEYXRlO1xuICAgIH1cblxuICAgIGlmIChzdHJEYXRlICYmIHR5cGUgPT09ICdtaW4nKSB7XG4gICAgICB2YXIgc3BsaXRBcnJheSA9IHN0ckRhdGUuc3BsaXQoJy0nKTtcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICB0aGlzLm1pbkRhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XG4gICAgICB0aGlzLm1pbkRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcbiAgICAgIHRoaXMubWluRGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XG4gICAgICByZXR1cm4gdGhpcy5taW5EYXRlO1xuICAgIH1cbiAgfVxuXG5cbiAgc2V0U3R5bGUoaW5kZW50OiBudW1iZXIpOiBvYmplY3Qge1xuICAgIC8vbGV0IHBhZGRpbmcgPSBpbmRlbnQgPD0gMSA/ICcwIHB4JyA6IGluZGVudCAqIDAgKyAncHgnO1xuICAgIGxldCBwYWRkaW5nID0gJzAgcHgnO1xuICAgIGxldCBzdHlsZU9iaiA9IHtcbiAgICAgICdwYWRkaW5nLWxlZnQnOiBwYWRkaW5nXG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcbiAgfVxuXG4gIHNldE1hcmdpbihtYXJnaW46IG51bWJlcik6IG9iamVjdCB7XG4gICAgbGV0IG1hciA9IG1hcmdpbiArICdweCc7XG4gICAgbGV0IHN0eWxlT2JqID0ge1xuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hclxuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdHlsZU9iaik7XG4gIH1cblxuICBnZXQgaXNWYWxpZCgpIHtcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcbiAgICBsZXQgcXVlc3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLnR5cGU7XG4gICAgaWYgKCdodG1sJyA9PT0gcXVlc3Rpb25UeXBlIHx8ICdsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fCAnc2ltcGxlTGFiZWwnID09PSBxdWVzdGlvblR5cGUgfHwgJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSBcbiAgICAgICAgfHwgKCdidXR0b24nID09PSBxdWVzdGlvblR5cGUgJiYgIXRoaXMucXVlc3Rpb24udmFsaWRhdG9ycyAmJiB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1zaWduLXNzbicgJiYgdGhpcy5xdWVzdGlvbi5jb21wb25lbnROYW1lICE9ICdhcHAtbGluaycpIFxuICAgICAgICB8fCAnbGFiZWwtd2l0aC1vdmVybGF5JyA9PT0gcXVlc3Rpb25UeXBlKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnJlcXVpcmVkXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZEVycm9yVGV4dDtcbiAgICB9XG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm1heGxlbmd0aCAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/Lm1heExlbmd0aCcsIHRoaXMucXVlc3Rpb24pXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgaWYgKHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZSAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3RleHQnICYmIHZhbGlkYXRvci5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGF0dGVyblxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnZXJyb3JzPy5wYXR0ZXJuJyx0aGlzLnF1ZXN0aW9uKVxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcblxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZSAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3JlZ2V4Jykge1xuICAgICAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gbWVzc2FnZTtcblxuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uZGF0ZUNvbXBhcmlzaW9uXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCh2YWxpZGF0b3IgPT4ge1xuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XG4gICAgICAgICAgLy8gICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnR5cGUubWlubGVuZ3RoICcsIHZhbGlkYXRvci50eXBlKVxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2V4cHJlc3Npb24nKSB7XG4gICAgICAgICAgICAvLyAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5taW5sZW5ndGhcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICAvL3RoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnBhc3N3b3JkQ29tcGFyaXNpb25cbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICAvLyAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnJlcXVpcmVkSWZcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBcInJlcXVpcmVkXCI7XG5cbiAgICB9XG5cblxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJwRW1wbHJGbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgaWYodGhpcy51dGlsLmlzU3RhdGUoJ01TJykpXG4gICAgICB7XG4gICAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkVudGVyIGRldGFpbHMgb3IgZGVsZXRlIGVhY2ggZW1wbG95ZXIocykgdG8gY29udGludWVcIjtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIGVsc2V7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJDb25maXJtIG9yIERlbGV0ZSBlYWNoIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5zaW1wbGVDaGVja0JveFZhbGlkYXRpb25GbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwicmVxdWlyZWRcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uY3BhdGNodmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy51cGxvYWR2YWxpZGF0aW9uRmxhZ1xuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcInJlcXVpcmVkXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJwRW1wbHJMZW5ndGhGbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiQWRkIHByZXZpb3VzIGVtcGxveW1lbnQgZGV0YWlsc1wiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYWRkcmVzc1ZhbGlkYXRpb25GbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBhZGRyZXNzLlwiO1xuICAgICAgdGhpcy5hZGRyZXNzZXMuZm9yRWFjaChhZGRyZXNzID0+IGFkZHJlc3Muc3VibWl0KCkpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5iYW5rRGV0YWlsc1ZhbGlkYXRpb25GbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBiYW5rIGRldGFpbHMuXCI7XG4gICAgICB0aGlzLmJhbmtkdGxzPy5zdWJtaXQoKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uam9iVGl0bGVGbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwicmVxdWlyZWRcIjtcbiAgICAgIHRoaXMuam9iVGl0bGU/LnN1Ym1pdCgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy53Y0VtcGxveWVyVmFsaWRhdGlvblxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlVwZGF0ZSBlbXBsb3llcihzKSB0byBjb250aW51ZVwiO1xuICAgICAgdGhpcy53Y0VtcGxveWVyR3JpZD8uc3VibWl0KCk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJSZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBlbXBsb3llciBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjUmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy53Y1BhcnRpYWxDbGFpbUVtcGxveW1lbnRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gbnVsbDtcbiAgICAgIGlmKHRoaXMubG9naW5TZXJ2aWNlLmlzQ3NyKCkpe1xuICAgICAgICBtZXNzYWdlID0gXCJWZXJpZnkgZW1wbG95bWVudC4gVGhlIGxhc3QgZGF5IHdvcmtlZCBvbiB0aGUgYXBwbGljYXRpb24gaXMgZHVyaW5nIHRoZSB3ZWVrIG9yIGVtcGxveW1lbnQgZGV0YWlscyB3ZXJlIG9uIHRoZSBwcmlvciB3ZWVrLiBJZiBjbGFpbWFudCBkaWQgbm90IHdvcmsgc2VsZWN0IE5leHQgdG8gY29udGludWUuXCI7XG4gICAgICB9IGVsc2UgaWYodGhpcy5sb2dpblNlcnZpY2UuaXNDbGFpbWFudCgpKXtcbiAgICAgICAgbWVzc2FnZSA9IFwiRGlkIHlvdSB3b3JrIGR1cmluZyB0aGUgd2Vlaz8gSWYgeWVzLCBwcm92aWRlIHlvdXIgZW1wbG95bWVudCBkZXRhaWxzLiBJZiBubywgcGxlYXNlIGNhbGwgdXMgYXQgNjAxLTQ5My05NDI3LCBNb25kYXkgdGhyb3VnaCBGcmlkYXkgZnJvbSA4OjAwIEFNIHRvIDU6MDAgUE0gZm9yIGFzc2lzdGFuY2UuXCI7XG4gICAgICB9XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRGVwZW5kZW50UmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJBZGQgZGVwZW5kZW50IGRldGFpbHNcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NFbXBsb3llclBheW1lbnRJbmZvUmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJBZGQgZW1wbG95ZXIgcGF5bWVudCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnJlbXVuZXJhdGlvblBheW1lbnRJbmZvUmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJBZGQgcmVtdW5lcmF0aW9uIHBheW1lbnQgZGV0YWlsc1wiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH0gICBcbiAgICBcbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uZ3Jvc3NFYXJuaW5nc0luZm9SZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBob3VycyB3b3JrZWQgZGV0YWlsc1wiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH0gICBcblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5ub3RFcXVhbHNcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdjdXN0b212YWxpZGF0aW9uJykge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmF0TGVhc3RPbmVcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdjdXN0b212YWxpZGF0aW9uJykge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmlzR3JlYXRlckRhdGVcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdjdXN0b212YWxpZGF0aW9uJykge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ21lc3NhZ2UgZnJvbSBwYW5lbCBvdXRlci0tICcsbWVzc2FnZSk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICBvbkFjY2VwdGVkT3RwKGFncmVlZCA6IGJvb2xlYW4pe1xuICAgICB0aGlzLk90cENvbXBsZXRlZCA9IGFncmVlZDtcbiAgfVxuICBvbkFjY2VwdGVkKGFncmVlZDogYm9vbGVhbikge1xuICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ29uQWNjZXB0ZWQgY2FsbGVkJyxhZ3JlZWQpO1xuICAgIHRoaXMubGVnYWxBY2NlcHRlZCA9IGFncmVlZDtcbiAgfVxuXG4gIG9uQ29tcGxldGVSZXF1YWxpZnkocmVxdWFsaWZ5RGF0YTogVW50eXBlZEZvcm1Hcm91cCl7XG5cbiAgICAvL3RoaXMubG9nZ2VyLmRlYnVnKFwib25Db21wbGV0ZVJlcXVhbGlmeVwiLCByZXF1YWxpZnlEYXRhKTtcbiAgfVxuXG4gIG9uTW9kZWxEaXNwbGF5KG1vZGVsRGlzcGxheTogYm9vbGVhbikge1xuICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ21vZGVsRGlzcGxheSBjYWxsZWQnLG1vZGVsRGlzcGxheSk7XG4gIH1cblxuICBvblJhZGlvT3B0aW9uQ2xpY2soZXZlbnQsIGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSAmJiBlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG4gICAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7XG4gICAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7XG4gICAgICBjb25zdCBvcHRpb25zID0gZXZlbnQub3B0aW9uLnZhbHVlID8geyBwYXJhbXM6IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdzZWxlY3Rpb24nLCBldmVudC5vcHRpb24udmFsdWUpIH0gOiB7fTtcbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2VcbiAgICAgICAgICAuZ2V0KGAke3NlcnZpY2VOYW1lfWAsIG9wdGlvbnMpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgIGxldCB2YWx1ZXM6IFNlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsID0gcmVzO1xuICAgICAgICAgICAgICBpZiAodmFsdWVzLnN1Y2Nlc3MgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcodmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgICAgICAgICAvL3RoaXMubG9nZ2VyLmRlYnVnKHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcyAmJiB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGVcbiAgICAgICAgICAgICAgICAgICYmIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xuICAgICAgICAgICAgICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9IHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlQ2FsbFR5cGU7XG4gICAgICAgICAgICAgICAgICBsZXQgc2VydmljZU5hbWVJblRydWU6IHN0cmluZyA9IHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlTmFtZTtcbiAgICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGVJblRydWUgPT09ICdHRVQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGAke3NlcnZpY2VOYW1lSW5UcnVlfWApXG4gICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9hZGVyTW9kZWw6IExvYWRlck1vZGVsID0gcmVzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiIHZhbHVlIGZyb20gbG9hZGVyID0gXCIsIGxvYWRlck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGb3JtVmFsdWVzKGxvYWRlck1vZGVsLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycnAgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnJlc2V0KCk7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzZXRGb3JtVmFsdWVzKGRhdGEpIHtcbiAgICBPYmplY3Qua2V5cyhkYXRhKVxuICAgICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbGV0IHZhbHVlVG9TZXQgPSBkYXRhW2tleV07XG4gICAgICAgIHRoaXMuc2V0VmFsdWVJbkZvcm1Db250cm9sKGtleSwgdmFsdWVUb1NldCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNldFZhbHVlSW5Gb3JtQ29udHJvbChuYW1lLCB2YWx1ZSkge1xuICAgIGxldCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW25hbWVdO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdObyBmb3JtIGNvbnRyb2wgcHJlc2VudCB3aXRoIG5hbWUgJywgbmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyVmFsdWUoZXZlbnQsIGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnY2hvaWNlcy0tJyxjaG9pY2VzKTtcblxuICAgIGxldCBjaG9pY2VzOiBhbnlbXSA9IFtdO1xuXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuXG5cbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSAmJiBlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG5cbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFBhcmFtID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFBhcmFtOyAvL3NzbjMyMCxsc3RuYW1lMzIwXG4gICAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7ICAvL1wiR0VUXCJcbiAgICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTsgLy8vc2VjdXJpdHktc2VydmljZS92YWxpZGF0ZVNTTi9cbiAgICAgIGxldCBzZXJ2aWNlVXBkYXRlUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VVcGRhdGVQYXJhbTtcblxuICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ0dFVCcpIHtcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZVxuICAgICAgICAgIC5nZXQoYCR7c2VydmljZU5hbWV9YClcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKHJlczphbnkpID0+IHtcbiAgICAgICAgICAgICAgY2hvaWNlcyA9IHJlcztcbiAgICAgICAgICAgICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XG4gICAgICAgICAgICAgIC8vbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBjaG9pY2VzO1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5maWx0ZXJSZXN1bHQxMjMtLScsIHRoaXMuZmlsdGVyUmVzdWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICxcbiAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgIGNob2ljZXMgPSBlbGVtZW50LmNob2ljZXM7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IGNvdW50cnkgPSBjaG9pY2VzW2ldO1xuICAgICAgICAvL2lmIChjb3VudHJ5LnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgZmlsdGVyZWQucHVzaChjb3VudHJ5KTtcbiAgICAgICAgLy99XG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlclJlc3VsdCA9IGZpbHRlcmVkO1xuICAgIH1cblxuICB9XG5cbiAgb25TZWxlY3QoZXZlbnQsIGNudHJsTmFtZTogc3RyaW5nKSB7XG4gIH1cblxuXG4gIC8vVGhpcyBzaG91ZCBiZSBzaW1pbGlyYSB0byBtZXRob2QgcHJlc2VudCBpbiBwYW5lbFxuICB2YWxpZGF0ZShlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XG5cdFxuXHRcbiAgICBpZiAoIWVsZW1lbnQuc2VydmljZU5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2VydmljZVR5cGUgPSBlbGVtZW50LnNlcnZpY2VUeXBlO1xuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG5cbiAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxuICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTsgIC8vXCJHRVRcIlxuICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTsgLy8vc2VjdXJpdHktc2VydmljZS92YWxpZGF0ZVNTTi9cbiAgICBsZXQgc2VydmljZVVwZGF0ZVBhcmFtID0gZWxlbWVudC5zZXJ2aWNlVXBkYXRlUGFyYW07XG4gICAgbGV0IGFsbFZhbHVlUHJlc2VudDogQm9vbGVhbiA9IHRydWU7XG4gICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXJ2aWNlQ2FsbFBhcmFtJyxzZXJ2aWNlQ2FsbFBhcmFtKTtcbiAgICBpZiAoc2VydmljZUNhbGxQYXJhbSkge1xuICAgICAgdmFyIHNwbGl0dGVkID0gc2VydmljZUNhbGxQYXJhbS5zcGxpdChcIixcIik7XG4gICAgICBsZXQgdmFsdWVBcnI6IHN0cmluZ1tdID0gW107XG4gICAgICBsZXQgcGFyYW1BcnI6IHN0cmluZ1tdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vdXNlIGkgaW5zdGVhZCBvZiAwIGRvYjMyMFxuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnZG9iMzIwJyx0aGlzLmZvcm0uY29udHJvbHNbJ2RvYjMyMCddLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpIHtcbiAgICAgICAgICBwYXJhbUFyci5wdXNoKHNwbGl0dGVkW2ldKTtcbiAgICAgICAgICB2YWx1ZUFyci5wdXNoKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWxsVmFsdWVQcmVzZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWx1ZUFycjEyJywgdmFsdWVBcnIsICdwYXJhbUFycjExICcsIHBhcmFtQXJyLCAnIGVsZW1lbnQnLCBlbGVtZW50KTtcblxuICAgICAgdmFyIG1vZGVsOiBWYWxpZGF0aW9uTW9kZWwgPSB7fTtcbiAgICAgIG1vZGVsLnBhcmFtTmFtZSA9IHBhcmFtQXJyO1xuICAgICAgbW9kZWwucGFyYW1WYWx1ZSA9IHZhbHVlQXJyO1xuICAgICAgLy8gcmV0dXJuIHRoaXMucG9zdChgcXVlc3Rpb25uYWlyZS9zY3JlZW4tcXVlc3Rpb25uYWlyZWAsIHF1ZXN0aW9ubmFpcmVEYXRhKTtcbiAgICAgIGlmIChhbGxWYWx1ZVByZXNlbnQpIHtcbiAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ1BPU1QnKSB7XG4gICAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAucG9zdChgJHtzZXJ2aWNlTmFtZX1gLCBtb2RlbClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbCA9IHJlcztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlICYmIHRoaXMucmV0dXJuTW9kZWwucmV0dXJuVHlwZSA9PT0gJ1BPUFVQJykge1xuXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwSGVhZGVyID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcEhlYWRlcjtcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXBUZXh0ID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcFRleHQ7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwWWVzQWN0aW9uTGFiZWwgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwWWVzQnV0dG9uTGFiZWw7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwTm9BY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBOb0J1dHRvbkxhYmVsO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnJldHVybk1vZGVsICcsIHRoaXMucmV0dXJuTW9kZWwpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLFxuICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBhZnRlciBzZWxlY3RpbmcgYnV0dG9uIGZyb20gYWN0aW9uIGxhYmVsXG4gICAqICAgICAgICAgICAgICBlbmNyeXB0cyBwYXJhbWV0ZXIgdmFsdWVzIGZvciBVUkwgdXNpbmcgYmFzZTY0IGVuY29kaW5nIGFuZCBYT1IgdXNpbmcgcmFuZG9tIGtleSBcbiAgICoqL1xuICBhY2NlcHQoKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FjY2VwdCBjYWxsZWQxMjMnLCB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXIpXG4gICAgbGV0IHBhcmFtQXJyYXk6IFBhcmFtc1tdID0gW107XG4gICAgaWYgKHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcikge1xuICAgICAgbGV0IG1vZGVsQXJyOiBLZXlWYWx1ZU1vZGVsW10gPSB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXI7XG4gICAgICB0aGlzLnRkID0gdGhpcy51dGlsLmdlbmVyYXRlUmFuZG9tS2V5KCk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndnhrJywgYnRvYShidG9hKHRoaXMuYWxwUm5kICsgKHRoaXMudGQpLnRvU3RyaW5nKCkgKyAodGhpcy52YXJuKS50b1N0cmluZygpKSkpO1xuICAgICAgZm9yICh2YXIgdmFsIG9mIG1vZGVsQXJyKSB7XG4gICAgICAgIHBhcmFtQXJyYXkucHVzaCh7IFt0aGlzLnV0aWwueG9yRW5jcnlwdCh2YWwua2V5LCB0aGlzLnRkKV06IFxuICAgICAgICB0aGlzLnV0aWwueG9yRW5jcnlwdCh2YWwudmFsdWUsIHRoaXMudGQpIH0pO1xuICAgICAgfVxuICAgICAgbGV0IHBhcmFtcyA9IHBhcmFtQXJyYXkucmVkdWNlKChhcnJPYmosIGl0ZW0pID0+IE9iamVjdC5hc3NpZ24oYXJyT2JqLCBpdGVtLCB7fSkpO1xuICAgICAgLy90aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290V2l0aERhdGEodGhpcy5nZXRDb250ZXh0Um9vdCgpLCB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwgcGFyYW1zLCB0aGlzLm5hdkNvbnRyb2xsZXIpXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCB7IHF1ZXJ5UGFyYW1zOiBwYXJhbXN9KVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24gJiYgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24uc3Vic3RyaW5nKDAsIDQpICE9ICcvY3AvJykge1xuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcbiAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCAnX3NlbGYnKTtcbiAgICB9XG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcbiAgfVxuXG4gIHJlamVjdCgpIHtcbiAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiAmJiB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uLnN1YnN0cmluZygwLCA0KSAhPSAnL2NwLycpIHtcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW3RoaXMucmV0dXJuTW9kZWwubm9BY3Rpb25dKTtcbiAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24sICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbnRleHRSb290KCkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDAsIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKFwiL1wiLCAyKSk7XG4gIH1cblxuICB1cGxvYWRGaWxlKGV2OiBhbnkpIHtcblxuICB9XG5cbiAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIGR5bmFtaWNQYXJhbTogYW55KSB7XG4gICAgaWYgKCFkeW5hbWljUGFyYW0pIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgbGV0IGR5bmFtaWNPYmogPSB7fTtcblxuICAgIGxldCBwYXJhbTogS2V5VmFsdWVNb2RlbDtcbiAgICBsZXQgcGFyYW1zOiBLZXlWYWx1ZU1vZGVsW107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShkeW5hbWljUGFyYW0pKSB7XG4gICAgICBwYXJhbXMgPSBkeW5hbWljUGFyYW07XG4gICAgICBwYXJhbXMuZm9yRWFjaChwcm0gPT4ge1xuICAgICAgICBkeW5hbWljT2JqW3BybS5rZXldID0gcHJtLnZhbHVlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtID0gZHluYW1pY1BhcmFtO1xuICAgICAgZHluYW1pY09ialtwYXJhbS5rZXldID0gcGFyYW0udmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGUudXNlKCdlbicpO1xuICAgIGxldCB0cmFuc2xhdGVkU3RyaW5nOiBTdHJpbmcgPSBcIlwiO1xuICAgIHRoaXMudHJhbnNsYXRlLnNldChcbiAgICAgIGtleSwga2V5KTtcbiAgICB0cmFuc2xhdGVkU3RyaW5nID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgIGtleSwgT2JqZWN0LmFzc2lnbihkeW5hbWljT2JqKSk7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZWRTdHJpbmc7XG4gIH1cblxuICBnZXRUZXh0KG9iamVjdCkge1xuICAgIHJldHVybiBvYmplY3Q/LnRleHQgPyBvYmplY3Q/LnRleHQgOiBvYmplY3Q7XG4gIH1cblxuICB1bm1hc2soZXZlbnQpIHtcbiAgICB0aGlzLnR5cGUgPSAndGV4dCc7XG4gIH1cblxuICBtYXNrKGV2ZW50KSB7XG4gICAgdGhpcy50eXBlID0gJ3Bhc3N3b3JkJztcbiAgfVxuXG4gIGRhdGVJbnB1dChldmVudCkge1xuICAgIGxldCBjdXJyZW50VmFsdWU6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XG4gICAgaWYgKGN1cnJlbnRWYWx1ZSkge1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJykge1xuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JWYWx1ZUNoYW5nZShldmVudCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcbiAgICAgIGxldCBjb21wRGF0YTogVmFsdWVDaGFuZ2VDb21wb25lbnRNb2RlbCA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKTtcbiAgICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEub3JpZ2luYWxWYWx1ZUNvbnRyb2wpPy52YWx1ZTtcbiAgICAgIGxldCBmb3JtQ29udHJvbFRvVXBkYXRlOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmZvcm1Db250cm9sVG9VcGRhdGUpO1xuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdOJylcbiAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRoaXMuZHluYW1pY1BhcmFtID0gdGhpcy5keW5hbWljUGFyYW0gPyB0aGlzLmR5bmFtaWNQYXJhbSA6IFtdO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5keW5hbWljUGFyYW0pKSB7XG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLnB1c2goeyBrZXk6IHRoaXMucXVlc3Rpb24ubmFtZSwgdmFsdWU6IGN1cnJlbnRWYWx1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtW3RoaXMucXVlc3Rpb24ubmFtZV0gPSBjdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAoY3VycmVudFZhbHVlICE9IG9yaWdpbmFsVmFsdWUpIHtcbiAgICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdZJyk7XG4gICAgICAgIHRoaXMub25EeW5hbWljUGFyYW1VcGRhdGUuZW1pdCh0aGlzLmR5bmFtaWNQYXJhbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKVxuICAgICAgfVxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xuICAgICAgbGV0IGNvbXBEYXRhOiBFbXBsb3llckFkZHJlc3NVcGRhdGVNb2RlbCA9IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKTtcbiAgICAgIGxldCBhZGRyZXNzRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEuYWRkcmVzc0Zvcm1Db250cm9sTmFtZSk7XG4gICAgICBsZXQgZW1wSWRGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5lbXBsb3llcklkRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGVtcElkRmMuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJJZCA/IGVtcGxveWVyLmVtcGxveWVySWQgOiBcIi0xXCIpO1xuICAgICAgYWRkcmVzc0ZjLnNldFZhbHVlKHtcbiAgICAgICAgY291bnRyeTogZW1wbG95ZXIuY291bnRyeSwgY2l0eTogZW1wbG95ZXIuY2l0eVxuICAgICAgICAsIHppcDogZW1wbG95ZXIuemlwLCBzdHJlZXRBZGRyZXNzOiBlbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCwgc3RhdGU6IGVtcGxveWVyLnN0YXRlLFxuICAgICAgICBvcHRpb25hbEFkZHJlc3M6IG51bGwsIGNvdW50eTogbnVsbCwgdG93bjogbnVsbFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRFbXBsb3llcigpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpO1xuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZW1wSWRGYy5zZXRWYWx1ZShcIi0xXCIpO1xuICAgICAgYWRkcmVzc0ZjLnNldFZhbHVlKHtcbiAgICAgICAgY291bnRyeTogbnVsbCwgY2l0eTogbnVsbFxuICAgICAgICAsIHppcDogbnVsbCwgc3RyZWV0QWRkcmVzczogbnVsbCwgc3RhdGU6IG51bGwsXG4gICAgICAgIG9wdGlvbmFsQWRkcmVzczogbnVsbCwgY291bnR5OiBudWxsLCB0b3duOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRGb3JtQ29udHJvbFZhbHVlKGVsZW1lbnROYW1lLCBlbGVtZW50VmFsdWUpIHtcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnROYW1lXSkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnROYW1lXS5wYXRjaFZhbHVlKGVsZW1lbnRWYWx1ZSk7XG4gICAgfVxuICB9XG4gIFxuICBzZXREZWZhdWx0VmFsdWUoKSB7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5kZWZhdWx0VmFsdWUpe1xuICAgICAgbGV0IHZhbHVlID0gdGhpcy5xdWVzdGlvbi5kZWZhdWx0VmFsdWU7XG4gICAgICBpZih0aGlzLnF1ZXN0aW9uLnR5cGUgPT0gJ2Ryb3Bkb3duJyl7XG4gICAgICAgIGNvbnN0IGNob2ljZTpzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7ICBcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHRoaXMucXVlc3Rpb24ubmFtZSwgdGhpcy5xdWVzdGlvbi5jaG9pY2VzLmZpbHRlcihjID0+IGMudmFsdWUgPT0ganNvbk9iamVjdC52YWx1ZSlbMF0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtQ29udHJvbFZhbHVlKHRoaXMucXVlc3Rpb24ubmFtZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIFtpZF09XCIncXVlc3Rpb24tZGl2LScgKyBxdWVzdGlvbi5uYW1lXCI+XHJcbiAgPHAtZGlhbG9nICpuZ0lmPVwiZGlzcGxheVBvc2l0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5UG9zaXRpb25cIiBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgW21vZGFsXT1cInRydWVcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICB7e3BvcFVwSGVhZGVyfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBvcFVwVGV4dClcIj48L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBOb0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInJlamVjdCgpXCI+XHJcbiAgICAgICAge3twb3BVcE5vQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJwb3BVcFllc0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJhY2NlcHQoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBZZXNBY3Rpb25MYWJlbH19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1kaWFsb2c+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnXCI+XHJcbiAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94JyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIChxdWVzdGlvbi5jdXN0b21UYWchPSdjb21wb25lbnQnIHx8IChxdWVzdGlvbi5jdXN0b21UYWc9PSdjb21wb25lbnQnICYmIHNob3dMYWJlbEZvckN1c3RvbUNvbXBvbmVudCgpKSkgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94J1wiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmICFxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nY29tcG9uZW50JyAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+XHJcbiAgICA8YXBwLWVtcGxveWVyLWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1dPVwiZm9ybVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1ncmlkJ1wiIChtb2RlbERpc3BsYXkpPVwib25Nb2RlbERpc3BsYXkoJGV2ZW50KVwiPjwvYXBwLWVtcGxveWVyLWdyaWQ+XHJcblxyXG4gICAgPGFwcC1vZmZsaW5lLWVtcGxveWVyLWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1dPVwiZm9ybVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCJcclxuICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLW9mZmxpbmUtZW1wbG95ZXItZ3JpZCdcIiAobW9kZWxEaXNwbGF5KT1cIm9uTW9kZWxEaXNwbGF5KCRldmVudClcIj48L2FwcC1vZmZsaW5lLWVtcGxveWVyLWdyaWQ+XHJcblxyXG4gICAgPGFwcC1sZWdhbC1kaXNjbGFpbWFyICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtbGVnYWwtZGlzY2xhaW1hcidcIlxyXG4gICAgICBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgKGFjY2VwdGVkKT1cIm9uQWNjZXB0ZWQoJGV2ZW50KVwiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiIFtmb3JtXT1cImZvcm1cIj5cclxuICAgIDwvYXBwLWxlZ2FsLWRpc2NsYWltYXI+XHJcblxyXG4gICAgPGFwcC1vZmZsaW5lLWxlZ2FsLWRpc2NsYWltYXIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1vZmZsaW5lLWxlZ2FsLWRpc2NsYWltYXInXCJcclxuICAgIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiAoYWNjZXB0ZWQpPVwib25BY2NlcHRlZCgkZXZlbnQpXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPlxyXG4gICAgPC9hcHAtb2ZmbGluZS1sZWdhbC1kaXNjbGFpbWFyPlxyXG5cclxuICAgIDxtb25leS1leHBlY3QgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J21vbmV5LWV4cGVjdCdcIiBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgPjwvbW9uZXktZXhwZWN0PlxyXG4gICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtY2FwdGNoYSdcIj48L2FwcC1jYXB0Y2hhPlxyXG5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWZpbGUtdXBsb2FkZXInXCI+XHJcbiAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgPGFwcC1hZGRyZXNzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtmcm9tUG9wdXBdPVwiZmFsc2VcIiBbY291bnR5UmVxdWlyZWRdPVwicXVlc3Rpb24uY291bnR5UmVxdWlyZWRcIiBbcXVlc3Rpb25haXJlRm9ybV09XCJxdWVzdGlvbmFpcmVGb3JtXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGRyZXNzJ1wiICNhZGRyZXNzIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCJcclxuICAgICAgW2RpZmZNYWlsQWRkcmVzc109XCIoZm9ybT8uY29udHJvbHNbJ2RpZmZNYWlsaW5nQWRkcmVzcyddPy52YWx1ZSA9PT0gJ1knKSB8fCAoZm9ybT8uY29udHJvbHNbJ2RpZmZtYWlsYWRkcmVzcyddPy52YWx1ZSA9PT0gJ1knKT8gdHJ1ZSA6IGZhbHNlXCJcclxuICAgICAgW2VuYWJsZUFkZHJlc3NWYWxpZGF0aW9uXT1cImlzQWRkcmVzc1ZhbGlkYXRpb25FbmFibGVkXCIgPiA8L2FwcC1hZGRyZXNzPlxyXG4gICA8IS0tIDxhcHAtYWRkcmVzcy1zdWdnZXN0aW9uICpuZ0lmPVwic2hvd0FkZHJlc3NTdWdnZXN0aW9uXCI+PC9hcHAtYWRkcmVzcy1zdWdnZXN0aW9uPiAtLT5cclxuICAgIDxhcHAtam9iLXRpdGxlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWpvYi10aXRsZSdcIiA+IDwvYXBwLWpvYi10aXRsZT4gIFxyXG4gICAgXHJcbiAgICA8YXBwLWJhbmstZGV0YWlscyBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWJhbmstZGV0YWlscydcIiAjYmFua2R0bHM+XHJcbiAgICA8L2FwcC1iYW5rLWRldGFpbHM+XHJcblxyXG4gICAgPGFwcC1vZmZsaW5lLWJhbmstZGV0YWlscyBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLW9mZmxpbmUtYmFuay1kZXRhaWxzJ1wiICNiYW5rZHRscz5cclxuICAgIDwvYXBwLW9mZmxpbmUtYmFuay1kZXRhaWxzPlxyXG5cclxuICAgIDxhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzJ1wiXHJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgW2Zvcm1dPVwiZm9ybVwiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiPlxyXG4gICAgPC9hcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzPiBcclxuICAgIDxhcHAtZGVwZW5kZW50LWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1kZXBlbmRlbnQtZ3JpZCdcIj48L2FwcC1kZXBlbmRlbnQtZ3JpZD5cclxuICAgIDxhcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZCAjd2NFbXBsb3llckdyaWQgW2Zvcm1dPVwiZm9ybVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkJ1wiPjwvYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQ+XHJcbiAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiIFxyXG4gICAgKG9uRW1wdHkpPVwicmVzZXRFbXBsb3llcigpXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zZWFyY2gtZW1wbG95ZXInXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgPGFwcC1hZGQtcGFydGljaXBhbnQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZC1wYXJ0aWNpcGFudCdcIj4gPC9hcHAtYWRkLXBhcnRpY2lwYW50PlxyXG4gICAgPGFwcC1hZGQtcGF5bWVudCBbcG90ZW50aWFsSXNzdWVJZF09XCJwb3RlbnRpYWxJc3N1ZUlkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGQtcGF5bWVudCdcIj48L2FwcC1hZGQtcGF5bWVudD5cclxuICAgIDxhcHAtbGluayBbaXNSZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1saW5rJ1wiIFt0ZXh0XT1cImxpbmtDb21wb25lbnREYXRhPy50ZXh0XCIgW3VyaV09XCJsaW5rQ29tcG9uZW50RGF0YT8udXJpXCIgW2V4dGVybmFsVXJsXT1cImxpbmtDb21wb25lbnREYXRhPy5leHRlcm5hbFVybFwiPjwvYXBwLWxpbms+XHJcbiAgICA8YXBwLXNpZ24tc3NuIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNpZ24tc3NuJ1wiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIj48L2FwcC1zaWduLXNzbj5cclxuICAgIDxhcHAtZW1wbG95ZXItcGF5LWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1wYXktZ3JpZCdcIj48L2FwcC1lbXBsb3llci1wYXktZ3JpZD5cclxuICAgIDxhcHAtc21zIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtc21zJ1wiIFtxdWVzdGlvbl09XCJxdWVzdGlvblwiIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgIChhY2NlcHRlZCk9XCJvbkFjY2VwdGVkT3RwKCRldmVudClcIj48L2FwcC1zbXM+XHJcbiAgICA8YXBwLWZhcm0tdXNhZ2UgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1mYXJtLXVzYWdlJ1wiPjwvYXBwLWZhcm0tdXNhZ2U+XHJcbiAgICA8YXBwLXdhZ2UtZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXdhZ2UtZ3JpZCdcIj48L2FwcC13YWdlLWdyaWQ+XHJcbiAgICA8YXBwLWdyb3NzLWVhcm5pbmdzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZ3Jvc3MtZWFybmluZ3MnXCI+PC9hcHAtZ3Jvc3MtZWFybmluZ3M+XHJcbiAgICA8YXBwLXNjcm9sbGFibGUtdGV4dCBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zY3JvbGxhYmxlLXRleHQnXCI+PC9hcHAtc2Nyb2xsYWJsZS10ZXh0PlxyXG4gICAgPGFwcC1lbXBsb3llci1pbmZvIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZW1wbG95ZXItaW5mbydcIj48L2FwcC1lbXBsb3llci1pbmZvPlxyXG4gICAgPGFwcC1pZG1lIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtaWRtZSdcIj48L2FwcC1pZG1lPlxyXG4gICAgPGFwcC13YWdlLWNhbGN1bGF0b3IgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC13YWdlLWNhbGN1bGF0b3InXCI+PC9hcHAtd2FnZS1jYWxjdWxhdG9yPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5kZW50IT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udHlwZT09PSdodG1sJ1wiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgIDxkaXYgIFtpbm5lckhUTUxdPVwicXVlc3Rpb24uaHRtbCB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCJcclxuICAgICAgc3R5bGU9XCJjb2xvcjp2YXIoLS1pb24tY29sb3ItbWVkaXVtLWdyYXkpOyBwYWRkaW5nLXRvcDogMjBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6MTNweFwiPlxyXG4gICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgW25nU3dpdGNoXT1cInF1ZXN0aW9uLnR5cGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J2RhdGUnXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPHAtY2FsZW5kYXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDk5XCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJzaG93TWluRGF0ZSA/IG1pbkRhdGUgOiBudWxsXCJcclxuICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJzaG93TWF4RGF0ZSA/IG1heERhdGUgOiBudWxsXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgYXBwZW5kVG89XCJib2R5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uU2VsZWN0KT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J3NzbidcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OTktOTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5OS05OS05OTk5XCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uRm9jdXMpPVwidW5tYXNrKCRldmVudClcIiAob25CbHVyKT1cIm1hc2soJGV2ZW50KVwiIFt0eXBlXT1cInR5cGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nY3VzdG9tbWFzaydcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OTlcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5OVwiIChvbkNvbXBsZXRlKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIChvbkZvY3VzKT1cInVubWFzaygkZXZlbnQpXCIgKG9uQmx1cik9XCJtYXNrKCRldmVudClcIiBbdHlwZV09XCJ0eXBlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdlYW4nXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTktOTk5OTktOS05OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5LTk5OTk5LTktOTlcIiBbdmFsdWVdPVwiODEtMDA1ODYtMC0wMVwiIChvbkNvbXBsZXRlKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nZHVlYW10J1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgbW9kZT1cImRlY2ltYWxcIiBsb2NhbGU9XCJlbi1VU1wiXHJcbiAgICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgKCFxdWVzdGlvbi5jdXN0b21UYWcgIHx8ICBxdWVzdGlvbi5jdXN0b21UYWc9PT0nT3B0aW9uYWwnKSAmJiAhcXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW3BsYWNlaG9sZGVyXT1cIihxdWVzdGlvbi5wbGFjZWhvbGRlciB8fCBxdWVzdGlvbi5wbGFjZWhvbGRlciA9PT0gJycpID8gcXVlc3Rpb24ucGxhY2Vob2xkZXI6J09wdGlvbmFsJ1wiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiAgW3BsYWNlaG9sZGVyXT1cIiAocXVlc3Rpb24ucGxhY2Vob2xkZXIgfHwgcXVlc3Rpb24ucGxhY2Vob2xkZXIgPT09ICcnKSA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyOidPcHRpb25hbCdcIlxyXG4gICAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIihxdWVzdGlvbi5wbGFjZWhvbGRlciB8fCBxdWVzdGlvbi5wbGFjZWhvbGRlciA9PT0gJycpID8gcXVlc3Rpb24ucGxhY2Vob2xkZXI6J09wdGlvbmFsJ1wiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtwbGFjZWhvbGRlcl09XCIocXVlc3Rpb24ucGxhY2Vob2xkZXIgfHwgcXVlc3Rpb24ucGxhY2Vob2xkZXIgPT09ICcnKSA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyOidPcHRpb25hbCdcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICA8IS0tVXNlciBOYW1lLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBcclxuICAgICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmICAhcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZy1sZWZ0LnB4JzogcXVlc3Rpb24uaW5kZW50KjEwfVwiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWQgPyAnOTk5LTk5OS05OTk5JyA6ICdPcHRpb25hbCdcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcIiAob25CbHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwYXNzd29yZCcpXCI+XHJcbiAgICAgICAgICA8cC1wYXNzd29yZCBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3RvZ2dsZU1hc2tdPVwidHJ1ZVwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgd2Vha0xhYmVsPVwiV2VhayBwYXNzd29yZFwiIFxyXG4gICAgICAgICAgbWVkaXVtTGFiZWw9XCJXZWFrIHBhc3N3b3JkXCIgc3Ryb25nTGFiZWw9XCJTdHJvbmcgcGFzc3dvcmRcIiBzdHJvbmdSZWdleD1cIl4oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipbMC05XSkoPz0uKltfQCokISMuXSsuKltfQCokISMuXSkoPz0uezE0LH0pXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtMVwiIHN0eWxlPVwiZm9udC1zaXplOiBzbWFsbDtcIj5QYXNzd29yZCBtdXN0IGluY2x1ZGUgYXQgbGVhc3Q8L3A+XHJcbiAgICAgICAgICAgICAgPHVsIHN0eWxlPVwibGluZS1oZWlnaHQ6IDEuMjVcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgbG93ZXJjYXNlIGxldHRlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xIHVwcGVyY2FzZSBsZXR0ZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+MSBudW1iZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCIgKm5nSWY9XCIhaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3lcIj4xIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyA8Yj5fICYjNjQ7ICogJCAhICMgLjwvYj48L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCIgKm5nSWY9XCJpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeVwiPjIgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIiAqbmdJZj1cIiFpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50XCI+OCBjaGFyYWN0ZXJzPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiICpuZ0lmPVwiaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JDbGFpbWFudFwiPjE0IGNoYXJhY3RlcnM8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+U3VnZ2VzdGlvbjwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPkRvbid0IHVzZSB5b3VyIG5hbWUsIGVtYWlsIG9yIHBob25lPC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj5Eb24ndCB1c2UgeW91ciBraWQsIHBhcnRuZXIgb3IgcGV0IG5hbWUuPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1wYXNzd29yZD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2ZpbGV1cGxvYWQnKVwiPlxyXG4gICAgICAgICAgPGFwcC1maWxlLXVwbG9hZGVyIFthbGxvd2VkRmlsZVR5cGVdPVwicXVlc3Rpb24uYWxsb3dlZEZpbGVUeXBlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgW21heFNpemVJbk1CXT1cInF1ZXN0aW9uLnNpemVJbk1CXCIgW211bHRpcGxlXT1cInF1ZXN0aW9uLm11bHRpcGxlXCIgW25vT2ZGaWxlc1RvVXBsb2FkXT1cInF1ZXN0aW9uLm5vT0ZGaWxlc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1FbWFpbCBBZGRyZXNzLS0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIChxdWVzdGlvbi5jdXN0b21UYWchPSdzc24nICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J09wdGlvbmFsJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdmaWxldXBsb2FkJyAgXHJcbiAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bob25lJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZWFuJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZHVlYW10JyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwYXNzd29yZCdcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nY3VzdG9tbWFzaycpXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgKGJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZ1wiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplXCIgIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8L2lvbi1jb2w+XHJcbiAgICAgIDxpb24tY29sIHNpemU9XCIxXCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy10b3A6IDEycHhcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+IC0tPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbW1lbnQnXCI+XHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIGF1dG9SZXNpemU9XCJ0cnVlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW3Jvd3NdPVwiM1wiIFtjb2xzXT1cIjM1XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAzcHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwiIXF1ZXN0aW9uLm1heExlbmd0aFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8dGV4dGFyZWEgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBhdXRvUmVzaXplPVwidHJ1ZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtyb3dzXT1cIjNcIlxyXG4gICAgICAgICAgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogM3B4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Ryb3Bkb3duJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtYXV0b0NvbXBsZXRlICpuZ0lmPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImZpbHRlclZhbHVlKCRldmVudCxxdWVzdGlvbilcIiBmaWVsZD1cInRleHRcIiBbZHJvcGRvd25dPVwidHJ1ZVwiIG1pbkxlbmd0aD1cIjFcIlxyXG4gICAgICAgICAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiIChvblNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQscXVlc3Rpb24ubmFtZSlcIiBbY29tcGxldGVPbkZvY3VzXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XHJcbiAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImZpbHRlclJlc3VsdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAob25DaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LHF1ZXN0aW9uLm5hbWUpXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiAob25DbGljayk9XCJmaWx0ZXJWYWx1ZSgkZXZlbnQscXVlc3Rpb24pXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidyYWRpb2dyb3VwJyBcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG9uT3B0aW9uQ2xpY2spPVwib25SYWRpb09wdGlvbkNsaWNrKCRldmVudCxxdWVzdGlvbilcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImRlY2ltYWxcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFttaW5dPVwibWluVmFsdWVcIiBbbWF4XT1cIm1heFZhbHVlXCJcclxuICAgICAgICAgIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiIFtyZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlY2ltYWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJkZWNpbWFsXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttaW5dPVwibWluVmFsdWVcIiBcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIiBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiAgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3knXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJjdXJyZW5jeVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBcclxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIiBjdXJyZW5jeT1cIlVTRFwiIFttaW5dPVwibWluVmFsdWVcIiBcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIiBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiAgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgXHJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiIFtyZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybWdyb3VwLWlubGluZVwiPlxyXG4gICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCJxdWVzdGlvbi5uYW1lICsgJy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNob2ljZS50ZXh0XCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWUgKyAnLScgKyBjaG9pY2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aWNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCJxdWVzdGlvbi5uYW1lICsgJy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNob2ljZS50ZXh0XCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWUgKyAnLScgKyBjaG9pY2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzaW5nbGVzZWxlY3RjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFttdWx0aXBsZV09ZmFsc2VcclxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzaW1wbGVjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cclxuICAgICAgICAgIDxwLWNoZWNrYm94IGJpbmFyeT1cInRydWVcIiBpbnB1dElkPVwiYmluYXJ5XCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJiaW5hcnlcIj57e3F1ZXN0aW9uLnRpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOiAzcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlzcGxheXRleHRhc2xhYmVsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxsYWJlbD57e2dldFRleHQoZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXS52YWx1ZSl9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGxhYmVsPnt7cXVlc3Rpb24udGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiICBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtkaXNwbGF5QXNMYWJlbF09XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtbGluaydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtsYWJlbFdpdGhMaW5rXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1wb3B1cCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbbGFiZWxXaXRoUG9wdXBdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtsYWJlbFdpdGhMaW5rXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJyZXNwb25zaXZlXCIgKm5nU3dpdGNoQ2FzZT1cIidwYW5lbCdcIj5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBxdWVzdGlvbi5lbGVtZW50c1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiZWxlbWVudC5jb2xFbGVtZW50PT09J0NPTDEnICYmIHZpc2libGVJZihlbGVtZW50LnZpc2libGVJZixlbGVtZW50Lm5hbWUpXCJcclxuICAgICAgICAgICAgICAgIFtzaXplWGxdPVwiZWxlbWVudC5zaXplWExcIiBbc2l6ZUxnXT1cImVsZW1lbnQuc2l6ZUxHXCIgW3NpemVNZF09XCJlbGVtZW50LnNpemVNRFwiXHJcbiAgICAgICAgICAgICAgICBbb2Zmc2V0TWRdPVwiZWxlbWVudC5vZmZTZXRNRFwiIGNsYXNzPVwiY29sLWZpdC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXF1ZXN0aW9uIFtxdWVzdGlvbl09XCJlbGVtZW50XCIgW2Zvcm1dPVwiZm9ybVwiIFtmb3JTY3JlZW5RdWVzdGlvbm5haXJlXT1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgcXVlc3Rpb24uZWxlbWVudHNcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImVsZW1lbnQuY29sRWxlbWVudD09PSdDT0wyJyAmJiB2aXNpYmxlSWYoZWxlbWVudC52aXNpYmxlSWYsZWxlbWVudC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZVhsXT1cImVsZW1lbnQuc2l6ZVhMXCIgW3NpemVMZ109XCJlbGVtZW50LnNpemVMR1wiIFtzaXplTWRdPVwiZWxlbWVudC5zaXplTURcIlxyXG4gICAgICAgICAgICAgICAgW29mZnNldE1kXT1cImVsZW1lbnQub2ZmU2V0TURcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcXVlc3Rpb24gW3F1ZXN0aW9uXT1cImVsZW1lbnRcIiBbZm9ybV09XCJmb3JtXCIgW2ZvclNjcmVlblF1ZXN0aW9ubmFpcmVdPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcXVlc3Rpb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwicXVlc3Rpb24udHlwZSE9J3BhbmVsJ1wiPlxyXG4gICAgPHNtYWxsIGNsYXNzPVwicC1lcnJvclwiICpuZ0lmPVwiaXNWYWxpZCE9JydcIiBbQHJvd0V4cGFuc2lvblRyaWdnZXJdPVwiJ2FjdGl2ZSdcIj57e2lzVmFsaWQgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbX19PC9zbWFsbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
2504
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 60 }); })();
2505
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWxMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQVU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1pyRSxzQ0FBa0g7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDL0csWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsMkRBQ0Y7Ozs7SUFFQSxzQ0FBaUg7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDOUcsWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsNERBQ0Y7OztJQU5BLHFIQUVhLHdHQUFBOzs7SUFGYyxpREFBd0I7SUFJeEIsZUFBeUI7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QTlCLCtDQUE4QjtZQWE5QixlQUFrQztZQUFsQyxtREFBa0M7WUFXbEMsZUFBcUI7WUFBckIsc0NBQXFCO1lBUXJCLGVBQWtDO1lBQWxDLG1EQUFrQztZQUtsQyxlQUErQjtZQUEvQixnREFBK0I7WUFLL0IsZUFBZ0M7WUFBaEMsaURBQWdDO1lBTWIsZUFBcUI7WUFBckIsc0NBQXFCO1lBNkJiLGVBQTRCO1lBQTVCLG1EQUE0QjtzZ0JEOWM3RCw0QkFBNEIsNDVDQUYzQixDQUFDLG1CQUFtQixDQUFDOztpRkFFdEIsNEJBQTRCO2NBUHhDLFNBQVM7MkJBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxPQUFPLGNBQ3BDLENBQUMsbUJBQW1CLENBQUM7bVhBR3hCLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUVJLG9CQUFvQjtrQkFBN0IsTUFBTTtZQXVDZ0IsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBQ0ksU0FBUztrQkFBakMsWUFBWTttQkFBQyxTQUFTO1lBQ00sY0FBYztrQkFBMUMsU0FBUzttQkFBQyxnQkFBZ0I7WUFDSCxTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7O2tGQWxEWCw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRWxlbWVudHNNb2RlbCc7XHJcbmltcG9ydCB7IEtleVZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9LZXlWYWx1ZU1vZGVsJztcclxuaW1wb3J0IHsgU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9TZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1ZhbGlkYXRpb25Nb2RlbCc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENob2ljZXMsIFF1ZXN0aW9uQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuL3F1ZXN0aW9uLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4vcXVlc3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IExvYWRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvTG9hZGVyTW9kZWwnO1xyXG5pbXBvcnQgeyBBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbmtEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFuay1kZXRhaWxzL2JhbmstZGV0YWlscy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0JztcclxuaW1wb3J0IHsgcm93RXhwYW5zaW9uVHJpZ2dlciB9IGZyb20gJy4uLy4uL2FubmltYXRpb25zL2FwcC1hbmltYXRpb25zJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydEVtcGxveWVyR3JpZENvbXBvbmVudCB9IGZyb20gJy4uL3dlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQvd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1zZXJ2aWNlL2NsYWltYW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1dlZWtseUNlcnRTZXJ2aWNlVjJ9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BhcnRpYWxFbXBsb3ltZW50TW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9QYXJ0aWFsRW1wbG95bWVudE1vZGVsJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgVmFsdWVDaGFuZ2VDb21wb25lbnRNb2RlbCB7XHJcbiAgb3JpZ2luYWxWYWx1ZUNvbnRyb2w6IHN0cmluZztcclxuICBmb3JtQ29udHJvbFRvVXBkYXRlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBFbXBsb3llckFkZHJlc3NVcGRhdGVNb2RlbCB7XHJcbiAgYWRkcmVzc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGVtcGxveWVySWRGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIE1pbk1heERhdGVNb2RlbCB7XHJcbiAgbWluRGF0ZUtleTogc3RyaW5nO1xyXG4gIG1heERhdGVLZXk6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIE1pbk1heFZhbHVlTW9kZWwge1xyXG4gIG1pblZhbHVlOiBzdHJpbmc7XHJcbiAgbWF4VmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIExpbmtDb21wb25lbnRNb2RlbCB7XHJcbiAgdXJpOiBzdHJpbmc7XHJcbiAgZXh0ZXJuYWxVcmw6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXF1ZXN0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgYW5pbWF0aW9uczogW3Jvd0V4cGFuc2lvblRyaWdnZXJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1RdWVzdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgcXVlc3Rpb246IEVsZW1lbnRzTW9kZWw7XHJcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBpbmRleE51bWJlcjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGZvclNjcmVlblF1ZXN0aW9ubmFpcmU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZHluYW1pY1BhcmFtOiBhbnk7XHJcbiAgQElucHV0KCkgcG90ZW50aWFsSXNzdWVJZDogbnVtYmVyO1xyXG5cclxuICBAT3V0cHV0KCkgb25EeW5hbWljUGFyYW1VcGRhdGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBmaWx0ZXJSZXN1bHQ6IGFueVtdO1xyXG4gIG1pbkRhdGU6IERhdGU7XHJcbiAgbGVnYWxBY2NlcHRlZDogYm9vbGVhbiA9IG51bGw7XHJcbiAgbWF4RGF0ZTogRGF0ZTtcclxuICBpbmRleDogbnVtYmVyID0gMTtcclxuICByZXR1cm5Nb2RlbCA9IG5ldyBWYWxpZGF0aW9uTW9kZWwoKTtcclxuICBkaXNwbGF5UG9zaXRpb246IGJvb2xlYW47XHJcbiAgcG9zaXRpb246IHN0cmluZztcclxuICBwb3BVcEhlYWRlcjogc3RyaW5nO1xyXG4gIHBvcFVwVGV4dDogc3RyaW5nO1xyXG4gIHBvcFVwWWVzQWN0aW9uTGFiZWw6IHN0cmluZztcclxuICBwb3BVcE5vQWN0aW9uTGFiZWw6IHN0cmluZztcclxuICBtYXNrQ2xhc3MgPSB0cnVlO1xyXG4gIHNob3dNaW5EYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd01heERhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtaW5WYWx1ZSA9IG51bGw7XHJcbiAgbWF4VmFsdWUgPSBudWxsO1xyXG4gIHRvRGF5RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgY3VycmVudGZsb3drZXk6IHN0cmluZztcclxuICByZWdpc3RlckNsYWltYW50RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHBob25lVmVyaWZpZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzRmllbGREaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcGFydEVtcE1vZGVsID0gbmV3IFBhcnRpYWxFbXBsb3ltZW50TW9kZWwoKTtcclxuICBpc090cE1vZGFsRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1JldHVybmluZ1VzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbWluRGF0ZURPQjogRGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0RnVsbFllYXIoKSAtIDEwMCxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldE1vbnRoKCksXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXREYXRlKClcclxuICApO1xyXG4gIG1heERhdGVET0I6IERhdGUgPSBuZXcgRGF0ZShcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldEZ1bGxZZWFyKCkgLSAxMCxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldE1vbnRoKCksXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXREYXRlKClcclxuICApO1xyXG5cclxuICBAVmlld0NoaWxkKCdiYW5rZHRscycpIGJhbmtkdGxzOiBCYW5rRGV0YWlsc0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkcmVuKCdhZGRyZXNzJykgYWRkcmVzc2VzOiBRdWVyeUxpc3Q8QWRkcmVzc0NvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZCgnd2NFbXBsb3llckdyaWQnKSB3Y0VtcGxveWVyR3JpZDogV2Vla2x5Q2VydEVtcGxveWVyR3JpZENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdwQ2FsZW5kYXInKSBwQ2FsZW5kYXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxpbmtDb21wb25lbnREYXRhOiBMaW5rQ29tcG9uZW50TW9kZWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBxY3M6IFF1ZXN0aW9uQ29udHJvbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogUXVlc3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIG5hdkNvbnRyb2xsZXI6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcclxuICAgIHB1YmxpYyBjbGFpbWFudFNlcnZpY2U6IENsYWltYW50U2VydmljZSxcclxuICAgIHB1YmxpYyB3ZWVrbHljZXJ0U2VydmljZTogV2Vla2x5Q2VydFNlcnZpY2VWMixcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgbHM6IExvZ2luU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucENhbGVuZGFyKSB7XHJcbiAgICAgIHRoaXMubW9kaWZ5Q2FsZW5kYXJBdHRyaWJ1dGVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2aXNpYmxlSWYoc3RyRXhwOiBzdHJpbmcsIGVsZW1lbnROYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RyRXhwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmIChzdHJFeHAuaW5jbHVkZXMoJyYmJykpIHtcclxuICAgICAgbGV0IGV4cHI6IHN0cmluZ1tdID0gc3RyRXhwLnNwbGl0KCcmJicpO1xyXG4gICAgICBpc1Zpc2libGUgPVxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMF0pICYmXHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsxXSk7XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSAzKSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMl0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSA0KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbM10pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA9PSA1KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlICYmIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbNF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+IDUpIHtcclxuICAgICAgICB0aHJvdyBcIkFwcFZhbGlkYXRvcnMgOiBNb3JlIHRoYW4gNSAnJiYnIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkLlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoc3RyRXhwLmluY2x1ZGVzKCd8fCcpKSB7XHJcbiAgICAgIGxldCBleHByOiBzdHJpbmdbXSA9IHN0ckV4cC5zcGxpdCgnfHwnKTtcclxuICAgICAgaXNWaXNpYmxlID1cclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzBdKSB8fFxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMV0pO1xyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPj0gMykge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzJdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzNdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPT0gNSkge1xyXG4gICAgICAgIGlzVmlzaWJsZSA9IGlzVmlzaWJsZSB8fCB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzRdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwci5sZW5ndGggPiA1KSB7XHJcbiAgICAgICAgdGhyb3cgXCJBcHBWYWxpZGF0b3JzIDogTW9yZSB0aGFuIDUgJ3x8JyBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1Zpc2libGUpIHtcclxuICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoZWxlbWVudE5hbWUsIG51bGwpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlT3BlcmFuZFZhbHVlKHN0ckV4cDogc3RyaW5nKSB7XHJcbiAgICB2YXIgc3BsaXRBcnJheTogc3RyaW5nW107XHJcbiAgICBsZXQgaXNEb2VzTm90RXF1YWw6IGJvb2xlYW47XHJcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ckV4cC5pbmRleE9mKCchPScpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICBzcGxpdEFycmF5ID0gc3RyRXhwLnNwbGl0KCc9PScpO1xyXG4gICAgICBpc0RvZXNOb3RFcXVhbCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3BsaXRBcnJheSA9IHN0ckV4cC5zcGxpdCgnIT0nKTtcclxuICAgICAgaXNEb2VzTm90RXF1YWwgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IG9wZXJhbmQxOiBzdHJpbmcgPSBzcGxpdEFycmF5WzBdO1xyXG4gICAgbGV0IG9wZXJhbmQyOiBzdHJpbmcgPSBzcGxpdEFycmF5WzFdO1xyXG4gICAgb3BlcmFuZDEgPSBvcGVyYW5kMS5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJykudHJpbSgpOyAvL2NsYWltYW50UHJpb3JQYXkxMDIgZGlmZm1haWxhZGRyZXNzMzE1XHJcbiAgICBvcGVyYW5kMiA9IG9wZXJhbmQyLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKS50cmltKCk7IC8vbnVsbFxyXG4gICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0pIHtcclxuICAgICAgdmFyIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrO1xyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgJiZcclxuICAgICAgICB0eXBlb2YgdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSA9PT0gJ3N0cmluZydcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPSB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAmJlxyXG4gICAgICAgIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICE9ICdzdHJpbmcnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID0gdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZVsndmFsdWUnXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9wZXJhbmQyID09PSAnbnVsbCcgJiYgaXNEb2VzTm90RXF1YWwgJiYgdmFsdWVPZkNucnRybFRvQ2hlY2spIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3BlcmFuZDIgPT09ICdudWxsJyAmJiAhaXNEb2VzTm90RXF1YWwgJiYgIXZhbHVlT2ZDbnJ0cmxUb0NoZWNrKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgb3BlcmFuZDIgPSBvcGVyYW5kMi5yZXBsYWNlKFwiJ1wiLCAnJykucmVwbGFjZShcIidcIiwgJycpLnRyaW0oKTsgLy9udWxsXHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgb3BlcmFuZDIgIT0gJ251bGwnICYmXHJcbiAgICAgICAgIWlzRG9lc05vdEVxdWFsICYmXHJcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPT09IG9wZXJhbmQyXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgb3BlcmFuZDIgIT0gJ251bGwnICYmXHJcbiAgICAgICAgaXNEb2VzTm90RXF1YWwgJiZcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayAhPSBvcGVyYW5kMlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyAgIHRoaXMubG9nZ2VyLmRlYnVnKCdpcyBEeW5hbWljRm9ybVF1ZXN0aW9uQ29tcG9uZW50IG5nT25Jbml0IGNhbGxlZCcsIHRoaXMucXVlc3Rpb24pXHJcbiAgICB0aGlzLmdldFBhcnRpYWxFbXBsb3ltZW50SW5mbygpO1xyXG4gICAgdGhpcy5maWx0ZXJSZXN1bHQgPSB0aGlzLnF1ZXN0aW9uLmNob2ljZXM7XHJcbiAgICB0aGlzLnNldE1pbk1heERhdGUoKTtcclxuICAgIHRoaXMuc2V0TWluTWF4VmFsdWUoKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICB0aGlzLnNldExpbmtDb21wb25lbnREYXRhKCk7XHJcbiAgICBsZXQgY3VycmVudFFlcyA9IHRoaXMuc2VydmljZS5zZWFyY2hCcy5nZXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5jdXJyZW50Zmxvd2tleSA9IGN1cnJlbnRRZXMuZmxvd0tleTtcclxuICAgIGlmKChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZGlzYWJsZUZpZWxkc09uU2lnbnVwJykgPT09ICd0cnVlJykgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmbG93S2V5XCIpID09ICczNDUnKXtcclxuICAgICAgdGhpcy5kaXNhYmxlRmllbGRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrRmxvd0tleSgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRmbG93a2V5ID09PSAncmVnaXN0ZXItY2xhaW1hbnQnKSB7XHJcbiAgICAgIC8vY29uc29sZS5pbmZvKFwiY3VycmVudGZsb3drZXkgXCIsdGhpcy5jdXJyZW50Zmxvd2tleSlcclxuICAgICAgcmV0dXJuICh0aGlzLnJlZ2lzdGVyQ2xhaW1hbnRGbGFnID0gdHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZWdpc3RlckNsYWltYW50RmxhZztcclxuICAgIH1cclxuICB9XHJcbiAgLy8gcGhvbmVOdW1iZXJWZXJpZmllZCgpOiBib29sZWFue1xyXG4gIC8vICAgcmV0dXJuIHRoaXMucGhvbmVWZXJpZmllZCxcclxuICAvLyB9XHJcblxyXG4gIGRpc2FibGVGaWVsZHMoKSB7XHJcbiAgICBpZiAodGhpcy5jaGVja0Zsb3dLZXkoKSkge1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwaG9uZScpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnZW1haWwnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3VzZXJuYW1lJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdwYXNzd29yZCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnY29uZmlybVBhc3N3b3JkJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMScpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMScpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczInKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczInKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMzJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMzJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdyZXNBZHJlc3MnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2RpZmZtYWlsYWRkcmVzcycpLmRpc2FibGUoKTtcclxuICAgICAgLy90aGlzLmZvcm0uZ2V0KCdtYWlsYWRkcmVzcycpLmRpc2FibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVuYWJsZUZpZWxkcygpIHtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczEnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczEnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMyJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMyJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMycpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMycpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgncmVzQWRyZXNzJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdkaWZmbWFpbGFkZHJlc3MnKS5lbmFibGUoKTtcclxuICAgIC8vdGhpcy5mb3JtLmdldCgnbWFpbGFkZHJlc3MnKS5lbmFibGUoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSWZVc2VyRXhpc3QoKSB7XHJcbiAgICAvLyBjb25zb2xlLmluZm8oXCJkb2IgXCIsIHRoaXMuZm9ybS5nZXQoXCJkb2JcIikudmFsdWUpO1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5mb3JtLmdldCgnc3NuJykudmFsdWUgJiZcclxuICAgICAgIXRoaXMuZm9ybS5nZXQoJ2RvYicpLnZhbHVlICYmXHJcbiAgICAgICF0aGlzLmNoZWNrRmxvd0tleSgpXHJcbiAgICApIHtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzc25mcm9tdXNlciA9IHRoaXMuZm9ybS5nZXQoJ3NzbicpLnZhbHVlO1xyXG4gICAgICBsZXQgZGF0ZU9mYmlydGggPSB0aGlzLmZvcm0uZ2V0KCdkb2InKS52YWx1ZTtcclxuICAgICAgLy9jb25zb2xlLmluZm8oXCJ0ZXN0IHdpdGggc3NuZnJvbXVzZXIgXCIsIHNzbmZyb211c2VyKTtcclxuICAgICAgbGV0IGZvcm1hdGVkRCA9IGRhdGVPZmJpcnRoLnJlcGxhY2UoL1xcLy9nLFwiLVwiKTtcclxuICAgICAgaWYoZGF0ZU9mYmlydGggIT0gbnVsbCAmJiBzc25mcm9tdXNlciAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmNsYWltYW50U2VydmljZS5jaGVja0lmVXNlckFscmVhZHlFeGlzdChzc25mcm9tdXNlcixmb3JtYXRlZEQpLnN1YnNjcmliZShcclxuICAgICAgICAgICh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmKHghPW51bGwpe1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZpZWxkcygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuc2V0VmFsdWUoeC50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICBpZiAod2luZG93W1wiZW52XCJdW1wiZW52aXJvbm1lbnRcIl0gPT09IFwia3Nwcm9kXCIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvKipEZWxldGUgdGhlIGVsc2UgYmxvY2sgYWZ0ZXIgdGhlIHdvcmtzaGFyZSB0ZXN0aW5nIGlzIGRvbmUgKi9cclxuICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCgncGhvbmUnKS5kaXNhYmxlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlzYWJsZUZpZWxkcygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuZW5hYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7IFxyXG4gICAgICAgICAgICBpZihlcnIuZXJyb3JDb2RlPT09XCI0MDRcIil7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFBhcnRpYWxFbXBsb3ltZW50SW5mbygpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLm5hbWUgPT09ICd3b3JrUGVyZm9ybWVkJykge1xyXG4gICAgICB0aGlzLndlZWtseWNlcnRTZXJ2aWNlXHJcbiAgICAgICAgLmdldFBhcnRpYWxFbXBsb3ltZW50KClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IFBhcnRpYWxFbXBsb3ltZW50TW9kZWwpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMucGFydGlhbEVtcGxveW1lbnRGbGFnID09PSAnMScpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnZhbHVlW3RoaXMucXVlc3Rpb24ubmFtZV0gPSAnWSc7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmFkZFZhbGlkYXRvcnMoXHJcbiAgICAgICAgICAgICAgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWUgIT09ICdZJyA/IHsgZm9yY2VZZXM6IHRydWUgfSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TGlua0NvbXBvbmVudERhdGEoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnROYW1lID09ICdhcHAtbGluaycpIHtcclxuICAgICAgdGhpcy5saW5rQ29tcG9uZW50RGF0YSA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd0xhYmVsRm9yQ3VzdG9tQ29tcG9uZW50KCkge1xyXG4gICAgbGV0IHBhcnNlZERhdGEgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSlcclxuICAgICAgOiBudWxsO1xyXG4gICAgcmV0dXJuIHBhcnNlZERhdGE/LnNob3dMYWJlbCA9PSAnWSc7XHJcbiAgfVxyXG5cclxuICBzZXRNaW5NYXhWYWx1ZSgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbi50eXBlID09PSAnbnVtYmVyJyB8fFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdkZWNpbWFsJyB8fFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdjdXJyZW5jeSdcclxuICAgICkge1xyXG4gICAgICBsZXQgbWluTWF4TW9kZWw6IE1pbk1heFZhbHVlTW9kZWwgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgICAgaWYgKG1pbk1heE1vZGVsKSB7XHJcbiAgICAgICAgaWYgKG1pbk1heE1vZGVsLm1pblZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLm1pblZhbHVlID0gbWluTWF4TW9kZWwubWluVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtaW5NYXhNb2RlbC5tYXhWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5tYXhWYWx1ZSA9IG1pbk1heE1vZGVsLm1heFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWluTWF4RGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIGxldCBtaW5NYXhNb2RlbDogTWluTWF4RGF0ZU1vZGVsID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICAgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgICAgIGlmIChtaW5NYXhNb2RlbCAmJiAobWluTWF4TW9kZWwubWF4RGF0ZUtleSB8fCBtaW5NYXhNb2RlbC5taW5EYXRlS2V5KSkge1xyXG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5taW5EYXRlS2V5XSkge1xyXG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWluRGF0ZUtleV0sICdtaW4nKTtcclxuICAgICAgICAgIHRoaXMuc2hvd01pbkRhdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWF4RGF0ZUtleV0pIHtcclxuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1heERhdGVLZXldLCAnbWF4Jyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dNYXhEYXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24ubWluKSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLnF1ZXN0aW9uLm1pbiwgJ21pbicpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWluRGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLm1heCkge1xyXG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5xdWVzdGlvbi5tYXgsICdtYXgnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd01heERhdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwYXJzZURhdGUoc3RyRGF0ZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgIGlmIChzdHJEYXRlICYmIHR5cGUgPT09ICdtYXgnKSB7XHJcbiAgICAgIHZhciBzcGxpdEFycmF5ID0gc3RyRGF0ZS5zcGxpdCgnLScpO1xyXG4gICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB0aGlzLm1heERhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoc3BsaXRBcnJheVsyXSkpO1xyXG4gICAgICB0aGlzLm1heERhdGUuc2V0RGF0ZShOdW1iZXIoc3BsaXRBcnJheVsxXSkpO1xyXG4gICAgICByZXR1cm4gdGhpcy5tYXhEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJEYXRlICYmIHR5cGUgPT09ICdtaW4nKSB7XHJcbiAgICAgIHZhciBzcGxpdEFycmF5ID0gc3RyRGF0ZS5zcGxpdCgnLScpO1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB0aGlzLm1pbkRhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XHJcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoc3BsaXRBcnJheVsyXSkpO1xyXG4gICAgICB0aGlzLm1pbkRhdGUuc2V0RGF0ZShOdW1iZXIoc3BsaXRBcnJheVsxXSkpO1xyXG4gICAgICByZXR1cm4gdGhpcy5taW5EYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoaW5kZW50OiBudW1iZXIpOiBvYmplY3Qge1xyXG4gICAgbGV0IHBhZGRpbmcgPSBpbmRlbnQgPD0gMSA/ICcwIHB4JyA6IGluZGVudCAqIDEwICsgJ3B4JztcclxuXHJcbiAgICBsZXQgc3R5bGVPYmogPSB7XHJcbiAgICAgICdwYWRkaW5nLWxlZnQnOiBwYWRkaW5nLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihzdHlsZU9iaik7XHJcbiAgfVxyXG5cclxuICBzZXRNYXJnaW4obWFyZ2luOiBudW1iZXIpOiBvYmplY3Qge1xyXG4gICAgbGV0IG1hciA9IG1hcmdpbiArICdweCc7XHJcbiAgICBsZXQgc3R5bGVPYmogPSB7XHJcbiAgICAgICdtYXJnaW4tcmlnaHQnOiBtYXIsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcclxuICB9XHJcblxyXG4gIGdldCBpc1ZhbGlkKCkge1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgbGV0IHF1ZXN0aW9uVHlwZTogc3RyaW5nID0gdGhpcy5xdWVzdGlvbi50eXBlO1xyXG4gICAgaWYgKFxyXG4gICAgICAnaHRtbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAnbGFiZWwnID09PSBxdWVzdGlvblR5cGUgfHxcclxuICAgICAgJ3NpbXBsZUxhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIHx8XHJcbiAgICAgICdkaXNwbGF5dGV4dGFzbGFiZWwnID09PSBxdWVzdGlvblR5cGUgfHxcclxuICAgICAgKCdidXR0b24nID09PSBxdWVzdGlvblR5cGUgJiZcclxuICAgICAgICAhdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzICYmXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnROYW1lICE9ICdhcHAtc2lnbi1zc24nICYmXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnROYW1lICE9ICdhcHAtbGluaycpIHx8XHJcbiAgICAgICdsYWJlbC13aXRoLW92ZXJsYXknID09PSBxdWVzdGlvblR5cGVcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnJlcXVpcmVkICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb24ucmVxdWlyZWRFcnJvclRleHQ7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm1heGxlbmd0aCAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/Lm1heExlbmd0aCcsIHRoaXMucXVlc3Rpb24pO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLmRlc2NyaXB0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnR5cGUgJywgdmFsaWRhdG9yLnR5cGUpO1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3RleHQnICYmIHZhbGlkYXRvci5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KTtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnBhdHRlcm4gJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnZXJyb3JzPy5wYXR0ZXJuJyx0aGlzLnF1ZXN0aW9uKVxyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcblxyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZSAnLCB2YWxpZGF0b3IudHlwZSlcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdyZWdleCcpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5kYXRlQ29tcGFyaXNpb24gJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICAvLyAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdleHByZXNzaW9uJykge1xyXG4gICAgICAgICAgICAvLyAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubWlubGVuZ3RoICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZygndmFsaWRhdG9yLnR5cGUubWlubGVuZ3RoICcsIHZhbGlkYXRvci50eXBlKVxyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcpIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5wYXNzd29yZENvbXBhcmlzaW9uICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZygndmFsaWRhdG9yLnR5cGUubWlubGVuZ3RoICcsIHZhbGlkYXRvci50eXBlKVxyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcclxuICAgICAgICAgICAgLy8gIGNvbnNvbGUubG9nKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnJlcXVpcmVkSWYgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gJ3JlcXVpcmVkJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJwRW1wbHJGbGFnICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWRcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcclxuICAgICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgICBtZXNzYWdlID0gJ0NvbmZpcm1hciBvIGVsaW1pbmFyIGNhZGEgZW1wbGVhZG9yKGVzKSBwYXJhIGNvbnRpbnVhcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWVzc2FnZSA9ICdDb25maXJtIG9yIERlbGV0ZSBlYWNoIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LnNpbXBsZUNoZWNrQm94VmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uY3BhdGNodmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8udXBsb2FkdmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckxlbmd0aEZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdBZGQgcHJldmlvdXMgZW1wbG95bWVudCBkZXRhaWxzJztcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmFkZHJlc3NWYWxpZGF0aW9uRmxhZyAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGFkZHJlc3MuXCI7XHJcbiAgICAgIHRoaXMuYWRkcmVzc2VzLmZvckVhY2goKGFkZHJlc3MpID0+IGFkZHJlc3Muc3VibWl0KCkpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LmJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBiYW5rIGRldGFpbHMuXCI7XHJcbiAgICAgIHRoaXMuYmFua2R0bHM/LnN1Ym1pdCgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJWYWxpZGF0aW9uICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWRcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwicmVxdWlyZWRcIjtcclxuICAgICAgdGhpcy53Y0VtcGxveWVyR3JpZD8uc3VibWl0KCk7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubm90RXF1YWxzICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnY3VzdG9tdmFsaWRhdGlvbicpIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdtZXNzYWdlIGZyb20gcGFuZWwgb3V0ZXItLSAnLG1lc3NhZ2UpO1xyXG4gICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBvbkFjY2VwdGVkKGFncmVlZDogYm9vbGVhbikge1xyXG4gICAgLy9jb25zb2xlLmxvZygnb25BY2NlcHRlZCBjYWxsZWQnLGFncmVlZCk7XHJcbiAgICB0aGlzLmxlZ2FsQWNjZXB0ZWQgPSBhZ3JlZWQ7XHJcbiAgfVxyXG5cclxuICBvbkNvbXBsZXRlUmVxdWFsaWZ5KHJlcXVhbGlmeURhdGE6IFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIC8vY29uc29sZS5sb2coXCJvbkNvbXBsZXRlUmVxdWFsaWZ5XCIsIHJlcXVhbGlmeURhdGEpO1xyXG4gIH1cclxuXHJcbiAgb25Nb2RlbERpc3BsYXkobW9kZWxEaXNwbGF5OiBib29sZWFuKSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCdtb2RlbERpc3BsYXkgY2FsbGVkJyxtb2RlbERpc3BsYXkpO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVPdHBGb3JOZXdVc2VyQ3JlYXRpb24oZXZlbnQsIGZvcm0pIHtcclxuICAgIGlmIChmb3JtLmNvbnRyb2xzLnBob25lLnZhbHVlID09IG51bGwgfHwgZm9ybS52YWx1ZS52ZXJpZmljYXRpb24gPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRmllbGRzIGFyZSBudWxsLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gUmVtb3ZlIG5vbi1udW1lcmljIGNoYXJhY3RlcnNcclxuICAgLy8gbGV0IHZhbGlkUGhvbmUgPSBmb3JtLnZhbHVlLnBob25lLnJlcGxhY2UoL1xcRC9nLCAnJyk7XHJcbiAgICBsZXQgdmFsaWRQaG9uZSA9IGZvcm0uY29udHJvbHMucGhvbmUudmFsdWUucmVwbGFjZUFsbChcIi1cIixcIlwiKS5yZXBsYWNlQWxsKFwiIFwiLFwiXCIpO1xyXG4gICAgICBcclxuICAgIC8vIENvdW50IGRpZ2l0c1xyXG4gICAgbGV0IHBob25lTGVuZ3RoID0gdmFsaWRQaG9uZS5sZW5ndGg7XHJcbiAgICBjb25zb2xlLmxvZyhcIlBob25lIG51bWJlciBsZW5ndGhcIiwgcGhvbmVMZW5ndGgpO1xyXG4gICAgaWYgKHBob25lTGVuZ3RoICE9IDEwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiUGhvbmUgbnVtYmVyIG11c3QgYmUgb2YgbGVuZ3RoIDEwXCIpXHJcbiAgICAgIFxyXG4gICAgICByZXR1cm47IFxyXG4gICAgfVxyXG4gICAgdGhpcy5sc1xyXG4gICAgICAuZ2VuZXJhdGVPdHBGb3JOZXdVc2VyQ3JlYXRpb24oZm9ybS5jb250cm9scy5waG9uZS52YWx1ZSwgZXZlbnQub3B0aW9uLnZhbHVlKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS4nKTtcclxuICAgICAgICAgIHRoaXMuaXNPdHBNb2RhbEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdDb3VsZCBub3QgZ2VuZXJhdGUgdGhlIGF1dGhlbnRpY2F0aW9uIE9UUCBjb2RlLicpO1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pOyBcclxuICB9XHJcblxyXG4gIG9uUmFkaW9PcHRpb25DbGljayhldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgaWYoZWxlbWVudD8ubmFtZSA9PT0gXCJkaWZmbWFpbGFkZHJlc3NcIiAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZsb3dLZXlcIikgPT0gJzM0NScpe1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZGlzYWJsZUZpZWxkc09uU2lnbnVwJywgJ2ZhbHNlJyk7XHJcbiAgICB9XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlICYmIGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcclxuICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZSA9IGVsZW1lbnQuc2VydmljZUNhbGxUeXBlO1xyXG4gICAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBldmVudC5vcHRpb24udmFsdWVcclxuICAgICAgICA/IHsgcGFyYW1zOiBuZXcgSHR0cFBhcmFtcygpLnNldCgnc2VsZWN0aW9uJywgZXZlbnQub3B0aW9uLnZhbHVlKSB9XHJcbiAgICAgICAgOiB7fTtcclxuICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ0dFVCcpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAke3NlcnZpY2VOYW1lfWAsIG9wdGlvbnMpLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlczogU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZXMuc3VjY2VzcyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUpO1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2codmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzKTtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMgJiZcclxuICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZSAmJlxyXG4gICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VydmljZUNhbGxUeXBlSW5UcnVlID1cclxuICAgICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VDYWxsVHlwZTtcclxuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlTmFtZUluVHJ1ZTogc3RyaW5nID1cclxuICAgICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VOYW1lO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9PT0gJ0dFVCcpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYCR7c2VydmljZU5hbWVJblRydWV9YCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9hZGVyTW9kZWw6IExvYWRlck1vZGVsID0gcmVzcDtcclxuICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiIHZhbHVlIGZyb20gbG9hZGVyID0gXCIsIGxvYWRlck1vZGVsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlcyhsb2FkZXJNb2RlbC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAoZXJycCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy5yZXNldCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgIF0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJycCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZvcm1WYWx1ZXMoZGF0YSkge1xyXG4gICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZVRvU2V0ID0gZGF0YVtrZXldO1xyXG4gICAgICB0aGlzLnNldFZhbHVlSW5Gb3JtQ29udHJvbChrZXksIHZhbHVlVG9TZXQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUluRm9ybUNvbnRyb2wobmFtZSwgdmFsdWUpIHtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW25hbWVdO1xyXG4gICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGZvcm0gY29udHJvbCBwcmVzZW50IHdpdGggbmFtZSAnLCBuYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlclZhbHVlKGV2ZW50LCBlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XHJcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnY2hvaWNlcy0tJyxjaG9pY2VzKTtcclxuXHJcbiAgICBsZXQgY2hvaWNlczogYW55W10gPSBbXTtcclxuXHJcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuXHJcbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSAmJiBlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XHJcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFBhcmFtID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFBhcmFtOyAvL3NzbjMyMCxsc3RuYW1lMzIwXHJcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTsgLy9cIkdFVFwiXHJcbiAgICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTsgLy8vc2VjdXJpdHktc2VydmljZS92YWxpZGF0ZVNTTi9cclxuICAgICAgbGV0IHNlcnZpY2VVcGRhdGVQYXJhbSA9IGVsZW1lbnQuc2VydmljZVVwZGF0ZVBhcmFtO1xyXG5cclxuICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ0dFVCcpIHtcclxuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIEdFVCcpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAke3NlcnZpY2VOYW1lfWApLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlcy0tJywgcmVzLCAnIC0gcmVzWzBdLmxlbmd0aCAtJywgcmVzKTtcclxuICAgICAgICAgICAgY2hvaWNlcy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgICAgICAgICAvL2xldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGNob2ljZSA9IGNob2ljZXNbaV07XHJcbiAgICAgICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1ZygnY2hvaWNlIC0gJywgY2hvaWNlLCAnY2hvaWNlLnRleHQtLScsIGNob2ljZS50ZXh0LCAncXVlcnkudG9Mb3dlckNhc2UoKScsIHF1ZXJ5Py50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgICAgICAgICAvL2lmIChjaG9pY2UudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgICAgICAgIGZpbHRlcmVkLnB1c2goY2hvaWNlWzBdKTtcclxuICAgICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclJlc3VsdCA9IGZpbHRlcmVkO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5maWx0ZXJSZXN1bHQxMjMtLScsIHRoaXMuZmlsdGVyUmVzdWx0KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjaG9pY2VzID0gZWxlbWVudC5jaG9pY2VzO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY291bnRyeSA9IGNob2ljZXNbaV07XHJcbiAgICAgICAgLy9pZiAoY291bnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWQucHVzaChjb3VudHJ5KTtcclxuICAgICAgICAvL31cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpbHRlclJlc3VsdCA9IGZpbHRlcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoZXZlbnQsIGNudHJsTmFtZTogc3RyaW5nKSB7fVxyXG5cclxuICAvL1RoaXMgc2hvdWQgYmUgc2ltaWxpcmEgdG8gbWV0aG9kIHByZXNlbnQgaW4gcGFuZWxcclxuICB2YWxpZGF0ZShlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XHJcbiAgICBpZiAoIWVsZW1lbnQuc2VydmljZU5hbWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzZXJ2aWNlVHlwZSA9IGVsZW1lbnQuc2VydmljZVR5cGU7XHJcbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHNlcnZpY2VDYWxsUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VDYWxsUGFyYW07IC8vc3NuMzIwLGxzdG5hbWUzMjBcclxuICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTsgLy9cIkdFVFwiXHJcbiAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7IC8vL3NlY3VyaXR5LXNlcnZpY2UvdmFsaWRhdGVTU04vXHJcbiAgICBsZXQgc2VydmljZVVwZGF0ZVBhcmFtID0gZWxlbWVudC5zZXJ2aWNlVXBkYXRlUGFyYW07XHJcbiAgICBsZXQgYWxsVmFsdWVQcmVzZW50OiBCb29sZWFuID0gdHJ1ZTtcclxuICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2VydmljZUNhbGxQYXJhbScsc2VydmljZUNhbGxQYXJhbSk7XHJcbiAgICBpZiAoc2VydmljZUNhbGxQYXJhbSkge1xyXG4gICAgICB2YXIgc3BsaXR0ZWQgPSBzZXJ2aWNlQ2FsbFBhcmFtLnNwbGl0KCcsJyk7XHJcbiAgICAgIGxldCB2YWx1ZUFycjogc3RyaW5nW10gPSBbXTtcclxuICAgICAgbGV0IHBhcmFtQXJyOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0dGVkLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgLy91c2UgaSBpbnN0ZWFkIG9mIDAgZG9iMzIwXHJcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2RvYjMyMCcsdGhpcy5mb3JtLmNvbnRyb2xzWydkb2IzMjAnXS52YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpIHtcclxuICAgICAgICAgIHBhcmFtQXJyLnB1c2goc3BsaXR0ZWRbaV0pO1xyXG4gICAgICAgICAgdmFsdWVBcnIucHVzaCh0aGlzLmZvcm0uY29udHJvbHNbc3BsaXR0ZWRbaV1dLnZhbHVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYWxsVmFsdWVQcmVzZW50ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWx1ZUFycjEyJywgdmFsdWVBcnIsICdwYXJhbUFycjExICcsIHBhcmFtQXJyLCAnIGVsZW1lbnQnLCBlbGVtZW50KTtcclxuXHJcbiAgICAgIHZhciBtb2RlbDogVmFsaWRhdGlvbk1vZGVsID0ge307XHJcbiAgICAgIG1vZGVsLnBhcmFtTmFtZSA9IHBhcmFtQXJyO1xyXG4gICAgICBtb2RlbC5wYXJhbVZhbHVlID0gdmFsdWVBcnI7XHJcbiAgICAgIC8vIHJldHVybiB0aGlzLnBvc3QoYHF1ZXN0aW9ubmFpcmUvc2NyZWVuLXF1ZXN0aW9ubmFpcmVgLCBxdWVzdGlvbm5haXJlRGF0YSk7XHJcbiAgICAgIGlmIChhbGxWYWx1ZVByZXNlbnQpIHtcclxuICAgICAgICBpZiAoc2VydmljZUNhbGxUeXBlID09PSAnUE9TVCcpIHtcclxuICAgICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgR0VUJyk7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLnBvc3QoYCR7c2VydmljZU5hbWV9YCwgbW9kZWwpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMucmV0dXJuTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlICYmXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJldHVybk1vZGVsLnJldHVyblR5cGUgPT09ICdQT1BVUCdcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAndG9wJztcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wVXBIZWFkZXIgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwSGVhZGVyO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BVcFRleHQgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwVGV4dDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wVXBZZXNBY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBZZXNCdXR0b25MYWJlbDtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wVXBOb0FjdGlvbkxhYmVsID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcE5vQnV0dG9uTGFiZWw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnJldHVybk1vZGVsICcsIHRoaXMucmV0dXJuTW9kZWwpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGJsdXJET0IoZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZShlbGVtZW50KTtcclxuICAgIHRoaXMuY2hlY2tJZlVzZXJFeGlzdCgpO1xyXG4gIH1cclxuICBhY2NlcHQoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnYWNjZXB0IGNhbGxlZDEyMycsIHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcik7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogUGFyYW1zW10gPSBbXTtcclxuICAgIGlmICh0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXIpIHtcclxuICAgICAgbGV0IG1vZGVsQXJyOiBLZXlWYWx1ZU1vZGVsW10gPSB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXI7XHJcbiAgICAgIGZvciAodmFyIHZhbCBvZiBtb2RlbEFycikge1xyXG4gICAgICAgIHBhcmFtQXJyYXkucHVzaCh7IFt2YWwua2V5XTogdmFsLnZhbHVlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHBhcmFtQXJyYXkucmVkdWNlKChhcnJPYmosIGl0ZW0pID0+XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhcnJPYmosIGl0ZW0sIHt9KVxyXG4gICAgICApO1xyXG4gICAgICAvL3RoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3RXaXRoRGF0YSh0aGlzLmdldENvbnRleHRSb290KCksIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLCBwYXJhbXMsIHRoaXMubmF2Q29udHJvbGxlcilcclxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdCh0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uICYmXHJcbiAgICAgIHRoaXMucmV0dXJuTW9kZWwueWVzQWN0aW9uLnN1YnN0cmluZygwLCA0KSAhPSAnL2NwLydcclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xyXG4gICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3aW5kb3cub3Blbihsb2NhdGlvbi5vcmlnaW4gKyB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwgJ19zZWxmJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xyXG4gIH1cclxuXHJcbiAgcmVqZWN0KCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uICYmXHJcbiAgICAgIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24uc3Vic3RyaW5nKDAsIDQpICE9ICcvY3AvJ1xyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW3RoaXMucmV0dXJuTW9kZWwubm9BY3Rpb25dKTtcclxuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKGxvY2F0aW9uLm9yaWdpbiArIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24sICdfc2VsZicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dFJvb3QoKSB7XHJcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN1YnN0cmluZyhcclxuICAgICAgMCxcclxuICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoJy8nLCAyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZXY6IGFueSkge31cclxuXHJcbiAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIGR5bmFtaWNQYXJhbTogYW55KSB7XHJcbiAgICBpZiAoIWR5bmFtaWNQYXJhbSkge1xyXG4gICAgICByZXR1cm4ga2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkeW5hbWljT2JqID0ge307XHJcblxyXG4gICAgbGV0IHBhcmFtOiBLZXlWYWx1ZU1vZGVsO1xyXG4gICAgbGV0IHBhcmFtczogS2V5VmFsdWVNb2RlbFtdO1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGR5bmFtaWNQYXJhbSkpIHtcclxuICAgICAgcGFyYW1zID0gZHluYW1pY1BhcmFtO1xyXG4gICAgICBwYXJhbXMuZm9yRWFjaCgocHJtKSA9PiB7XHJcbiAgICAgICAgZHluYW1pY09ialtwcm0ua2V5XSA9IHBybS52YWx1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbSA9IGR5bmFtaWNQYXJhbTtcclxuICAgICAgZHluYW1pY09ialtwYXJhbS5rZXldID0gcGFyYW0udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGUudXNlKCdlbicpO1xyXG4gICAgbGV0IHRyYW5zbGF0ZWRTdHJpbmc6IFN0cmluZyA9ICcnO1xyXG4gICAgdGhpcy50cmFuc2xhdGUuc2V0KGtleSwga2V5KTtcclxuICAgIHRyYW5zbGF0ZWRTdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSwgT2JqZWN0LmFzc2lnbihkeW5hbWljT2JqKSk7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlZFN0cmluZztcclxuICB9XHJcblxyXG4gIGdldFRleHQob2JqZWN0KSB7XHJcbiAgICByZXR1cm4gb2JqZWN0Py50ZXh0ID8gb2JqZWN0Py50ZXh0IDogb2JqZWN0O1xyXG4gIH1cclxuXHJcbiAgdW5tYXNrKGV2ZW50KSB7XHJcbiAgICB0aGlzLm1hc2tDbGFzcyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbWFzayhldmVudCkge1xyXG4gICAgdGhpcy5tYXNrQ2xhc3MgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KSB7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYgKGN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgJy8nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpIHtcclxuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyAnLyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrRm9yVmFsdWVDaGFuZ2UoZXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcclxuICAgICAgbGV0IGNvbXBEYXRhOiBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsID0gSlNPTi5wYXJzZShcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgKTtcclxuICAgICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgICAgbGV0IG9yaWdpbmFsVmFsdWUgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLm9yaWdpbmFsVmFsdWVDb250cm9sKT8udmFsdWU7XHJcbiAgICAgIGxldCBmb3JtQ29udHJvbFRvVXBkYXRlOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmZvcm1Db250cm9sVG9VcGRhdGVcclxuICAgICAgKTtcclxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdOJyk7XHJcbiAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmR5bmFtaWNQYXJhbSA9IHRoaXMuZHluYW1pY1BhcmFtID8gdGhpcy5keW5hbWljUGFyYW0gOiBbXTtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5keW5hbWljUGFyYW0pKSB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ucHVzaCh7XHJcbiAgICAgICAgICBrZXk6IHRoaXMucXVlc3Rpb24ubmFtZSxcclxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50VmFsdWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW1bdGhpcy5xdWVzdGlvbi5uYW1lXSA9IGN1cnJlbnRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VycmVudFZhbHVlICE9IG9yaWdpbmFsVmFsdWUpIHtcclxuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ1knKTtcclxuICAgICAgICB0aGlzLm9uRHluYW1pY1BhcmFtVXBkYXRlLmVtaXQodGhpcy5keW5hbWljUGFyYW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnTicpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XHJcbiAgICAgIGxldCBjb21wRGF0YTogRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgYWRkcmVzc0ZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmFkZHJlc3NGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgbGV0IGVtcElkRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICBlbXBJZEZjLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQgPyBlbXBsb3llci5lbXBsb3llcklkIDogJy0xJyk7XHJcbiAgICAgIGFkZHJlc3NGYy5zZXRWYWx1ZSh7XHJcbiAgICAgICAgY291bnRyeTogZW1wbG95ZXIuY291bnRyeSxcclxuICAgICAgICBjaXR5OiBlbXBsb3llci5jaXR5LFxyXG4gICAgICAgIHppcDogZW1wbG95ZXIuemlwLFxyXG4gICAgICAgIHN0cmVldEFkZHJlc3M6IGVtcGxveWVyLmFkZHJlc3NEaXNwbGF5VmFsLFxyXG4gICAgICAgIHN0YXRlOiBlbXBsb3llci5zdGF0ZSxcclxuICAgICAgICBvcHRpb25hbEFkZHJlc3M6IG51bGwsXHJcbiAgICAgICAgY291bnR5OiBudWxsLFxyXG4gICAgICAgIHRvd246IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRFbXBsb3llcigpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcclxuICAgICAgbGV0IGNvbXBEYXRhOiBFbXBsb3llckFkZHJlc3NVcGRhdGVNb2RlbCA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBhZGRyZXNzRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuYWRkcmVzc0Zvcm1Db250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgZW1wSWRGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5lbXBsb3llcklkRm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGVtcElkRmMuc2V0VmFsdWUoJy0xJyk7XHJcbiAgICAgIGFkZHJlc3NGYy5zZXRWYWx1ZSh7XHJcbiAgICAgICAgY291bnRyeTogbnVsbCxcclxuICAgICAgICBjaXR5OiBudWxsLFxyXG4gICAgICAgIHppcDogbnVsbCxcclxuICAgICAgICBzdHJlZXRBZGRyZXNzOiBudWxsLFxyXG4gICAgICAgIHN0YXRlOiBudWxsLFxyXG4gICAgICAgIG9wdGlvbmFsQWRkcmVzczogbnVsbCxcclxuICAgICAgICBjb3VudHk6IG51bGwsXHJcbiAgICAgICAgdG93bjogbnVsbCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtQ29udHJvbFZhbHVlKGVsZW1lbnROYW1lLCBlbGVtZW50VmFsdWUpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50TmFtZV0ucGF0Y2hWYWx1ZShlbGVtZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdFZhbHVlKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMucXVlc3Rpb24uZGVmYXVsdFZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi50eXBlID09ICdkcm9wZG93bicpIHtcclxuICAgICAgICBjb25zdCBjaG9pY2U6IHN0cmluZyA9IHRoaXMucXVlc3Rpb24uZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIHZhciBqc29uT2JqZWN0OiBDaG9pY2VzID0gSlNPTi5wYXJzZShjaG9pY2UpO1xyXG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZShcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSxcclxuICAgICAgICAgIHRoaXMucXVlc3Rpb24uY2hvaWNlcy5maWx0ZXIoKGMpID0+IGMudmFsdWUgPT0ganNvbk9iamVjdC52YWx1ZSlbMF1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSh0aGlzLnF1ZXN0aW9uLm5hbWUsIHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW9kaWZ5Q2FsZW5kYXJBdHRyaWJ1dGVzKCkge1xyXG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5wQ2FsZW5kYXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAncC1jYWxlbmRhciBbYXJpYS1jb250cm9sc10nXHJcbiAgICApO1xyXG4gICAgaW5wdXRFbGVtZW50LmZvckVhY2goKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpID0+IHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FyaWEtY29udHJvbHMnLCB0aGlzLnF1ZXN0aW9uLm5hbWUpO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgW2lkXT1cIidxdWVzdGlvbi1kaXYtJyArIHF1ZXN0aW9uLm5hbWVcIj5cclxuICA8cC1kaWFsb2cgKm5nSWY9XCJkaXNwbGF5UG9zaXRpb25cIiBbKHZpc2libGUpXT1cImRpc3BsYXlQb3NpdGlvblwiIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXHJcbiAgICBbbW9kYWxdPVwidHJ1ZVwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbiAgICBbYmFzZVpJbmRleF09XCI1MDAwXCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwiZmFsc2VcIiBhcHBlbmRUbz1cImJvZHlcIiBjbG9zZU9uRXNjYXBlPVwiZmFsc2VcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcblxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZyBpb24tcGFkZGluZy1sZWZ0XCI+XHJcbiAgICAgIHt7cG9wVXBIZWFkZXJ9fVxyXG4gICAgPC9oND5cclxuICAgIDxwPnt7cG9wVXBUZXh0fX1cclxuICAgIDwvcD5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBOb0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInJlamVjdCgpXCI+XHJcbiAgICAgICAge3twb3BVcE5vQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJwb3BVcFllc0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJhY2NlcHQoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBZZXNBY3Rpb25MYWJlbH19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1kaWFsb2c+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnXCI+XHJcbiAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94JyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLm5hbWVcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nY29tcG9uZW50JyB8fCAocXVlc3Rpb24uY3VzdG9tVGFnPT0nY29tcG9uZW50JyAmJiBzaG93TGFiZWxGb3JDdXN0b21Db21wb25lbnQoKSkpICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCdcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdjb21wb25lbnQnICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb25cIj5cclxuICAgIDxhcHAtZW1wbG95ZXItZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLWdyaWQnXCIgKG1vZGVsRGlzcGxheSk9XCJvbk1vZGVsRGlzcGxheSgkZXZlbnQpXCI+PC9hcHAtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtbGVnYWwtZGlzY2xhaW1hciAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWxlZ2FsLWRpc2NsYWltYXInXCJcclxuICAgICAgW2NvbXBvbmVudERhdGFdPVwicXVlc3Rpb24uY29tcG9uZW50RGF0YVwiIChhY2NlcHRlZCk9XCJvbkFjY2VwdGVkKCRldmVudClcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+XHJcbiAgICA8L2FwcC1sZWdhbC1kaXNjbGFpbWFyPlxyXG4gICAgPG1vbmV5LWV4cGVjdCAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nbW9uZXktZXhwZWN0J1wiPjwvbW9uZXktZXhwZWN0PlxyXG4gICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtY2FwdGNoYSdcIj48L2FwcC1jYXB0Y2hhPlxyXG5cclxuICAgIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWZpbGUtdXBsb2FkZXInXCI+XHJcbiAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgPGFwcC1hZGRyZXNzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtmcm9tUG9wdXBdPVwiZmFsc2VcIiBbY291bnR5UmVxdWlyZWRdPVwicXVlc3Rpb24uY291bnR5UmVxdWlyZWRcIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZHJlc3MnXCIgI2FkZHJlc3MgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiPiA8L2FwcC1hZGRyZXNzPlxyXG4gICAgPGFwcC1iYW5rLWRldGFpbHMgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1iYW5rLWRldGFpbHMnXCIgI2JhbmtkdGxzPlxyXG4gICAgPC9hcHAtYmFuay1kZXRhaWxzPlxyXG4gICAgPGFwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXMnXCJcclxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiBbZm9ybV09XCJmb3JtXCIgPlxyXG4gICAgPC9hcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzPiBcclxuICAgIDxhcHAtZGVwZW5kZW50LWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1kZXBlbmRlbnQtZ3JpZCdcIj48L2FwcC1kZXBlbmRlbnQtZ3JpZD5cclxuICAgIDxhcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZCAjd2NFbXBsb3llckdyaWQgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQnXCI+PC9hcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIGVtcFR5cGU9XCJSRUdcIiAob25Gb3VuZCk9XCJzZXRFbXBsb3llcigkZXZlbnQpXCIgXHJcbiAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKClcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNlYXJjaC1lbXBsb3llcidcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICA8YXBwLWFkZC1wYXJ0aWNpcGFudCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZC1wYXJ0aWNpcGFudCdcIj4gPC9hcHAtYWRkLXBhcnRpY2lwYW50PlxyXG4gICAgPGFwcC1hZGQtcGF5bWVudCBbcG90ZW50aWFsSXNzdWVJZF09XCJwb3RlbnRpYWxJc3N1ZUlkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGQtcGF5bWVudCdcIj48L2FwcC1hZGQtcGF5bWVudD5cclxuICAgIDxhcHAtbGluayBbaXNSZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1saW5rJ1wiIFt0ZXh0XT1cImxpbmtDb21wb25lbnREYXRhPy50ZXh0XCIgW3VyaV09XCJsaW5rQ29tcG9uZW50RGF0YT8udXJpXCIgW2V4dGVybmFsVXJsXT1cImxpbmtDb21wb25lbnREYXRhPy5leHRlcm5hbFVybFwiPjwvYXBwLWxpbms+XHJcbiAgICA8YXBwLXNpZ24tc3NuIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNpZ24tc3NuJ1wiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIj48L2FwcC1zaWduLXNzbj5cclxuICAgIDxhcHAtam9iLXRpdGxlIFtjb250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIiAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1qb2ItdGl0bGUnXCIgI2pvYlRpdGxlPiA8L2FwcC1qb2ItdGl0bGU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQhPTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbidcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi50eXBlPT09J2h0bWwnXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgPGRpdiAgW2lubmVySFRNTF09XCJxdWVzdGlvbi5odG1sIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIlxyXG4gICAgICBzdHlsZT1cImNvbG9yOnZhcigtLWlvbi1jb2xvci1tZWRpdW0tZ3JheSk7IHBhZGRpbmctdG9wOiAyMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDoxM3B4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBbbmdTd2l0Y2hdPVwicXVlc3Rpb24udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0nZGF0ZScgJiYgcXVlc3Rpb24ubmFtZSAmJiBxdWVzdGlvbi5uYW1lIT0nZG9iJ1wiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgI3BDYWxlbmRhcj5cclxuICAgICAgICAgICAgPHAtY2FsZW5kYXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDk5XCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJzaG93TWluRGF0ZSA/IG1pbkRhdGUgOiBudWxsXCJcclxuICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJzaG93TWF4RGF0ZSA/IG1heERhdGUgOiBudWxsXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgYXBwZW5kVG89XCJib2R5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uU2VsZWN0KT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J2RhdGUnICYmIHF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZT09PSdkb2InXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAjcENhbGVuZGFyPlxyXG4gICAgICAgICAgICA8cC1jYWxlbmRhciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVET0JcIlxyXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVET0JcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBhcHBlbmRUbz1cImJvZHlcIiBkYXRhVHlwZT1cInN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgKG9uQmx1cik9XCJibHVyRE9CKHF1ZXN0aW9uKVwiIChvblNlbGVjdCk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdzc24nXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgW2NsYXNzLmhpZGUtY29udGVudF09XCJtYXNrQ2xhc3NcIiBtYXNrPVwiOTk5LTk5LTk5OTlcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiIChvbkNvbXBsZXRlKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIChvbkZvY3VzKT1cInVubWFzaygkZXZlbnQpXCIgKG9uQmx1cik9XCJtYXNrKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdlYW4nXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5LTk5OTk5LTktOTlcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCI5OS05OTk5OS05LTk5XCIgW3ZhbHVlXT1cIjgxLTAwNTg2LTAtMDFcIiAob25Db21wbGV0ZSk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J2R1ZWFtdCdcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG1vZGU9XCJkZWNpbWFsXCIgbG9jYWxlPVwiZW4tVVNcIlxyXG4gICAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmICghcXVlc3Rpb24uY3VzdG9tVGFnICB8fCAgcXVlc3Rpb24uY3VzdG9tVGFnPT09J09wdGlvbmFsJykgJiYgIXF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgcGxhY2Vob2xkZXI9J3t7XCJjb21tb24ub3B0aW9uYWxcIiB8IHRyYW5zbGF0ZX19JyBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgIHBsYWNlaG9sZGVyPSd7e1wiY29tbW9uLm9wdGlvbmFsXCIgfCB0cmFuc2xhdGV9fSdcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9J3t7XCJjb21tb24ub3B0aW9uYWxcIiB8IHRyYW5zbGF0ZX19JyBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBwbGFjZWhvbGRlcj0ne3tcImNvbW1vbi5vcHRpb25hbFwiIHwgdHJhbnNsYXRlfX0nIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1Vc2VyIE5hbWUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWQgICYmICFjaGVja0Zsb3dLZXkoKVwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgXHJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgIFtpZF09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgICAgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmICFxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uaXNSZXF1aXJlZCAmJiBjaGVja0Zsb3dLZXkoKVwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIiBbYXV0b2NvbXBsZXRlXT1cInF1ZXN0aW9uPy5uYW1lLmluY2x1ZGVzKCdzZWNBbnMnKT8nb2ZmJzogJ29uJ1wiLz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiXHJcbiAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtkaXNhYmxlZF09XCIhcGhvbmVWZXJpZmllZFwiLz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtkaXNhYmxlZF09XCIhcGhvbmVWZXJpZmllZFwiLz5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IFxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnZmlyc3ROYW1lJykgJiYgY2hlY2tGbG93S2V5KCkgXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnbGFzdE5hbWUnKSAmJiBjaGVja0Zsb3dLZXkoKSBcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgICFxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBxdWVzdGlvbi5pbmRlbnQqMTB9XCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJykgICYmICFjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBtYXNrPVwiOTk5LTk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTktOTk5LTk5OTknIDogKCdjb21tb24ub3B0aW9uYWwnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygncGhvbmUnKSAmJiBjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBtYXNrPVwiOTk5IDk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTkgOTk5LTk5OTknIDogKCdjb21tb24ub3B0aW9uYWwnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygncGFzc3dvcmQnKVwiPlxyXG4gICAgICAgICAgPHAtcGFzc3dvcmQgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIiBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIHdlYWtMYWJlbD0ne3tcImNvbW1vbi5wYXNzd29yZC53ZWFrXCIgfCB0cmFuc2xhdGV9fSdcclxuICAgICAgICAgIG1lZGl1bUxhYmVsPSd7e1wiY29tbW9uLnBhc3N3b3JkLndlYWtcIiB8IHRyYW5zbGF0ZX19JyBzdHJvbmdMYWJlbD0ne3tcImNvbW1vbi5wYXNzd29yZC5zdHJvbmdcIiB8IHRyYW5zbGF0ZX19JyBzdHJvbmdSZWdleD1cIl4oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipbMC05XSkoPz0uezgsfSkoPz0uKltfQCokISMuXSlcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQubXVzdC5pbmNsdWRlXCIgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5vbmUudXBwZXJjYXNlXCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLm9uZS5sb3dlcmNhc2VcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQub25lLm51bWJlclwiIHwgdHJhbnNsYXRlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC50d28ubWVudGlvbmVkLmNoYXJcIiB8IHRyYW5zbGF0ZX19IDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLmZvcnRlZW4uY2hhcnNcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPnt7XCJjb21tb24ucGFzc3dvcmQuc3VnZ2VzdGlvbi5oZWFkZXJcIiB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5zdWdnZXN0aW9uLm5hbWUuZW1haWwucGhvbmVcIiB8IHRyYW5zbGF0ZX19PC9saT5cclxuICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj57e1wiY29tbW9uLnBhc3N3b3JkLnN1Z2dlc3Rpb24ua2lkLnBhcnRuZXIucGV0XCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+e3tcImNvbW1vbi5wYXNzd29yZC5zdWdnZXN0aW9uLm5hbWUub3IudXNlcmlkXCIgfCB0cmFuc2xhdGV9fTwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdmaWxldXBsb2FkJylcIj5cclxuICAgICAgICAgIDxhcHAtZmlsZS11cGxvYWRlciBbYWxsb3dlZEZpbGVUeXBlXT1cInF1ZXN0aW9uLmFsbG93ZWRGaWxlVHlwZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIFttYXhTaXplSW5NQl09XCJxdWVzdGlvbi5zaXplSW5NQlwiIFttdWx0aXBsZV09XCJxdWVzdGlvbi5tdWx0aXBsZVwiIFtub09mRmlsZXNUb1VwbG9hZF09XCJxdWVzdGlvbi5ub09GRmlsZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICA8L2FwcC1maWxlLXVwbG9hZGVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tRW1haWwgQWRkcmVzcy0tPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nc3NuJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdPcHRpb25hbCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlsZXVwbG9hZCcgIFxyXG4gICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwaG9uZScgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlyc3ROYW1lJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdsYXN0TmFtZScgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2VhbicgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2R1ZWFtdCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGFzc3dvcmQnKSAmJiBjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Rpc2FibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJjaGVja0ZvclZhbHVlQ2hhbmdlKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiAocXVlc3Rpb24uY3VzdG9tVGFnIT0nc3NuJyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdPcHRpb25hbCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZmlsZXVwbG9hZCcgIFxyXG4gICAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bob25lJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZWFuJyAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nZHVlYW10JyAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwYXNzd29yZCcpICYmICFjaGVja0Zsb3dLZXkoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIChibHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcXVlc3Rpb24uaW5wdXRUeXBlICYmICFxdWVzdGlvbi5jdXN0b21UYWdcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZVwiICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPC9pb24tY29sPlxyXG4gICAgPGlvbi1jb2wgc2l6ZT1cIjFcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTJweFwiPlxyXG4gICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgIDwvaW9uLWNvbD5cclxuICA8L2lvbi1yb3c+IC0tPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NvbW1lbnQnXCI+XHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCI+XHJcbiAgICAgICAgPHRleHRhcmVhIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbcm93c109XCIzXCIgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPHNtYWxsIHN0eWxlQ2xhc3M9XCJwLWQtYmxvY2tcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+e3txdWVzdGlvbi5kZXNjcmlwdGlvbn19PC9zbWFsbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cIiFxdWVzdGlvbi5tYXhMZW5ndGhcIj5cclxuICAgICAgICA8dGV4dGFyZWEgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBhdXRvUmVzaXplPVwidHJ1ZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtyb3dzXT1cIjNcIlxyXG4gICAgICAgICAgW2NvbHNdPVwiMzVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGwgc3R5bGVDbGFzcz1cInAtZC1ibG9ja1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIj57e3F1ZXN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZHJvcGRvd24nXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1hdXRvQ29tcGxldGUgKm5nSWY9XCJmYWxzZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyVmFsdWUoJGV2ZW50LHF1ZXN0aW9uKVwiIGZpZWxkPVwidGV4dFwiIFtkcm9wZG93bl09XCJ0cnVlXCIgbWluTGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCIgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudCxxdWVzdGlvbi5uYW1lKVwiIFtjb21wbGV0ZU9uRm9jdXNdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZmlsdGVyUmVzdWx0XCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQscXVlc3Rpb24ubmFtZSlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIChvbkNsaWNrKT1cImZpbHRlclZhbHVlKCRldmVudCxxdWVzdGlvbilcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW9ncm91cCdcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj4gICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoYXJlZC1yb3dcIiAqbmdJZj1cInF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZSE9J3ZlcmlmaWNhdGlvbidcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJvblJhZGlvT3B0aW9uQ2xpY2soJGV2ZW50LHF1ZXN0aW9uKVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiA+XHJcbiAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24ubmFtZSAmJiBxdWVzdGlvbi5uYW1lPT09J3ZlcmlmaWNhdGlvbidcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChvbk9wdGlvbkNsaWNrKT1cImdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKCRldmVudCxmb3JtKVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW1mYTIgKm5nSWY9XCJpc090cE1vZGFsRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzT3RwTW9kYWxFbmFibGVkXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgWyhmb3JtKV09XCJmb3JtXCIgKHN1Y2Nlc3MpPVwiZW5hYmxlRmllbGRzKClcIj48L2FwcC1tZmEyPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiZGVjaW1hbFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW21pbl09XCJtaW5WYWx1ZVwiIFttYXhdPVwibWF4VmFsdWVcIlxyXG4gICAgICAgICAgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlY2ltYWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJkZWNpbWFsXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttaW5dPVwibWluVmFsdWVcIiBcclxuICAgICAgICAgIFttYXhdPVwibWF4VmFsdWVcIiBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiAgW21heGxlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGggPyBxdWVzdGlvbi5tYXhMZW5ndGggOiBudWxsXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiY3VycmVuY3lcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCIyXCIgY3VycmVuY3k9XCJVU0RcIiBbbWluXT1cIm1pblZhbHVlXCIgXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCIgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFxyXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtZ3JvdXAtaW5saW5lXCI+XHJcbiAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cInF1ZXN0aW9uLm5hbWUgKyAnLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZSArICctJyArIGNob2ljZS52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ211bHRpY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cInF1ZXN0aW9uLm5hbWUgKyAnLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZSArICctJyArIGNob2ljZS52YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NpbmdsZXNlbGVjdGNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3NpbXBsZWNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxyXG4gICAgICAgICAgPHAtY2hlY2tib3ggYmluYXJ5PVwidHJ1ZVwiIGlucHV0SWQ9XCJiaW5hcnlcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImJpbmFyeVwiPnt7cXVlc3Rpb24udGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6IDNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkaXNwbGF5dGV4dGFzbGFiZWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGxhYmVsPnt7Z2V0VGV4dChmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdLnZhbHVlKX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8bGFiZWw+e3txdWVzdGlvbi50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2Rpc3BsYXlBc0xhYmVsXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1saW5rJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2xhYmVsV2l0aExpbmtdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLXBvcHVwJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtsYWJlbFdpdGhQb3B1cF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCIgW2xhYmVsV2l0aExpbmtdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIFxyXG4gICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInJlc3BvbnNpdmVcIiAqbmdTd2l0Y2hDYXNlPVwiJ3BhbmVsJ1wiPlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHF1ZXN0aW9uLmVsZW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJlbGVtZW50LmNvbEVsZW1lbnQ9PT0nQ09MMScgJiYgdmlzaWJsZUlmKGVsZW1lbnQudmlzaWJsZUlmLGVsZW1lbnQubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgW3NpemVYbF09XCJlbGVtZW50LnNpemVYTFwiIFtzaXplTGddPVwiZWxlbWVudC5zaXplTEdcIiBbc2l6ZU1kXT1cImVsZW1lbnQuc2l6ZU1EXCJcclxuICAgICAgICAgICAgICAgIFtvZmZzZXRNZF09XCJlbGVtZW50Lm9mZlNldE1EXCIgY2xhc3M9XCJjb2wtZml0LWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcXVlc3Rpb24gW3F1ZXN0aW9uXT1cImVsZW1lbnRcIiBbZm9ybV09XCJmb3JtXCIgW2ZvclNjcmVlblF1ZXN0aW9ubmFpcmVdPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcXVlc3Rpb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBxdWVzdGlvbi5lbGVtZW50c1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiZWxlbWVudC5jb2xFbGVtZW50PT09J0NPTDInICYmIHZpc2libGVJZihlbGVtZW50LnZpc2libGVJZixlbGVtZW50Lm5hbWUpXCJcclxuICAgICAgICAgICAgICAgIFtzaXplWGxdPVwiZWxlbWVudC5zaXplWExcIiBbc2l6ZUxnXT1cImVsZW1lbnQuc2l6ZUxHXCIgW3NpemVNZF09XCJlbGVtZW50LnNpemVNRFwiXHJcbiAgICAgICAgICAgICAgICBbb2Zmc2V0TWRdPVwiZWxlbWVudC5vZmZTZXRNRFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1xdWVzdGlvbiBbcXVlc3Rpb25dPVwiZWxlbWVudFwiIFtmb3JtXT1cImZvcm1cIiBbZm9yU2NyZWVuUXVlc3Rpb25uYWlyZV09XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1xdWVzdGlvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi50eXBlIT0ncGFuZWwnXCI+XHJcbiAgICA8c21hbGwgY2xhc3M9XCJwLWVycm9yXCIgKm5nSWY9XCJpc1ZhbGlkIT0nJ1wiIFtAcm93RXhwYW5zaW9uVHJpZ2dlcl09XCInYWN0aXZlJ1wiPnt7aXNWYWxpZCB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtfX08L3NtYWxsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=