{"version":3,"file":"helpers.CV6JJx5C.js","sources":["../../../src/modules/enrollment/plans/nm-the-education-plan/nm-faq-questions.tsx","../../../src/modules/enrollment/plans/sc-future-scholar/sc-faq-questions.tsx","../../../src/modules/enrollment/plans/texas-529/tx-faq-questions.tsx","../../../src/modules/enrollment/plans/sc-future-scholar/future-scholar-logo.png","../../../src/modules/enrollment/plans/texas-529/texas-529-logo.png","../../../src/modules/enrollment/plans/nm-the-education-plan/nm-the-education-plan-logo.png","../../../src/modules/enrollment/enrollment-config.ts","../../../src/modules/enrollment/helpers.ts"],"sourcesContent":["import { Link } from '@components/ui/link'\nimport type { FAQItem } from '@components/faq-block'\n\nexport const nmGeneralFaqs: FAQItem[] = [\n {\n question: 'How does this work?',\n answer:\n 'Saving For College offers a simplified way for you to open an account in The Education Plan directly from our site. We’ll guide you step-by-step to complete the 529 application and then transmit it electronically on your behalf. In a matter of minutes you’ll receive full access to the The Education Plan dashboard to initiate contributions and manage your account.'\n },\n {\n question: 'Does it cost anything?',\n answer:\n 'It’s completely free to you! We’re aiming to streamline the 529 enrollment process to make it as simple and as fast as possible to start saving for your future student’s education.'\n },\n {\n question: 'Are there any restrictions on opening an account?',\n answer:\n 'To open an account in the The Education Plan an individual must be a U.S. citizen or permanent resident alien at least 18 years old with a valid Social Security number at the time of program enrollment.'\n },\n {\n question: 'Who manages my 529 plan?',\n answer: `Your 529 provider is the The Education Plan operated by the The Education Trust Board of New Mexico. It’s a highly-rated 529 savings plan designed to help families save for education expenses, including tuition for K-12, college, apprenticeship programs, and more.`\n },\n {\n question: 'How do I add funds to my account?',\n answer:\n 'You may notice that our expedited enrollment process does not include initial funding of the account. After providing all required information you will be able to sign in to the The Education Plan dashboard where you can manage your contributions easily and securely.'\n },\n {\n question: 'How is my personal data managed?',\n answer:\n 'Security of your personal data is our top priority. We do not retain your information (other than your email address) beyond the timeframe needed to successfully establish your 529 account. All other data you provide during the application process is encrypted and securely transmitted directly to the plan.'\n }\n]\n\nexport const nmPortfolioFaqs: FAQItem[] = [\n {\n question: 'Why is a Year of Enrollment portfolio shown as my default selection?',\n answer:\n 'Year of Enrollment portfolios are the most popular approach to investing using a 529 account. This approach balances growth and risk, automatically shifting from portfolios with more stocks to more conservative investments as your child nears college age. We’ve defaulted your selection to a specific portfolio based on your future student’s projected year of college enrollment. If you expect to use the savings earlier than age 18 of your beneficiary, you may select a different portfolio through “Customize your investment”.'\n },\n {\n question: 'Can I change my investment option later?',\n answer:\n 'Yes, after completing the enrollment process you are free to change your investment option up to two times per year through the The Education Plan dashboard. You might do this because you’d like to adjust your level of investment risk, or due to a projected change in college enrollment year, or for any other reason you may have.'\n },\n {\n question: 'What is meant by “customize your investment”',\n answer: (\n <>\n

\n “Customize your investment” is best suited to individuals who prefer a\n hands-on approach and are comfortable managing their investments according to their\n advanced financial knowledge. If you prefer to select your own portfolios, this option\n lets you specify how your contributions will be invested. In addition to additional Year\n of Enrollment portfolios, you can choose from Allocation or{' '}\n Individual portfolio options and allocate your contributions across\n multiple portfolios based on your specific preferences and goals. You must allocate at\n least 1% to each selected portfolio, and your total allocations must equal 100%. These\n allocation percentages will apply to both your initial contribution and any future\n contributions.\n

\n \n )\n }\n]\n\nexport const nmConfirmationFaqs: FAQItem[] = [\n {\n question: 'Will I receive a confirmation of account completion?',\n answer:\n 'Yes! After completing your enrollment, you will receive an email from Saving For College as well as an email from your plan provider confirming account setup.'\n },\n {\n question: 'What are my next steps?',\n answer: (\n <>\n

\n The next step is to make a contribution to your The Education Plan plan to kick off your\n education savings. To access your account, visit{' '}\n \n https://www.theeducationplan.com/\n {' '}\n select ‘Login’ and sign in using the username and password you entered during the\n enrollment flow. Once you’ve logged in, review your dashboard and set up your first\n contribution.\n

\n
\n

You can establish an initial contribution in one of several ways:

\n \n
\n

\n Anyone can contribute to your 529 plan, including parents, grandparents, family members,\n and friends, up to a total balance of $500,000.\n

\n \n )\n },\n {\n question: 'How do I sign in to my 529 account?',\n answer: (\n <>\n

\n To access your account, visit{' '}\n \n https://www.theeducationplan.com/\n {' '}\n , select ‘Login’ and sign in using the username and password you created during the\n enrollment flow.\n

\n

\n If you forgot your password, you can reset it{' '}\n \n here\n \n . Simply enter the email address you used when enrolling in your plan, and follow the\n instructions to reset your password.\n

\n \n )\n },\n {\n question: 'Where can I find more information about my 529 Plan?',\n answer: (\n <>\n

\n The Education Plan offers comprehensive education pages with detailed information about\n 529 plans. You can learn about{' '}\n \n 529 Basics\n {' '}\n and additional smart planning tips. To access this resource, visit the The Education\n Plan’s 529 Basics section.\n

\n

\n If you have other specific questions after you’ve established your account, please refer\n to the{' '}\n \n Contact Us\n {' '}\n page to reach a service representative by email or phone.\n

\n \n )\n }\n]\n","import { Link } from '@components/ui/link'\nimport type { FAQItem } from '@components/faq-block'\n\nexport const scGeneralFaqs: FAQItem[] = [\n {\n question: 'How does this work?',\n answer:\n 'Saving For College offers a simplified way for you to open a Future Scholar 529 plan account directly from our site. We’ll guide you step-by-step to complete the 529 application and then transmit it electronically on your behalf. In a matter of minutes you’ll receive full access to the Future Scholar 529 dashboard to initiate contributions and manage your account.'\n },\n {\n question: 'Does it cost anything?',\n answer:\n 'It’s completely free to you! We’re aiming to streamline the 529 enrollment process to make it as simple and as fast as possible to start saving for your future student’s education.'\n },\n {\n question: 'Are there any restrictions on opening an account?',\n answer:\n 'To open an account in the Future Scholar 529 Plan either the account owner or beneficiary must be a resident of South Carolina, or an employee of the State of South Carolina, at the time of program enrollment.'\n },\n {\n question: 'Who manages my 529 plan?',\n answer: `Your 529 provider is the Future Scholar 529 Plan operated by the South Carolina State Treasurer’s office. It’s a highly-rated 529 savings plan designed to help families save for education expenses, including tuition for K-12, college, trade schools, and more.`\n },\n {\n question: 'How do I add funds to my account?',\n answer:\n 'You may notice that our expedited enrollment process does not include initial funding of the account. After providing all required information you will be able to sign in to the Future Scholar 529 dashboard where you can manage your contributions easily and securely.'\n },\n {\n question: 'How is my personal data managed?',\n answer:\n 'Security of your personal data is our top priority. We do not retain your information beyond the timeframe needed to successfully establish your 529 account. All data you provide during the application process is encrypted and securely transmitted directly to the plan.'\n }\n]\n\nexport const scPortfolioFaqs: FAQItem[] = [\n {\n question: 'Why is a Moderate age-based portfolio shown as my default selection?',\n answer:\n 'Age-based portfolios are the most popular approach to investing using a 529 account. The Moderate age-based track balances growth and risk, moving you automatically through a series of portfolios that shift from more stocks to more conservative investments as your child nears college age. We’ve defaulted your selection to a specific portfolio based on your future student’s projected year of college enrollment.'\n },\n {\n question: 'Can I change my investment option later?',\n answer:\n 'Yes, after completing the enrollment process you are free to change your investment option up to two times per year through the Future Scholar 529 dashboard. You might do this because you’d like to adjust your level of investment risk, or due to a projected change in college enrollment year, or for any other reason you may have.'\n },\n {\n question: 'What is meant by “customize your investment”',\n answer: (\n <>\n

\n “Customize your investment” is best suited to individuals who prefer a\n hands-on approach and are comfortable managing their investments according to their\n advanced financial knowledge. If you prefer to select your own portfolios, this option\n lets you specify how your contributions will be invested. You can choose from additional\n investment options such as the Target Allocation Option or{' '}\n Single-fund Option and allocate your contributions across multiple\n portfolios based on your specific preferences and goals.\n

\n
\n

\n You must allocate at least 1% to each selected portfolio, and your total allocations must\n equal 100%. These allocation percentages will apply to both your initial contribution and\n any future contributions.\n

\n \n )\n }\n]\n\nexport const scConfirmationFaqs: FAQItem[] = [\n {\n question: 'Will I receive a confirmation of account completion?',\n answer:\n 'Yes! After completing your enrollment, you will receive an email from Saving For College as well as an email from your plan provider confirming account setup.'\n },\n {\n question: 'What are my next steps?',\n answer: (\n <>\n

\n The next step is to make a contribution to your Future Scholar 529 plan to kick off your\n education savings. To access your account, visit{' '}\n \n futurescholar.com/login\n {' '}\n and sign in using the username and password you entered during the enrollment flow. Once\n you’ve logged in, review your dashboard and set up your first contribution.\n

\n
\n

You can establish an initial contribution in one of several ways:

\n \n
\n

\n Anyone can contribute to your 529 plan, including parents, grandparents, family members,\n and friends, up to a total balance of $575,000.\n

\n \n )\n },\n {\n question: 'How do I sign in to my 529 account?',\n answer: (\n <>\n

\n To access your account, visit{' '}\n \n futurescholar.com/login\n {' '}\n and sign in using the username and password you created during the enrollment flow.\n

\n

\n If you forgot your password, you can reset it{' '}\n \n here\n \n . Simply enter the email address you used when enrolling in your plan, and follow the\n instructions to reset your password.\n

\n \n )\n },\n {\n question: 'Where can I find more information about my 529 Plan?',\n answer: (\n <>\n

\n Future Scholar offers a comprehensive resource hub with detailed information about 529\n plans. You can explore FAQs on topics such as contribution limits, tax benefits,\n transferring assets, qualified expenses, and more. To access this resource, visit the\n Future Scholar{' '}\n \n \n Common Questions\n \n {' '}\n section. It provides answers to everything from basic 529 plan concepts to more complex\n rules about saving and contributions.\n

\n

\n If you have other specific questions after you’ve established your account, please refer\n to the{' '}\n \n \n Contact\n \n {' '}\n page to reach a service representative by email or phone.\n

\n \n )\n }\n]\n","import { Link } from '@components/ui/link'\nimport type { FAQItem } from '@components/faq-block'\n\nexport const txGeneralFaqs: FAQItem[] = [\n {\n question: 'How does this work?',\n answer:\n 'Saving For College offers a simplified way for you to open a Texas College Savings Plan account directly from our site. We’ll guide you step-by-step to complete the 529 application and then transmit it electronically on your behalf. In a matter of minutes you’ll receive full access to the Texas College Savings Plan dashboard to initiate contributions and manage your account.'\n },\n {\n question: 'Does it cost anything?',\n answer:\n 'It’s completely free to you! We’re aiming to streamline the 529 enrollment process to make it as simple and as fast as possible to start saving for your future student’s education.'\n },\n {\n question: 'Are there any restrictions on opening an account?',\n answer:\n 'To open an account in the Texas College Savings Plan an individual must be a U.S. citizen or permanent resident alien at least 18 years old with a valid Social Security number at the time of program enrollment.'\n },\n {\n question: 'Who manages my 529 plan?',\n answer: `Your 529 provider is the Texas College Savings Plan operated by the Texas Prepaid Higher Education Tuition Board. It’s a highly-rated 529 savings plan designed to help families save for education expenses, including tuition for K-12, college, trade schools, and more.`\n },\n {\n question: 'How do I add funds to my account?',\n answer:\n 'You may notice that our expedited enrollment process does not include initial funding of the account. After providing all required information you will be able to sign in to the Texas College Savings Plan dashboard where you can manage your contributions easily and securely.'\n },\n {\n question: 'How is my personal data managed?',\n answer:\n 'Security of your personal data is our top priority. We do not retain your information beyond the timeframe needed to successfully establish your 529 account. All data you provide during the application process is encrypted and securely transmitted directly to the plan.'\n }\n]\n\nexport const txPortfolioFaqs: FAQItem[] = [\n {\n question: 'Why is an age-based portfolio shown as my default selection?',\n answer:\n 'Age-based portfolios are the most popular approach to investing using a 529 account. This approach balances growth and risk, automatically shifting from portfolios with more stocks to more conservative investments as your child nears college age. We’ve defaulted your selection to a specific portfolio based on your future student’s projected year of college enrollment.'\n },\n {\n question: 'Can I change my investment option later?',\n answer:\n 'Yes, after completing the enrollment process you are free to change your investment option up to two times per year through the Texas College Savings Plan dashboard. You might do this because you’d like to adjust your level of investment risk, or due to a projected change in college enrollment year, or for any other reason you may have.'\n },\n {\n question: 'What is meant by “customize your investment”',\n answer: (\n <>\n

\n “Customize your investment” is best suited to individuals who prefer a\n hands-on approach and are comfortable managing their investments according to their\n advanced financial knowledge. If you prefer to select your own portfolios, this option\n lets you specify how your contributions will be invested. You can choose from{' '}\n Risk-based\n or Individual Asset Class options and allocate your contributions across\n multiple portfolios based on your specific preferences and goals. You must allocate at\n least 1% to each selected portfolio, and your total allocations must equal 100%. These\n allocation percentages will apply to both your initial contribution and any future\n contributions.\n

\n \n )\n }\n]\n\nexport const txConfirmationFaqs: FAQItem[] = [\n {\n question: 'Will I receive a confirmation of account completion?',\n answer:\n 'Yes! After completing your enrollment, you will receive an email from Saving For College as well as an email from your plan provider confirming account setup.'\n },\n {\n question: 'What are my next steps?',\n answer: (\n <>\n

\n The next step is to make a contribution to your Texas College Savings Plan plan to kick\n off your education savings. To access your account, visit{' '}\n \n https://uportal.ultimusfundsolutions.com/app/texas529plan/#login\n {' '}\n and sign in using the username and password you entered during the enrollment flow. Once\n you’ve logged in, review your dashboard and set up your first contribution.\n

\n
\n

You can establish an initial contribution in one of several ways:

\n \n
\n

\n Anyone can contribute to your 529 plan, including parents, grandparents, family members,\n and friends, up to a total balance of $540,000.\n

\n \n )\n },\n {\n question: 'How do I sign in to my 529 account?',\n answer: (\n <>\n

\n To access your account, visit{' '}\n \n https://uportal.ultimusfundsolutions.com/app/texas529plan/#login\n {' '}\n and sign in using the username and password you created during the enrollment flow.\n

\n

\n If you forgot your password, you can reset it{' '}\n \n here\n \n . Simply enter the email address you used when enrolling in your plan, and follow the\n instructions to reset your password.\n

\n \n )\n },\n {\n question: 'Where can I find more information about my 529 Plan?',\n answer: (\n <>\n

\n Texas College Savings Plan offers a comprehensive learning hub with detailed information\n about 529 plans. You can learn about Investing Basics or explore FAQs on topics such as\n contributions and withdrawals, investing options and more. To access this resource, visit\n the Texas College Savings Plan{' '}\n \n Learning\n {' '}\n section.\n

\n

\n If you have other specific questions after you’ve established your account, please refer\n to the{' '}\n \n Contact\n {' '}\n page to reach a service representative by email or phone.\n

\n \n )\n }\n]\n","export default {\"src\":\"__ASTRO_ASSET_IMAGE__BuvlYcKx__\",\"width\":432,\"height\":82,\"format\":\"png\"}","export default {\"src\":\"__ASTRO_ASSET_IMAGE__CrXsHI$U__\",\"width\":306,\"height\":158,\"format\":\"png\"}","export default {\"src\":\"__ASTRO_ASSET_IMAGE__JXWysF_w__\",\"width\":404,\"height\":77,\"format\":\"png\"}","import type { PlanConfig } from './enrollment-model'\nimport {\n nmConfirmationFaqs,\n nmPortfolioFaqs,\n nmGeneralFaqs\n} from './plans/nm-the-education-plan/nm-faq-questions'\nimport {\n scConfirmationFaqs,\n scGeneralFaqs,\n scPortfolioFaqs\n} from './plans/sc-future-scholar/sc-faq-questions'\nimport {\n txGeneralFaqs,\n txPortfolioFaqs,\n txConfirmationFaqs\n} from './plans/texas-529/tx-faq-questions'\nimport { z } from 'zod'\nimport futureScholarLogoImg from '@modules/enrollment/plans/sc-future-scholar/future-scholar-logo.png'\nimport texas529LogoImg from '@modules/enrollment/plans/texas-529/texas-529-logo.png'\nimport nmLogoImg from '@modules/enrollment/plans/nm-the-education-plan/nm-the-education-plan-logo.png'\n\nconst scPasswordRegex =\n /^(?:(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()\\\\-__+.])|(?=.*[a-z])(?=.*\\d)(?=.*[!@#$%^&*()\\\\-__+.])|(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()\\\\-__+.])).{8,}$/\n\nexport const SC_CONFIG: PlanConfig = {\n id: 'ScFutureScholar',\n sfcId: 36,\n planName: 'Future Scholar',\n planUrl: 'https://futurescholar.com/',\n planLoginUrl: 'https://futurescholar.com/login/',\n slug: 'future-scholar-529-college-savings-plan-direct-sold',\n portfolioManager: 'Columbia Management',\n planLogoImg: futureScholarLogoImg,\n maxBalance: '$575,000',\n hasCitizenship: false,\n supportsZipCodeSuffix: false,\n supportsMailingAddress: false,\n supportsPhoneNumberType: false,\n genericFaqs: scGeneralFaqs,\n portfolioFaqs: scPortfolioFaqs,\n confirmationFaqs: scConfirmationFaqs,\n usernameSchema: z\n .string()\n .min(6, 'Username must be at least 6 characters')\n .refine((username) => /^[a-zA-Z0-9]*$/.test(username), {\n message: 'Username must contain only letters and numbers'\n })\n .refine(\n (username) => {\n const lettersOnly = username.match(/[a-zA-Z]/g)\n return lettersOnly ? lettersOnly.length >= 2 : false\n },\n {\n message: 'Username must contain at least 2 letters'\n }\n )\n .refine(\n (username) => {\n const numbersOnly = username.match(/[0-9]/g)\n return numbersOnly ? numbersOnly.length >= 1 : false\n },\n {\n message: 'Username must contain at least 1 number'\n }\n ),\n usernameRequirements:\n 'Requires 6 to 32 characters with at least 2 letters and 1 number. Special characters (@, #, $, etc.) are not allowed.',\n getPasswordSchema: z\n .string()\n .min(8, 'Password must be at least 8 characters')\n .refine(\n (password) => scPasswordRegex.test(password),\n 'Password must include 3 of: uppercase, lowercase, number, or special character.'\n ),\n passwordRequirements:\n 'Must be 8+ characters and include 3 of these: uppercase, lowercase, number, or special characters (!, @, #, etc.).',\n genders: [\n {\n label: 'Female',\n value: 0,\n planValue: 'F'\n },\n {\n label: 'Male',\n value: 1,\n planValue: 'M'\n },\n {\n label: 'Other',\n value: 2,\n planValue: 'O'\n }\n ],\n relationhips: [\n {\n label: 'Parent/Guardian',\n value: 0,\n planValue: 'Parent/Guardian'\n },\n {\n label: 'Brother/Sister',\n value: 1,\n planValue: 'Brother/Sister'\n },\n {\n label: 'Friend',\n value: 2,\n planValue: 'Friend'\n },\n {\n label: 'Grandparent',\n value: 3,\n planValue: 'Grandparent'\n },\n {\n label: 'Other',\n value: 4,\n planValue: 'Other'\n },\n {\n label: 'Self',\n value: 5,\n planValue: 'Self'\n },\n {\n label: 'Uncle/Aunt',\n value: 6,\n planValue: 'Uncle/Aunt'\n }\n ],\n successorTypes: [],\n hasSuccessor: false,\n emailPlanImage: 'future-scholar-logo.png',\n emailMoreInfoContent: `\n \n Where can I find more information about my 529 plan?\n \n \n

\n Future Scholar offers a comprehensive resource hub with detailed information about 529 plans. You can explore FAQs on topics such as contribution limits, tax benefits, transferring assets, qualified expenses, and more. To access this resource, visit the Future Scholar\n Common Questions section.\n It provides answers to everything from basic 529 plan concepts to more complex rules about saving and contributions.\n

\n

\n If you have other specific questions after you’ve established your account, please refer to the\n Contact page to reach a service representative by email or phone.\n

\n
\n `\n}\n\nexport const TX_CONFIG: PlanConfig = {\n id: 'Texas529',\n sfcId: 0,\n planName: 'Texas College Savings Plans',\n planUrl: 'https://www.texascollegesavings.com/',\n planLoginUrl: 'https://uportal.ultimusfundsolutions.com/app/texas529plan/#login',\n slug: 'texas-529-college-savings-plan-direct-sold',\n portfolioManager: '',\n planLogoImg: texas529LogoImg,\n maxBalance: '$500,000',\n hasCitizenship: false,\n supportsZipCodeSuffix: true,\n supportsMailingAddress: false,\n supportsPhoneNumberType: false,\n genericFaqs: txGeneralFaqs,\n portfolioFaqs: txPortfolioFaqs,\n confirmationFaqs: txConfirmationFaqs,\n usernameSchema: z\n .string()\n .min(6, 'Username must be at least 6 characters')\n .refine((username) => /^[a-zA-Z0-9]*$/.test(username), {\n message: 'Username must contain only letters and numbers'\n })\n .refine(\n (username) => {\n const lettersOnly = username.match(/[a-zA-Z]/g)\n return lettersOnly ? lettersOnly.length >= 2 : false\n },\n {\n message: 'Username must contain at least 2 letters'\n }\n )\n .refine(\n (username) => {\n const numbersOnly = username.match(/[0-9]/g)\n return numbersOnly ? numbersOnly.length >= 1 : false\n },\n {\n message: 'Username must contain at least 1 number'\n }\n ),\n usernameRequirements:\n 'Requires 6 to 32 characters with at least 2 letters and 1 number. Special characters (@, #, $, etc.) are not allowed.',\n getPasswordSchema: z\n .string()\n .min(8, 'Password must be at least 8 characters')\n .refine(\n (password) => scPasswordRegex.test(password),\n 'Password must include 3 of: uppercase, lowercase, number, or special character.'\n ),\n passwordRequirements:\n 'Must be 8+ characters and include 3 of these: uppercase, lowercase, number, or special characters (!, @, #, etc.).',\n genders: [\n {\n label: 'N/A',\n value: 0,\n planValue: 0\n },\n {\n label: 'Male',\n value: 1,\n planValue: 1\n },\n {\n label: 'Female',\n value: 2,\n planValue: 2\n }\n ],\n relationhips: [\n {\n label: 'BENEFICIARY',\n value: 10,\n planValue: 10\n },\n {\n label: 'BROTHER/SISTER',\n value: 13,\n planValue: 13\n },\n {\n label: 'CHILD',\n value: 3,\n planValue: 3\n },\n {\n label: 'COUSIN',\n value: 31,\n planValue: 31\n },\n {\n label: 'DAUGHTER',\n value: 12,\n planValue: 12\n },\n {\n label: 'FRIEND',\n value: 14,\n planValue: 14\n },\n {\n label: 'GRANDFATHER',\n value: 25,\n planValue: 25\n },\n {\n label: 'GRANDMOTHER',\n value: 33,\n planValue: 33\n },\n {\n label: 'GRANDDAUGHTER',\n value: 32,\n planValue: 32\n },\n {\n label: 'GRANDNIECE',\n value: 34,\n planValue: 34\n },\n {\n label: 'GRANDNEPHEW',\n value: 35,\n planValue: 35\n },\n {\n label: 'GRANDSON',\n value: 28,\n planValue: 28\n },\n {\n label: 'GRANDCHILD',\n value: 9,\n planValue: 9\n },\n {\n label: 'GRANDPARENT',\n value: 5,\n planValue: 5\n },\n {\n label: 'MOTHER',\n value: 36,\n planValue: 36\n },\n {\n label: 'NIECE',\n value: 37,\n planValue: 37\n },\n {\n label: 'NEPHEW',\n value: 38,\n planValue: 38\n },\n {\n label: 'NEPHEW/NIECE',\n value: 19,\n planValue: 19\n },\n {\n label: 'OTHER',\n value: 4,\n planValue: 4\n },\n {\n label: 'OTHER RELATIVE',\n value: 8,\n planValue: 8\n },\n {\n label: 'PARENT',\n value: 2,\n planValue: 2\n },\n {\n label: 'PARENT/GUARDIAN',\n value: 17,\n planValue: 17\n },\n {\n label: 'SELF',\n value: 7,\n planValue: 7\n },\n {\n label: 'SON',\n value: 11,\n planValue: 11\n },\n {\n label: 'SPOUSE',\n value: 16,\n planValue: 16\n },\n {\n label: 'STUDENT',\n value: 1,\n planValue: 1\n },\n {\n label: 'STUDENT/SELF',\n value: 30,\n planValue: 30\n },\n {\n label: 'SUCCESSOR',\n value: 21,\n planValue: 21\n },\n {\n label: 'SUCCESSOR OWNER',\n value: 20,\n planValue: 20\n },\n {\n label: 'UGMA',\n value: 22,\n planValue: 22\n },\n {\n label: 'UNCLE/AUNT',\n value: 6,\n planValue: 6\n },\n {\n label: 'UTMA',\n value: 29,\n planValue: 29\n }\n ],\n successorTypes: [\n {\n label: 'Spouse',\n value: 1,\n planValue: 1\n },\n {\n label: 'Non-Spouse Individual',\n value: 2,\n planValue: 2\n },\n {\n label: 'Other Entity (Non-Individual)',\n value: 3,\n planValue: 3\n },\n {\n label: 'Estate',\n value: 4,\n planValue: 4\n }\n ],\n hasSuccessor: true,\n securityQuestions: [\n {\n id: 1,\n question: \"What is your mother's maiden name?\"\n },\n {\n id: 2,\n question: \"What is your father's middle name?\"\n },\n {\n id: 3,\n question: 'What color was your first car?'\n },\n {\n id: 4,\n question: \"What is your pet's name?\"\n },\n {\n id: 5,\n question: 'What city were you born in?'\n },\n {\n id: 6,\n question: 'What is the name of your high school?'\n },\n {\n id: 7,\n question: \"What is your first child's middle name?\"\n },\n {\n id: 8,\n question: 'What is your favorite sports team?'\n }\n ],\n emailPlanImage: 'texas-529-logo.png',\n emailMoreInfoContent: ''\n}\n\nexport const NM_CONFIG: PlanConfig = {\n id: 'NmTheEducationPlan',\n sfcId: 68,\n planName: 'The Education Plan',\n planUrl: 'https://www.theeducationplan.com/',\n planLoginUrl: 'https://myaccount.theeducationplan.com/nmdtpl/auth/ll.cs',\n slug: 'new-mexico-the-education-plan',\n portfolioManager: 'Ascensus College Savings Recordkeeping Services, LLC',\n planLogoImg: nmLogoImg,\n maxBalance: '$500,000',\n hasCitizenship: true,\n supportsZipCodeSuffix: true,\n supportsMailingAddress: true,\n supportsPhoneNumberType: true,\n genericFaqs: nmGeneralFaqs,\n portfolioFaqs: nmPortfolioFaqs,\n confirmationFaqs: nmConfirmationFaqs,\n usernameSchema: z\n .string()\n .min(6, 'Username must be at least 6 characters')\n .max(25, 'Username must be at most 20 characters')\n .refine((username) => /^[a-zA-Z0-9._-]*$/.test(username), {\n message: 'Can include letters, numbers, underscores, periods, and/or dashes.'\n })\n .refine(() => true)\n .refine(() => true),\n usernameRequirements:\n 'Must be between 6 and 25 characters long. Can include letters, numbers, underscores, periods, and/or dashes.',\n getPasswordSchema: z\n .string()\n .min(8, 'Password must be at least 8 characters')\n .refine(() => true),\n passwordValidation: ({\n password,\n email,\n firstName,\n lastName,\n username\n }: {\n password: string\n email: string\n firstName: string\n lastName: string\n username: string\n }) => {\n if (password.toLowerCase().includes(firstName.toLowerCase())) {\n return 'Password cannot include first name.'\n }\n if (password.toLowerCase().includes(lastName.toLowerCase())) {\n return 'Password cannot include last name.'\n }\n if (password.toLowerCase().includes(username.toLowerCase())) {\n return 'Password cannot include username.'\n }\n if (password.toLowerCase().includes(email.toLowerCase())) {\n return 'Password cannot include email.'\n }\n return undefined\n },\n passwordRequirements:\n 'Password must be a minimum of 8 characters long and include 3 of the following: lower characters, upper characters, special characters, or numbers. Password cannot include first name, last name, username, or email.',\n genders: [\n {\n label: 'Female',\n value: 0,\n planValue: 'F'\n },\n {\n label: 'Male',\n value: 1,\n planValue: 'M'\n },\n {\n label: 'Other',\n value: 2,\n planValue: 'O'\n }\n ],\n relationhips: [\n {\n planValue: 'Child',\n value: 0,\n label: 'My child'\n },\n {\n planValue: 'GrandChild',\n value: 1,\n label: 'My grandchild'\n },\n {\n planValue: 'Niece/Nephew',\n value: 2,\n label: 'A niece/nephew'\n },\n {\n planValue: 'Other',\n value: 3,\n label: 'Someone else'\n },\n {\n planValue: 'Self',\n value: 4,\n label: 'Myself'\n }\n ],\n successorTypes: [],\n hasSuccessor: false,\n countries: [\n {\n value: 'AD',\n label: 'Andorra'\n },\n {\n value: 'AE',\n label: 'United Arab Emirates'\n },\n {\n value: 'AF',\n label: 'Afghanistan'\n },\n {\n value: 'AG',\n label: 'Antigua and Barbuda'\n },\n {\n value: 'AI',\n label: 'Anguilla'\n },\n {\n value: 'AL',\n label: 'Albania'\n },\n {\n value: 'AM',\n label: 'Armenia'\n },\n {\n value: 'AN',\n label: 'Netherlands Antilles'\n },\n {\n value: 'AO',\n label: 'Angola'\n },\n {\n value: 'AQ',\n label: 'Antarctica'\n },\n {\n value: 'AR',\n label: 'Argentina'\n },\n {\n value: 'AS',\n label: 'American Samoa'\n },\n {\n value: 'AT',\n label: 'Austria'\n },\n {\n value: 'AU',\n label: 'Australia'\n },\n {\n value: 'AW',\n label: 'Aruba'\n },\n {\n value: 'AX',\n label: 'Aland Islands'\n },\n {\n value: 'AZ',\n label: 'Azerbaijan'\n },\n {\n value: 'BA',\n label: 'Bosnia and Herzegowi'\n },\n {\n value: 'BB',\n label: 'Barbados'\n },\n {\n value: 'BD',\n label: 'Bangladesh'\n },\n {\n value: 'BE',\n label: 'Belgium'\n },\n {\n value: 'BF',\n label: 'Burkina Faso'\n },\n {\n value: 'BG',\n label: 'Bulgaria'\n },\n {\n value: 'BH',\n label: 'Bahrain'\n },\n {\n value: 'BI',\n label: 'Burundi'\n },\n {\n value: 'BJ',\n label: 'Benin'\n },\n {\n value: 'BL',\n label: 'Saint Barthélemy'\n },\n {\n value: 'BM',\n label: 'Bermuda'\n },\n {\n value: 'BN',\n label: 'Brunei Darussalam'\n },\n {\n value: 'BO',\n label: 'Bolivia'\n },\n {\n value: 'BQ',\n label: 'Bonaire, Sint Eustatius and Saba'\n },\n {\n value: 'BR',\n label: 'Brazil'\n },\n {\n value: 'BS',\n label: 'Bahamas'\n },\n {\n value: 'BT',\n label: 'Bhutan'\n },\n {\n value: 'BV',\n label: 'Bouvet Island'\n },\n {\n value: 'BW',\n label: 'Botswana'\n },\n {\n value: 'BY',\n label: 'Belarus'\n },\n {\n value: 'BZ',\n label: 'Belize'\n },\n {\n value: 'CA',\n label: 'Canada'\n },\n {\n value: 'CC',\n label: 'Cocos (Keeling) Isla'\n },\n {\n value: 'CD',\n label: 'Congo, Democratic Re'\n },\n {\n value: 'CF',\n label: 'Central African Repu'\n },\n {\n value: 'CG',\n label: 'Congo'\n },\n {\n value: 'CH',\n label: 'Switzerland'\n },\n {\n value: 'CI',\n label: \"Cote d'ivoire\"\n },\n {\n value: 'CK',\n label: 'Cook Islands'\n },\n {\n value: 'CL',\n label: 'Chile'\n },\n {\n value: 'CM',\n label: 'Cameroon'\n },\n {\n value: 'CN',\n label: 'China'\n },\n {\n value: 'CO',\n label: 'Colombia'\n },\n {\n value: 'CR',\n label: 'Costa Rica'\n },\n {\n value: 'CU',\n label: 'Cuba'\n },\n {\n value: 'CV',\n label: 'Cape Verde'\n },\n {\n value: 'CW',\n label: 'Curaçao'\n },\n {\n value: 'CX',\n label: 'Christmas Island'\n },\n {\n value: 'CY',\n label: 'Cyprus'\n },\n {\n value: 'CZ',\n label: 'Czech Republic'\n },\n {\n value: 'DE',\n label: 'Germany'\n },\n {\n value: 'DJ',\n label: 'Djibouti'\n },\n {\n value: 'DK',\n label: 'Denmark'\n },\n {\n value: 'DM',\n label: 'Dominica'\n },\n {\n value: 'DO',\n label: 'Dominican Republic'\n },\n {\n value: 'DZ',\n label: 'Algeria'\n },\n {\n value: 'EC',\n label: 'Ecuador'\n },\n {\n value: 'EE',\n label: 'Estonia'\n },\n {\n value: 'EG',\n label: 'Egypt'\n },\n {\n value: 'EH',\n label: 'Western Sahara'\n },\n {\n value: 'ER',\n label: 'Eritrea'\n },\n {\n value: 'ES',\n label: 'Spain'\n },\n {\n value: 'ET',\n label: 'Ethiopia'\n },\n {\n value: 'FI',\n label: 'Finland'\n },\n {\n value: 'FJ',\n label: 'Fiji'\n },\n {\n value: 'FK',\n label: 'Falkland Islands (Ma)'\n },\n {\n value: 'FM',\n label: 'Micronesia'\n },\n {\n value: 'FO',\n label: 'Faroe islands'\n },\n {\n value: 'FR',\n label: 'France'\n },\n {\n value: 'FX',\n label: 'France, Metropolitan'\n },\n {\n value: 'GA',\n label: 'Gabon'\n },\n {\n value: 'GB',\n label: 'United Kingdom'\n },\n {\n value: 'GD',\n label: 'Grenada'\n },\n {\n value: 'GE',\n label: 'Georgia'\n },\n {\n value: 'GF',\n label: 'French Guiana'\n },\n {\n value: 'GG',\n label: 'Channel Islands'\n },\n {\n value: 'GH',\n label: 'Ghana'\n },\n {\n value: 'GI',\n label: 'Gibraltar'\n },\n {\n value: 'GL',\n label: 'Greenland'\n },\n {\n value: 'GM',\n label: 'Gambia'\n },\n {\n value: 'GN',\n label: 'Guinea'\n },\n {\n value: 'GP',\n label: 'Guadeloupe'\n },\n {\n value: 'GQ',\n label: 'Equatorial Guinea'\n },\n {\n value: 'GR',\n label: 'Greece'\n },\n {\n value: 'GS',\n label: 'South Georgia'\n },\n {\n value: 'GT',\n label: 'Guatemala'\n },\n {\n value: 'GU',\n label: 'Guam'\n },\n {\n value: 'GW',\n label: 'Guinea-Bissau'\n },\n {\n value: 'GY',\n label: 'Guyana'\n },\n {\n value: 'HK',\n label: 'Hong Kong'\n },\n {\n value: 'HM',\n label: 'Heard and Mc Donald'\n },\n {\n value: 'HN',\n label: 'Honduras'\n },\n {\n value: 'HR',\n label: 'Croatia (Hrvatska)'\n },\n {\n value: 'HT',\n label: 'Haiti'\n },\n {\n value: 'HU',\n label: 'Hungary'\n },\n {\n value: 'ID',\n label: 'Indonesia'\n },\n {\n value: 'IE',\n label: 'Ireland'\n },\n {\n value: 'IL',\n label: 'Israel'\n },\n {\n value: 'IM',\n label: 'Isle Of Man'\n },\n {\n value: 'IN',\n label: 'India'\n },\n {\n value: 'IO',\n label: 'British Indian Ocean'\n },\n {\n value: 'IQ',\n label: 'Iraq'\n },\n {\n value: 'IR',\n label: 'Iran (Islamic Republ)'\n },\n {\n value: 'IS',\n label: 'Iceland'\n },\n {\n value: 'IT',\n label: 'Italy'\n },\n {\n value: 'JE',\n label: 'Jersey'\n },\n {\n value: 'JM',\n label: 'Jamaica'\n },\n {\n value: 'JO',\n label: 'Jordan'\n },\n {\n value: 'JP',\n label: 'Japan'\n },\n {\n value: 'KE',\n label: 'Kenya'\n },\n {\n value: 'KG',\n label: 'Kyrgyzstan'\n },\n {\n value: 'KH',\n label: 'Cambodia'\n },\n {\n value: 'KI',\n label: 'Kiribati'\n },\n {\n value: 'KM',\n label: 'Comoros'\n },\n {\n value: 'KN',\n label: 'Saint Kitts and Nevi'\n },\n {\n value: 'KP',\n label: 'Dem People Rep Korea'\n },\n {\n value: 'KP',\n label: 'Korea, Democratic Pe'\n },\n {\n value: 'KR',\n label: 'Korea, Republic of'\n },\n {\n value: 'KW',\n label: 'Kuwait'\n },\n {\n value: 'KY',\n label: 'Cayman islands'\n },\n {\n value: 'KZ',\n label: 'Kazakhstan'\n },\n {\n value: 'LA',\n label: \"Lao People's Democra\"\n },\n {\n value: 'LB',\n label: 'Lebanon'\n },\n {\n value: 'LC',\n label: 'Saint Lucia'\n },\n {\n value: 'LI',\n label: 'Liechtenstein'\n },\n {\n value: 'LK',\n label: 'Sri Lanka'\n },\n {\n value: 'LR',\n label: 'Liberia'\n },\n {\n value: 'LS',\n label: 'Lesotho'\n },\n {\n value: 'LT',\n label: 'Lithuania'\n },\n {\n value: 'LU',\n label: 'Luxembourg'\n },\n {\n value: 'LV',\n label: 'Latvia'\n },\n {\n value: 'LY',\n label: 'Libyan Arab Jamahiri'\n },\n {\n value: 'MA',\n label: 'Morocco'\n },\n {\n value: 'MD',\n label: 'Moldova'\n },\n {\n value: 'ME',\n label: 'Montenegro'\n },\n {\n value: 'MF',\n label: 'Saint Martin (French part)'\n },\n {\n value: 'MG',\n label: 'Madagascar'\n },\n {\n value: 'MH',\n label: 'Marshall Islands'\n },\n {\n value: 'MK',\n label: 'Frmr Rep Macedonia'\n },\n {\n value: 'MK',\n label: 'Yugoslavia'\n },\n {\n value: 'MK',\n label: 'Macedonia (Yugoslav)'\n },\n {\n value: 'ML',\n label: 'Mali'\n },\n {\n value: 'MM',\n label: 'Myanmar'\n },\n {\n value: 'MN',\n label: 'Mongolia'\n },\n {\n value: 'MO',\n label: 'Macao Sar Of China'\n },\n {\n value: 'MO',\n label: 'Monaco'\n },\n {\n value: 'MO',\n label: 'Macau'\n },\n {\n value: 'MP',\n label: 'N Mariana Islands'\n },\n {\n value: 'MP',\n label: 'Northern Mariana Isl'\n },\n {\n value: 'MQ',\n label: 'Martinique'\n },\n {\n value: 'MR',\n label: 'Mauritania'\n },\n {\n value: 'MS',\n label: 'Montserrat'\n },\n {\n value: 'MT',\n label: 'Malta'\n },\n {\n value: 'MU',\n label: 'Mauritius'\n },\n {\n value: 'MV',\n label: 'Maldives'\n },\n {\n value: 'MW',\n label: 'Malawi'\n },\n {\n value: 'MX',\n label: 'Mexico'\n },\n {\n value: 'MY',\n label: 'Malaysia'\n },\n {\n value: 'MZ',\n label: 'Mozambique'\n },\n {\n value: 'N/',\n label: 'Other'\n },\n {\n value: 'NA',\n label: 'Namibia'\n },\n {\n value: 'NC',\n label: 'New Caledonia'\n },\n {\n value: 'NE',\n label: 'Niger'\n },\n {\n value: 'NF',\n label: 'Norfolk island'\n },\n {\n value: 'NG',\n label: 'Nigeria'\n },\n {\n value: 'NI',\n label: 'Nicaragua'\n },\n {\n value: 'NL',\n label: 'Netherlands'\n },\n {\n value: 'NO',\n label: 'Norway'\n },\n {\n value: 'NP',\n label: 'Nepal'\n },\n {\n value: 'NR',\n label: 'Nauru'\n },\n {\n value: 'NU',\n label: 'Niue'\n },\n {\n value: 'NZ',\n label: 'New Zealand'\n },\n {\n value: 'OM',\n label: 'Oman'\n },\n {\n value: 'PA',\n label: 'Panama'\n },\n {\n value: 'PE',\n label: 'Peru'\n },\n {\n value: 'PF',\n label: 'French Polynesia'\n },\n {\n value: 'PG',\n label: 'Papua New Guinea'\n },\n {\n value: 'PH',\n label: 'Philippines'\n },\n {\n value: 'PK',\n label: 'Pakistan'\n },\n {\n value: 'PL',\n label: 'Poland'\n },\n {\n value: 'PM',\n label: 'St. Pierre and Mique'\n },\n {\n value: 'PN',\n label: 'Pitcairn'\n },\n {\n value: 'PR',\n label: 'Puerto Rico'\n },\n {\n value: 'PS',\n label: 'Occupied Palestinian'\n },\n {\n value: 'PT',\n label: 'Portugal'\n },\n {\n value: 'PW',\n label: 'Palau'\n },\n {\n value: 'PY',\n label: 'Paraguay'\n },\n {\n value: 'QA',\n label: 'Qatar'\n },\n {\n value: 'RE',\n label: 'Reunion'\n },\n {\n value: 'RO',\n label: 'Romania'\n },\n {\n value: 'RS',\n label: 'Serbia'\n },\n {\n value: 'RU',\n label: 'Russian Federation'\n },\n {\n value: 'RW',\n label: 'Rwanda'\n },\n {\n value: 'SA',\n label: 'Saudi Arabia'\n },\n {\n value: 'SB',\n label: 'Solomon Islands'\n },\n {\n value: 'SC',\n label: 'Seychelles'\n },\n {\n value: 'SD',\n label: 'Sudan'\n },\n {\n value: 'SE',\n label: 'Sweden'\n },\n {\n value: 'SG',\n label: 'Singapore'\n },\n {\n value: 'SH',\n label: 'St. Helena'\n },\n {\n value: 'SI',\n label: 'Slovenia'\n },\n {\n value: 'SJ',\n label: 'Svalbard and Jan May'\n },\n {\n value: 'SK',\n label: 'Slovakia (Slovak Rep'\n },\n {\n value: 'SL',\n label: 'Sierra Leone'\n },\n {\n value: 'SM',\n label: 'San Marino'\n },\n {\n value: 'SN',\n label: 'Senegal'\n },\n {\n value: 'SO',\n label: 'Somalia'\n },\n {\n value: 'SR',\n label: 'Suriname'\n },\n {\n value: 'SS',\n label: 'South Sudan'\n },\n {\n value: 'ST',\n label: 'Sao Tome and Princip'\n },\n {\n value: 'SV',\n label: 'El Salvador'\n },\n {\n value: 'SX',\n label: 'Sint Maarten (Dutch part)'\n },\n {\n value: 'SY',\n label: 'Syrian Arab Republic'\n },\n {\n value: 'SZ',\n label: 'Swaziland'\n },\n {\n value: 'TC',\n label: 'Turks and Caicos Isl'\n },\n {\n value: 'TD',\n label: 'Chad'\n },\n {\n value: 'TF',\n label: 'French Southern Terr'\n },\n {\n value: 'TG',\n label: 'Togo'\n },\n {\n value: 'TH',\n label: 'Thailand'\n },\n {\n value: 'TJ',\n label: 'Tajikistan'\n },\n {\n value: 'TK',\n label: 'Tokelau'\n },\n {\n value: 'TL',\n label: 'Timor-Leste'\n },\n {\n value: 'TM',\n label: 'Turkmenistan'\n },\n {\n value: 'TN',\n label: 'Tunisia'\n },\n {\n value: 'TO',\n label: 'Tonga'\n },\n {\n value: 'TP',\n label: 'East Timor'\n },\n {\n value: 'TR',\n label: 'Turkey'\n },\n {\n value: 'TT',\n label: 'Trinidad and Tobago'\n },\n {\n value: 'TV',\n label: 'Tuvalu'\n },\n {\n value: 'TW',\n label: 'Taiwan'\n },\n {\n value: 'TZ',\n label: 'Tanzania, United Rep'\n },\n {\n value: 'UA',\n label: 'Ukraine'\n },\n {\n value: 'UG',\n label: 'Uganda'\n },\n {\n value: 'UM',\n label: 'US Minor Outlying Islands (the)'\n },\n {\n value: 'US',\n label: 'United States'\n },\n {\n value: 'UY',\n label: 'Uruguay'\n },\n {\n value: 'UZ',\n label: 'Uzbekistan'\n },\n {\n value: 'VA',\n label: 'Holy See (Vatican City)'\n },\n {\n value: 'VC',\n label: 'Saint Vincent and th'\n },\n {\n value: 'VE',\n label: 'Venezuela'\n },\n {\n value: 'VG',\n label: 'Virgin Islands (Brit)'\n },\n {\n value: 'VI',\n label: 'Virgin Islands (U.S.)'\n },\n {\n value: 'VN',\n label: 'Vietnam'\n },\n {\n value: 'VU',\n label: 'Vanuatu'\n },\n {\n value: 'WF',\n label: 'Wallis and Futuna Is'\n },\n {\n value: 'WS',\n label: 'Samoa'\n },\n {\n value: 'YE',\n label: 'Yemen'\n },\n {\n value: 'YT',\n label: 'Mayotte'\n },\n {\n value: 'ZA',\n label: 'South Africa'\n },\n {\n value: 'ZM',\n label: 'Zambia'\n },\n {\n value: 'ZW',\n label: 'Zimbabwe'\n }\n ],\n emailPlanImage: 'nm-the-education-plan-logo.png',\n emailMoreInfoContent: `\n \n Where can I find more information about my 529 plan?\n \n \n

\n The Education Plan offers comprehensive education pages with detailed information about 529 plans. You can learn about\n 529 Basics and additional smart planning tips. To access this resource, visit the The Education Plan’s 529 Basics section.\n

\n

\n If you have other specific questions after you’ve established your account, please refer to the\n Contact Us page to reach a service representative by email or phone.\n

\n
\n `\n}\n\nexport const ENROLLMENT_PLANS: PlanConfig[] = [SC_CONFIG, TX_CONFIG, NM_CONFIG]\n","import { z } from 'zod'\nimport type {\n Address,\n EnrollmentActionResult,\n EnrollmentData,\n Gender,\n SubmissionResult,\n EnrollmentPlanId,\n GenderInfo,\n Relationship,\n RelationshipInfo,\n SuccessorTypeInfo,\n SuccessorType,\n CountryInfo\n} from './enrollment-model'\nimport {\n trackFlowStepError,\n trackFlowStepFieldChanged,\n trackFlowStepFieldValidationError\n} from '@lib/analytics'\nimport type { FieldError, FieldErrorsImpl } from 'react-hook-form'\nimport { ENROLLMENT_PLANS } from './enrollment-config'\nimport { US_STATES, type USStateAbbreviation } from '@lib/us-states'\nimport type { FAQItem } from '@components/faq-block'\n\nexport const ENROLLMENT_BASE_PATH = '/enroll-529-plan'\nexport const GENERIC_ERROR_MESSAGE = 'There was an error saving the details. Please try again.'\n\nexport const getEnrollmentPlanId = (slug: string): EnrollmentPlanId => {\n return ENROLLMENT_PLANS.find((plan) => plan.slug === slug)?.id as EnrollmentPlanId\n}\n\nexport const getEnrollmentPlanSlug = (id: EnrollmentPlanId): string => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === id)?.slug as string\n}\n\nexport const getEnrollmentSessionBasePath = (enrollmentPlanId: EnrollmentPlanId) => {\n return `${ENROLLMENT_BASE_PATH}/${getEnrollmentPlanSlug(enrollmentPlanId)}`\n}\n\nexport const getEnrollmentApiBasePath = (enrollmentPlanId: EnrollmentPlanId) => {\n return `${getEnrollmentSessionBasePath(enrollmentPlanId)}/api`\n}\n\nexport const getEnrollmentSessionStartPath = (enrollmentPlanId: EnrollmentPlanId) => {\n return `${getEnrollmentSessionBasePath(enrollmentPlanId)}/start`\n}\n\nexport const saveEnrollmentData = async ({\n enrollmentPlanId,\n enrollmentData\n}: {\n enrollmentPlanId: EnrollmentPlanId\n enrollmentData: Partial\n}): Promise => {\n const response = await fetch(`${getEnrollmentApiBasePath(enrollmentPlanId)}/save-data`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'same-origin',\n body: JSON.stringify(enrollmentData)\n })\n\n if (![200, 422].includes(response.status)) {\n throw new Error('Error: ' + response.statusText)\n }\n\n return response.json()\n}\n\nexport const userAcceptedTerms = async ({\n enrollmentPlanId,\n terms\n}: {\n enrollmentPlanId: EnrollmentPlanId\n terms: string[]\n}) => {\n const response = await fetch(`${getEnrollmentApiBasePath(enrollmentPlanId)}/accept-terms`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'same-origin',\n body: JSON.stringify({ terms })\n })\n\n if (![200, 422].includes(response.status)) {\n throw new Error('Error: ' + response.statusText)\n }\n\n return response.json()\n}\n\nexport const submitEnrollmentData = async ({\n enrollmentPlanId,\n secretCode\n}: {\n enrollmentPlanId: EnrollmentPlanId\n secretCode?: string\n}): Promise => {\n const response = await fetch(`${getEnrollmentApiBasePath(enrollmentPlanId)}/submit`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n credentials: 'same-origin',\n body: JSON.stringify({ secretCode })\n })\n\n if (![200, 422].includes(response.status)) {\n throw new Error('Error: ' + response.statusText)\n }\n\n return response.json()\n}\n\nexport const maskSSNOrTaxId = (value: string): string => {\n // Remove all non-digit characters\n const digits = value.replace(/\\D/g, '')\n\n // Split the string into groups and join with hyphens\n const groups = [digits.slice(0, 3), digits.slice(3, 5), digits.slice(5, 9)].filter(\n (group) => group.length > 0\n )\n\n return groups.join('-')\n}\n\nexport const maskPhoneNumber = (value: string): string => {\n const digits = value.replace(/\\D/g, '')\n let result = ''\n for (let i = 0; i < digits.length && i < 10; i++) {\n if (i === 0) result += '('\n if (i === 3) result += ') '\n if (i === 6) result += '-'\n result += digits[i]\n }\n return result\n}\n\nexport const unmaskSSNOrTaxId = (value: string): string => {\n return value.replace(/\\D/g, '')\n}\n\nexport const formatIsoDate = (date: string): string => {\n const [year, month, day] = date.split('-')\n return `${month}/${day}/${year}`\n}\n\nexport const convertDisplayDateToIso = (date: string): string => {\n const [month, day, year] = date.split('/')\n return `${year}-${month}-${day}`\n}\n\nexport const createDateSchema = () => {\n return z\n .string()\n .regex(\n /^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/\\d{4}$/,\n 'Please enter a valid date in MM/DD/YYYY format'\n )\n .refine(\n (dob) => {\n const [month, day, year] = dob.split('/').map(Number)\n const date = new Date(year, month - 1, day)\n return (\n date.getFullYear() === year &&\n date.getMonth() === month - 1 &&\n date.getDate() === day &&\n year >= 1900\n )\n },\n { message: 'Please enter a valid date' }\n )\n .refine(\n (dob) => {\n const [month, day, year] = dob.split('/').map(Number)\n const inputDate = new Date(year, month - 1, day)\n const currentDate = new Date()\n return inputDate <= currentDate\n },\n { message: 'Date cannot be in the future' }\n )\n}\n\nexport const convertAddress = (addressData?: any): Address | undefined => {\n if (!addressData) {\n return undefined\n }\n\n return {\n addressLine1: addressData.addressLine1,\n addressLine2: addressData.addressLine2,\n city: addressData.city,\n state: addressData.state,\n zipCode: addressData.zipCode\n }\n}\n\nconst validStateAbbreviations = US_STATES.map((state) => state.abbr)\n\nexport const getAddressSchema = (enrollmentPlanId: EnrollmentPlanId) => {\n const supportsZipCodeSuffix = getPlanSupportsZipCodeSuffix(enrollmentPlanId)\n\n return z.object({\n addressLine1: z.string().min(1, 'Address is required'),\n addressLine2: z.string().optional(),\n city: z.string().min(1, 'City is required'),\n state: z\n .string()\n .length(2, 'Use 2-letter state code')\n .refine((val) => validStateAbbreviations.includes(val.toUpperCase() as USStateAbbreviation), {\n message: 'Invalid state abbreviation'\n }),\n zipCode: supportsZipCodeSuffix\n ? z.string().regex(/^\\d{5}(-\\d{4})?$/, 'Enter a valid ZIP code (5 or 9 digits)')\n : z.string().regex(/^\\d{5}$/, 'Enter a valid ZIP code (5 digits)')\n })\n}\n\nexport const emptyAddressSchema = z.object({\n addressLine1: z.string(),\n addressLine2: z.string(),\n city: z.string(),\n state: z.string(),\n zipCode: z.string()\n})\n\nexport const unmaskPhoneNumber = (value?: string): string | undefined =>\n value && value.replace(/\\D/g, '')\n\nexport function formatSSN(ssn: string): string {\n // Remove any existing hyphens or spaces\n const cleanSSN = ssn.replace(/[-\\s]/g, '')\n\n // Check if the input is valid (9 digits)\n if (!/^\\d{9}$/.test(cleanSSN)) {\n throw new Error('Invalid SSN. Please provide 9 digits.')\n }\n\n // Format the SSN with hyphens\n return `${cleanSSN.slice(0, 3)}-${cleanSSN.slice(3, 5)}-${cleanSSN.slice(5)}`\n}\n\nexport const getAnalyticsFlowName = (enrollmentPlanId: EnrollmentPlanId) => {\n return `Enrollment${enrollmentPlanId}`\n}\n\nexport const trackEnrollmentFlowStepError = ({\n enrollmentPlanId,\n stepName,\n result,\n error\n}: {\n enrollmentPlanId: EnrollmentPlanId\n stepName: string\n result?: EnrollmentActionResult\n error?: any\n}) => {\n const fieldErrors = result?.fieldErrors\n ?.map((error) => `${error.field}: ${error.errorMessage}`)\n .join(', ')\n const errorMessages = result?.errorMessages?.join(', ')\n const resultErrorMessages = [fieldErrors, errorMessages].filter(Boolean).join(', ')\n\n if (resultErrorMessages) {\n console.log(`${stepName} Error: `, resultErrorMessages)\n }\n\n const errorMessage = resultErrorMessages || error?.message\n\n trackFlowStepError({\n flowName: getAnalyticsFlowName(enrollmentPlanId),\n stepName: stepName,\n value: errorMessage\n })\n}\n\nexport const trackEnrollmentFieldChanged = ({\n enrollmentPlanId,\n stepName,\n fieldName,\n value\n}: {\n enrollmentPlanId: EnrollmentPlanId\n stepName: string\n fieldName: string\n value?: string\n}) => {\n trackFlowStepFieldChanged({\n flowName: getAnalyticsFlowName(enrollmentPlanId),\n stepName: stepName,\n fieldName: fieldName,\n value: value\n })\n}\n\nexport const trackEnrollmentFieldValidationError = ({\n enrollmentPlanId,\n stepName,\n fieldName,\n error\n}: {\n enrollmentPlanId: EnrollmentPlanId\n stepName: string\n fieldName: string\n error?: FieldError\n}) => {\n if (error && error.message) {\n trackFlowStepFieldValidationError({\n flowName: getAnalyticsFlowName(enrollmentPlanId),\n stepName: stepName,\n fieldName: fieldName,\n error: error.message\n })\n }\n}\n\nexport const trackAddressFieldValidationErrors = ({\n enrollmentPlanId,\n stepName,\n prefix,\n addressErrors\n}: {\n enrollmentPlanId: EnrollmentPlanId\n stepName: string\n prefix: 'owner' | 'beneficiary' | 'successor'\n addressErrors: FieldErrorsImpl<\n NonNullable<\n | {\n addressLine1: string\n city: string\n state: string\n zipCode: string\n addressLine2: string\n }\n | {\n addressLine1: string\n addressLine2: string\n city: string\n state: string\n zipCode: string\n }\n >\n >\n}) => {\n trackEnrollmentFieldValidationError({\n enrollmentPlanId,\n stepName,\n fieldName: `${prefix}.addressLine1`,\n error: addressErrors.addressLine1\n })\n trackEnrollmentFieldValidationError({\n enrollmentPlanId,\n stepName,\n fieldName: `${prefix}.addressLine2`,\n error: addressErrors.addressLine2\n })\n trackEnrollmentFieldValidationError({\n enrollmentPlanId,\n stepName,\n fieldName: `${prefix}.state`,\n error: addressErrors.state\n })\n trackEnrollmentFieldValidationError({\n enrollmentPlanId,\n stepName,\n fieldName: `${prefix}.zipCode`,\n error: addressErrors.zipCode\n })\n}\n\nexport const getErrorMessageFromResult = (result: EnrollmentActionResult) => {\n if (result.errorMessages && result.errorMessages.length > 0) {\n return result.errorMessages.join('\\n')\n }\n\n return GENERIC_ERROR_MESSAGE\n}\n\nexport const getPlanName = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.planName\n}\n\nexport const getPlanUrl = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.planUrl\n}\n\nexport const getPlanLoginUrl = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.planLoginUrl\n}\n\nexport const getGenders = (enrollmentPlanId: EnrollmentPlanId): GenderInfo[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.genders!\n}\n\nexport const getGenderPlanValue = (planId: EnrollmentPlanId, gender: Gender) => {\n return getGenders(planId)?.find((g) => g.value === gender)?.planValue\n}\n\nexport const getRelationships = (enrollmentPlanId: EnrollmentPlanId): RelationshipInfo[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.relationhips!\n}\n\nexport const getRelationshipPlanValue = (\n enrollmentPlanId: EnrollmentPlanId,\n relationship: Relationship | undefined\n) => {\n return relationship !== undefined\n ? getRelationships(enrollmentPlanId)?.find((r) => r.value === relationship)?.planValue\n : undefined\n}\n\nexport const getRelationshipLabel = (enrollmentPlanId: EnrollmentPlanId, relationship: Relationship) => {\n return getRelationships(enrollmentPlanId)?.find((r) => r.value === relationship)?.label\n}\n\nexport const getSuccessorTypes = (enrollmentPlanId: EnrollmentPlanId): SuccessorTypeInfo[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.successorTypes!\n}\n\nexport const getSuccessorTypePlanValue = (\n enrollmentPlanId: EnrollmentPlanId,\n successorType: SuccessorType\n) => {\n return getSuccessorTypes(enrollmentPlanId)?.find((t) => t.value === successorType)?.planValue\n}\n\nexport const getPlanHasCitizenship = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.hasCitizenship || false\n}\n\nexport const getCountries = (enrollmentPlanId: EnrollmentPlanId): CountryInfo[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.countries!\n}\n\nexport const getPlanHasSuccessor = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.hasSuccessor\n}\n\nexport const getStepCount = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.hasSuccessor ? 6 : 5\n}\n\nexport const getSecurityQuestions = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.securityQuestions\n}\n\nexport const getPlanSupportsZipCodeSuffix = (enrollmentPlanId: EnrollmentPlanId): boolean => {\n return (\n ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.supportsZipCodeSuffix || false\n )\n}\n\nexport const getPlanSupportsMailingAddress = (enrollmentPlanId: EnrollmentPlanId): boolean => {\n return (\n ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.supportsMailingAddress || false\n )\n}\n\nexport const getPlanGenericFaqs = (enrollmentPlanId: EnrollmentPlanId): FAQItem[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.genericFaqs || []\n}\n\nexport const getPlanPortfolioFaqs = (enrollmentPlanId: EnrollmentPlanId): FAQItem[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.portfolioFaqs || []\n}\n\nexport const getPlanConfirmationFaqs = (enrollmentPlanId: EnrollmentPlanId): FAQItem[] => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.confirmationFaqs || []\n}\n\nexport const getPlanUsernameSchema = (\n enrollmentPlanId: EnrollmentPlanId\n): z.ZodEffects<\n z.ZodEffects, string, string>,\n string,\n string\n> => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.usernameSchema!\n}\n\nexport const getPlanUsernameRequirements = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.usernameRequirements!\n}\n\nexport const getPlanPasswordSchema = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.getPasswordSchema!\n}\n\nexport const getPlanPasswordValidation = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.passwordValidation\n}\n\nexport const getPlanPasswordRequirements = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.passwordRequirements!\n}\n\nexport const getPlanPortfolioManager = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.portfolioManager!\n}\n\nexport const getPlanSupportsPhoneNumberType = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.supportsPhoneNumberType || false\n}\n\nexport const getPlanLogoImg = (enrollmentPlanId: EnrollmentPlanId) => {\n return ENROLLMENT_PLANS.find((plan) => plan.id === enrollmentPlanId)?.planLogoImg!\n}\n"],"names":["nmGeneralFaqs","nmPortfolioFaqs","jsx","Fragment","jsxs","nmConfirmationFaqs","Link","scGeneralFaqs","scPortfolioFaqs","scConfirmationFaqs","txGeneralFaqs","txPortfolioFaqs","txConfirmationFaqs","futureScholarLogoImg","texas529LogoImg","nmLogoImg","scPasswordRegex","SC_CONFIG","z","username","lettersOnly","numbersOnly","password","TX_CONFIG","NM_CONFIG","email","firstName","lastName","ENROLLMENT_PLANS","ENROLLMENT_BASE_PATH","GENERIC_ERROR_MESSAGE","getEnrollmentPlanSlug","id","plan","getEnrollmentSessionBasePath","enrollmentPlanId","getEnrollmentApiBasePath","getEnrollmentSessionStartPath","saveEnrollmentData","enrollmentData","response","userAcceptedTerms","terms","submitEnrollmentData","secretCode","maskSSNOrTaxId","value","digits","group","maskPhoneNumber","result","i","unmaskSSNOrTaxId","formatIsoDate","date","year","month","day","convertDisplayDateToIso","createDateSchema","dob","convertAddress","addressData","validStateAbbreviations","US_STATES","state","getAddressSchema","supportsZipCodeSuffix","getPlanSupportsZipCodeSuffix","val","emptyAddressSchema","unmaskPhoneNumber","formatSSN","ssn","cleanSSN","getAnalyticsFlowName","trackEnrollmentFlowStepError","stepName","error","fieldErrors","errorMessages","resultErrorMessages","errorMessage","trackFlowStepError","trackEnrollmentFieldChanged","fieldName","trackFlowStepFieldChanged","trackEnrollmentFieldValidationError","trackFlowStepFieldValidationError","trackAddressFieldValidationErrors","prefix","addressErrors","getPlanName","getPlanUrl","getPlanLoginUrl","getGenders","getRelationships","getRelationshipLabel","relationship","r","getSuccessorTypes","getPlanHasCitizenship","getCountries","getPlanHasSuccessor","getStepCount","getSecurityQuestions","getPlanSupportsMailingAddress","getPlanGenericFaqs","getPlanPortfolioFaqs","getPlanConfirmationFaqs","getPlanUsernameSchema","getPlanUsernameRequirements","getPlanPasswordSchema","getPlanPasswordValidation","getPlanPasswordRequirements","getPlanPortfolioManager","getPlanSupportsPhoneNumberType","getPlanLogoImg"],"mappings":"ukBAGO,MAAMA,EAA2B,CACtC,CACE,SAAU,sBACV,OACE,+WACJ,EACA,CACE,SAAU,yBACV,OACE,sLACJ,EACA,CACE,SAAU,oDACV,OACE,4MACJ,EACA,CACE,SAAU,2BACV,OAAQ,0QACV,EACA,CACE,SAAU,oCACV,OACE,6QACJ,EACA,CACE,SAAU,mCACV,OACE,qTACJ,CACF,EAEaC,EAA6B,CACxC,CACE,SAAU,uEACV,OACE,ihBACJ,EACA,CACE,SAAU,2CACV,OACE,4UACJ,EACA,CACE,SAAU,+CACV,OAEIC,EAAA,IAAAC,WAAA,CAAA,SAAAC,OAAC,IACC,CAAA,SAAA,CAAAF,EAAAA,IAAC,UAAO,SAA2B,6BAAA,CAAA,EAAS,iWAIEA,EAAAA,IAAC,UAAO,SAAU,YAAA,CAAA,EAAS,MAAI,IAC7EA,EAAAA,IAAC,UAAO,SAAU,YAAA,CAAA,EAAS,2UAAA,CAAA,CAK7B,CACF,CAAA,CAEJ,CACF,EAEaG,EAAgC,CAC3C,CACE,SAAU,uDACV,OACE,gKACJ,EACA,CACE,SAAU,0BACV,OAEID,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,4IAE0B,IACjDF,EAAA,IAACI,EAAA,CACC,KAAK,oCACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,mCAAA,CAED,EAAQ,IAAI,qLAAA,EAId,EACAF,EAAAA,KAAC,MAAI,CAAA,UAAU,YACb,SAAA,CAACF,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAAiE,oEAAA,EACjFE,EAAAA,KAAC,KAAG,CAAA,UAAU,iBACZ,SAAA,CAAAF,MAAC,KACC,CAAA,SAAAA,EAAA,IAAC,SAAO,CAAA,SAAA,oCAAkC,CAAA,EAC5C,SACC,KACC,CAAA,SAAA,CAAAA,EAAAA,IAAC,UAAO,SAA4B,8BAAA,CAAA,EAAS,gDAAA,EAE/C,EACCA,MAAA,KAAA,CACC,SAACA,EAAA,IAAA,SAAA,CAAO,8BAAmB,CAAA,EAC7B,CAAA,EACF,CAAA,EACF,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAGhB,2IAAA,CAAA,EACF,CAEJ,EACA,CACE,SAAU,sCACV,OAEIE,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,gCACO,IAC9BF,EAAA,IAACI,EAAA,CACC,KAAK,oCACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,mCAAA,CAED,EAAQ,IAAI,sGAAA,EAGd,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,gDACuB,IAC9CF,EAAA,IAACI,EAAA,CACC,KAAK,kEACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,MAAA,CAED,EAAO,4HAAA,EAGT,CAAA,EACF,CAEJ,EACA,CACE,SAAU,uDACV,OAEIF,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,yHAEQ,IAC/BF,EAAA,IAACI,EAAA,CACC,KAAK,4CACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,YAAA,CAED,EAAQ,IAAI,iHAAA,EAGd,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,kGAEhB,IACPF,EAAA,IAACI,EAAA,CACC,KAAK,8CACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,YAAA,CAED,EAAQ,IAAI,2DAAA,EAEd,CAAA,EACF,CAEJ,CACF,EClLaC,EAA2B,CACtC,CACE,SAAU,sBACV,OACE,gXACJ,EACA,CACE,SAAU,yBACV,OACE,sLACJ,EACA,CACE,SAAU,oDACV,OACE,mNACJ,EACA,CACE,SAAU,2BACV,OAAQ,qQACV,EACA,CACE,SAAU,oCACV,OACE,6QACJ,EACA,CACE,SAAU,mCACV,OACE,+QACJ,CACF,EAEaC,EAA6B,CACxC,CACE,SAAU,uEACV,OACE,+ZACJ,EACA,CACE,SAAU,2CACV,OACE,4UACJ,EACA,CACE,SAAU,+CACV,OAEIJ,EAAA,KAAAD,WAAA,CAAA,SAAA,CAAAC,OAAC,IACC,CAAA,SAAA,CAAAF,EAAAA,IAAC,UAAO,SAA2B,6BAAA,CAAA,EAAS,kVAIbA,EAAAA,IAAC,UAAO,SAAwB,0BAAA,CAAA,EAAS,MAAI,IAC5EA,EAAAA,IAAC,UAAO,SAAkB,oBAAA,CAAA,EAAS,2GAAA,EAErC,QACC,KAAG,EAAA,EACJA,EAAAA,IAAC,KAAE,SAIH,+MAAA,CAAA,CAAA,EACF,CAEJ,CACF,EAEaO,EAAgC,CAC3C,CACE,SAAU,uDACV,OACE,gKACJ,EACA,CACE,SAAU,0BACV,OAEIL,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,4IAE0B,IACjDF,EAAA,IAACI,EAAA,CACC,KAAK,kCACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,yBAAA,CAED,EAAQ,IAAI,sKAAA,EAGd,EACAF,EAAAA,KAAC,MAAI,CAAA,UAAU,YACb,SAAA,CAACF,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAAiE,oEAAA,EACjFE,EAAAA,KAAC,KAAG,CAAA,UAAU,iBACZ,SAAA,CAAAF,MAAC,KACC,CAAA,SAAAA,EAAA,IAAC,SAAO,CAAA,SAAA,qBAAmB,CAAA,EAC7B,SACC,KACC,CAAA,SAAA,CAAAA,EAAAA,IAAC,UAAO,SAAkB,oBAAA,CAAA,EAAS,yBAAA,EACrC,EACCA,MAAA,KAAA,CACC,SAACA,EAAA,IAAA,SAAA,CAAO,8BAAmB,CAAA,EAC7B,CAAA,EACF,CAAA,EACF,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAGhB,2IAAA,CAAA,EACF,CAEJ,EACA,CACE,SAAU,sCACV,OAEIE,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,gCACO,IAC9BF,EAAA,IAACI,EAAA,CACC,KAAK,kCACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,yBAAA,CAED,EAAQ,IAAI,qFAAA,EAEd,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,gDACuB,IAC9CF,EAAA,IAACI,EAAA,CACC,KAAK,kCACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,MAAA,CAED,EAAO,4HAAA,EAGT,CAAA,EACF,CAEJ,EACA,CACE,SAAU,uDACV,OAEIF,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,+QAIR,UACd,SACC,CAAA,SAAAF,EAAA,IAACI,EAAA,CACC,KAAK,wDACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,kBAAA,CAAA,EAGH,EAAU,IAAI,+HAAA,EAGhB,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,kGAEhB,UACN,SACC,CAAA,SAAAF,EAAA,IAACI,EAAA,CACC,KAAK,oCACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,SAAA,CAAA,EAGH,EAAU,IAAI,2DAAA,EAEhB,CAAA,EACF,CAEJ,CACF,ECxLaI,EAA2B,CACtC,CACE,SAAU,sBACV,OACE,2XACJ,EACA,CACE,SAAU,yBACV,OACE,sLACJ,EACA,CACE,SAAU,oDACV,OACE,oNACJ,EACA,CACE,SAAU,2BACV,OAAQ,6QACV,EACA,CACE,SAAU,oCACV,OACE,qRACJ,EACA,CACE,SAAU,mCACV,OACE,+QACJ,CACF,EAEaC,EAA6B,CACxC,CACE,SAAU,+DACV,OACE,oXACJ,EACA,CACE,SAAU,2CACV,OACE,oVACJ,EACA,CACE,SAAU,+CACV,OAEIT,EAAA,IAAAC,WAAA,CAAA,SAAAC,OAAC,IACC,CAAA,SAAA,CAAAF,EAAAA,IAAC,UAAO,SAA2B,6BAAA,CAAA,EAAS,uSAGkC,IAC9EA,EAAAA,IAAC,UAAO,SAAU,YAAA,CAAA,EAAS,MACxBA,EAAAA,IAAC,UAAO,SAAsB,wBAAA,CAAA,EAAS,iUAAA,CAAA,CAK5C,CACF,CAAA,CAEJ,CACF,EAEaU,EAAgC,CAC3C,CACE,SAAU,uDACV,OACE,gKACJ,EACA,CACE,SAAU,0BACV,OAEIR,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,oJAEmC,IAC1DF,EAAA,IAACI,EAAA,CACC,KAAK,mEACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,kEAAA,CAED,EAAQ,IAAI,sKAAA,EAGd,EACAF,EAAAA,KAAC,MAAI,CAAA,UAAU,YACb,SAAA,CAACF,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAAiE,oEAAA,EACjFE,EAAAA,KAAC,KAAG,CAAA,UAAU,iBACZ,SAAA,CAAAF,MAAC,KACC,CAAA,SAAAA,EAAA,IAAC,SAAO,CAAA,SAAA,oCAAkC,CAAA,EAC5C,SACC,KACC,CAAA,SAAA,CAAAA,EAAAA,IAAC,UAAO,SAA4B,8BAAA,CAAA,EAAS,4CAAA,EAE/C,EACCA,MAAA,KAAA,CACC,SAACA,EAAA,IAAA,SAAA,CAAO,8BAAmB,CAAA,EAC7B,CAAA,EACF,CAAA,EACF,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,GAAG,SAGhB,2IAAA,CAAA,EACF,CAEJ,EACA,CACE,SAAU,sCACV,OAEIE,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,gCACO,IAC9BF,EAAA,IAACI,EAAA,CACC,KAAK,mEACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,kEAAA,CAED,EAAQ,IAAI,qFAAA,EAEd,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,gDACuB,IAC9CF,EAAA,IAACI,EAAA,CACC,KAAK,mEACL,QAAQ,SACR,OAAO,SACP,IAAI,sBACL,SAAA,MAAA,CAED,EAAO,4HAAA,EAGT,CAAA,EACF,CAEJ,EACA,CACE,SAAU,uDACV,OAEIF,EAAA,KAAAD,WAAA,CAAA,SAAA,CAACC,EAAAA,KAAA,IAAA,CAAE,UAAU,YAAY,SAAA,CAAA,4SAIQ,IAC/BF,EAAA,IAACI,EAAA,CACC,KAAK,6CACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,UAAA,CAED,EAAQ,IAAI,UAAA,EAEd,EACAF,EAAAA,KAAC,IAAE,CAAA,UAAU,YAAY,SAAA,CAAA,kGAEhB,IACPF,EAAA,IAACI,EAAA,CACC,KAAK,kDACL,OAAO,SACP,IAAI,sBACJ,QAAQ,SACT,SAAA,SAAA,CAED,EAAQ,IAAI,2DAAA,EAEd,CAAA,EACF,CAEJ,CACF,ECpLAO,EAAe,CAAC,IAAM,sFAAkC,MAAQ,IAAI,OAAS,GAAG,OAAS,KAAK,ECA9FC,EAAe,CAAC,IAAM,iFAAkC,MAAQ,IAAI,OAAS,IAAI,OAAS,KAAK,ECA/FC,EAAe,CAAC,IAAM,6FAAkC,MAAQ,IAAI,OAAS,GAAG,OAAS,KAAK,ECqBxFC,EACJ,sLAEWC,EAAwB,CACnC,GAAI,kBACJ,MAAO,GACP,SAAU,iBACV,QAAS,6BACT,aAAc,mCACd,KAAM,sDACN,iBAAkB,sBAClB,YAAaJ,EACb,WAAY,WACZ,eAAgB,GAChB,sBAAuB,GACvB,uBAAwB,GACxB,wBAAyB,GACzB,YAAaN,EACb,cAAeC,EACf,iBAAkBC,EAClB,eAAgBS,EACb,SACA,IAAI,EAAG,wCAAwC,EAC/C,OAAQC,GAAa,iBAAiB,KAAKA,CAAQ,EAAG,CACrD,QAAS,gDACV,CAAA,EACA,OACEA,GAAa,CACN,MAAAC,EAAcD,EAAS,MAAM,WAAW,EACvC,OAAAC,EAAcA,EAAY,QAAU,EAAI,EACjD,EACA,CACE,QAAS,0CACX,CAAA,EAED,OACED,GAAa,CACN,MAAAE,EAAcF,EAAS,MAAM,QAAQ,EACpC,OAAAE,EAAcA,EAAY,QAAU,EAAI,EACjD,EACA,CACE,QAAS,yCACX,CACF,EACF,qBACE,wHACF,kBAAmBH,EAChB,SACA,IAAI,EAAG,wCAAwC,EAC/C,OACEI,GAAaN,EAAgB,KAAKM,CAAQ,EAC3C,iFACF,EACF,qBACE,qHACF,QAAS,CACP,CACE,MAAO,SACP,MAAO,EACP,UAAW,GACb,EACA,CACE,MAAO,OACP,MAAO,EACP,UAAW,GACb,EACA,CACE,MAAO,QACP,MAAO,EACP,UAAW,GACb,CACF,EACA,aAAc,CACZ,CACE,MAAO,kBACP,MAAO,EACP,UAAW,iBACb,EACA,CACE,MAAO,iBACP,MAAO,EACP,UAAW,gBACb,EACA,CACE,MAAO,SACP,MAAO,EACP,UAAW,QACb,EACA,CACE,MAAO,cACP,MAAO,EACP,UAAW,aACb,EACA,CACE,MAAO,QACP,MAAO,EACP,UAAW,OACb,EACA,CACE,MAAO,OACP,MAAO,EACP,UAAW,MACb,EACA,CACE,MAAO,aACP,MAAO,EACP,UAAW,YACb,CACF,EACA,eAAgB,CAAC,EACjB,aAAc,GACd,eAAgB,0BAChB,qBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAgBxB,EAEaC,EAAwB,CACnC,GAAI,WACJ,MAAO,EACP,SAAU,8BACV,QAAS,uCACT,aAAc,mEACd,KAAM,6CACN,iBAAkB,GAClB,YAAaT,EACb,WAAY,WACZ,eAAgB,GAChB,sBAAuB,GACvB,uBAAwB,GACxB,wBAAyB,GACzB,YAAaJ,EACb,cAAeC,EACf,iBAAkBC,EAClB,eAAgBM,EACb,SACA,IAAI,EAAG,wCAAwC,EAC/C,OAAQC,GAAa,iBAAiB,KAAKA,CAAQ,EAAG,CACrD,QAAS,gDACV,CAAA,EACA,OACEA,GAAa,CACN,MAAAC,EAAcD,EAAS,MAAM,WAAW,EACvC,OAAAC,EAAcA,EAAY,QAAU,EAAI,EACjD,EACA,CACE,QAAS,0CACX,CAAA,EAED,OACED,GAAa,CACN,MAAAE,EAAcF,EAAS,MAAM,QAAQ,EACpC,OAAAE,EAAcA,EAAY,QAAU,EAAI,EACjD,EACA,CACE,QAAS,yCACX,CACF,EACF,qBACE,wHACF,kBAAmBH,EAChB,SACA,IAAI,EAAG,wCAAwC,EAC/C,OACEI,GAAaN,EAAgB,KAAKM,CAAQ,EAC3C,iFACF,EACF,qBACE,qHACF,QAAS,CACP,CACE,MAAO,MACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,OACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,SACP,MAAO,EACP,UAAW,CACb,CACF,EACA,aAAc,CACZ,CACE,MAAO,cACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,iBACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,QACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,SACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,WACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,SACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,cACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,cACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,gBACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,aACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,cACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,WACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,aACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,cACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,SACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,QACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,SACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,eACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,QACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,iBACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,SACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,kBACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,OACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,MACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,SACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,UACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,eACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,YACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,kBACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,OACP,MAAO,GACP,UAAW,EACb,EACA,CACE,MAAO,aACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,OACP,MAAO,GACP,UAAW,EACb,CACF,EACA,eAAgB,CACd,CACE,MAAO,SACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,wBACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,gCACP,MAAO,EACP,UAAW,CACb,EACA,CACE,MAAO,SACP,MAAO,EACP,UAAW,CACb,CACF,EACA,aAAc,GACd,kBAAmB,CACjB,CACE,GAAI,EACJ,SAAU,oCACZ,EACA,CACE,GAAI,EACJ,SAAU,oCACZ,EACA,CACE,GAAI,EACJ,SAAU,gCACZ,EACA,CACE,GAAI,EACJ,SAAU,0BACZ,EACA,CACE,GAAI,EACJ,SAAU,6BACZ,EACA,CACE,GAAI,EACJ,SAAU,uCACZ,EACA,CACE,GAAI,EACJ,SAAU,yCACZ,EACA,CACE,GAAI,EACJ,SAAU,oCACZ,CACF,EACA,eAAgB,qBAChB,qBAAsB,EACxB,EAEaE,EAAwB,CACnC,GAAI,qBACJ,MAAO,GACP,SAAU,qBACV,QAAS,oCACT,aAAc,2DACd,KAAM,gCACN,iBAAkB,uDAClB,YAAaT,EACb,WAAY,WACZ,eAAgB,GAChB,sBAAuB,GACvB,uBAAwB,GACxB,wBAAyB,GACzB,YAAaf,EACb,cAAeC,EACf,iBAAkBI,EAClB,eAAgBa,EACb,SACA,IAAI,EAAG,wCAAwC,EAC/C,IAAI,GAAI,wCAAwC,EAChD,OAAQC,GAAa,oBAAoB,KAAKA,CAAQ,EAAG,CACxD,QAAS,oEAAA,CACV,EACA,OAAO,IAAM,EAAI,EACjB,OAAO,IAAM,EAAI,EACpB,qBACE,+GACF,kBAAmBD,EAChB,OAAA,EACA,IAAI,EAAG,wCAAwC,EAC/C,OAAO,IAAM,EAAI,EACpB,mBAAoB,CAAC,CACnB,SAAAI,EACA,MAAAG,EACA,UAAAC,EACA,SAAAC,EACA,SAAAR,CAAA,IAOI,CACJ,GAAIG,EAAS,YAAY,EAAE,SAASI,EAAU,YAAA,CAAa,EAClD,MAAA,sCAET,GAAIJ,EAAS,YAAY,EAAE,SAASK,EAAS,YAAA,CAAa,EACjD,MAAA,qCAET,GAAIL,EAAS,YAAY,EAAE,SAASH,EAAS,YAAA,CAAa,EACjD,MAAA,oCAET,GAAIG,EAAS,YAAY,EAAE,SAASG,EAAM,YAAA,CAAa,EAC9C,MAAA,gCAGX,EACA,qBACE,yNACF,QAAS,CACP,CACE,MAAO,SACP,MAAO,EACP,UAAW,GACb,EACA,CACE,MAAO,OACP,MAAO,EACP,UAAW,GACb,EACA,CACE,MAAO,QACP,MAAO,EACP,UAAW,GACb,CACF,EACA,aAAc,CACZ,CACE,UAAW,QACX,MAAO,EACP,MAAO,UACT,EACA,CACE,UAAW,aACX,MAAO,EACP,MAAO,eACT,EACA,CACE,UAAW,eACX,MAAO,EACP,MAAO,gBACT,EACA,CACE,UAAW,QACX,MAAO,EACP,MAAO,cACT,EACA,CACE,UAAW,OACX,MAAO,EACP,MAAO,QACT,CACF,EACA,eAAgB,CAAC,EACjB,aAAc,GACd,UAAW,CACT,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,qBACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,kBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,mBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,kCACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,kBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,uBACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,iBACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,mBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,qBACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,uBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,4BACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,kBACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,mBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,gBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,kBACT,EACA,CACE,MAAO,KACP,MAAO,kBACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,oBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,iBACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,2BACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,MACT,EACA,CACE,MAAO,KACP,MAAO,UACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,aACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,qBACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,iCACT,EACA,CACE,MAAO,KACP,MAAO,eACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,YACT,EACA,CACE,MAAO,KACP,MAAO,yBACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,WACT,EACA,CACE,MAAO,KACP,MAAO,uBACT,EACA,CACE,MAAO,KACP,MAAO,uBACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,sBACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,OACT,EACA,CACE,MAAO,KACP,MAAO,SACT,EACA,CACE,MAAO,KACP,MAAO,cACT,EACA,CACE,MAAO,KACP,MAAO,QACT,EACA,CACE,MAAO,KACP,MAAO,UACT,CACF,EACA,eAAgB,iCAChB,qBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAexB,EAEaG,EAAiC,CAACX,EAAWM,EAAWC,CAAS,ECziDjEK,EAAuB,mBACvBC,EAAwB,2DAMxBC,EAA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"}