@sheerid/jslib-nightly 2.259.0-alpha.1 → 2.259.0-alpha.2
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/_mysheerid-preview.css +3 -3
- package/_mysheerid-preview.js +3931 -1402
- package/_mysheerid-preview.js.map +1 -1
- package/chunk/{AddressComponent-RKH3wkuU.js → AddressComponent-CJV3vrMt.js} +6 -6
- package/chunk/{AddressComponent-CN9VzjhI.js.map → AddressComponent-CJV3vrMt.js.map} +1 -1
- package/chunk/{AddressComponent-CN9VzjhI.js → AddressComponent-DMwOmjiG.js} +4 -4
- package/chunk/{AddressComponent-RKH3wkuU.js.map → AddressComponent-DMwOmjiG.js.map} +1 -1
- package/chunk/{AnnouncingHeader-BZreAj2L.js → AnnouncingHeader-BF69hVVm.js} +5 -5
- package/chunk/{AnnouncingHeader-BZreAj2L.js.map → AnnouncingHeader-BF69hVVm.js.map} +1 -1
- package/chunk/AnnouncingHeader-DjgtqEeX.js +3 -3
- package/chunk/{ApiUrls-MjYrUy5O.js → ApiUrls-BpvEY_I3.js} +4 -4
- package/chunk/{ApiUrls-DNPrws1D.js.map → ApiUrls-BpvEY_I3.js.map} +1 -1
- package/chunk/{ApiUrls-DNPrws1D.js → ApiUrls-Qas0Xjyd.js} +12 -12
- package/chunk/{ApiUrls-MjYrUy5O.js.map → ApiUrls-Qas0Xjyd.js.map} +1 -1
- package/chunk/{BirthDateComponent-Dx9Zgnrr.js → BirthDateComponent-DFHRO9YQ.js} +5 -5
- package/chunk/{BirthDateComponent-25k9Dw8L.js.map → BirthDateComponent-DFHRO9YQ.js.map} +1 -1
- package/chunk/{BirthDateComponent-25k9Dw8L.js → BirthDateComponent-Dh5xAxOF.js} +7 -7
- package/chunk/{BirthDateComponent-Dx9Zgnrr.js.map → BirthDateComponent-Dh5xAxOF.js.map} +1 -1
- package/chunk/{CaptchaComponent-DZNI_Mdp.js → CaptchaComponent-DaH202Ah.js} +94 -94
- package/chunk/{CaptchaComponent-DA4ytPM2.js.map → CaptchaComponent-DaH202Ah.js.map} +1 -1
- package/chunk/{CaptchaComponent-DA4ytPM2.js → CaptchaComponent-QYGB0QuK.js} +14 -14
- package/chunk/{CaptchaComponent-DZNI_Mdp.js.map → CaptchaComponent-QYGB0QuK.js.map} +1 -1
- package/chunk/{ChangeLocaleComponent-COGR4N31.js → ChangeLocaleComponent-DdX2nV2D.js} +7 -7
- package/chunk/{ChangeLocaleComponent-COGR4N31.js.map → ChangeLocaleComponent-DdX2nV2D.js.map} +1 -1
- package/chunk/{ChangeLocaleComponent-DPIcEDOe.js → ChangeLocaleComponent-QMQdbxxB.js} +5 -5
- package/chunk/{ChangeLocaleComponent-DPIcEDOe.js.map → ChangeLocaleComponent-QMQdbxxB.js.map} +1 -1
- package/chunk/{City-BHrlkpMX.js → City-CmO85Z9x.js} +4 -4
- package/chunk/{City-BHrlkpMX.js.map → City-CmO85Z9x.js.map} +1 -1
- package/chunk/{City-BbRIAxOR.js → City-DlWin4GX.js} +6 -6
- package/chunk/{City-BbRIAxOR.js.map → City-DlWin4GX.js.map} +1 -1
- package/chunk/{CollegeNameComponent-Bu2ei2eB.js → CollegeNameComponent-CIhHISji.js} +5 -5
- package/chunk/{CollegeNameComponent-Bu2ei2eB.js.map → CollegeNameComponent-CIhHISji.js.map} +1 -1
- package/chunk/{CollegeNameComponent-DXmseJtL.js → CollegeNameComponent-D_dKLkKY.js} +8 -8
- package/chunk/{CollegeNameComponent-DXmseJtL.js.map → CollegeNameComponent-D_dKLkKY.js.map} +1 -1
- package/chunk/CopyToClipboardComponent-1BeB_oX_.js +3 -3
- package/chunk/{CopyToClipboardComponent-6MY3v7_-.js → CopyToClipboardComponent-C1BnmvlK.js} +8 -8
- package/chunk/{CopyToClipboardComponent-6MY3v7_-.js.map → CopyToClipboardComponent-C1BnmvlK.js.map} +1 -1
- package/chunk/{CountryComponentWrapper-CQ6ZT9lg.js → CountryComponentWrapper-Du13nINk.js} +9 -9
- package/chunk/{CountryComponentWrapper-CQ6ZT9lg.js.map → CountryComponentWrapper-Du13nINk.js.map} +1 -1
- package/chunk/CountryComponentWrapper-zWLRBrRp.js +78 -0
- package/chunk/{CountryComponentWrapper-CRF7oKmW.js.map → CountryComponentWrapper-zWLRBrRp.js.map} +1 -1
- package/chunk/{DischargeDateComponent-Dylz_5IN.js → DischargeDateComponent-DH3gbXN-.js} +18 -18
- package/chunk/{DischargeDateComponent-dn8Ym3Oc.js.map → DischargeDateComponent-DH3gbXN-.js.map} +1 -1
- package/chunk/{DischargeDateComponent-dn8Ym3Oc.js → DischargeDateComponent-DpNsH3Q4.js} +7 -7
- package/chunk/{DischargeDateComponent-Dylz_5IN.js.map → DischargeDateComponent-DpNsH3Q4.js.map} +1 -1
- package/chunk/{DriverLicenseNumberComponent-LxBCJTvz.js → DriverLicenseNumberComponent-D8q18o2M.js} +6 -6
- package/chunk/{DriverLicenseNumberComponent-1Nm_kmd6.js.map → DriverLicenseNumberComponent-D8q18o2M.js.map} +1 -1
- package/chunk/{DriverLicenseNumberComponent-1Nm_kmd6.js → DriverLicenseNumberComponent-DgXMM-Pt.js} +4 -4
- package/chunk/{DriverLicenseNumberComponent-LxBCJTvz.js.map → DriverLicenseNumberComponent-DgXMM-Pt.js.map} +1 -1
- package/chunk/EmailLoopPending-BpsA3nlg.js +136 -0
- package/chunk/EmailLoopPending-BpsA3nlg.js.map +1 -0
- package/chunk/{EmailLoopPending-MXkvNNP8.js → EmailLoopPending-Dvufu09u.js} +53 -54
- package/chunk/EmailLoopPending-Dvufu09u.js.map +1 -0
- package/chunk/{ExtraMessage-Roxhs2rt.js → ExtraMessage-9BMK2Fd_.js} +6 -6
- package/chunk/{ExtraMessage-DeL_Wn33.js.map → ExtraMessage-9BMK2Fd_.js.map} +1 -1
- package/chunk/{ExtraMessage-DeL_Wn33.js → ExtraMessage-Ca6AF5JE.js} +4 -4
- package/chunk/{ExtraMessage-Roxhs2rt.js.map → ExtraMessage-Ca6AF5JE.js.map} +1 -1
- package/chunk/{FirstResponderOrganizationComponent-DFJEAN8k.js → FirstResponderOrganizationComponent-C88NJlsu.js} +5 -5
- package/chunk/{FirstResponderOrganizationComponent-CaU7VuhG.js.map → FirstResponderOrganizationComponent-C88NJlsu.js.map} +1 -1
- package/chunk/{FirstResponderOrganizationComponent-CaU7VuhG.js → FirstResponderOrganizationComponent-DgcptK9s.js} +7 -7
- package/chunk/{FirstResponderOrganizationComponent-DFJEAN8k.js.map → FirstResponderOrganizationComponent-DgcptK9s.js.map} +1 -1
- package/chunk/{FormFieldInputSelect-BaD_qpOw.js → FormFieldInputSelect-BJlHmrSC.js} +4 -4
- package/chunk/{FormFieldInputSelect-BaD_qpOw.js.map → FormFieldInputSelect-BJlHmrSC.js.map} +1 -1
- package/chunk/{FormFieldInputSelect-CSqp8aHf.js → FormFieldInputSelect-qjIEfk_y.js} +6 -6
- package/chunk/{FormFieldInputSelect-CSqp8aHf.js.map → FormFieldInputSelect-qjIEfk_y.js.map} +1 -1
- package/chunk/{FormFieldLayout-CUA-PItd.js → FormFieldLayout-BpmeMD4X.js} +5 -5
- package/chunk/{FormFieldLayout-CUA-PItd.js.map → FormFieldLayout-BpmeMD4X.js.map} +1 -1
- package/chunk/FormFieldLayout-DIcCOsGu.js +3 -3
- package/chunk/FormFieldText-zjWk7Cyc.js +3 -3
- package/chunk/{FormFieldText-BeEhq8Kc.js → FormFieldText-zuTjfmLt.js} +6 -6
- package/chunk/{FormFieldText-BeEhq8Kc.js.map → FormFieldText-zuTjfmLt.js.map} +1 -1
- package/chunk/{FormFieldTypeahead-C3gO98J5.js → FormFieldTypeahead-4sP6yrSp.js} +455 -456
- package/chunk/{FormFieldTypeahead-C3gO98J5.js.map → FormFieldTypeahead-4sP6yrSp.js.map} +1 -1
- package/chunk/{FormFieldTypeahead-BvcKAdzA.js → FormFieldTypeahead-CrDv6QmZ.js} +498 -499
- package/chunk/{FormFieldTypeahead-BvcKAdzA.js.map → FormFieldTypeahead-CrDv6QmZ.js.map} +1 -1
- package/chunk/{FormFooterComponent-DcilxYfs.js → FormFooterComponent-CXzDxR2J.js} +2116 -2043
- package/chunk/FormFooterComponent-CXzDxR2J.js.map +1 -0
- package/chunk/{FormFooterComponent-Cobuya5J.js → FormFooterComponent-D9_fIqUs.js} +1335 -1250
- package/chunk/FormFooterComponent-D9_fIqUs.js.map +1 -0
- package/chunk/{FormSelectChoice-Dz_8_0v1.js → FormSelectChoice-BQPP65dN.js} +5 -5
- package/chunk/{FormSelectChoice-DjQUf_kR.js.map → FormSelectChoice-BQPP65dN.js.map} +1 -1
- package/chunk/{FormSelectChoice-DjQUf_kR.js → FormSelectChoice-QRH1HmYa.js} +17 -17
- package/chunk/{FormSelectChoice-Dz_8_0v1.js.map → FormSelectChoice-QRH1HmYa.js.map} +1 -1
- package/chunk/InputText-Bzkl8mKj.js +3 -3
- package/chunk/{InputText-CkDvaW9P.js → InputText-DA8wfbQM.js} +6 -6
- package/chunk/{InputText-CkDvaW9P.js.map → InputText-DA8wfbQM.js.map} +1 -1
- package/chunk/{LicensedProfessionalOrganizationComponent-BFIo2AVu.js → LicensedProfessionalOrganizationComponent-Cy9sdOZC.js} +5 -5
- package/chunk/{LicensedProfessionalOrganizationComponent-BFIo2AVu.js.map → LicensedProfessionalOrganizationComponent-Cy9sdOZC.js.map} +1 -1
- package/chunk/{LicensedProfessionalOrganizationComponent-D40O0mHv.js → LicensedProfessionalOrganizationComponent-DD9CuMfT.js} +7 -7
- package/chunk/{LicensedProfessionalOrganizationComponent-D40O0mHv.js.map → LicensedProfessionalOrganizationComponent-DD9CuMfT.js.map} +1 -1
- package/chunk/LogoComponent-BMeuu-aK.js +3 -3
- package/chunk/{LogoComponent-CFPoRk_q.js → LogoComponent-BxIXOXCM.js} +5 -5
- package/chunk/{LogoComponent-CFPoRk_q.js.map → LogoComponent-BxIXOXCM.js.map} +1 -1
- package/chunk/{LowIncomeOrganizationComponent-M-jIQ5Gq.js → LowIncomeOrganizationComponent-D3-otdoS.js} +20 -20
- package/chunk/{LowIncomeOrganizationComponent-M-jIQ5Gq.js.map → LowIncomeOrganizationComponent-D3-otdoS.js.map} +1 -1
- package/chunk/{LowIncomeOrganizationComponent-RtTN7yos.js → LowIncomeOrganizationComponent-Dpvvj9n4.js} +9 -9
- package/chunk/{LowIncomeOrganizationComponent-RtTN7yos.js.map → LowIncomeOrganizationComponent-Dpvvj9n4.js.map} +1 -1
- package/chunk/{MedicalProfessionalOrganizationComponent-BRXUpSBl.js → MedicalProfessionalOrganizationComponent-B-hFqd6W.js} +5 -5
- package/chunk/{MedicalProfessionalOrganizationComponent-BRXUpSBl.js.map → MedicalProfessionalOrganizationComponent-B-hFqd6W.js.map} +1 -1
- package/chunk/{MedicalProfessionalOrganizationComponent-QOUo82Ey.js → MedicalProfessionalOrganizationComponent-B_6Eeh8t.js} +7 -7
- package/chunk/{MedicalProfessionalOrganizationComponent-QOUo82Ey.js.map → MedicalProfessionalOrganizationComponent-B_6Eeh8t.js.map} +1 -1
- package/chunk/{MemberIdComponent-D4U9CjTr.js → MemberIdComponent-DMGaNM9l.js} +6 -6
- package/chunk/{MemberIdComponent-D4U9CjTr.js.map → MemberIdComponent-DMGaNM9l.js.map} +1 -1
- package/chunk/{MemberIdComponent-DOikwfIV.js → MemberIdComponent-Dva2Xx7J.js} +4 -4
- package/chunk/{MemberIdComponent-DOikwfIV.js.map → MemberIdComponent-Dva2Xx7J.js.map} +1 -1
- package/chunk/{MembershipOrganizationComponent-D02G3scF.js → MembershipOrganizationComponent-CfLlUdPl.js} +7 -7
- package/chunk/{MembershipOrganizationComponent-CisdewfJ.js.map → MembershipOrganizationComponent-CfLlUdPl.js.map} +1 -1
- package/chunk/{MembershipOrganizationComponent-CisdewfJ.js → MembershipOrganizationComponent-DuJZlKLf.js} +5 -5
- package/chunk/{MembershipOrganizationComponent-D02G3scF.js.map → MembershipOrganizationComponent-DuJZlKLf.js.map} +1 -1
- package/chunk/Onfido-CTCgAwnB.js +3 -3
- package/chunk/{PersonalInfoStepSubmitButton-i0P1DpyZ.js → PersonalInfoStepSubmitButton-D3lzSm2E.js} +22 -22
- package/chunk/{PersonalInfoStepSubmitButton-i0P1DpyZ.js.map → PersonalInfoStepSubmitButton-D3lzSm2E.js.map} +1 -1
- package/chunk/{PersonalInfoStepSubmitButton-Byqc8ilE.js → PersonalInfoStepSubmitButton-Ywai8bYu.js} +10 -10
- package/chunk/{PersonalInfoStepSubmitButton-Byqc8ilE.js.map → PersonalInfoStepSubmitButton-Ywai8bYu.js.map} +1 -1
- package/chunk/{PersonalInfoStepWrapper-VYXPs068.js → PersonalInfoStepWrapper-B-1TuvRJ.js} +4 -4
- package/chunk/{PersonalInfoStepWrapper-VYXPs068.js.map → PersonalInfoStepWrapper-B-1TuvRJ.js.map} +1 -1
- package/chunk/{PersonalInfoStepWrapper-BpxtlGxV.js → PersonalInfoStepWrapper-DgL_kGk3.js} +7 -7
- package/chunk/{PersonalInfoStepWrapper-BpxtlGxV.js.map → PersonalInfoStepWrapper-DgL_kGk3.js.map} +1 -1
- package/chunk/{PostalCodeComponent-DwnHo2aW.js → PostalCodeComponent-BGzBByZd.js} +6 -6
- package/chunk/{PostalCodeComponent-DwnHo2aW.js.map → PostalCodeComponent-BGzBByZd.js.map} +1 -1
- package/chunk/{PostalCodeComponent-hDSZecsX.js → PostalCodeComponent-C97fgZFI.js} +4 -4
- package/chunk/{PostalCodeComponent-hDSZecsX.js.map → PostalCodeComponent-C97fgZFI.js.map} +1 -1
- package/chunk/{SSN-_mJmp2Gg.js → SSN-CNzKgddw.js} +7 -7
- package/chunk/{SSN-B9b4KlAr.js.map → SSN-CNzKgddw.js.map} +1 -1
- package/chunk/{SSN-B9b4KlAr.js → SSN-mk_cMbDH.js} +4 -4
- package/chunk/{SSN-_mJmp2Gg.js.map → SSN-mk_cMbDH.js.map} +1 -1
- package/chunk/{StateSelectComponent-DGQL388D.js → StateSelectComponent-Cx1_JBfI.js} +4 -4
- package/chunk/{StateSelectComponent-D26TjOAn.js.map → StateSelectComponent-Cx1_JBfI.js.map} +1 -1
- package/chunk/{StateSelectComponent-D26TjOAn.js → StateSelectComponent-D2j7QCvj.js} +5 -5
- package/chunk/{StateSelectComponent-DGQL388D.js.map → StateSelectComponent-D2j7QCvj.js.map} +1 -1
- package/chunk/{StatusComponent-Dv3frckJ.js → StatusComponent-Cxw9bsOp.js} +7 -7
- package/chunk/{StatusComponent-Dv3frckJ.js.map → StatusComponent-Cxw9bsOp.js.map} +1 -1
- package/chunk/{StatusComponent-XLL7x50K.js → StatusComponent-_HBklXve.js} +5 -5
- package/chunk/{StatusComponent-XLL7x50K.js.map → StatusComponent-_HBklXve.js.map} +1 -1
- package/chunk/{StepActiveMilitaryPersonalInfoComponent-B-obfX5s.js → StepActiveMilitaryPersonalInfoComponent-B_rTMccG.js} +47 -51
- package/chunk/{StepActiveMilitaryPersonalInfoComponent-B-obfX5s.js.map → StepActiveMilitaryPersonalInfoComponent-B_rTMccG.js.map} +1 -1
- package/chunk/{StepActiveMilitaryPersonalInfoComponent-CoGJXuid.js → StepActiveMilitaryPersonalInfoComponent-Ceamkjd0.js} +25 -21
- package/chunk/{StepActiveMilitaryPersonalInfoComponent-CoGJXuid.js.map → StepActiveMilitaryPersonalInfoComponent-Ceamkjd0.js.map} +1 -1
- package/chunk/{StepAgePersonalInfo-BTdUm8M1.js → StepAgePersonalInfo-DmBYGHG8.js} +39 -39
- package/chunk/{StepAgePersonalInfo-BTdUm8M1.js.map → StepAgePersonalInfo-DmBYGHG8.js.map} +1 -1
- package/chunk/StepAgePersonalInfo-X-eQf_2z.js +173 -0
- package/chunk/{StepAgePersonalInfo-KeuFdZua.js.map → StepAgePersonalInfo-X-eQf_2z.js.map} +1 -1
- package/chunk/StepCard-7t2vkHqM.js +3 -3
- package/chunk/{StepCard-BF_RD7Rd.js → StepCard-BtvCt-ND.js} +4 -4
- package/chunk/{StepCard-BF_RD7Rd.js.map → StepCard-BtvCt-ND.js.map} +1 -1
- package/chunk/{StepCollectIdentifier-Cr5cRjes.js → StepCollectIdentifier-8QO4sVSo.js} +10 -10
- package/chunk/{StepCollectIdentifier-Cr5cRjes.js.map → StepCollectIdentifier-8QO4sVSo.js.map} +1 -1
- package/chunk/{StepCollectIdentifier-aSTN2D3f.js → StepCollectIdentifier-bhlSO88L.js} +8 -8
- package/chunk/{StepCollectIdentifier-aSTN2D3f.js.map → StepCollectIdentifier-bhlSO88L.js.map} +1 -1
- package/chunk/{StepCollectMilitaryStatusComponent-5RzFVxA_.js → StepCollectMilitaryStatusComponent-CwiPlk5w.js} +4 -4
- package/chunk/StepCollectMilitaryStatusComponent-f2ZW0KJY.js +9 -0
- package/chunk/StepCollectPersonalInfo-R-5UOPTA.js +361 -0
- package/chunk/{StepCollectPersonalInfo-BVd72Idl.js.map → StepCollectPersonalInfo-R-5UOPTA.js.map} +1 -1
- package/chunk/{StepCollectPersonalInfo-D75Yctan.js → StepCollectPersonalInfo-r2uBVXk_.js} +87 -87
- package/chunk/{StepCollectPersonalInfo-D75Yctan.js.map → StepCollectPersonalInfo-r2uBVXk_.js.map} +1 -1
- package/chunk/{StepCompleteAuthentication-CYsu3UXL.js → StepCompleteAuthentication-C2HoMZzF.js} +50 -51
- package/chunk/StepCompleteAuthentication-C2HoMZzF.js.map +1 -0
- package/chunk/{StepCompleteAuthentication-CmOEE_s5.js → StepCompleteAuthentication-Cs4zhI-D.js} +42 -43
- package/chunk/StepCompleteAuthentication-Cs4zhI-D.js.map +1 -0
- package/chunk/{StepConsolation-Bm7fMyFo.js → StepConsolation-CwLUx5P6.js} +4 -4
- package/chunk/{StepConsolation-Bm7fMyFo.js.map → StepConsolation-CwLUx5P6.js.map} +1 -1
- package/chunk/{StepConsolation-euaYpjbw.js → StepConsolation-J6tneCHK.js} +8 -8
- package/chunk/{StepConsolation-euaYpjbw.js.map → StepConsolation-J6tneCHK.js.map} +1 -1
- package/chunk/{StepDocUpload-Fi16blpY.js → StepDocUpload-Dl-gzKui.js} +40 -40
- package/chunk/{StepDocUpload-Dc986T4y.js.map → StepDocUpload-Dl-gzKui.js.map} +1 -1
- package/chunk/{StepDocUpload-Dc986T4y.js → StepDocUpload-dc7sQRtA.js} +242 -242
- package/chunk/{StepDocUpload-Fi16blpY.js.map → StepDocUpload-dc7sQRtA.js.map} +1 -1
- package/chunk/{StepDriverLicensePersonalInfoComponent-DnbKIy4f.js → StepDriverLicensePersonalInfoComponent-CkHJjXlR.js} +19 -15
- package/chunk/{StepDriverLicensePersonalInfoComponent-DnbKIy4f.js.map → StepDriverLicensePersonalInfoComponent-CkHJjXlR.js.map} +1 -1
- package/chunk/{StepDriverLicensePersonalInfoComponent-AvcQyGDT.js → StepDriverLicensePersonalInfoComponent-DWZtsgBr.js} +32 -36
- package/chunk/{StepDriverLicensePersonalInfoComponent-AvcQyGDT.js.map → StepDriverLicensePersonalInfoComponent-DWZtsgBr.js.map} +1 -1
- package/chunk/{StepEmailLoop-7EwsfbG2.js → StepEmailLoop-BDRiI0kO.js} +46 -47
- package/chunk/StepEmailLoop-BDRiI0kO.js.map +1 -0
- package/chunk/{StepEmailLoop-CLIGNsCO.js → StepEmailLoop-DWNRCm1O.js} +51 -52
- package/chunk/StepEmailLoop-DWNRCm1O.js.map +1 -0
- package/chunk/{StepEmploymentPersonalInfo-CMJwlqZ5.js → StepEmploymentPersonalInfo-C0UAANQZ.js} +44 -48
- package/chunk/{StepEmploymentPersonalInfo-CMJwlqZ5.js.map → StepEmploymentPersonalInfo-C0UAANQZ.js.map} +1 -1
- package/chunk/{StepEmploymentPersonalInfo-sQLnckQP.js → StepEmploymentPersonalInfo-al1phPDp.js} +22 -18
- package/chunk/{StepEmploymentPersonalInfo-sQLnckQP.js.map → StepEmploymentPersonalInfo-al1phPDp.js.map} +1 -1
- package/chunk/{StepFirstResponderPersonalInfo-BZVQnECv.js → StepFirstResponderPersonalInfo-Byb5gsnf.js} +37 -37
- package/chunk/{StepFirstResponderPersonalInfo-BZVQnECv.js.map → StepFirstResponderPersonalInfo-Byb5gsnf.js.map} +1 -1
- package/chunk/{StepFirstResponderPersonalInfo-De-yFa-l.js → StepFirstResponderPersonalInfo-Ci8gAYOs.js} +42 -42
- package/chunk/{StepFirstResponderPersonalInfo-De-yFa-l.js.map → StepFirstResponderPersonalInfo-Ci8gAYOs.js.map} +1 -1
- package/chunk/{StepGeneralIdentityPersonalInfoComponent-mSxJaDUA.js → StepGeneralIdentityPersonalInfoComponent-B2Kv9xw_.js} +41 -45
- package/chunk/{StepGeneralIdentityPersonalInfoComponent-D2xY36MO.js.map → StepGeneralIdentityPersonalInfoComponent-B2Kv9xw_.js.map} +1 -1
- package/chunk/{StepGeneralIdentityPersonalInfoComponent-D2xY36MO.js → StepGeneralIdentityPersonalInfoComponent-Ca9lo4Jp.js} +22 -18
- package/chunk/{StepGeneralIdentityPersonalInfoComponent-mSxJaDUA.js.map → StepGeneralIdentityPersonalInfoComponent-Ca9lo4Jp.js.map} +1 -1
- package/chunk/{StepHybridIdentityPersonalInfoComponent-pmo1wXVQ.js → StepHybridIdentityPersonalInfoComponent-BZ7Qu4iK.js} +44 -48
- package/chunk/{StepHybridIdentityPersonalInfoComponent-CPPuZYu5.js.map → StepHybridIdentityPersonalInfoComponent-BZ7Qu4iK.js.map} +1 -1
- package/chunk/{StepHybridIdentityPersonalInfoComponent-CPPuZYu5.js → StepHybridIdentityPersonalInfoComponent-BjS4F6j2.js} +23 -19
- package/chunk/{StepHybridIdentityPersonalInfoComponent-pmo1wXVQ.js.map → StepHybridIdentityPersonalInfoComponent-BjS4F6j2.js.map} +1 -1
- package/chunk/{StepIDCheckLoop-DPbA9LaQ.js → StepIDCheckLoop-DiGRkuBM.js} +5 -5
- package/chunk/{StepIDCheckLoop-C7UAES2n.js.map → StepIDCheckLoop-DiGRkuBM.js.map} +1 -1
- package/chunk/{StepIDCheckLoop-C7UAES2n.js → StepIDCheckLoop-Djow0hoO.js} +8 -8
- package/chunk/{StepIDCheckLoop-DPbA9LaQ.js.map → StepIDCheckLoop-Djow0hoO.js.map} +1 -1
- package/chunk/{StepIDCheckLoopOnfido-CfscUwrA.js → StepIDCheckLoopOnfido-BvMXuWoN.js} +40 -40
- package/chunk/{StepIDCheckLoopOnfido-CGFbgPNl.js.map → StepIDCheckLoopOnfido-BvMXuWoN.js.map} +1 -1
- package/chunk/{StepIDCheckLoopOnfido-CGFbgPNl.js → StepIDCheckLoopOnfido-CT458GtS.js} +7 -7
- package/chunk/{StepIDCheckLoopOnfido-CfscUwrA.js.map → StepIDCheckLoopOnfido-CT458GtS.js.map} +1 -1
- package/chunk/{StepIDCheckLoopRegula-24zsl9hT.js → StepIDCheckLoopRegula-BvLpBUxe.js} +5 -5
- package/chunk/{StepIDCheckLoopRegula-24zsl9hT.js.map → StepIDCheckLoopRegula-BvLpBUxe.js.map} +1 -1
- package/chunk/{StepIDCheckLoopRegula-p9GQ7-mM.js → StepIDCheckLoopRegula-DcB8ugg0.js} +18 -18
- package/chunk/{StepIDCheckLoopRegula-p9GQ7-mM.js.map → StepIDCheckLoopRegula-DcB8ugg0.js.map} +1 -1
- package/chunk/{StepInactiveMilitaryPersonalInfoComponent-MKHFys80.js → StepInactiveMilitaryPersonalInfoComponent-BpiqZDNI.js} +69 -73
- package/chunk/{StepInactiveMilitaryPersonalInfoComponent-BCcxwwPz.js.map → StepInactiveMilitaryPersonalInfoComponent-BpiqZDNI.js.map} +1 -1
- package/chunk/{StepInactiveMilitaryPersonalInfoComponent-BCcxwwPz.js → StepInactiveMilitaryPersonalInfoComponent-k8BFxBXH.js} +33 -29
- package/chunk/{StepInactiveMilitaryPersonalInfoComponent-MKHFys80.js.map → StepInactiveMilitaryPersonalInfoComponent-k8BFxBXH.js.map} +1 -1
- package/chunk/{StepLicensedProfessionalPersonalInfo-Ba_hfFwF.js → StepLicensedProfessionalPersonalInfo-C2gyvg1m.js} +21 -17
- package/chunk/{StepLicensedProfessionalPersonalInfo-Ba_hfFwF.js.map → StepLicensedProfessionalPersonalInfo-C2gyvg1m.js.map} +1 -1
- package/chunk/{StepLicensedProfessionalPersonalInfo-DlJxyXZN.js → StepLicensedProfessionalPersonalInfo-DWvD1Z6N.js} +37 -41
- package/chunk/{StepLicensedProfessionalPersonalInfo-DlJxyXZN.js.map → StepLicensedProfessionalPersonalInfo-DWvD1Z6N.js.map} +1 -1
- package/chunk/{StepLowIncomePersonalInfo-hmb9pC8H.js → StepLowIncomePersonalInfo-CTZREXGu.js} +63 -67
- package/chunk/{StepLowIncomePersonalInfo-Bh3kT1GO.js.map → StepLowIncomePersonalInfo-CTZREXGu.js.map} +1 -1
- package/chunk/{StepLowIncomePersonalInfo-Bh3kT1GO.js → StepLowIncomePersonalInfo-CZlgdCqq.js} +39 -35
- package/chunk/{StepLowIncomePersonalInfo-hmb9pC8H.js.map → StepLowIncomePersonalInfo-CZlgdCqq.js.map} +1 -1
- package/chunk/{StepMedicalProfessionalPersonalInfo-CAViUdYI.js → StepMedicalProfessionalPersonalInfo-CP9XPNbL.js} +28 -24
- package/chunk/{StepMedicalProfessionalPersonalInfo-BBQdw_WF.js.map → StepMedicalProfessionalPersonalInfo-CP9XPNbL.js.map} +1 -1
- package/chunk/{StepMedicalProfessionalPersonalInfo-BBQdw_WF.js → StepMedicalProfessionalPersonalInfo-DmsfNlPZ.js} +48 -52
- package/chunk/{StepMedicalProfessionalPersonalInfo-CAViUdYI.js.map → StepMedicalProfessionalPersonalInfo-DmsfNlPZ.js.map} +1 -1
- package/chunk/StepMemberPersonalInfo-Dpb5-ENF.js +152 -0
- package/chunk/{StepMemberPersonalInfo-CPcTjVm4.js.map → StepMemberPersonalInfo-Dpb5-ENF.js.map} +1 -1
- package/chunk/{StepMemberPersonalInfo-CPcTjVm4.js → StepMemberPersonalInfo-TjSa0NJV.js} +20 -16
- package/chunk/{StepMemberPersonalInfo-DzKpsoK8.js.map → StepMemberPersonalInfo-TjSa0NJV.js.map} +1 -1
- package/chunk/StepMoverPersonalInfo-6bjpRGAv.js +139 -0
- package/chunk/{StepMoverPersonalInfo-CLcsD8p7.js.map → StepMoverPersonalInfo-6bjpRGAv.js.map} +1 -1
- package/chunk/{StepMoverPersonalInfo-CLcsD8p7.js → StepMoverPersonalInfo-vv7-jdz0.js} +18 -14
- package/chunk/{StepMoverPersonalInfo-DIspTifw.js.map → StepMoverPersonalInfo-vv7-jdz0.js.map} +1 -1
- package/chunk/{StepOverrideComponent-DbbQq6nF.js → StepOverrideComponent-4f8ZZxxE.js} +41 -41
- package/chunk/StepOverrideComponent-4f8ZZxxE.js.map +1 -0
- package/chunk/{StepOverrideComponent-67Wl2Ic3.js → StepOverrideComponent-BXnbZhfO.js} +37 -37
- package/chunk/StepOverrideComponent-BXnbZhfO.js.map +1 -0
- package/chunk/{StepSMSLoop-DU91kmZw.js → StepSMSLoop-DAKxJhXo.js} +4 -4
- package/chunk/{StepSMSLoop-DU91kmZw.js.map → StepSMSLoop-DAKxJhXo.js.map} +1 -1
- package/chunk/{StepSMSLoop-DbvJTafU.js → StepSMSLoop-DO4S-Aje.js} +18 -18
- package/chunk/{StepSMSLoop-DbvJTafU.js.map → StepSMSLoop-DO4S-Aje.js.map} +1 -1
- package/chunk/StepSSO-BRFhNvkp.js +9 -0
- package/chunk/{StepSSO-Bp-M6Mod.js → StepSSO-BaFk7RFJ.js} +4 -4
- package/chunk/{StepSocialSecurityNumber-DK4msVLI.js → StepSocialSecurityNumber-BseFM9rt.js} +9 -9
- package/chunk/{StepSocialSecurityNumber-CbSszHk8.js.map → StepSocialSecurityNumber-BseFM9rt.js.map} +1 -1
- package/chunk/{StepSocialSecurityNumber-CbSszHk8.js → StepSocialSecurityNumber-D0_62BYK.js} +26 -26
- package/chunk/{StepSocialSecurityNumber-DK4msVLI.js.map → StepSocialSecurityNumber-D0_62BYK.js.map} +1 -1
- package/chunk/{StepStudentPersonalInfo-BJlc0JF0.js → StepStudentPersonalInfo-0LRBqSx5.js} +72 -73
- package/chunk/{StepStudentPersonalInfo-BJlc0JF0.js.map → StepStudentPersonalInfo-0LRBqSx5.js.map} +1 -1
- package/chunk/{StepStudentPersonalInfo-CCxT9FDI.js → StepStudentPersonalInfo-CLG5AxSd.js} +36 -37
- package/chunk/{StepStudentPersonalInfo-CCxT9FDI.js.map → StepStudentPersonalInfo-CLG5AxSd.js.map} +1 -1
- package/chunk/{StepSuccess-DkoWskiv.js → StepSuccess-8Ek9VvK_.js} +82 -83
- package/chunk/StepSuccess-8Ek9VvK_.js.map +1 -0
- package/chunk/{StepSuccess-DOWQrS9p.js → StepSuccess-Be30r2Og.js} +71 -72
- package/chunk/StepSuccess-Be30r2Og.js.map +1 -0
- package/chunk/{StepTeacherPersonalInfo-CPk_P26g.js → StepTeacherPersonalInfo-BYTmkyxy.js} +21 -17
- package/chunk/{StepTeacherPersonalInfo-CPk_P26g.js.map → StepTeacherPersonalInfo-BYTmkyxy.js.map} +1 -1
- package/chunk/StepTeacherPersonalInfo-BfyMicng.js +149 -0
- package/chunk/{StepTeacherPersonalInfo-CW71f8l7.js.map → StepTeacherPersonalInfo-BfyMicng.js.map} +1 -1
- package/chunk/{StepThirdPartyLoop-CbFTIlwP.js → StepThirdPartyLoop-BGHCbduX.js} +4 -4
- package/chunk/StepThirdPartyLoop-ZHByQpHa.js +9 -0
- package/chunk/{TeacherSchoolComponent-DrN1Py8h.js → TeacherSchoolComponent-IkCV6bH-.js} +8 -8
- package/chunk/{TeacherSchoolComponent-DrN1Py8h.js.map → TeacherSchoolComponent-IkCV6bH-.js.map} +1 -1
- package/chunk/{TeacherSchoolComponent-BkMlrpPJ.js → TeacherSchoolComponent-Qyri5g_X.js} +5 -5
- package/chunk/{TeacherSchoolComponent-BkMlrpPJ.js.map → TeacherSchoolComponent-Qyri5g_X.js.map} +1 -1
- package/chunk/TestingRouteOverrides-B-zcTBa_.js +3 -3
- package/chunk/TestingRouteOverrides-BDCygTLC.js +81 -0
- package/chunk/{TestingRouteOverrides-DCR0qXVH.js.map → TestingRouteOverrides-BDCygTLC.js.map} +1 -1
- package/chunk/ThreatMetrix-D_TbL50B.js +3 -3
- package/chunk/{VerificationApiClient-CVR-bKWg.js → VerificationApiClient-Br6D_KwQ.js} +4 -4
- package/chunk/{VerificationApiClient-CVR-bKWg.js.map → VerificationApiClient-Br6D_KwQ.js.map} +1 -1
- package/chunk/{VerificationApiClient-xgUCQ1gs.js → VerificationApiClient-D6OYdL72.js} +140 -140
- package/chunk/{VerificationApiClient-xgUCQ1gs.js.map → VerificationApiClient-D6OYdL72.js.map} +1 -1
- package/chunk/{VerificationApiUtils-OKRnuWj4.js → VerificationApiUtils-D5oFJWD5.js} +5 -5
- package/chunk/{VerificationApiUtils-COM2VOcB.js.map → VerificationApiUtils-D5oFJWD5.js.map} +1 -1
- package/chunk/{VerificationApiUtils-COM2VOcB.js → VerificationApiUtils-rnfNWA2k.js} +6 -6
- package/chunk/{VerificationApiUtils-OKRnuWj4.js.map → VerificationApiUtils-rnfNWA2k.js.map} +1 -1
- package/chunk/ar-wkBEXxD9.js +3 -3
- package/chunk/bg-D2-seofX.js +3 -3
- package/chunk/bn-IN-B5PyYaJU.js +3 -3
- package/chunk/{countryUtils-BAFwHnuu.js → countryUtils-D2UBy7Uo.js} +4 -4
- package/chunk/{countryUtils-BAFwHnuu.js.map → countryUtils-D2UBy7Uo.js.map} +1 -1
- package/chunk/countryUtils-QSjR1rBI.js +3 -3
- package/chunk/cs-CsEnIopo.js +3 -3
- package/chunk/da-Da-m3VU_.js +3 -3
- package/chunk/de-BSoD5U3-.js +3 -3
- package/chunk/{downshift.esm-Cy12VCIv.js → downshift.esm-DWGiKAV_.js} +121 -121
- package/chunk/{downshift.esm-Cy12VCIv.js.map → downshift.esm-DWGiKAV_.js.map} +1 -1
- package/chunk/{downshift.esm-D4-Qs4ci.js → downshift.esm-oTd5iRZU.js} +40 -40
- package/chunk/{downshift.esm-D4-Qs4ci.js.map → downshift.esm-oTd5iRZU.js.map} +1 -1
- package/chunk/el-CFa6y9Ri.js +3 -3
- package/chunk/empties-BIoZK05_.js +3 -3
- package/chunk/{empties-Ck9OJXHG.js → empties-DHvaWflk.js} +4 -4
- package/chunk/{empties-Ck9OJXHG.js.map → empties-DHvaWflk.js.map} +1 -1
- package/chunk/en-GB-V8XaGkaI.js +3 -3
- package/chunk/es-D18tLxcT.js +3 -3
- package/chunk/es-ES-7x2bVUQr.js +3 -3
- package/chunk/et-udrWMVlD.js +3 -3
- package/chunk/eventEmitter-CSG6jR7V.js +3 -3
- package/chunk/fa-DgwYULMs.js +3 -3
- package/chunk/fi-CkCWFGDC.js +3 -3
- package/chunk/fr-BprIFEa8.js +3 -3
- package/chunk/fr-CA-DrjICejr.js +3 -3
- package/chunk/ga-LaV5ZJgg.js +3 -3
- package/chunk/hi-IN-7dtEICYI.js +3 -3
- package/chunk/hr-2Bctl997.js +3 -3
- package/chunk/hu-BT0z6TPZ.js +3 -3
- package/chunk/id-BvyYep3X.js +3 -3
- package/chunk/{intl-aUfdCP8t.js → intl-Yr2cw5px.js} +4 -4
- package/chunk/{intl-aUfdCP8t.js.map → intl-Yr2cw5px.js.map} +1 -1
- package/chunk/is-DOsKfa80.js +3 -3
- package/chunk/it-3dX9AQk7.js +3 -3
- package/chunk/iw-5I90wqQ8.js +3 -3
- package/chunk/ja-CHdgbMgX.js +3 -3
- package/chunk/jsx-runtime-BknAqbDq.js +3 -3
- package/chunk/{jsx-runtime-XNwIsY_N.js → jsx-runtime-D_-z-h6n.js} +17 -17
- package/chunk/{jsx-runtime-XNwIsY_N.js.map → jsx-runtime-D_-z-h6n.js.map} +1 -1
- package/chunk/kk-BriyNfHL.js +3 -3
- package/chunk/ko-DsMaax3V.js +3 -3
- package/chunk/lo-CjASRmNr.js +3 -3
- package/chunk/lt-DF29E1de.js +3 -3
- package/chunk/lv-DlHBZyt-.js +3 -3
- package/chunk/{militaryStepHelpers-qMYyQgVn.js → militaryStepHelpers-DSh6iat_.js} +4 -4
- package/chunk/{militaryStepHelpers-qMYyQgVn.js.map → militaryStepHelpers-DSh6iat_.js.map} +1 -1
- package/chunk/militaryStepHelpers-UF-7lF1f.js +3 -3
- package/chunk/mocks-1r84in2Q.js +3 -3
- package/chunk/{mocks-fUTXc8-e.js → mocks-CKXq8CZk.js} +8 -8
- package/chunk/{mocks-fUTXc8-e.js.map → mocks-CKXq8CZk.js.map} +1 -1
- package/chunk/ms-B3vDtlFh.js +3 -3
- package/chunk/nl-BE-Dw1IGXuF.js +3 -3
- package/chunk/nl-Cqkrr5-r.js +3 -3
- package/chunk/no-876EdwkX.js +3 -3
- package/chunk/options-D19mRw5a.js +3 -3
- package/chunk/pl-B_G8s05-.js +3 -3
- package/chunk/programThemeGetters-Lz3L0Vh7.js +3 -3
- package/chunk/{programThemeGetters-CyMKyJao.js → programThemeGetters-iBty-gXI.js} +35 -35
- package/chunk/{programThemeGetters-CyMKyJao.js.map → programThemeGetters-iBty-gXI.js.map} +1 -1
- package/chunk/pt-BR-DWj043qk.js +3 -3
- package/chunk/pt-DckA3Jnn.js +3 -3
- package/chunk/refs-Bbe0gnJ3.js +3 -3
- package/chunk/{refs--ECXpllB.js → refs-C_tB1qMA.js} +4 -4
- package/chunk/{refs--ECXpllB.js.map → refs-C_tB1qMA.js.map} +1 -1
- package/chunk/ro-DukNcWCM.js +3 -3
- package/chunk/ru-RkdRQ7qb.js +3 -3
- package/chunk/sk-CPBgBtC5.js +3 -3
- package/chunk/sl-Cyj9PWmN.js +3 -3
- package/chunk/sr-Bm1GVW8m.js +3 -3
- package/chunk/strings-DWLVdUcm.js +3 -3
- package/chunk/sv-CcMmeZrG.js +3 -3
- package/chunk/sw-BPvl1ou6.js +3 -3
- package/chunk/ta-BPEH7IlE.js +3 -3
- package/chunk/th-Dd912RL5.js +3 -3
- package/chunk/tl-J_TdpjQz.js +3 -3
- package/chunk/tr-B-GrrJj0.js +3 -3
- package/chunk/uk-MohyvT_n.js +3 -3
- package/chunk/ur-CDYGpWMm.js +3 -3
- package/chunk/{useCollectFieldsEndpoint-DHNko4IC.js → useCollectFieldsEndpoint-BSbEIf3Q.js} +5 -5
- package/chunk/{useCollectFieldsEndpoint-Bn7ZjdXx.js.map → useCollectFieldsEndpoint-BSbEIf3Q.js.map} +1 -1
- package/chunk/{useCollectFieldsEndpoint-Bn7ZjdXx.js → useCollectFieldsEndpoint-BuXZrZTD.js} +10 -10
- package/chunk/{useCollectFieldsEndpoint-DHNko4IC.js.map → useCollectFieldsEndpoint-BuXZrZTD.js.map} +1 -1
- package/chunk/{useMetrics-AzdlM_Kg.js → useMetrics-BdMoL7SD.js} +18 -18
- package/chunk/{useMetrics-DKs1RHom.js.map → useMetrics-BdMoL7SD.js.map} +1 -1
- package/chunk/{useMetrics-DKs1RHom.js → useMetrics-D_8asKZL.js} +4 -4
- package/chunk/{useMetrics-AzdlM_Kg.js.map → useMetrics-D_8asKZL.js.map} +1 -1
- package/chunk/validators-DTjHYDSK.js +474 -0
- package/chunk/validators-DTjHYDSK.js.map +1 -0
- package/chunk/validators-Do9xo2t_.js +470 -0
- package/chunk/validators-Do9xo2t_.js.map +1 -0
- package/chunk/vi-CdPTWSev.js +3 -3
- package/chunk/zh-DhnjKBoc.js +3 -3
- package/chunk/zh-HK-CWKNP_HX.js +3 -3
- package/chunk/zu-BpMHS0oR.js +3 -3
- package/package.json +3 -2
- package/sheerid-install.css +3 -3
- package/sheerid-install.js +3 -3
- package/sheerid.css +3 -3
- package/sheerid.js +3812 -1369
- package/sheerid.js.map +1 -1
- package/chunk/CountryComponentWrapper-CRF7oKmW.js +0 -78
- package/chunk/EmailLoopPending-MXkvNNP8.js.map +0 -1
- package/chunk/EmailLoopPending-anok50US.js +0 -137
- package/chunk/EmailLoopPending-anok50US.js.map +0 -1
- package/chunk/FormFooterComponent-Cobuya5J.js.map +0 -1
- package/chunk/FormFooterComponent-DcilxYfs.js.map +0 -1
- package/chunk/StepAgePersonalInfo-KeuFdZua.js +0 -173
- package/chunk/StepCollectMilitaryStatusComponent-CHOxuZnI.js +0 -9
- package/chunk/StepCollectPersonalInfo-BVd72Idl.js +0 -361
- package/chunk/StepCompleteAuthentication-CYsu3UXL.js.map +0 -1
- package/chunk/StepCompleteAuthentication-CmOEE_s5.js.map +0 -1
- package/chunk/StepEmailLoop-7EwsfbG2.js.map +0 -1
- package/chunk/StepEmailLoop-CLIGNsCO.js.map +0 -1
- package/chunk/StepMemberPersonalInfo-DzKpsoK8.js +0 -156
- package/chunk/StepMoverPersonalInfo-DIspTifw.js +0 -143
- package/chunk/StepOverrideComponent-67Wl2Ic3.js.map +0 -1
- package/chunk/StepOverrideComponent-DbbQq6nF.js.map +0 -1
- package/chunk/StepSSO-DfPU73JX.js +0 -9
- package/chunk/StepSuccess-DOWQrS9p.js.map +0 -1
- package/chunk/StepSuccess-DkoWskiv.js.map +0 -1
- package/chunk/StepTeacherPersonalInfo-CW71f8l7.js +0 -153
- package/chunk/StepThirdPartyLoop-BrKuZcYb.js +0 -9
- package/chunk/TestingRouteOverrides-DCR0qXVH.js +0 -81
- package/chunk/hooks--D4yPhcg.js +0 -2893
- package/chunk/hooks--D4yPhcg.js.map +0 -1
- package/chunk/hooks-Bn35OzEf.js +0 -2889
- package/chunk/hooks-Bn35OzEf.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-Bn35OzEf.js","names":["t","n","r","o","i","a","c","m","u","g","f","l","y","d","v","p","h","w","k","b","E","D","x","O","P","C","S","I","F","j","R","K","ie","se","n","s"],"sources":["../../../node_modules/postcode-validator/lib/esm/postcode-types.js","../../../node_modules/postcode-validator/lib/esm/postcode-regexes.js","../../../node_modules/postcode-validator/lib/esm/main.js","../../../node_modules/fast-luhn/index.js","../../src/lib/types/types.ts","../../src/lib/validators/validatorOverride.ts","../../src/lib/validators/validators.ts","../../../node_modules/launchdarkly-js-client-sdk/dist/ldclient.es.js","../../../node_modules/lodash.camelcase/index.js","../../../node_modules/launchdarkly-react-client-sdk/lib/esm/index.js","../../../packages/shared/src/flags.ts","../../src/components/FeatureFlags/getOverriddenFlags.ts","../../src/components/FeatureFlags/hooks.ts"],"sourcesContent":["export var CountryCode;\n(function (CountryCode) {\n CountryCode[\"UK\"] = \"UK\";\n CountryCode[\"GB\"] = \"GB\";\n CountryCode[\"JE\"] = \"JE\";\n CountryCode[\"GG\"] = \"GG\";\n CountryCode[\"IM\"] = \"IM\";\n CountryCode[\"US\"] = \"US\";\n CountryCode[\"CA\"] = \"CA\";\n CountryCode[\"IE\"] = \"IE\";\n CountryCode[\"DE\"] = \"DE\";\n CountryCode[\"JP\"] = \"JP\";\n CountryCode[\"FR\"] = \"FR\";\n CountryCode[\"AU\"] = \"AU\";\n CountryCode[\"IT\"] = \"IT\";\n CountryCode[\"CH\"] = \"CH\";\n CountryCode[\"AT\"] = \"AT\";\n CountryCode[\"ES\"] = \"ES\";\n CountryCode[\"NL\"] = \"NL\";\n CountryCode[\"BE\"] = \"BE\";\n CountryCode[\"DK\"] = \"DK\";\n CountryCode[\"SE\"] = \"SE\";\n CountryCode[\"NO\"] = \"NO\";\n CountryCode[\"BR\"] = \"BR\";\n CountryCode[\"PT\"] = \"PT\";\n CountryCode[\"FI\"] = \"FI\";\n CountryCode[\"AX\"] = \"AX\";\n CountryCode[\"KR\"] = \"KR\";\n CountryCode[\"CN\"] = \"CN\";\n CountryCode[\"TW\"] = \"TW\";\n CountryCode[\"SG\"] = \"SG\";\n CountryCode[\"DZ\"] = \"DZ\";\n CountryCode[\"AD\"] = \"AD\";\n CountryCode[\"AR\"] = \"AR\";\n CountryCode[\"AM\"] = \"AM\";\n CountryCode[\"AZ\"] = \"AZ\";\n CountryCode[\"BH\"] = \"BH\";\n CountryCode[\"BD\"] = \"BD\";\n CountryCode[\"BB\"] = \"BB\";\n CountryCode[\"BY\"] = \"BY\";\n CountryCode[\"BM\"] = \"BM\";\n CountryCode[\"BA\"] = \"BA\";\n CountryCode[\"IO\"] = \"IO\";\n CountryCode[\"BN\"] = \"BN\";\n CountryCode[\"BG\"] = \"BG\";\n CountryCode[\"KH\"] = \"KH\";\n CountryCode[\"CV\"] = \"CV\";\n CountryCode[\"CL\"] = \"CL\";\n CountryCode[\"CR\"] = \"CR\";\n CountryCode[\"HR\"] = \"HR\";\n CountryCode[\"CY\"] = \"CY\";\n CountryCode[\"CZ\"] = \"CZ\";\n CountryCode[\"DO\"] = \"DO\";\n CountryCode[\"EC\"] = \"EC\";\n CountryCode[\"EG\"] = \"EG\";\n CountryCode[\"EE\"] = \"EE\";\n CountryCode[\"FO\"] = \"FO\";\n CountryCode[\"GE\"] = \"GE\";\n CountryCode[\"GR\"] = \"GR\";\n CountryCode[\"GL\"] = \"GL\";\n CountryCode[\"GT\"] = \"GT\";\n CountryCode[\"HT\"] = \"HT\";\n CountryCode[\"HN\"] = \"HN\";\n CountryCode[\"HU\"] = \"HU\";\n CountryCode[\"IS\"] = \"IS\";\n CountryCode[\"IN\"] = \"IN\";\n CountryCode[\"ID\"] = \"ID\";\n CountryCode[\"IL\"] = \"IL\";\n CountryCode[\"JO\"] = \"JO\";\n CountryCode[\"KZ\"] = \"KZ\";\n CountryCode[\"KE\"] = \"KE\";\n CountryCode[\"KW\"] = \"KW\";\n CountryCode[\"KY\"] = \"KY\";\n CountryCode[\"LA\"] = \"LA\";\n CountryCode[\"LV\"] = \"LV\";\n CountryCode[\"LB\"] = \"LB\";\n CountryCode[\"LI\"] = \"LI\";\n CountryCode[\"LT\"] = \"LT\";\n CountryCode[\"LU\"] = \"LU\";\n CountryCode[\"MK\"] = \"MK\";\n CountryCode[\"MY\"] = \"MY\";\n CountryCode[\"MV\"] = \"MV\";\n CountryCode[\"MT\"] = \"MT\";\n CountryCode[\"MU\"] = \"MU\";\n CountryCode[\"MX\"] = \"MX\";\n CountryCode[\"MD\"] = \"MD\";\n CountryCode[\"MC\"] = \"MC\";\n CountryCode[\"MA\"] = \"MA\";\n CountryCode[\"NP\"] = \"NP\";\n CountryCode[\"NZ\"] = \"NZ\";\n CountryCode[\"NI\"] = \"NI\";\n CountryCode[\"NG\"] = \"NG\";\n CountryCode[\"OM\"] = \"OM\";\n CountryCode[\"PA\"] = \"PA\";\n CountryCode[\"PK\"] = \"PK\";\n CountryCode[\"PY\"] = \"PY\";\n CountryCode[\"PH\"] = \"PH\";\n CountryCode[\"PL\"] = \"PL\";\n CountryCode[\"PR\"] = \"PR\";\n CountryCode[\"RO\"] = \"RO\";\n CountryCode[\"RU\"] = \"RU\";\n CountryCode[\"SM\"] = \"SM\";\n CountryCode[\"SA\"] = \"SA\";\n CountryCode[\"SN\"] = \"SN\";\n CountryCode[\"SK\"] = \"SK\";\n CountryCode[\"SI\"] = \"SI\";\n CountryCode[\"ZA\"] = \"ZA\";\n CountryCode[\"LK\"] = \"LK\";\n CountryCode[\"TJ\"] = \"TJ\";\n CountryCode[\"TH\"] = \"TH\";\n CountryCode[\"TN\"] = \"TN\";\n CountryCode[\"TR\"] = \"TR\";\n CountryCode[\"TM\"] = \"TM\";\n CountryCode[\"UA\"] = \"UA\";\n CountryCode[\"UY\"] = \"UY\";\n CountryCode[\"UZ\"] = \"UZ\";\n CountryCode[\"VA\"] = \"VA\";\n CountryCode[\"VE\"] = \"VE\";\n CountryCode[\"ZM\"] = \"ZM\";\n CountryCode[\"AS\"] = \"AS\";\n CountryCode[\"CC\"] = \"CC\";\n CountryCode[\"CK\"] = \"CK\";\n CountryCode[\"RS\"] = \"RS\";\n CountryCode[\"ME\"] = \"ME\";\n CountryCode[\"CS\"] = \"CS\";\n CountryCode[\"YU\"] = \"YU\";\n CountryCode[\"CX\"] = \"CX\";\n CountryCode[\"ET\"] = \"ET\";\n CountryCode[\"FK\"] = \"FK\";\n CountryCode[\"NF\"] = \"NF\";\n CountryCode[\"FM\"] = \"FM\";\n CountryCode[\"GF\"] = \"GF\";\n CountryCode[\"GN\"] = \"GN\";\n CountryCode[\"GP\"] = \"GP\";\n CountryCode[\"GS\"] = \"GS\";\n CountryCode[\"GU\"] = \"GU\";\n CountryCode[\"GW\"] = \"GW\";\n CountryCode[\"HM\"] = \"HM\";\n CountryCode[\"IQ\"] = \"IQ\";\n CountryCode[\"KG\"] = \"KG\";\n CountryCode[\"LR\"] = \"LR\";\n CountryCode[\"LS\"] = \"LS\";\n CountryCode[\"MG\"] = \"MG\";\n CountryCode[\"MH\"] = \"MH\";\n CountryCode[\"MN\"] = \"MN\";\n CountryCode[\"MP\"] = \"MP\";\n CountryCode[\"MQ\"] = \"MQ\";\n CountryCode[\"NC\"] = \"NC\";\n CountryCode[\"NE\"] = \"NE\";\n CountryCode[\"VI\"] = \"VI\";\n CountryCode[\"VN\"] = \"VN\";\n CountryCode[\"PF\"] = \"PF\";\n CountryCode[\"PG\"] = \"PG\";\n CountryCode[\"PM\"] = \"PM\";\n CountryCode[\"PN\"] = \"PN\";\n CountryCode[\"PW\"] = \"PW\";\n CountryCode[\"RE\"] = \"RE\";\n CountryCode[\"SH\"] = \"SH\";\n CountryCode[\"SJ\"] = \"SJ\";\n CountryCode[\"SO\"] = \"SO\";\n CountryCode[\"SZ\"] = \"SZ\";\n CountryCode[\"TC\"] = \"TC\";\n CountryCode[\"WF\"] = \"WF\";\n CountryCode[\"XK\"] = \"XK\";\n CountryCode[\"YT\"] = \"YT\";\n CountryCode[\"PE\"] = \"PE\";\n CountryCode[\"GI\"] = \"GI\";\n CountryCode[\"BT\"] = \"BT\";\n CountryCode[\"AL\"] = \"AL\";\n CountryCode[\"CU\"] = \"CU\";\n CountryCode[\"UM\"] = \"UM\";\n CountryCode[\"AI\"] = \"AI\";\n CountryCode[\"AF\"] = \"AF\";\n CountryCode[\"SD\"] = \"SD\";\n CountryCode[\"VC\"] = \"VC\";\n CountryCode[\"TA\"] = \"TA\";\n CountryCode[\"NA\"] = \"NA\";\n CountryCode[\"EH\"] = \"EH\";\n CountryCode[\"BL\"] = \"BL\";\n CountryCode[\"TZ\"] = \"TZ\";\n CountryCode[\"AC\"] = \"AC\";\n CountryCode[\"VG\"] = \"VG\";\n CountryCode[\"MZ\"] = \"MZ\";\n CountryCode[\"MF\"] = \"MF\";\n CountryCode[\"MM\"] = \"MM\";\n CountryCode[\"SV\"] = \"SV\";\n CountryCode[\"IR\"] = \"IR\";\n CountryCode[\"INTL\"] = \"INTL\";\n CountryCode[\"CO\"] = \"CO\";\n})(CountryCode || (CountryCode = {}));\n","import { CountryCode } from './postcode-types';\n// TODO: Remove CountryCode.UK in next major version release\nexport const POSTCODE_REGEXES = new Map([\n [\n CountryCode.UK,\n /^([A-Z]){1}([0-9][0-9]|[0-9]|[A-Z][0-9][A-Z]|[A-Z][0-9][0-9]|[A-Z][0-9]|[0-9][A-Z]){1}([ ])?([0-9][A-z][A-z]){1}$/i,\n ],\n [\n CountryCode.GB,\n /^([A-Z]){1}([0-9][0-9]|[0-9]|[A-Z][0-9][A-Z]|[A-Z][0-9][0-9]|[A-Z][0-9]|[0-9][A-Z]){1}([ ])?([0-9][A-z][A-z]){1}$/i,\n ],\n [CountryCode.JE, /^JE\\d[\\dA-Z]?[ ]?\\d[ABD-HJLN-UW-Z]{2}$/],\n [CountryCode.GG, /^GY\\d[\\dA-Z]?[ ]?\\d[ABD-HJLN-UW-Z]{2}$/],\n [CountryCode.IM, /^IM\\d[\\dA-Z]?[ ]?\\d[ABD-HJLN-UW-Z]{2}$/],\n [CountryCode.US, /^([0-9]{5})(?:-([0-9]{4}))?$/],\n [CountryCode.CA, /^([ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ])\\s*([0-9][ABCEGHJKLMNPRSTVWXYZ][0-9])$/i],\n [CountryCode.IE, /^([AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$/],\n [CountryCode.DE, /^\\d{5}$/],\n [CountryCode.JP, /^\\d{3}-\\d{4}$/],\n [CountryCode.FR, /^\\d{2}[ ]?\\d{3}$/],\n [CountryCode.AU, /^\\d{4}$/],\n [CountryCode.IT, /^\\d{5}$/],\n [CountryCode.CH, /^\\d{4}$/],\n [CountryCode.AT, /^(?!0)\\d{4}$/],\n [CountryCode.ES, /^(?:0[1-9]|[1-4]\\d|5[0-2])\\d{3}$/],\n [CountryCode.NL, /^\\d{4}[ ]?[A-Z]{2}$/],\n [CountryCode.BE, /^\\d{4}$/],\n [CountryCode.DK, /^\\d{4}$/],\n [CountryCode.SE, /^(SE-)?\\d{3}[ ]?\\d{2}$/],\n [CountryCode.NO, /^\\d{4}$/],\n [CountryCode.BR, /^\\d{5}[\\-]?\\d{3}$/],\n [CountryCode.PT, /^\\d{4}([\\-]\\d{3})?$/],\n [CountryCode.FI, /^(FI-|AX-)?\\d{5}$/],\n [CountryCode.AX, /^22\\d{3}$/],\n [CountryCode.KR, /^\\d{5}$/],\n [CountryCode.CN, /^\\d{6}$/],\n [CountryCode.TW, /^\\d{3}(\\d{2,3})?$/],\n [CountryCode.SG, /^\\d{6}$/],\n [CountryCode.DZ, /^\\d{5}$/],\n [CountryCode.AD, /^AD\\d{3}$/],\n [CountryCode.AR, /^[A-HJ-NP-Z]\\d{4}([A-Z]{3})?$/],\n [CountryCode.AM, /^(37)?\\d{4}$/],\n [CountryCode.AZ, /^\\d{4}$/],\n [CountryCode.BH, /^((1[0-2]|[2-9])\\d{2})?$/],\n [CountryCode.BD, /^\\d{4}$/],\n [CountryCode.BB, /^(BB\\d{5})?$/],\n [CountryCode.BY, /^\\d{6}$/],\n [CountryCode.BM, /^[A-Z]{2}[ ]?[A-Z0-9]{2}$/],\n [CountryCode.BA, /^\\d{5}$/],\n [CountryCode.IO, /^BBND 1ZZ$/],\n [CountryCode.BN, /^[A-Z]{2}[ ]?\\d{4}$/],\n [CountryCode.BG, /^\\d{4}$/],\n [CountryCode.KH, /^\\d{5}$/],\n [CountryCode.CV, /^\\d{4}$/],\n [CountryCode.CL, /^\\d{7}$/],\n [CountryCode.CR, /^(\\d{4,5}|\\d{3}-\\d{4})$/],\n [CountryCode.HR, /^(HR-)?\\d{5}$/],\n [CountryCode.CY, /^\\d{4}$/],\n [CountryCode.CZ, /^\\d{3}[ ]?\\d{2}$/],\n [CountryCode.DO, /^\\d{5}$/],\n [CountryCode.EC, /^([A-Z]\\d{4}[A-Z]|(?:[A-Z]{2})?\\d{6})?$/],\n [CountryCode.EG, /^\\d{5}$/],\n [CountryCode.EE, /^\\d{5}$/],\n [CountryCode.FO, /^\\d{3}$/],\n [CountryCode.GE, /^\\d{4}$/],\n [CountryCode.GR, /^\\d{3}[ ]?\\d{2}$/],\n [CountryCode.GL, /^39\\d{2}$/],\n [CountryCode.GT, /^\\d{5}$/],\n [CountryCode.HT, /^\\d{4}$/],\n [CountryCode.HN, /^(?:\\d{5})?$/],\n [CountryCode.HU, /^\\d{4}$/],\n [CountryCode.IS, /^\\d{3}$/],\n [CountryCode.IN, /^\\d{6}$/],\n [CountryCode.ID, /^\\d{5}$/],\n [CountryCode.IL, /^\\d{5,7}$/],\n [CountryCode.JO, /^\\d{5}$/],\n [CountryCode.KZ, /^\\d{6}$/],\n [CountryCode.KE, /^\\d{5}$/],\n [CountryCode.KW, /^\\d{5}$/],\n [CountryCode.KY, /^KY[123]-\\d{4}$/],\n [CountryCode.LA, /^\\d{5}$/],\n [CountryCode.LV, /^(LV-)?\\d{4}$/],\n [CountryCode.LB, /^(\\d{4}([ ]?\\d{4})?)?$/],\n [CountryCode.LI, /^(948[5-9]|949[0-7])$/],\n [CountryCode.LT, /^(LT-)?\\d{5}$/],\n [CountryCode.LU, /^(L-)?\\d{4}$/],\n [CountryCode.MK, /^\\d{4}$/],\n [CountryCode.MY, /^\\d{5}$/],\n [CountryCode.MV, /^\\d{5}$/],\n [CountryCode.MT, /^[A-Z]{3}[ ]?\\d{2,4}$/],\n [CountryCode.MU, /^((\\d|[A-Z])\\d{4})?$/],\n [CountryCode.MX, /^\\d{5}$/],\n [CountryCode.MD, /^\\d{4}$/],\n [CountryCode.MC, /^980\\d{2}$/],\n [CountryCode.MA, /^\\d{5}$/],\n [CountryCode.NP, /^\\d{5}$/],\n [CountryCode.NZ, /^\\d{4}$/],\n [CountryCode.NI, /^((\\d{4}-)?\\d{3}-\\d{3}(-\\d{1})?)?$/],\n [CountryCode.NG, /^(\\d{6})?$/],\n [CountryCode.OM, /^(PC )?\\d{3}$/],\n [CountryCode.PA, /^\\d{4}$/],\n [CountryCode.PK, /^\\d{5}$/],\n [CountryCode.PY, /^\\d{4}$/],\n [CountryCode.PH, /^\\d{4}$/],\n [CountryCode.PL, /^\\d{2}-\\d{3}$/],\n [CountryCode.PR, /^00[679]\\d{2}([ \\-]\\d{4})?$/],\n [CountryCode.RO, /^\\d{6}$/],\n [CountryCode.RU, /^\\d{6}$/],\n [CountryCode.SM, /^4789\\d$/],\n [CountryCode.SA, /^\\d{5}$/],\n [CountryCode.SN, /^\\d{5}$/],\n [CountryCode.SK, /^\\d{3}[ ]?\\d{2}$/],\n [CountryCode.SI, /^(SI-)?\\d{4}$/],\n [CountryCode.ZA, /^\\d{4}$/],\n [CountryCode.LK, /^\\d{5}$/],\n [CountryCode.TJ, /^\\d{6}$/],\n [CountryCode.TH, /^\\d{5}$/],\n [CountryCode.TN, /^\\d{4}$/],\n [CountryCode.TR, /^\\d{5}$/],\n [CountryCode.TM, /^\\d{6}$/],\n [CountryCode.UA, /^\\d{5}$/],\n [CountryCode.UY, /^\\d{5}$/],\n [CountryCode.UZ, /^\\d{6}$/],\n [CountryCode.VA, /^00120$/],\n [CountryCode.VE, /^\\d{4}$/],\n [CountryCode.ZM, /^\\d{5}$/],\n [CountryCode.AS, /^96799$/],\n [CountryCode.CC, /^6799$/],\n [CountryCode.CK, /^\\d{4}$/],\n [CountryCode.RS, /^\\d{5,6}$/],\n [CountryCode.ME, /^8\\d{4}$/],\n [CountryCode.CS, /^\\d{5}$/],\n [CountryCode.YU, /^\\d{5}$/],\n [CountryCode.CX, /^6798$/],\n [CountryCode.ET, /^\\d{4}$/],\n [CountryCode.FK, /^FIQQ 1ZZ$/],\n [CountryCode.NF, /^2899$/],\n [CountryCode.FM, /^(9694[1-4])([ \\-]\\d{4})?$/],\n [CountryCode.GF, /^9[78]3\\d{2}$/],\n [CountryCode.GN, /^\\d{3}$/],\n [CountryCode.GP, /^9[78][01]\\d{2}$/],\n [CountryCode.GS, /^SIQQ 1ZZ$/],\n [CountryCode.GU, /^969[123]\\d([ \\-]\\d{4})?$/],\n [CountryCode.GW, /^\\d{4}$/],\n [CountryCode.HM, /^\\d{4}$/],\n [CountryCode.IQ, /^\\d{5}$/],\n [CountryCode.KG, /^\\d{6}$/],\n [CountryCode.LR, /^\\d{4}$/],\n [CountryCode.LS, /^\\d{3}$/],\n [CountryCode.MG, /^\\d{3}$/],\n [CountryCode.MH, /^969[67]\\d([ \\-]\\d{4})?$/],\n [CountryCode.MN, /^\\d{5}$/],\n [CountryCode.MP, /^9695[012]([ \\-]\\d{4})?$/],\n [CountryCode.MQ, /^9[78]2\\d{2}$/],\n [CountryCode.NC, /^988\\d{2}$/],\n [CountryCode.NE, /^\\d{4}$/],\n [CountryCode.VI, /^008(([0-4]\\d)|(5[01]))([ \\-]\\d{4})?$/],\n [CountryCode.VN, /^\\d{5,6}$/],\n [CountryCode.PF, /^987\\d{2}$/],\n [CountryCode.PG, /^\\d{3}$/],\n [CountryCode.PM, /^9[78]5\\d{2}$/],\n [CountryCode.PN, /^PCRN 1ZZ$/],\n [CountryCode.PW, /^96940$/],\n [CountryCode.RE, /^9[78]4\\d{2}$/],\n [CountryCode.SH, /^(ASCN|STHL) 1ZZ$/],\n [CountryCode.SJ, /^\\d{4}$/],\n [CountryCode.SO, /^\\d{5}$/],\n [CountryCode.SZ, /^[HLMS]\\d{3}$/],\n [CountryCode.TC, /^TKCA 1ZZ$/],\n [CountryCode.WF, /^986\\d{2}$/],\n [CountryCode.XK, /^\\d{5}$/],\n [CountryCode.YT, /^976\\d{2}$/],\n [CountryCode.GI, /^GX11 1AA/],\n [CountryCode.BT, /^\\d{5}/],\n [CountryCode.AL, /^\\d{4}/],\n [CountryCode.CU, /^\\d{5}/],\n [CountryCode.UM, /^96898/],\n [CountryCode.AI, /^(?:AI-)?2640/],\n [CountryCode.AF, /^\\d{4}/],\n [CountryCode.SD, /^\\d{5}/],\n [CountryCode.VC, /^VC\\d{4}/],\n [CountryCode.TA, /^TDCU 1ZZ/],\n [CountryCode.NA, /^\\d{5}/],\n [CountryCode.EH, /^\\d{5}/],\n [CountryCode.BL, /^9[78][01]\\d{2}/],\n [CountryCode.TZ, /^\\d{4,5}/],\n [CountryCode.AC, /^ASCN 1ZZ/],\n [CountryCode.VG, /^VG\\d{4}/],\n [CountryCode.MZ, /^\\d{4}/],\n [CountryCode.MF, /^9[78][01]\\d{2}/],\n [CountryCode.MM, /^\\d{5}/],\n [CountryCode.SV, /^CP [1-3][1-7][0-2]\\d/],\n [CountryCode.IR, /^\\d{5}-?\\d{5}/],\n [CountryCode.PE, /^[0-2]\\d{4}$/],\n [CountryCode.INTL, /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/i],\n [CountryCode.CO, /^(0[58]|1[135789]|2[0357]|4[147]|5[024]|6[368]|7[036]|8[1568]|9[4579])\\d{4}$/],\n]);\n","import { POSTCODE_REGEXES } from './postcode-regexes';\nexport { CountryCode } from './postcode-types';\nexport const postcodeValidator = (postcode, country) => {\n if (!POSTCODE_REGEXES.has(country)) {\n // throw Error if country code is unrecognised\n throw Error(`Invalid country code: ${country}`);\n }\n return POSTCODE_REGEXES.get(country).test(postcode);\n};\nexport const postcodeValidatorExistsForCountry = (country) => {\n return POSTCODE_REGEXES.has(country);\n};\n","'use strict'\n\nconst lookup = [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]\n\nmodule.exports = function luhn (number) {\n if (typeof number !== 'string') throw new TypeError('Expected string input')\n if (!number) return false\n\n let index = number.length\n let x2 = true\n let sum = 0\n\n while (index) {\n const value = number.charCodeAt(--index) - 48\n if (value < 0 || value > 9) return false\n\n x2 = !x2\n sum += x2 ? lookup[value] : value\n }\n\n return sum % 10 === 0\n}\n","import { type Dispatch, type Store } from \"redux\";\nimport { type InjectedIntl } from \"react-intl\";\n\nimport { type Flags } from \"@jslib/shared/flags\";\nimport { type ThemeChoices } from \"@jslib/shared/CustomCssContextProvider\";\n\nimport { type FormFieldConfigType } from \"@components/FormFields/FormFieldCustom/FormFieldCustom\";\nimport { type TryAgainAction } from \"@components/TryAgainAction\";\n\nimport {\n type RewardDisplayEnum,\n type Locale,\n type IdCheckLoopServiceType,\n type ThirdPartyLoopProvider,\n} from \"@/lib/types/runtimeTypes\";\nimport { type hooks } from \"@/lib/hooks\";\nimport { type NestedKeyOf, type DeepPartial } from \"@/lib/types/helpers\";\nimport { type ViewModelUpdateOptions } from \"@/lib/VerificationService/ViewModel\";\n\nexport { type Locale } from \"./runtimeTypes\";\nexport type { NavigatorBeta } from \"@jslib/shared/runtimeTypes\";\n\n/**\n * SheerID Javascript Library types and interfaces\n */\n\n/**\n * The interface exposed on the window object\n */\nexport interface SheerIdJsApi {\n getMetadata(): Metadata;\n setMetadata(metadata: Metadata): void;\n resetMetadata(): void;\n setOptions(options: Options): void;\n resetOptions(): void;\n VerificationForm: new (element: HTMLElement, programId: DatabaseId) => void;\n addHook(hook: Hook): RegisteredHooks;\n refreshStore(): void;\n hooks: typeof hooks;\n conversion: Conversion;\n setViewModel(viewModel: ViewModel | {}): void;\n resetViewModel(): void;\n overrideComponent: (\n componentName: OverrideableComponentName,\n newComponent: StepComponent,\n ) => void;\n resetOverriddenComponents: () => void;\n postVerificationSizeUpdates(options: PostMessagesOptions): void;\n getMessages(\n locale: Locale,\n programThemeMessages?: ProgramThemeMessages,\n segment?: Segment,\n ): Promise<StringMap>;\n collectDeviceProfile(verificationId: string, programId: string): void;\n resetStore: () => void;\n setProgramTheme(theme: Partial<ProgramTheme>): void;\n}\n\nexport interface FormFieldConfig {\n fieldId: PersonalInfoFieldId | string; // should be camelCase. Will be used as the key in metadata where the value is stored. Also used to build localization message keys\n disabled?: boolean;\n requireIfOptional?: boolean; // Allows optional fields to be set as required\n hidden?: boolean;\n}\n\nexport interface CustomFormFieldConfig extends FormFieldConfig {\n fieldType: (typeof FormFieldConfigType)[keyof typeof FormFieldConfigType]; // Currently \"text\"|\"checkbox\"|\"select\"|\"radio\"|\"date\"|\"dateYm\"\n validate: (value: string | boolean) => ErrorId | ExtendedErrorId; // If value is invalid, return an error id or string so the error msg can be localized and shown\n showPlaceholderAndHideLabel?: boolean;\n required?: boolean;\n options?: string[]; // the options will be converted to a FormSelectChoice[] when passed into the formSelectComponent\n // each FormSelectChoice value will be each option and the labels will be prefixed with the fieldId. Example -> {config.fieldId}.{option}\n}\n\nexport interface UtilsApi {\n determineDevice: (verificationId: DatabaseId, programId: DatabaseId) => void;\n setOptions(options: Options): void;\n}\n\n// #region Private ---------------------------------------------------------------------\n/**\n * @description Require only properties of type T\n * @private\n * Example:\n type A = { foo: string }\n\n function bar(newObject: PropertiesOf<A>) {...}\n\n bar({ foo: 'baz' }) // valid\n bar({ otherProp: 'stuff' }) // invalid\n */\nexport type PropertiesOf<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> &\n {\n [K in Keys]-?: Required<Pick<T, K>>;\n }[Keys];\n\n/**\n * @private\n */\nexport type StringMap = {\n [a: string]: string;\n};\n// #endregion Private ------------------------------------------------------------------\n\n// #region GeneralPurpose --------------------------------------------------------------\n/**\n * @example 5bbd127d9781852f68e14ddc\n * @template 24 digit hexadecimal\n */\nexport type DatabaseId = string;\n\n/**\n * @example { 'someKey': 'someValue' }\n */\nexport type Metadata = { [key: string]: string | boolean };\n\n// #endregion GeneralPurpose -----------------------------------------------------------\n\n// #region Options ---------------------------------------------------------------------\n/**\n * @description Configurable options that can be passed when initializing this library.\n */\nexport type Options = {\n restApi?: RestApiOptions;\n logLevel?: LogLevel;\n mockStep?: MockStep;\n mockSegment?: Segment;\n mockSubSegment?: SubSegment;\n mockErrorId?: ErrorId;\n mockErrorDetailId?: ErrorDetailId;\n mockCaptchaState?: MockCaptchaState;\n mockRewardCode?: string;\n mockRedirectUrl?: string;\n mockConsumerInfoState?: ConsumerInfoState;\n mockIdCheckLoopServiceType?: IdCheckLoopServiceType;\n mockPreviousStep?: VerificationStep;\n mockDocSelected?: string;\n installPageUrl?: string;\n mockResponse?: VerificationResponse;\n // Whether to fetch the program theme or not. False to avoid fetching the theme, for less network overhead.\n // Supply your own language, or use built-in defaults.\n doFetchTheme?: boolean;\n locale?: Locale;\n messages?: object;\n messagesWithLocale?: Partial<Record<Locale, object>>;\n urlFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlStudentFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlSeniorFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlAgeFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlMilitaryFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlTeacherFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlMemberFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlFirstResponderFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlMedicalFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlEmploymentFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlIdentityFaq?: string;\n /**\n * @deprecated since version 1.63\n */\n urlLicensedProfessionalFaq?: string;\n urlLowIncomeFaq?: string;\n urlAddSchoolFaq?: string;\n urlAddSchoolForm?: string;\n customCss?: ProgramTheme[\"customCss\"];\n logoUrl?: ProgramTheme[\"logoUrl\"];\n privacyPolicyUrl?: ProgramTheme[\"privacyPolicyUrl\"];\n\n cookies?: CookieOptions;\n useFingerprinting?: boolean;\n marketConsent?: MarketConsentOptions;\n customMetadata?: MetadataConfig;\n verificationId?: string;\n externalUserId?: string;\n minimumOrganizationSearchLength?: number;\n\n httpRequestTimeout?: number;\n\n hideTestModeFlag?: boolean;\n\n /**\n * @deprecated\n */\n hideMilitaryFamilyAcceptableUploads?: boolean;\n\n customFormFields?: CustomFormFieldConfig[];\n formFieldConfig?: FormFieldConfig[];\n tryAgainAction?: TryAgainAction;\n\n // adding as part of HC-202 Launch Darkly experimentation trial\n _launchDarklyUserTargeting?: boolean;\n // provide Launch Darkly flags for MySheerID\n _launchDarklyFlagCb?: (flags: Flags) => void;\n\n /**\n * Supports backwards compatibility with consumers who render the a verification form directly on their page, preventing the landing page from rendering within their container.\n * This option may be removed in v2.\n */\n renderAs?: \"default\" | \"landingPage\";\n};\n\nexport type RestApiOptions = {\n serviceUrl: string;\n resources?: RestResources;\n};\n\n/**\n * @description Control how cookies behave\n * @field `expires` Number of days for cookie to expire in. Use 0 to expire in same browser session.\n * @field `secure` Whether the cookie is set securely.\n */\nexport type CookieOptions = {\n expires: number;\n secure: boolean;\n enabled: boolean;\n path?: string;\n domain?: string;\n sameSite?: \"lax\" | \"strict\" | \"none\";\n};\n\nexport type MockCaptchaState = \"loading\" | \"success\" | \"hidden\" | \"error\";\n\nexport type MarketConsentOptions = {\n enabled: boolean;\n required: boolean;\n message: string;\n};\n\nexport type MetadataConfig = {\n enabled: boolean;\n keys: string[];\n requiredKeys?: string[];\n};\n\nexport type RestResources = {\n verification: string;\n program: ProgramResources;\n conversion: ConversionResources;\n};\n\nexport type ProgramResources = {\n base: string;\n theme: string;\n organization: string;\n};\n\n/**\n * @description Configuration for a verification being displayed on an iframe.\n */\nexport type IframeUserConfiguration = {\n closeButtonText?: string;\n mobileRedirect?: boolean;\n mobileThreshold?: string | number;\n stopPropagation?: boolean;\n};\n\n/**\n * @description URL of a verification to be displayed.\n */\nexport type VerificationUrl = string;\n\n/**\n * @description Options for the message events send by a verification loaded on an iframe.\n * These event are used to resize a modal containing a verification.\n */\nexport type PostMessagesOptions = {\n origin: VerificationUrl;\n interval: number;\n};\n\nexport type PostMessageAction =\n | {\n type: \"updateHeight\";\n action?: \"updateHeight\"; // @deprecated - need to support older versions of the jslib\n height: number;\n }\n | {\n type: \"focus\";\n action?: \"focus\"; // @deprecated - need to support older versions of the jslib\n focusOn: \"firstElement\" | \"lastElement\";\n }\n | {\n type: \"hook\";\n action?: never;\n hook: HookData;\n };\n\nexport type PostMessageData = {\n verificationIframeUid: string;\n action: PostMessageAction;\n};\n/**\n * @description URLs related to conversion endpoints.\n */\nexport type ConversionResources = {\n base: string;\n};\n\nexport type LogLevel = \"info\" | \"log\" | \"warn\" | \"error\" | \"silent\";\n// #endregion Options ------------------------------------------------------------------\n\n// #region FormFields ------------------------------------------------------------------\n/**\n * @description Interface for individual field instances, such as BirthdateField\n * @example new sheerid.BirthdateField().setValue('2000-01-01');\n */\nexport interface DiscreteField {\n getValue(): any;\n setValue(value: any): void;\n onChange(callback: Function): void; // TODO callback should be of a type that receives value, isErrored, etc\n setIsErrored(value: boolean): void;\n render(): void;\n}\n\n/**\n * @todo document constraints here\n */\nexport type Email = string;\n\n/**\n * @example (111) 222-3333 | 1112223333 | 111-222-3333\n * TODO - Update this when PhoneNumberValidator regex changes.\n */\nexport type PhoneNumber = string;\n\n/**\n * @example 2013-03-06\n * @template ISO-8601 'YYYY-MM-DD'\n */\nexport type BirthDate = string;\n\n/**\n * @example 1234567 | A01205257\n */\nexport type MemberId = string;\n\n/**\n * @example 2013-03-06\n * @template ISO-8601 'YYYY-MM-DD'\n * The `day` portion of this date is not editable or displayed to the user\n */\nexport type DischargeDate = string;\n\n/**\n * @example 2013-03-06\n * @template ISO-8601 'YYYY-MM-DD'\n */\nexport type ActiveDutyStartDate = string;\n\n/**\n * @description TODO\n */\nexport const MILITARY_STATUS = [\n \"ACTIVE_DUTY\",\n \"VETERAN\",\n \"RESERVIST\",\n \"MILITARY_RETIREE\",\n \"MILITARY_FAMILY\",\n \"GOLD_STAR_FAMILY\",\n] as const;\nexport type MilitaryStatus = (typeof MILITARY_STATUS)[number];\n\n/**\n * @description TODO\n */\nexport const FIRST_RESPONDER_STATUS = [\n \"FIREFIGHTER\",\n \"EMT\",\n \"POLICE\",\n \"SEARCH_AND_RESCUE\",\n] as const;\nexport type FirstResponderStatus = (typeof FIRST_RESPONDER_STATUS)[number];\n\nexport const MEDICAL_PROFESSIONAL_STATUS = [\n \"NURSE\",\n \"DOCTOR\",\n \"DENTIST\",\n \"PHARMACIST\",\n \"OTHER_HEALTH_WORKER\",\n] as const;\nexport type MedicalProfessionalStatus = (typeof MEDICAL_PROFESSIONAL_STATUS)[number];\n\nexport const LICENSED_PROFESSIONAL_STATUS = [\n \"LICENSED_COSMETOLOGIST\",\n \"LICENSED_REAL_ESTATE_AGENT\",\n \"VETERINARIAN\",\n \"CHILD_CARE_WORKER\",\n \"LIBRARIAN\",\n \"INTERIOR_DESIGNER\",\n \"ARCHITECT\",\n \"GENERAL_CONTRACTOR\",\n \"NUTRITION_PROFESSIONAL\",\n] as const;\nexport type LicensedProfessionalStatus = (typeof LICENSED_PROFESSIONAL_STATUS)[number];\n\nexport const RECENT_MOVER_STATUS = [\"HOME_BUYER\", \"OTHER_MOVER\"] as const;\nexport type RecentMoverStatus = (typeof RECENT_MOVER_STATUS)[number];\n\nexport const LOW_INCOME_STATUS = [\n \"SNAP_BENEFITS\",\n \"OTHER_GOVERNMENT_ASSISTANCE\",\n \"COMMUNITY_ELIGIBILITY_PROVISION\",\n] as const;\nexport type LowIncomeStatus = (typeof LOW_INCOME_STATUS)[number];\n\n/**\n * @description TODO\n */\nexport type OrganizationId = number;\n\n/**\n * @description TODO\n */\nexport type OrganizationName = string;\n\n/**\n * @description All possible fields which show up on the personal info steps\n */\nexport type PersonalInfoFieldId =\n | \"firstName\"\n | \"lastName\"\n | \"memberId\"\n | \"organization\"\n | \"birthDate\"\n | \"email\"\n | \"phoneNumber\"\n | \"postalCode\"\n | \"address1\"\n | \"city\"\n | \"state\"\n | \"dischargeDate\"\n | \"activeDutyStartDate\"\n | \"status\"\n | \"statuses\"\n | \"country\"\n | \"socialSecurityNumber\"\n | \"marketConsentValue\"\n | \"ebtCardNumber\"\n | \"cvecNumber\"\n | \"driverLicenseNumber\";\n\n/**\n * @description All possible fields\n */\nexport type FieldId =\n | PersonalInfoFieldId\n | \"docUpload\"\n | \"carrierConsentValue\"\n | \"overrideCode\"\n | \"organizationEmail\"\n | \"authenticationCode\"\n | \"smsCode\"\n | \"captchaToken\";\n\nexport type FormValidationOptions = {\n minAge?: number;\n maxAge?: number;\n smsLoopEnabled?: boolean;\n strictMilitaryValidationEnabled?: boolean;\n transitionalMilitaryValidityDays?: number;\n currentStep?: VerificationStep;\n viewModel?: ViewModel;\n};\n\n/**\n * @description TODO\n */\nexport type ExtendedFieldId = FieldId | string;\n\n/**\n * @description The object that contains all possible field ids for setting & displaying field errors, if any\n */\nexport type FieldValidationErrors = {\n [P in FieldId]: ErrorId;\n};\n\n/**\n * @description TODO\n */\nexport type ExtendedFieldValidationErrors = StringMap;\n\n/**\n * @description TODO\n */\nexport type FieldContent =\n | string\n | number\n | File\n | FormSelectChoice<Country, string>\n | Organization\n | boolean;\n\n/**\n * @private\n */\nexport type Organization = {\n id: OrganizationId;\n name: OrganizationName;\n country?: Country;\n type?: OrganizationType;\n idExtended?: string;\n source?: OrganizationRemoteSource;\n city?: string;\n state?: string;\n latitude?: number;\n longitude?: number;\n};\n\n/**\n * @private\n */\nexport type OrganizationRemoteSource = \"EMPLOYER\" | \"PLACE\";\n\n/**\n * @private\n */\nexport type OrganizationSearchResp = Organization[];\n\n/**\n * @description A model to back many of this library's `<select>` elements.\n * For compatibility, a default for value of `string` or `number` is allowed.\n * Made generic to allow arbitrary types (e.g. `FormSelectChoice<Locale, string>`)\n */\nexport type FormSelectChoice<v = string | number, l = string> = {\n value: v;\n label: l;\n};\n\nexport type InputSelectOnKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\nexport interface FormFieldComponentProps<T = any> {\n onChange: (value: T) => void;\n value: T;\n intl?: InjectedIntl;\n autoFocus?: boolean;\n isErrored?: boolean;\n errorId?: ErrorId;\n isRequired?: boolean;\n onKeyDown?: Function;\n placeholder?: string;\n label?: JSX.Element;\n verificationService?: VerificationService;\n disabled?: boolean;\n}\n\n// #region Refs ---------------------------------------------------------------------\n/**\n * @description Configurable refs that can be defined when rendering FormField components.\n */\nexport type FieldRef = {\n fieldId: FieldId | ExtendedFieldId;\n ref: HTMLElement;\n};\n\nexport interface VerificationServiceProps {\n verificationService: VerificationService;\n}\n\n// TODO fix \"any\" default type. I think it's supposed to be string | number\nexport interface InputSelectComponentProps<T = any> {\n onChange: (choice: T) => void;\n options: FormSelectChoice[];\n value: T;\n isErrored?: boolean;\n isRequired?: boolean;\n onKeyDown?: InputSelectOnKeyDown;\n placeholder?: string;\n label?: string | JSX.Element;\n intl?: InjectedIntl;\n suppressPlaceholder?: boolean;\n disabled?: boolean;\n}\n// #endregion FormFields ---------------------------------------------------------------\n\n// #region Errors ----------------------------------------------------------------------\nexport type ErrorId =\n | \"activeDutyStartDateBeforeBirthDate\"\n | \"apiRateLimitExceeded\"\n | \"dischargeDateBeforeBirthDate\"\n | \"docReviewLimitExceeded\"\n | \"inactiveProgram\"\n | \"expiredProgram\"\n | \"expiredEmailLoopToken\"\n | \"expiredSMSCode\"\n | \"expiredVerification\"\n | \"fraudRulesReject\"\n | \"futureBirthDate\"\n | \"futureDischargeDate\"\n | \"futureActiveDutyStartDate\"\n | \"incorrectVerificationOverrideCodeAttemptLimitExceeded\"\n | \"ineligibleOrganization\"\n | \"internalServerError\"\n | \"invalidActiveDutyStartDate\"\n | \"invalidAddress\"\n | \"invalidApiToken\"\n | \"invalidBirthDate\"\n | \"invalidCaptchaToken\"\n | \"invalidCity\"\n | \"invalidCountry\"\n | \"invalidCvecNumber\"\n | \"invalidDischargeDate\"\n | \"invalidDocUploadToken\"\n | \"invalidEbtCardNumber\"\n | \"invalidEmail\"\n | \"invalidFileSizeEmpty\"\n | \"invalidFileSizeMax\"\n | \"invalidFirstName\"\n | \"invalidFirstResponderStatus\"\n | \"invalidLastName\"\n | \"invalidMemberId\"\n | \"invalidMilitaryStatus\"\n | \"invalidNumberOfFiles\"\n | \"invalidOptIn\"\n | \"invalidOrganization\"\n | \"invalidOverrideCode\"\n | \"invalidPhoneNumber\"\n | \"invalidPostalCode\"\n | \"invalidProgram\"\n | \"invalidRequest\"\n | \"invalidSMSCode\"\n | \"invalidSocialSecurityNumber\"\n | \"invalidState\"\n | \"invalidStatus\"\n | \"invalidStatuses\"\n | \"invalidDriverLicenseNumber\"\n | \"invalidStep\"\n | \"invalidAuthenticationLoopToken\"\n | \"marketConsentRequired\"\n | \"maxMetadataLengthExceeded\"\n | \"maxMetadataValuesExceeded\"\n | \"maxSMSCodeLimitExceeded\"\n | \"incorrectSMSCodeAttemptLimitExceeded\"\n | \"noProgram\"\n | \"noRemainingRewardCodes\"\n | \"notApproved\"\n | \"notFound\"\n | \"noValidFiles\"\n | \"noVerification\"\n | \"outsideAgePerson\"\n | \"simulatedError\"\n | \"unauthorizedAccountStatus\"\n | \"unauthorizedDomain\"\n | \"underagePerson\"\n | \"unknownError\"\n | \"unsupportedDocMimeType\"\n | \"verificationLimitExceeded\"\n | \"invalidEmailLoopToken\"\n | \"missingRequiredMetadata\"\n | \"missingRequiredExternalId\"\n | \"invalidAuthenticationLoopToken\"\n | \"duplicateFile\"\n | NetworkErrorId;\n\nexport type NetworkErrorId = \"failedToFetch\" | \"requestTimeout\";\n\nexport type ExtendedErrorId = string | undefined;\n\nexport type WarningId = \"openOrganization\";\n\nexport type ErrorDetailId =\n | \"govIdOtherFailure\"\n | \"govIdMismatch\"\n | \"govIdRetakeBiometric\"\n | \"govIdRetakeId\"\n | \"govIdUnsupportedDoc\"\n | \"personLimit\"\n | \"troubleVerifying\"\n | \"unableToVerify\"\n | \"vpnsNotAllowed\";\n\nexport type RejectionReasons =\n | \"DOCUMENT_UNREADABLE\"\n | \"DOCUMENT_PASSWORD_PROTECTED\"\n | \"DOCUMENT_LIKELY_FRAUD\"\n | \"DOCUMENT_UNSUPPORTED\"\n | \"DOCUMENT_HANDWRITTEN\"\n | \"MISSING_INFORMATION\"\n | \"MISSING_INFORMATION_PERSON_NAME\"\n | \"MISSING_INFORMATION_ORGANIZATION_NAME\"\n | \"DOCUMENT_EXPIRED\"\n | \"DOCUMENT_OUTDATED\"\n | \"MISMATCH_PERSON_NAME\"\n | \"MISMATCH_ORGANIZATION\"\n | \"MISMATCH_STATUS\"\n | \"INELIGIBLE_ORGANIZATION\"\n | \"MISSING_INFORMATION_UNIVERSITY_ENROLLMENT\"\n | \"INELIGIBLE_PERSON_HIGH_SCHOOL_STUDENT\"\n | \"MISSING_INFORMATION_AFFILIATION_US_ARMED_FORCES\"\n | \"MISMATCH_COMPANY_NAME_OR_ADDRESS\"\n | \"PAYSTUB_OUTDATED_LAST_30_DAYS\"\n | \"MISSING_INFORMATION_BIRTHDATE\"\n | \"MISMATCH_BIRTHDATE\"\n | \"DOCUMENT_OUTDATED_FACULTY\"\n | \"MISSING_OR_MISMATCH_JOB_TITLE\"\n | \"RESTRICTED_DOCUMENT\"\n | \"DOCUMENT_EMAIL_SCREENSHOT\"\n | \"OTHER_CONTACT_US\";\n// #endregion Errors -----------------------------------------------------------------------\n\n// #region Steps -----------------------------------------------------------------------\nexport type VerificationStep =\n | \"collectStudentPersonalInfo\"\n | \"collectTeacherPersonalInfo\"\n | \"collectMemberPersonalInfo\"\n | \"collectMilitaryStatus\"\n | \"collectActiveMilitaryPersonalInfo\"\n | \"collectInactiveMilitaryPersonalInfo\"\n | \"collectSeniorPersonalInfo\"\n | \"collectAgePersonalInfo\"\n | \"collectFirstResponderPersonalInfo\"\n | \"collectMedicalProfessionalPersonalInfo\"\n | \"collectEmployeePersonalInfo\"\n | \"collectDriverLicensePersonalInfo\"\n | \"collectGeneralIdentityPersonalInfo\"\n | \"collectHybridIdentityPersonalInfo\"\n | \"collectLicensedProfessionalPersonalInfo\"\n | \"collectLowIncomePersonalInfo\"\n | \"collectMoverPersonalInfo\"\n | \"collectSocialSecurityNumber\"\n | \"collectIdentifier\"\n | \"collectPersonalInfo\"\n | \"cancelSocialSecurityNumber\"\n | \"docUpload\"\n | \"pending\"\n | \"docReviewLimitExceeded\"\n | \"success\"\n | \"error\"\n | \"sso\"\n | \"smsLoop\"\n | \"emailLoop\"\n | \"emailLoopCollectOrganizationEmail\"\n | \"completeAuthentication\"\n | \"cancelEmailLoop\"\n | \"idCheckLoop\"\n | \"consolation\"\n | \"override\"\n | \"cancelDocUpload\"\n | \"missingRequiredMetadata\"\n | \"missingRequiredExternalId\"\n | \"thirdPartyLoop\";\n\nexport type VerificationStepMap<T> = {\n [P in VerificationStep]: T;\n};\n\nexport type MockStep = VerificationStep | \"loading\" | \"collect\";\n\nexport type OverrideableComponentName =\n | \"StepStudentPersonalInfoComponent\"\n | \"StepSeniorPersonalInfoComponent\"\n | \"StepAgePersonalInfoComponent\"\n | \"StepTeacherPersonalInfoComponent\"\n | \"StepMemberPersonalInfoComponent\"\n | \"StepCollectMilitaryStatusComponent\"\n | \"StepActiveMilitaryPersonalInfoComponent\"\n | \"StepInactiveMilitaryPersonalInfoComponent\"\n | \"StepFirstResponderPersonalInfoComponent\"\n | \"StepMedicalProfessionalPersonalInfoComponent\"\n | \"StepEmploymentPersonalInfoComponent\"\n | \"StepDriverLicensePersonalInfoComponent\"\n | \"StepGeneralIdentityPersonalInfoComponent\"\n | \"StepHybridIdentityPersonalInfoComponent\"\n | \"StepLicensedProfessionalPersonalInfoComponent\"\n | \"StepLowIncomePersonalInfoComponent\"\n | \"StepMoverPersonalInfoComponent\"\n | \"StepSuccessComponent\"\n | \"StepConsolationComponent\"\n | \"StepDocUploadComponent\"\n | \"StepOverrideComponent\"\n | \"StepPendingComponent\"\n | \"StepPendingEmailLoopComponent\"\n | \"StepErrorComponent\"\n | \"StepSSOComponent\"\n | \"StepSMSLoopComponent\"\n | \"StepEmailLoopComponent\"\n | \"StepIDCheckLoopComponent\"\n | \"StepSocialSecurity\"\n | \"StepCollectIdentifierComponent\"\n | \"StepCompleteAuthentication\"\n | \"StepCollectPersonalInfo\"\n | \"StepThirdPartyLoopComponent\";\n\nexport type StepComponent = React.FunctionComponent<{ verificationService: VerificationService }>;\n// #endregion Steps -----------------------------------------------------------------------\n\n// #region Segments --------------------------------------------------------------------\nexport type Segment =\n | \"student\"\n | \"military\"\n | \"teacher\"\n | \"member\"\n | \"senior\"\n | \"age\"\n | \"firstResponder\"\n | \"medical\"\n | \"employment\"\n | \"identity\"\n | \"licensedProfessional\"\n | \"recentMover\"\n | \"lowIncome\";\n\nexport type SubSegment =\n | \"college\"\n | \"highSchool\"\n | \"police\"\n | \"emt\"\n | \"fireFighter\"\n | \"nurse\"\n | \"doctor\"\n | \"driverLicense\"\n | \"generalIdentity\"\n | \"hybridIdentity\"\n | \"licensedCosmetologists\"\n | \"licensedRealState\"\n | \"homeBuyer\"\n | \"otherMover\"\n | \"snapBenefits\"\n | SubSegmentMilitary;\n\nexport type SubSegmentMilitary =\n | \"activeDuty\"\n | \"reservist\"\n | \"veteran\"\n | \"retiree\"\n | \"militaryFamily\"\n | \"goldStarFamily\";\n// #endregion Segments -----------------------------------------------------------------------\n\n// #region Organization Types ----------------------------------------------------------\nexport type OrganizationType =\n | \"UNIVERSITY\"\n | \"POST_SECONDARY\"\n | \"MEMBERSHIP\"\n | \"MILITARY\"\n | \"FIRST_RESPONDER\"\n | \"MEDICAL\"\n | \"NON_PROFIT\"\n | \"CORPORATE\"\n | \"K12\"\n | \"AGE_ID\"\n | \"HIGH_SCHOOL\"\n | \"NONE\"\n | \"LOW_INCOME_PROGRAM\";\n// #endregion Organization Types -------------------------------------------------------\n\n// #region Requests and View Models ----------------------------------------------------\nexport type NewVerificationRequest = {\n programId: DatabaseId;\n trackingId?: string;\n installPageUrl?: string;\n};\n\nexport type AllStatuses =\n | MilitaryStatus\n | MedicalProfessionalStatus\n | FirstResponderStatus\n | RecentMoverStatus\n | LicensedProfessionalStatus\n | LowIncomeStatus\n | RecentMoverStatus;\n\n/**\n * @description The request to submit when verification is on the step \"collectStudentPersonalInfo\"\n */\nexport type StudentPersonalInfoRequest = {\n birthDate: BirthDate;\n cvecNumber?: string;\n} & WithOrganization &\n WithCoreFields;\n\nexport type StudentPersonalInfoViewModel = StudentPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectSeniorPersonalInfo\"\n */\nexport type SeniorPersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n} & WithCoreFields;\n\nexport type SeniorPersonalInfoViewModel = SeniorPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectAgePersonalInfo\"\n */\nexport type AgePersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n phoneNumber: PhoneNumber;\n country: Country;\n city?: string;\n address1?: string;\n} & WithCoreFields;\n\nexport type AgePersonalInfoViewModel = AgePersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectMilitaryStatus\"\n */\nexport type MilitaryStatusRequest = {\n status: MilitaryStatus;\n};\n\n/**\n * @description The request to submit when verification is on the step \"collectActiveMilitaryPersonalInfo\"\n */\nexport type ActiveMilitaryPersonalInfoRequest = {\n birthDate: BirthDate;\n dischargeDate?: DischargeDate;\n activeDutyStartDate?: ActiveDutyStartDate;\n country?: Country;\n} & WithOrganization &\n WithCoreFields;\n\nexport type ActiveMilitaryPersonalInfoViewModel = {\n status: MilitaryStatus;\n} & ActiveMilitaryPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectInactiveMilitaryPersonalInfo\"\n */\nexport type InactiveMilitaryPersonalInfoRequest = {\n birthDate: BirthDate;\n dischargeDate: DischargeDate;\n activeDutyStartDate?: ActiveDutyStartDate;\n country?: Country;\n} & WithOrganization &\n WithCoreFields;\n\nexport type InactiveMilitaryPersonalInfoViewModel = {\n status: MilitaryStatus;\n city?: string;\n state?: State;\n address1?: string;\n postalCode?: string;\n} & InactiveMilitaryPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectTeacherPersonalInfo\"\n */\nexport type TeacherPersonalInfoRequest = {\n birthDate?: BirthDate;\n postalCode?: string;\n} & WithOrganization &\n WithCoreFields;\n\nexport type TeacherPersonalInfoViewModel = TeacherPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectMemberPersonalInfo\"\n */\nexport type MemberPersonalInfoRequest = {\n memberId?: MemberId;\n birthDate?: BirthDate;\n phoneNumber?: PhoneNumber;\n postalCode?: string;\n address1?: string;\n city?: string;\n state?: string;\n country?: Country;\n} & WithOrganization &\n WithCoreFields;\n\nexport type MemberPersonalInfoViewModel = MemberPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectFirstResponderPersonalInfo\"\n * Provide postalCode when organization.id = 0 for better verification results.\n */\nexport type FirstResponderPersonalInfoRequest = {\n birthDate: BirthDate;\n status: FirstResponderStatus;\n statuses?: FirstResponderStatus[];\n postalCode?: string;\n country?: Country;\n} & WithOrganization &\n WithCoreFields;\n\nexport type FirstResponderPersonalInfoViewModel = FirstResponderPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type MedicalStatusRequest = {\n status: MedicalProfessionalStatus;\n};\n\n/**\n * @description The request to submit when verification is on the step \"collectMedicalProfessionalPersonalInfo\"\n */\nexport type MedicalProfessionalPersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n status: MedicalProfessionalStatus;\n memberId: string;\n country?: Country;\n} & WithOrganization &\n WithCoreFields;\n\nexport type MedicalProfessionalPersonalInfoViewModel = MedicalProfessionalPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectEmployeePersonalInfo\"\n */\nexport type EmploymentPersonalInfoRequest = {\n postalCode: string;\n phoneNumber?: PhoneNumber;\n shouldCollectAddress?: boolean;\n country?: Country;\n} & WithAddress &\n WithOrganization &\n WithCoreFields;\n\nexport type SMSLoopVerificationRequest = {\n smsCode: string;\n deviceFingerprintHash?: string;\n};\n\nexport type EmailLoopVerificationRequest = {\n emailToken: string;\n deviceFingerprintHash?: string;\n};\n\nexport type EmailLoopCollectOrganizationRequest = {\n emailAddress: string;\n};\n\nexport type IDCheckLoopVerificationRequest = {};\n\nexport type EmploymentPersonalInfoViewModel = EmploymentPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectDriverLicensePersonalInfo\"\n */\nexport type DriverLicensePersonalInfoRequest = {\n driverLicenseNumber: string;\n state: string;\n} & WithCoreFields;\n\nexport type DriverLicensePersonalInfoViewModel = DriverLicensePersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type GeneralIdentityPersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n} & WithAddress &\n WithCoreFields;\n\nexport type GeneralIdentityPersonalInfoViewModel = GeneralIdentityPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type HybridIdentityPersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n driverLicenseNumber: string;\n} & WithAddress &\n WithCoreFields;\n\nexport type HybridIdentityPersonalInfoViewModel = HybridIdentityPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectLicensedProfessionalPersonalInfo\"\n */\nexport type LicensedProfessionalPersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n statuses: LicensedProfessionalStatus[];\n} & WithCoreFields &\n WithOrganization;\n\nexport type LicensedProfessionalPersonalInfoViewModel = LicensedProfessionalPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectMoverPersonalInfo\"\n */\nexport type MoverPersonalInfoRequest = {\n address1: string;\n postalCode: string;\n statuses: RecentMoverStatus[];\n} & WithCoreFields;\n\nexport type MoverPersonalInfoViewModel = MoverPersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type SocialSecurityRequest = {\n socialSecurityNumber: number;\n};\n\nexport type SocialSecurityResponse = {\n verificationId: DatabaseId;\n submissionUrl: string;\n cancelUrl: string;\n currentStep: \"collectSocialSecurityNumber\";\n errorIds?: [ErrorId];\n} & WithLocaleAndCountryAndSegment;\n\nexport type SocialSecurityViewModel = {\n socialSecurityNumber: string;\n metadata?: Metadata;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"collectLowIncomePersonalInfo\"\n */\nexport type LowIncomePersonalInfoRequest = {\n birthDate: BirthDate;\n postalCode: string;\n statuses: LowIncomeStatus[];\n ebtCardNumber?: string;\n} & WithCoreFields &\n WithAddress &\n Partial<WithOrganization>;\n\nexport type LowIncomePersonalInfoViewModel = LowIncomePersonalInfoRequest &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type CollectIdentifierRequest = {\n email: string;\n};\n\nexport type CollectIdentifierResponse = {\n submissionUrl: string;\n} & VerificationResponse;\n\nexport type CollectIdentifierViewModel = {\n email: string;\n transactionId: string;\n expirationTimestamp: string;\n remembered: boolean;\n metadata?: Metadata;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type CompleteAuthenticationRequest = {\n authenticationToken: string;\n};\n\nexport type CompleteAuthenticationResponse = {\n cancelUrl: string;\n submissionUrl: string;\n} & VerificationResponse;\n\nexport type CompleteAuthenticationViewModel = {\n authenticationCode?: string;\n email?: string;\n didManuallyVerify?: boolean;\n metadata?: Metadata;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type CollectPersonalInfoRequest = {\n driverLicenseNumber?: string;\n memberId?: MemberId;\n postalCode?: string;\n ebtCardNumber?: string;\n statuses?: AllStatuses[];\n birthDate?: BirthDate;\n socialSecurityNumber?: string;\n dischargeDate?: DischargeDate;\n activeDutyStartDate?: ActiveDutyStartDate;\n country?: Country;\n} & Partial<WithCoreFields> &\n Partial<WithOrganization> &\n Partial<WithAddress>;\n\n/**\n * Response from REST API indicating that CollectPersonalInfoViewModel is expected to be submitted next.\n */\nexport type CollectPersonalInfoResponse = {\n submissionUrl: string;\n availableStatuses?: AllStatuses[];\n country?: string;\n currentStep: \"collectPersonalInfo\";\n segment: Segment;\n subSegment: SubSegment | SubSegmentMilitary;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type CollectPersonalInfoViewModel = {\n driverLicenseNumber?: string;\n memberId?: MemberId;\n postalCode?: string;\n ebtCardNumber?: string;\n status?: AllStatuses;\n statuses?: AllStatuses[];\n birthDate?: BirthDate;\n socialSecurityNumber?: string;\n dischargeDate?: DischargeDate;\n activeDutyStartDate?: ActiveDutyStartDate;\n} & Partial<WithCoreFields> &\n Partial<WithOrganization> &\n Partial<WithAddress> &\n WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\n/**\n * @description The request to submit when verification is on the step \"docUpload\"\n */\nexport type DocUploadRequest = {\n file1: File;\n file2?: File;\n file3?: File;\n metadata?: Metadata;\n};\n\n/**\n * @description The request to enter a verification override code when it is on the step \"override\"\n */\nexport type OverrideVerificationRequest = {\n overrideCode: string;\n deviceFingerprintHash?: string;\n};\n\n// No difference between the ViewModel, and what we send to the REST endpoint at this time.\nexport type DocUploadViewModel = DocUploadRequest & {\n erroredFileNames?: string[];\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type SingleSignOnViewModel = {\n isSingleSignOnActive: boolean;\n metadata?: Metadata;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type OverrideViewModel = OverrideVerificationRequest & {\n overrideCode: string;\n deviceFingerprintHash?: string;\n metadata?: Metadata;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type SMSLoopViewModel = {\n smsCode: string;\n phoneNumber: string;\n metadata?: Metadata;\n deviceFingerprintHash?: string;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type EmailLoopViewModel = {\n emailToken: string;\n organizationEmail?: string;\n metadata?: Metadata;\n deviceFingerprintHash?: string;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type EmailLoopCollectOrganizationEmailViewModel = {\n organizationEmail?: string;\n metadata?: Metadata;\n deviceFingerprintHash?: string;\n} & WithLocaleChoiceAndCountryChoice &\n WithFieldsToSkipValidation;\n\nexport type IDCheckLoopViewModel = WithLocaleChoiceAndCountryChoice & WithFieldsToSkipValidation;\n\nexport type VerificationRequest =\n | StudentPersonalInfoRequest\n | AgePersonalInfoRequest\n | SeniorPersonalInfoRequest\n | TeacherPersonalInfoRequest\n | MemberPersonalInfoRequest\n | MilitaryStatusRequest\n | ActiveMilitaryPersonalInfoRequest\n | InactiveMilitaryPersonalInfoRequest\n | DocUploadRequest\n | OverrideVerificationRequest\n | FirstResponderPersonalInfoRequest\n | MedicalProfessionalPersonalInfoRequest\n | EmploymentPersonalInfoRequest\n | SocialSecurityRequest\n | SMSLoopVerificationRequest\n | EmailLoopVerificationRequest\n | DriverLicensePersonalInfoRequest\n | GeneralIdentityPersonalInfoRequest\n | HybridIdentityPersonalInfoRequest\n | LicensedProfessionalPersonalInfoRequest\n | LowIncomePersonalInfoRequest\n | MoverPersonalInfoRequest\n | CollectIdentifierRequest\n | CompleteAuthenticationRequest\n | CollectPersonalInfoRequest;\n\nexport type ViewModel =\n | StudentPersonalInfoViewModel\n | SeniorPersonalInfoViewModel\n | AgePersonalInfoViewModel\n | TeacherPersonalInfoViewModel\n | MemberPersonalInfoViewModel\n | ActiveMilitaryPersonalInfoViewModel\n | InactiveMilitaryPersonalInfoViewModel\n | DocUploadViewModel\n | SingleSignOnViewModel\n | OverrideViewModel\n | FirstResponderPersonalInfoViewModel\n | MedicalProfessionalPersonalInfoViewModel\n | EmploymentPersonalInfoViewModel\n | SocialSecurityViewModel\n | SMSLoopViewModel\n | EmailLoopViewModel\n | EmailLoopCollectOrganizationEmailViewModel\n | DriverLicensePersonalInfoViewModel\n | GeneralIdentityPersonalInfoViewModel\n | HybridIdentityPersonalInfoViewModel\n | LicensedProfessionalPersonalInfoViewModel\n | LowIncomePersonalInfoViewModel\n | MoverPersonalInfoViewModel\n | CollectIdentifierViewModel\n | CompleteAuthenticationViewModel\n | CollectPersonalInfoViewModel;\n\nexport type PersonalInfoViewModel =\n | StudentPersonalInfoViewModel\n | SeniorPersonalInfoViewModel\n | AgePersonalInfoViewModel\n | TeacherPersonalInfoViewModel\n | MemberPersonalInfoViewModel\n | ActiveMilitaryPersonalInfoViewModel\n | InactiveMilitaryPersonalInfoViewModel\n | FirstResponderPersonalInfoViewModel\n | MedicalProfessionalPersonalInfoViewModel\n | EmploymentPersonalInfoViewModel\n | DriverLicensePersonalInfoViewModel\n | GeneralIdentityPersonalInfoViewModel\n | HybridIdentityPersonalInfoViewModel\n | LicensedProfessionalPersonalInfoViewModel\n | LowIncomePersonalInfoViewModel\n | MoverPersonalInfoViewModel;\n\nexport type WithOrganization = {\n organization: Organization;\n};\n\nexport type WithAddress = {\n address1: string;\n city: string;\n state: string;\n};\n\nexport type WithCoreFields = {\n firstName: string;\n lastName: string;\n email: Email;\n phoneNumber?: PhoneNumber;\n metadata?: Metadata;\n deviceFingerprintHash?: string;\n locale?: Locale;\n externalUserId?: string;\n captchaToken?: string;\n};\n\nexport type WithFieldsToSkipValidation = {\n fieldsToSkipValidation?: FieldId[];\n};\n\nexport type WithLocaleChoiceAndCountryChoice = {\n // countryChoice.label is no longer used when displaying options\n countryChoice: FormSelectChoice<Country, string>;\n // localeChoice.label is no longer used when displaying options\n localeChoice: FormSelectChoice<Locale, string>;\n};\n\nexport type AddSchoolRequestViewModel = {\n programId: string;\n firstName: string;\n lastName: string;\n email: string;\n schoolCountry: Country;\n schoolName: string;\n schoolDomain: string;\n trackingId?: string;\n};\n\n// #endregion Requests and View Models -----------------------------------------------------------------------\n\n// #region Responses -------------------------------------------------------------------\nexport type WithLocaleAndCountryAndSegment = {\n segment: Segment;\n subSegment: SubSegment;\n locale: Locale;\n country?: Country;\n};\n\n/**\n * @description Base type for all responses\n */\nexport type VerificationResponse = {\n submissionUrl?: string;\n verificationId: DatabaseId;\n currentStep: VerificationStep;\n errorIds?: ErrorId[];\n maxAge?: number;\n minAge?: number;\n lastResponse?: VerificationResponse;\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Intersection type for all *PersonalInfo responses\n */\nexport type PersonalInfoResponse =\n | StudentPersonalInfoResponse\n | SeniorPersonalInfoResponse\n | AgePersonalInfoResponse\n | TeacherPersonalInfoResponse\n | MemberPersonalInfoResponse\n | ActiveMilitaryPersonalInfoResponse\n | InactiveMilitaryPersonalInfoResponse\n | FirstResponderPersonalInfoResponse\n | MedicalProfessionalPersonalInfoResponse\n | EmploymentPersonalInfoResponse\n | DriverLicensePersonalInfoResponse\n | GeneralIdentityPersonalInfoResponse\n | HybridIdentityPersonalInfoResponse\n | LicensedProfessionalPersonalInfoResponse\n | LowIncomePersonalInfoResponse\n | MoverPersonalInfoResponse\n | CollectPersonalInfoResponse;\n\nexport type AllResponseTypes =\n | PersonalInfoResponse\n | SSOResponse\n | DocUploadResponse\n | SMSLoopResponse\n | EmailLoopResponse\n | IDCheckLoopResponse\n | SuccessResponse\n | ConsolationResponse\n | OverrideResponse\n | ErrorResponse\n | PendingResponse\n | SocialSecurityResponse\n | MilitaryStatusResponse\n | CollectIdentifierResponse\n | CompleteAuthenticationResponse\n | CollectPersonalInfoResponse\n | ThirdPartyLoopResponse;\n\n/**\n * @description Response from REST API indicating that StudentPersonalInfoViewModel is expected to be submitted next.\n */\nexport type StudentPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectStudentPersonalInfo\";\n segment: \"student\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that SeniorPersonalInfoViewModel is expected to be submitted next.\n */\nexport type SeniorPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectSeniorPersonalInfo\";\n segment: \"senior\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that AgePersonalInfoViewModel is expected to be submitted next.\n */\nexport type AgePersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectAgePersonalInfo\";\n segment: \"age\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n minAge?: number;\n maxAge?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that TeacherPersonalInfoViewModel is expected to be submitted next.\n */\nexport type TeacherPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectTeacherPersonalInfo\";\n segment: \"teacher\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type MemberPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectMemberPersonalInfo\";\n segment: \"member\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that StudentPersonalInfoViewModel is expected to be submitted next.\n */\nexport type MilitaryStatusResponse = {\n submissionUrl: string;\n currentStep: \"collectMilitaryStatus\";\n segment: \"military\";\n errorIds?: [ErrorId];\n availableStatuses?: MilitaryStatus[];\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that StudentPersonalInfoViewModel is expected to be submitted next.\n */\nexport type ActiveMilitaryPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectActiveMilitaryPersonalInfo\";\n segment: \"military\";\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that StudentPersonalInfoViewModel is expected to be submitted next.\n */\nexport type InactiveMilitaryPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectInactiveMilitaryPersonalInfo\";\n segment: \"military\";\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type FirstResponderPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectFirstResponderPersonalInfo\";\n segment: \"firstResponder\";\n errorIds?: [ErrorId];\n availableStatuses?: FirstResponderStatus[];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type MedicalProfessionalPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectMedicalProfessionalPersonalInfo\";\n segment: \"medical\";\n errorIds?: [ErrorId];\n availableStatuses?: MedicalProfessionalStatus[];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type EmploymentPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectEmployeePersonalInfo\";\n segment: \"employment\";\n subSegment: null;\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that DriverLicensePersonalInfoViewModel is expected to be submitted next.\n */\nexport type DriverLicensePersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectDriverLicensePersonalInfo\";\n segment: \"identity\";\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type GeneralIdentityPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectGeneralIdentityPersonalInfo\";\n segment: \"identity\";\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type HybridIdentityPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectHybridIdentityPersonalInfo\";\n segment: \"identity\";\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type LicensedProfessionalPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectLicensedProfessionalPersonalInfo\";\n segment: \"licensedProfessional\";\n availableStatuses?: LicensedProfessionalStatus[];\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type MoverPersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectMoverPersonalInfo\";\n segment: \"recentMover\";\n availableStatuses?: RecentMoverStatus[];\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\nexport type LowIncomePersonalInfoResponse = {\n submissionUrl: string;\n currentStep: \"collectLowIncomePersonalInfo\";\n segment: \"lowIncome\";\n availableStatuses?: LowIncomeStatus[];\n errorIds?: [ErrorId];\n instantMatchAttempts?: number;\n} & VerificationResponse;\n\n/**\n * @description Response from REST API indicating that DocUploadRequest is expected to be submitted next.\n */\nexport type DocUploadResponse = {\n verificationId: DatabaseId;\n submissionUrl: string;\n currentStep: \"docUpload\";\n errorIds?: [ErrorId];\n rejectionReasons?: RejectionReasons[];\n maxReviewTime?: MaxReviewTime;\n estimatedReviewTime?: EstimatedReviewTime;\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Response from REST API indicating that SSO is expected to be submitted next.\n */\nexport type SSOResponse = {\n verificationId: DatabaseId;\n loginUrl: string;\n cancelUrl: string;\n currentStep: \"sso\";\n errorIds?: [ErrorId];\n} & WithLocaleAndCountryAndSegment;\n\nexport type ThirdPartyLoopResponse = {\n verificationId: DatabaseId;\n loginUrl: string;\n cancelUrl: string;\n currentStep: \"thirdPartyLoop\";\n thirdPartyLoopProvider: ThirdPartyLoopProvider;\n errorIds?: [ErrorId];\n} & WithLocaleAndCountryAndSegment;\n\nexport type SMSLoopResponse = {\n verificationId: DatabaseId;\n submissionUrl: string;\n errorIds?: [ErrorId];\n currentStep: \"smsLoop\";\n} & WithLocaleAndCountryAndSegment;\n\nexport type EmailLoopResponse = {\n verificationId: DatabaseId;\n submissionUrl: string;\n errorIds?: [ErrorId];\n currentStep: \"emailLoop\";\n currentState: \"collectOrganizationEmail\" | \"pending\";\n canResendEmailLoop: boolean;\n cancelUrl: string;\n} & WithLocaleAndCountryAndSegment;\n\nexport type IDCheckLoopResponse = {\n verificationId: DatabaseId;\n submissionUrl: string;\n errorIds?: [ErrorId];\n currentStep: \"idCheckLoop\";\n sdkToken?: string;\n idCheckServiceType?: IdCheckLoopServiceType;\n uploadUrl?: string;\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Response from REST API. No further requests are expected.\n */\nexport type SuccessResponse = {\n verificationId: DatabaseId;\n currentStep: \"success\";\n rewardCode: string;\n redirectUrl?: string;\n rewardData?: string[];\n consumerInfoState?: ConsumerInfoState;\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Response from REST API. No further requests are expected.\n */\nexport type ConsolationResponse = {\n verificationId: DatabaseId;\n currentStep: \"consolation\";\n consolationRewardCode: string;\n segment: Segment;\n subSegment: SubSegment;\n redirectUrl?: string;\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Response from REST API. No further requests are expected.\n */\nexport type OverrideResponse = {\n verificationId: DatabaseId;\n currentStep: \"override\";\n segment: Segment;\n subSegment: SubSegment;\n submissionUrl: string;\n errorIds?: [ErrorId];\n} & WithLocaleAndCountryAndSegment;\n\n/**\n * @description Response from REST API. Unrecoverable error. No further requests are expected. Recommend starting over.\n */\nexport interface ErrorResponse\n extends\n Omit<VerificationResponse, \"subSegment\">,\n Omit<WithLocaleAndCountryAndSegment, \"subSegment\"> {\n verificationId: DatabaseId;\n currentStep: \"error\";\n subSegment: SubSegment | null;\n errorIds: [ErrorId]; // Don't supply a message, only an id like \"notEnoughInfo\" or \"unknown\", so we can look up the message based on locale\n errorDetailId?: ErrorDetailId;\n redirectUrl: string | null;\n}\n\n/**\n * @description Response from REST API. Poll statusUrl for updates while document is reviewed.\n */\nexport type PendingResponse = {\n verificationId: DatabaseId;\n currentStep: \"pending\";\n statusUrl: string;\n maxReviewTime?: MaxReviewTime;\n estimatedReviewTime?: EstimatedReviewTime;\n} & WithLocaleAndCountryAndSegment;\n\nexport type FieldDescription = {\n key: FieldId;\n};\n\nexport type FieldsToCollect = {\n required: FieldDescription[];\n optional: FieldDescription[];\n};\n\nexport type CollectFieldsResponse = {\n verificationId: DatabaseId;\n currentStep: VerificationStep;\n fieldsToCollect: FieldsToCollect;\n} & WithLocaleAndCountryAndSegment;\n\nexport type DocTypeResult = {\n [country: string]: { documentType: any }[];\n};\n\nexport type ApplicableDocTypesResponse = {\n results: DocTypeResult;\n};\n\nexport type ConsumerInfoState =\n | \"consumerNotFound\"\n | \"consumerFound\"\n | \"consumerFoundNewFieldsAvailable\"\n | \"consumerFoundNotActionable\"\n | \"UNKNOWN\";\n\n// #endregion Responses -----------------------------------------------------------------------\n\n// #region Theme -----------------------------------------------------------------------\n/**\n * @description Theme information about the Program that was created at my.sheerid.com\n */\nexport type ProgramTheme = {\n intl: {\n locale: Locale;\n messages: ProgramThemeMessages;\n };\n customCss: string; // this contains customer-provided CSS + auto-generated CSS from the program builder\n /** @deprecated - Use themeChoices.logoUrl instead */\n logoUrl?: string;\n privacyPolicyUrl?: string;\n isTestMode?: boolean;\n openOrgSearchEnabled?: boolean;\n isSmsNotifierConfigured?: boolean;\n remainingRewardCodes?: number | null;\n smsLoopEnabled?: boolean;\n overrideEnabled?: boolean;\n threatMetrixEnabled?: boolean;\n threatMetrixOrgId?: string;\n idCheckAddOnEnabled?: boolean;\n ipqsDeviceFingerprintEnabled?: boolean;\n fingerprintEnabled?: boolean;\n strictMilitaryValidationEnabled?: boolean;\n transitionalMilitaryValidityDays?: number;\n docUploadEnabled?: boolean;\n affinityProgramEnabled?: boolean;\n externalUserIdRequired?: boolean;\n config: {\n brandInfo?: {\n faqUrl: string | null;\n emailAddress: string | null;\n phoneNumber: string | null;\n };\n countries: Country[];\n states?: State[];\n locales: Locale[];\n maxReviewTime: MaxReviewTime;\n estimatedReviewTime: EstimatedReviewTime;\n marketConsent: MarketConsentOptions;\n customFaqLink: FaqUrl;\n customMetadata: MetadataConfig;\n orgSearchUrl: string;\n orgRemoteSource?: OrganizationRemoteSource;\n orgTypes: OrganizationType[];\n excludedOrganizationIds: number[];\n orgSearchCountryTags?: {\n [country in Country]?: string[];\n };\n orgSearchAffiliationOverrides?: {\n [a: string]: {\n [a: string]: string[];\n };\n };\n offerType: \"noCode\" | \"staticCode\" | \"rewardPool\" | undefined;\n minAge: number | null;\n maxAge: number | null;\n rewardDisplay: RewardDisplayEnum[];\n onfidoReportNames?: string[];\n onfidoIncludedCountries?: string[];\n segment?: Segment;\n // future: redirect URL\n };\n accountId?: string; // keep optional until HC-131 is completed\n themeChoices: ThemeChoices;\n captchaEnabled?: boolean;\n};\n\nexport type EstimatedReviewTime = \"A_FEW_MINUTES\" | \"A_HALF_HOUR\" | \"A_FEW_HOURS\" | \"A_FEW_DAYS\";\nexport type MaxReviewTime =\n | \"2_MIN\"\n | \"20_MIN\"\n | \"A_HALF_HOUR\"\n | \"2_HRS\"\n | \"24_HRS\"\n | \"2_DAY\"\n | \"3_DAY\";\nexport type FaqUrl = string;\n\n/**\n * @description List of countries supported by SheerID\n */\nexport type Country = keyof Countries;\n\nexport type State = keyof States;\n\nexport type Messages = DefaultMessages & SegmentSpecificMessages;\nexport type NestedMessagePaths = NestedKeyOf<Messages>;\n\nexport interface MessagesModule {\n defaultMessages: DefaultMessages;\n pluralizationsAndDateLocaleData: any; // from react-intl\n segmentMessages: Record<Segment, SegmentSpecificMessages>;\n}\n\n/**\n * @description These strings are set by a user editing your program in my.sheerid.com\n */\nexport type ProgramThemeMessages = {\n companyName?: string;\n imageLogo?: string;\n step?: {\n success?: {\n redirectUrl?: string;\n };\n };\n} & DeepPartial<DefaultMessages & SegmentSpecificMessages>;\n\n/**\n * @description These strings vary by program segment\n */\nexport type SegmentSpecificMessages = {\n emailExplanation?: string;\n addressExplanation?: string;\n schoolName?: string;\n schoolNamePlaceholder?: string;\n step: {\n personalInfo: {\n title: string;\n subtitle: string;\n howDoesVerifyingWorkDetails: string;\n tryAgain: {\n title: string;\n subtitle: string;\n };\n verifyingTitle: string;\n submitButtonText: string;\n };\n docUpload?: {\n whoIsSheerId: string;\n title: string;\n uploadInstructions: string;\n };\n success: {\n title: string;\n subtitle: string;\n redirectButtonText: string;\n };\n sso?: {\n title?: string;\n subtitle?: string;\n subtitle2?: string;\n login?: string;\n cancel?: string;\n alternative?: string;\n };\n reclaim?: {\n title?: string;\n reclaimInfo: {\n login: string;\n review: string;\n display: string;\n consent: string;\n };\n legal?: {\n thirdPartyTools: string;\n thirdPartyToolsExplanation: string;\n secureLogin: string;\n secureLoginExplanation: string;\n consent: string;\n consentExplanation: string;\n moreInformation: string;\n moreInformationExplanation: string;\n };\n login?: string;\n cancel?: string;\n };\n emailLoop?: DeepPartial<DefaultMessages[\"step\"][\"emailLoop\"]>;\n };\n};\n\n/**\n * @description These strings are provided by default\n */\nexport type DefaultMessages = {\n activeDutyStartDate: string;\n address: string;\n addressPlaceholder: string;\n birthDate: string;\n branchOfService: string;\n branchOfServicePlaceholder: string;\n changeLanguage: string;\n city: string;\n cityPlaceholder: string;\n chooseCountry: string;\n clearAndOpenMenu: string;\n close: string;\n closeSection: string;\n company: string;\n companyPlaceholder: string;\n copied: string;\n country: string;\n countryPlaceholder: string;\n countries: Countries;\n cvecNumber: string;\n cvecNumberExplanation: string;\n \"_EXPERIMENTAL.cvecNumberExplanation\": string;\n dateTime: DateTimeMessages;\n dischargeDate: string;\n driverLicenseNumber: string;\n driverLicenseNumberPlaceholder: string;\n driverLicenseState: string;\n emailAddress: string;\n emailAddressPlaceholder: string;\n ebtCardNumber: string;\n error: string;\n errorId: {\n [P in ErrorId]: string;\n } & Record<ExtendedErrorId, string>;\n errorDetailId: {\n [P in ErrorDetailId]: string;\n };\n warningId: {\n [P in WarningId]: string;\n };\n firstName: string;\n firstNamePlaceholder: string;\n howDoesReviewWork: string;\n howDoesVerifyingWork: string;\n informationTransferredToUS: string;\n instant: string;\n lastName: string;\n lastNamePlaceholder: string;\n limitExceededError: string;\n memberId: string;\n memberIdPlaceholder: string;\n optional: string;\n loading: string;\n locales: {\n [P in Locale]: string;\n };\n militaryStatus: string;\n noOptions: string;\n lowRewardPool: string;\n organization: string;\n organizationPlaceholder: string;\n orgSearchSortByRelevance: string;\n orgSearchSortByDistance: string;\n orgSearchSortAccessibilityLabel: string;\n lowIncomeOrganization: string;\n lowIncomeOrganizationPlaceholder: string;\n optIn: string;\n openMenu: string;\n personalInformation: any;\n personalOrSchoolIsFine: string;\n phoneNumber: string;\n phoneNumberExplanation: string;\n phoneNumberWarnMessage1: string;\n phoneNumberWarnMessage2: string;\n phoneUsPlaceholder: string;\n postalCode: string;\n postalCodeExplanation: string;\n postalCodePlaceholder: string;\n poweredBy: string;\n proceed: string;\n cantFindYourSchool: string;\n requestSchool: string;\n multipleLocationsTips: string;\n tryFullNameTips: string;\n requiredFields: string;\n rewardCodeEmailNotification: string;\n school: string;\n schoolName: string;\n schoolNamePlaceholder: string;\n sheeridFaqs: string;\n privacyPolicy: string;\n smsCodePlaceholder: string;\n state: string;\n statePlaceholder: string;\n states: States;\n status: string;\n statusPlaceholder: string;\n step: {\n success: {\n copyCouponCode: string;\n emailNotification: string;\n verificationOnly: string;\n rememberMe: {\n consumerFound: {\n title: string;\n description: string;\n button: string;\n };\n consumerNotFound: {\n title: string;\n description: string;\n button: string;\n };\n };\n };\n consolation: {\n title: string;\n subtitle: string;\n verificationOnly: string;\n };\n override: {\n title: string;\n subtitle: string;\n subtitle2: string;\n verificationOverrideCodeLabel: string;\n submitOverrideCodeButtonLabel: string;\n errors: {\n invalidCode: string;\n codeOverrideLimit: string;\n };\n };\n pending: {\n titleReview: string;\n subtitle: string;\n turnaroundTime: string;\n subtitle2: string;\n subtitle3: string;\n idCheckLoop: {\n title: string;\n subtitle: string;\n subtitle2: string;\n };\n };\n personalInfo: {\n verifyingTitle: string;\n verifyingSubtitle: string;\n submitButtonText: string;\n emailFirstCollectInfo: {\n sendAgain: string;\n sent: string;\n needChanges: string;\n proceedHere: string;\n existingVerificationFound: {\n title: string;\n message: string;\n closing: string;\n };\n pendingVerification: {\n title: string;\n message: string;\n closing: string;\n };\n rejectedVerification: {\n title: string;\n message: string;\n closing: string;\n };\n };\n captcha: {\n retryButton: string;\n loading: string;\n success: string;\n error: string;\n };\n };\n collectMedicalPersonalInfo: {\n registrationNumberLabel: string;\n registrationNumberExplanation: string;\n numeroColegiadoLabel: string;\n numeroColegiadoExplanation: string;\n autorisationsIdLabel: string;\n autorisationsIdExplanation: string;\n gbrNummerLabel: string;\n gbrNummerExplanation: string;\n globalLocationNumberLabel: string;\n globalLocationNumberExplanation: string;\n };\n docUpload: {\n title: string;\n documentReviewProcess: string;\n whoIsSheerId: string;\n\n acceptableUploadExamples: string;\n acceptedTypes: string;\n addFile: string;\n confirm: string;\n rejectionReasons: {};\n rejectedSubtitle: string;\n nameChanged: string;\n allowedDocuments: string;\n\n documentsMustInclude: string;\n suggestedDocumentTypes: string;\n whatHappensNext: string;\n reviewTime: string;\n canIFinishLater: string;\n canIFinishLaterDetails: string;\n submitButtonLabel: string;\n rejectedNextStep: string;\n // These vary in structure as well as by-segment\n uploadInfo: {\n affiliation: string;\n dateCurrentYear: string;\n fullName: string;\n institutionName: string;\n organization: string;\n student: {\n school: string;\n enrollmentDate: string;\n };\n teacher: {\n school: string;\n currentSchoolYear: string;\n };\n military: {\n serviceBranch: string;\n dischargeDate: string;\n currentAffiliation: string;\n uploadInstructionsDependent: string;\n uploadInstructionsMilitaryIdTitle: string;\n uploadInstructionsMilitaryIdContent: string;\n militaryFamily: {\n status: string;\n };\n goldStarFamily: {\n status: string;\n };\n reservist: {\n status: string;\n };\n veteran: {\n status: string;\n };\n militaryRetiree: {\n status: string;\n };\n activeDuty: {\n status: string;\n };\n };\n senior: {\n birthDate: string;\n };\n age: {\n birthDate: string;\n consentDE: string;\n };\n firstResponder: {\n organization: string;\n currentAffiliation: string;\n license: string;\n emt: {\n status: string;\n };\n police: {\n status: string;\n };\n firefighter: {\n status: string;\n };\n };\n medical: {\n status: string;\n medicalRole: string;\n validDate: string;\n };\n employment: {\n company: string;\n currentAffiliation: string;\n };\n identity: {\n validDate: string;\n };\n licensedProfessional: {\n licenseStatus: string;\n validDate: string;\n };\n recentMover: {\n address: string;\n validDate: string;\n };\n lowIncome: {\n validDate: string;\n fullName: string;\n ebtNumber: string;\n };\n };\n // These vary in structure as well as by-segment\n acceptableUploads: {\n officialLetter: string;\n doNotUploadMilitaryIdTitle: string;\n doNotUploadMilitaryIdContent: string;\n student: {\n idCard: string;\n classSchedule: string;\n tuitionReceipt: string;\n };\n teacher: {\n idCard: string;\n payStub: string;\n };\n member: {\n idCard: string;\n payStub: string;\n };\n senior: {\n birthCertificate: string;\n driversLicense: string;\n passport: string;\n stateId: string;\n };\n age: {\n birthCertificate: string;\n driversLicense: string;\n passport: string;\n stateId: string;\n };\n military: {\n active: {\n leaveEarningStatement: string;\n uniformedServicesId: string;\n };\n militaryRetiree: {\n blueUniformedId: string;\n vaHealthBenefitsCard: string;\n retireeId: string;\n dd214Form: string;\n vaDigitalId: string;\n };\n vet: {\n dd214Form: string;\n dischargeCertificate: string;\n vaHealthBenefitsCard: string;\n vaDigitalId: string;\n driverLicenseVeteran: string;\n departmentVeteranId: string;\n };\n reservist: {\n leaveEarningStatement: string;\n uniformedServicesId: string;\n };\n // these are the legacy strings that can't be deleted yet\n activeDuty: string;\n veteran: string;\n reservistA: string;\n retiree: string;\n dependent: string;\n goldStarFamily: string;\n };\n medical: {\n licenseCertificate: string;\n idCard: string;\n photoPayStub: string;\n payStub: string;\n letterEmployment: string;\n };\n employment: {\n employeeIdCard: string;\n payStub: string;\n officialLetter: string;\n };\n firstResponder: {\n idCard: string;\n payStub: string;\n letter: string;\n };\n licensedProfessional: {\n license: string;\n };\n recentMover: {\n changeOfAddress: string;\n mortgageDeed: string;\n rentalAgreement: string;\n };\n lowIncome: {\n program: string;\n programCard: string;\n programApprovalLetter: string;\n programApprovalScreenshot: string;\n programBankStatement: string;\n };\n };\n };\n sso: {\n title: string;\n subtitle: string;\n subtitle2: string;\n cancel: string;\n login: string;\n preheader: string;\n alternative: string;\n };\n thirdPartyLoop: {\n signzy: {\n title: string;\n subtitle: string;\n login: string;\n cancel: string;\n };\n error: string;\n };\n collectSocialSecurityNumber: {\n selectOption: string;\n title: string;\n uploadDoc: string;\n uploadInstead: string;\n useSsn: string;\n };\n smsLoop: {\n titleWithNumber: string;\n titleWithoutNumber: string;\n verificationCode: string;\n errors: {\n codeVerification: string;\n codeExpired: string;\n codeResendLimit: string;\n resend: string;\n };\n successResend: string;\n incorrectNumber: {\n incorrectNumber1: string;\n incorrectNumber2: string;\n incorrectNumber3: string;\n };\n resendButton: string;\n submitButton: string;\n };\n emailLoop: {\n title: string;\n subtitleWithEmail: string;\n subtitleWithoutEmail: string;\n subtitle2: string;\n successResend: string;\n resendButton: string;\n errors: {\n resend: string;\n invalidEmail: string;\n };\n skipEmail: string;\n skipEmail2: string;\n skipEmailCTA: string;\n collectOrganizationEmail: {\n title: string;\n subtitle: string;\n email: {\n label: string;\n send: string;\n };\n alternative: string;\n };\n };\n idCheckLoop: {\n title: string;\n subtitle: string;\n continue: string;\n terms: string;\n disclaimer: string;\n steps: {\n idCheck: {\n title: string;\n subtitle: string;\n };\n selfie: {\n title: string;\n };\n docReview: {\n title: string;\n };\n };\n docTypes: {\n passport: {\n title: string;\n subtitle: string;\n };\n driverLicense: {\n title: string;\n subtitle: string;\n };\n residencePermit: {\n title: string;\n subtitle: string;\n };\n identityCard: {\n title: string;\n subtitle: string;\n };\n };\n countrySelector: {\n title: string;\n };\n docTypeSelector: {\n title: string;\n subtitle: string;\n };\n regula: {\n title: string;\n uploadTitle: string;\n uploadSubtitle: string;\n addFontImage: string;\n addBackImage: string;\n submit: string;\n uploadFileError: string;\n terms: string;\n info: {\n title: string;\n subtitle: string;\n };\n sdk: {\n title: string;\n subtitle: string;\n imageQualityErrorTitle: string;\n imageQualityError: string;\n rejectedImageNextStep: string;\n uploadAgain: string;\n };\n };\n };\n error: {\n title: string;\n errorId: {\n [P in ErrorId]?: {\n title?: string;\n buttonText?: string;\n };\n };\n };\n collectIdentifier: {\n submitButton: string;\n inputExplanation: string;\n };\n completeAuthentication: {\n title: string;\n subtitle: string;\n manuallyVerifyButton: string;\n };\n collectPersonalInfo: {\n submitButton: string;\n };\n };\n experiment: {\n step: {\n docUpload: {\n documentConsiderations: string;\n };\n };\n };\n streetAddress: string;\n ssn: string;\n ssnPlaceholder: string;\n universityName: string;\n verificationPurposesOnly: string;\n verifyAndContinue: string;\n verifyMyStudentStatus: string;\n verifyMyTeacherStatus: string;\n verifyMyMembershipStatus: string;\n verifyMyMilitaryStatus: string;\n verifyMyIdentityStatus: string;\n verifyMyMedicalProfessionalStatus: string;\n verifyMyEmploymentStatus: string;\n verifyMyLicensedProfessionalStatus: string;\n verifyMyMoverStatus: string;\n verifyMyLowIncomeStatus: string;\n FIREFIGHTER: string;\n POLICE: string;\n EMT: string;\n SEARCH_AND_RESCUE: string;\n verifyMyFirstResponderStatus: string;\n VETERAN: string;\n MILITARY_RETIREE: string;\n RESERVIST: string;\n ACTIVE_DUTY: string;\n MILITARY_FAMILY: string;\n GOLD_STAR_FAMILY: string;\n DOCTOR: string;\n NURSE: string;\n DENTIST: string;\n PHARMACIST: string;\n OTHER_HEALTH_WORKER: string;\n HOME_BUYER: string;\n OTHER_MOVER: string;\n SNAP_BENEFITS: string;\n OTHER_GOVERNMENT_ASSISTANCE: string;\n COMMUNITY_ELIGIBILITY_PROVISION: string;\n LICENSED_COSMETOLOGIST: string;\n LICENSED_REAL_ESTATE_AGENT: string;\n VETERINARIAN: string;\n CHILD_CARE_WORKER: string;\n LIBRARIAN: string;\n NUTRITION_PROFESSIONAL: string;\n INTERIOR_DESIGNER: string;\n ARCHITECT: string;\n GENERAL_CONTRACTOR: string;\n tryAgain: string;\n footerText: string;\n footerText_sso: string;\n captchaFooterText: string;\n infoShared1: string;\n infoShared2: string;\n studentInfoShared: string;\n militaryInfoShared: string;\n firstResponderInfoShared: string;\n getHelp: string;\n militaryFamilyCardNote: string;\n clearSelection: string;\n};\n\ntype DateTimeMessages = {\n january: string;\n february: string;\n march: string;\n april: string;\n may: string;\n june: string;\n july: string;\n august: string;\n september: string;\n october: string;\n november: string;\n december: string;\n month: string;\n day: string;\n year: string;\n \"2_MIN\": string;\n \"20_MIN\": string;\n \"2_HRS\": string;\n \"24_HRS\": string;\n \"2_DAY\": string;\n \"3_DAY\": string;\n A_FEW_MINUTES: string;\n A_HALF_HOUR: string;\n A_FEW_HOURS: string;\n A_FEW_DAYS: string;\n};\n\n// #endregion Theme -----------------------------------------------------------------------\n\n// #region VerificationService ---------------------------------------------------------\n/**\n * @description View-Model Verification Service\n * @private\n */\nexport interface VerificationService<T extends ViewModel = ViewModel>\n extends VerificationServiceValues<T>, VerificationServiceFunctions<T> {}\n\nexport interface VerificationServiceValues<T extends ViewModel = ViewModel> {\n readonly isLoading: boolean;\n readonly loadingStep?: VerificationStep;\n readonly isErrored: boolean;\n readonly fieldValidationErrors: FieldValidationErrors;\n readonly messages: StringMap;\n readonly verificationResponse: VerificationResponse;\n readonly viewModel: T;\n readonly programTheme: ProgramTheme;\n readonly previousViewModel: T;\n readonly previousVerificationResponse: VerificationResponse;\n readonly programId: DatabaseId;\n readonly formValidationOptions?: FormValidationOptions;\n readonly overrideStep?: VerificationStep;\n}\n\nexport interface VerificationServiceFunctions<T extends ViewModel = ViewModel> {\n readonly fetchNewVerificationRequest: (\n programId: DatabaseId,\n segment: Segment,\n previousViewModel: T,\n trackingId?: string,\n forceNewVerificationRequest?: boolean,\n ) => Promise<object>;\n readonly fetchExistingVerificationRequest: (\n programId: DatabaseId,\n verificationId: string,\n previousVerificationResponse?: VerificationResponse,\n previousViewModel?: T,\n needsLoading?: boolean,\n ) => Promise<object>;\n readonly updateViewModel: <\n Opts extends Partial<ViewModelUpdateOptions> = {\n partial: false;\n metadataCheck: false;\n externalUserIdCheck: false;\n },\n >(\n viewModel: Opts[\"partial\"] extends true ? Partial<T> : T,\n options?: Opts,\n ) => void;\n readonly updateProgramTheme: (programTheme: ProgramTheme) => void;\n readonly updateFieldValidationErrors: (fieldValidationErrors: FieldValidationErrors) => void;\n readonly submitStep: (\n stepName: VerificationStep,\n viewModel: T,\n previousResponse: VerificationResponse,\n ) => Promise<object>;\n readonly updateLocale: (locale: Locale, segment: Segment) => void;\n readonly resetState: () => void;\n readonly dispatch?: Dispatch;\n}\n// #endregion VerificationService -----------------------------------------------------------------------\n\n// #region Redux -----------------------------------------------------------------------\n/**\n * @private\n */\nexport type ReduxState = VerificationServiceValues;\n\nexport type VerificationStore = Store<ReduxState, VerificationServiceAction>;\n\n/**\n * @description Create a bound action (wrapped in Redux's dispatch and ready to call)\n */\nexport type BoundActionCreator = (dispatch: Dispatch, getState?: Function) => BoundAction;\nexport type BoundAction = (...args: any[]) => Promise<object>;\n\nexport interface GenericAction {\n type: string;\n payload: any;\n}\n\nexport interface SetMessagesAction {\n type: \"SET_MESSAGES\";\n messages: StringMap;\n}\n\nexport interface ProgramIdAction {\n type: \"PROGRAM_ID\";\n programId: DatabaseId;\n}\n\nexport interface VerificationResponseAction {\n type: \"VERIFICATION_RESPONSE\";\n verificationResponse: VerificationResponse;\n}\n\nexport interface FieldValidationErrorsAction {\n type: \"FIELD_VALIDATION_ERRORS\";\n fieldValidationErrors: FieldValidationErrors;\n}\n\nexport interface ViewModelAction {\n type: \"VIEW_MODEL\";\n viewModel: ViewModel | Partial<ViewModel>;\n partial?: boolean; // if false, replace previous viewModel in its entirety. Must pass a full viewModel object\n}\n\nexport interface FormValidationOptionsAction {\n type: \"FORM_VALIDATION_OPTIONS\";\n}\n\nexport interface RequiredMetadataAndExternalIdCheckAction {\n type: \"REQUIRED_METADATA_AND_EXTERNAL_ID_CHECK\";\n}\n\nexport interface CollectFieldsAction {\n type: \"COLLECT_FIELDS\";\n requiredFields: FieldDescription[];\n optionalFields: FieldDescription[];\n}\n\nexport interface PreviousViewModelAction {\n type: \"PREVIOUS_VIEW_MODEL\";\n previousViewModel: ViewModel;\n}\n\nexport interface ProgramThemeAction {\n type: \"PROGRAM_THEME\";\n programTheme: ProgramTheme;\n partial?: boolean; // if false, replace previous programTheme in its entirety. Must pass a full programTheme object\n}\n\nexport interface IsLoadingAction {\n type: \"IS_LOADING\";\n isLoading: boolean;\n loadingStep?: VerificationStep;\n}\n\nexport interface IsErroredAction {\n type: \"IS_ERRORED\";\n isErrored: boolean;\n}\n\nexport interface ResetStateAction {\n type: \"RESET_STATE\";\n}\n\nexport interface ForceUpdateAction {\n type: \"FORCE_UPDATE\";\n}\n\nexport type VerificationServiceAction =\n | SetMessagesAction\n | ProgramIdAction\n | VerificationResponseAction\n | FieldValidationErrorsAction\n | ViewModelAction\n | PreviousViewModelAction\n | ProgramThemeAction\n | IsLoadingAction\n | IsErroredAction\n | ResetStateAction\n | FormValidationOptionsAction\n | ForceUpdateAction\n | RequiredMetadataAndExternalIdCheckAction\n | CollectFieldsAction;\n\n/**\n * @private\n * @deprecated Use a specific action interface (or create one) from below\n */\nexport type ReduxAction = VerificationServiceAction;\n\n// #endregion Redux -----------------------------------------------------------------------\n\n// #region Hooks\n\n/**\n * @description Defines a list of hooks names that are available.\n * Certain events throughout the software will call an arbitrary callback, by this name.\n * These names are meant to be descriptive, to indicate when the callback (hook) will be called.\n */\nexport interface HookEvents {\n ON_VERIFICATION_READY: VerificationResponse;\n ON_VERIFICATION_SUCCESS: SuccessResponse;\n ON_VERIFICATION_STEP_CHANGE: AllResponseTypes | VerificationResponse;\n ON_FORM_LOCALE_CHANGE: Locale;\n}\n\nexport type HookData<K extends keyof HookEvents = keyof HookEvents> = {\n name: K;\n data: HookEvents[K];\n};\nexport type Hook<K extends keyof HookEvents = keyof HookEvents> = {\n name: K;\n callback: (data: HookEvents[K]) => void;\n};\n\n/**\n * This only exists for backwards compatibility.\n * @deprecated\n */\nexport type RegisteredHooks = {\n [name in HookName]?: Hook[];\n};\n\nexport type HookName = keyof HookEvents;\n// #endregion Hooks\n\n// #region Conversion\n/**\n * @description The shape of the request payload to send when calling a conversion endpoint.\n */\nexport type ConversionRequest = {\n amount?: number;\n currency?: string;\n tags?: string[];\n};\n\n/**\n * @description The shape of the response object after calling a conversion endpoint.\n */\nexport type ConversionResponse = {\n id: string;\n};\n\n/**\n * @description Methods related to performing a conversion with SheerID.\n */\nexport interface Conversion {\n /**\n * @description Record a conversion to the REST API using verificationId\n */\n convertByVerificationId(\n verificationId: DatabaseId,\n conversionRequest: ConversionRequest,\n ): Promise<ConversionResponse>;\n\n /**\n * @description Record a conversion to the REST API using a previously-supplied trackingId\n */\n convertByTrackingId(\n accountId: DatabaseId,\n trackingId: string,\n conversionRequest: ConversionRequest,\n ): Promise<ConversionResponse>;\n\n /**\n * @description Listen to a SheerID iFrame form and store verificationId as a cookie.\n * Use as step 1 of 2, in combination with convert()\n */\n listenForVerificationId(): void;\n\n /**\n * @description Attempt to record a conversion using a verificationId retrieved from cookies\n * Use as step 2 of 2, in combination with listenForVerificationId\n */\n convert(conversionRequest: ConversionRequest): void;\n}\n// #endregion Conversion\n\n// #region Validators\nexport type Validator = (\n value: FieldContent,\n formOptions?: FormValidationOptions,\n) => ErrorId | ExtendedErrorId;\n// #endregion Validators\n\n// #region Deprecated\n/**\n * @deprecated\n */\nexport type Intl = any;\n// #endregion Deprecated\n\ntype Countries = {\n AD: string;\n AE: string;\n AF: string;\n AG: string;\n AI: string;\n AL: string;\n AM: string;\n AN: string;\n AO: string;\n AR: string;\n AS: string;\n AT: string;\n AU: string;\n AW: string;\n AZ: string;\n BA: string;\n BB: string;\n BD: string;\n BE: string;\n BF: string;\n BG: string;\n BH: string;\n BI: string;\n BJ: string;\n BM: string;\n BN: string;\n BO: string;\n BR: string;\n BS: string;\n BT: string;\n BV: string;\n BW: string;\n BY: string;\n BZ: string;\n CA: string;\n CD: string;\n CF: string;\n CG: string;\n CH: string;\n CI: string;\n CK: string;\n CL: string;\n CM: string;\n CN: string;\n CO: string;\n CR: string;\n CU: string;\n CV: string;\n CW: string;\n CY: string;\n CZ: string;\n DE: string;\n DJ: string;\n DK: string;\n DM: string;\n DO: string;\n DZ: string;\n EC: string;\n EE: string;\n EG: string;\n EH: string;\n ER: string;\n ES: string;\n ET: string;\n FI: string;\n FJ: string;\n FK: string;\n FM: string;\n FO: string;\n FR: string;\n GA: string;\n GB: string;\n GD: string;\n GE: string;\n GF: string;\n GH: string;\n GI: string;\n GL: string;\n GM: string;\n GN: string;\n GP: string;\n GQ: string;\n GR: string;\n GS: string;\n GT: string;\n GU: string;\n GW: string;\n GY: string;\n HK: string;\n HM: string;\n HN: string;\n HR: string;\n HT: string;\n HU: string;\n ID: string;\n IE: string;\n IL: string;\n IN: string;\n IO: string;\n IQ: string;\n IR: string;\n IS: string;\n IT: string;\n JM: string;\n JO: string;\n JP: string;\n KE: string;\n KG: string;\n KH: string;\n KI: string;\n KM: string;\n KN: string;\n KP: string;\n KR: string;\n KW: string;\n KY: string;\n KZ: string;\n LA: string;\n LB: string;\n LC: string;\n LI: string;\n LK: string;\n LR: string;\n LS: string;\n LT: string;\n LU: string;\n LV: string;\n LY: string;\n MA: string;\n MC: string;\n MD: string;\n ME: string;\n MG: string;\n MH: string;\n MK: string;\n ML: string;\n MM: string;\n MN: string;\n MO: string;\n MP: string;\n MQ: string;\n MR: string;\n MS: string;\n MT: string;\n MU: string;\n MV: string;\n MW: string;\n MX: string;\n MY: string;\n MZ: string;\n NA: string;\n NC: string;\n NE: string;\n NF: string;\n NG: string;\n NI: string;\n NL: string;\n NO: string;\n NP: string;\n NR: string;\n NU: string;\n NZ: string;\n OM: string;\n PA: string;\n PE: string;\n PF: string;\n PG: string;\n PH: string;\n PK: string;\n PL: string;\n PM: string;\n PN: string;\n PR: string;\n PS: string;\n PT: string;\n PW: string;\n PY: string;\n QA: string;\n RE: string;\n RO: string;\n RS: string;\n RU: string;\n RW: string;\n SA: string;\n SB: string;\n SC: string;\n SD: string;\n SE: string;\n SG: string;\n SH: string;\n SI: string;\n SK: string;\n SL: string;\n SM: string;\n SN: string;\n SO: string;\n SR: string;\n SS: string;\n ST: string;\n SV: string;\n SY: string;\n SZ: string;\n TC: string;\n TD: string;\n TF: string;\n TG: string;\n TH: string;\n TJ: string;\n TK: string;\n TL: string;\n TM: string;\n TN: string;\n TO: string;\n TR: string;\n TT: string;\n TV: string;\n TW: string;\n TZ: string;\n UA: string;\n UG: string;\n UM: string;\n US: string;\n UY: string;\n UZ: string;\n VA: string;\n VC: string;\n VE: string;\n VG: string;\n VI: string;\n VN: string;\n VU: string;\n WF: string;\n WS: string;\n XK: string;\n YE: string;\n YT: string;\n ZA: string;\n ZM: string;\n ZW: string;\n};\n\nexport type States = {\n AK: string;\n AL: string;\n AR: string;\n AS: string;\n AZ: string;\n CA: string;\n CO: string;\n CT: string;\n DC: string;\n DE: string;\n FL: string;\n GA: string;\n GU: string;\n HI: string;\n IA: string;\n ID: string;\n IL: string;\n IN: string;\n KS: string;\n KY: string;\n LA: string;\n MA: string;\n MD: string;\n ME: string;\n MI: string;\n MN: string;\n MO: string;\n MS: string;\n MT: string;\n NC: string;\n ND: string;\n NE: string;\n NH: string;\n NJ: string;\n NM: string;\n NV: string;\n NY: string;\n OH: string;\n OK: string;\n OR: string;\n PA: string;\n PR: string;\n RI: string;\n SC: string;\n SD: string;\n TN: string;\n TX: string;\n UT: string;\n VA: string;\n VI: string;\n VT: string;\n WA: string;\n WI: string;\n WV: string;\n WY: string;\n};\n\nexport type DocUploadData = {\n fileName: string;\n mimeType: string;\n fileSize: number;\n};\n\nexport type DocumentData = {\n documentId: string;\n status: string;\n mimeType: string;\n fileSize: number;\n uploadUrl: string;\n errors: Array<string>;\n};\n\nexport type IdentifierField = \"EMAIL\";\n","import { logger } from \"@jslib/shared/utils/logger\";\n\nimport { type FieldId, type Validator } from \"../types/types\";\n\nlet overridenValidators = {};\n\nexport const overrideValidator = (validatorField: FieldId, newValidator: Validator) => {\n logger.log(`overrideValidator registering ${newValidator} for '${validatorField}'`);\n overridenValidators[validatorField] = newValidator;\n};\n\nexport const getOverridenValidator = (validatorField: FieldId): Validator => {\n if (overridenValidators[validatorField]) {\n logger.log(`getOverridenValidator returning '${validatorField}'`);\n return overridenValidators[validatorField];\n }\n return null;\n};\n\nexport const resetOverriddenValidators = () => {\n overridenValidators = {};\n logger.info(\"Overridden validators have been reset\");\n};\n","import { postcodeValidator, postcodeValidatorExistsForCountry } from \"postcode-validator\";\nimport luhn from \"fast-luhn\";\n\nimport { logger } from \"@jslib/shared/utils/logger\";\nimport { getSafe } from \"@jslib/shared/utils/getSafe\";\n\nimport {\n type ErrorId,\n type FieldId,\n type FieldContent,\n type FieldValidationErrors,\n type ViewModel,\n type MilitaryStatus,\n type Organization,\n type Metadata,\n type FirstResponderStatus,\n type MedicalProfessionalStatus,\n type ExtendedFieldValidationErrors,\n type ExtendedFieldId,\n type Validator,\n type ExtendedErrorId,\n type DocUploadViewModel,\n type FormValidationOptions,\n type WithCoreFields,\n type InactiveMilitaryPersonalInfoViewModel,\n type Country,\n FIRST_RESPONDER_STATUS,\n MEDICAL_PROFESSIONAL_STATUS,\n MILITARY_STATUS,\n type LowIncomePersonalInfoViewModel,\n RECENT_MOVER_STATUS,\n type RecentMoverStatus,\n} from \"../types/types\";\nimport { assertValidFieldId } from \"../types/assertions\";\nimport {\n getFieldValidationErrorsEmpty,\n getExtendedFieldValidationErrorsEmpty,\n} from \"../types/empties\";\nimport { ACCEPTED_DOC_MIME_TYPES, AUTH_TOKEN_LENGTH, SSN_STRING_LENGTH } from \"../../constants\";\nimport { FieldIdEnum, StateEnum } from \"../types/runtimeTypes\";\nimport { getOptions } from \"../../options/options\";\n\nimport { getOverridenValidator } from \"./validatorOverride\";\nimport { getCustomValidatorFields, getCustomValidator } from \"./customValidators\";\n\nconst DECIMAL_RADIX = 10;\nconst ADOLESCENT_AGE = 16;\nconst MIN_BIRTHYEAR = 1900;\nconst MAX_BIRTHYEAR = 3000;\n\nexport const MAX_METADATA_KEYS = 50;\nexport const MAX_METADATA_KEY_LENGTH = 256;\nexport const MAX_METADATA_VALUE_LENGTH = 4096;\n\nexport const INTL_PHONE_NUMBER_REGEX = /^\\+(?:[0-9] ?){6,14}[0-9]$/;\n\nexport const VALID_PHONE_NUMBER_REGEXPS = [\n /^\\+?0*\\d{10,}(x[0-9]{0,5})?$/,\n /(^\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})$)/,\n];\n\ntype GetValidationError = (\n value: string,\n formValidationOptions?: FormValidationOptions,\n) => ErrorId | undefined;\n\nexport const validateMetadata = (metadata: Metadata): boolean => {\n const metadataKeyCount = Object.keys(metadata).length;\n\n // TOOD: Other metadata restrictions?\n if (metadataKeyCount > MAX_METADATA_KEYS) {\n logger.error(`Invalid number of metadata keys (max ${MAX_METADATA_KEYS})`, \"metadata keys\");\n return false;\n }\n return true;\n};\n\nexport const ensureMaxMetadataKeyValueLengths = (metadata: Metadata): Metadata => {\n const modifiedMetadata: Metadata = {};\n // TODO fix next line\n\n for (const key in metadata) {\n let newKey = key;\n let newValue = metadata[key] as string;\n\n if (newValue.length > MAX_METADATA_VALUE_LENGTH) {\n logger.warn(\n `Truncating metadata value '${metadata[key]}' for key '${newKey}' (max length ${MAX_METADATA_VALUE_LENGTH} characters).`,\n );\n newValue = newValue.substring(0, MAX_METADATA_VALUE_LENGTH);\n }\n if (newKey.length > MAX_METADATA_KEY_LENGTH) {\n logger.warn(\n `Truncating metadata key '${key}' (max length ${MAX_METADATA_KEY_LENGTH} characters).`,\n );\n newKey = newKey.substring(0, MAX_METADATA_KEY_LENGTH);\n }\n\n modifiedMetadata[newKey] = newValue;\n }\n return modifiedMetadata;\n};\n\nexport const getFieldValidationErrors = (\n viewModel: ViewModel,\n formValidationOptions?: FormValidationOptions,\n): FieldValidationErrors => {\n const fieldValidationErrors = getEmptyFieldValidationErrors();\n const fieldsToSkip = getSafe(() => viewModel.fieldsToSkipValidation);\n const metadata = getSafe(() => (viewModel as WithCoreFields).metadata, null);\n\n // TODO fix next line\n\n for (const fieldId in fieldValidationErrors) {\n if (viewModel.hasOwnProperty(fieldId)) {\n if (Array.isArray(fieldsToSkip) && fieldsToSkip.indexOf(fieldId as FieldId) > -1) {\n continue;\n }\n const fieldValue = viewModel[fieldId] ? viewModel[fieldId] : \"\";\n fieldValidationErrors[fieldId] = validateFieldById(\n fieldId as FieldId,\n fieldValue,\n formValidationOptions,\n );\n } else if (\n metadata !== null &&\n typeof metadata === \"object\" &&\n metadata.hasOwnProperty(fieldId)\n ) {\n const fieldValue = metadata[fieldId] ? metadata[fieldId] : \"\";\n fieldValidationErrors[fieldId] = validateFieldById(\n fieldId as FieldId,\n fieldValue,\n formValidationOptions,\n );\n }\n }\n\n const { customFormFields } = getOptions();\n if (customFormFields) {\n customFormFields.forEach((customField) => {\n let errorId;\n try {\n errorId = customField.validate(viewModel.metadata[customField.fieldId]);\n } catch (e) {\n logger.warn(`Error validating custom field ${customField.fieldId}`, e);\n }\n if (errorId) {\n fieldValidationErrors[customField.fieldId] = errorId;\n } else {\n delete fieldValidationErrors[customField.fieldId];\n }\n });\n }\n\n const { formFieldConfig } = getOptions();\n if (formFieldConfig) {\n formFieldConfig.forEach((formField) => {\n const fieldValue = viewModel[formField.fieldId] ? viewModel[formField.fieldId] : \"\";\n const fieldInViewModel = viewModel.hasOwnProperty(formField.fieldId);\n const shouldSkipValidation = fieldsToSkip?.includes(formField.fieldId as FieldId);\n\n if (fieldInViewModel && formField.requireIfOptional && !shouldSkipValidation) {\n fieldValidationErrors[formField.fieldId] = validateFieldById(\n formField.fieldId as FieldId,\n fieldValue,\n formValidationOptions,\n );\n }\n });\n }\n\n return fieldValidationErrors;\n};\n\nexport const isFormFilled = (\n viewModel: ViewModel,\n formValidationOptions?: FormValidationOptions,\n): boolean => {\n const customValidatorFields = getCustomValidatorFields();\n\n // TODO fix next line\n\n for (const fieldId in viewModel) {\n const fieldValue = viewModel[fieldId] ? viewModel[fieldId] : \"\";\n const isFieldSkipped =\n viewModel.fieldsToSkipValidation &&\n viewModel.fieldsToSkipValidation.includes(fieldId as FieldId);\n\n if (\n FieldIdEnum[fieldId] &&\n typeof validateFieldById(fieldId, fieldValue, formValidationOptions) === \"string\" &&\n !isFieldSkipped\n ) {\n return false;\n }\n }\n\n const metadata = getSafe(() => (viewModel as WithCoreFields).metadata, null);\n if (metadata !== null) {\n // TODO fix next line\n\n for (const fieldId in metadata) {\n const fieldValue = metadata[fieldId] !== undefined ? metadata[fieldId] : \"\";\n\n if (\n customValidatorFields.includes(fieldId) &&\n typeof getCustomValidator(fieldId)(fieldValue, formValidationOptions) === \"string\"\n ) {\n return false;\n }\n }\n }\n\n return true;\n};\n\nexport const isFormErrored = (currentFieldValidationErrors: FieldValidationErrors): boolean => {\n // TODO fix next line\n\n for (const field in currentFieldValidationErrors) {\n if (currentFieldValidationErrors[field]) {\n logger.info(`Field '${field}' has errorId '${currentFieldValidationErrors[field]}'`);\n return true;\n }\n }\n return false;\n};\n\nconst getValidationError = (\n fieldId: FieldId,\n value: FieldContent,\n defaultValidator: Validator,\n overriddenValidator?: Validator,\n formValidationOptions?: FormValidationOptions,\n): ErrorId => {\n if (overriddenValidator) {\n logger.info(`Using overridden validator for field '${fieldId}'`);\n return overriddenValidator(value, formValidationOptions) as ErrorId;\n }\n return defaultValidator(value, formValidationOptions) as ErrorId;\n};\n\nconst getEmptyFieldValidationErrors = (): FieldValidationErrors => {\n const emptyFieldValidationErrors: FieldValidationErrors = getFieldValidationErrorsEmpty();\n const emptyExtendedFieldValidationErrors: ExtendedFieldValidationErrors =\n getExtendedFieldValidationErrorsEmpty();\n const fieldValidationErrors: FieldValidationErrors = {\n ...emptyFieldValidationErrors,\n ...emptyExtendedFieldValidationErrors,\n };\n return fieldValidationErrors;\n};\n\nconst getCustomValidationError = (\n fieldId: ExtendedFieldId,\n value: FieldContent,\n formValidationOptions?: FormValidationOptions,\n): ExtendedErrorId => {\n const customValidator: Validator = getCustomValidator(fieldId);\n logger.info(`Using custom validator for custom field '${fieldId}'`);\n return customValidator ? customValidator(value, formValidationOptions) : undefined;\n};\n\nconst customValidatorExists = (fieldId: ExtendedFieldId): boolean => {\n const customValidatorFields = getCustomValidatorFields();\n\n if (customValidatorFields.length && customValidatorFields.indexOf(fieldId) >= 0) {\n return true;\n }\n return false;\n};\n\nconst getFirstNameValidationError = (value: FieldContent): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidFirstName\";\n\n if (value === undefined || !isValidName(value as string)) {\n return invalidError;\n }\n};\n\nconst getLastNameValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidLastName\";\n\n if (value === undefined || !isValidName(value)) {\n return invalidError;\n }\n};\n\nconst getMemberIdError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidMemberId\";\n\n if (value === undefined || value === \"\") {\n return invalidError;\n }\n};\n\nconst getCountryValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidCountry\";\n if (!value) {\n return invalidError;\n }\n};\n\nexport const getEmailValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidEmail\";\n const VALID_EMAIL_REGEXP =\n /(^\\s*?[A-Za-z0-9!#$%&''*+\\/=?^_`{|}~-]+(\\.[A-Za-z0-9!#$%&''*+\\/=?^_`{|}~-]+)*@([A-Za-z0-9!#$%&''*+\\/=?^_`{|}~-]+(\\.[A-Za-z0-9!#$%&''*+\\/=?^_`{|}~-]+)+|\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])\\s*?$)/;\n\n if (value === undefined || !VALID_EMAIL_REGEXP.test(value)) {\n return invalidError;\n }\n};\n\nexport const getPhoneNumberValidationError =\n (failIfValueFalsy: boolean, options?: { country: Country }) =>\n (value: string): ErrorId => {\n const invalidPhoneNumber: ErrorId = \"invalidPhoneNumber\";\n if (!value) {\n return failIfValueFalsy ? invalidPhoneNumber : undefined;\n }\n\n if (options?.country && options.country !== \"US\" && !INTL_PHONE_NUMBER_REGEX.test(value)) {\n return invalidPhoneNumber;\n }\n\n const matchedPatterns = VALID_PHONE_NUMBER_REGEXPS.filter((regexp: RegExp) =>\n regexp.test(value),\n );\n\n if (matchedPatterns.length === 0) {\n return invalidPhoneNumber;\n }\n };\n\nconst getPhoneNumberValidator = (formValidationOptions?: FormValidationOptions): Validator => {\n const country = formValidationOptions?.viewModel?.countryChoice?.value;\n const shouldFailIfEmpty =\n (formValidationOptions && formValidationOptions.smsLoopEnabled) ||\n // restricting the non-US empty check to age programs to prevent any possible\n // leakage in case optional phone numbers are allowed on other program types.\n (formValidationOptions?.currentStep === \"collectAgePersonalInfo\" &&\n country &&\n country !== \"US\");\n return getPhoneNumberValidationError(shouldFailIfEmpty, { country });\n};\n\nconst getOrganizationValidationError = (value: Organization): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidOrganization\";\n if (\n value.id === undefined ||\n Number.isNaN(value.id) ||\n (value.source !== \"EMPLOYER\" && value.id < 0) ||\n (value.source === \"EMPLOYER\" && (value.id > -1 || !value.idExtended)) ||\n (value.id === 0 && value.name.length <= 0)\n ) {\n return invalidError;\n }\n};\n\nconst isBirthDateEmpty = (birthDate: any) => {\n const noUndefined = birthDate.split(\"undefined\").join(\"\");\n return noUndefined.length <= 2;\n};\n\nconst getBirthDateValidationError = (\n value: string,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidBirthDate\";\n const underagePersonError: ErrorId = \"underagePerson\";\n const futureBirthDateError: ErrorId = \"futureBirthDate\";\n const outsideAgeError: ErrorId = \"outsideAgePerson\";\n const minAge = formValidationOptions?.minAge ?? undefined;\n const maxAge = formValidationOptions?.maxAge ?? undefined;\n\n if (getSafe(() => formValidationOptions.currentStep === \"collectMemberPersonalInfo\")) {\n if (value === undefined || value === \"\" || isBirthDateEmpty(value)) return;\n if (!isValidDateFormat(value) || !isValidDate(value)) {\n return invalidError;\n }\n } else if (value === undefined || !isValidDateFormat(value) || !isValidDate(value)) {\n return invalidError;\n }\n\n if (isAgeOutsideRange(value, minAge, maxAge)) {\n return outsideAgeError;\n }\n if (isFutureDate(value)) {\n return futureBirthDateError;\n }\n if (isUnderageDate(value, minAge)) {\n return underagePersonError;\n }\n};\n\nconst getFileValidationError = (\n file: File,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | undefined => {\n const hasFileExtension = (fileName: string): boolean => fileName && fileName.includes(\".\");\n const noValidFilesError: ErrorId = \"noValidFiles\";\n const invalidFileSizeMaxError: ErrorId = \"invalidFileSizeMax\";\n const invalidFileSizeEmptyError: ErrorId = \"invalidFileSizeEmpty\";\n const unsupportedDocMimeTypeError: ErrorId = \"unsupportedDocMimeType\";\n const duplicateFileError = \"duplicateFile\";\n const FILE_SIZE_10MB = 10485760;\n const validFileTypes: string[] = ACCEPTED_DOC_MIME_TYPES;\n if (formValidationOptions) {\n const vm = formValidationOptions.viewModel as DocUploadViewModel;\n const selectedfiles = [vm.file1, vm.file2, vm.file3];\n\n const isDuplicate = selectedfiles.some(\n (f) => f !== undefined && f.name === file.name && f.size === file.size,\n );\n if (isDuplicate) {\n return duplicateFileError;\n }\n }\n\n if (file === undefined) {\n return noValidFilesError;\n }\n // If no extension, allow upload so API can determine if valid mime type\n if (hasFileExtension(file.name) && !validFileTypes.includes(file.type)) {\n return unsupportedDocMimeTypeError;\n }\n if (file.size > FILE_SIZE_10MB) {\n return invalidFileSizeMaxError;\n }\n if (file.size <= 0) {\n return invalidFileSizeEmptyError;\n }\n};\n\nexport const getEbtCardValidationError: GetValidationError = (value, formValidationOptions) => {\n const vm = formValidationOptions.viewModel as LowIncomePersonalInfoViewModel;\n if (vm.statuses && vm.statuses.includes(\"SNAP_BENEFITS\")) {\n if (!value.match(/^\\d{16,19}$/)) {\n // Must be 16-19 digits\n return \"invalidEbtCardNumber\";\n }\n\n if (value.startsWith(\"610098\") && value.length !== 19) {\n // this prefix must be 19 digits\n return \"invalidEbtCardNumber\";\n }\n\n const checkSumExemptPrefixes = [\"600486\", \"507712\", \"507714\"] as const;\n const isExempt = checkSumExemptPrefixes.some((pref) => value.startsWith(pref));\n if (!isExempt && !luhn(value)) {\n // Failed checksum\n return \"invalidEbtCardNumber\";\n }\n }\n};\n\nexport const getPostalCodeValidationError = (\n value: string,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | undefined => {\n const invalidPostalCode: ErrorId = \"invalidPostalCode\";\n const countryCode = getSafe(() => formValidationOptions.viewModel.countryChoice.value, \"US\");\n\n if (isValidPostalCode(countryCode, value)) {\n return;\n }\n return invalidPostalCode;\n};\n\nconst getAddress1ValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidAddress\";\n if (!value) {\n return invalidError;\n }\n};\n\nconst getCityValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidCity\";\n if (!value) {\n return invalidError;\n }\n};\n\nconst getStateValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidState\";\n if (!isValidState(value)) {\n return invalidError;\n }\n};\n\nconst existsAndIsValidDate = (value?: string): boolean =>\n value !== undefined && isValidDateFormat(value) && isValidDate(value);\n\nconst isBeforeBirthdate = (value: string, vm: ViewModel): boolean => {\n const date = new Date(value);\n const birthDate = new Date((vm as InactiveMilitaryPersonalInfoViewModel).birthDate);\n\n return date < birthDate;\n};\n\nconst getDischargeDateValidationError = (\n value: string,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | undefined => {\n const transitionalMilitaryValidityDays = formValidationOptions?.transitionalMilitaryValidityDays;\n const shouldValidateTransitionalMilitaryValidityDays = !!transitionalMilitaryValidityDays;\n if (!existsAndIsValidDate(value)) {\n return \"invalidDischargeDate\";\n }\n if (!shouldValidateTransitionalMilitaryValidityDays && isFutureDate(value)) {\n return \"futureDischargeDate\";\n }\n if (isBeforeBirthdate(value, formValidationOptions.viewModel)) {\n return \"dischargeDateBeforeBirthDate\";\n }\n if (\n shouldValidateTransitionalMilitaryValidityDays &&\n !isWithinTransitionalMilitaryValidityDays(value, transitionalMilitaryValidityDays)\n ) {\n return \"invalidDischargeDate\";\n }\n};\n\nconst getActiveDutyStartDateValidationError = (\n value: string,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | undefined => {\n if (!value && !formValidationOptions.strictMilitaryValidationEnabled) {\n // a falsey value is valid unless strictMilitaryValidation is enabled.\n return;\n }\n\n if (!existsAndIsValidDate(value)) {\n return \"invalidActiveDutyStartDate\";\n }\n if (isFutureDate(value)) {\n return \"futureActiveDutyStartDate\";\n }\n if (isBeforeBirthdate(value, formValidationOptions.viewModel)) {\n return \"activeDutyStartDateBeforeBirthDate\";\n }\n};\n\nconst getSsnValidationError = (value: number): ErrorId | undefined => {\n const invalidSocialSecurityNumber: ErrorId = \"invalidSocialSecurityNumber\";\n if (value.toString().length !== SSN_STRING_LENGTH) {\n return invalidSocialSecurityNumber;\n }\n};\n\nconst isValidLicensedProfessionalStatus = (value: string) => value.length > 0;\n\nconst isValidLowIncomeStatus = (value: string) => value.length > 0;\n\nconst getDriverLicenseNumberValidationError = (value: string): ErrorId | undefined => {\n const invalidDriverLicenseNumber: ErrorId = \"invalidDriverLicenseNumber\";\n const VALID_DRIVER_LICENSE_REGEXP = /^[A-Za-z0-9-\\*]{1,100}$/; // '*' is sometimes used in WA state\n\n if (value === undefined || !VALID_DRIVER_LICENSE_REGEXP.test(value)) {\n return invalidDriverLicenseNumber;\n }\n};\n\nconst getStatusesValidationError = (value: string): ErrorId | undefined => {\n const invalidStatuses: ErrorId = \"invalidStatuses\";\n if (!value || !isValidLicensedProfessionalStatus(value) || !isValidLowIncomeStatus(value)) {\n return invalidStatuses;\n }\n};\n\nconst isValidMilitaryStatus = (value: string) => MILITARY_STATUS.includes(value as MilitaryStatus);\n\nconst isValidFirstResponderStatus = (value: string): boolean =>\n FIRST_RESPONDER_STATUS.includes(value as FirstResponderStatus);\n\nconst isValidMedicalProfessionalStatus = (value: string) =>\n MEDICAL_PROFESSIONAL_STATUS.includes(value as MedicalProfessionalStatus);\n\nconst isRecentMoverStatus = (value: string) =>\n RECENT_MOVER_STATUS.includes(value as RecentMoverStatus);\n\nconst getStatusValidationError = (value: string): ErrorId | undefined => {\n const invalidStatus: ErrorId = \"invalidStatus\";\n\n if (\n !value ||\n (!isValidMilitaryStatus(value) &&\n !isValidFirstResponderStatus(value) &&\n !isValidMedicalProfessionalStatus(value) &&\n !isRecentMoverStatus(value) &&\n !isValidLowIncomeStatus(value) &&\n !isValidLicensedProfessionalStatus(value))\n ) {\n return invalidStatus;\n }\n};\n\nconst getAuthenticationCodeValidationError = (value: FieldContent): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidAuthenticationLoopToken\";\n\n if (value === undefined || value.toString().length !== AUTH_TOKEN_LENGTH) {\n return invalidError;\n }\n};\n\nexport const getCvecNumberValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidCvecNumber\";\n const VALID_CVEC_NUMBER_REGEXP = /^(?:[a-zA-Z0-9]\\s*){12}$|^$/;\n\n if (value === undefined || !VALID_CVEC_NUMBER_REGEXP.test(value)) {\n return invalidError;\n }\n};\n\nexport const getCaptchaTokenValidationError = (value: string): ErrorId | undefined => {\n const invalidError: ErrorId = \"invalidCaptchaToken\";\n\n if (value === undefined || value === \"\") {\n return invalidError;\n }\n};\n\nexport const isValidName = (value: string, opts?: { _test_backup_regex: boolean }): boolean => {\n try {\n const VALID_NAME_REGEXP = /([\\p{Letter}\\p{Mark}\\p{Connector_Punctuation}\\p{Join_Control}]+)/v;\n if (opts?._test_backup_regex) {\n throw new Error(\"testing backup regex\");\n }\n return VALID_NAME_REGEXP.test(value);\n } catch {\n // unicode sets `/v` is unsupported in older browsers, notably iOS 15/16 so if that fails instead use a\n // simpler regex that will compile. It's less accurate but we have the safety of server-side validation.\n //\n // This regex matches most characters, but excludes some control characters, space, and ASCII digits (0-9).\n // eslint-disable-next-line no-control-regex\n const VALID_NAME_REGEXP = /([\\u0000-\\u0019\\u0021-\\u002F\\u003A-\\uFFFF]+)/;\n return VALID_NAME_REGEXP.test(value);\n }\n};\n\nconst isValidDate = (value: string): boolean => {\n const dateParts = value.split(\"-\");\n const dateYear = parseInt(dateParts[0], DECIMAL_RADIX);\n const dateMonth = parseInt(dateParts[1], DECIMAL_RADIX);\n const dateDay = parseInt(dateParts[2], DECIMAL_RADIX);\n const monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n if (dateYear < MIN_BIRTHYEAR || dateYear > MAX_BIRTHYEAR || dateMonth <= 0 || dateMonth > 12) {\n return false;\n }\n\n // Check for leap years\n if (dateYear % 400 === 0 || (dateYear % 100 !== 0 && dateYear % 4 === 0)) {\n monthDays[1] = 29;\n }\n\n if (dateDay <= 0 || dateDay > monthDays[dateMonth - 1]) {\n return false;\n }\n return true;\n};\n\nconst isValidDateFormat = (value: string): boolean => {\n const VALID_DATE_FORMAT_REGEXP = /^\\d{4}[\\-\\s\\/]\\d{1,2}[\\-\\s\\/]\\d{1,2}$/;\n\n if (VALID_DATE_FORMAT_REGEXP.test(value)) {\n return true;\n }\n return false;\n};\n\nconst isFutureDate = (value: string): boolean => {\n const currentDate = new Date();\n const candidateDate = new Date(value);\n return candidateDate > currentDate;\n};\n\nconst isWithinTransitionalMilitaryValidityDays = (\n value: string,\n transitionalMilitaryValidityDays: number,\n): boolean => {\n const candidateDate = new Date(`${value}T00:00:00Z`);\n\n const now = new Date();\n const todayUTC = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));\n\n const pastDischargeDateLimit = new Date(todayUTC.valueOf());\n pastDischargeDateLimit.setUTCDate(todayUTC.getUTCDate() - transitionalMilitaryValidityDays);\n\n const futureDischargeDateLimit = new Date(todayUTC.valueOf());\n futureDischargeDateLimit.setUTCDate(todayUTC.getUTCDate() + transitionalMilitaryValidityDays);\n\n return candidateDate >= pastDischargeDateLimit && candidateDate <= futureDischargeDateLimit;\n};\n\nconst isUnderageDate = (value: string, minAge = ADOLESCENT_AGE): boolean => {\n const birthDateParts = value.split(\"-\");\n const birthDateYear = parseInt(birthDateParts[0], DECIMAL_RADIX);\n const birthDateMonth = parseInt(birthDateParts[1], DECIMAL_RADIX);\n const birthDateDay = parseInt(birthDateParts[2], DECIMAL_RADIX);\n const currentYear = new Date().getFullYear();\n const currentMonth = new Date().getMonth() + 1;\n const currentDay = new Date().getDate();\n\n if (currentYear - birthDateYear === minAge) {\n if (currentMonth - birthDateMonth < 0) {\n return true;\n }\n\n if (currentMonth - birthDateMonth === 0) {\n if (currentDay - birthDateDay < 0) {\n return true;\n }\n }\n } else if (currentYear - birthDateYear < minAge) {\n return true;\n }\n return false;\n};\n\nconst isOverageDate = (value: string, maxAge = 120) => {\n const birthDateParts = value.split(\"-\");\n const birthDateYear = parseInt(birthDateParts[0], DECIMAL_RADIX);\n const birthDateMonth = parseInt(birthDateParts[1], DECIMAL_RADIX);\n const birthDateDay = parseInt(birthDateParts[2], DECIMAL_RADIX);\n const currentYear = new Date().getFullYear();\n const currentMonth = new Date().getMonth() + 1;\n const currentDay = new Date().getDate();\n\n if (currentYear - birthDateYear === maxAge) {\n if (currentMonth - birthDateMonth > 0) {\n return true;\n }\n\n if (currentMonth - birthDateMonth === 0) {\n if (currentDay - birthDateDay > 0) {\n return true;\n }\n }\n } else if (currentYear - birthDateYear > maxAge) {\n return true;\n }\n return false;\n};\n\nconst isAgeOutsideRange = (value: string, minAge?: number, maxAge?: number): boolean => {\n let isUnderage = false;\n let isOverage = false;\n\n if (minAge) {\n isUnderage = isUnderageDate(value, minAge);\n }\n if (maxAge) {\n isOverage = isOverageDate(value, maxAge);\n }\n return isUnderage || isOverage;\n};\n\nexport const isValidPostalCode = (countryCode: Country = \"US\", value: string) => {\n const countryCodeString = countryCode as any;\n if (postcodeValidatorExistsForCountry(countryCodeString)) {\n return postcodeValidator(value, countryCodeString);\n }\n return false;\n};\n\n/**\n * @deprecated Use `isValidPostalCode('US', value)` instead\n * */\nexport const isValidUsPostalCode = (value: string): boolean => isValidPostalCode(\"US\", value);\n\n/**\n * @deprecated Use `isValidPostalCode('CA', value)` instead\n * */\nexport const isValidCanadianPostalCode = (value: string): boolean => isValidPostalCode(\"CA\", value);\n\nconst isValidState = (value: string) => {\n if (!value) {\n return false;\n }\n const validStateCodes: StateEnum[] = Object.values(StateEnum);\n if (validStateCodes.indexOf(value.toUpperCase() as StateEnum) >= 0) {\n return true;\n }\n return false;\n};\n\nexport const validateFieldById = (\n fieldId: FieldId | ExtendedFieldId,\n value: FieldContent,\n formValidationOptions?: FormValidationOptions,\n): ErrorId | ExtendedErrorId | undefined => {\n assertValidFieldId(fieldId);\n\n const defaultCoreFieldValidatorMap: Partial<Record<string, Validator>> = {\n [FieldIdEnum.firstName]: getFirstNameValidationError,\n [FieldIdEnum.lastName]: getLastNameValidationError,\n [FieldIdEnum.memberId]: getMemberIdError,\n [FieldIdEnum.email]: getEmailValidationError,\n [FieldIdEnum.organizationEmail]: getEmailValidationError,\n [FieldIdEnum.phoneNumber]: getPhoneNumberValidator(formValidationOptions),\n [FieldIdEnum.organization]: getOrganizationValidationError,\n [FieldIdEnum.birthDate]: getBirthDateValidationError,\n [FieldIdEnum.postalCode]: getPostalCodeValidationError,\n [FieldIdEnum.address1]: getAddress1ValidationError,\n [FieldIdEnum.city]: getCityValidationError,\n [FieldIdEnum.state]: getStateValidationError,\n [FieldIdEnum.country]: getCountryValidationError,\n [FieldIdEnum.dischargeDate]: getDischargeDateValidationError,\n [FieldIdEnum.activeDutyStartDate]: getActiveDutyStartDateValidationError,\n [FieldIdEnum.socialSecurityNumber]: getSsnValidationError,\n [FieldIdEnum.status]: getStatusValidationError,\n [FieldIdEnum.statuses]: getStatusesValidationError,\n [FieldIdEnum.driverLicenseNumber]: getDriverLicenseNumberValidationError,\n [FieldIdEnum.docUpload]: getFileValidationError,\n [FieldIdEnum.ebtCardNumber]: getEbtCardValidationError,\n [FieldIdEnum.authenticationCode]: getAuthenticationCodeValidationError,\n [FieldIdEnum.cvecNumber]: getCvecNumberValidationError,\n [FieldIdEnum.captchaToken]: getCaptchaTokenValidationError,\n };\n\n const defaultValidator = defaultCoreFieldValidatorMap[fieldId];\n if (defaultValidator) {\n const overriddenValidator: Validator = getOverridenValidator(fieldId as FieldId);\n return getValidationError(\n fieldId as FieldId,\n value,\n defaultValidator,\n overriddenValidator,\n formValidationOptions,\n );\n }\n\n if (customValidatorExists(fieldId)) {\n return getCustomValidationError(fieldId, value, formValidationOptions);\n }\n\n return undefined;\n};\n","function e(e){function t(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=t}return t.prototype=new Error,t.prototype.name=e,t.prototype.constructor=t,t}const t=e(\"LaunchDarklyUnexpectedResponseError\"),n=e(\"LaunchDarklyInvalidEnvironmentIdError\"),r=e(\"LaunchDarklyInvalidUserError\"),o=e(\"LaunchDarklyInvalidEventKeyError\"),i=e(\"LaunchDarklyInvalidArgumentError\"),a=e(\"LaunchDarklyFlagFetchError\");for(var s={LDUnexpectedResponseError:t,LDInvalidEnvironmentIdError:n,LDInvalidUserError:r,LDInvalidEventKeyError:o,LDInvalidArgumentError:i,LDInvalidDataError:e(\"LaunchDarklyInvalidDataError\"),LDFlagFetchError:a,LDTimeoutError:e(\"LaunchDarklyTimeoutError\"),isHttpErrorRecoverable:function(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}},c=function(e){var t=m(e),n=t[0],r=t[1];return 3*(n+r)/4-r},u=function(e){var t,n,r=m(e),o=r[0],i=r[1],a=new g(function(e,t,n){return 3*(t+n)/4-n}(0,o,i)),s=0,c=i>0?o-4:o;for(n=0;n<c;n+=4)t=f[e.charCodeAt(n)]<<18|f[e.charCodeAt(n+1)]<<12|f[e.charCodeAt(n+2)]<<6|f[e.charCodeAt(n+3)],a[s++]=t>>16&255,a[s++]=t>>8&255,a[s++]=255&t;2===i&&(t=f[e.charCodeAt(n)]<<2|f[e.charCodeAt(n+1)]>>4,a[s++]=255&t);1===i&&(t=f[e.charCodeAt(n)]<<10|f[e.charCodeAt(n+1)]<<4|f[e.charCodeAt(n+2)]>>2,a[s++]=t>>8&255,a[s++]=255&t);return a},l=function(e){for(var t,n=e.length,r=n%3,o=[],i=16383,a=0,s=n-r;a<s;a+=i)o.push(y(e,a,a+i>s?s:a+i));1===r?(t=e[n-1],o.push(d[t>>2]+d[t<<4&63]+\"==\")):2===r&&(t=(e[n-2]<<8)+e[n-1],o.push(d[t>>10]+d[t>>4&63]+d[t<<2&63]+\"=\"));return o.join(\"\")},d=[],f=[],g=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,v=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",p=0;p<64;++p)d[p]=v[p],f[v.charCodeAt(p)]=p;function m(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var n=e.indexOf(\"=\");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function h(e){return d[e>>18&63]+d[e>>12&63]+d[e>>6&63]+d[63&e]}function y(e,t,n){for(var r,o=[],i=t;i<n;i+=3)r=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),o.push(h(r));return o.join(\"\")}f[\"-\".charCodeAt(0)]=62,f[\"_\".charCodeAt(0)]=63;var w={byteLength:c,toByteArray:u,fromByteArray:l},k=Array.isArray,b=Object.keys,E=Object.prototype.hasOwnProperty,D=function e(t,n){if(t===n)return!0;if(t&&n&&\"object\"==typeof t&&\"object\"==typeof n){var r,o,i,a=k(t),s=k(n);if(a&&s){if((o=t.length)!=n.length)return!1;for(r=o;0!==r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=s)return!1;var c=t instanceof Date,u=n instanceof Date;if(c!=u)return!1;if(c&&u)return t.getTime()==n.getTime();var l=t instanceof RegExp,d=n instanceof RegExp;if(l!=d)return!1;if(l&&d)return t.toString()==n.toString();var f=b(t);if((o=f.length)!==b(n).length)return!1;for(r=o;0!==r--;)if(!E.call(n,f[r]))return!1;for(r=o;0!==r--;)if(!e(t[i=f[r]],n[i]))return!1;return!0}return t!=t&&n!=n};const x=[\"key\",\"ip\",\"country\",\"email\",\"firstName\",\"lastName\",\"avatar\",\"name\"];function O(e){const t=unescape(encodeURIComponent(e));return w.fromByteArray(function(e){const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}(t))}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var C={appendUrlPath:function(e,t){return(e.endsWith(\"/\")?e.substring(0,e.length-1):e)+(t.startsWith(\"/\")?\"\":\"/\")+t},base64URLEncode:function(e){return O(e).replace(/=/g,\"\").replace(/\\+/g,\"-\").replace(/\\//g,\"_\")},btoa:O,clone:function(e){return JSON.parse(JSON.stringify(e))},deepEquals:function(e,t){return D(e,t)},extend:function(...e){return e.reduce((e,t)=>({...e,...t}),{})},getLDUserAgentString:function(e){const t=e.version||\"?\";return e.userAgent+\"/\"+t},objectHasOwnProperty:P,onNextTick:function(e){setTimeout(e,0)},sanitizeContext:function(e){if(!e)return e;let t;return null!==e.kind&&void 0!==e.kind||x.forEach(n=>{const r=e[n];void 0!==r&&\"string\"!=typeof r&&(t=t||{...e},t[n]=String(r))}),t||e},transformValuesToVersionedValues:function(e){const t={};for(const n in e)P(e,n)&&(t[n]={value:e[n],version:0});return t},transformVersionedValuesToValues:function(e){const t={};for(const n in e)P(e,n)&&(t[n]=e[n].value);return t},wrapPromiseCallback:function(e,t){const n=e.then(e=>(t&&setTimeout(()=>{t(null,e)},0),e),e=>{if(!t)return Promise.reject(e);setTimeout(()=>{t(e,null)},0)});return t?void 0:n},once:function(e){let t,n=!1;return function(...r){return n||(n=!0,t=e.apply(this,r)),t}}};const S={start:0,end:3},I={start:4,end:5},F={start:6,end:7},T={start:8,end:8},L={start:9,end:9},j={start:10,end:15};function U(e,t){let n=\"\";for(let r=t.start;r<=t.end;r+=1)n+=e[r].toString(16).padStart(2,\"0\");return n}function R(e){return e[T.start]=191&e[T.start]|128,e[F.start]=15&e[F.start]|64,`${U(e,S)}-${U(e,I)}-${U(e,F)}-${U(e,T)}${U(e,L)}-${U(e,j)}`}function A(){const e=function(){if(\"undefined\"!=typeof crypto&&crypto.getRandomValues){const e=new Uint8Array(16);return crypto.getRandomValues(e),[...e.values()]}const e=[];for(let t=0;t<16;t+=1)e.push(Math.floor(256*Math.random()));return e}();return R(e)}var N={randomUuidV4:function(){return\"undefined\"!=typeof crypto&&\"function\"==typeof crypto.randomUUID?crypto.randomUUID():A()},fallbackUuidV4:A,formatDataAsUuidV4:R};const $=[\"debug\",\"info\",\"warn\",\"error\",\"none\"];var V={commonBasicLogger:function(e,t){if(e&&e.destination&&\"function\"!=typeof e.destination)throw new Error(\"destination for basicLogger was set to a non-function\");function n(e){return function(t){console&&console[e]&&console[e].call(console,t)}}const r=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[n(\"log\"),n(\"info\"),n(\"warn\"),n(\"error\")],o=!(!e||!e.destination),i=e&&void 0!==e.prefix&&null!==e.prefix?e.prefix:\"[LaunchDarkly] \";let a=1;if(e&&e.level)for(let t=0;t<$.length;t++)$[t]===e.level&&(a=t);function s(e,n,a){if(a.length<1)return;let s;const c=o?n+\": \"+i:i;if(1!==a.length&&t){const e=[...a];e[0]=c+e[0],s=t(...e)}else s=c+a[0];try{r[e](s)}catch(e){console&&console.log&&console.log(\"[LaunchDarkly] Configured logger's \"+n+\" method threw an exception: \"+e)}}const c={};for(let e=0;e<$.length;e++){const t=$[e];if(\"none\"!==t)if(e<a)c[t]=()=>{};else{const n=e;c[t]=function(){s(n,t,arguments)}}}return c},validateLogger:function(e){$.forEach(t=>{if(\"none\"!==t&&(!e[t]||\"function\"!=typeof e[t]))throw new Error(\"Provided logger instance must support logger.\"+t+\"(...) method\")})}};function H(e){return e&&e.message?e.message:\"string\"==typeof e||e instanceof String?e:JSON.stringify(e)}const M=\" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.\";var q={bootstrapInvalid:function(){return\"LaunchDarkly bootstrap data is not available because the back end could not read the flags.\"},bootstrapOldFormat:function(){return\"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly.\"+M},clientInitialized:function(){return\"LaunchDarkly client initialized\"},clientNotReady:function(){return\"LaunchDarkly client is not ready\"},debugEnqueueingEvent:function(e){return'enqueueing \"'+e+'\" event'},debugPostingDiagnosticEvent:function(e){return\"sending diagnostic event (\"+e.kind+\")\"},debugPostingEvents:function(e){return\"sending \"+e+\" events\"},debugStreamDelete:function(e){return'received streaming deletion for flag \"'+e+'\"'},debugStreamDeleteIgnored:function(e){return'received streaming deletion for flag \"'+e+'\" but ignored due to version check'},debugStreamPatch:function(e){return'received streaming update for flag \"'+e+'\"'},debugStreamPatchIgnored:function(e){return'received streaming update for flag \"'+e+'\" but ignored due to version check'},debugStreamPing:function(){return\"received ping message from stream\"},debugPolling:function(e){return\"polling for feature flags at \"+e},debugStreamPut:function(){return\"received streaming update for all flags\"},deprecated:function(e,t){return t?'\"'+e+'\" is deprecated, please use \"'+t+'\"':'\"'+e+'\" is deprecated'},environmentNotFound:function(){return\"Environment not found. Double check that you specified a valid environment/client-side ID.\"+M},environmentNotSpecified:function(){return\"No environment/client-side ID was specified.\"+M},errorFetchingFlags:function(e){return\"Error fetching flag settings: \"+H(e)},eventCapacityExceeded:function(){return\"Exceeded event queue capacity. Increase capacity to avoid dropping events.\"},eventWithoutContext:function(){return\"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript\"},httpErrorMessage:function(e,t,n){return\"Received error \"+e+(401===e?\" (invalid SDK key)\":\"\")+\" for \"+t+\" - \"+(s.isHttpErrorRecoverable(e)?n:\"giving up permanently\")},httpUnavailable:function(){return\"Cannot make HTTP requests in this environment.\"+M},identifyDisabled:function(){return\"identify() has no effect here; it must be called on the main client instance\"},inspectorMethodError:(e,t)=>`an inspector: \"${t}\" of type: \"${e}\" generated an exception`,invalidContentType:function(e){return'Expected application/json content type but got \"'+e+'\"'},invalidData:function(){return\"Invalid data received from LaunchDarkly; connection may have been interrupted\"},invalidInspector:(e,t)=>`an inspector: \"${t}\" of an invalid type (${e}) was configured`,invalidKey:function(){return\"Event key must be a string\"},invalidMetricValue:e=>`The track function was called with a non-numeric \"metricValue\" (${e}), only numeric metric values are supported.`,invalidContext:function(){return\"Invalid context specified.\"+M},invalidTagValue:e=>`Config option \"${e}\" must only contain letters, numbers, ., _ or -.`,localStorageUnavailable:function(e){return\"local storage is unavailable: \"+H(e)},networkError:e=>\"network error\"+(e?\" (\"+e+\")\":\"\"),optionBelowMinimum:(e,t,n)=>'Config option \"'+e+'\" was set to '+t+\", changing to minimum value of \"+n,streamClosing:function(){return\"Closing stream connection\"},streamConnecting:function(e){return\"Opening stream connection to \"+e},streamError:function(e,t){return\"Error on stream connection: \"+H(e)+\", will continue retrying after \"+t+\" milliseconds.\"},tagValueTooLong:e=>`Value of \"${e}\" was longer than 64 characters and was discarded.`,unknownCustomEventKey:function(e){return'Custom event \"'+e+'\" does not exist'},unknownOption:e=>'Ignoring unknown config option \"'+e+'\"',contextNotSpecified:function(){return\"No context specified.\"+M},unrecoverableStreamError:e=>`Error on stream connection ${H(e)}, giving up permanently`,wrongOptionType:(e,t,n)=>'Config option \"'+e+'\" should be of type '+t+\", got \"+n+\", using default value\",wrongOptionTypeBoolean:(e,t)=>'Config option \"'+e+'\" should be a boolean, got '+t+\", converting to boolean\"};const{validateLogger:z}=V,K={baseUrl:{default:\"https://app.launchdarkly.com\"},streamUrl:{default:\"https://clientstream.launchdarkly.com\"},eventsUrl:{default:\"https://events.launchdarkly.com\"},sendEvents:{default:!0},streaming:{type:\"boolean\"},sendLDHeaders:{default:!0},requestHeaderTransform:{type:\"function\"},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributes:{default:[]},bootstrap:{type:\"string|object\"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:\"string\"},wrapperVersion:{type:\"string\"},stateProvider:{type:\"object\"},application:{validator:function(e,t,n){const r={};t.id&&(r.id=_(`${e}.id`,t.id,n));t.version&&(r.version=_(`${e}.version`,t.version,n));return r}},inspectors:{default:[]},hooks:{default:[]},plugins:{default:[]}},J=/^(\\w|\\.|-)+$/;function B(e){return e&&e.replace(/\\/+$/,\"\")}function _(e,t,n){if(\"string\"==typeof t&&t.match(J)){if(!(t.length>64))return t;n.warn(q.tagValueTooLong(e))}else n.warn(q.invalidTagValue(e))}var W={baseOptionDefs:K,validate:function(e,t,n,r){const o=C.extend({logger:{default:r}},K,n),i={};function a(e){C.onNextTick(()=>{t&&t.maybeReportError(new s.LDInvalidArgumentError(e))})}let c=C.extend({},e||{});return function(e){const t=e;Object.keys(i).forEach(e=>{if(void 0!==t[e]){const n=i[e];r&&r.warn(q.deprecated(e,n)),n&&(void 0===t[n]&&(t[n]=t[e]),delete t[e])}})}(c),c=function(e){const t=C.extend({},e);return Object.keys(o).forEach(e=>{void 0!==t[e]&&null!==t[e]||(t[e]=o[e]&&o[e].default)}),t}(c),c=function(e){const t=C.extend({},e),n=e=>{if(null===e)return\"any\";if(void 0===e)return;if(Array.isArray(e))return\"array\";const t=typeof e;return\"boolean\"===t||\"string\"===t||\"number\"===t||\"function\"===t?t:\"object\"};return Object.keys(e).forEach(i=>{const s=e[i];if(null!=s){const c=o[i];if(void 0===c)a(q.unknownOption(i));else{const o=c.type||n(c.default),u=c.validator;if(u){const n=u(i,e[i],r);void 0!==n?t[i]=n:delete t[i]}else if(\"any\"!==o){const e=o.split(\"|\"),r=n(s);e.indexOf(r)<0?\"boolean\"===o?(t[i]=!!s,a(q.wrongOptionTypeBoolean(i,r))):(a(q.wrongOptionType(i,o,r)),t[i]=c.default):\"number\"===r&&void 0!==c.minimum&&s<c.minimum&&(a(q.optionBelowMinimum(i,s,c.minimum)),t[i]=c.minimum)}}}}),t.baseUrl=B(t.baseUrl),t.streamUrl=B(t.streamUrl),t.eventsUrl=B(t.eventsUrl),t}(c),z(c.logger),c},getTags:function(e){const t={};return e&&(e.application&&void 0!==e.application.id&&null!==e.application.id&&(t[\"application-id\"]=[e.application.id]),e.application&&void 0!==e.application.version&&null!==e.application.id&&(t[\"application-version\"]=[e.application.version])),t}};const{getLDUserAgentString:G}=C;var X={getLDHeaders:function(e,t){if(t&&!t.sendLDHeaders)return{};const n={};n[e.userAgentHeaderName||\"User-Agent\"]=G(e),t&&t.wrapperName&&(n[\"X-LaunchDarkly-Wrapper\"]=t.wrapperVersion?t.wrapperName+\"/\"+t.wrapperVersion:t.wrapperName);const r=W.getTags(t),o=Object.keys(r);return o.length&&(n[\"x-launchdarkly-tags\"]=o.sort().map(e=>Array.isArray(r[e])?r[e].sort().map(t=>`${e}/${t}`):[`${e}/${r[e]}`]).reduce((e,t)=>e.concat(t),[]).join(\" \")),n},transformHeaders:function(e,t){return t&&t.requestHeaderTransform?t.requestHeaderTransform({...e}):e}};const{randomUuidV4:Q}=N,{getLDHeaders:Y,transformHeaders:Z}=X;var ee=function(e,t,n){const r=C.extend({\"Content-Type\":\"application/json\"},Y(e,n)),o={};return o.sendEvents=(t,o,i)=>{if(!e.httpRequest)return Promise.resolve();const a=JSON.stringify(t),c=i?null:Q();return function t(u){const l=i?r:C.extend({},r,{\"X-LaunchDarkly-Event-Schema\":\"4\",\"X-LaunchDarkly-Payload-ID\":c});return e.httpRequest(\"POST\",o,Z(l,n),a).promise.then(e=>{if(e)return e.status>=400&&s.isHttpErrorRecoverable(e.status)&&u?t(!1):function(e){const t={status:e.status},n=e.header(\"date\");if(n){const e=Date.parse(n);e&&(t.serverTime=e)}return t}(e)}).catch(()=>u?t(!1):Promise.reject())}(!0).catch(()=>{})},o};var te=function e(t,n=[]){if(null===t||\"object\"!=typeof t)return JSON.stringify(t);if(n.includes(t))throw new Error(\"Cycle detected\");if(Array.isArray(t)){return`[${t.map(r=>e(r,[...n,t])).map(e=>void 0===e?\"null\":e).join(\",\")}]`}return`{${Object.keys(t).sort().map(r=>{const o=e(t[r],[...n,t]);if(void 0!==o)return`${JSON.stringify(r)}:${o}`}).filter(e=>void 0!==e).join(\",\")}}`};const{commonBasicLogger:ne}=V;function re(e){return\"string\"==typeof e&&\"kind\"!==e&&e.match(/^(\\w|\\.|-)+$/)}function oe(e){return e.includes(\"%\")||e.includes(\":\")?e.replace(/%/g,\"%25\").replace(/:/g,\"%3A\"):e}var ie={checkContext:function(e,t){if(e){if(t&&(void 0===e.kind||null===e.kind))return void 0!==e.key&&null!==e.key;const n=e.key,r=void 0===e.kind?\"user\":e.kind,o=re(r),i=\"multi\"===r||null!=n&&\"\"!==n;if(\"multi\"===r){const t=Object.keys(e).filter(e=>\"kind\"!==e);return i&&t.every(e=>re(e))&&t.every(t=>{const n=e[t].key;return null!=n&&\"\"!==n})}return i&&o}return!1},getContextKeys:function(e,t=ne()){if(!e)return;const n={},{kind:r,key:o}=e;switch(r){case void 0:n.user=`${o}`;break;case\"multi\":Object.entries(e).filter(([e])=>\"kind\"!==e).forEach(([e,t])=>{t&&t.key&&(n[e]=t.key)});break;case null:t.warn(`null is not a valid context kind: ${e}`);break;case\"\":t.warn(`'' is not a valid context kind: ${e}`);break;default:n[r]=`${o}`}return n},getContextKinds:function(e){return e?null===e.kind||void 0===e.kind?[\"user\"]:\"multi\"!==e.kind?[e.kind]:Object.keys(e).filter(e=>\"kind\"!==e):[]},getCanonicalKey:function(e){if(e){if((void 0===e.kind||null===e.kind||\"user\"===e.kind)&&e.key)return e.key;if(\"multi\"!==e.kind&&e.key)return`${e.kind}:${oe(e.key)}`;if(\"multi\"===e.kind)return Object.keys(e).sort().filter(e=>\"kind\"!==e).map(t=>`${t}:${oe(e[t].key)}`).join(\":\")}}};const{getContextKinds:ae}=ie;var se=function(){const e={};let t=0,n=0,r={},o={};return e.summarizeEvent=e=>{if(\"feature\"===e.kind){const i=e.key+\":\"+(null!==e.variation&&void 0!==e.variation?e.variation:\"\")+\":\"+(null!==e.version&&void 0!==e.version?e.version:\"\"),a=r[i];let s=o[e.key];s||(s=new Set,o[e.key]=s),function(e){return e.context?ae(e.context):e.contextKeys?Object.keys(e.contextKeys):[]}(e).forEach(e=>s.add(e)),a?a.count=a.count+1:r[i]={count:1,key:e.key,version:e.version,variation:e.variation,value:e.value,default:e.default},(0===t||e.creationDate<t)&&(t=e.creationDate),e.creationDate>n&&(n=e.creationDate)}},e.getSummary=()=>{const e={};let i=!0;for(const t of Object.values(r)){let n=e[t.key];n||(n={default:t.default,counters:[],contextKinds:[...o[t.key]]},e[t.key]=n);const r={value:t.value,count:t.count};void 0!==t.variation&&null!==t.variation&&(r.variation=t.variation),void 0!==t.version&&null!==t.version?r.version=t.version:r.unknown=!0,n.counters.push(r),i=!1}return i?null:{startDate:t,endDate:n,features:e,kind:\"summary\"}},e.clearSummary=()=>{t=0,n=0,r={},o={}},e};var ce=function(e){let t={},n={};return{summarizeEvent:function(e){if(\"feature\"===e.kind){const r=te(e.context);if(!r)return;let o=t[r];o||(t[r]=se(),o=t[r],n[r]=e.context),o.summarizeEvent(e)}},getSummaries:function(){const r=t,o=n;return t={},n={},Object.entries(r).map(([t,n])=>{const r=n.getSummary();return r.context=e.filter(o[t]),r})}}};function ue(e){return e.replace(/~/g,\"~0\").replace(/\\//g,\"~1\")}function le(e){return(e.startsWith(\"/\")?e.substring(1):e).split(\"/\").map(e=>e.indexOf(\"~\")>=0?e.replace(/~1/g,\"/\").replace(/~0/g,\"~\"):e)}function de(e){return!e.startsWith(\"/\")}function fe(e,t){const n=de(e),r=de(t);if(n&&r)return e===t;if(n){const n=le(t);return 1===n.length&&e===n[0]}if(r){const n=le(e);return 1===n.length&&t===n[0]}return e===t}function ge(e){return`/${ue(e)}`}var ve={cloneExcluding:function(e,t){const n=[],r={},o=[];for(n.push(...Object.keys(e).map(t=>({key:t,ptr:ge(t),source:e,parent:r,visited:[e]})));n.length;){const e=n.pop();if(t.some(t=>fe(t,e.ptr)))o.push(e.ptr);else{const t=e.source[e.key];if(null===t)e.parent[e.key]=t;else if(Array.isArray(t))e.parent[e.key]=[...t];else if(\"object\"==typeof t){if(e.visited.includes(t))continue;e.parent[e.key]={},n.push(...Object.keys(t).map(n=>{return{key:n,ptr:(r=e.ptr,o=ue(n),`${r}/${o}`),source:t,parent:e.parent[e.key],visited:[...e.visited,t]};var r,o}))}else e.parent[e.key]=t}}return{cloned:r,excluded:o.sort()}},compare:fe,literalToReference:ge};var pe=function(e){const t={},n=e.allAttributesPrivate,r=e.privateAttributes||[],o=[\"key\",\"kind\",\"_meta\",\"anonymous\"],i=[\"name\",\"ip\",\"firstName\",\"lastName\",\"email\",\"avatar\",\"country\"],a=(e,t)=>{if(\"object\"!=typeof e||null===e||Array.isArray(e))return;const{cloned:i,excluded:a}=ve.cloneExcluding(e,((e,t)=>(n||t&&e.anonymous?Object.keys(e):[...r,...e._meta&&e._meta.privateAttributes||[]]).filter(e=>!o.some(t=>ve.compare(e,t))))(e,t));return i.key=String(i.key),a.length&&(i._meta||(i._meta={}),i._meta.redactedAttributes=a),i._meta&&(delete i._meta.privateAttributes,0===Object.keys(i._meta).length&&delete i._meta),void 0!==i.anonymous&&(i.anonymous=!!i.anonymous),i};return t.filter=(e,t=!1)=>void 0===e.kind||null===e.kind?a((e=>{const t={...e.custom||{},kind:\"user\",key:e.key};void 0!==e.anonymous&&(t.anonymous=!!e.anonymous);for(const n of i)delete t[n],void 0!==e[n]&&null!==e[n]&&(t[n]=String(e[n]));return void 0!==e.privateAttributeNames&&null!==e.privateAttributeNames&&(t._meta=t._meta||{},t._meta.privateAttributes=e.privateAttributeNames.map(e=>e.startsWith(\"/\")?ve.literalToReference(e):e)),t})(e),t):\"multi\"===e.kind?((e,t)=>{const n={kind:e.kind},r=Object.keys(e);for(const o of r)if(\"kind\"!==o){const r=a(e[o],t);r&&(n[o]=r)}return n})(e,t):a(e,t),t};const{getContextKeys:me}=ie;var he=function(e,t,n,r=null,o=null,i=null){const a={},c=i||ee(e,n,t),u=C.appendUrlPath(t.eventsUrl,\"/events/bulk/\"+n),l=pe(t),d=ce(l),f=t.samplingInterval,g=t.eventCapacity,v=t.flushInterval,p=t.logger;let m,h=[],y=0,w=!1,k=!1;function b(){return 0===f||0===Math.floor(Math.random()*f)}function E(e){const t=C.extend({},e);return\"identify\"===e.kind||\"feature\"===e.kind||\"custom\"===e.kind?t.context=l.filter(e.context):(t.contextKeys=me(e.context,p),delete t.context),\"feature\"===e.kind&&(delete t.trackEvents,delete t.debugEventsUntilDate),t}function D(e){h.length<g?(h.push(e),k=!1):(k||(k=!0,p.warn(q.eventCapacityExceeded())),r&&r.incrementDroppedEvents())}return a.enqueue=function(e){if(w)return;let t=!1,n=!1;var r;if(d.summarizeEvent(e),\"feature\"===e.kind?b()&&(t=!!e.trackEvents,n=!!(r=e).debugEventsUntilDate&&r.debugEventsUntilDate>y&&r.debugEventsUntilDate>(new Date).getTime()):t=b(),t&&D(E(e)),n){const t=C.extend({},e,{kind:\"debug\"});t.context=l.filter(t.context),delete t.trackEvents,delete t.debugEventsUntilDate,D(t)}},a.flush=async function(){if(w)return Promise.resolve();const e=h;return d.getSummaries().forEach(t=>{Object.keys(t.features).length&&e.push(t)}),r&&r.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(h=[],p.debug(q.debugPostingEvents(e.length)),c.sendEvents(e,u).then(e=>{e&&(e.serverTime&&(y=e.serverTime),s.isHttpErrorRecoverable(e.status)||(w=!0),e.status>=400&&C.onNextTick(()=>{o.maybeReportError(new s.LDUnexpectedResponseError(q.httpErrorMessage(e.status,\"event posting\",\"some events were dropped\")))}))}))},a.start=function(){const e=()=>{a.flush(),m=setTimeout(e,v)};m=setTimeout(e,v)},a.stop=function(){clearTimeout(m)},a};var ye=function(e){const t={},n={};return t.on=function(e,t,r){n[e]=n[e]||[],n[e]=n[e].concat({handler:t,context:r})},t.off=function(e,t,r){if(n[e])for(let o=0;o<n[e].length;o++)n[e][o].handler===t&&n[e][o].context===r&&(n[e]=n[e].slice(0,o).concat(n[e].slice(o+1)))},t.emit=function(e){if(!n[e])return;const t=n[e].slice(0);for(let e=0;e<t.length;e++)t[e].handler.apply(t[e].context,Array.prototype.slice.call(arguments,1))},t.getEvents=function(){return Object.keys(n)},t.getEventListenerCount=function(e){return n[e]?n[e].length:0},t.maybeReportError=function(t){t&&(n[\"error\"]?this.emit(\"error\",t):(e||console).error(t.message))},t};const we=\"ready\",ke=\"initialized\",be=\"failed\";var Ee=function(e){let t=!1,n=!1,r=null,o=null;const i=new Promise(t=>{const n=()=>{e.off(we,n),t()};e.on(we,n)}).catch(()=>{});return{getInitializationPromise:()=>o||(t?Promise.resolve():n?Promise.reject(r):(o=new Promise((t,n)=>{const r=()=>{e.off(ke,r),t()},o=t=>{e.off(be,o),n(t)};e.on(ke,r),e.on(be,o)}),o)),getReadyPromise:()=>i,signalSuccess:()=>{t||n||(t=!0,e.emit(ke),e.emit(we))},signalFailure:o=>{t||n||(n=!0,r=o,e.emit(be,o),e.emit(we)),e.maybeReportError(o)}}};var De=function(e,t,n,r){const o={};function i(){let e=\"\";const o=r.getContext();return o&&(e=n||C.btoa(JSON.stringify(o))),\"ld:\"+t+\":\"+e}return o.loadFlags=()=>e.get(i()).then(e=>{if(null==e)return null;try{let t=JSON.parse(e);if(t){const e=t.$schema;void 0===e||e<1?t=C.transformValuesToVersionedValues(t):delete t.$schema}return t}catch(e){return o.clearFlags().then(()=>null)}}),o.saveFlags=t=>{const n=C.extend({},t,{$schema:1});return e.set(i(),JSON.stringify(n))},o.clearFlags=()=>e.clear(i()),o};var xe=function(e,t){const n={};let r=!1;const o=e=>{r||(r=!0,t.warn(q.localStorageUnavailable(e)))};return n.isEnabled=()=>!!e,n.get=t=>new Promise(n=>{e?e.get(t).then(n).catch(e=>{o(e),n(void 0)}):n(void 0)}),n.set=(t,n)=>new Promise(r=>{e?e.set(t,n).then(()=>r(!0)).catch(e=>{o(e),r(!1)}):r(!1)}),n.clear=t=>new Promise(n=>{e?e.clear(t).then(()=>n(!0)).catch(e=>{o(e),n(!1)}):n(!1)}),n};const{appendUrlPath:Oe,base64URLEncode:Pe,objectHasOwnProperty:Ce}=C,{getLDHeaders:Se,transformHeaders:Ie}=X,{isHttpErrorRecoverable:Fe}=s;var Te=function(e,t,n,r){const o=t.streamUrl,i=t.logger,a={},s=Oe(o,\"/eval/\"+n),c=t.useReport,u=t.evaluationReasons,l=t.streamReconnectDelay,d=Se(e,t);let f,g=!1,v=null,p=null,m=null,h=null,y=null,w=0;function k(){const e=(t=function(){const e=l*Math.pow(2,w);return e>3e4?3e4:e}(),t-Math.trunc(.5*Math.random()*t));var t;return w+=1,e}function b(e){if(e.status&&\"number\"==typeof e.status&&!Fe(e.status))return x(),i.error(q.unrecoverableStreamError(e)),void(p&&(clearTimeout(p),p=null));const t=k();g||(i.warn(q.streamError(e,t)),g=!0),O(!1),x(),E(t)}function E(e){p||(e?p=setTimeout(D,e):D())}function D(){let r;p=null;let a=\"\";const l={headers:d,readTimeoutMillis:3e5};if(e.eventSourceFactory){null!=h&&(a=\"h=\"+h),c?e.eventSourceAllowsReport?(r=s,l.method=\"REPORT\",l.headers[\"Content-Type\"]=\"application/json\",l.body=JSON.stringify(m)):(r=Oe(o,\"/ping/\"+n),a=\"\"):r=s+\"/\"+Pe(JSON.stringify(m)),l.headers=Ie(l.headers,t),u&&(a=a+(a?\"&\":\"\")+\"withReasons=true\"),r=r+(a?\"?\":\"\")+a,x(),i.info(q.streamConnecting(r)),f=(new Date).getTime(),v=e.eventSourceFactory(r,l);for(const e in y)Ce(y,e)&&v.addEventListener(e,y[e]);v.onerror=b,v.onopen=()=>{w=0}}}function x(){v&&(i.info(q.streamClosing()),v.close(),v=null)}function O(e){f&&r&&r.recordStreamInit(f,!e,(new Date).getTime()-f),f=null}return a.connect=function(e,t,n){m=e,h=t,y={};for(const e in n||{})y[e]=function(t){g=!1,O(!0),n[e]&&n[e](t)};E()},a.disconnect=function(){clearTimeout(p),p=null,x()},a.isConnected=function(){return!!(v&&e.eventSourceIsActive&&e.eventSourceIsActive(v))},a};var Le=function(e){let t,n,r,o;const i={addPromise:(i,a)=>{t=i,n&&n(),n=a,i.then(n=>{t===i&&(r(n),e&&e())},n=>{t===i&&(o(n),e&&e())})}};return i.resultPromise=new Promise((e,t)=>{r=e,o=t}),i};const{transformHeaders:je,getLDHeaders:Ue}=X,Re=\"application/json\";var Ae=function(e,t,n){const r=t.baseUrl,o=t.useReport,i=t.evaluationReasons,a=t.logger,c={},u={};function l(n,r){if(!e.httpRequest)return new Promise((e,t)=>{t(new s.LDFlagFetchError(q.httpUnavailable()))});const o=r?\"REPORT\":\"GET\",i=Ue(e,t);r&&(i[\"Content-Type\"]=Re);let a=u[n];a||(a=Le(()=>{delete u[n]}),u[n]=a);const c=e.httpRequest(o,n,je(i,t),r),l=c.promise.then(e=>{if(200===e.status){if(e.header(\"content-type\")&&e.header(\"content-type\").substring(0,16)===Re)return JSON.parse(e.body);{const t=q.invalidContentType(e.header(\"content-type\")||\"\");return Promise.reject(new s.LDFlagFetchError(t))}}return Promise.reject(function(e){return 404===e.status?new s.LDInvalidEnvironmentIdError(q.environmentNotFound()):new s.LDFlagFetchError(q.errorFetchingFlags(e.statusText||String(e.status)))}(e))},e=>Promise.reject(new s.LDFlagFetchError(q.networkError(e))));return a.addPromise(l,()=>{c.cancel&&c.cancel()}),a.resultPromise}return c.fetchJSON=function(e){return l(C.appendUrlPath(r,e),null)},c.fetchFlagSettings=function(e,t){let s,c,u,d=\"\";return o?(c=[r,\"/sdk/evalx/\",n,\"/context\"].join(\"\"),u=JSON.stringify(e)):(s=C.base64URLEncode(JSON.stringify(e)),c=[r,\"/sdk/evalx/\",n,\"/contexts/\",s].join(\"\")),t&&(d=\"h=\"+t),i&&(d=d+(d?\"&\":\"\")+\"withReasons=true\"),c=c+(d?\"?\":\"\")+d,a.debug(q.debugPolling(c)),l(c,u)},c};var Ne=function(e,t){const n={};let r;return n.setContext=function(e){r=C.sanitizeContext(e),r&&t&&t(C.clone(r))},n.getContext=function(){return r?C.clone(r):null},e&&n.setContext(e),n};const{randomUuidV4:$e}=N,{getContextKinds:Ve}=ie;var He=function(e){function t(e){return null==e||\"user\"===e?\"ld:$anonUserId\":`ld:$contextKey:${e}`}function n(n,r){return null!==r.key&&void 0!==r.key?(r.key=r.key.toString(),Promise.resolve(r)):r.anonymous?function(n){return e.get(t(n))}(n).then(o=>{if(o)return r.key=o,r;{const o=$e();return r.key=o,function(n,r){return e.set(t(r),n)}(o,n).then(()=>r)}}):Promise.reject(new s.LDInvalidUserError(q.invalidContext()))}this.processContext=e=>{if(!e)return Promise.reject(new s.LDInvalidUserError(q.contextNotSpecified()));const t=C.clone(e);if(\"multi\"===e.kind){const e=Ve(t);return Promise.all(e.map(e=>n(e,t[e]))).then(()=>t)}return n(e.kind,t)}};const{randomUuidV4:Me}=N,{baseOptionDefs:qe}=W,{appendUrlPath:ze}=C;var Ke={DiagnosticId:function(e){const t={diagnosticId:Me()};return e&&(t.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),t},DiagnosticsAccumulator:function(e){let t,n,r,o;function i(e){t=e,n=0,r=0,o=[]}return i(e),{getProps:()=>({dataSinceDate:t,droppedEvents:n,eventsInLastBatch:r,streamInits:o}),setProps:e=>{t=e.dataSinceDate,n=e.droppedEvents||0,r=e.eventsInLastBatch||0,o=e.streamInits||[]},incrementDroppedEvents:()=>{n++},setEventsInLastBatch:e=>{r=e},recordStreamInit:(e,t,n)=>{const r={timestamp:e,failed:t,durationMillis:n};o.push(r)},reset:i}},DiagnosticsManager:function(e,t,n,r,o,i,a){const s=!!e.diagnosticUseCombinedEvent,c=\"ld:\"+o+\":$diagnostics\",u=ze(i.eventsUrl,\"/events/diagnostic/\"+o),l=i.diagnosticRecordingInterval,d=n;let f,g,v=!!i.streaming;const p={};function m(){return{sdk:w(),configuration:k(),platform:e.diagnosticPlatformData}}function h(e){i.logger&&i.logger.debug(q.debugPostingDiagnosticEvent(e)),r.sendEvents(e,u,!0).then(()=>{}).catch(()=>{})}function y(){h(function(){const e=(new Date).getTime();let t={kind:s?\"diagnostic-combined\":\"diagnostic\",id:a,creationDate:e,...d.getProps()};return s&&(t={...t,...m()}),d.reset(e),t}()),g=setTimeout(y,l),f=(new Date).getTime(),s&&function(){if(t.isEnabled()){const e={...d.getProps()};t.set(c,JSON.stringify(e))}}()}function w(){const t={...e.diagnosticSdkData};return i.wrapperName&&(t.wrapperName=i.wrapperName),i.wrapperVersion&&(t.wrapperVersion=i.wrapperVersion),t}function k(){return{customBaseURI:i.baseUrl!==qe.baseUrl.default,customStreamURI:i.streamUrl!==qe.streamUrl.default,customEventsURI:i.eventsUrl!==qe.eventsUrl.default,eventsCapacity:i.eventCapacity,eventsFlushIntervalMillis:i.flushInterval,reconnectTimeMillis:i.streamReconnectDelay,streamingDisabled:!v,allAttributesPrivate:!!i.allAttributesPrivate,diagnosticRecordingIntervalMillis:i.diagnosticRecordingInterval,usingSecureMode:!!i.hash,bootstrapMode:!!i.bootstrap,fetchGoalsDisabled:!i.fetchGoals,sendEventsOnlyForVariation:!!i.sendEventsOnlyForVariation}}return p.start=()=>{s?function(e){if(!t.isEnabled())return e(!1);t.get(c).then(t=>{if(t)try{const e=JSON.parse(t);d.setProps(e),f=e.dataSinceDate}catch(e){}e(!0)}).catch(()=>{e(!1)})}(e=>{if(e){const e=(f||0)+l,t=(new Date).getTime();t>=e?y():g=setTimeout(y,e-t)}else 0===Math.floor(4*Math.random())?y():g=setTimeout(y,l)}):(h({kind:\"diagnostic-init\",id:a,creationDate:d.getProps().dataSinceDate,...m()}),g=setTimeout(y,l))},p.stop=()=>{g&&clearTimeout(g)},p.setStreaming=e=>{v=e},p}};var Je=function(e,t){let n=!1;const r={type:e.type,name:e.name,synchronous:e.synchronous,method:(...o)=>{try{e.method(...o)}catch{n||(n=!0,t.warn(q.inspectorMethodError(r.type,r.name)))}}};return r};const{onNextTick:Be}=C,_e={flagUsed:\"flag-used\",flagDetailsChanged:\"flag-details-changed\",flagDetailChanged:\"flag-detail-changed\",clientIdentityChanged:\"client-identity-changed\"};Object.freeze(_e);var We={InspectorTypes:_e,InspectorManager:function(e,t){const n={},r={[_e.flagUsed]:[],[_e.flagDetailsChanged]:[],[_e.flagDetailChanged]:[],[_e.clientIdentityChanged]:[]},o={[_e.flagUsed]:[],[_e.flagDetailsChanged]:[],[_e.flagDetailChanged]:[],[_e.clientIdentityChanged]:[]},i=e&&e.map(e=>Je(e,t));return i&&i.forEach(e=>{Object.prototype.hasOwnProperty.call(r,e.type)&&!e.synchronous?r[e.type].push(e):Object.prototype.hasOwnProperty.call(o,e.type)&&e.synchronous?o[e.type].push(e):t.warn(q.invalidInspector(e.type,e.name))}),n.hasListeners=e=>r[e]&&r[e].length||o[e]&&o[e].length,n.onFlagUsed=(e,t,n)=>{const i=_e.flagUsed;o[i].length&&o[i].forEach(r=>r.method(e,t,n)),r[i].length&&Be(()=>{r[i].forEach(r=>r.method(e,t,n))})},n.onFlags=e=>{const t=_e.flagDetailsChanged;o[t].length&&o[t].forEach(t=>t.method(e)),r[t].length&&Be(()=>{r[t].forEach(t=>t.method(e))})},n.onFlagChanged=(e,t)=>{const n=_e.flagDetailChanged;o[n].length&&o[n].forEach(n=>n.method(e,t)),r[n].length&&Be(()=>{r[n].forEach(n=>n.method(e,t))})},n.onIdentityChanged=e=>{const t=_e.clientIdentityChanged;o[t].length&&o[t].forEach(t=>t.method(e)),r[t].length&&Be(()=>{r[t].forEach(t=>t.method(e))})},n}};const{LDTimeoutError:Ge}=s;var Xe=function(e,t){return new Promise((n,r)=>{setTimeout(()=>{r(new Ge(`${t} timed out after ${e} seconds.`))},1e3*e)})};const Qe=\"unknown hook\";function Ye(e,t,n,r,o){try{return r()}catch(r){return e?.error(`An error was encountered in \"${t}\" of the \"${n}\" hook: ${r}`),o}}function Ze(e,t){try{return t.getMetadata().name||Qe}catch{return e.error(\"Exception thrown getting metadata for hook. Unable to get hook name.\"),Qe}}var et=function(e,t){const n=t?[...t]:[];return{withEvaluation:function(t,r,o,i){if(0===n.length)return i();const a=[...n],s={flagKey:t,context:r,defaultValue:o},c=function(e,t,n){return t.map(t=>Ye(e,\"beforeEvaluation\",Ze(e,t),()=>t?.beforeEvaluation?.(n,{})??{},{}))}(e,a,s),u=i();return function(e,t,n,r,o){for(let i=t.length-1;i>=0;i-=1){const a=t[i],s=r[i];Ye(e,\"afterEvaluation\",Ze(e,a),()=>a?.afterEvaluation?.(n,s,o)??{},{})}}(e,a,s,c,u),u},identify:function(t,r){const o=[...n],i={context:t,timeout:r},a=function(e,t,n){return t.map(t=>Ye(e,\"beforeIdentify\",Ze(e,t),()=>t?.beforeIdentify?.(n,{})??{},{}))}(e,o,i);return t=>{!function(e,t,n,r,o){for(let i=t.length-1;i>=0;i-=1){const a=t[i],s=r[i];Ye(e,\"afterIdentify\",Ze(e,a),()=>a?.afterIdentify?.(n,s,o)??{},{})}}(e,o,i,a,t)}},addHook:function(e){n.push(e)},afterTrack:function(t){if(0===n.length)return;const r=[...n];!function(e,t,n){for(let r=t.length-1;r>=0;r-=1){const o=t[r];Ye(e,\"afterTrack\",Ze(e,o),()=>o?.afterTrack?.(n),void 0)}}(e,r,t)}}};var tt=function(){let e,t={};function n(n){return e&&C.objectHasOwnProperty(e,n)&&e[n]?e[n]:t&&C.objectHasOwnProperty(t,n)&&t[n]&&!t[n].deleted?t[n]:null}return{clearAllOverrides:function(){if(!e)return{};const t={...e};return e=void 0,t},get:n,getFlagOverrides:function(){return e||{}},getFlags:function(){return t},getFlagsWithOverrides:function(){const r={};for(const e in t){const t=n(e);t&&(r[e]=t)}if(e)for(const t in e){const e=n(t);e&&(r[t]=e)}return r},removeOverride:function(t){e&&e[t]&&(delete e[t],0===Object.keys(e).length&&(e=void 0))},setFlags:function(e){t={...e}},setOverride:function(t,n){e||(e={}),e[t]={value:n}}}};const nt=\"unknown plugin\";function rt(e,t){try{return t.getMetadata().name||nt}catch(t){return e.error(\"Exception thrown getting metadata for plugin. Unable to get plugin name.\"),nt}}var ot={getPluginHooks:function(e,t,n){const r=[];return n.forEach(n=>{try{const o=n.getHooks?.(t);void 0===o?e.error(`Plugin ${rt(e,n)} returned undefined from getHooks.`):o&&o.length>0&&r.push(...o)}catch(t){e.error(`Exception thrown getting hooks for plugin ${rt(e,n)}. Unable to get hooks.`)}}),r},registerPlugins:function(e,t,n,r){r.forEach(r=>{try{r.register(n,t)}catch(t){e.error(`Exception thrown registering plugin ${rt(e,r)}.`)}})},registerPluginsForDebugOverride:function(e,t,n){n.forEach(n=>{try{n.registerDebug?.(t)}catch(t){e.error(`Exception thrown registering debug override with plugin ${rt(e,n)}.`)}})},createPluginEnvironment:function(e,t,n){const r={};e.userAgent&&(r.name=e.userAgent),e.version&&(r.version=e.version),n.wrapperName&&(r.wrapperName=n.wrapperName),n.wrapperVersion&&(r.wrapperVersion=n.wrapperVersion);const o={};n.application&&(n.application.name&&(o.name=n.application.name),n.application.version&&(o.version=n.application.version));const i={sdk:r,clientSideId:t};return Object.keys(o).length>0&&(i.application=o),i}};const{commonBasicLogger:it}=V,{checkContext:at,getContextKeys:st}=ie,{InspectorTypes:ct,InspectorManager:ut}=We,{getPluginHooks:lt,registerPlugins:dt,registerPluginsForDebugOverride:ft,createPluginEnvironment:gt}=ot,vt=\"change\",pt=\"internal-change\";var mt={initialize:function(e,t,n,r,o){const i=function(){if(n&&n.logger)return n.logger;return o&&o.logger&&o.logger.default||it(\"warn\")}(),a=ye(i),c=Ee(a),u=W.validate(n,a,o,i),l=ut(u.inspectors,i),d=u.sendEvents;let f=e,g=u.hash;const v=[...u.plugins],p=gt(r,e,u),m=lt(i,p,v),h=et(i,[...u.hooks,...m]),y=xe(r.localStorage,i),w=ee(r,f,u),k=u.sendEvents&&!u.diagnosticOptOut,b=k?Ke.DiagnosticId(f):null,E=k?Ke.DiagnosticsAccumulator((new Date).getTime()):null,D=k?Ke.DiagnosticsManager(r,y,E,w,f,u,b):null,x=Te(r,u,f,E),O=u.eventProcessor||he(r,u,f,E,a,w),P=Ae(r,u,f),S=tt();let I,F,T,L=u.streaming,j=!1,U=!1,R=!0;const A=u.stateProvider,N=Ne(null,function(e){(function(e){if(A)return;e&&H({kind:\"identify\",context:e,creationDate:(new Date).getTime()})})(e),l.hasListeners(ct.clientIdentityChanged)&&l.onIdentityChanged(N.getContext())}),$=new He(y),V=y.isEnabled()?De(y,f,g,N):null;function H(e){f&&(A&&A.enqueueEvent&&A.enqueueEvent(e)||(e.context?(R=!1,!d||U||r.isDoNotTrack()||(i.debug(q.debugEnqueueingEvent(e.kind)),O.enqueue(e))):R&&(i.warn(q.eventWithoutContext()),R=!1)))}function M(e,t){l.hasListeners(ct.flagDetailChanged)&&l.onFlagChanged(e.key,_(t))}function z(){l.hasListeners(ct.flagDetailsChanged)&&l.onFlags(Object.entries(S.getFlagsWithOverrides()).map(([e,t])=>({key:e,detail:_(t)})).reduce((e,t)=>(e[t.key]=t.detail,e),{}))}function K(e,t,n,r){const o=N.getContext(),i=new Date,a={kind:\"feature\",key:e,context:o,value:t?t.value:null,variation:t?t.variationIndex:null,default:n,creationDate:i.getTime()},s=S.getFlags()[e];s&&(a.version=s.flagVersion?s.flagVersion:s.version,a.trackEvents=s.trackEvents,a.debugEventsUntilDate=s.debugEventsUntilDate),(r||s&&s.trackReason)&&t&&(a.reason=t.reason),H(a)}function J(e){return at(e,!1)?Promise.resolve(e):Promise.reject(new s.LDInvalidUserError(q.invalidContext()))}function B(e,t,n,r,o,i){let a;const s=S.get(e);return s?(a=_(s),null!==s.value&&void 0!==s.value||(a.value=t)):a={value:t,variationIndex:null,reason:{kind:\"ERROR\",errorKind:\"FLAG_NOT_FOUND\"}},n&&(o||s?.prerequisites?.forEach(e=>{B(e,void 0,n,!1,!1,!1)}),K(e,a,t,r)),!o&&i&&function(e,t){l.hasListeners(ct.flagUsed)&&l.onFlagUsed(e,t,N.getContext())}(e,a),a}function _(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function G(){if(F=!0,!N.getContext())return;const e=e=>{try{return JSON.parse(e)}catch(e){return void a.maybeReportError(new s.LDInvalidDataError(q.invalidData()))}};x.connect(N.getContext(),g,{ping:function(){i.debug(q.debugStreamPing());const e=N.getContext();P.fetchFlagSettings(e,g).then(t=>{C.deepEquals(e,N.getContext())&&Q(t||{})}).catch(e=>{a.maybeReportError(new s.LDFlagFetchError(q.errorFetchingFlags(e)))})},put:function(t){const n=e(t.data);n&&(i.debug(q.debugStreamPut()),Q(n))},patch:function(t){const n=e(t.data);if(!n)return;const r=S.getFlags(),o=r[n.key];if(!o||!o.version||!n.version||o.version<n.version){i.debug(q.debugStreamPatch(n.key));const e={},t=C.extend({},n);delete t.key,r[n.key]=t,S.setFlags(r);const a=_(t);e[n.key]=o?{previous:o.value,current:a}:{current:a},M(n,t),Y(e)}else i.debug(q.debugStreamPatchIgnored(n.key))},delete:function(t){const n=e(t.data);if(!n)return;const r=S.getFlags();if(!r[n.key]||r[n.key].version<n.version){i.debug(q.debugStreamDelete(n.key));const e={};r[n.key]&&!r[n.key].deleted&&(e[n.key]={previous:r[n.key].value}),r[n.key]={version:n.version,deleted:!0},S.setFlags(r),M(n,r[n.key]),Y(e)}else i.debug(q.debugStreamDeleteIgnored(n.key))}})}function X(){F&&(x.disconnect(),F=!1)}function Q(e){const t={};if(!e)return Promise.resolve();const n=S.getFlags();for(const r in n)C.objectHasOwnProperty(n,r)&&n[r]&&(e[r]&&!C.deepEquals(e[r].value,n[r].value)?t[r]={previous:n[r].value,current:_(e[r])}:e[r]&&!e[r].deleted||(t[r]={previous:n[r].value}));for(const r in e)C.objectHasOwnProperty(e,r)&&e[r]&&(!n[r]||n[r].deleted)&&(t[r]={current:_(e[r])});return S.setFlags({...e}),z(),Y(t).catch(()=>{})}function Y(e){const t=Object.keys(e);if(t.length>0){const n={};t.forEach(t=>{const r=e[t].current,o=r?r.value:void 0,i=e[t].previous;a.emit(vt+\":\"+t,o,i),n[t]=r?{current:o,previous:i}:{previous:i}}),a.emit(vt,n),a.emit(pt,S.getFlagsWithOverrides()),u.sendEventsOnlyForVariation||A||t.forEach(t=>{K(t,e[t].current)})}return I&&V?V.saveFlags(S.getFlags()):Promise.resolve()}function Z(){const e=L||T&&void 0===L;e&&!F?G():!e&&F&&X(),D&&D.setStreaming(e)}function te(e){return e===vt||e.substr(0,7)===vt+\":\"}if(\"string\"==typeof u.bootstrap&&\"LOCALSTORAGE\"===u.bootstrap.toUpperCase()&&(V?I=!0:i.warn(q.localStorageUnavailable())),\"object\"==typeof u.bootstrap&&S.setFlags(function(e){const t=Object.keys(e),n=\"$flagsState\",r=\"$valid\",o=e[n];!o&&t.length&&i.warn(q.bootstrapOldFormat()),!1===e[r]&&i.warn(q.bootstrapInvalid());const a={};return t.forEach(t=>{if(t!==n&&t!==r){let n={value:e[t]};o&&o[t]?n=C.extend(n,o[t]):n.version=0,a[t]=n}}),a}(u.bootstrap)),A){const e=A.getInitialState();e?ne(e):A.on(\"init\",ne),A.on(\"update\",function(e){e.context&&N.setContext(e.context);e.flags&&Q(e.flags)})}else(function(){if(!e)return Promise.reject(new s.LDInvalidEnvironmentIdError(q.environmentNotSpecified()));let n;return $.processContext(t).then(J).then(e=>(n=C.once(h.identify(e,void 0)),e)).then(e=>(n?.({status:\"completed\"}),N.setContext(e),\"object\"==typeof u.bootstrap?re():I?V.loadFlags().then(e=>null==e?(S.setFlags({}),P.fetchFlagSettings(N.getContext(),g).then(e=>Q(e||{})).then(re).catch(e=>{oe(new s.LDFlagFetchError(q.errorFetchingFlags(e)))})):(S.setFlags(e),C.onNextTick(re),P.fetchFlagSettings(N.getContext(),g).then(e=>Q(e)).catch(e=>a.maybeReportError(e)))):P.fetchFlagSettings(N.getContext(),g).then(e=>{S.setFlags(e||{}),z(),re()}).catch(e=>{S.setFlags({}),oe(e)}))).catch(e=>{throw n?.({status:\"error\"}),e})})().catch(oe);function ne(e){f=e.environment,N.setContext(e.context),S.setFlags({...e.flags}),C.onNextTick(re)}function re(){i.info(q.clientInitialized()),j=!0,Z(),c.signalSuccess()}function oe(e){c.signalFailure(e)}const ie={waitForInitialization:function(e=void 0){if(null!=e){if(\"number\"==typeof e)return function(e){e>5&&i.warn(\"The waitForInitialization function was called with a timeout greater than 5 seconds. We recommend a timeout of 5 seconds or less.\");const t=c.getInitializationPromise(),n=Xe(e,\"waitForInitialization\");return Promise.race([n,t]).catch(e=>{throw e instanceof s.LDTimeoutError&&i.error(`waitForInitialization error: ${e}`),e})}(e);i.warn(\"The waitForInitialization method was provided with a non-numeric timeout.\")}return i.warn(\"The waitForInitialization function was called without a timeout specified. In a future version a default timeout will be applied.\"),c.getInitializationPromise()},waitUntilReady:()=>c.getReadyPromise(),identify:function(e,t,n){if(U)return C.wrapPromiseCallback(Promise.resolve({}),n);if(A)return i.warn(q.identifyDisabled()),C.wrapPromiseCallback(Promise.resolve(C.transformVersionedValuesToValues(S.getFlagsWithOverrides())),n);let r;const o=I&&V?V.clearFlags():Promise.resolve();return C.wrapPromiseCallback(o.then(()=>$.processContext(e)).then(J).then(e=>(r=C.once(h.identify(e,void 0)),e)).then(e=>P.fetchFlagSettings(e,t).then(n=>{const r=C.transformVersionedValuesToValues(n);return N.setContext(e),g=t,n?Q(n).then(()=>r):r})).then(e=>(r?.({status:\"completed\"}),F&&G(),e)).catch(e=>(r?.({status:\"error\"}),a.maybeReportError(e),Promise.reject(e))),n)},getContext:function(){return N.getContext()},variation:function(e,t){const{value:n}=h.withEvaluation(e,N.getContext(),t,()=>B(e,t,!0,!1,!1,!0));return n},variationDetail:function(e,t){return h.withEvaluation(e,N.getContext(),t,()=>B(e,t,!0,!0,!1,!0))},track:function(e,t,n){if(\"string\"!=typeof e)return void a.maybeReportError(new s.LDInvalidEventKeyError(q.unknownCustomEventKey(e)));void 0!==n&&\"number\"!=typeof n&&i.warn(q.invalidMetricValue(typeof n)),r.customEventFilter&&!r.customEventFilter(e)&&i.warn(q.unknownCustomEventKey(e));const o=N.getContext(),c={kind:\"custom\",key:e,context:o,url:r.getCurrentUrl(),creationDate:(new Date).getTime()};o&&o.anonymous&&(c.contextKind=o.anonymous?\"anonymousUser\":\"user\"),null!=t&&(c.data=t),null!=n&&(c.metricValue=n),H(c),h.afterTrack({context:o,key:e,data:t,metricValue:n})},on:function(e,t,n){te(e)?(T=!0,j&&Z(),a.on(e,t,n)):a.on(...arguments)},off:function(e){if(a.off(...arguments),te(e)){let e=!1;a.getEvents().forEach(t=>{te(t)&&a.getEventListenerCount(t)>0&&(e=!0)}),e||(T=!1,F&&void 0===L&&X())}},setStreaming:function(e){const t=null===e?void 0:e;t!==L&&(L=t,Z())},flush:function(e){return C.wrapPromiseCallback(d?O.flush():Promise.resolve(),e)},allFlags:function(){const e={},t=S.getFlagsWithOverrides();if(!t)return e;for(const n in t)e[n]=B(n,null,!u.sendEventsOnlyForVariation,!1,!0,!1).value;return e},close:function(e){if(U)return C.wrapPromiseCallback(Promise.resolve(),e);const t=()=>{U=!0,S.setFlags({})},n=Promise.resolve().then(()=>{if(X(),D&&D.stop(),d)return O.stop(),O.flush()}).then(t).catch(t);return C.wrapPromiseCallback(n,e)},addHook:function(e){h.addHook(e)}};dt(i,p,ie,v);const ae={setOverride:function(e,t){const n={},r=S.get(e),o=r?r.value:null;if(o===t)return void i.debug(`setOverride: No change needed for ${e}, value already ${t}`);S.setOverride(e,t);const a=S.get(e),s=_(a);n[e]={previous:o,current:s},M({key:e},a),Y(n)},removeOverride:function(e){const t=S.getFlagOverrides();if(!t[e])return;const n={},r=t[e],o=S.getFlags()[e];n[e]={previous:r.value,current:o?_(o):void 0},S.removeOverride(e),M({key:e},o),Y(n)},clearAllOverrides:function(){const e=S.getFlagOverrides();if(0===Object.keys(e).length)return;const t={},n=S.getFlags();Object.keys(e).forEach(r=>{const o=e[r],i=n[r];t[r]={previous:o.value,current:i?_(i):void 0}}),S.clearAllOverrides(),Object.keys(t).length>0&&Y(t)},getAllOverrides:function(){const e=S.getFlagOverrides();if(!e)return{};const t={};return Object.keys(e).forEach(n=>{const r=e[n];r&&(t[n]=r.value)}),t}};return ft(i,ae,v),{client:ie,options:u,emitter:a,ident:N,logger:i,requestor:P,start:function(){d&&(D&&D.start(),O.start())},enqueueEvent:H,getFlagsInternal:function(){return S.getFlagsWithOverrides()},getEnvironmentId:()=>f,internalChangeEventName:pt}},commonBasicLogger:it,errors:s,messages:q,utils:C,getContextKeys:st},ht=mt.initialize,yt=mt.errors,wt=mt.messages;function kt(e,t,n){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=typeof r)return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:t+\"\"}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Et(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bt(Object(n),!0).forEach(function(t){kt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Dt=mt.commonBasicLogger;var xt=function(e){return Dt(Et({destination:console.log},e))};var Ot={promise:Promise.resolve({status:200,header:function(){return null},body:null})};function Pt(e,t,n,r,o){if(o&&!function(){var e=window.navigator&&window.navigator.userAgent;if(e){var t=e.match(/Chrom(e|ium)\\/([0-9]+)\\./);if(t)return parseInt(t[2],10)<73}return!0}())return Ot;var i=new window.XMLHttpRequest;for(var a in i.open(e,t,!o),n||{})Object.prototype.hasOwnProperty.call(n,a)&&i.setRequestHeader(a,n[a]);if(o){try{i.send(r)}catch(e){}return Ot}var s,c=new Promise(function(e,t){i.addEventListener(\"load\",function(){s||e({status:i.status,header:function(e){return i.getResponseHeader(e)},body:i.responseText})}),i.addEventListener(\"error\",function(){s||t(new Error)}),i.send(r)});return{promise:c,cancel:function(){s=!0,i.abort()}}}var Ct=e=>{if(\"string\"!=typeof e)throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")};function St(e,t,n,r){var o,i,a=((\"substring\"===e.kind||\"regex\"===e.kind)&&r.includes(\"/\")?t:t.replace(r,\"\")).replace(n,\"\");switch(e.kind){case\"exact\":i=t,o=new RegExp(\"^\"+Ct(e.url)+\"/?$\");break;case\"canonical\":i=a,o=new RegExp(\"^\"+Ct(e.url)+\"/?$\");break;case\"substring\":i=a,o=new RegExp(\".*\"+Ct(e.substring)+\".*$\");break;case\"regex\":i=a,o=new RegExp(e.pattern);break;default:return!1}return o.test(i)}function It(e,t){for(var n={},r=null,o=[],i=0;i<e.length;i++)for(var a=e[i],s=a.urls||[],c=0;c<s.length;c++)if(St(s[c],window.location.href,window.location.search,window.location.hash)){\"pageview\"===a.kind?t(\"pageview\",a):(o.push(a),t(\"click_pageview\",a));break}return o.length>0&&(r=function(e){for(var n=function(e,t){for(var n=[],r=0;r<t.length;r++)for(var o=e.target,i=t[r],a=i.selector,s=document.querySelectorAll(a);o&&s.length>0;){for(var c=0;c<s.length;c++)o===s[c]&&n.push(i);o=o.parentNode}return n}(e,o),r=0;r<n.length;r++)t(\"click\",n[r])},document.addEventListener(\"click\",r)),n.dispose=function(){document.removeEventListener(\"click\",r)},n}function Ft(e,t,n){var r,o;function i(){o&&o.dispose(),r&&r.length&&(o=It(r,a))}function a(n,r){var o=e.ident.getContext(),i={kind:n,key:r.key,data:null,url:t.getCurrentUrl(),creationDate:(new Date).getTime(),context:o};return\"click\"===n&&(i.selector=r.selector),e.enqueueEvent(i)}return e.requestor.fetchJSON(\"/sdk/goals/\"+e.getEnvironmentId()).then(function(e){e&&e.length>0&&(o=It(r=e,a),function(e,t){var n,r=window.location.href;function o(){(n=window.location.href)!==r&&(r=n,t())}!function e(t,n){t(),setTimeout(function(){e(t,n)},n)}(o,e),window.history&&window.history.pushState?window.addEventListener(\"popstate\",o):window.addEventListener(\"hashchange\",o)}(300,i)),n()}).catch(function(t){e.emitter.maybeReportError(new yt.LDUnexpectedResponseError((t&&t.message,t.message))),n()}),{}}var Tt=\"goalsReady\",Lt={fetchGoals:{default:!0},hash:{type:\"string\"},eventProcessor:{type:\"object\"},eventUrlTransformer:{type:\"function\"},disableSyncEventPost:{default:!1}};function jt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=function(e){var t,n={userAgentHeaderName:\"X-LaunchDarkly-User-Agent\",synchronousFlush:!1};if(window.XMLHttpRequest){var r=e&&e.disableSyncEventPost;n.httpRequest=function(e,t,o,i){var a=n.synchronousFlush&!r;return n.synchronousFlush=!1,Pt(e,t,o,i,a)}}n.httpAllowsPost=function(){return void 0===t&&(t=!!window.XMLHttpRequest&&\"withCredentials\"in new window.XMLHttpRequest),t},n.httpFallbackPing=function(e){(new window.Image).src=e};var o,i=e&&e.eventUrlTransformer;n.getCurrentUrl=function(){return i?i(window.location.href):window.location.href},n.isDoNotTrack=function(){var e;return 1===(e=window.navigator&&void 0!==window.navigator.doNotTrack?window.navigator.doNotTrack:window.navigator&&void 0!==window.navigator.msDoNotTrack?window.navigator.msDoNotTrack:window.doNotTrack)||!0===e||\"1\"===e||\"yes\"===e};try{window.localStorage&&(n.localStorage={get:function(e){return new Promise(function(t){t(window.localStorage.getItem(e))})},set:function(e,t){return new Promise(function(n){window.localStorage.setItem(e,t),n()})},clear:function(e){return new Promise(function(t){window.localStorage.removeItem(e),t()})}})}catch(e){n.localStorage=null}if(e&&e.useReport&&\"function\"==typeof window.EventSourcePolyfill&&window.EventSourcePolyfill.supportedOptions&&window.EventSourcePolyfill.supportedOptions.method?(n.eventSourceAllowsReport=!0,o=window.EventSourcePolyfill):(n.eventSourceAllowsReport=!1,o=window.EventSource),window.EventSource){var a=3e5;n.eventSourceFactory=function(e,t){var n=Et(Et({},{heartbeatTimeout:a,silentTimeout:a,skipDefaultHeaders:!0}),t);return new o(e,n)},n.eventSourceIsActive=function(e){return e.readyState===window.EventSource.OPEN||e.readyState===window.EventSource.CONNECTING}}return n.userAgent=\"JSClient\",n.version=\"3.9.3\",n.diagnosticSdkData={name:\"js-client-sdk\",version:\"3.9.3\"},n.diagnosticPlatformData={name:\"JS\"},n.diagnosticUseCombinedEvent=!0,n}(n),o=ht(e,t,n,r,Lt),i=o.client,a=o.options,s=o.emitter,c=new Promise(function(e){var t=s.on(Tt,function(){s.off(Tt,t),e()})});i.waitUntilGoalsReady=function(){return c},a.fetchGoals?Ft(o,r,function(){return s.emit(Tt)}):s.emit(Tt),\"complete\"!==document.readyState?window.addEventListener(\"load\",o.start):o.start();var u=function(){r.synchronousFlush=!0,i.flush().catch(function(){}),r.synchronousFlush=!1};return document.addEventListener(\"visibilitychange\",function(){\"hidden\"===document.visibilityState&&u()}),window.addEventListener(\"pagehide\",u),i}var Ut=xt,Rt=void 0,At=\"3.9.3\";var Nt={initialize:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return console&&console.warn&&console.warn(wt.deprecated(\"default export\",\"named LDClient export\")),jt(e,t,n)},version:At};export{Ut as basicLogger,Rt as createConsoleLogger,Nt as default,jt as initialize,At as version};\n//# sourceMappingURL=ldclient.es.js.map\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;\n","import*as e from\"react\";import t,{createContext as r,Component as n,useState as o,useEffect as a,useContext as i}from\"react\";import{initialize as s}from\"launchdarkly-js-client-sdk\";export*from\"launchdarkly-js-client-sdk\";import l from\"lodash.camelcase\";import c from\"hoist-non-react-statics\";const p=()=>r({flags:{},flagKeyMap:{},ldClient:void 0}),u=p(),{Provider:f,Consumer:d}=u,y={useCamelCaseFlagKeys:!0,sendEventsOnFlagRead:!0,reactContext:u},h=e=>{var t;return null!=(t=e.context)?t:e.user},g=e=>{const t={};for(const r in e)0!==r.indexOf(\"$\")&&(t[l(r)]=e[r]);return t},O=(e,t)=>{const r={};for(const n in e)t&&void 0===t[n]||(r[n]=e[n].current);return r},b=(e,t)=>{const r=e.allFlags();return t?Object.keys(t).reduce((e,n)=>(e[n]=Object.prototype.hasOwnProperty.call(r,n)?r[n]:t[n],e),{}):r};function m(e,t,r=y,n){const o=function(e,t){if(void 0===t)return e;return Object.keys(t).reduce((t,r)=>(v(e,r)&&(t[r]=e[r]),t),{})}(t,n),{useCamelCaseFlagKeys:a=!0}=r,[i,s={}]=a?function(e){const t={},r={};for(const n in e){if(0===n.indexOf(\"$\"))continue;const o=l(n);t[o]=e[n],r[o]=n}return[t,r]}(o):[o];return{flags:r.sendEventsOnFlagRead?C(e,i,s,a):i,flagKeyMap:s}}function v(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function C(e,t,r,n){return new Proxy(t,{get(t,o,a){const i=Reflect.get(t,o,a),s=n&&v(r,o)||v(t,o);if(\"symbol\"==typeof o||!s)return i;if(void 0===i)return;const l=n?r[o]:o;return e.variation(l,i)}})}g.camelCaseKeys=g;const x={wrapperName:\"react-client-sdk\",wrapperVersion:\"3.9.1\",sendEventsOnlyForVariation:!0};var j=Object.defineProperty,w=Object.defineProperties,P=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,k=(e,t,r)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,D=(e,t)=>{for(var r in t||(t={}))E.call(t,r)&&k(e,r,t[r]);if(F)for(var r of F(t))S.call(t,r)&&k(e,r,t[r]);return e},I=(e,t)=>w(e,P(t)),K=(e,t,r)=>new Promise((n,o)=>{var a=e=>{try{s(r.next(e))}catch(e){o(e)}},i=e=>{try{s(r.throw(e))}catch(e){o(e)}},s=e=>e.done?n(e.value):Promise.resolve(e.value).then(a,i);s((r=r.apply(e,t)).next())});class R extends n{constructor(e){super(e),this.getReactOptions=()=>D(D({},y),this.props.reactOptions),this.subscribeToChanges=e=>{const{flags:t}=this.props;e.on(\"change\",r=>{const n=this.getReactOptions(),o=O(r,t);Object.keys(o).length>0&&this.setState(r=>{const a=D(D({},r.unproxiedFlags),o);return D(I(D({},r),{unproxiedFlags:a}),m(e,a,n,t))})})},this.onFailed=(e,t)=>{this.setState(e=>I(D({},e),{error:t}))},this.onReady=(e,t,r)=>{const n=b(e,r);this.setState(o=>D(I(D({},o),{unproxiedFlags:n}),m(e,n,t,r)))},this.prepareLDClient=()=>K(this,null,function*(){var e;const{clientSideID:t,flags:r,options:n}=this.props;let o=yield this.props.ldClient;const a=this.getReactOptions();let i,l=this.state.unproxiedFlags;if(o)l=b(o,r);else{const c=null!=(e=h(this.props))?e:{anonymous:!0,kind:\"user\"};o=s(t,c,D(D({},x),n));try{yield o.waitForInitialization(this.props.timeout),l=b(o,r)}catch(e){i=e,(null==i?void 0:i.name.toLowerCase().includes(\"timeout\"))&&(o.on(\"failed\",this.onFailed),o.on(\"ready\",()=>{this.onReady(o,a,r)}))}}this.setState(e=>I(D(I(D({},e),{unproxiedFlags:l}),m(o,l,a,r)),{ldClient:o,error:i})),this.subscribeToChanges(o)});const{options:t}=e;if(this.state={flags:{},unproxiedFlags:{},flagKeyMap:{}},t){const{bootstrap:e}=t;if(e&&\"localStorage\"!==e){const{useCamelCaseFlagKeys:t}=this.getReactOptions();this.state={flags:t?g(e):e,unproxiedFlags:e,flagKeyMap:{}}}}}componentDidMount(){return K(this,null,function*(){const{deferInitialization:e}=this.props;e&&!h(this.props)||(yield this.prepareLDClient())})}componentDidUpdate(e){return K(this,null,function*(){const{deferInitialization:t}=this.props,r=!h(e)&&h(this.props);t&&r&&(yield this.prepareLDClient())})}render(){const{flags:e,flagKeyMap:r,ldClient:n,error:o}=this.state,{reactContext:a}=this.getReactOptions();return t.createElement(a.Provider,{value:{flags:e,flagKeyMap:r,ldClient:n,error:o}},this.props.children)}}var M=Object.defineProperty,L=Object.defineProperties,z=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,N=(e,t,r)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,U=(e,t)=>{for(var r in t||(t={}))V.call(t,r)&&N(e,r,t[r]);if(T)for(var r of T(t))$.call(t,r)&&N(e,r,t[r]);return e};function q(t){return function(r){const{reactOptions:n}=t,o=U(U({},y),n),a=(i=U({},t),L(i,z({reactOptions:o})));var i;function s(t){return e.createElement(R,U({},a),e.createElement(r,U({},t)))}return c(s,r),s}}var A=Object.defineProperty,B=Object.defineProperties,G=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,W=(e,t,r)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,X=(e,t)=>{for(var r in t||(t={}))J.call(t,r)&&W(e,r,t[r]);if(H)for(var r of H(t))Q.call(t,r)&&W(e,r,t[r]);return e},Y=(e,t)=>B(e,G(t));function Z(e){return r=this,n=null,i=function*(){var r,n;const{clientSideID:i,flags:l,options:c,reactOptions:p}=e,u=X(X({},y),p),f=null!=(r=h(e))?r:{anonymous:!0,kind:\"user\"};let d,g={};const v=null!=(n=yield e.ldClient)?n:s(i,f,X(X({},x),c));try{yield v.waitForInitialization(e.timeout),g=b(v,l)}catch(e){d=e}const C=(null==c?void 0:c.bootstrap)&&\"localStorage\"!==c.bootstrap?c.bootstrap:g;return({children:e})=>{const[r,n]=o(()=>Y(X({unproxiedFlags:C},m(v,C,u,l)),{ldClient:v,error:d}));a(()=>{function e(e){const t=O(e,l);Object.keys(t).length>0&&n(e=>{const r=X(X({},e.unproxiedFlags),t);return X(Y(X({},e),{unproxiedFlags:r}),m(v,r,u,l))})}function t(){const e=b(v,l);n(t=>X(Y(X({},t),{unproxiedFlags:e}),m(v,e,u,l)))}function r(e){n(t=>Y(X({},t),{error:e}))}return v.on(\"change\",e),(null==d?void 0:d.name.toLowerCase().includes(\"timeout\"))&&(v.on(\"failed\",r),v.on(\"ready\",t)),function(){v.off(\"change\",e),v.off(\"failed\",r),v.off(\"ready\",t)}},[]);const i=r,{unproxiedFlags:s}=i,c=((e,t)=>{var r={};for(var n in e)J.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&H)for(var n of H(e))t.indexOf(n)<0&&Q.call(e,n)&&(r[n]=e[n]);return r})(i,[\"unproxiedFlags\"]),{reactContext:p}=u;return t.createElement(p.Provider,{value:c},e)}},new Promise((e,t)=>{var o=e=>{try{s(i.next(e))}catch(e){t(e)}},a=e=>{try{s(i.throw(e))}catch(e){t(e)}},s=t=>t.done?e(t.value):Promise.resolve(t.value).then(o,a);s((i=i.apply(r,n)).next())});var r,n,i}var _=Object.defineProperty,ee=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,ne=(e,t,r)=>t in e?_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))te.call(t,r)&&ne(e,r,t[r]);if(ee)for(var r of ee(t))re.call(t,r)&&ne(e,r,t[r]);return e};function ae(t={clientOnly:!1}){return function(r){var n;const o=null!=(n=t.reactContext)?n:y.reactContext;return n=>e.createElement(o.Consumer,null,({flags:o,ldClient:a})=>t.clientOnly?e.createElement(r,oe({ldClient:a},n)):e.createElement(r,oe({flags:o,ldClient:a},n)))}}const ie=e=>{const{flags:t}=i(null!=e?e:y.reactContext);return t},se=e=>{const{ldClient:t}=i(null!=e?e:y.reactContext);return t};function le(e){const{error:t}=i(null!=e?e:y.reactContext);return t}export{R as LDProvider,Z as asyncWithLDProvider,g as camelCaseKeys,y as defaultReactOptions,p as reactSdkContextFactory,ie as useFlags,se as useLDClient,le as useLDClientError,ae as withLDConsumer,q as withLDProvider};\n//# sourceMappingURL=index.js.map\n","/**\n * flagOptions defines all possible values for each feature flag.\n * This is the source of truth for flag configuration.\n */\nexport const flagOptions = {\n // When a flag is added here it should reference its removal ticket.\n // ex. \"docupload-preview\": [true, false] as const, // removal HC-123\n \"doc-upload-redesign-use-legacy-message-keys\": [true, false] as const, // removal HC-154\n \"doc-upload-may24\": [\"default\", \"control\", \"checkbox-requirements\", \"doc-type-icons\"] as const,\n \"include-cvec-field-france-student\": [\n \"default\",\n \"control\",\n \"labeled-optional\",\n \"not-labeled-optional\",\n ] as const, // removal HC-736\n \"docUpload-assertion-checklist\": [\"default\", \"control\", \"checklist\"] as const, // removal: HC-893\n \"doc-upload-considerations\": [\"default\", \"control\", \"add-doc-considerations\"] as const,\n \"org-selected-display\": [\"default\", \"control\", \"box-display\"] as const,\n \"org-search-overlay\": [\"default\", \"control\", \"overlay\"] as const,\n \"hc-open-org-warning\": [\"control\", \"warning-orange\", \"warning-gray\"] as const,\n \"hc-my-sheer-id-theme-builder\": [true, false] as const, // removal HC-1623\n} as const;\n\n/**\n * Flags type is generated from flagOptions to ensure consistency.\n */\nexport type Flags = {\n [K in keyof typeof flagOptions]: (typeof flagOptions)[K][number];\n};\n\n/**\n * These are flag defaults they are passed into the LD flag provider and\n * populate the provider before LD's responses come back.\n */\nexport const flagDefaults: Flags = {\n \"doc-upload-redesign-use-legacy-message-keys\": false,\n \"doc-upload-may24\": \"default\",\n \"include-cvec-field-france-student\": \"default\",\n \"docUpload-assertion-checklist\": \"default\",\n \"doc-upload-considerations\": \"default\",\n \"org-search-overlay\": \"default\",\n \"org-selected-display\": \"default\",\n \"hc-open-org-warning\": \"control\",\n \"hc-my-sheer-id-theme-builder\": false,\n};\n\nexport type FlagNames = keyof Flags;\n","import { type Flags, flagDefaults } from \"@jslib/shared/flags\";\n\nconst FLAG_OVERRIDE_PARAM_NAME = \"_flagOverride\";\n\n/**\n * getOverriddenFlags allows `_flagOverride=FLAG-NAME:VALUE` query string\n * params. Multiple `_flagOverride` params can be used. Values of \"true\" and\n * \"false\" are converted to booleans. Everything else stays as a string.\n *\n * The function arguments should only be passed for unit testing.\n */\nexport const getOverriddenFlags = (\n _defaults = flagDefaults,\n _href = window.location.href,\n): Partial<Flags> => {\n const url = new URL(_href);\n const overrideQsps = url.searchParams.getAll(FLAG_OVERRIDE_PARAM_NAME);\n\n const overrides = overrideQsps.reduce((overrideCollector, qsp) => {\n const [key, val] = qsp.split(\":\");\n\n // skip if we don't have a key, or value, or if the key is not in our\n // defaults object.\n if (!key || !val || !Object.keys(_defaults).includes(key)) {\n return overrideCollector;\n }\n\n // Covert the literal strings \"true\" and \"false\" to booleans.\n // Don't touch anything else.\n const normalizedVal = val === \"true\" || val === \"false\" ? JSON.parse(val) : val;\n\n return { ...overrideCollector, [key]: normalizedVal };\n }, {});\n\n return overrides;\n};\n","import { useFlags as useLDFlags } from \"launchdarkly-react-client-sdk\";\n\nimport { type FlagNames, type Flags } from \"@jslib/shared/flags\";\n\nimport { getOverriddenFlags } from \"./getOverriddenFlags\";\n\n/**\n * @returns an object containing all current flags + variations\n *\n * Flag variations can be overridden to preview/force specific flag variations.\n * See `getOverriddenFlags` for details.\n */\nexport const useFlags = (): Flags => {\n const providedFlags: Flags = useLDFlags();\n const overriddenFlags = getOverriddenFlags();\n return { ...providedFlags, ...overriddenFlags };\n};\n\n/**\n * @param name FlagNames\n * @returns the matching flag variation value\n *\n * Flag variations can be overridden to preview/force specific flag variations.\n * See `getOverriddenFlags` for details.\n */\nexport function useFlag<T extends FlagNames>(name: T): Flags[T] {\n const flags = useFlags();\n return flags[name];\n}\n"],"x_google_ignoreList":[0,1,2,3,7,8,9],"mappings":";;;;AAAA,IAAW;CACV,SAAU,GAAa;CA2LpB,AA1LA,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,KAAQ,MACpB,EAAY,OAAU,QACtB,EAAY,KAAQ;AACxB,GAAG,AAAgB,MAAc,CAAC,CAAE;;;AC3LpC,IAAa,IAAmB,IAAI,IAAI;CACpC,CACI,EAAY,IACZ,oHACJ;CACA,CACI,EAAY,IACZ,oHACJ;CACA,CAAC,EAAY,IAAI,wCAAwC;CACzD,CAAC,EAAY,IAAI,wCAAwC;CACzD,CAAC,EAAY,IAAI,wCAAwC;CACzD,CAAC,EAAY,IAAI,8BAA8B;CAC/C,CAAC,EAAY,IAAI,2FAA2F;CAC5G,CAAC,EAAY,IAAI,2DAA2D;CAC5E,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,kBAAkB;CACnC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,IAAI,kCAAkC;CACnD,CAAC,EAAY,IAAI,qBAAqB;CACtC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,wBAAwB;CACzC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,mBAAmB;CACpC,CAAC,EAAY,IAAI,qBAAqB;CACtC,CAAC,EAAY,IAAI,mBAAmB;CACpC,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,mBAAmB;CACpC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,+BAA+B;CAChD,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,0BAA0B;CAC3C,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,2BAA2B;CAC5C,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,qBAAqB;CACtC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,yBAAyB;CAC1C,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,kBAAkB;CACnC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,yCAAyC;CAC1D,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,kBAAkB;CACnC,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,iBAAiB;CAClC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,wBAAwB;CACzC,CAAC,EAAY,IAAI,uBAAuB;CACxC,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,uBAAuB;CACxC,CAAC,EAAY,IAAI,sBAAsB;CACvC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,oCAAoC;CACrD,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,6BAA6B;CAC9C,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,UAAU;CAC3B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,kBAAkB;CACnC,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,UAAU;CAC3B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,4BAA4B;CAC7C,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,kBAAkB;CACnC,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,2BAA2B;CAC5C,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,0BAA0B;CAC3C,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,0BAA0B;CAC3C,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,uCAAuC;CACxD,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,mBAAmB;CACpC,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,SAAS;CAC1B,CAAC,EAAY,IAAI,YAAY;CAC7B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,UAAU;CAC3B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,iBAAiB;CAClC,CAAC,EAAY,IAAI,UAAU;CAC3B,CAAC,EAAY,IAAI,WAAW;CAC5B,CAAC,EAAY,IAAI,UAAU;CAC3B,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,iBAAiB;CAClC,CAAC,EAAY,IAAI,QAAQ;CACzB,CAAC,EAAY,IAAI,uBAAuB;CACxC,CAAC,EAAY,IAAI,eAAe;CAChC,CAAC,EAAY,IAAI,cAAc;CAC/B,CAAC,EAAY,MAAM,oCAAoC;CACvD,CAAC,EAAY,IAAI,8EAA8E;AACnG,CAAC,GClMY,KAAqB,GAAU,MAAY;CACpD,IAAI,CAAC,EAAiB,IAAI,CAAO,GAE7B,MAAM,MAAM,yBAAyB,GAAS;CAElD,OAAO,EAAiB,IAAI,CAAO,EAAE,KAAK,CAAQ;AACtD,GACa,KAAqC,MACvC,EAAiB,IAAI,CAAO;CCRvC,IAAM,IAAS;EAAC;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;CAAC;CAE5C,EAAO,UAAU,SAAe,GAAQ;EACtC,IAAI,OAAO,KAAW,UAAU,MAAU,UAAU,uBAAuB;EAC3E,IAAI,CAAC,GAAQ,OAAO;EAEpB,IAAI,IAAQ,EAAO,QACf,IAAK,IACL,IAAM;EAEV,OAAO,IAAO;GACZ,IAAM,IAAQ,EAAO,WAAW,EAAE,CAAK,IAAI;GAC3C,IAAI,IAAQ,KAAK,IAAQ,GAAG,OAAO;GAGnC,AADA,IAAK,CAAC,GACN,KAAO,IAAK,EAAO,KAAS;EAC9B;EAEA,OAAO,IAAM,MAAO;CACtB;YCwWA,IAAA;;;;;;;AAOA,GAMA,IAAA;;;;;AAKA,GAGA,IAAA;;;;;;AAMA,GAgBA,IAAA,CAAA,cAAA,aAAA,GCpaI,IAAsB,CAAC,GAOd,KAAyB,MAChC,EAAoB,MACtB,EAAO,IAAI,oCAAoC,EAAe,EAAE,GACzD,EAAoB,MAEtB,MC6BH,IAAgB,IAChB,IAAiB,IACjB,IAAgB,MAChB,IAAgB,KAIT,IAA4B,MAE5B,IAA0B,8BAE1B,IAA6B,CACxC,gCACA,uCACF,GAOa,MAAoB,MACN,OAAO,KAAK,CAAQ,EAAE,SAAA,MAI7C,EAAO,MAAM,4CAA8D,eAAe,GACnF,MAEF,IAGI,KAAoC,MAAiC;CAChF,IAAM,IAA6B,CAAC;CAGpC,KAAK,IAAM,KAAO,GAAU;EAC1B,IAAI,IAAS,GACT,IAAW,EAAS;EAexB,AAbI,EAAS,SAAA,SACX,EAAO,KACL,8BAA8B,EAAS,GAAK,aAAa,EAAO,gBAAgB,EAA0B,cAC5G,GACA,IAAW,EAAS,UAAU,GAAG,CAAyB,IAExD,EAAO,SAAA,QACT,EAAO,KACL,4BAA4B,EAAI,+BAClC,GACA,IAAS,EAAO,UAAU,GAAA,GAA0B,IAGtD,EAAiB,KAAU;CAC7B;CACA,OAAO;AACT,GAEa,KACX,GACA,MAC0B;CAC1B,IAAM,IAAwB,EAA8B,GACtD,IAAe,QAAc,EAAU,sBAAsB,GAC7D,IAAW,QAAe,EAA6B,UAAU,IAAI;CAI3E,KAAK,IAAM,KAAW,GACpB,IAAI,EAAU,eAAe,CAAO,GAAG;EACrC,IAAI,MAAM,QAAQ,CAAY,KAAK,EAAa,QAAQ,CAAkB,IAAI,IAC5E;EAGF,EAAsB,KAAW,GAC/B,GAFiB,EAAU,KAAW,EAAU,KAAW,IAI3D,CACF;CACF,OAAO,AAEL,OAAO,KAAa,YADpB,KAEA,EAAS,eAAe,CAAO,MAG/B,EAAsB,KAAW,GAC/B,GAFiB,EAAS,KAAW,EAAS,KAAW,IAIzD,CACF;CAIJ,IAAM,EAAE,wBAAqB,EAAW;CACxC,AAAI,KACF,EAAiB,SAAS,MAAgB;EACxC,IAAI;EACJ,IAAI;GACF,IAAU,EAAY,SAAS,EAAU,SAAS,EAAY,QAAQ;EACxE,SAAS,GAAG;GACV,EAAO,KAAK,iCAAiC,EAAY,WAAW,CAAC;EACvE;EACA,AAAI,IACF,EAAsB,EAAY,WAAW,IAE7C,OAAO,EAAsB,EAAY;CAE7C,CAAC;CAGH,IAAM,EAAE,uBAAoB,EAAW;CAiBvC,OAhBI,KACF,EAAgB,SAAS,MAAc;EACrC,IAAM,IAAa,EAAU,EAAU,WAAW,EAAU,EAAU,WAAW,IAC3E,IAAmB,EAAU,eAAe,EAAU,OAAO,GAC7D,IAAuB,GAAc,SAAS,EAAU,OAAkB;EAEhF,AAAI,KAAoB,EAAU,qBAAqB,CAAC,MACtD,EAAsB,EAAU,WAAW,GACzC,EAAU,SACV,GACA,CACF;CAEJ,CAAC,GAGI;AACT,GAEa,MACX,GACA,MACY;CACZ,IAAM,IAAwB,EAAyB;CAIvD,KAAK,IAAM,KAAW,GAAW;EAC/B,IAAM,IAAa,EAAU,KAAW,EAAU,KAAW,IACvD,IACJ,EAAU,0BACV,EAAU,uBAAuB,SAAS,CAAkB;EAE9D,IACE,EAAY,MACZ,OAAO,GAAkB,GAAS,GAAY,CAAqB,KAAM,YACzE,CAAC,GAED,OAAO;CAEX;CAEA,IAAM,IAAW,QAAe,EAA6B,UAAU,IAAI;CAC3E,IAAI,MAAa,MAGf,KAAK,IAAM,KAAW,GAAU;EAC9B,IAAM,IAAa,EAAS,OAAa,KAAA,IAAgC,KAApB,EAAS;EAE9D,IACE,EAAsB,SAAS,CAAO,KACtC,OAAO,EAAmB,CAAO,EAAE,GAAY,CAAqB,KAAM,UAE1E,OAAO;CAEX;CAGF,OAAO;AACT,GAEa,KAAiB,MAAiE;CAG7F,KAAK,IAAM,KAAS,GAClB,IAAI,EAA6B,IAE/B,OADA,EAAO,KAAK,UAAU,EAAM,iBAAiB,EAA6B,GAAO,EAAE,GAC5E;CAGX,OAAO;AACT,GAEM,KACJ,GACA,GACA,GACA,GACA,MAEI,KACF,EAAO,KAAK,yCAAyC,EAAQ,EAAE,GACxD,EAAoB,GAAO,CAAqB,KAElD,EAAiB,GAAO,CAAqB,GAGhD,UAA6D;CACjE,IAAM,IAAoD,EAA8B,GAClF,IACJ,EAAsC;CAKxC,OAAO;EAHL,GAAG;EACH,GAAG;CAEE;AACT,GAEM,MACJ,GACA,GACA,MACoB;CACpB,IAAM,IAA6B,EAAmB,CAAO;CAE7D,OADA,EAAO,KAAK,4CAA4C,EAAQ,EAAE,GAC3D,IAAkB,EAAgB,GAAO,CAAqB,IAAI,KAAA;AAC3E,GAEM,MAAyB,MAAsC;CACnE,IAAM,IAAwB,EAAyB;CAKvD,OAHA,GAAI,EAAsB,UAAU,EAAsB,QAAQ,CAAO,KAAK;AAIhF,GAEM,MAA+B,MAA6C;CAGhF,IAAI,MAAU,KAAA,KAAa,CAAC,GAAY,CAAe,GACrD,OAAO;AAEX,GAEM,KAA8B,MAAuC;CAGzE,IAAI,MAAU,KAAA,KAAa,CAAC,GAAY,CAAK,GAC3C,OAAO;AAEX,GAEM,KAAoB,MAAuC;CAG/D,IAAI,MAAU,KAAA,KAAa,MAAU,IACnC,OAAO;AAEX,GAEM,MAA6B,MAAuC;CAExE,IAAI,CAAC,GACH,OAAO;AAEX,GAEa,KAA2B,MAAuC;CAK7E,IAAI,MAAU,KAAA,KAAa,CAAC,mNAAmB,KAAK,CAAK,GACvD,OAAO;AAEX,GAEa,KACV,GAA2B,OAC3B,MAA2B;CAC1B,IAAM,IAA8B;CACpC,IAAI,CAAC,GACH,OAAO,IAAmB,IAAqB,KAAA;CAWjD,IARI,GAAS,WAAW,EAAQ,YAAY,QAAQ,CAAC,EAAwB,KAAK,CAAK,KAI/D,EAA2B,QAAQ,MACzD,EAAO,KAAK,CAAK,CAGf,EAAgB,WAAW,GAC7B,OAAO;AAEX,GAEI,KAA2B,MAA6D;CAC5F,IAAM,IAAU,GAAuB,WAAW,eAAe;CAQjE,OAAO,EANJ,KAAyB,EAAsB,kBAG/C,GAAuB,gBAAgB,4BACtC,KACA,MAAY,MACwC,EAAE,WAAQ,CAAC;AACrE,GAEM,MAAkC,MAA6C;CAEnF,IACE,EAAM,OAAO,KAAA,KACb,OAAO,MAAM,EAAM,EAAE,KACpB,EAAM,WAAW,cAAc,EAAM,KAAK,KAC1C,EAAM,WAAW,eAAe,EAAM,KAAK,MAAM,CAAC,EAAM,eACxD,EAAM,OAAO,KAAK,EAAM,KAAK,UAAU,GAExC,OAAO;AAEX,GAEM,MAAoB,MACJ,EAAU,MAAM,WAAW,EAAE,KAAK,EAC/C,EAAY,UAAU,GAGzB,MACJ,GACA,MACwB;CACxB,IAAM,IAAwB,oBAIxB,IAAS,GAAuB,UAAU,KAAA,GAC1C,IAAS,GAAuB,UAAU,KAAA;CAEhD,IAAI,QAAc,EAAsB,gBAAgB,2BAA2B,GAAG;EACpF,IAAI,MAAU,KAAA,KAAa,MAAU,MAAM,GAAiB,CAAK,GAAG;EACpE,IAAI,CAAC,GAAkB,CAAK,KAAK,CAAC,GAAY,CAAK,GACjD,OAAO;CAEX,OAAO,IAAI,MAAU,KAAA,KAAa,CAAC,GAAkB,CAAK,KAAK,CAAC,GAAY,CAAK,GAC/E,OAAO;CAGT,IAAI,GAAkB,GAAO,GAAQ,CAAM,GACzC,OAAO;CAET,IAAI,GAAa,CAAK,GACpB,OAAO;CAET,IAAI,GAAe,GAAO,CAAM,GAC9B,OAAO;AAEX,GAEM,KACJ,GACA,MACwB;CACxB,IAAM,KAAoB,MAA8B,KAAY,EAAS,SAAS,GAAG,GAOnF,IAA2B;CACjC,IAAI,GAAuB;EACzB,IAAM,IAAK,EAAsB;EAMjC,IAHoB;GAFG,EAAG;GAAO,EAAG;GAAO,EAAG;EAE1B,EAAc,MAC/B,MAAM,MAAM,KAAA,KAAa,EAAE,SAAS,EAAK,QAAQ,EAAE,SAAS,EAAK,IAEhE,GACF,OAAO;CAEX;CAEA,IAAI,MAAS,KAAA,GACX,OAAO;CAGT,IAAI,EAAiB,EAAK,IAAI,KAAK,CAAC,EAAe,SAAS,EAAK,IAAI,GACnE,OAAO;CAET,IAAI,EAAK,OAAO,UACd,OAAO;CAET,IAAI,EAAK,QAAQ,GACf,OAAO;AAEX,GAEa,MAAiD,GAAO,MAA0B;CAC7F,IAAM,IAAK,EAAsB;CACjC,IAAI,EAAG,YAAY,EAAG,SAAS,SAAS,eAAe,MACjD,CAAC,EAAM,MAAM,aAAa,KAK1B,EAAM,WAAW,QAAQ,KAAK,EAAM,WAAW,MAO/C,CADa;EADe;EAAU;EAAU;CACnC,EAAuB,MAAM,MAAS,EAAM,WAAW,CAAI,CACvE,KAAY,EAAA,GAAA,EAAA,SAAM,CAAK,IAE1B,OAAO;AAGb,GAEa,MACX,GACA,MACwB;CAIpB,QAFgB,QAAc,EAAsB,UAAU,cAAc,OAAO,IAEjE,GAAa,CAAK,GAGxC,OAAO;AACT,GAEM,MAA8B,MAAuC;CAEzE,IAAI,CAAC,GACH,OAAO;AAEX,GAEM,MAA0B,MAAuC;CAErE,IAAI,CAAC,GACH,OAAO;AAEX,GAEM,MAA2B,MAAuC;CAEtE,IAAI,CAAC,GAAa,CAAK,GACrB,OAAO;AAEX,GAEM,MAAwB,MAC5B,MAAU,KAAA,KAAa,GAAkB,CAAK,KAAK,GAAY,CAAK,GAEhE,MAAqB,GAAe,MAIjC,IAHU,KAAK,CAGf,IAAO,IAFQ,KAAM,EAA6C,SAE3D,GAGV,MACJ,GACA,MACwB;CACxB,IAAM,IAAmC,GAAuB,kCAC1D,IAAiD,CAAC,CAAC;CACzD,IAAI,CAAC,GAAqB,CAAK,GAC7B,OAAO;CAET,IAAI,CAAC,KAAkD,GAAa,CAAK,GACvE,OAAO;CAET,IAAI,GAAkB,GAAO,EAAsB,SAAS,GAC1D,OAAO;CAET,IACE,KACA,CAAC,GAAyC,GAAO,CAAgC,GAEjF,OAAO;AAEX,GAEM,MACJ,GACA,MACwB;CACpB,OAAC,KAAS,CAAC,EAAsB,kCAKrC;MAAI,CAAC,GAAqB,CAAK,GAC7B,OAAO;EAET,IAAI,GAAa,CAAK,GACpB,OAAO;EAET,IAAI,GAAkB,GAAO,EAAsB,SAAS,GAC1D,OAAO;CANA;AAQX,GAEM,MAAyB,MAAuC;CAEpE,IAAI,EAAM,SAAS,EAAE,WAAA,GACnB,OAAO;AAEX,GAEM,MAAqC,MAAkB,EAAM,SAAS,GAEtE,MAA0B,MAAkB,EAAM,SAAS,GAE3D,MAAyC,MAAuC;CAIpF,IAAI,MAAU,KAAA,KAAa,CAAC,0BAA4B,KAAK,CAAK,GAChE,OAAO;AAEX,GAEM,MAA8B,MAAuC;CAEzE,IAAI,CAAC,KAAS,CAAC,GAAkC,CAAK,KAAK,CAAC,GAAuB,CAAK,GACtF,OAAO;AAEX,GAEM,MAAyB,MAAkB,EAAgB,SAAS,CAAuB,GAE3F,MAA+B,MACnC,EAAuB,SAAS,CAA6B,GAEzD,MAAoC,MACxC,EAA4B,SAAS,CAAkC,GAEnE,MAAuB,MAC3B,EAAoB,SAAS,CAA0B,GAEnD,MAA4B,MAAuC;CAGvE,IACE,CAAC,KACA,CAAC,GAAsB,CAAK,KAC3B,CAAC,GAA4B,CAAK,KAClC,CAAC,GAAiC,CAAK,KACvC,CAAC,GAAoB,CAAK,KAC1B,CAAC,GAAuB,CAAK,KAC7B,CAAC,GAAkC,CAAK,GAE1C,OAAO;AAEX,GAEM,MAAwC,MAA6C;CAGzF,IAAI,MAAU,KAAA,KAAa,EAAM,SAAS,EAAE,WAAA,GAC1C,OAAO;AAEX,GAEa,MAAgC,MAAuC;CAIlF,IAAI,MAAU,KAAA,KAAa,CAAC,8BAAyB,KAAK,CAAK,GAC7D,OAAO;AAEX,GAEa,MAAkC,MAAuC;CAGpF,IAAI,MAAU,KAAA,KAAa,MAAU,IACnC,OAAO;AAEX,GAEa,MAAe,GAAe,MAAoD;CAC7F,IAAI;EACF,IAAM,IAAoB,gBAAA,OAAA,wEAAA,GAAA;EAC1B,IAAI,GAAM,oBACR,MAAU,MAAM,sBAAsB;EAExC,OAAO,EAAkB,KAAK,CAAK;CACrC,QAAQ;EAON,OAAO,+CAAkB,KAAK,CAAK;CACrC;AACF,GAEM,MAAe,MAA2B;CAC9C,IAAM,IAAY,EAAM,MAAM,GAAG,GAC3B,IAAW,SAAS,EAAU,IAAI,CAAa,GAC/C,IAAY,SAAS,EAAU,IAAI,CAAa,GAChD,IAAU,SAAS,EAAU,IAAI,CAAa,GAC9C,IAAY;EAAC;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;EAAI;CAAE;CAcjE,OAHA,EATI,IAAW,KAAiB,IAAW,KAAiB,KAAa,KAAK,IAAY,QAKtF,IAAW,OAAQ,KAAM,IAAW,OAAQ,KAAK,IAAW,KAAM,OACpE,EAAU,KAAK,KAGb,KAAW,KAAK,IAAU,EAAU,IAAY;AAItD,GAEM,MAAqB,MAGzB,EAAI,wCAAyB,KAAK,CAAK,GAMnC,MAAgB,MAA2B;CAC/C,IAAM,oBAAc,IAAI,KAAK;CAE7B,OAAO,IADmB,KAAK,CACxB,IAAgB;AACzB,GAEM,MACJ,GACA,MACY;CACZ,IAAM,oBAAgB,IAAI,KAAK,GAAG,EAAM,WAAW,GAE7C,oBAAM,IAAI,KAAK,GACf,IAAW,IAAI,KAAK,KAAK,IAAI,EAAI,eAAe,GAAG,EAAI,YAAY,GAAG,EAAI,WAAW,CAAC,CAAC,GAEvF,IAAyB,IAAI,KAAK,EAAS,QAAQ,CAAC;CAC1D,EAAuB,WAAW,EAAS,WAAW,IAAI,CAAgC;CAE1F,IAAM,IAA2B,IAAI,KAAK,EAAS,QAAQ,CAAC;CAG5D,OAFA,EAAyB,WAAW,EAAS,WAAW,IAAI,CAAgC,GAErF,KAAiB,KAA0B,KAAiB;AACrE,GAEM,MAAkB,GAAe,IAAS,MAA4B;CAC1E,IAAM,IAAiB,EAAM,MAAM,GAAG,GAChC,IAAgB,SAAS,EAAe,IAAI,CAAa,GACzD,IAAiB,SAAS,EAAe,IAAI,CAAa,GAC1D,IAAe,SAAS,EAAe,IAAI,CAAa,GACxD,qBAAc,IAAI,KAAK,GAAE,YAAY,GACrC,qBAAe,IAAI,KAAK,GAAE,SAAS,IAAI,GACvC,qBAAa,IAAI,KAAK,GAAE,QAAQ;CAEtC,IAAI,IAAc,MAAkB,GAKlC;MAJI,IAAe,IAAiB,KAIhC,IAAe,MAAmB,KAChC,IAAa,IAAe,GAC9B,OAAO;CACT,OAEG,IAAI,IAAc,IAAgB,GACvC,OAAO;CAET,OAAO;AACT,GAEM,MAAiB,GAAe,IAAS,QAAQ;CACrD,IAAM,IAAiB,EAAM,MAAM,GAAG,GAChC,IAAgB,SAAS,EAAe,IAAI,CAAa,GACzD,IAAiB,SAAS,EAAe,IAAI,CAAa,GAC1D,IAAe,SAAS,EAAe,IAAI,CAAa,GACxD,qBAAc,IAAI,KAAK,GAAE,YAAY,GACrC,qBAAe,IAAI,KAAK,GAAE,SAAS,IAAI,GACvC,qBAAa,IAAI,KAAK,GAAE,QAAQ;CAEtC,IAAI,IAAc,MAAkB,GAKlC;MAJI,IAAe,IAAiB,KAIhC,IAAe,MAAmB,KAChC,IAAa,IAAe,GAC9B,OAAO;CACT,OAEG,IAAI,IAAc,IAAgB,GACvC,OAAO;CAET,OAAO;AACT,GAEM,MAAqB,GAAe,GAAiB,MAA6B;CACtF,IAAI,IAAa,IACb,IAAY;CAQhB,OANI,MACF,IAAa,GAAe,GAAO,CAAM,IAEvC,MACF,IAAY,GAAc,GAAO,CAAM,IAElC,KAAc;AACvB,GAEa,MAAqB,IAAuB,MAAM,MAAkB;CAC/E,IAAM,IAAoB;CAI1B,OAHI,EAAkC,CAAiB,IAC9C,EAAkB,GAAO,CAAiB,IAE5C;AACT,GAYM,MAAgB,MACf,IAGgC,OAAO,OAAO,CAC/C,EAAgB,QAAQ,EAAM,YAAY,CAAc,KAAK,IAHxD,IASE,MACX,GACA,GACA,MAC0C;CAC1C,EAAmB,CAAO;CA6B1B,IAAM,IAAmB;GA1BtB,EAAY,YAAY;GACxB,EAAY,WAAW;GACvB,EAAY,WAAW;GACvB,EAAY,QAAQ;GACpB,EAAY,oBAAoB;GAChC,EAAY,cAAc,EAAwB,CAAqB;GACvE,EAAY,eAAe;GAC3B,EAAY,YAAY;GACxB,EAAY,aAAa;GACzB,EAAY,WAAW;GACvB,EAAY,OAAO;GACnB,EAAY,QAAQ;GACpB,EAAY,UAAU;GACtB,EAAY,gBAAgB;GAC5B,EAAY,sBAAsB;GAClC,EAAY,uBAAuB;GACnC,EAAY,SAAS;GACrB,EAAY,WAAW;GACvB,EAAY,sBAAsB;GAClC,EAAY,YAAY;GACxB,EAAY,gBAAgB;GAC5B,EAAY,qBAAqB;GACjC,EAAY,aAAa;GACzB,EAAY,eAAe;CAGL,EAA6B;CACtD,IAAI,GAEF,OAAO,EACL,GACA,GACA,GAJqC,EAAsB,CAK3D,GACA,CACF;CAGF,IAAI,GAAsB,CAAO,GAC/B,OAAO,GAAyB,GAAS,GAAO,CAAqB;AAIzE;ACv0BA,SAAA,EAAA,GAAA;;;;;AAA4M;AAAqP,KAAA,IAApP,KAAA,EAAA,qCAAA,GAAA,KAAA,EAAA,uCAAA,GAAA,KAAA,EAAA,8BAAA,GAAA,KAAA,EAAA,kCAAA,GAAA,KAAA,EAAA,kCAAA,GAAA,KAAA,EAAA,4BAAA,GAAoP,IAAA;;;;;;;;;;;;AAAwV,GAAA,KAAA,SAAA,GAAA;;;AAA2D,GAAA,KAAA,SAAA,GAAA;;;;;;AAA4c,GAAA,KAAA,SAAA,GAAA;;;AAAiP,GAAA,IAAA,CAAA,GAAA,IAAA,CAAA,GAAA,KAAA,OAAA,aAAA,MAAA,aAAA,OAAA,KAAA,oEAAA,IAAA,GAAA,IAAA,IAAA,EAAA,GAAA,EAAA,KAAA,GAAA,IAAA,EAAA,GAAA,WAAA,CAAA,KAAA;AAA+K,SAAA,GAAA,GAAA;;;;;AAAkK;AAAC,SAAA,GAAA,GAAA;;AAA+D;AAAC,SAAA,GAAA,GAAA,GAAA,GAAA;;;AAAiI;AAAC,EAAA,MAAA,IAAA,EAAA,MAAA;AAAgD,IAAA,KAAA;;;;AAAiD,GAAA,KAAA,MAAA,SAAA,KAAA,OAAA,MAAA,KAAA,OAAA,UAAA,gBAAA,KAAA,SAAA,EAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;AAAypB,GAAE,KAAA;;;;;;;;;AAA4E;AAAE,SAAA,GAAA,GAAA;;;;;;;AAAoK;AAAC,SAAA,GAAA,GAAA,GAAA;;AAAgE;AAAC,IAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAkrC,GAAE,KAAA;;;AAAsB,GAAA,KAAA;;;AAAkB,GAAA,KAAA;;;AAAkB,GAAA,KAAA;;;AAAkB,GAAA,KAAA;;;AAAkB,GAAA,KAAA;;;AAAoB;AAAE,SAAA,EAAA,GAAA,GAAA;;;;AAAsG;AAAC,SAAA,GAAA,GAAA;;AAA2I;AAAC,SAAA,KAAA;;;;;;;;;;AAAiQ;AAAC,IAAA,KAAA;;;;;;AAAoK,GAAE,KAAA;;;;;;AAA6C,GAAE,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAgmC;AAAE,SAAA,GAAA,GAAA;;AAAuG;AAA8I,IAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA2hI,GAAE,EAAA,gBAAA,OAAA,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAwhC,GAAA,KAAA;AAAmB,SAAA,GAAA,GAAA;;AAA4C;AAAC,SAAA,GAAA,GAAA,GAAA,GAAA;;;;;AAA8I;AAAC,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAmjD,GAAE,EAAA,sBAAA,OAAA,GAAgC,KAAA;;;;;;;;;;;AAAmiB,GAAE,EAAA,cAAA,OAAA,IAAA,EAAA,cAAA,IAAA,kBAAA,OAAA,IAA8D,KAAA,SAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;AAA4mB,GAAE,KAAA,SAAA,EAAA,GAAA,IAAA,CAAA,GAAA;;;;;;;AAA2X,GAAE,EAAA,mBAAA,OAAA;AAA8B,SAAA,GAAA,GAAA;;AAA4E;AAAC,SAAA,GAAA,GAAA;;AAAkG;AAAC,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA8oC,GAAE,EAAA,iBAAA,OAAA,IAA6B,KAAA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAwiC,GAAE,KAAA,SAAA,GAAA;;;;;;;;;;;;;;;;;;;AAAsV;AAAE,SAAA,GAAA,GAAA;;AAA8D;AAAC,SAAA,GAAA,GAAA;;AAAwI;AAAC,SAAA,GAAA,GAAA;;AAAuC;AAAC,SAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;AAA4K;AAAC,SAAA,GAAA,GAAA;;AAAgC;AAAC,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAkoB,GAAE,KAAA,SAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAqvC,GAAE,EAAA,gBAAA,OAAA,IAA4B,KAAA,SAAA,GAAA,GAAA,GAAA,IAAA,MAAA,IAAA,MAAA,IAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAipD,GAAE,KAAA,SAAA,GAAA;;;;;;;;;;;;;;;;;;;;AAA2nB,GAAE,KAAA,SAAA,KAAA,eAAA,KAAA,UAA8C,KAAA,SAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;AAAwd,GAAE,KAAA,SAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;AAAsf,GAAE,KAAA,SAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;AAAoY,GAAE,EAAA,eAAA,IAAA,iBAAA,IAAA,sBAAA,OAAA,GAAA,EAAA,cAAA,IAAA,kBAAA,OAAA,IAAA,EAAA,wBAAA,OAAA,GAA2I,KAAA,SAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAkgD,GAAE,KAAA,SAAA,GAAA;;;;;;;;;;;AAA8L,GAAE,EAAA,kBAAA,IAAA,cAAA,OAAA,IAAA,KAAA,oBAAmE,KAAA,SAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAiyC,GAAE,KAAA,SAAA,GAAA,GAAA;;;;;;;AAAwL,GAAE,EAAA,cAAA,OAAA,IAAA,EAAA,iBAAA,OAAA,IAAiD,KAAA,SAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAAuoB,GAAE,EAAA,cAAA,OAAA,IAAA,EAAA,gBAAA,OAAA,IAAA,EAAA,eAAA,OAAA,GAAoE,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA87E,GAAE,KAAA,SAAA,GAAA,GAAA;;;;;;;;;;;;;;AAAqM,GAAE,EAAA,YAAA,OAAA,GAAA,IAAA;;;;;AAAiL;AAAE,OAAA,OAAA,CAAA;AAAkB,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAspC,GAAE,EAAA,gBAAA,OAAA,GAA2B,KAAA,SAAA,GAAA,GAAA;;;;;;AAAyH,GAAE,KAAA;AAAwB,SAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA;;;;;;AAAgI;AAAC,SAAA,GAAA,GAAA,GAAA;;;;;;AAAqJ;AAAC,IAAA,KAAA,SAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAi/B,GAAE,KAAA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA0nB,GAAE,KAAA;AAA0B,SAAA,GAAA,GAAA,GAAA;;;;;;AAA4J;AAAC,IAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA8hC,GAAE,EAAA,mBAAA,OAAA,IAAA,EAAA,cAAA,IAAA,gBAAA,OAAA,IAAA,EAAA,gBAAA,IAAA,kBAAA,OAAA,IAAA,EAAA,gBAAA,IAAA,iBAAA,IAAA,iCAAA,IAAA,yBAAA,OAAA,IAAA,KAAA,UAAA,KAAA,mBAAyP,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAq/T,GAAA,KAAA,GAAA,YAAA,KAAA,GAAA;AAAA,GAAA;AAA+C,SAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;AAA6b;AAAC,SAAA,GAAA,GAAA,GAAA;;;;;;;;;AAA4N;AAAC,SAAA,GAAA,GAAA;;;;;;;;;;AAAgW;AAAC,GAAA;AAA2F,IAAA,KAAA,EAAA,SAAA,QAAA,QAAA;;;;;;AAAoF,CAAA,EAAA;AAAI,SAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAipB;AAAC,IAAA,MAAA,MAAA;;;AAA8I;AAAE,SAAA,GAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;AAAgZ;AAAC,SAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;AAA4oB;AAAC,SAAA,GAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA0xB;AAAC,IAAA,KAAA,cAAA,KAAA;;;;;;AAA2K;AAAE,SAAA,GAAA,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA69E;;;;CCU1jnD,IAAI,IAAW,UAGX,IAAY,mBAGZ,IAAc,6CAGd,IAAU,+CAGV,IAAgB,mBAChB,IAAoB,kCACpB,IAAsB,mBACtB,IAAiB,mBACjB,IAAe,6BACf,IAAgB,wBAChB,IAAiB,gDACjB,IAAqB,mBACrB,IAAe,gKACf,IAAe,6BACf,IAAa,kBACb,IAAe,IAAgB,IAAiB,IAAqB,GAGrE,IAAS,QACT,IAAW,MAAM,IAAgB,KACjC,IAAU,MAAM,IAAe,KAC/B,IAAU,MAAM,IAAoB,IAAsB,KAC1D,IAAW,QACX,IAAY,MAAM,IAAiB,KACnC,IAAU,MAAM,IAAe,KAC/B,IAAS,OAAO,IAAgB,IAAe,IAAW,IAAiB,IAAe,IAAe,KACzG,IAAS,4BACT,IAAa,QAAQ,IAAU,MAAM,IAAS,KAC9C,IAAc,OAAO,IAAgB,KACrC,IAAa,mCACb,IAAa,sCACb,IAAU,MAAM,IAAe,KAC/B,IAAQ,WAGR,KAAc,QAAQ,IAAU,MAAM,IAAS,KAC/C,IAAc,QAAQ,IAAU,MAAM,IAAS,KAC/C,IAAkB,QAAQ,IAAS,0BACnC,KAAkB,QAAQ,IAAS,0BACnC,IAAW,IAAa,KACxB,IAAW,MAAM,IAAa,MAC9B,IAAY,QAAQ,IAAQ,QAAQ;EAAC;EAAa;EAAY;CAAU,EAAE,KAAK,GAAG,IAAI,MAAM,IAAW,IAAW,MAClH,KAAQ,IAAW,IAAW,GAC9B,KAAU,QAAQ;EAAC;EAAW;EAAY;CAAU,EAAE,KAAK,GAAG,IAAI,MAAM,IACxE,KAAW,QAAQ;EAAC,IAAc,IAAU;EAAK;EAAS;EAAY;EAAY;CAAQ,EAAE,KAAK,GAAG,IAAI,KAGxG,IAAS,OAAO,GAAQ,GAAG,GAM3B,IAAc,OAAO,GAAS,GAAG,GAGjC,KAAY,OAAO,IAAS,QAAQ,IAAS,OAAO,KAAW,IAAO,GAAG,GAGzE,IAAgB,OAAO;EACzB,IAAU,MAAM,IAAU,MAAM,IAAkB,QAAQ;GAAC;GAAS;GAAS;EAAG,EAAE,KAAK,GAAG,IAAI;EAC9F,IAAc,MAAM,KAAkB,QAAQ;GAAC;GAAS,IAAU;GAAa;EAAG,EAAE,KAAK,GAAG,IAAI;EAChG,IAAU,MAAM,KAAc,MAAM;EACpC,IAAU,MAAM;EAChB;EACA;CACF,EAAE,KAAK,GAAG,GAAG,GAAG,GAGZ,IAAe,OAAO,MAAM,IAAQ,IAAiB,IAAoB,IAAsB,IAAa,GAAG,GAG/G,IAAmB,uEAGnB,KAAkB;EAEpB,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAC1E,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAC1E,GAAQ;EAAM,GAAQ;EACtB,GAAQ;EAAM,GAAQ;EACtB,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EACtB,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAC1E,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAC1E,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EAAK,GAAQ;EAChD,GAAQ;EAAM,GAAQ;EAAK,GAAQ;EACnC,GAAQ;EAAM,GAAQ;EACtB,GAAQ;EAAM,GAAQ;EACtB,GAAQ;EAER,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAC1B,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACvE,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EACxD,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACtF,GAAU;EAAM,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EAAK,GAAU;EACtF,GAAU;EAAM,GAAU;EAC1B,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAAK,GAAU;EACzC,GAAU;EAAM,GAAU;EAC1B,GAAU;EAAM,GAAU;EAC1B,GAAU;EAAM,GAAU;CAC5B,GAGI,KAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU,QAGhF,KAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU,MAGxE,IAAO,MAAc,MAAY,SAAS,aAAa,EAAE;CAc7D,SAAS,GAAY,GAAO,GAAU,GAAa,GAAW;EAC5D,IAAI,IAAQ,IACR,IAAS,IAAQ,EAAM,SAAS;EAKpC,KAHI,KAAa,MACf,IAAc,EAAM,EAAE,KAEjB,EAAE,IAAQ,IACf,IAAc,EAAS,GAAa,EAAM,IAAQ,GAAO,CAAK;EAEhE,OAAO;CACT;CASA,SAAS,GAAa,GAAQ;EAC5B,OAAO,EAAO,MAAM,EAAE;CACxB;CASA,SAAS,GAAW,GAAQ;EAC1B,OAAO,EAAO,MAAM,CAAW,KAAK,CAAC;CACvC;CASA,SAAS,GAAe,GAAQ;EAC9B,OAAO,SAAS,GAAK;GACnB,OAAO,IAAoC;EAC7C;CACF;CAUA,IAAI,KAAe,GAAe,EAAe;CASjD,SAAS,GAAW,GAAQ;EAC1B,OAAO,EAAa,KAAK,CAAM;CACjC;CASA,SAAS,GAAe,GAAQ;EAC9B,OAAO,EAAiB,KAAK,CAAM;CACrC;CASA,SAAS,GAAc,GAAQ;EAC7B,OAAO,GAAW,CAAM,IACpB,GAAe,CAAM,IACrB,GAAa,CAAM;CACzB;CASA,SAAS,GAAe,GAAQ;EAC9B,OAAO,EAAO,MAAM,EAAS,KAAK,CAAC;CACrC;CASA,SAAS,GAAa,GAAQ;EAC5B,OAAO,EAAO,MAAM,CAAa,KAAK,CAAC;CACzC;CAUA,IAAI,KAPc,OAAO,UAOQ,UAG7B,KAAS,EAAK,QAGd,KAAc,KAAS,GAAO,YAAY,KAAA,GAC1C,KAAiB,KAAc,GAAY,WAAW,KAAA;CAW1D,SAAS,GAAU,GAAO,GAAO,GAAK;EACpC,IAAI,IAAQ,IACR,IAAS,EAAM;EAUnB,AARI,IAAQ,MACV,IAAQ,CAAC,IAAQ,IAAS,IAAK,IAAS,IAE1C,IAAM,IAAM,IAAS,IAAS,GAC1B,IAAM,MACR,KAAO,IAET,IAAS,IAAQ,IAAM,IAAM,IAAM,MAAW,GAC9C,OAAW;EAGX,KADA,IAAI,IAAS,MAAM,CAAM,GAClB,EAAE,IAAQ,IACf,EAAO,KAAS,EAAM,IAAQ;EAEhC,OAAO;CACT;CAUA,SAAS,GAAa,GAAO;EAE3B,IAAI,OAAO,KAAS,UAClB,OAAO;EAET,IAAI,GAAS,CAAK,GAChB,OAAO,KAAiB,GAAe,KAAK,CAAK,IAAI;EAEvD,IAAI,IAAU,IAAQ;EACtB,OAAQ,KAAU,OAAQ,IAAI,KAAU,CAAC,IAAY,OAAO;CAC9D;CAWA,SAAS,GAAU,GAAO,GAAO,GAAK;EACpC,IAAI,IAAS,EAAM;EAEnB,OADA,IAAM,MAAQ,KAAA,IAAY,IAAS,GAC3B,CAAC,KAAS,KAAO,IAAU,IAAQ,GAAU,GAAO,GAAO,CAAG;CACxE;CASA,SAAS,GAAgB,GAAY;EACnC,OAAO,SAAS,GAAQ;GACtB,IAAS,GAAS,CAAM;GAExB,IAAI,IAAa,GAAW,CAAM,IAC9B,GAAc,CAAM,IACpB,KAAA,GAEA,IAAM,IACN,EAAW,KACX,EAAO,OAAO,CAAC,GAEf,IAAW,IACX,GAAU,GAAY,CAAC,EAAE,KAAK,EAAE,IAChC,EAAO,MAAM,CAAC;GAElB,OAAO,EAAI,GAAY,IAAI;EAC7B;CACF;CASA,SAAS,GAAiB,GAAU;EAClC,OAAO,SAAS,GAAQ;GACtB,OAAO,GAAY,GAAM,GAAO,CAAM,EAAE,QAAQ,GAAQ,EAAE,CAAC,GAAG,GAAU,EAAE;EAC5E;CACF;CA0BA,SAAS,GAAa,GAAO;EAC3B,OAAO,CAAC,CAAC,KAAS,OAAO,KAAS;CACpC;CAmBA,SAAS,GAAS,GAAO;EACvB,OAAO,OAAO,KAAS,YACpB,GAAa,CAAK,KAAK,GAAe,KAAK,CAAK,KAAK;CAC1D;CAuBA,SAAS,GAAS,GAAO;EACvB,OAAO,KAAS,OAAO,KAAK,GAAa,CAAK;CAChD;CAsBA,IAAI,KAAY,GAAiB,SAAS,GAAQ,GAAM,GAAO;EAE7D,OADA,IAAO,EAAK,YAAY,GACjB,KAAU,IAAQ,GAAW,CAAI,IAAI;CAC9C,CAAC;CAiBD,SAAS,GAAW,GAAQ;EAC1B,OAAO,GAAW,GAAS,CAAM,EAAE,YAAY,CAAC;CAClD;CAoBA,SAAS,GAAO,GAAQ;EAEtB,OADA,IAAS,GAAS,CAAM,GACjB,KAAU,EAAO,QAAQ,GAAS,EAAY,EAAE,QAAQ,GAAa,EAAE;CAChF;CAmBA,IAAI,KAAa,GAAgB,aAAa;CAqB9C,SAAS,GAAM,GAAQ,GAAS,GAAO;EAOrC,OANA,IAAS,GAAS,CAAM,GACxB,IAAU,IAAQ,KAAA,IAAY,GAE1B,MAAY,KAAA,IACP,GAAe,CAAM,IAAI,GAAa,CAAM,IAAI,GAAW,CAAM,IAEnE,EAAO,MAAM,CAAO,KAAK,CAAC;CACnC;CAEA,EAAO,UAAU;;;ACtlBmR,IAAwD,MAAlD,GAAA,GAAA,eAAQ;CAAC,OAAM,CAAC;CAAE,YAAW,CAAC;CAAE,UAAS,KAAK;AAAC,CAAC,GAAQ,EAAC,UAAS,IAAE,UAAS,OAAG,IAAE,KAAE;CAAC,sBAAqB,CAAC;CAAE,sBAAqB,CAAC;CAAE,cAAa;AAAC,GAAE,MAAE,MAA0B,EAAE,WAAW,EAAE,MAAM,MAAE,MAAG;CAAC,IAAM,IAAE,CAAC;CAAE,KAAI,IAAM,KAAK,GAAE,AAAI,EAAE,QAAQ,GAAG,MAAjB,MAAqB,GAAA,GAAA,GAAA,SAAI,CAAC,KAAG,EAAE;CAAI,OAAO;AAAC,GAAE,MAAG,GAAE,MAAI;CAAC,IAAM,IAAE,CAAC;CAAE,KAAI,IAAM,KAAK,GAAE,KAAY,EAAE,OAAX,KAAK,MAAW,EAAE,KAAG,EAAE,GAAG;CAAS,OAAO;AAAC,GAAE,MAAG,GAAE,MAAI;CAAC,IAAM,IAAE,EAAE,SAAS;CAAE,OAAO,IAAE,OAAO,KAAK,CAAC,EAAE,QAAQ,GAAE,OAAK,EAAE,KAAG,OAAO,UAAU,eAAe,KAAK,GAAE,CAAC,IAAE,EAAE,KAAG,EAAE,IAAG,IAAG,CAAC,CAAC,IAAE;AAAC;AAAE,SAAS,GAAE,GAAE,GAAE,IAAE,IAAE,GAAE;CAAC,IAAM,IAAE,SAAS,GAAE,GAAE;EAAwB,OAAX,MAAT,KAAK,IAAa,IAAS,OAAO,KAAK,CAAC,EAAE,QAAQ,GAAE,OAAK,GAAE,GAAE,CAAC,MAAI,EAAE,KAAG,EAAE,KAAI,IAAG,CAAC,CAAC;CAAC,EAAE,GAAE,CAAC,GAAE,EAAC,sBAAqB,IAAE,CAAC,MAAG,GAAE,CAAC,GAAE,IAAE,CAAC,KAAG,IAAE,SAAS,GAAE;EAAC,IAAM,IAAE,CAAC,GAAE,IAAE,CAAC;EAAE,KAAI,IAAM,KAAK,GAAE;GAAC,IAAO,EAAE,QAAQ,GAAG,MAAjB,GAAmB;GAAS,IAAM,KAAA,GAAA,GAAA,SAAI,CAAC;GAAE,EAAE,KAAG,EAAE,IAAG,EAAE,KAAG;EAAC;EAAC,OAAM,CAAC,GAAE,CAAC;CAAC,EAAE,CAAC,IAAE,CAAC,CAAC;CAAE,OAAM;EAAC,OAAM,EAAE,uBAAqB,GAAE,GAAE,GAAE,GAAE,CAAC,IAAE;EAAE,YAAW;CAAC;AAAC;AAAC,SAAS,GAAE,GAAE,GAAE;CAAC,OAAO,OAAO,UAAU,eAAe,KAAK,GAAE,CAAC;AAAC;AAAC,SAAS,GAAE,GAAE,GAAE,GAAE,GAAE;CAAC,OAAO,IAAI,MAAM,GAAE,EAAC,IAAI,GAAE,GAAE,GAAE;EAAC,IAAM,IAAE,QAAQ,IAAI,GAAE,GAAE,CAAC,GAAE,IAAE,KAAG,GAAE,GAAE,CAAC,KAAG,GAAE,GAAE,CAAC;EAAE,IAAa,OAAO,KAAjB,YAAoB,CAAC,GAAE,OAAO;EAAE,IAAY,MAAT,KAAK,GAAM;EAAO,IAAM,IAAE,IAAE,EAAE,KAAG;EAAE,OAAO,EAAE,UAAU,GAAE,CAAC;CAAC,EAAC,CAAC;AAAC;AAAC,GAAE,gBAAc;AAAE,IAAM,KAAE;CAAC,aAAY;CAAmB,gBAAe;CAAQ,4BAA2B,CAAC;AAAC,GAAM,KAAE,OAAO,gBAAe,KAAE,OAAO,kBAAiB,KAAE,OAAO,2BAA0B,KAAE,OAAO,uBAAsB,KAAE,OAAO,UAAU,gBAAe,KAAE,OAAO,UAAU,sBAAqB,MAAG,GAAE,GAAE,MAAI,KAAK,IAAE,GAAE,GAAE,GAAE;CAAC,YAAW,CAAC;CAAE,cAAa,CAAC;CAAE,UAAS,CAAC;CAAE,OAAM;AAAC,CAAC,IAAE,EAAE,KAAG,GAAE,KAAG,GAAE,MAAI;CAAC,KAAI,IAAI,KAAK,AAAI,MAAE,CAAC,GAAG,GAAE,KAAK,GAAE,CAAC,KAAG,GAAE,GAAE,GAAE,EAAE,EAAE;CAAE,IAAG,IAAE,KAAI,IAAI,KAAK,GAAE,CAAC,GAAE,GAAE,KAAK,GAAE,CAAC,KAAG,GAAE,GAAE,GAAE,EAAE,EAAE;CAAE,OAAO;AAAC,GAAE,MAAG,GAAE,MAAI,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE,MAAG,GAAE,GAAE,MAAI,IAAI,SAAS,GAAE,MAAI;CAAC,IAAI,KAAE,MAAG;EAAC,IAAG;GAAC,EAAE,EAAE,KAAK,CAAC,CAAC;EAAC,SAAO,GAAE;GAAC,EAAE,CAAC;EAAC;CAAC,GAAE,KAAE,MAAG;EAAC,IAAG;GAAC,EAAE,EAAE,MAAM,CAAC,CAAC;EAAC,SAAO,GAAE;GAAC,EAAE,CAAC;EAAC;CAAC,GAAE,KAAE,MAAG,EAAE,OAAK,EAAE,EAAE,KAAK,IAAE,QAAQ,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAE,CAAC;CAAE,GAAG,IAAE,EAAE,MAAM,GAAE,CAAC,GAAG,KAAK,CAAC;AAAC,CAAC,GAAQ,KAAN,cAAgBkC,GAAAA,UAAC;CAAC,YAAY,GAAE;EAAC,MAAM,CAAC,GAAE,KAAK,wBAAoB,EAAE,EAAE,CAAC,GAAE,EAAC,GAAE,KAAK,MAAM,YAAY,GAAE,KAAK,sBAAmB,MAAG;GAAC,IAAK,EAAC,OAAM,MAAG,KAAK;GAAM,EAAE,GAAG,WAAS,MAAG;IAAC,IAAM,IAAE,KAAK,gBAAgB,GAAE,IAAE,GAAE,GAAE,CAAC;IAAE,OAAO,KAAK,CAAC,EAAE,SAAO,KAAG,KAAK,UAAS,MAAG;KAAC,IAAM,IAAE,EAAE,EAAE,CAAC,GAAE,EAAE,cAAc,GAAE,CAAC;KAAE,OAAO,EAAE,GAAE,EAAE,CAAC,GAAE,CAAC,GAAE,EAAC,gBAAe,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC;IAAC,CAAC;GAAC,CAAC;EAAC,GAAE,KAAK,YAAU,GAAE,MAAI;GAAC,KAAK,UAAS,MAAG,GAAE,EAAE,CAAC,GAAE,CAAC,GAAE,EAAC,OAAM,EAAC,CAAC,CAAC;EAAC,GAAE,KAAK,WAAS,GAAE,GAAE,MAAI;GAAC,IAAM,IAAE,GAAE,GAAE,CAAC;GAAE,KAAK,UAAS,MAAG,EAAE,GAAE,EAAE,CAAC,GAAE,CAAC,GAAE,EAAC,gBAAe,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,CAAC;EAAC,GAAE,KAAK,wBAAoB,GAAE,MAAK,MAAK,aAAW;GAAO,IAAK,EAAC,cAAa,GAAE,OAAM,GAAE,SAAQ,MAAG,KAAK,OAAU,IAAE,MAAM,KAAK,MAAM,UAAe,IAAE,KAAK,gBAAgB,GAAM,GAAE,IAAE,KAAK,MAAM;GAAe,IAAG,GAAE,IAAE,GAAE,GAAE,CAAC;QAAM;IAA8D,IAAEC,GAAE,GAAhD,GAAE,KAAK,KAAK,KAAK;KAAC,WAAU,CAAC;KAAE,MAAK;IAAM,GAAU,EAAE,EAAE,CAAC,GAAE,EAAC,GAAE,CAAC,CAAC;IAAE,IAAG;KAAC,MAAM,EAAE,sBAAsB,KAAK,MAAM,OAAO,GAAE,IAAE,GAAE,GAAE,CAAC;IAAC,SAAO,GAAE;KAAC,IAAE,GAAS,KAAN,QAAe,EAAE,KAAK,YAAY,EAAE,SAAS,SAAS,MAAK,EAAE,GAAG,UAAS,KAAK,QAAQ,GAAE,EAAE,GAAG,eAAY;MAAC,KAAK,QAAQ,GAAE,GAAE,CAAC;KAAC,CAAC;IAAE;GAAC;GAAC,KAAK,UAAS,MAAG,GAAE,EAAE,GAAE,EAAE,CAAC,GAAE,CAAC,GAAE,EAAC,gBAAe,EAAC,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,CAAC,CAAC,GAAE;IAAC,UAAS;IAAE,OAAM;GAAC,CAAC,CAAC,GAAE,KAAK,mBAAmB,CAAC;EAAC,CAAC;EAAE,IAAK,EAAC,SAAQ,MAAG;EAAE,IAAG,KAAK,QAAM;GAAC,OAAM,CAAC;GAAE,gBAAe,CAAC;GAAE,YAAW,CAAC;EAAC,GAAE,GAAE;GAAC,IAAK,EAAC,WAAU,MAAG;GAAE,IAAG,KAAoB,MAAjB,gBAAmB;IAAC,IAAK,EAAC,sBAAqB,MAAG,KAAK,gBAAgB;IAAE,KAAK,QAAM;KAAC,OAAM,IAAE,GAAE,CAAC,IAAE;KAAE,gBAAe;KAAE,YAAW,CAAC;IAAC;GAAC;EAAC;CAAC;CAAC,oBAAmB;EAAC,OAAO,GAAE,MAAK,MAAK,aAAW;GAAC,IAAK,EAAC,qBAAoB,MAAG,KAAK;GAAM,KAAG,CAAC,GAAE,KAAK,KAAK,MAAI,MAAM,KAAK,gBAAgB;EAAE,CAAC;CAAC;CAAC,mBAAmB,GAAE;EAAC,OAAO,GAAE,MAAK,MAAK,aAAW;GAAC,IAAK,EAAC,qBAAoB,MAAG,KAAK,OAAM,IAAE,CAAC,GAAE,CAAC,KAAG,GAAE,KAAK,KAAK;GAAE,KAAG,MAAI,MAAM,KAAK,gBAAgB;EAAE,CAAC;CAAC;CAAC,SAAQ;EAAC,IAAK,EAAC,OAAM,GAAE,YAAW,GAAE,UAAS,GAAE,OAAM,MAAG,KAAK,OAAM,EAAC,cAAa,MAAG,KAAK,gBAAgB;EAAE,OAAA,GAAS,cAAc,EAAE,UAAS,EAAC,OAAM;GAAC,OAAM;GAAE,YAAW;GAAE,UAAS;GAAE,OAAM;EAAC,EAAC,GAAE,KAAK,MAAM,QAAQ;CAAC;AAAC,GAA+/F,MAAG,MAAG;CAAC,IAAK,EAAC,OAAM,OAAA,GAAA,GAAA,YAAW,KAAI,GAAE,YAAY;CAAE,OAAO;AAAC,GAAE,MAAG,MAAG;CAAC,IAAK,EAAC,UAAS,OAAA,GAAA,GAAA,YAAW,KAAI,GAAE,YAAY;CAAE,OAAO;AAAC,GCkCvjO,KAAsB;CACjC,+CAA+C;CAC/C,oBAAoB;CACpB,qCAAqC;CACrC,iCAAiC;CACjC,6BAA6B;CAC7B,sBAAsB;CACtB,wBAAwB;CACxB,uBAAuB;CACvB,gCAAgC;AAClC,GC1CM,KAA2B,iBASpB,MACX,IAAY,IACZ,IAAQ,OAAO,SAAS,SAGH,IADL,IAAI,CACC,EAAI,aAAa,OAAO,EAE3B,EAAa,QAAQ,GAAmB,MAAQ;CAChE,IAAM,CAAC,GAAK,KAAO,EAAI,MAAM,GAAG;CAIhC,IAAI,CAAC,KAAO,CAAC,KAAO,CAAC,OAAO,KAAK,CAAS,EAAE,SAAS,CAAG,GACtD,OAAO;CAKT,IAAM,IAAgB,MAAQ,UAAU,MAAQ,UAAU,KAAK,MAAM,CAAG,IAAI;CAE5E,OAAO;EAAE,GAAG;GAAoB,IAAM;CAAc;AACtD,GAAG,CAAC,CAEG,GCtBI,WAAwB;CACnC,IAAM,IAAuB,GAAW,GAClC,IAAkB,GAAmB;CAC3C,OAAO;EAAE,GAAG;EAAe,GAAG;CAAgB;AAChD;AASA,SAAgB,GAA6B,GAAmB;CAE9D,OADc,GACP,EAAM;AACf"}
|