@reusa/ngx-reusa-app-lib 0.0.732 → 0.1.731
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
- package/esm2022/lib/components/address/address.component.mjs +487 -0
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
- package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
- package/esm2022/lib/components/card/card.component.mjs +55 -0
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
- package/esm2022/lib/components/content/content.component.mjs +61 -0
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
- package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
- package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
- package/esm2022/lib/components/error/error.component.mjs +86 -0
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
- package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
- package/esm2022/lib/components/footer/footer.component.mjs +332 -0
- package/esm2022/lib/components/header/header.component.mjs +558 -0
- package/esm2022/lib/components/help/help.component.mjs +49 -0
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
- package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
- package/esm2022/lib/components/mask/mask.component.mjs +48 -0
- package/esm2022/lib/components/menu/menu.component.mjs +423 -0
- package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
- package/esm2022/lib/components/msg/msg.component.mjs +48 -0
- package/esm2022/lib/components/news/news.component.mjs +90 -0
- package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
- package/esm2022/lib/components/page/page.component.mjs +136 -0
- package/esm2022/lib/components/profile/profile.component.mjs +177 -0
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
- package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
- package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
- package/esm2022/lib/components/select/select.component.mjs +154 -0
- package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
- package/esm2022/lib/components/test/test.component.mjs +19 -0
- package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
- package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
- package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
- package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
- package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
- package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
- package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
- package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
- package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
- package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
- package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
- package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
- package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
- package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
- package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
- package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
- package/esm2022/lib/models/dashboard-model.mjs +3 -0
- package/esm2022/lib/models/dependent.model.mjs +8 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
- package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
- package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
- package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
- package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
- package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
- package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
- package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
- package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
- package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
- package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
- package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
- package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
- package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
- package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
- package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
- package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
- package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
- package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
- package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
- package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
- package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
- package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
- package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
- package/esm2022/lib/services/login/login.service.mjs +330 -0
- package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
- package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
- package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
- package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
- package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
- package/esm2022/lib/validations/AppRegex.mjs +45 -0
- package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
- package/{esm2020 → esm2022}/public-api.mjs +131 -131
- package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
- package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/annimations/app-animations.d.ts +3 -3
- package/lib/components/add-employer/add-employer.component.d.ts +276 -276
- package/lib/components/add-participant/add-participant.component.d.ts +45 -45
- package/lib/components/add-payment/add-payment.component.d.ts +33 -33
- package/lib/components/address/address.component.d.ts +68 -68
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +39 -39
- package/lib/components/captcha/captcha.component.d.ts +44 -44
- package/lib/components/card/card.component.d.ts +11 -11
- package/lib/components/contact-us/contact-us.component.d.ts +105 -107
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/content/content.component.d.ts +13 -13
- package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
- package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
- package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
- package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
- package/lib/components/disclosure/disclosure.component.d.ts +12 -12
- package/lib/components/dropdown/dropdown.component.d.ts +581 -207
- package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
- package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
- package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
- package/lib/components/email-update/email-update.component.d.ts +31 -31
- package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +17 -17
- package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
- package/lib/components/file-download/file-download.component.d.ts +22 -22
- package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
- package/lib/components/footer/footer.component.d.ts +36 -36
- package/lib/components/header/header.component.d.ts +59 -58
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/help/help.component.d.ts +10 -10
- package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
- package/lib/components/info/info.component.d.ts +22 -22
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
- package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
- package/lib/components/mask/mask.component.d.ts +11 -11
- package/lib/components/menu/menu.component.d.ts +43 -43
- package/lib/components/mfa/mfa.component.d.ts +59 -59
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
- package/lib/components/money-expect/money-expect.component.d.ts +18 -18
- package/lib/components/msg/msg.component.d.ts +10 -10
- package/lib/components/news/news.component.d.ts +14 -14
- package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
- package/lib/components/page/page.component.d.ts +23 -23
- package/lib/components/profile/profile.component.d.ts +28 -28
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
- package/lib/components/questionnaire/AppValidators.d.ts +14 -14
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/FbConstants.d.ts +7 -7
- package/lib/components/questionnaire/SelectItem.d.ts +4 -4
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-base.d.ts +16 -16
- package/lib/components/questionnaire/question-control.service.d.ts +19 -19
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +18 -18
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/read-more/read-more.component.d.ts +14 -14
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
- package/lib/components/search-employer/search-employer.component.d.ts +37 -36
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/select/select.component.d.ts +55 -55
- package/lib/components/ssn/ssn.component.d.ts +11 -11
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
- package/lib/components/test/test.component.d.ts +8 -8
- package/lib/components/user-login/user-login.component.d.ts +48 -48
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
- package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
- package/lib/directives/caps-lock.directive.d.ts +11 -11
- package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
- package/lib/enums/EmailStatusEnum.d.ts +7 -7
- package/lib/guards/auth.guard.d.ts +28 -28
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/guards/no-login/no-login.guard.d.ts +11 -11
- package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
- package/lib/models/AddressComponentModel.d.ts +12 -12
- package/lib/models/BankDetailsComponentModel.d.ts +11 -11
- package/lib/models/BankDetailsModel.d.ts +4 -4
- package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
- package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
- package/lib/models/ErrorModel.d.ts +6 -6
- package/lib/models/FileModel.d.ts +4 -4
- package/lib/models/LibConstants.d.ts +112 -112
- package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
- package/lib/models/NotificationModel.d.ts +10 -10
- package/lib/models/OtpAuthModel.d.ts +6 -6
- package/lib/models/PaymentComponentModel.d.ts +7 -7
- package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
- package/lib/models/SsaVerificationModel.d.ts +8 -8
- package/lib/models/TrendModel.d.ts +13 -13
- package/lib/models/UserDetailsModel.d.ts +9 -9
- package/lib/models/UserModel.d.ts +46 -46
- package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
- package/lib/models/claimant/ClaimantModel.d.ts +22 -22
- package/lib/models/claimant/JobResultsData.d.ts +7 -7
- package/lib/models/claimant/MatchingJobs.d.ts +12 -12
- package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
- package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
- package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
- package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
- package/lib/models/cmp/ContactUsModel.d.ts +22 -22
- package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
- package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
- package/lib/models/cmp/messageRourceModel.d.ts +5 -5
- package/lib/models/dashboard-model.d.ts +43 -43
- package/lib/models/dependent.model.d.ts +11 -18
- package/lib/models/dependent.model.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
- package/lib/models/questionnaire/ComboModel.d.ts +85 -85
- package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
- package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
- package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
- package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
- package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
- package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
- package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
- package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
- package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
- package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
- package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
- package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
- package/lib/models/questionnaire/StatusModel.d.ts +15 -15
- package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
- package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
- package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
- package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
- package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
- package/lib/pages/BasePage.d.ts +26 -26
- package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
- package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
- package/lib/pages/common/landing/landing.component.d.ts +24 -24
- package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
- package/lib/pages/common/login/login.component.d.ts +64 -64
- package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
- package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
- package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
- package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
- package/lib/pages/popovers/language/language.page.d.ts +16 -16
- package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
- package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
- package/lib/pipes/filter.pipe.d.ts +7 -7
- package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
- package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
- package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
- package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
- package/lib/services/base-service.d.ts +92 -92
- package/lib/services/captcha/captcha.service.d.ts +15 -15
- package/lib/services/case-service/case.service.d.ts +19 -19
- package/lib/services/chatbot/chatbot.service.d.ts +60 -60
- package/lib/services/chatbot/script.const.d.ts +15 -15
- package/lib/services/claimant/claimant.service.d.ts +17 -17
- package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
- package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant.service.d.ts +19 -19
- package/lib/services/claims/claims.service.d.ts +39 -39
- package/lib/services/cmp-service/cmp.service.d.ts +33 -33
- package/lib/services/dms-service/dms.service.d.ts +23 -23
- package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
- package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
- package/lib/services/help/help.service.d.ts +25 -25
- package/lib/services/help/help.service.d.ts.map +1 -1
- package/lib/services/idle/idle.service.d.ts +43 -43
- package/lib/services/logger/logger.service.d.ts +31 -31
- package/lib/services/logger/logger.service.d.ts.map +1 -1
- package/lib/services/login/login.service.d.ts +75 -75
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/maintenance/maintenance.service.d.ts +15 -15
- package/lib/services/notification/notification.service.d.ts +38 -38
- package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
- package/lib/services/questionnaire/validation.service.d.ts +81 -81
- package/lib/services/security-service/security.service.d.ts +14 -14
- package/lib/services/tour/tour.service.d.ts +24 -24
- package/lib/services/util/util.service.d.ts +190 -190
- package/lib/validations/AppRegex.d.ts +43 -43
- package/lib/validations/AppValidators.d.ts +53 -53
- package/package.json +6 -11
- package/public-api.d.ts +121 -121
- package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
- package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
- package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
- package/esm2020/lib/components/address/address.component.mjs +0 -480
- package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
- package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
- package/esm2020/lib/components/card/card.component.mjs +0 -54
- package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
- package/esm2020/lib/components/content/content.component.mjs +0 -60
- package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
- package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
- package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
- package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
- package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
- package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
- package/esm2020/lib/components/error/error.component.mjs +0 -85
- package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
- package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
- package/esm2020/lib/components/footer/footer.component.mjs +0 -337
- package/esm2020/lib/components/header/header.component.mjs +0 -566
- package/esm2020/lib/components/help/help.component.mjs +0 -48
- package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
- package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
- package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
- package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
- package/esm2020/lib/components/mask/mask.component.mjs +0 -48
- package/esm2020/lib/components/menu/menu.component.mjs +0 -430
- package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
- package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
- package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
- package/esm2020/lib/components/msg/msg.component.mjs +0 -48
- package/esm2020/lib/components/news/news.component.mjs +0 -89
- package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
- package/esm2020/lib/components/page/page.component.mjs +0 -138
- package/esm2020/lib/components/profile/profile.component.mjs +0 -182
- package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
- package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
- package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
- package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
- package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
- package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
- package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
- package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
- package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
- package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
- package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
- package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
- package/esm2020/lib/components/select/select.component.mjs +0 -153
- package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
- package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
- package/esm2020/lib/components/test/test.component.mjs +0 -18
- package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
- package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
- package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
- package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
- package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
- package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
- package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
- package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
- package/esm2020/lib/models/dashboard-model.mjs +0 -3
- package/esm2020/lib/models/dependent.model.mjs +0 -8
- package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
- package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
- package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
- package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
- package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
- package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
- package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
- package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
- package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
- package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
- package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
- package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
- package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
- package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
- package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
- package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
- package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
- package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
- package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
- package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
- package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
- package/esm2020/lib/services/login/login.service.mjs +0 -330
- package/esm2020/lib/validations/AppRegex.mjs +0 -45
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
- package/fesm2020/reusa-ngx-reusa-app-lib.mjs.map +0 -1
|
@@ -1,419 +1,420 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class QuestionControlService {
|
|
6
|
-
constructor(datepipe) {
|
|
7
|
-
this.datepipe = datepipe;
|
|
8
|
-
this.sharedData = new Map();
|
|
9
|
-
}
|
|
10
|
-
toFormGroup(questions, pageIndex, params) {
|
|
11
|
-
//console.log('params',params);
|
|
12
|
-
const group = {};
|
|
13
|
-
let dataFound = false;
|
|
14
|
-
let pages = questions[0].pages[pageIndex];
|
|
15
|
-
if (pages && pages.isPlaceHolder) {
|
|
16
|
-
return new UntypedFormGroup(group);
|
|
17
|
-
}
|
|
18
|
-
let strIntoObj;
|
|
19
|
-
if (this.getData(pageIndex)) {
|
|
20
|
-
strIntoObj = JSON.parse(this.getData(pageIndex));
|
|
21
|
-
dataFound = true;
|
|
22
|
-
//console.log('strIntoObj ',strIntoObj['claimantEmpName102']);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
dataFound = false;
|
|
26
|
-
}
|
|
27
|
-
//console.log('dataFound', dataFound);
|
|
28
|
-
///console.log('pages',pages);
|
|
29
|
-
pages.elements.forEach(element => {
|
|
30
|
-
let contrlType = element.type;
|
|
31
|
-
if (contrlType === 'comment') {
|
|
32
|
-
if (dataFound) {
|
|
33
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
group[element.name] = new UntypedFormControl(null);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (contrlType === 'dropdown') {
|
|
40
|
-
if (dataFound) {
|
|
41
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
if (element.defaultValue) {
|
|
45
|
-
console.log('element.defaultValue', element.defaultValue);
|
|
46
|
-
const choice = element.defaultValue;
|
|
47
|
-
var jsonObject = JSON.parse(choice);
|
|
48
|
-
console.log('element.defaultValue cho', jsonObject);
|
|
49
|
-
group[element.name] = new UntypedFormControl(null);
|
|
50
|
-
group[element.name]?.patchValue(element.choices.filter(c => c.value == jsonObject.value)[0]);
|
|
51
|
-
group[element.name]?.updateValueAndValidity();
|
|
52
|
-
console.log('group[element.name]', group[element.name].value);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
group[element.name] = new UntypedFormControl(null);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (contrlType === 'text' && element.inputType != 'date') {
|
|
60
|
-
if (element.customTag && element.customTag === 'dueamt') {
|
|
61
|
-
group[element.name] = new UntypedFormControl("121");
|
|
62
|
-
}
|
|
63
|
-
else if (element.customTag && element.customTag === 'ean') {
|
|
64
|
-
group[element.name] = new UntypedFormControl("81-00586-0-01");
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
if (dataFound) {
|
|
68
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
69
|
-
}
|
|
70
|
-
else if (element.defaultValue) {
|
|
71
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (contrlType === 'text' && element.inputType === 'date') {
|
|
79
|
-
if (dataFound) {
|
|
80
|
-
// console.log('Date strIntoObj[element.name]', strIntoObj[element.name])
|
|
81
|
-
group[element.name] = new UntypedFormControl(new Date(strIntoObj[element.name]));
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
if (params.get(element.name)) {
|
|
85
|
-
var splitArray = params.get(element.name).split('-');
|
|
86
|
-
//console.log('splitArray',splitArray)
|
|
87
|
-
let date;
|
|
88
|
-
date = new Date();
|
|
89
|
-
date.setMonth(Number(splitArray[0]) - 1);
|
|
90
|
-
date.setFullYear(Number(splitArray[2]));
|
|
91
|
-
date.setDate(Number(splitArray[1]));
|
|
92
|
-
let formattedDate = this.datepipe.transform(date, 'MM-dd-yyyy');
|
|
93
|
-
// console.log('maxDate',date,'formattedDate',formattedDate);
|
|
94
|
-
group[element.name] = new UntypedFormControl(formattedDate);
|
|
95
|
-
}
|
|
96
|
-
else if (element.defaultValue) {
|
|
97
|
-
var dateString = element.defaultValue.trim().split('-');
|
|
98
|
-
let date;
|
|
99
|
-
date = new Date();
|
|
100
|
-
date.setMonth(Number(dateString[0]) - 1);
|
|
101
|
-
date.setFullYear(Number(dateString[2]));
|
|
102
|
-
date.setDate(Number(dateString[1]));
|
|
103
|
-
let formattedDate = this.datepipe.transform(date, 'MM-dd-yyyy');
|
|
104
|
-
group[element.name] = new UntypedFormControl(formattedDate);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
group[element.name] = new UntypedFormControl(null);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (contrlType === 'radiogroup') {
|
|
112
|
-
if (dataFound) {
|
|
113
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
114
|
-
}
|
|
115
|
-
else if (element.defaultValue) {
|
|
116
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
117
|
-
}
|
|
118
|
-
else if (params.get(element.name)) {
|
|
119
|
-
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
group[element.name] = new UntypedFormControl(null);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (contrlType === 'checkbox' || contrlType === 'singleselectcheckbox') {
|
|
126
|
-
if (dataFound) {
|
|
127
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
128
|
-
}
|
|
129
|
-
else if (element.defaultValue) {
|
|
130
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
131
|
-
}
|
|
132
|
-
else if (params.get(element.name)) {
|
|
133
|
-
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
group[element.name] = new UntypedFormControl(null);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (contrlType === 'autocomplete') {
|
|
140
|
-
if (dataFound) {
|
|
141
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
group[element.name] = new UntypedFormControl(null);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
if (contrlType === 'simplecheckbox') {
|
|
148
|
-
if (dataFound) {
|
|
149
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
150
|
-
}
|
|
151
|
-
else if (params.get(element.name)) {
|
|
152
|
-
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
group[element.name] = new UntypedFormControl(null);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (contrlType === 'multicheckbox') {
|
|
159
|
-
if (dataFound) {
|
|
160
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
161
|
-
}
|
|
162
|
-
else if (params.get(element.name)) {
|
|
163
|
-
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
group[element.name] = new UntypedFormControl(null);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (contrlType === 'button') {
|
|
170
|
-
if (dataFound) {
|
|
171
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
group[element.name] = new UntypedFormControl();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (contrlType === 'displaytextaslabel') {
|
|
178
|
-
if (dataFound) {
|
|
179
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
group[element.name] = new UntypedFormControl(null);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
if (contrlType === 'hidden') {
|
|
186
|
-
if (dataFound) {
|
|
187
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
188
|
-
}
|
|
189
|
-
else if (element.defaultValue) {
|
|
190
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
group[element.name] = new UntypedFormControl(null);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
if (contrlType === 'number') {
|
|
197
|
-
if (dataFound) {
|
|
198
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
199
|
-
}
|
|
200
|
-
else if (element.defaultValue) {
|
|
201
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
group[element.name] = new UntypedFormControl(null);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (contrlType === 'decimal') {
|
|
208
|
-
if (dataFound) {
|
|
209
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
210
|
-
}
|
|
211
|
-
else if (element.defaultValue) {
|
|
212
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
group[element.name] = new UntypedFormControl(null);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (contrlType === 'currency') {
|
|
219
|
-
if (dataFound) {
|
|
220
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
221
|
-
}
|
|
222
|
-
else if (element.defaultValue) {
|
|
223
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
group[element.name] = new UntypedFormControl(null);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
if (contrlType === 'label-with-checkbox') {
|
|
230
|
-
if (dataFound) {
|
|
231
|
-
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
232
|
-
}
|
|
233
|
-
else if (element.defaultValue) {
|
|
234
|
-
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
group[element.name] = new UntypedFormControl(null);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
if (contrlType === 'panel') {
|
|
241
|
-
element.elements.forEach(panelElement => {
|
|
242
|
-
let panelContrlType = panelElement.type;
|
|
243
|
-
if (panelContrlType === 'dropdown') {
|
|
244
|
-
if (dataFound) {
|
|
245
|
-
// console.log('panelElement.name',panelElement.name,' strIntoObj[panelElement.name]',strIntoObj[panelElement.name]);
|
|
246
|
-
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
if (panelElement.defaultValue) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
defaultChoice
|
|
254
|
-
defaultChoice.
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
date
|
|
282
|
-
date
|
|
283
|
-
date.
|
|
284
|
-
date.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdkYsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRHJDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2dCLENBQUM7SUFDeEMsV0FBVyxDQUFDLFNBQWlDLEVBQUUsU0FBaUIsRUFBQyxNQUF5QjtRQUUxRiwrQkFBK0I7UUFFN0IsTUFBTSxLQUFLLEdBQWlELEVBQUUsQ0FBQztRQUMvRCxJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7UUFFL0IsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFDO1lBQzlCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksVUFBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakQsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixnRUFBZ0U7U0FDakU7YUFBTTtZQUNMLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDbkI7UUFDRCxzQ0FBc0M7UUFFdEMsOEJBQThCO1FBRTlCLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQy9CLElBQUksVUFBVSxHQUFXLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEMsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFO2dCQUM1QixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFDRCxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQzdCLElBQUksU0FBUyxFQUFFO29CQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFNO29CQUNMLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQzt3QkFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3pELE1BQU0sTUFBTSxHQUFRLE9BQU8sQ0FBQyxZQUFZLENBQUM7d0JBQ3pDLElBQUksVUFBVSxHQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLEVBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ25ELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUM3RixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7d0JBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDOUQ7eUJBQUs7d0JBQ0osS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNwRDtpQkFDRjthQUNGO1lBQ0QsSUFBSSxVQUFVLEtBQUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFO2dCQUV4RCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUU7b0JBQ3ZELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDckQ7cUJBQ0ksSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFO29CQUN6RCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQy9EO3FCQUNJO29CQUVILElBQUksU0FBUyxFQUFFO3dCQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ3hFO3lCQUNJLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQzt3QkFDM0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztxQkFFcEU7eUJBQ0k7d0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ3hFO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7Z0JBRXpELElBQUksU0FBUyxFQUFFO29CQUNmLDBFQUEwRTtvQkFDeEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsRjtxQkFBTTtvQkFDTCxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO3dCQUUxQixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3JELHNDQUFzQzt3QkFDdEMsSUFBSSxJQUFXLENBQUM7d0JBQ2hCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEMsSUFBSSxhQUFhLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO3dCQUNoRSw2REFBNkQ7d0JBQzlELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDM0Q7eUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO3dCQUMzQixJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDeEQsSUFBSSxJQUFXLENBQUM7d0JBQ2hCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEMsSUFBSSxhQUFhLEdBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO3dCQUMvRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQzdEO3lCQUNHO3dCQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDcEQ7aUJBQ0Y7YUFDRjtZQUNELElBQUksVUFBVSxLQUFLLFlBQVksRUFBRTtnQkFDL0IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO29CQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0k7b0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBQ0QsSUFBSSxVQUFVLEtBQUssVUFBVSxJQUFJLFVBQVUsS0FBSyxzQkFBc0IsRUFBRTtnQkFDdEUsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUMzQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO29CQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0k7b0JBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBQ0QsSUFBSSxVQUFVLEtBQUssY0FBYyxFQUFFO2dCQUNqQyxJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxnQkFBZ0IsRUFBRTtnQkFDbkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLO29CQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLGVBQWUsRUFBRTtnQkFDbEMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQztvQkFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLO29CQUNKLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7aUJBQ2hEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxvQkFBb0IsRUFBRTtnQkFDdkMsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUMzQixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBSyxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7b0JBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDeEU7cUJBQUssSUFBRyxPQUFPLENBQUMsWUFBWSxFQUFDO29CQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUNwRTtxQkFBTTtvQkFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQzVCLElBQUksU0FBUyxFQUFFO29CQUNiLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3hFO3FCQUFLLElBQUcsT0FBTyxDQUFDLFlBQVksRUFBQztvQkFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDcEU7cUJBQU07b0JBQ0wsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNwRDthQUNGO1lBRUQsSUFBSSxVQUFVLEtBQUssVUFBVSxFQUFFO2dCQUM3QixJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBSyxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7b0JBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUVELElBQUksVUFBVSxLQUFLLHFCQUFxQixFQUFFO2dCQUN4QyxJQUFJLFNBQVMsRUFBRTtvQkFDYixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN4RTtxQkFBSyxJQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUM7b0JBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ3BFO3FCQUFNO29CQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEQ7YUFDRjtZQUdELElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtnQkFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7b0JBQ3RDLElBQUksZUFBZSxHQUFXLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ2hELElBQUksZUFBZSxLQUFLLFVBQVUsRUFBRTt3QkFDbEMsSUFBSSxTQUFTLEVBQUU7NEJBQ2Qsc0hBQXNIOzRCQUNySCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFBTTs0QkFDTCxJQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUM7Z0NBQzNCLE1BQU0sTUFBTSxHQUFRLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0NBQzlDLElBQUksVUFBVSxHQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzdDLElBQUksYUFBYSxHQUFVLElBQUksT0FBTyxFQUFFLENBQUM7Z0NBQ3pDLGFBQWEsQ0FBQyxJQUFJLEdBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQ0FDbkMsYUFBYSxDQUFDLEtBQUssR0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO2dDQUN2QyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7NkJBQ2hFO2lDQUFJO2dDQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzs2QkFDekQ7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsSUFBSSxlQUFlLEtBQUssTUFBTSxJQUFJLFlBQVksQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFO3dCQUNsRSxJQUFJLFNBQVMsRUFBRTs0QkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFDSyxJQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUM7NEJBQ2pDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7eUJBQzlFOzZCQUNJOzRCQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxNQUFNLElBQUksWUFBWSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7d0JBRW5FLElBQUksU0FBUyxFQUFFOzRCQUNiLGtGQUFrRjs0QkFDbEYsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUM1Rjs2QkFDSSxJQUFHLFlBQVksQ0FBQyxZQUFZLEVBQUM7NEJBQ2hDLElBQUksVUFBVSxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUM3RCxJQUFJLElBQVcsQ0FBQzs0QkFDaEIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNwQyxJQUFJLGFBQWEsR0FBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7NEJBQy9ELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDbEU7NkJBRUk7NEJBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxZQUFZLEVBQUU7d0JBQ3BDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUNLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQ0ksSUFBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQzs0QkFDcEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUNJOzRCQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0Y7b0JBRUQsSUFBSSxlQUFlLEtBQUssVUFBVSxJQUFJLGVBQWUsS0FBSyxzQkFBc0IsRUFBRTt3QkFDaEYsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQ0ssSUFBRyxZQUFZLENBQUMsWUFBWSxFQUFDOzRCQUNqQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUM5RTs2QkFDSSxJQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFDOzRCQUNwQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQ0k7NEJBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFDRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFNOzRCQUNMLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0Y7b0JBQ0QsSUFBSSxlQUFlLEtBQUssY0FBYyxFQUFFO3dCQUN0QyxJQUFJLFNBQVMsRUFBRTs0QkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO29CQUVELElBQUksZUFBZSxLQUFLLG9CQUFvQixFQUFFO3dCQUM1QyxJQUFJLFNBQVMsRUFBRTs0QkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3lCQUNsRjs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO29CQUVELElBQUksZUFBZSxLQUFLLFFBQVEsRUFBRTt3QkFDaEMsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxRQUFRLEVBQUU7d0JBQ2hDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxTQUFTLEVBQUU7d0JBQ2pDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxVQUFVLEVBQUU7d0JBQ2xDLElBQUksU0FBUyxFQUFFOzRCQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtvQkFFRCxJQUFJLGVBQWUsS0FBSyxxQkFBcUIsRUFBRTt3QkFDN0MsSUFBSSxTQUFTLEVBQUU7NEJBQ2IsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt5QkFDbEY7NkJBQUssSUFBRyxZQUFZLENBQUMsWUFBWSxFQUFDOzRCQUNqQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO3lCQUM5RTs2QkFBTTs0QkFDTCxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEO3FCQUNGO2dCQUVILENBQUMsQ0FBQyxDQUFBO2FBRUg7UUFFSCxDQUFDLENBQUMsQ0FBQztRQUNILDhCQUE4QjtRQUM5QixPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUlELE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFLO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDOzs0RkF6WlUsc0JBQXNCOzRFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVTs7QUE2WlgsTUFBTSxPQUFPLE9BQU87Q0FHbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFF1ZXN0aW9uQmFzZSB9IGZyb20gJy4vcXVlc3Rpb24tYmFzZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkNvbnRyb2xTZXJ2aWNlIHtcblxuICBzaGFyZWREYXRhID0gbmV3IE1hcCgpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZXBpcGU6IERhdGVQaXBlKXt9XG4gIHRvRm9ybUdyb3VwKHF1ZXN0aW9uczogUXVlc3Rpb25CYXNlPHN0cmluZz5bXSwgcGFnZUluZGV4OiBudW1iZXIscGFyYW1zOk1hcDxzdHJpbmcsc3RyaW5nPikge1xuICAgIFxuICAvL2NvbnNvbGUubG9nKCdwYXJhbXMnLHBhcmFtcyk7XG4gICBcbiAgICBjb25zdCBncm91cDogIHtba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O30gPSB7fTtcbiAgICBsZXQgZGF0YUZvdW5kOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBsZXQgcGFnZXMgPSBxdWVzdGlvbnNbMF0ucGFnZXNbcGFnZUluZGV4XTtcblxuICAgIGlmKHBhZ2VzICYmIHBhZ2VzLmlzUGxhY2VIb2xkZXIpe1xuICAgICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKGdyb3VwKTtcbiAgICB9XG5cbiAgICBsZXQgc3RySW50b09iajogW107XG4gICAgaWYgKHRoaXMuZ2V0RGF0YShwYWdlSW5kZXgpKSB7XG4gICAgICBzdHJJbnRvT2JqID0gSlNPTi5wYXJzZSh0aGlzLmdldERhdGEocGFnZUluZGV4KSk7XG4gICAgICBkYXRhRm91bmQgPSB0cnVlO1xuICAgICAgLy9jb25zb2xlLmxvZygnc3RySW50b09iaiAgICcsc3RySW50b09ialsnY2xhaW1hbnRFbXBOYW1lMTAyJ10pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhRm91bmQgPSBmYWxzZTtcbiAgICB9XG4gICAgLy9jb25zb2xlLmxvZygnZGF0YUZvdW5kJywgZGF0YUZvdW5kKTtcbiAgICBcbiAgICAvLy9jb25zb2xlLmxvZygncGFnZXMnLHBhZ2VzKTtcblxuICAgIHBhZ2VzLmVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBsZXQgY29udHJsVHlwZTogc3RyaW5nID0gZWxlbWVudC50eXBlO1xuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdjb21tZW50Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdkcm9wZG93bicpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2VsZW1lbnQuZGVmYXVsdFZhbHVlJyxlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBjaG9pY2U6c3RyaW5nPWVsZW1lbnQuZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7ICBcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlbGVtZW50LmRlZmF1bHRWYWx1ZSBjaG8nLGpzb25PYmplY3QpO1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdPy5wYXRjaFZhbHVlKGVsZW1lbnQuY2hvaWNlcy5maWx0ZXIoYyA9PiBjLnZhbHVlID09IGpzb25PYmplY3QudmFsdWUpWzBdKTtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdncm91cFtlbGVtZW50Lm5hbWVdJyxncm91cFtlbGVtZW50Lm5hbWVdLnZhbHVlKTtcbiAgICAgICAgICB9IGVsc2V7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAndGV4dCcgJiYgZWxlbWVudC5pbnB1dFR5cGUgIT0gJ2RhdGUnKSB7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQuY3VzdG9tVGFnICYmIGVsZW1lbnQuY3VzdG9tVGFnID09PSAnZHVlYW10Jykge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiMTIxXCIpO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIGlmIChlbGVtZW50LmN1c3RvbVRhZyAmJiBlbGVtZW50LmN1c3RvbVRhZyA9PT0gJ2VhbicpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcIjgxLTAwNTg2LTAtMDFcIik7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2Uge1xuXG4gICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICB9IFxuICAgICAgICAgIGVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuXG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAndGV4dCcgJiYgZWxlbWVudC5pbnB1dFR5cGUgPT09ICdkYXRlJykge1xuXG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgLy8gIGNvbnNvbGUubG9nKCdEYXRlIHN0ckludG9PYmpbZWxlbWVudC5uYW1lXScsIHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSlcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChuZXcgRGF0ZShzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xuXG4gICAgICAgICAgICB2YXIgc3BsaXRBcnJheSA9IHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnc3BsaXRBcnJheScsc3BsaXRBcnJheSlcbiAgICAgICAgICAgIGxldCBkYXRlIDogRGF0ZTtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgZGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcbiAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKHNwbGl0QXJyYXlbMl0pKTtcbiAgICAgICAgICAgIGRhdGUuc2V0RGF0ZShOdW1iZXIoc3BsaXRBcnJheVsxXSkpO1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPXRoaXMuZGF0ZXBpcGUudHJhbnNmb3JtKGRhdGUsICdNTS1kZC15eXl5Jyk7XG4gICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdtYXhEYXRlJyxkYXRlLCdmb3JtYXR0ZWREYXRlJyxmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICB2YXIgZGF0ZVN0cmluZyA9IGVsZW1lbnQuZGVmYXVsdFZhbHVlLnRyaW0oKS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgbGV0IGRhdGUgOiBEYXRlO1xuICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBkYXRlLnNldE1vbnRoKE51bWJlcihkYXRlU3RyaW5nWzBdKSAtIDEpO1xuICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoZGF0ZVN0cmluZ1syXSkpO1xuICAgICAgICAgICAgZGF0ZS5zZXREYXRlKE51bWJlcihkYXRlU3RyaW5nWzFdKSk7XG4gICAgICAgICAgICBsZXQgZm9ybWF0dGVkRGF0ZSA9dGhpcy5kYXRlcGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ01NLWRkLXl5eXknKTtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZvcm1hdHRlZERhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3JhZGlvZ3JvdXAnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnY2hlY2tib3gnIHx8IGNvbnRybFR5cGUgPT09ICdzaW5nbGVzZWxlY3RjaGVja2JveCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnc2ltcGxlY2hlY2tib3gnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnbXVsdGljaGVja2JveCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gXG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdidXR0b24nKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdkaXNwbGF5dGV4dGFzbGFiZWwnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnaGlkZGVuJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdkZWNpbWFsJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2N1cnJlbmN5Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2xhYmVsLXdpdGgtY2hlY2tib3gnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgIFxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdwYW5lbCcpIHtcbiAgICAgICAgZWxlbWVudC5lbGVtZW50cy5mb3JFYWNoKHBhbmVsRWxlbWVudCA9PiB7XG4gICAgICAgICAgbGV0IHBhbmVsQ29udHJsVHlwZTogc3RyaW5nID0gcGFuZWxFbGVtZW50LnR5cGU7XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2Ryb3Bkb3duJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdwYW5lbEVsZW1lbnQubmFtZScscGFuZWxFbGVtZW50Lm5hbWUsJyAgc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0nLHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgICBjb25zdCBjaG9pY2U6c3RyaW5nPXBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgdmFyIGpzb25PYmplY3Q6IENob2ljZXMgPSBKU09OLnBhcnNlKGNob2ljZSk7ICBcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdENob2ljZTpDaG9pY2VzPSBuZXcgQ2hvaWNlcygpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHRDaG9pY2UudGV4dD1qc29uT2JqZWN0LnRleHQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdENob2ljZS52YWx1ZT1qc29uT2JqZWN0LnZhbHVlO1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGRlZmF1bHRDaG9pY2UpO1xuICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICd0ZXh0JyAmJiBwYW5lbEVsZW1lbnQuaW5wdXRUeXBlICE9ICdkYXRlJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICBlbHNlICBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ3RleHQnICYmIHBhbmVsRWxlbWVudC5pbnB1dFR5cGUgPT09ICdkYXRlJykge1xuICAgIFxuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKCdEYXRlIHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdJywgc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pXG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUoc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICBlbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICB2YXIgZGF0ZVN0cmluZyA9IHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUudHJpbSgpLnNwbGl0KCctJyk7XG4gICAgICAgICAgICAgIGxldCBkYXRlIDogRGF0ZTtcbiAgICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgIGRhdGUuc2V0TW9udGgoTnVtYmVyKGRhdGVTdHJpbmdbMF0pIC0gMSk7XG4gICAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKGRhdGVTdHJpbmdbMl0pKTtcbiAgICAgICAgICAgICAgZGF0ZS5zZXREYXRlKE51bWJlcihkYXRlU3RyaW5nWzFdKSk7XG4gICAgICAgICAgICAgIGxldCBmb3JtYXR0ZWREYXRlID10aGlzLmRhdGVwaXBlLnRyYW5zZm9ybShkYXRlLCAnTU0tZGQteXl5eScpO1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZvcm1hdHRlZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ3JhZGlvZ3JvdXAnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBwYW5lbENvbnRybFR5cGUgPT09ICdzaW5nbGVzZWxlY3RjaGVja2JveCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgZWxzZSAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnZGVjaW1hbCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2N1cnJlbmN5Jykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnbGFiZWwtd2l0aC1jaGVja2JveCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9ZWxzZSBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pXG5cbiAgICAgIH1cblxuICAgIH0pO1xuICAgIC8vIGNvbnNvbGUubG9nKCdncm91cCcsZ3JvdXApO1xuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Hcm91cChncm91cCk7XG4gIH1cblxuXG5cbiAgc2V0RGF0YShpbmRleCwgZGF0YSkge1xuICAgIHRoaXMuc2hhcmVkRGF0YS5zZXQoaW5kZXgsIGRhdGEpO1xuICB9XG4gIGdldERhdGEoaW5kZXgpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZWREYXRhLmdldChpbmRleCk7XG4gIH1cblxuICBnZXRBbGxEYXRhKCkge1xuICAgIHJldHVybiB0aGlzLnNoYXJlZERhdGE7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENob2ljZXMge1xuICB2YWx1ZT86IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbn0iXX0=
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class QuestionControlService {
|
|
6
|
+
constructor(datepipe) {
|
|
7
|
+
this.datepipe = datepipe;
|
|
8
|
+
this.sharedData = new Map();
|
|
9
|
+
}
|
|
10
|
+
toFormGroup(questions, pageIndex, params) {
|
|
11
|
+
//console.log('params',params);
|
|
12
|
+
const group = {};
|
|
13
|
+
let dataFound = false;
|
|
14
|
+
let pages = questions[0].pages[pageIndex];
|
|
15
|
+
if (pages && pages.isPlaceHolder) {
|
|
16
|
+
return new UntypedFormGroup(group);
|
|
17
|
+
}
|
|
18
|
+
let strIntoObj;
|
|
19
|
+
if (this.getData(pageIndex)) {
|
|
20
|
+
strIntoObj = JSON.parse(this.getData(pageIndex));
|
|
21
|
+
dataFound = true;
|
|
22
|
+
//console.log('strIntoObj ',strIntoObj['claimantEmpName102']);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
dataFound = false;
|
|
26
|
+
}
|
|
27
|
+
//console.log('dataFound', dataFound);
|
|
28
|
+
///console.log('pages',pages);
|
|
29
|
+
pages.elements.forEach(element => {
|
|
30
|
+
let contrlType = element.type;
|
|
31
|
+
if (contrlType === 'comment') {
|
|
32
|
+
if (dataFound) {
|
|
33
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
group[element.name] = new UntypedFormControl(null);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (contrlType === 'dropdown') {
|
|
40
|
+
if (dataFound) {
|
|
41
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (element.defaultValue) {
|
|
45
|
+
console.log('element.defaultValue', element.defaultValue);
|
|
46
|
+
const choice = element.defaultValue;
|
|
47
|
+
var jsonObject = JSON.parse(choice);
|
|
48
|
+
console.log('element.defaultValue cho', jsonObject);
|
|
49
|
+
group[element.name] = new UntypedFormControl(null);
|
|
50
|
+
group[element.name]?.patchValue(element.choices.filter(c => c.value == jsonObject.value)[0]);
|
|
51
|
+
group[element.name]?.updateValueAndValidity();
|
|
52
|
+
console.log('group[element.name]', group[element.name].value);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
group[element.name] = new UntypedFormControl(null);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (contrlType === 'text' && element.inputType != 'date') {
|
|
60
|
+
if (element.customTag && element.customTag === 'dueamt') {
|
|
61
|
+
group[element.name] = new UntypedFormControl("121");
|
|
62
|
+
}
|
|
63
|
+
else if (element.customTag && element.customTag === 'ean') {
|
|
64
|
+
group[element.name] = new UntypedFormControl("81-00586-0-01");
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
if (dataFound) {
|
|
68
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
69
|
+
}
|
|
70
|
+
else if (element.defaultValue) {
|
|
71
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (contrlType === 'text' && element.inputType === 'date') {
|
|
79
|
+
if (dataFound) {
|
|
80
|
+
// console.log('Date strIntoObj[element.name]', strIntoObj[element.name])
|
|
81
|
+
group[element.name] = new UntypedFormControl(new Date(strIntoObj[element.name]));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
if (params.get(element.name)) {
|
|
85
|
+
var splitArray = params.get(element.name).split('-');
|
|
86
|
+
//console.log('splitArray',splitArray)
|
|
87
|
+
let date;
|
|
88
|
+
date = new Date();
|
|
89
|
+
date.setMonth(Number(splitArray[0]) - 1);
|
|
90
|
+
date.setFullYear(Number(splitArray[2]));
|
|
91
|
+
date.setDate(Number(splitArray[1]));
|
|
92
|
+
let formattedDate = this.datepipe.transform(date, 'MM-dd-yyyy');
|
|
93
|
+
// console.log('maxDate',date,'formattedDate',formattedDate);
|
|
94
|
+
group[element.name] = new UntypedFormControl(formattedDate);
|
|
95
|
+
}
|
|
96
|
+
else if (element.defaultValue) {
|
|
97
|
+
var dateString = element.defaultValue.trim().split('-');
|
|
98
|
+
let date;
|
|
99
|
+
date = new Date();
|
|
100
|
+
date.setMonth(Number(dateString[0]) - 1);
|
|
101
|
+
date.setFullYear(Number(dateString[2]));
|
|
102
|
+
date.setDate(Number(dateString[1]));
|
|
103
|
+
let formattedDate = this.datepipe.transform(date, 'MM-dd-yyyy');
|
|
104
|
+
group[element.name] = new UntypedFormControl(formattedDate);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
group[element.name] = new UntypedFormControl(null);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (contrlType === 'radiogroup') {
|
|
112
|
+
if (dataFound) {
|
|
113
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
114
|
+
}
|
|
115
|
+
else if (element.defaultValue) {
|
|
116
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
117
|
+
}
|
|
118
|
+
else if (params.get(element.name)) {
|
|
119
|
+
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
group[element.name] = new UntypedFormControl(null);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (contrlType === 'checkbox' || contrlType === 'singleselectcheckbox') {
|
|
126
|
+
if (dataFound) {
|
|
127
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
128
|
+
}
|
|
129
|
+
else if (element.defaultValue) {
|
|
130
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
131
|
+
}
|
|
132
|
+
else if (params.get(element.name)) {
|
|
133
|
+
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
group[element.name] = new UntypedFormControl(null);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (contrlType === 'autocomplete') {
|
|
140
|
+
if (dataFound) {
|
|
141
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
group[element.name] = new UntypedFormControl(null);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (contrlType === 'simplecheckbox') {
|
|
148
|
+
if (dataFound) {
|
|
149
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
150
|
+
}
|
|
151
|
+
else if (params.get(element.name)) {
|
|
152
|
+
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
group[element.name] = new UntypedFormControl(null);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (contrlType === 'multicheckbox') {
|
|
159
|
+
if (dataFound) {
|
|
160
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
161
|
+
}
|
|
162
|
+
else if (params.get(element.name)) {
|
|
163
|
+
group[element.name] = new UntypedFormControl(params.get(element.name));
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
group[element.name] = new UntypedFormControl(null);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (contrlType === 'button') {
|
|
170
|
+
if (dataFound) {
|
|
171
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
group[element.name] = new UntypedFormControl();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (contrlType === 'displaytextaslabel') {
|
|
178
|
+
if (dataFound) {
|
|
179
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
group[element.name] = new UntypedFormControl(null);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (contrlType === 'hidden') {
|
|
186
|
+
if (dataFound) {
|
|
187
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
188
|
+
}
|
|
189
|
+
else if (element.defaultValue) {
|
|
190
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
group[element.name] = new UntypedFormControl(null);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (contrlType === 'number') {
|
|
197
|
+
if (dataFound) {
|
|
198
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
199
|
+
}
|
|
200
|
+
else if (element.defaultValue) {
|
|
201
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
group[element.name] = new UntypedFormControl(null);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (contrlType === 'decimal') {
|
|
208
|
+
if (dataFound) {
|
|
209
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
210
|
+
}
|
|
211
|
+
else if (element.defaultValue) {
|
|
212
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
group[element.name] = new UntypedFormControl(null);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (contrlType === 'currency') {
|
|
219
|
+
if (dataFound) {
|
|
220
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
221
|
+
}
|
|
222
|
+
else if (element.defaultValue) {
|
|
223
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
group[element.name] = new UntypedFormControl(null);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (contrlType === 'label-with-checkbox') {
|
|
230
|
+
if (dataFound) {
|
|
231
|
+
group[element.name] = new UntypedFormControl(strIntoObj[element.name]);
|
|
232
|
+
}
|
|
233
|
+
else if (element.defaultValue) {
|
|
234
|
+
group[element.name] = new UntypedFormControl(element.defaultValue);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
group[element.name] = new UntypedFormControl(null);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
if (contrlType === 'panel') {
|
|
241
|
+
element.elements.forEach(panelElement => {
|
|
242
|
+
let panelContrlType = panelElement.type;
|
|
243
|
+
if (panelContrlType === 'dropdown') {
|
|
244
|
+
if (dataFound) {
|
|
245
|
+
// console.log('panelElement.name',panelElement.name,' strIntoObj[panelElement.name]',strIntoObj[panelElement.name]);
|
|
246
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
if (panelElement.defaultValue) {
|
|
250
|
+
console.log('element.defaultValue', element.defaultValue);
|
|
251
|
+
const choice = element.defaultValue;
|
|
252
|
+
var jsonObject = JSON.parse(choice);
|
|
253
|
+
let defaultChoice = new Choices();
|
|
254
|
+
defaultChoice.text = jsonObject.text;
|
|
255
|
+
defaultChoice.value = jsonObject.value;
|
|
256
|
+
group[panelElement.name] = new UntypedFormControl(defaultChoice);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (panelContrlType === 'text' && panelElement.inputType != 'date') {
|
|
264
|
+
if (dataFound) {
|
|
265
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
266
|
+
}
|
|
267
|
+
else if (panelElement.defaultValue) {
|
|
268
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
group[panelElement.name] = new UntypedFormControl(params.get(panelElement.name));
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
if (panelContrlType === 'text' && panelElement.inputType === 'date') {
|
|
275
|
+
if (dataFound) {
|
|
276
|
+
//console.log('Date strIntoObj[panelElement.name]', strIntoObj[panelElement.name])
|
|
277
|
+
group[panelElement.name] = new UntypedFormControl(new Date(strIntoObj[panelElement.name]));
|
|
278
|
+
}
|
|
279
|
+
else if (panelElement.defaultValue) {
|
|
280
|
+
var dateString = panelElement.defaultValue.trim().split('-');
|
|
281
|
+
let date;
|
|
282
|
+
date = new Date();
|
|
283
|
+
date.setMonth(Number(dateString[0]) - 1);
|
|
284
|
+
date.setFullYear(Number(dateString[2]));
|
|
285
|
+
date.setDate(Number(dateString[1]));
|
|
286
|
+
let formattedDate = this.datepipe.transform(date, 'MM-dd-yyyy');
|
|
287
|
+
group[panelElement.name] = new UntypedFormControl(formattedDate);
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (panelContrlType === 'radiogroup') {
|
|
294
|
+
if (dataFound) {
|
|
295
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
296
|
+
}
|
|
297
|
+
else if (panelElement.defaultValue) {
|
|
298
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
299
|
+
}
|
|
300
|
+
else if (params.get(panelElement.name)) {
|
|
301
|
+
group[panelElement.name] = new UntypedFormControl(params.get(panelElement.name));
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
if (panelContrlType === 'checkbox' || panelContrlType === 'singleselectcheckbox') {
|
|
308
|
+
if (dataFound) {
|
|
309
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
310
|
+
}
|
|
311
|
+
else if (panelElement.defaultValue) {
|
|
312
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
313
|
+
}
|
|
314
|
+
else if (params.get(panelElement.name)) {
|
|
315
|
+
group[panelElement.name] = new UntypedFormControl(params.get(panelElement.name));
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
if (panelContrlType === 'button') {
|
|
322
|
+
if (dataFound) {
|
|
323
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
if (panelContrlType === 'autocomplete') {
|
|
330
|
+
if (dataFound) {
|
|
331
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (panelContrlType === 'displaytextaslabel') {
|
|
338
|
+
if (dataFound) {
|
|
339
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (panelContrlType === 'hidden') {
|
|
346
|
+
if (dataFound) {
|
|
347
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (panelContrlType === 'number') {
|
|
354
|
+
if (dataFound) {
|
|
355
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
356
|
+
}
|
|
357
|
+
else if (panelElement.defaultValue) {
|
|
358
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (panelContrlType === 'decimal') {
|
|
365
|
+
if (dataFound) {
|
|
366
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
367
|
+
}
|
|
368
|
+
else if (panelElement.defaultValue) {
|
|
369
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if (panelContrlType === 'currency') {
|
|
376
|
+
if (dataFound) {
|
|
377
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
378
|
+
}
|
|
379
|
+
else if (panelElement.defaultValue) {
|
|
380
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
if (panelContrlType === 'label-with-checkbox') {
|
|
387
|
+
if (dataFound) {
|
|
388
|
+
group[panelElement.name] = new UntypedFormControl(strIntoObj[panelElement.name]);
|
|
389
|
+
}
|
|
390
|
+
else if (panelElement.defaultValue) {
|
|
391
|
+
group[panelElement.name] = new UntypedFormControl(panelElement.defaultValue);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
group[panelElement.name] = new UntypedFormControl(null);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
// console.log('group',group);
|
|
401
|
+
return new UntypedFormGroup(group);
|
|
402
|
+
}
|
|
403
|
+
setData(index, data) {
|
|
404
|
+
this.sharedData.set(index, data);
|
|
405
|
+
}
|
|
406
|
+
getData(index) {
|
|
407
|
+
return this.sharedData.get(index);
|
|
408
|
+
}
|
|
409
|
+
getAllData() {
|
|
410
|
+
return this.sharedData;
|
|
411
|
+
}
|
|
412
|
+
static { this.ɵfac = function QuestionControlService_Factory(t) { return new (t || QuestionControlService)(i0.ɵɵinject(i1.DatePipe)); }; }
|
|
413
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QuestionControlService, factory: QuestionControlService.ɵfac }); }
|
|
414
|
+
}
|
|
415
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QuestionControlService, [{
|
|
416
|
+
type: Injectable
|
|
417
|
+
}], () => [{ type: i1.DatePipe }], null); })();
|
|
418
|
+
export class Choices {
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3F1ZXN0aW9ubmFpcmUvcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJdkYsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFtQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRHJDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2dCLENBQUM7SUFDeEMsV0FBVyxDQUFDLFNBQWlDLEVBQUUsU0FBaUIsRUFBQyxNQUF5QjtRQUUxRiwrQkFBK0I7UUFFN0IsTUFBTSxLQUFLLEdBQWlELEVBQUUsQ0FBQztRQUMvRCxJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7UUFFL0IsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxQyxJQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFDO1lBQzlCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksVUFBYyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakQsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixnRUFBZ0U7U0FDakU7YUFBTTtZQUNM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LEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7eUJBQ2xGOzZCQUFLLElBQUcsWUFBWSxDQUFDLFlBQVksRUFBQzs0QkFDakMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDOUU7NkJBQU07NEJBQ0wsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO3lCQUN6RDtxQkFDRjtnQkFFSCxDQUFDLENBQUMsQ0FBQTthQUVIO1FBRUgsQ0FBQyxDQUFDLENBQUM7UUFDSCw4QkFBOEI7UUFDOUIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFJRCxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUk7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBSztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzt1RkExWlUsc0JBQXNCO3VFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCOztpRkFBdEIsc0JBQXNCO2NBRGxDLFVBQVU7O0FBOFpYLE1BQU0sT0FBTyxPQUFPO0NBR25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkJhc2UgfSBmcm9tICcuL3F1ZXN0aW9uLWJhc2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25Db250cm9sU2VydmljZSB7XG5cbiAgc2hhcmVkRGF0YSA9IG5ldyBNYXAoKTtcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGVwaXBlOiBEYXRlUGlwZSl7fVxuICB0b0Zvcm1Hcm91cChxdWVzdGlvbnM6IFF1ZXN0aW9uQmFzZTxzdHJpbmc+W10sIHBhZ2VJbmRleDogbnVtYmVyLHBhcmFtczpNYXA8c3RyaW5nLHN0cmluZz4pIHtcbiAgICBcbiAgLy9jb25zb2xlLmxvZygncGFyYW1zJyxwYXJhbXMpO1xuICAgXG4gICAgY29uc3QgZ3JvdXA6ICB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55Pjt9ID0ge307XG4gICAgbGV0IGRhdGFGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbGV0IHBhZ2VzID0gcXVlc3Rpb25zWzBdLnBhZ2VzW3BhZ2VJbmRleF07XG5cbiAgICBpZihwYWdlcyAmJiBwYWdlcy5pc1BsYWNlSG9sZGVyKXtcbiAgICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Hcm91cChncm91cCk7XG4gICAgfVxuXG4gICAgbGV0IHN0ckludG9PYmo6IFtdO1xuICAgIGlmICh0aGlzLmdldERhdGEocGFnZUluZGV4KSkge1xuICAgICAgc3RySW50b09iaiA9IEpTT04ucGFyc2UodGhpcy5nZXREYXRhKHBhZ2VJbmRleCkpO1xuICAgICAgZGF0YUZvdW5kID0gdHJ1ZTtcbiAgICAgIC8vY29uc29sZS5sb2coJ3N0ckludG9PYmogICAnLHN0ckludG9PYmpbJ2NsYWltYW50RW1wTmFtZTEwMiddKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YUZvdW5kID0gZmFsc2U7XG4gICAgfVxuICAgIC8vY29uc29sZS5sb2coJ2RhdGFGb3VuZCcsIGRhdGFGb3VuZCk7XG4gICAgXG4gICAgLy8vY29uc29sZS5sb2coJ3BhZ2VzJyxwYWdlcyk7XG5cbiAgICBwYWdlcy5lbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgbGV0IGNvbnRybFR5cGU6IHN0cmluZyA9IGVsZW1lbnQudHlwZTtcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnY29tbWVudCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnZHJvcGRvd24nKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdlbGVtZW50LmRlZmF1bHRWYWx1ZScsZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZz1lbGVtZW50LmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgIHZhciBqc29uT2JqZWN0OiBDaG9pY2VzID0gSlNPTi5wYXJzZShjaG9pY2UpOyAgXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZWxlbWVudC5kZWZhdWx0VmFsdWUgY2hvJyxqc29uT2JqZWN0KTtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXT8ucGF0Y2hWYWx1ZShlbGVtZW50LmNob2ljZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSBqc29uT2JqZWN0LnZhbHVlKVswXSk7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZ3JvdXBbZWxlbWVudC5uYW1lXScsZ3JvdXBbZWxlbWVudC5uYW1lXS52YWx1ZSk7XG4gICAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3RleHQnICYmIGVsZW1lbnQuaW5wdXRUeXBlICE9ICdkYXRlJykge1xuXG4gICAgICAgIGlmIChlbGVtZW50LmN1c3RvbVRhZyAmJiBlbGVtZW50LmN1c3RvbVRhZyA9PT0gJ2R1ZWFtdCcpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcIjEyMVwiKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5jdXN0b21UYWcgJiYgZWxlbWVudC5jdXN0b21UYWcgPT09ICdlYW4nKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXCI4MS0wMDU4Ni0wLTAxXCIpO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIHtcblxuICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgfSBcbiAgICAgICAgICBlbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcblxuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3RleHQnICYmIGVsZW1lbnQuaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcblxuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgIC8vICBjb25zb2xlLmxvZygnRGF0ZSBzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0nLCBzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pXG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobmV3IERhdGUoc3RySW50b09ialtlbGVtZW50Lm5hbWVdKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcblxuICAgICAgICAgICAgdmFyIHNwbGl0QXJyYXkgPSBwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ3NwbGl0QXJyYXknLHNwbGl0QXJyYXkpXG4gICAgICAgICAgICBsZXQgZGF0ZSA6IERhdGU7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGRhdGUuc2V0TW9udGgoTnVtYmVyKHNwbGl0QXJyYXlbMF0pIC0gMSk7XG4gICAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XG4gICAgICAgICAgICBkYXRlLnNldERhdGUoTnVtYmVyKHNwbGl0QXJyYXlbMV0pKTtcbiAgICAgICAgICAgIGxldCBmb3JtYXR0ZWREYXRlID10aGlzLmRhdGVwaXBlLnRyYW5zZm9ybShkYXRlLCAnTU0tZGQteXl5eScpO1xuICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbWF4RGF0ZScsZGF0ZSwnZm9ybWF0dGVkRGF0ZScsZm9ybWF0dGVkRGF0ZSk7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZm9ybWF0dGVkRGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgdmFyIGRhdGVTdHJpbmcgPSBlbGVtZW50LmRlZmF1bHRWYWx1ZS50cmltKCkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIGxldCBkYXRlIDogRGF0ZTtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgZGF0ZS5zZXRNb250aChOdW1iZXIoZGF0ZVN0cmluZ1swXSkgLSAxKTtcbiAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoTnVtYmVyKGRhdGVTdHJpbmdbMl0pKTtcbiAgICAgICAgICAgIGRhdGUuc2V0RGF0ZShOdW1iZXIoZGF0ZVN0cmluZ1sxXSkpO1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPXRoaXMuZGF0ZXBpcGUudHJhbnNmb3JtKGRhdGUsICdNTS1kZC15eXl5Jyk7XG4gICAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdyYWRpb2dyb3VwJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2NoZWNrYm94JyB8fCBjb250cmxUeXBlID09PSAnc2luZ2xlc2VsZWN0Y2hlY2tib3gnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ3NpbXBsZWNoZWNrYm94Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBcbiAgICAgICAgZWxzZSBpZihwYXJhbXMuZ2V0KGVsZW1lbnQubmFtZSkpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSk7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ211bHRpY2hlY2tib3gnKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9IFxuICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQoZWxlbWVudC5uYW1lKSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChlbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnYnV0dG9uJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnZGlzcGxheXRleHRhc2xhYmVsJykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udHJsVHlwZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW2VsZW1lbnQubmFtZV0pO1xuICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250cmxUeXBlID09PSAnZGVjaW1hbCcpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbZWxlbWVudC5uYW1lXSk7XG4gICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGNvbnRybFR5cGUgPT09ICdsYWJlbC13aXRoLWNoZWNrYm94Jykge1xuICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgZ3JvdXBbZWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtlbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgIGdyb3VwW2VsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKGVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm91cFtlbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICBcbiAgICAgIGlmIChjb250cmxUeXBlID09PSAncGFuZWwnKSB7XG4gICAgICAgIGVsZW1lbnQuZWxlbWVudHMuZm9yRWFjaChwYW5lbEVsZW1lbnQgPT4ge1xuICAgICAgICAgIGxldCBwYW5lbENvbnRybFR5cGU6IHN0cmluZyA9IHBhbmVsRWxlbWVudC50eXBlO1xuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdkcm9wZG93bicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygncGFuZWxFbGVtZW50Lm5hbWUnLHBhbmVsRWxlbWVudC5uYW1lLCcgIHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdJyxzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2VsZW1lbnQuZGVmYXVsdFZhbHVlJyxlbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZz1lbGVtZW50LmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICB2YXIganNvbk9iamVjdDogQ2hvaWNlcyA9IEpTT04ucGFyc2UoY2hvaWNlKTsgIFxuICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0Q2hvaWNlOkNob2ljZXM9IG5ldyBDaG9pY2VzKCk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdENob2ljZS50ZXh0PWpzb25PYmplY3QudGV4dDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q2hvaWNlLnZhbHVlPWpzb25PYmplY3QudmFsdWU7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZGVmYXVsdENob2ljZSk7XG4gICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ3RleHQnICYmIHBhbmVsRWxlbWVudC5pbnB1dFR5cGUgIT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAndGV4dCcgJiYgcGFuZWxFbGVtZW50LmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgXG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2coJ0RhdGUgc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0nLCBzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSlcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChuZXcgRGF0ZShzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSkpO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIHZhciBkYXRlU3RyaW5nID0gcGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZS50cmltKCkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgICAgbGV0IGRhdGUgOiBEYXRlO1xuICAgICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgICAgZGF0ZS5zZXRNb250aChOdW1iZXIoZGF0ZVN0cmluZ1swXSkgLSAxKTtcbiAgICAgICAgICAgICAgZGF0ZS5zZXRGdWxsWWVhcihOdW1iZXIoZGF0ZVN0cmluZ1syXSkpO1xuICAgICAgICAgICAgICBkYXRlLnNldERhdGUoTnVtYmVyKGRhdGVTdHJpbmdbMV0pKTtcbiAgICAgICAgICAgICAgbGV0IGZvcm1hdHRlZERhdGUgPXRoaXMuZGF0ZXBpcGUudHJhbnNmb3JtKGRhdGUsICdNTS1kZC15eXl5Jyk7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZm9ybWF0dGVkRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAncmFkaW9ncm91cCcpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgZWxzZSAgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYXJhbXMuZ2V0KHBhbmVsRWxlbWVudC5uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnY2hlY2tib3gnIHx8IHBhbmVsQ29udHJsVHlwZSA9PT0gJ3NpbmdsZXNlbGVjdGNoZWNrYm94Jykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICBlbHNlICBpZihwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKXtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChwYW5lbEVsZW1lbnQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYocGFyYW1zLmdldChwYW5lbEVsZW1lbnQubmFtZSkpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhcmFtcy5nZXQocGFuZWxFbGVtZW50Lm5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnYnV0dG9uJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnZGlzcGxheXRleHRhc2xhYmVsJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhbmVsQ29udHJsVHlwZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIGlmIChkYXRhRm91bmQpIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChzdHJJbnRvT2JqW3BhbmVsRWxlbWVudC5uYW1lXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdkZWNpbWFsJykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFuZWxDb250cmxUeXBlID09PSAnY3VycmVuY3knKSB7XG4gICAgICAgICAgICBpZiAoZGF0YUZvdW5kKSB7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc3RySW50b09ialtwYW5lbEVsZW1lbnQubmFtZV0pO1xuICAgICAgICAgICAgfWVsc2UgaWYocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSl7XG4gICAgICAgICAgICAgIGdyb3VwW3BhbmVsRWxlbWVudC5uYW1lXSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wocGFuZWxFbGVtZW50LmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwYW5lbENvbnRybFR5cGUgPT09ICdsYWJlbC13aXRoLWNoZWNrYm94Jykge1xuICAgICAgICAgICAgaWYgKGRhdGFGb3VuZCkge1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHN0ckludG9PYmpbcGFuZWxFbGVtZW50Lm5hbWVdKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpe1xuICAgICAgICAgICAgICBncm91cFtwYW5lbEVsZW1lbnQubmFtZV0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHBhbmVsRWxlbWVudC5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZ3JvdXBbcGFuZWxFbGVtZW50Lm5hbWVdID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgfSlcblxuICAgICAgfVxuXG4gICAgfSk7XG4gICAgLy8gY29uc29sZS5sb2coJ2dyb3VwJyxncm91cCk7XG4gICAgcmV0dXJuIG5ldyBVbnR5cGVkRm9ybUdyb3VwKGdyb3VwKTtcbiAgfVxuXG5cblxuICBzZXREYXRhKGluZGV4LCBkYXRhKSB7XG4gICAgdGhpcy5zaGFyZWREYXRhLnNldChpbmRleCwgZGF0YSk7XG4gIH1cbiAgZ2V0RGF0YShpbmRleCkge1xuICAgIHJldHVybiB0aGlzLnNoYXJlZERhdGEuZ2V0KGluZGV4KTtcbiAgfVxuXG4gIGdldEFsbERhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkRGF0YTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hvaWNlcyB7XG4gIHZhbHVlPzogc3RyaW5nO1xuICB0ZXh0Pzogc3RyaW5nO1xufSJdfQ==
|