@treely/strapi-slices 7.15.1 → 7.15.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.
@@ -1 +1 @@
1
- {"version":3,"file":"strapi-slices.esm.js","sources":["../src/constants/strapi.ts","../src/integrations/strapi/strapiClient.ts","../src/integrations/strapi/getAllSlugsFromStrapi.ts","../src/constants/api.ts","../src/integrations/fpmClient.ts","../src/integrations/strapi/getStrapiProjects.ts","../src/integrations/strapi/getPortfolioProjects.ts","../src/integrations/strapi/getStrapiCollectionType.ts","../src/integrations/strapi/getStrapiSingleType.ts","../src/utils/strapiMediaUrl.ts","../src/constants/metadata.ts","../src/constants/slicesConfig.ts","../src/utils/mergeGlobalAndStrapiBlogPostData.ts","../src/utils/mergeGlobalAndStrapiCustomerStoryData.ts","../src/utils/mergeGlobalAndStrapiPageData.ts","../src/utils/mergeGlobalAndStrapiProjectData.ts","../src/utils/strapiLinkUrl.ts","../src/components/PreviewAlert/PreviewAlert.tsx","../src/components/SEOTags/SEOTags.tsx","../src/components/FullScreenImage/ZoomableImage.tsx","../src/components/FullScreenImage/FullScreenImage.tsx","../src/constants/breakpoints.ts","../src/slices/FullWidthImage/FullWidthImage.tsx","../src/utils/openHubSpotChat.ts","../src/constants/globalStyle.ts","../src/slices/Comparison/messages.de.ts","../src/components/CreditsAvailableBadge/messages.de.ts","../src/slices/Cta/messages.de.ts","../src/components/CustomerCard/messages.de.ts","../src/components/CustomerQuoteCard/messages.de.ts","../src/components/EventCard/messages.de.ts","../src/slices/Events/messages.de.ts","../src/slices/Glossary/messages.de.ts","../src/components/portfolio/DocumentsDownloadList/messages.de.ts","../src/slices/ProjectFacts/messages.de.ts","../src/components/ProjectGridCard/messages.de.ts","../src/slices/ProjectsMap/messages.de.ts","../src/components/portfolio/ProjectInfo/messages.de.ts","../src/components/portfolio/SmallCheckout/messages.de.ts","../src/slices/ShopCheckout/messages.de.ts","../src/slices/TextCarousel/messages.de.ts","../src/slices/Timeline/messages.de.ts","../src/unit.messages.de.ts","../src/rootMessages.de.ts","../src/slices/Comparison/messages.en.ts","../src/components/CreditsAvailableBadge/messages.en.ts","../src/slices/Cta/messages.en.ts","../src/components/CustomerCard/messages.en.ts","../src/components/CustomerQuoteCard/messages.en.ts","../src/components/EventCard/messages.en.ts","../src/slices/Events/messages.en.ts","../src/slices/Glossary/messages.en.ts","../src/components/portfolio/DocumentsDownloadList/messages.en.ts","../src/slices/ProjectFacts/messages.en.ts","../src/components/ProjectGridCard/messages.en.ts","../src/slices/ProjectsMap/messages.en.ts","../src/components/portfolio/ProjectInfo/messages.en.ts","../src/components/portfolio/SmallCheckout/messages.en.ts","../src/slices/ShopCheckout/messages.en.ts","../src/slices/TextCarousel/messages.en.ts","../src/slices/Timeline/messages.en.ts","../src/unit.messages.en.ts","../src/rootMessages.en.ts","../src/utils/getMessages.ts","../src/components/ContextProvider/ContextProvider.tsx","../src/components/StrapiLinkButton/StrapiLinkButton.tsx","../src/slices/Hero/Hero.tsx","../src/slices/IconGrid/IconGrid.tsx","../src/icons/LinkedInIcon.tsx","../src/components/StrapiLinkButtonWithIcon/StrapiLinkButtonWithIcon.tsx","../src/slices/ImageGrid/ImageGrid.tsx","../src/slices/ImageTextSequence/ImageTextSequence.tsx","../src/slices/LeftTextRightCard/LeftTextRightCard.tsx","../src/slices/LogoGridWithText/LogoGridWithText.tsx","../src/slices/MapHero/styles.ts","../src/slices/MapHero/MapHero.tsx","../src/utils/convertToKebabCase.ts","../src/slices/QAndA/QAndA.tsx","../src/slices/QuoteCards/QuoteCards.tsx","../src/slices/RichTextSection/RichTextSection.tsx","../src/slices/Steps/Steps.tsx","../src/slices/TextCardGrid/TextCardGrid.tsx","../src/slices/TextCarousel/styles.ts","../src/utils/shuffleElements.ts","../src/slices/TextCarousel/TextCarousel.tsx","../src/slices/TextWithTextCards/TextWithTextCards.tsx","../src/constants/formatter.ts","../src/models/fpm/FPMProject.ts","../src/components/CreditsAvailableBadge/CreditsAvailableBadge.tsx","../src/components/ProjectGridCard/ProjectGridCard.tsx","../src/slices/TextWithCard/TextWithCard.tsx","../src/constants/animations.ts","../src/slices/LinkCardsGrid/LinkCardsGrid.tsx","../src/slices/SmallHero/SmallHero.tsx","../src/slices/Blog/styles.ts","../src/slices/Blog/Blog.tsx","../src/slices/ProjectsGrid/ProjectsGrid.tsx","../src/constants/mapbox.ts","../src/slices/ProjectsMap/mapboxStyle.ts","../src/integrations/strapi/getFpmProjectsByBbox.ts","../src/utils/mergeProjectData.ts","../src/slices/ProjectsMap/ProjectsMap.tsx","../src/slices/Video/Video.tsx","../src/slices/FullWidthHighlightQuote/FullWidthHighlightQuote.tsx","../src/slices/FullWidthImageSlider/styles.ts","../src/utils/getClosestRatio.ts","../src/slices/FullWidthImageSlider/FullWidthImageSlider.tsx","../src/slices/SideBySideImages/SideBySideImages.tsx","../src/slices/Cta/Cta.tsx","../src/slices/CtaOnly/CtaOnly.tsx","../src/slices/Glossary/Glossary.tsx","../src/constants/domain.ts","../src/slices/ShopCheckout/ShopCheckout.tsx","../src/slices/Facts/Facts.tsx","../src/slices/BlogCards/BlogCards.tsx","../src/components/portfolio/SmallCheckout/SmallCheckout.tsx","../src/utils/convertAreaM2ToHa.ts","../src/utils/convertCo2AmountKgToTons.ts","../src/utils/getTimeSpanInYears.ts","../src/components/portfolio/ProjectInfo/ProjectInfo.tsx","../src/components/portfolio/DocumentsDownloadList/DocumentsDownloadList.tsx","../src/components/portfolio/Contact/Contact.tsx","../src/integrations/strapi/getFpmProjectById.ts","../src/slices/ProjectFacts/ProjectFacts.tsx","../src/components/CustomerCard/CustomerCard.tsx","../src/components/CustomerQuoteCard/CustomerQuoteCard.tsx","../src/components/LogoCard/LogoCard.tsx","../src/slices/CustomerStories/CustomerStories.tsx","../src/slices/Comparison/Icon.tsx","../src/slices/Comparison/Comparison.tsx","../src/slices/CarouselMarqueeBanner/styles.ts","../src/slices/CarouselMarqueeBanner/CarouselMarqueeBanner.tsx","../src/slices/Timeline/Timeline.tsx","../src/utils/getCountryFlag.ts","../src/models/strapi/StrapiEvent.ts","../src/utils/isSameDate.ts","../src/components/EventCard/EventCard.tsx","../src/models/hooks/useEvents.ts","../src/slices/Events/Events.tsx","../src/components/SliceRenderer/SliceRenderer.tsx"],"sourcesContent":["export const STRAPI_URI =\n process.env.NEXT_PUBLIC_STRAPI_URI || 'http://127.0.0.1:1337';\n\nexport const STRAPI_DEFAULT_PAGE_SIZE = '100';\nexport const STRAPI_DEFAULT_POPULATE_DEPTH = '6';\n\nexport const STRAPI_FALLBACK_LOCALE = 'en';\n","import axios from 'axios';\nimport qs from 'qs';\nimport { setupCache } from 'axios-cache-interceptor';\nimport { STRAPI_URI } from '../../constants/strapi';\n\nconst strapiClient = setupCache(\n axios.create({\n baseURL: `${STRAPI_URI}/api`,\n headers: { 'Strapi-Response-Format': 'v4' },\n paramsSerializer: (p) => qs.stringify(p, { encodeValuesOnly: true }),\n timeout: 60_000,\n }),\n {\n ttl:\n STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')\n ? 0\n : 10 * 60 * 1000, // 10 minutes\n }\n);\n\nexport default strapiClient;\n","import strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport LocalizedEntity from '../../models/LocalizedEntity';\n\ninterface Options {\n filters?: Record<string, any>;\n}\n\ntype Slug = { slug: string; locale: string };\n\nconst getAllSlugsFromStrapi = async <T extends LocalizedEntity<'slug'>>(\n path: string,\n locales: string[],\n { filters = {} }: Options = { filters: {} }\n): Promise<Slug[]> => {\n const slugPromises = locales.map((locale) =>\n strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n locale: locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n },\n })\n .then((response) =>\n response.data.data.map((page) => ({\n slug: page.attributes.slug,\n locale: page.attributes.locale,\n }))\n )\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n })\n );\n\n const slugResults = await Promise.all(slugPromises);\n\n let allSlugs = slugResults.flat();\n\n // Identify missing locales for each slug\n const missingLocales = locales.flatMap((locale) => {\n return allSlugs\n .filter((slug) => slug.locale === STRAPI_FALLBACK_LOCALE)\n .filter(\n (fallbackSlug) =>\n !allSlugs.some(\n (slug) => slug.slug === fallbackSlug.slug && slug.locale === locale\n )\n )\n .map((fallbackSlug) => ({ ...fallbackSlug, locale })); // Clone only for missing locales\n });\n\n return [...allSlugs, ...missingLocales]; // Merge original and missing slugs\n};\n\nexport default getAllSlugsFromStrapi;\n","export const API_URI =\n process.env.NEXT_PUBLIC_API_URI || 'http://localhost:4001';\nexport const FPM_API_URI =\n process.env.NEXT_PUBLIC_FPM_API_URI || 'https://api.fpm.t-staging.com';\nexport const CDN_URI = 'https://cdn.tree.ly';\n","import axios from 'axios';\nimport qs from 'qs';\nimport { setupCache } from 'axios-cache-interceptor';\nimport { FPM_API_URI } from '../constants/api';\n\nconst fpmClient = setupCache(\n axios.create({\n baseURL: `${FPM_API_URI}/v1`,\n paramsSerializer: (p) => qs.stringify(p, { encodeValuesOnly: true }),\n timeout: 5000,\n }),\n {\n ttl:\n FPM_API_URI.includes('127.0.0.1') || FPM_API_URI.includes('localhost')\n ? 0\n : 10 * 60 * 1000, // 10 minutes\n }\n);\n\nexport default fpmClient;\n","import { IStrapiData, IStrapiResponse, StrapiProject } from '../..';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n} from '../../constants/strapi';\nimport strapiClient from './strapiClient';\n\nconst FALLBACK_LOCALE = 'en';\n\nconst getStrapiProjects = async (\n locale: string = 'en',\n pLevel: string = STRAPI_DEFAULT_POPULATE_DEPTH,\n preview: boolean = false\n): Promise<Map<string, IStrapiData<StrapiProject>>> => {\n const cache = preview ? false : undefined;\n const strapiParams: Record<string, any> = {\n pLevel,\n locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n status: preview ? 'draft' : 'published',\n };\n\n const strapiProjects = new Map<string, IStrapiData<StrapiProject>>();\n\n try {\n const [strapiProjectsLocalized, strapiProjectsEnglish] = await Promise.all([\n strapiClient.get<IStrapiResponse<IStrapiData<StrapiProject>[]>>(\n '/projects',\n { params: strapiParams, cache }\n ),\n strapiClient.get<IStrapiResponse<IStrapiData<StrapiProject>[]>>(\n '/projects',\n {\n params: { ...strapiParams, locale: FALLBACK_LOCALE },\n cache,\n }\n ),\n ]);\n\n // Process Strapi data if we got it\n for (const project of [\n ...strapiProjectsEnglish.data.data,\n ...strapiProjectsLocalized.data.data,\n ]) {\n if (project.attributes.fpmProjectId) {\n strapiProjects.set(project.attributes.fpmProjectId, project);\n }\n }\n } catch (error) {\n console.warn('Failed to fetch Strapi data:', error);\n // Return empty map on failure\n }\n\n return strapiProjects;\n};\n\nexport default getStrapiProjects;\n","import { PortfolioProject } from '../..';\nimport { STRAPI_DEFAULT_POPULATE_DEPTH } from '../../constants/strapi';\nimport FPMProject from '../../models/fpm/FPMProject';\nimport fpmClient from '../fpmClient';\nimport getStrapiProjects from './getStrapiProjects';\n\nconst getPortfolioProjects = async (\n locale: string = 'en',\n preview: boolean = false\n): Promise<PortfolioProject[]> => {\n const cache = preview ? false : undefined;\n\n const [{ data: fpmProjects }, strapiProjects] = await Promise.all([\n fpmClient.get<FPMProject[]>('/public/projects', { cache }),\n getStrapiProjects(locale, STRAPI_DEFAULT_POPULATE_DEPTH, preview),\n ]);\n\n return fpmProjects.map((fpmProject: FPMProject) => {\n const strapiProject = strapiProjects.get(fpmProject.id);\n\n const toReturn: PortfolioProject = fpmProject;\n\n if (strapiProject?.attributes.slug) {\n toReturn.slug = strapiProject.attributes.slug;\n }\n if (strapiProject?.attributes.thumbnail) {\n toReturn.thumbnail = strapiProject?.attributes.thumbnail;\n }\n if (strapiProject?.attributes.portfolio.data?.attributes.host) {\n toReturn.portfolioHost =\n strapiProject.attributes.portfolio.data.attributes.host;\n }\n\n return toReturn;\n });\n};\n\nexport default getPortfolioProjects;\n","import strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport LocalizedEntity from '../../models/LocalizedEntity';\n\ninterface Options {\n locale?: string;\n slug?: string;\n preview?: boolean;\n filters?: Record<string, any>;\n}\n\nconst getStrapiCollectionType = async <\n T extends LocalizedEntity<K>,\n K extends string\n>(\n path: string,\n key: K,\n { locale = 'en', preview = false, filters = {} }: Options\n): Promise<IStrapiData<T>[]> => {\n const cache = preview ? false : undefined;\n\n const sharedParams = {\n pLevel: STRAPI_DEFAULT_POPULATE_DEPTH,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n status: preview ? 'draft' : 'published',\n };\n\n const requestedLocaleData = await strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n ...sharedParams,\n locale,\n },\n cache,\n })\n .then((response) => response.data.data)\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n });\n\n const fallbackLocaleData = await strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n ...sharedParams,\n locale: STRAPI_FALLBACK_LOCALE,\n },\n cache,\n })\n .then((response) => response.data.data)\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n });\n\n const results = fallbackLocaleData.map((fallbackLocaleDataEntry) => {\n const requestedLocale = requestedLocaleData.find(\n (localized) =>\n localized.attributes[key] === fallbackLocaleDataEntry.attributes[key]\n );\n\n return requestedLocale || fallbackLocaleDataEntry;\n });\n\n return results;\n};\n\nexport default getStrapiCollectionType;\n","import { AxiosResponse } from 'axios';\nimport strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\n\ninterface Options {\n locale?: string;\n preview?: boolean;\n filters?: Record<string, any>;\n}\n\nconst getStrapiSingleType = async <T>(\n path: string,\n { locale = 'en', preview = false, filters = {} }: Options\n): Promise<IStrapiData<T>> => {\n const cache = preview ? false : undefined;\n const params: Record<string, any> = {\n pLevel: STRAPI_DEFAULT_POPULATE_DEPTH,\n locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n status: preview ? 'draft' : 'published',\n };\n\n let response: AxiosResponse<IStrapiResponse<IStrapiData<T>>>;\n\n try {\n response = await strapiClient.get(path, { params, cache });\n return response.data.data;\n } catch (error: any) {\n if (error.isAxiosError && error.response?.status === 404) {\n // Retry request with fallback locale\n response = await strapiClient.get(path, {\n params: { ...params, locale: STRAPI_FALLBACK_LOCALE },\n cache,\n });\n\n return response.data.data;\n }\n\n throw error;\n }\n};\n\nexport default getStrapiSingleType;\n","import { STRAPI_URI } from '../constants/strapi';\nimport IStrapi from '../models/strapi/IStrapi';\nimport IStrapiData from '../models/strapi/IStrapiData';\nimport StrapiMedia from '../models/strapi/StrapiMedia';\n\nconst strapiMediaUrl = (\n media: IStrapi<IStrapiData<StrapiMedia>>,\n preferredSize:\n | 'native'\n | 'thumbnail'\n | 'xSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xLarge' = 'native'\n): string => {\n let { url } = media.data.attributes || {};\n if (preferredSize !== 'native' && media.data.attributes.ext !== '.svg') {\n url = media.data.attributes.formats[preferredSize]?.url || url;\n }\n if (url && (url.indexOf('http://') === 0 || url.indexOf('https://') === 0)) {\n return url;\n }\n return `${\n STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')\n ? STRAPI_URI\n : ''\n }${url}`;\n};\n\nexport default strapiMediaUrl;\n","export const DEFAULT_SHARE_IMAGE =\n 'https://cdn.tree.ly/assets/v3/app/share-image-generic.webp';\nexport const DEFAULT_SHARE_ALT = 'Share Image';\n","export const EXTENDABLE_HEADER_SECTIONS = [\n 'sections.hero',\n 'sections.map-hero',\n 'sections.full-width-image',\n 'sections.small-hero',\n 'sections.small-hero-light',\n];\nexport const DARK_THEME_HEADER_SECTIONS = [\n 'sections.hero',\n 'sections.small-hero',\n];\nexport const SLICES_WITH_BLOG_POSTS = ['sections.blog', 'sections.blog-cards'];\nexport const SLICES_WITH_CUSTOMER_STORIES = ['sections.customer-stories'];\nexport const SLICES_WITH_PROJECTS = [\n 'sections.projects-grid',\n 'sections.projects-map',\n 'sections.project-facts',\n 'sections.text-with-card',\n];\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiBlogPostProps,\n StrapiGlobal,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\nimport {\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\n\nconst mergeGlobalAndStrapiBlogPostData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n post: IStrapiData<StrapiBlogPost>,\n blog: IStrapiData<StrapiBlogPost>[],\n projects: PortfolioProject[]\n): StrapiBlogPostProps => {\n const metaShareImageUrl = post.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n post.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n post.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlog = post.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnProjects = post.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...post,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiBlogPost\n attributes: {\n ...post?.attributes,\n metadata: post?.attributes?.metadata || global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: true,\n theme: 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n post.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n post.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n post.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: post?.attributes.slices,\n blogPosts: returnBlog ? blog : [],\n banner: global.attributes.banner,\n topBanner: post?.attributes.topBanner || global.attributes.topBanner,\n customerStories: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== post.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiBlogPostData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiCustomerStory,\n StrapiCustomerStoryProps,\n StrapiGlobal,\n} from '..';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\nimport { SLICES_WITH_CUSTOMER_STORIES } from '../constants/slicesConfig';\n\nconst mergeGlobalAndStrapiCustomerStoryData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n customerStory: IStrapiData<StrapiCustomerStory>,\n customerStories: IStrapiData<StrapiCustomerStory>[]\n): StrapiCustomerStoryProps => {\n const metaShareImageUrl = customerStory.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n customerStory.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n customerStory.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnCustomerStories = customerStory.attributes.slices.some((slice) =>\n SLICES_WITH_CUSTOMER_STORIES.includes(slice.__component)\n );\n\n return {\n ...customerStory,\n // Portfolio Projects\n projects: [],\n attributes: {\n ...customerStory?.attributes,\n metadata:\n customerStory?.attributes?.metadata || global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: true,\n theme: 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n customerStory.attributes.metadata?.title ??\n global.attributes.metadata.title,\n description:\n customerStory.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n customerStory.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: customerStory?.attributes.slices,\n customerStories: returnCustomerStories ? customerStories : [],\n banner: global.attributes.banner,\n topBanner:\n customerStory?.attributes.topBanner || global.attributes.topBanner,\n blogPosts: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== customerStory.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiCustomerStoryData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiCustomerStory,\n StrapiGlobal,\n StrapiPage,\n StrapiPageProps,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport {\n DARK_THEME_HEADER_SECTIONS,\n EXTENDABLE_HEADER_SECTIONS,\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_CUSTOMER_STORIES,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\n\nconst mergeGlobalAndStrapiPageData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n page: IStrapiData<StrapiPage>,\n blogPosts: IStrapiData<StrapiBlogPost>[],\n customerStories: IStrapiData<StrapiCustomerStory>[],\n projects: PortfolioProject[]\n): StrapiPageProps => {\n const metaShareImageUrl = page.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n page.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n page.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlogPosts = page.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnCustomerStories = page.attributes.slices.some((slice) =>\n SLICES_WITH_CUSTOMER_STORIES.includes(slice.__component)\n );\n const returnProjects = page.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...page,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiPage\n attributes: {\n ...page?.attributes,\n metadata: page?.attributes?.metadata ?? global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: EXTENDABLE_HEADER_SECTIONS.includes(\n page.attributes.slices[0]?.__component\n ),\n theme: DARK_THEME_HEADER_SECTIONS.includes(\n page.attributes.slices[0]?.__component\n )\n ? 'dark'\n : 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n page.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n page.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n page.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: page?.attributes.slices,\n blogPosts: returnBlogPosts ? blogPosts : [],\n banner: global.attributes.banner,\n topBanner: page?.attributes.topBanner || global.attributes.topBanner,\n customerStories: returnCustomerStories ? customerStories : [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== page.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiPageData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiGlobal,\n StrapiProject,\n StrapiProjectProps,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport {\n DARK_THEME_HEADER_SECTIONS,\n EXTENDABLE_HEADER_SECTIONS,\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\n\nconst mergeGlobalAndStrapiProject = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n project: IStrapiData<StrapiProject>,\n blogPosts: IStrapiData<StrapiBlogPost>[],\n projects: PortfolioProject[]\n): StrapiProjectProps => {\n const metaShareImageUrl = project.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n project.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n project.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlogPosts = project.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnProjects = project.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...project,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiProject\n attributes: {\n ...project.attributes,\n metadata: project?.attributes?.metadata || global.attributes.metadata,\n },\n headerType: {\n extendable: EXTENDABLE_HEADER_SECTIONS.includes(\n project.attributes.slices[0]?.__component\n ),\n theme: DARK_THEME_HEADER_SECTIONS.includes(\n project.attributes.slices[0]?.__component\n )\n ? 'dark'\n : 'light',\n },\n // PageProps\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n project.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n project.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n project.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: project.attributes.slices,\n blogPosts: returnBlogPosts ? blogPosts : [],\n banner: global.attributes.banner,\n topBanner: project?.attributes.topBanner || global.attributes.topBanner,\n customerStories: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== project.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiProject;\n","import StrapiLink from '../models/strapi/StrapiLink';\n\nconst strapiLinkUrl = (\n strapiLink: StrapiLink | undefined = undefined\n): string => {\n if (strapiLink?.page?.data) {\n return `/${strapiLink.page.data.attributes.slug}`;\n }\n\n return strapiLink?.url || '/';\n};\n\nexport default strapiLinkUrl;\n","import React from 'react';\nimport { BoemlyAlert, Box } from 'boemly';\n\nexport const PreviewAlert = (): JSX.Element => {\n return (\n <Box position=\"fixed\" top=\"4\" left=\"4\">\n <BoemlyAlert text=\"Preview\" status=\"error\" />\n </Box>\n );\n};\n","import React from 'react';\nimport Head from 'next/head';\nimport {\n DEFAULT_SHARE_ALT,\n DEFAULT_SHARE_IMAGE,\n} from '../../constants/metadata';\nimport {\n Article,\n BlogPosting,\n Brand,\n BreadcrumbList,\n Event,\n FAQPage,\n HowTo,\n LocalBusiness,\n Offer,\n Organization,\n Person,\n Product,\n QAPage,\n Service,\n SoftwareApplication,\n WebPage,\n WithContext,\n} from 'schema-dts';\n\ntype SupportedSchemaType =\n | Article\n | BlogPosting\n | Brand\n | BreadcrumbList\n | Event\n | FAQPage\n | HowTo\n | LocalBusiness\n | Offer\n | Organization\n | Person\n | Product\n | QAPage\n | Product\n | Service\n | SoftwareApplication\n | WebPage;\n\n// Helper function to convert SchemaValue to string\nconst getTextValue = (value: unknown): string => {\n if (typeof value === 'string') return value;\n if (typeof value === 'object' && value !== null && 'text' in value) {\n return (value as { text: string }).text;\n }\n return '';\n};\n\n// Helper function to safely access properties from a schema\nconst getSchemaProperty = (\n schema: SupportedSchemaType,\n property: string\n): string => {\n return (\n getTextValue((schema as unknown as Record<string, unknown>)[property]) || ''\n );\n};\n\n// Helper function to get a unique identifier from a schema\nconst getSchemaIdentifier = (schema: SupportedSchemaType): string => {\n const type = (schema as { '@type': string })['@type'];\n\n switch (type) {\n case 'Organization':\n return getSchemaProperty(schema, 'name') || 'default';\n case 'Article':\n case 'BlogPosting':\n return getSchemaProperty(schema, 'headline') || 'untitled-article';\n case 'Product':\n return getSchemaProperty(schema, 'name') || 'untitled-product';\n case 'Person':\n return getSchemaProperty(schema, 'name') || 'unnamed-person';\n case 'Event':\n return getSchemaProperty(schema, 'name') || 'untitled-event';\n case 'LocalBusiness':\n return getSchemaProperty(schema, 'name') || 'unnamed-business';\n case 'Service':\n return getSchemaProperty(schema, 'name') || 'unnamed-service';\n case 'Brand':\n return getSchemaProperty(schema, 'name') || 'unnamed-brand';\n case 'FAQPage':\n return 'faq-page';\n case 'HowTo':\n return getSchemaProperty(schema, 'name') || 'untitled-howto';\n case 'BreadcrumbList':\n return 'breadcrumbs';\n case 'Offer':\n const offer = schema as Offer;\n return `offer-${offer.price ?? 'unknown-price'}`;\n case 'WebPage':\n return getSchemaProperty(schema, 'name') || 'untitled-page';\n case 'QAPage':\n return getSchemaProperty(schema, 'name') || 'untitled-qa';\n case 'SoftwareApplication':\n return getSchemaProperty(schema, 'name') || 'untitled-software';\n default:\n return 'unknown-schema';\n }\n};\n\ninterface SEOTagsProps {\n title: string;\n description: string;\n shareImage?: {\n url: string;\n alt: string;\n };\n metaTitleSuffix?: string;\n favicon?: string;\n domain?: string;\n /**\n * Structured data for SEO purposes, following the schema.org standard.\n * This can be a single schema object or an array of schema objects.\n * Each object must include an `@context` property set to \"https://schema.org\"\n * and an `@type` property indicating the type of schema (e.g., Article, Product).\n */\n schemaMarkup?:\n | WithContext<SupportedSchemaType>\n | WithContext<SupportedSchemaType>[];\n}\n\nconst validateSchema = (\n schema: WithContext<SupportedSchemaType> | WithContext<SupportedSchemaType>[]\n): boolean => {\n if (Array.isArray(schema)) {\n return schema.every(\n (item) => item['@context'] === 'https://schema.org' && '@type' in item\n );\n }\n return schema['@context'] === 'https://schema.org' && '@type' in schema;\n};\n\nexport const SEOTags: React.FC<SEOTagsProps> = ({\n title,\n description,\n shareImage,\n metaTitleSuffix = 'Tree.ly',\n favicon = 'https://cdn.tree.ly/favicon.ico',\n domain = 'tree.ly',\n schemaMarkup,\n}: SEOTagsProps) => {\n const shareImageUrl = shareImage?.url ?? DEFAULT_SHARE_IMAGE;\n const shareImageAlt = shareImage?.alt ?? DEFAULT_SHARE_ALT;\n\n let schemas = schemaMarkup;\n let isValidSchema = schemaMarkup ? validateSchema(schemaMarkup) : false;\n\n if (schemaMarkup && !isValidSchema) {\n console.warn(\n 'Invalid schema markup provided to SEOTags component. Schema markup will not be rendered.',\n schemaMarkup\n );\n schemas = undefined;\n isValidSchema = false;\n }\n\n const schemaArray = schemas\n ? Array.isArray(schemas)\n ? schemas\n : [schemas]\n : [];\n\n const getSchemaKey = (\n schema: WithContext<SupportedSchemaType>,\n index: number\n ): string => {\n const type = (schema as { '@type': string })['@type'];\n const identifier = getSchemaIdentifier(schema as SupportedSchemaType);\n return `${type}-${identifier}-${index}`;\n };\n\n return (\n <Head>\n <title>{`${title} - ${metaTitleSuffix}`}</title>\n <meta name=\"description\" content={description} />\n <link rel=\"icon\" href={favicon} />\n\n <meta property=\"og:url\" content={`https://${domain}`} />\n <meta property=\"og:type\" content=\"website\" />\n <meta property=\"og:title\" content={title} />\n <meta property=\"og:description\" content={description} />\n <meta property=\"og:image\" content={shareImageUrl} />\n <meta property=\"og:image:alt\" content={shareImageAlt} />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta property=\"twitter:domain\" content={domain} />\n <meta property=\"twitter:url\" content={`https://${domain}`} />\n <meta name=\"twitter:title\" content={title} />\n <meta name=\"twitter:description\" content={description} />\n <meta name=\"twitter:image\" content={shareImageUrl} />\n <meta name=\"twitter:image:alt\" content={shareImageAlt} />\n\n {isValidSchema &&\n schemaArray.map((schema, index) => (\n <script\n key={getSchemaKey(schema, index)}\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(schema),\n }}\n />\n ))}\n </Head>\n );\n};\n","import StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { Box } from 'boemly';\nimport Head from 'next/head';\nimport Image from 'next/image';\nimport React, { useState } from 'react';\n\ninterface ZoomableImageProps {\n image: StrapiImage;\n zoom?: number;\n}\n\nconst ZoomableImage = ({ image, zoom = 200 }: ZoomableImageProps) => {\n // define and set default values to the states of the component\n const [isZoomed, setIsZoomed] = useState(false);\n const [backgroundPos, setBackgroundPos] = useState('50% 50%');\n\n const imageSrc = strapiMediaUrl(image.img, 'xLarge');\n\n const zoomInPosition = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n // This will handle the calculations of the area where the image needs to zoom in depending on the user interaction\n const zoomer = e.currentTarget.getBoundingClientRect();\n const x = ((e.clientX - zoomer.x) / zoomer.width) * 100;\n const y = ((e.clientY - zoomer.y) / zoomer.height) * 100;\n setBackgroundPos(`${x}% ${y}%`);\n };\n\n const toggleZoomImage = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n setIsZoomed(false);\n } else {\n // Zoom in and set the background position correctly\n setIsZoomed(true);\n zoomInPosition(e);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n toggleZoomImage(e);\n };\n\n const handleMove = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n zoomInPosition(e);\n }\n };\n\n return (\n <>\n <Head>\n <link rel=\"prefetch\" as=\"image\" href={imageSrc} />\n </Head>\n <Box\n position=\"relative\"\n display=\"inline-block\"\n width=\"full\"\n height=\"full\"\n overflow=\"hidden\"\n flexShrink=\"0\"\n scrollSnapAlign=\"center\"\n scrollSnapStop=\"always\"\n draggable=\"false\"\n cursor={isZoomed ? 'zoom-out' : 'zoom-in'}\n backgroundImage={isZoomed ? `url( ${imageSrc} )` : 'none'}\n backgroundSize={`${zoom}%`}\n backgroundPosition={backgroundPos}\n onClick={(e) => handleClick(e)}\n onMouseMove={(e) => handleMove(e)}\n >\n <Image\n src={imageSrc}\n alt={image.alt}\n fill\n style={{\n visibility: isZoomed ? 'hidden' : 'visible',\n objectFit: 'contain',\n }}\n />\n </Box>\n </>\n );\n};\n\nexport default ZoomableImage;\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { BoemlyModal, Flex, IconButton } from 'boemly';\nimport { useKey, useLockBodyScroll } from 'react-use';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport ZoomableImage from './ZoomableImage';\n\nexport interface FullScreenImageProps {\n images: StrapiImage[];\n isOpen: boolean;\n onClose: () => void;\n currentIndex?: number;\n setCurrentIndex?: (callback: (c: number) => number) => void;\n}\n\nexport const FullScreenImage = ({\n images,\n isOpen,\n onClose,\n currentIndex = 0,\n setCurrentIndex,\n}: FullScreenImageProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n useLockBodyScroll(isOpen);\n\n const canMoveRight = useMemo(\n () => currentIndex < images.length - 1,\n [currentIndex, images.length]\n );\n const canMoveLeft = useMemo(() => currentIndex !== 0, [currentIndex]);\n\n const onRight = useCallback(\n () => canMoveRight && setCurrentIndex && setCurrentIndex((c) => c + 1),\n [canMoveRight]\n );\n const onLeft = useCallback(\n () => canMoveLeft && setCurrentIndex && setCurrentIndex((c) => c - 1),\n [canMoveLeft]\n );\n\n useKey('ArrowRight', onRight, {}, [onRight]);\n useKey('ArrowLeft', onLeft, {}, [onLeft]);\n\n useEffect(() => {\n if (!!isOpen) {\n setTimeout(() => {\n containerRef?.current?.scrollTo({\n left: currentIndex * containerRef.current.clientWidth,\n behavior: 'instant',\n });\n }, 10);\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollTo({\n left: currentIndex * containerRef.current.clientWidth,\n behavior: 'smooth',\n });\n }\n }, [currentIndex, containerRef]);\n\n return (\n <BoemlyModal\n onClose={onClose}\n isOpen={isOpen}\n title=\"\"\n trigger=\"\"\n size=\"full\"\n content={\n <Flex\n position=\"absolute\"\n insetY=\"16\"\n insetX=\"0\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Flex\n ref={containerRef}\n flexGrow=\"1\"\n flexBasis=\"100%\"\n flexShrink=\"1\"\n gap=\"4\"\n marginX=\"24\"\n scrollSnapType=\"x mandatory\"\n overflow=\"hidden\"\n position=\"relative\"\n height=\"full\"\n width=\"full\"\n >\n {images.map((image) => (\n <ZoomableImage key={image.id} image={image} />\n ))}\n </Flex>\n\n <Flex\n position=\"absolute\"\n inset=\"6\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n pointerEvents=\"none\"\n >\n <IconButton\n visibility={canMoveLeft ? 'visible' : 'hidden'}\n onClick={onLeft}\n icon={<CaretLeft size={16} />}\n aria-label=\"Previous picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n mr=\"6\"\n />\n\n <IconButton\n visibility={canMoveRight ? 'visible' : 'hidden'}\n onClick={onRight}\n icon={<CaretRight size={16} />}\n aria-label=\"Next picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n ml=\"4\"\n />\n </Flex>\n </Flex>\n }\n />\n );\n};\n","export const BREAKPOINT_SM = `${320 - 1}px`;\nexport const BREAKPOINT_MD = `${768 - 1}px`;\nexport const BREAKPOINT_LG = `${960 - 1}px`;\nexport const BREAKPOINT_XL = `${1200 - 1}px`;\n\nexport const BREAKPOINT_SM_QUERY = `(max-width: ${BREAKPOINT_SM})`;\nexport const BREAKPOINT_MD_QUERY = `(max-width: ${BREAKPOINT_MD})`;\nexport const BREAKPOINT_LG_QUERY = `(max-width: ${BREAKPOINT_LG})`;\nexport const BREAKPOINT_XL_QUERY = `(max-width: ${BREAKPOINT_XL})`;\n","import React, { useState } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\n\ninterface FullWidthImageSlice extends StrapiDefaultHeader {\n image: StrapiImage;\n}\nexport interface FullWidthImageProps {\n slice: FullWidthImageSlice;\n}\n\nexport const FullWidthImage: React.FC<FullWidthImageProps> = ({\n slice,\n}: FullWidthImageProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', mt: ['32', null, null, '56'] }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '3xl', marginX: 'auto' }}\n />\n\n <Box position=\"relative\" mt=\"20\" height={['3xs', null, 'xl']}>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{\n objectFit: slice.image.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n borderRadius: 'var(--boemly-radii-2xl)',\n }}\n onClick={() => !isMobile && setIsOpen(true)}\n />\n\n <FullScreenImage\n images={[slice.image]}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","const openHubSpotChat = () => {\n const w = window as any;\n\n if (w.HubSpotConversations) {\n w.HubSpotConversations.widget.open();\n } else {\n w.hsConversationsOnReady = [\n () => {\n w.HubSpotConversations.widget.open();\n },\n ];\n }\n};\n\nexport default openHubSpotChat;\n","import { css } from '@emotion/react';\n\nexport const GLOBAL_STYLE = css`\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n`;\n","const messagesDe = {\n 'sections.comparison.backgroundShapes': 'Hintergrundformen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',\n 'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',\n 'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',\n 'components.creditsAvailableBadge.text.notYet': 'Credits bald verfügbar',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',\n 'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.customerCard.more': 'Weiterlesen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.customerQuoteCard.more': 'Weiterlesen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.eventCard.recommendedEvent': 'Empfohlene Veranstaltung',\n 'sections.eventCard.buttonShowMore': 'Mehr anzeigen',\n 'sections.eventCard.buttonShowLess': 'Weniger anzeigen',\n\n 'sections.eventCard.eventType.conference': 'Konferenz',\n 'sections.eventCard.eventType.webinar': 'Webinar',\n 'sections.eventCard.eventType.forestwalk': 'Waldspaziergang',\n 'sections.eventCard.eventType.partnerevent': 'Partnerveranstaltung',\n 'sections.eventCard.eventType.lunch&learn': 'Mittagessen & Lernen',\n 'sections.eventCard.eventType.fair': 'Messe',\n 'sections.eventCard.eventType.festival': 'Festival',\n 'sections.eventCard.eventType.roadshow': 'Roadshow',\n 'sections.eventCard.eventType.meetup': 'Meet Up',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.events.loadMore': 'Mehr laden',\n 'sections.events.noUpcomingEvents':\n 'Keine bevorstehenden Veranstaltungen gefunden',\n 'sections.events.noPastEvents': 'Keine vergangenen Veranstaltungen gefunden',\n 'sections.eventsFilter.searchPlaceholder': 'Suchen',\n 'sections.events.eventsFilter.eventType': 'Event Type',\n 'sections.events.eventsFilter.language': 'Sprache',\n 'sections.events.eventsFilter.sortBy.title': 'Sortieren nach',\n 'sections.events.eventsFilter.sortBy.newest': 'Neueste zuerst',\n 'sections.events.eventsFilter.sortBy.oldest': 'Älteste zuerst',\n};\n\nexport default messagesDe;\n","const messagesDe = {\n 'sections.glossary.copyButtonLabel':\n 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',\n 'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',\n 'sections.glossary.copyFailureMessage':\n 'Link konnte nicht in die Zwischenablage kopiert werden',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Projektdokumente',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Dokument herunterladen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.projectFacts.projectInfo.value': 'Projekt Infos',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'components.projectGridCard.certified': 'Zertifiziert, {year}',\n 'components.projectGridCard.certificationInProgress':\n 'Zertifizierung ist in Arbeit',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.projectsMap.link.text': 'Mehr Infos',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'features.projectInfo.projectInfo.value': 'Projekt Infos',\n 'features.projectInfo.properties.area': 'Projekt Fläche',\n 'features.projectInfo.properties.location': 'Standort',\n 'features.projectInfo.properties.start': 'Projekt Start Datum',\n 'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',\n 'features.projectInfo.properties.projectType': 'Projekt Typ',\n 'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verifizierungsstandard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.verificationStandard.value.MfKWCH':\n 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',\n 'features.projectInfo.properties.projectVolume.toolTip':\n 'Dies ist die durchschnittliche Anzahl der Credits, die pro Jahr ausgestellt werden. Dieser Wert entspricht nicht den Verfügbarkeiten.',\n 'features.projectInfo.properties.projectVolume.label': 'Projektvolumen',\n 'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {Jahr} other {Jahre} }',\n};\n\nexport default messagesDe;\n","const messagesDe = {\n 'portfolio.smallCheckout.price.taxNotIncluded': 'ohne Steuern',\n 'portfolio.smallCheckout.price.taxIncluded':\n 'Preis inklusive Steuern: {number}',\n\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Geben Sie den Beitrag in Fr. ein',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Geben Sie den Beitrag in € ein',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'Der Wert muss mindestens 10 CHF betragen',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'Der Wert muss mindestens 10 Euro betragen.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Bitte geben Sie einen Wert ein',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam',\n\n 'portfolio.smallCheckout.contributionValueTons.label': 'Beitrag in Tonnen',\n\n 'portfolio.smallCheckout.submitButton': 'Credits kaufen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.shopCheckout.intro.price': 'Preis',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Geben sie einen Betrag in € ein',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Geben sie einen Betrag in CHF ein',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Bitte geben sie einen Betrag ein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Menge',\n 'sections.shopCheckout.summary.price': 'Preis',\n 'sections.shopCheckout.summary.price.taxNotIncluded': 'ohne Steuern',\n 'sections.shopCheckout.summary.price.taxIncluded':\n 'Preis inklusive Steuern: {number}',\n\n 'sections.shopCheckout.submit': 'Kaufen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.textCarousel.moveRight': 'Nach rechts bewegen',\n 'sections.textCarousel.moveLeft': 'Nach links bewegen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.timeline.backgroundShapes': 'Hintergrundformen',\n 'sections.timeline.showMoreButton': 'Drei weitere Meilensteine anzeigen',\n};\nexport default messagesDe;\n","const unitMessagesDe = {\n 'unit.formatter.tonsCo2': '{number} /tCO₂',\n 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/Jahr',\n};\nexport default unitMessagesDe;\n","import comparisonMessagesDe from './slices/Comparison/messages.de';\nimport creditsAvailableBadgeMessagesDe from './components/CreditsAvailableBadge/messages.de';\nimport ctaMessagesDe from './slices/Cta/messages.de';\nimport customerCardMessagesDe from './components/CustomerCard/messages.de';\nimport customerQuoteCardMessagesDe from './components/CustomerQuoteCard/messages.de';\nimport eventCardMessagesDe from './components/EventCard/messages.de';\nimport eventsMessagesDe from './slices/Events/messages.de';\nimport glossaryMessagesDe from './slices/Glossary/messages.de';\nimport portfolioDocumentsDownloadListMessagesDe from './components/portfolio/DocumentsDownloadList/messages.de';\nimport projectFactsMessagesDe from './slices/ProjectFacts/messages.de';\nimport projectGridCardMessagesDe from './components/ProjectGridCard/messages.de';\nimport projectsMapMessagesDe from './slices/ProjectsMap/messages.de';\nimport portfolioProjectInfoMessagesDe from './components/portfolio/ProjectInfo/messages.de';\nimport portfolioSmallCheckoutMessagesDe from './components/portfolio/SmallCheckout/messages.de';\nimport shopCheckoutMessagesDe from './slices/ShopCheckout/messages.de';\nimport textCarouselMessagesDe from './slices/TextCarousel/messages.de';\nimport timelineMessagesDe from './slices/Timeline/messages.de';\n\nimport unitMessagesDe from './unit.messages.de';\n\nconst rootMessagesDe = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesDe,\n ...eventCardMessagesDe,\n ...portfolioDocumentsDownloadListMessagesDe,\n ...portfolioProjectInfoMessagesDe,\n ...portfolioSmallCheckoutMessagesDe,\n ...projectGridCardMessagesDe,\n\n //\n // Slices\n //\n ...comparisonMessagesDe,\n ...ctaMessagesDe,\n ...customerCardMessagesDe,\n ...customerQuoteCardMessagesDe,\n ...eventsMessagesDe,\n ...glossaryMessagesDe,\n ...projectFactsMessagesDe,\n ...projectsMapMessagesDe,\n ...shopCheckoutMessagesDe,\n ...textCarouselMessagesDe,\n ...timelineMessagesDe,\n\n //\n // Units\n //\n ...unitMessagesDe,\n};\n\nexport default rootMessagesDe;\n","const messagesEn = {\n 'sections.comparison.backgroundShapes': 'Background shapes',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'components.creditsAvailableBadge.text.yes': 'Credits available',\n 'components.creditsAvailableBadge.text.some': 'Some remaining credits',\n 'components.creditsAvailableBadge.text.no': 'No remaining credits',\n 'components.creditsAvailableBadge.text.notYet': 'Credits available soon',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.cta.backgroundShapesDark': 'Dark background shapes',\n 'sections.cta.backgroundShapesLight': 'Light background shapes',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.customerCard.more': 'Read more',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.customerQuoteCard.more': 'Read more',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.eventCard.recommendedEvent': 'Recommended Event',\n 'sections.eventCard.buttonShowMore': 'Show More',\n 'sections.eventCard.buttonShowLess': 'Show Less',\n\n 'sections.eventCard.eventType.conference': 'Conference',\n 'sections.eventCard.eventType.webinar': 'Webinar',\n 'sections.eventCard.eventType.forestwalk': 'Forest Walk',\n 'sections.eventCard.eventType.partnerevent': 'Partner Event',\n 'sections.eventCard.eventType.lunch&learn': 'Lunch & Learn',\n 'sections.eventCard.eventType.fair': 'Fair',\n 'sections.eventCard.eventType.festival': 'Festival',\n 'sections.eventCard.eventType.roadshow': 'Roadshow',\n 'sections.eventCard.eventType.meetup': 'Meet Up',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'sections.events.loadMore': 'Load more',\n 'sections.events.noUpcomingEvents': 'No upcoming events found',\n 'sections.events.noPastEvents': 'No past events found',\n 'sections.events.eventsFilter.searchPlaceholder': 'Search',\n 'sections.events.eventsFilter.eventType': 'Event Type',\n 'sections.events.eventsFilter.language': 'Language',\n 'sections.events.eventsFilter.sortBy.title': 'Sort by',\n 'sections.events.eventsFilter.sortBy.newest': 'Newest first',\n 'sections.events.eventsFilter.sortBy.oldest': 'Oldest first',\n};\n\nexport default messagesDe;\n","const messagesEn = {\n 'sections.glossary.copyButtonLabel':\n 'Copy a link to this section to your clipboard',\n 'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',\n 'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Project documents',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Download document',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.projectFacts.projectInfo.value': 'Project Infos',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'components.projectGridCard.certified': 'Certified, {year}',\n 'components.projectGridCard.certificationInProgress':\n 'Certification in progress',\n};\nexport default messagesDe;\n","const messagesEn = {\n 'sections.projectsMap.link.text': 'Show more info',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'features.projectInfo.projectInfo.value': 'Project Infos',\n 'features.projectInfo.properties.area': 'Project Area',\n 'features.projectInfo.properties.location': 'Location',\n 'features.projectInfo.properties.start': 'Project Start Date',\n 'features.projectInfo.properties.timeSpan': 'Project Time Span',\n 'features.projectInfo.properties.projectType': 'Project Type',\n 'features.projectInfo.properties.projectDeveloper': 'Project Developer',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verification Standard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.verificationStandard.value.MfKWCH':\n 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',\n 'features.projectInfo.properties.projectVolume.label': 'Project Volume',\n 'features.projectInfo.properties.projectVolume.toolTip':\n \"This is the average amount of credits that are issued per year. This value doesn't represent availabilities.\",\n 'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {year} other {years} }',\n};\n\nexport default messagesEn;\n","const messagesEn = {\n 'portfolio.smallCheckout.price.taxNotIncluded': 'not including tax',\n 'portfolio.smallCheckout.price.taxIncluded': 'Price including tax: {number}',\n\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Contribution Amount in CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Contribution Amount in €',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'The value must be at least 10 CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'The value must be at least 10 Euro',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Please enter a value',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'For bigger purchases please contact our sales team',\n\n 'portfolio.smallCheckout.contributionValueTons.label':\n 'Contribution Amount in Tons',\n\n 'portfolio.smallCheckout.submitButton': 'Buy credits',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.shopCheckout.intro.price': 'Price',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Enter contribution value in €',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Enter contribution value in CHF',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Please enter a value',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'For bigger purchases please contact our sales team via office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Quantity',\n 'sections.shopCheckout.summary.price': 'Price',\n 'sections.shopCheckout.summary.price.taxNotIncluded': 'not including tax',\n 'sections.shopCheckout.summary.price.taxIncluded':\n 'Price including tax: {number}',\n\n 'sections.shopCheckout.submit': 'Checkout',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'sections.textCarousel.moveRight': 'Move right',\n 'sections.textCarousel.moveLeft': 'Move left',\n};\nexport default messagesDe;\n","const messagesEn = {\n 'sections.timeline.backgroundShapes': 'Background shapes',\n 'sections.timeline.showMoreButton': 'Show three more milestones',\n};\nexport default messagesEn;\n","const unitMessagesEn = {\n 'unit.formatter.tonsCo2': '{number} /tCO₂',\n 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/year',\n};\nexport default unitMessagesEn;\n","import comparisonMessagesEn from './slices/Comparison/messages.en';\nimport creditsAvailableBadgeMessagesEn from './components/CreditsAvailableBadge/messages.en';\nimport ctaMessagesEn from './slices/Cta/messages.en';\nimport customerCardMessagesEn from './components/CustomerCard/messages.en';\nimport customerQuoteCardMessagesEn from './components/CustomerQuoteCard/messages.en';\nimport eventCardMessagesEn from './components/EventCard/messages.en';\nimport eventsMessagesEn from './slices/Events/messages.en';\nimport glossaryMessagesEn from './slices/Glossary/messages.en';\nimport portfolioDocumentsDownloadListMessagesEn from './components/portfolio/DocumentsDownloadList/messages.en';\nimport projectFactsMessagesEn from './slices/ProjectFacts/messages.en';\nimport projectGridCardMessagesEn from './components/ProjectGridCard/messages.en';\nimport projectsMapMessagesEn from './slices/ProjectsMap/messages.en';\nimport portfolioProjectInfoMessagesEn from './components/portfolio/ProjectInfo/messages.en';\nimport portfolioSmallCheckoutMessagesEn from './components/portfolio/SmallCheckout/messages.en';\nimport shopCheckoutMessagesEn from './slices/ShopCheckout/messages.en';\nimport textCarouselMessagesEn from './slices/TextCarousel/messages.en';\nimport timelineMessagesEn from './slices/Timeline/messages.en';\n\nimport unitMessagesEn from './unit.messages.en';\n\nconst rootMessagesEn = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesEn,\n ...eventCardMessagesEn,\n ...portfolioDocumentsDownloadListMessagesEn,\n ...portfolioProjectInfoMessagesEn,\n ...portfolioSmallCheckoutMessagesEn,\n ...projectGridCardMessagesEn,\n\n //\n // Slices\n //\n ...comparisonMessagesEn,\n ...ctaMessagesEn,\n ...customerCardMessagesEn,\n ...customerQuoteCardMessagesEn,\n ...eventsMessagesEn,\n ...glossaryMessagesEn,\n ...projectFactsMessagesEn,\n ...projectsMapMessagesEn,\n ...shopCheckoutMessagesEn,\n ...textCarouselMessagesEn,\n ...timelineMessagesEn,\n\n //\n // Units\n //\n ...unitMessagesEn,\n};\n\nexport default rootMessagesEn;\n","import { STRAPI_FALLBACK_LOCALE } from '../constants/strapi';\nimport rootMessagesDe from '../rootMessages.de';\nimport rootMessagesEn from '../rootMessages.en';\n\nconst messages = {\n en: rootMessagesEn,\n de: rootMessagesDe,\n};\n\nconst getMessages = (locale: string) => {\n const messagesLocale = Object.keys(messages).includes(`${locale}`)\n ? (locale as keyof typeof messages)\n : STRAPI_FALLBACK_LOCALE;\n\n return messages[messagesLocale];\n};\n\nexport default getMessages;\n","import React, { createContext } from 'react';\nimport { createIntl, createIntlCache } from 'react-intl';\nimport { Global } from '@emotion/react';\nimport { GLOBAL_STYLE } from '../../constants/globalStyle';\nimport getMessages from '../../utils/getMessages';\nimport strapiClient from '../../integrations/strapi/strapiClient';\nimport { SWRConfig } from 'swr/_internal';\n\nexport type AnalyticsFunction = ({\n type,\n props,\n}: {\n type: 'track' | 'page';\n props?: Record<string, any>;\n}) => void;\n\nexport const AnalyticsContext = createContext<AnalyticsFunction | undefined>(\n undefined\n);\n\nconst cache = createIntlCache();\n\nconst intlFactory = (locale: string) =>\n createIntl(\n {\n locale,\n messages: getMessages(locale),\n },\n cache\n );\n\nexport const IntlContext = createContext(intlFactory('en'));\n\nexport interface ContextProviderProps {\n children: React.ReactNode;\n locale: string;\n analyticsFunction?: AnalyticsFunction;\n}\n\nexport const ContextProvider: React.FC<ContextProviderProps> = ({\n children,\n locale,\n analyticsFunction,\n}: ContextProviderProps): JSX.Element => {\n const fetcher = async (resource: any, init: any) => {\n const response = await strapiClient.get(`${resource}`, {\n ...init,\n headers: {},\n });\n // Check if the response was an error:\n if (response.status < 200 || response.status >= 300) {\n let errorData = { message: '' };\n try {\n errorData = await response.data;\n } catch (error) {\n errorData = {\n message: `An unknown error occurred while fetching data.`,\n };\n }\n throw new Error(errorData.message); // Throwing the error will lead to onError being called\n }\n\n return { body: await response.data, headers: response.headers };\n };\n return (\n <>\n <SWRConfig\n value={{\n fetcher,\n }}\n >\n <Global styles={{ GLOBAL_STYLE }} />\n <IntlContext.Provider value={intlFactory(locale)}>\n <AnalyticsContext.Provider value={analyticsFunction}>\n {children}\n </AnalyticsContext.Provider>\n </IntlContext.Provider>\n </SWRConfig>\n </>\n );\n};\n","import React, { useContext } from 'react';\nimport { Button } from 'boemly';\nimport Link from 'next/link';\nimport { useDetectAdBlock } from 'adblock-detect-react';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport openHubSpotChat from '../../utils/openHubSpotChat';\nimport { AnalyticsContext } from '../ContextProvider/ContextProvider';\n\nexport interface StrapiLinkButtonProps {\n link: StrapiLink;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n variant?: 'solid' | 'outline' | 'outlineWhite' | 'link' | 'ghost';\n colorScheme?: 'primary' | 'gray' | 'orange' | 'green' | 'white';\n rightIcon?: JSX.Element;\n leftIcon?: JSX.Element;\n mt?: any;\n mr?: any;\n mb?: any;\n ml?: any;\n mx?: any;\n my?: any;\n background?: string;\n width?: string;\n component?: string;\n}\n\nexport const StrapiLinkButton: React.FC<StrapiLinkButtonProps> = ({\n link,\n component = 'StrapiLinkButton',\n ...buttonProps\n}: StrapiLinkButtonProps) => {\n const adBlockDetected = useDetectAdBlock();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleClick = () => {\n const buttonUrl =\n link.intercomLauncher && adBlockDetected\n ? 'mailto:hello@tree.ly'\n : strapiLinkUrl(link);\n\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component,\n buttonText: link.text,\n buttonUrl,\n },\n });\n };\n\n if (link.intercomLauncher) {\n if (adBlockDetected) {\n return (\n <Button\n {...buttonProps}\n as={Link}\n href=\"mailto:hello@tree.ly\"\n onClick={handleClick}\n >\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button\n {...buttonProps}\n onClick={() => {\n handleClick();\n openHubSpotChat();\n }}\n >\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button\n {...buttonProps}\n as={Link}\n href={strapiLinkUrl(link)}\n onClick={handleClick}\n >\n {link.text}\n </Button>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionHeader, Flex, Gradient, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\n\nexport interface HeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n additionalButtons: StrapiButtonWithVariant[];\n image?: StrapiImage;\n textAlign: 'left' | 'center';\n shape?: StrapiImage;\n };\n}\n\nexport const Hero = ({ slice }: HeroProps): JSX.Element => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"var(--default-hero-height)\"\n minHeight=\"2xl\"\n backgroundColor=\"gray.900\"\n overflowX=\"hidden\"\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </>\n )}\n {slice.shape && (\n <Box\n position=\"absolute\"\n bottom=\"0\"\n borderTopRightRadius=\"full\"\n width={['3xs', null, '2xs', null, 'sm']}\n height={['3xs', null, '2xs', null, 'sm']}\n right={['-16', null, '24']}\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderTopRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"56%\"\n width=\"full\"\n textAlign={slice.textAlign}\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ color: 'white' }}\n titleProps={{\n color: 'white',\n maxW: slice.textAlign === 'center' ? '4xl' : '3xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n }}\n textProps={{\n maxW: '2xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n color: 'white',\n }}\n />\n\n <Flex\n gap=\"8\"\n justifyContent={slice.textAlign === 'center' ? 'center' : 'start'}\n >\n {slice.button && (\n <StrapiLinkButton\n key={slice.button.id}\n mt=\"10\"\n size=\"xl\"\n link={slice.button}\n component=\"Hero\"\n />\n )}\n {slice.additionalButtons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n mt=\"10\"\n size=\"xl\"\n variant={button.variant}\n link={button.button}\n component=\"Hero\"\n />\n ))}\n </Flex>\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\n\nexport interface IconGridProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n iconsWithTextAndButton: {\n id: number;\n title: string;\n text: string;\n icon: StrapiImage;\n button?: StrapiLink;\n }[];\n };\n}\n\nexport const IconGrid = ({ slice }: IconGridProps): JSX.Element => {\n const columns = () => {\n if (slice.iconsWithTextAndButton.length === 2) {\n return [1, null, null, 2, 2];\n }\n if (slice.iconsWithTextAndButton.length === 1) {\n return 1;\n }\n return [1, null, null, 2, 3];\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{ maxW: '3xl', textAlign: 'center' }}\n textProps={{ maxW: '3xl', textAlign: 'center' }}\n />\n </Flex>\n <Spacer h=\"20\" />\n </>\n ) : (\n <></>\n )}\n\n <SimpleGrid\n columns={columns()}\n gap={slice.iconsWithTextAndButton.length === 2 ? '14' : '16'}\n rowGap={['16', null, null, '20']}\n >\n {slice.iconsWithTextAndButton.map((iconWithTextAndButton) => (\n <Box key={iconWithTextAndButton.id}>\n <Box\n margin=\"0 auto\"\n backgroundColor=\"primary.50\"\n borderRadius=\"full\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-around\"\n width=\"6.5rem\"\n height=\"6.5rem\"\n >\n <Box position=\"absolute\" width=\"12\" height=\"12\">\n <Image\n src={strapiMediaUrl(\n iconWithTextAndButton.icon.img,\n 'xSmall'\n )}\n alt={iconWithTextAndButton.icon.alt}\n fill\n style={{\n objectFit:\n iconWithTextAndButton.icon.objectFit || 'contain',\n }}\n />\n </Box>\n </Box>\n <Heading size=\"xl\" textAlign=\"center\" mb=\"4\" mt=\"8\">\n {iconWithTextAndButton.title}\n </Heading>\n <Text size=\"mdRegularNormal\" textAlign=\"center\">\n {iconWithTextAndButton.text}\n </Text>\n {iconWithTextAndButton.button && (\n <Box textAlign=\"center\">\n <StrapiLinkButton\n key={iconWithTextAndButton.button.id}\n mt=\"8\"\n size=\"md\"\n variant=\"outline\"\n link={iconWithTextAndButton.button}\n component=\"IconGrid\"\n />\n </Box>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\n\nconst LinkedInIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_112_606)\">\n <path\n d=\"M11.9286 11.9285H9.85424V8.67998C9.85424 7.90534 9.84042 6.90813 8.77539 6.90813C7.695 6.90813 7.52969 7.75213 7.52969 8.62357V11.9283H5.45533V5.24799H7.44671V6.16093H7.47459C7.67388 5.82018 7.96186 5.53986 8.30786 5.34984C8.65386 5.15981 9.04493 5.06719 9.4394 5.08183C11.5418 5.08183 11.9295 6.46473 11.9295 8.2638L11.9286 11.9285ZM3.11477 4.33484C2.87669 4.33489 2.64393 4.26433 2.44595 4.13209C2.24796 3.99985 2.09365 3.81188 2.0025 3.59193C1.91135 3.37199 1.88746 3.12995 1.93387 2.89644C1.98027 2.66292 2.09488 2.44841 2.26321 2.28003C2.43153 2.11164 2.646 1.99696 2.8795 1.95047C3.11301 1.90398 3.35504 1.92778 3.57502 2.01884C3.795 2.10992 3.98303 2.26417 4.11533 2.46211C4.24764 2.66004 4.31829 2.89277 4.31833 3.13085C4.31836 3.28894 4.28725 3.44547 4.22678 3.59153C4.1663 3.7376 4.07767 3.87031 3.96591 3.98211C3.85415 4.09392 3.72146 4.18261 3.57541 4.24313C3.42937 4.30365 3.27286 4.33481 3.11477 4.33484ZM4.15194 11.9285H2.07544V5.24799H4.15194V11.9285ZM12.9628 0.000953808H1.03307C0.762304 -0.00210183 0.501383 0.102466 0.307673 0.291681C0.113961 0.480895 0.00330461 0.739273 0 1.01004V12.9892C0.00319151 13.2602 0.113783 13.5187 0.307487 13.7081C0.501192 13.8975 0.762169 14.0023 1.03307 13.9994H12.9628C13.2342 14.0028 13.496 13.8983 13.6904 13.7089C13.8848 13.5195 13.9962 13.2607 14 12.9892V1.00918C13.9961 0.737873 13.8846 0.479199 13.6902 0.28999C13.4958 0.10078 13.2341 -0.00348904 12.9628 8.91429e-05\"\n fill=\"#0A66C2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_112_606\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default LinkedInIcon;\n","import React from 'react';\nimport { CaretRight, Globe } from '@phosphor-icons/react';\nimport LinkedInIcon from '../../icons/LinkedInIcon';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport StrapiLinkButton from '../StrapiLinkButton';\nimport { StrapiLinkButtonProps } from '../StrapiLinkButton/StrapiLinkButton';\n\nexport interface StrapiLinkButtonWithIconProps\n extends Omit<StrapiLinkButtonProps, 'link'> {\n link: StrapiLinkWithIcon;\n}\n\nexport const StrapiLinkButtonWithIcon: React.FC<\n StrapiLinkButtonWithIconProps\n> = ({ link, ...props }: StrapiLinkButtonWithIconProps) => {\n const getLinkIcon = (destination: string) => {\n switch (destination) {\n case 'linkedin': {\n return <LinkedInIcon />;\n }\n case 'web': {\n return <Globe />;\n }\n default: {\n return <CaretRight />;\n }\n }\n };\n\n return (\n <StrapiLinkButton\n {...props}\n link={link.link}\n rightIcon={getLinkIcon(link.destination)}\n />\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButtonWithIcon from '../../components/StrapiLinkButtonWithIcon';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface ImageGridSlice extends StrapiDefaultHeader {\n images: {\n id: number;\n title: string;\n subTitle?: string;\n image: StrapiImage;\n links: StrapiLinkWithIcon[];\n }[];\n}\nexport interface ImageGridProps {\n slice: ImageGridSlice;\n}\n\nexport const ImageGrid: React.FC<ImageGridProps> = ({\n slice,\n}: ImageGridProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n\n <SimpleGrid\n mt=\"24\"\n columns={3}\n gap=\"24\"\n rowGap=\"16\"\n minChildWidth=\"16rem\"\n >\n {slice.images.map(({ id, title, subTitle, image, links }) => (\n <Box key={id}>\n <Box position=\"relative\" height=\"sm\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img, 'medium')}\n alt={image.alt}\n fill\n style={{\n objectFit: image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Heading size=\"xl\" mt=\"4\">\n {title}\n </Heading>\n {subTitle && <Text size=\"mdRegularNormal\">{subTitle}</Text>}\n {links && links.length > 0 && (\n <Flex mt=\"3\" flexDir=\"row\" gap=\"2\" flexWrap=\"wrap\">\n {links.map((link) => (\n <StrapiLinkButtonWithIcon\n key={link.id}\n link={link}\n size=\"sm\"\n variant=\"outline\"\n component=\"ImageGrid\"\n />\n ))}\n </Flex>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { Fragment } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { CDN_URI } from '../../constants/api';\n\ninterface ImageTextSequenceSlice extends StrapiDefaultHeader {\n imageTextRows: {\n id: number;\n title: string;\n text: string;\n button?: StrapiLink;\n image: StrapiImage;\n }[];\n background?: boolean;\n}\nexport interface ImageTextSequenceProps {\n slice: ImageTextSequenceSlice;\n}\n\nexport const ImageTextSequence: React.FC<ImageTextSequenceProps> = ({\n slice,\n}: ImageTextSequenceProps) => {\n const [oneColumnGrid] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [primary50] = useToken('colors', ['primary.50']);\n const [gray700] = useToken('colors', ['gray.700']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n {slice.background ? (\n <>\n <Box\n position=\"absolute\"\n top=\"0\"\n right=\"24\"\n display={['none', null, null, 'unset']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/desktop-map-border.svg`}\n alt=\"Map\"\n width=\"786\"\n height=\"897\"\n />\n </Box>\n <Box\n position=\"absolute\"\n top=\"64\"\n right=\"-14\"\n display={['unset', null, null, 'none']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/mobile-map-border.svg`}\n alt=\"Map\"\n width=\"227\"\n height=\"452\"\n />\n </Box>\n </>\n ) : (\n <></>\n )}\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: ['left', null, null, null, 'center'] }}\n titleProps={{\n maxW: '6xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n }}\n textProps={{\n maxW: '2xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n color: 'black',\n }}\n />\n\n <SimpleGrid\n gap=\"16\"\n mt={['28', null, null, null, '40']}\n columns={[1, null, null, null, 2]}\n >\n {slice.imageTextRows.map(\n ({ id, title, text, button, image }, index) => {\n const imageBox = (\n <Box>\n <Box\n position=\"relative\"\n width=\"full\"\n minHeight={['2xs', null, null, 'sm']}\n >\n <Image\n src={strapiMediaUrl(image.img, 'large')}\n alt={image.alt}\n fill\n style={{\n objectFit: image.objectFit || 'contain',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n </Box>\n );\n return (\n <Fragment key={id}>\n {(oneColumnGrid || index % 2 !== 0) && imageBox}\n <Box\n display=\"flex\"\n alignItems=\"flex-start\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n >\n <Heading as=\"h2\" size=\"xl\" mb=\"4\">\n {title}\n </Heading>\n <Text size=\"mdRegularNormal\">{text}</Text>\n {button && (\n <StrapiLinkButton\n mt=\"5\"\n link={button}\n size=\"sm\"\n variant=\"outline\"\n rightIcon={<CaretRight size=\"10\" color={gray700} />}\n component=\"ImageTextSequence\"\n />\n )}\n </Box>\n {!oneColumnGrid && index % 2 === 0 && imageBox}\n </Fragment>\n );\n }\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext } from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n PortfolioCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiPortfolioCard from '../../models/strapi/StrapiPortfolioCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface LeftTextRightCardSlice extends StrapiDefaultHeader {\n checkMarkLabels?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiPortfolioCard;\n}\nexport interface LeftTextRightCardProps {\n slice: LeftTextRightCardSlice;\n}\n\nexport const LeftTextRightCard: React.FC<LeftTextRightCardProps> = ({\n slice,\n}: LeftTextRightCardProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleCardButtonClick = () => {\n if (slice.card?.button) {\n if (analyticsFunction) {\n analyticsFunction({\n type: 'track',\n props: {\n action: 'click',\n component: 'LeftTextRightCard',\n buttonText: slice.card?.button?.text,\n buttonUrl: strapiLinkUrl(slice.card?.button),\n cardTitle: slice.card?.title,\n },\n });\n }\n\n push(strapiLinkUrl(slice.card?.button));\n }\n };\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(12, 1fr)',\n ]}\n templateRows={['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)']}\n rowGap=\"12\"\n >\n <GridItem colSpan={8} rowSpan={1} pr={['0', null, null, null, '28']}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.checkMarkLabels && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.checkMarkLabels} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n component=\"LeftTextRightCard\"\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 4]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.card && (\n <PortfolioCard\n title={slice.card.title}\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: handleCardButtonClick,\n }\n }\n facts={slice.card.facts}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n portfolioNumber={slice.card.portfolioNumber}\n />\n )}\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImageWithLink from '../../models/strapi/StrapiImageWithLink';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface LogoGridWithTextProps {\n slice: {\n title: string;\n text: string;\n button?: StrapiLink;\n logos: StrapiImageWithLink[];\n };\n}\n\nexport const LogoGridWithText: React.FC<LogoGridWithTextProps> = ({\n slice,\n}: LogoGridWithTextProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <SimpleGrid columns={2} gap=\"28\" minChildWidth=\"16rem\">\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"flex-start\"\n >\n <Heading as=\"h2\" size=\"3xl\" mb=\"4\">\n {slice.title}\n </Heading>\n <RichText content={slice.text} />\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n mt=\"6\"\n rightIcon={<ArrowRight />}\n component=\"LogoGridWithText\"\n />\n )}\n </Box>\n <Flex flexDir=\"row\" flexWrap=\"wrap\" gap={['12', null, null, '28']}>\n {slice.logos.map((logo) => (\n <Flex\n key={logo.id}\n justifyContent=\"center\"\n alignItems=\"center\"\n flexGrow={1}\n flexShrink={0}\n flexBasis={slice.logos.length > 2 ? '34%' : '90%'} // 34% are just enough to not allow three in one row\n >\n <Box position=\"relative\" height=\"20\" width=\"100%\">\n {logo.link ? (\n <a href={strapiLinkUrl(logo.link)}>\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n </a>\n ) : (\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n )}\n </Box>\n </Flex>\n ))}\n </Flex>\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_LG } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const MapHeroContainer = styled(Box)`\n position: relative;\n width: 100vw;\n height: var(--default-hero-height);\n min-height: var(--boemly-sizes-3xl);\n background-color: var(--boemly-colors-primary-50);\n overflow: hidden;\n z-index: var(--boemly-zIndices-base);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n height: auto;\n }\n`;\n\nexport const MapHeroTextContainer = styled(Box)`\n position: absolute;\n width: 100vw;\n top: 56%;\n left: 0;\n transform: translateY(-50%);\n z-index: var(--boemly-zIndices-aboveBase);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n`;\n\nexport const ShapeContainer = styled(Box)`\n position: absolute;\n bottom: calc(var(--boemly-space-8) * -1);\n left: 0;\n\n width: var(--boemly-sizes-sm);\n height: var(--boemly-sizes-sm);\n\n border-top-right-radius: var(--boemly-radii-full);\n\n & span,\n div {\n border-top-right-radius: var(--boemly-radii-full);\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n display: none;\n }\n`;\n\nexport const MapContainer = styled(Box)`\n position: absolute;\n\n width: 50%;\n height: 100%;\n\n right: 0;\n top: 0;\n\n & img {\n object-fit: cover !important;\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n width: 100%;\n height: var(--boemly-sizes-4xl);\n position: relative;\n margin-top: calc(var(--boemly-space-72) * -1);\n background-color: var(--boemly-colors-white);\n\n & img {\n object-fit: contain !important;\n }\n }\n`;\n\nexport const MapGradient = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n background: linear-gradient(\n 90deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 10%,\n rgba(243, 246, 245, 0.6) 28%,\n rgba(243, 246, 245, 0) 40%,\n rgba(243, 246, 245, 0) 100%\n );\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n background: linear-gradient(\n 180deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 36%,\n rgba(243, 246, 245, 0.12) 46%,\n rgba(243, 246, 245, 0) 100%\n );\n }\n`;\n","import React from 'react';\nimport { DefaultSectionHeader, Flex, useMediaQuery, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport {\n MapHeroContainer,\n MapHeroTextContainer,\n ShapeContainer,\n MapContainer,\n MapGradient,\n} from './styles';\n\nexport interface MapHeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle?: string;\n buttons?: StrapiLink[];\n shape?: StrapiImage;\n map: StrapiImage;\n mobileMap: StrapiImage;\n };\n}\n\nexport const MapHero: React.FC<MapHeroProps> = ({ slice }: MapHeroProps) => {\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n return (\n <MapHeroContainer maxWidth=\"full\">\n {slice.shape && (\n <ShapeContainer>\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{ objectFit: slice.shape.objectFit || 'cover' }}\n />\n </ShapeContainer>\n )}\n <MapHeroTextContainer>\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: ['100%', null, null, null, '60%'] }}\n textProps={{ maxW: ['100%', null, null, null, '55%'] }}\n />\n {slice.buttons && slice.buttons.length > 0 && (\n <Flex mt=\"10\" flexDir=\"row\" gap=\"5\">\n <StrapiLinkButton\n link={slice.buttons[0]}\n size=\"xl\"\n component=\"MapHero\"\n />\n {slice.buttons.length === 2 && (\n <StrapiLinkButton\n link={slice.buttons[1]}\n variant=\"outline\"\n size=\"xl\"\n component=\"MapHero\"\n />\n )}\n </Flex>\n )}\n </>\n </Wrapper>\n </MapHeroTextContainer>\n <MapContainer>\n {belowBreakpoint ? (\n <Image\n src={strapiMediaUrl(slice.mobileMap.img, 'xLarge')}\n alt={slice.mobileMap.alt}\n fill\n style={{ objectFit: slice.mobileMap.objectFit || 'contain' }}\n />\n ) : (\n <Image\n src={strapiMediaUrl(slice.map.img, 'xLarge')}\n alt={slice.map.alt}\n fill\n style={{ objectFit: slice.map.objectFit || 'cover' }}\n />\n )}\n <MapGradient />\n </MapContainer>\n </MapHeroContainer>\n );\n};\n","const convertToKebabCase = (str: string) => {\n const matches =\n str &&\n str.match(\n /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g\n );\n return matches ? matches.map((x: string) => x.toLowerCase()).join('-') : '';\n};\n\nexport default convertToKebabCase;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Heading,\n HeroCard,\n SimpleGrid,\n Text,\n BoemlyAccordion,\n Wrapper,\n Flex,\n Spacer,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n textColor: 'white',\n accordionVariant: 'white',\n otherQuestionsBackground: 'primary.900',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n};\n\nexport interface QAndAProps {\n slice: {\n tagline: string;\n title: string;\n questionsAndAnswers: {\n id: number;\n key: string;\n value: string;\n }[];\n otherQuestions: string;\n button: StrapiLink;\n hero?: StrapiHeroCard;\n variant?: keyof typeof VARIANTS;\n defaultIndex: number[];\n };\n}\n\nexport const QAndA: React.FC<QAndAProps> = ({ slice }: QAndAProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleHeroButtonClick = () => {\n if (slice.hero?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'QAndA',\n buttonText: slice.hero.button.text,\n buttonUrl: strapiLinkUrl(slice.hero.button),\n section: 'hero',\n },\n });\n push(strapiLinkUrl(slice.hero.button));\n }\n };\n\n const variant = VARIANTS[slice.variant ?? 'green'];\n\n return (\n <>\n <Box\n pb={slice.hero ? 80 : 28}\n id={convertToKebabCase(slice.title)}\n backgroundColor={variant.backgroundColor}\n >\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]}>\n <Box mr=\"16\" paddingY=\"28\">\n <Text size=\"mdMonoUppercase\" color={variant.tagLineColor}>\n {slice.tagline}\n </Text>\n <Heading\n as=\"h2\"\n size=\"3xl\"\n color={variant.textColor}\n mt=\"6\"\n mb=\"16\"\n >\n {slice.title}\n </Heading>\n </Box>\n <Box\n maxHeight={['unset', null, null, 'xl']}\n paddingTop={['0', null, null, '28']}\n paddingRight={['0', null, null, '6']}\n overflowY={['unset', null, null, 'scroll']}\n >\n <Box>\n <BoemlyAccordion\n rows={slice.questionsAndAnswers}\n defaultIndex={slice.defaultIndex}\n variant={variant.accordionVariant as 'white' | 'black'}\n />\n <Flex\n padding=\"8\"\n backgroundColor={variant.otherQuestionsBackground}\n borderRadius=\"2xl\"\n mt=\"14\"\n flexDir={['column', null, null, 'row']}\n justifyContent={['flex-start', null, null, 'space-between']}\n alignItems={['flex-start', null, null, 'center']}\n >\n <Heading as=\"h6\" size=\"sm\" color=\"white\">\n {slice.otherQuestions}\n </Heading>\n <Spacer minHeight={['4', null, null, '0']} />\n <StrapiLinkButton\n size=\"lg\"\n colorScheme=\"white\"\n background=\"white\"\n rightIcon={<ArrowRight />}\n link={slice.button}\n component=\"QAndA\"\n />\n </Flex>\n </Box>\n </Box>\n </SimpleGrid>\n </Wrapper>\n </Box>\n\n {slice.hero && (\n <Box pb=\"28\" mt=\"-56\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: handleHeroButtonClick,\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n );\n};\n","import React, { useContext } from 'react';\nimport Image from 'next/image';\nimport {\n Box,\n DefaultSectionHeader,\n HeroCard,\n QuoteCard,\n Shape,\n SimpleGrid,\n Wrapper,\n} from 'boemly';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiQuoteCard from '../../models/strapi/StrapiQuoteCard';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\nimport { useRouter } from 'next/router';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface QuoteCardsSlice extends StrapiDefaultHeader {\n cards: StrapiQuoteCard[];\n shapes?: StrapiImage[];\n hero?: StrapiHeroCard;\n}\nexport interface QuoteCardsProps {\n slice: QuoteCardsSlice;\n}\n\nexport const QuoteCards: React.FC<QuoteCardsProps> = ({\n slice,\n}: QuoteCardsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleHeroCardButtonClick = () => {\n if (slice.hero?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'QuoteCards',\n buttonText: slice.hero.button.text,\n buttonUrl: strapiLinkUrl(slice.hero.button),\n section: 'hero',\n },\n });\n push(strapiLinkUrl(slice.hero.button));\n }\n };\n\n return (\n <>\n <Box\n id={convertToKebabCase(slice.title)}\n position=\"relative\"\n paddingTop=\"28\"\n paddingBottom={!!slice.hero ? '80' : '28'}\n >\n {slice.shapes && slice.shapes.length === 2 && (\n <>\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[0].img, 'small')}\n alt={slice.shapes[0].alt}\n fill\n style={{ objectFit: slice.shapes[0].objectFit || 'cover' }}\n />\n }\n top=\"0\"\n right=\"0\"\n size=\"xs\"\n radius=\"bottom-left\"\n />\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[1].img, 'small')}\n alt={slice.shapes[1].alt}\n fill\n style={{ objectFit: slice.shapes[1].objectFit || 'cover' }}\n />\n }\n bottom=\"0\"\n left=\"0\"\n radius=\"top-right\"\n />\n </>\n )}\n <Wrapper>\n <Box maxW=\"3xl\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <SimpleGrid\n columns={2}\n gap=\"20\"\n rowGap=\"6\"\n mt=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map((card) => (\n <Box key={card.id} width=\"full\" maxWidth=\"2xl\">\n <QuoteCard\n key={card.id}\n avatar={{\n name: card.avatar.name,\n description: card.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(card.avatar.image.img, 'small')}\n alt={card.avatar.image.alt}\n fill\n style={{\n objectFit: card.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n text={card.text}\n />\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </Box>\n {slice.hero && (\n <Box marginTop=\"-40\" paddingBottom=\"28\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: handleHeroCardButtonClick,\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n Grid,\n GridItem,\n RichText,\n Wrapper,\n} from 'boemly';\n\nexport interface RichTextSectionProps {\n slice: {\n content: string;\n };\n}\n\nexport const RichTextSection: React.FC<RichTextSectionProps> = ({\n slice,\n}: RichTextSectionProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <RichText content={slice.content} />\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, {\n createRef,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport {\n Box,\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Heading,\n RichText,\n ShapesCard,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useWindowScroll, useWindowSize } from 'react-use';\nimport { useRouter } from 'next/router';\nimport StrapiShapesCard from '../../models/strapi/StrapiShapesCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface StepsSlice extends StrapiDefaultHeader {\n steps: {\n id: number;\n step: number;\n title: string;\n text?: string;\n }[];\n image?: StrapiImage;\n card?: StrapiShapesCard;\n}\nexport interface StepsProps {\n slice: StepsSlice;\n}\n\nexport const Steps: React.FC<StepsProps> = ({ slice }: StepsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const [gray900] = useToken('colors', ['gray.900']);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [stepRefs, setStepRefs] = useState(new Array(slice.steps.length));\n const [stepProgress, setStepProgress] = useState(\n new Array(slice.steps.length)\n );\n\n const { y: offsetY } = useWindowScroll();\n const { height: windowHeight } = useWindowSize();\n\n const handleShapesCardButtonClick = () => {\n if (slice.card?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'Steps',\n buttonText: slice.card.button.text,\n buttonUrl: strapiLinkUrl(slice.card.button),\n section: 'card',\n },\n });\n push(strapiLinkUrl(slice.card.button));\n }\n };\n useEffect(() => {\n setStepRefs(slice.steps.map(() => createRef()));\n }, []);\n\n useEffect(() => {\n const containerOffsetTop = containerRef.current?.offsetTop || 0;\n setStepProgress(\n stepRefs.map((ref) => {\n const currentItemOffsetTop = ref.current?.offsetTop || 0;\n return containerOffsetTop + currentItemOffsetTop <\n offsetY + windowHeight / 3\n ? 100\n : 0;\n })\n );\n }, [offsetY]);\n\n return (\n <div ref={containerRef}>\n <DefaultSectionContainer backgroundColor={gray900} title={slice.title}>\n <>\n {slice.image && (\n <Box\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <Box marginTop={['16', null, '24']}>\n {slice.steps.map(({ id, step, title, text }, index) => (\n <Flex flexDir=\"column\" alignItems=\"center\" key={id}>\n <Center\n width=\"10\"\n height=\"10\"\n borderRadius=\"full\"\n backgroundColor=\"white\"\n >\n <Text size=\"smRegularNormal\" color=\"black\">\n {step}\n </Text>\n </Center>\n <Heading size=\"lg\" color=\"white\" mt=\"4\" textAlign=\"center\">\n {title}\n </Heading>\n {text && (\n <Box maxW=\"xl\" mt=\"4\">\n <RichText\n options={{ forceBlock: true }}\n content={text}\n textProps={{\n size: 'mdRegularNormal',\n color: 'whiteAlpha.700',\n textAlign: 'center',\n }}\n />\n </Box>\n )}\n {(index + 1 < slice.steps.length || slice.card) && (\n <Box\n ref={stepRefs[index]}\n position=\"relative\"\n marginTop=\"4\"\n marginBottom=\"6\"\n height=\"12\"\n >\n <Box\n position=\"absolute\"\n height=\"full\"\n borderLeft=\"dashed 1px white\"\n opacity=\"0.5\"\n />\n <Box\n position=\"absolute\"\n height={`${stepProgress[index]}%`}\n borderRight=\"solid 1px white\"\n opacity=\"1\"\n transition=\"height ease var(--medium-transition-duration)\"\n />\n </Box>\n )}\n </Flex>\n ))}\n </Box>\n\n {slice.card && (\n <ShapesCard\n tagline={slice.card.tagline}\n title={slice.card.title}\n text={slice.card.text}\n shapes={\n slice.card.shapes &&\n slice.card.shapes?.map((shape) => (\n <Image\n key={shape.id}\n src={strapiMediaUrl(shape.img, 'small')}\n alt={shape.alt}\n fill\n style={{ objectFit: shape.objectFit || 'cover' }}\n />\n ))\n }\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: handleShapesCardButtonClick,\n }\n }\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n </div>\n );\n};\n","import React from 'react';\nimport { css } from '@emotion/react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface TextCardGridSlice extends StrapiDefaultHeader {\n variant: 'shape' | 'image';\n cards: {\n id: number;\n tagline?: string;\n title: string;\n text: string;\n image: StrapiImage;\n buttons?: StrapiLink[];\n }[];\n}\nexport interface TextCardGridProps {\n slice: TextCardGridSlice;\n}\n\nenum ShapePosition {\n topLeft = 'top-left',\n topRight = 'top-right',\n bottomLeft = 'bottom-left',\n bottomRight = 'bottom-right',\n unset = 'unset',\n}\n\nconst shapePositions: ShapePosition[] = [\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n];\n\nconst oppositesOfCorners = {\n [ShapePosition.bottomLeft]: ShapePosition.topRight,\n [ShapePosition.topRight]: ShapePosition.bottomLeft,\n [ShapePosition.bottomRight]: ShapePosition.topLeft,\n [ShapePosition.topLeft]: ShapePosition.bottomRight,\n [ShapePosition.unset]: ShapePosition.unset,\n};\n\ntype Variant = {\n padding: (string | null)[];\n positionIcon: (index: number) => ShapePosition;\n width: string;\n height: string;\n position: 'absolute' | 'relative';\n mb: string;\n};\n\nconst variants: { shape: Variant; image: Variant } = {\n shape: {\n padding: ['6', null, null, '8'],\n positionIcon: (index: number) =>\n shapePositions[index % shapePositions.length],\n width: '40',\n height: '40',\n position: 'absolute',\n mb: 'unset',\n },\n image: {\n padding: ['6', null, null, '8'],\n positionIcon: () => ShapePosition.unset,\n width: '24',\n height: '24',\n position: 'relative',\n mb: '10',\n },\n};\n\nexport const TextCardGrid: React.FC<TextCardGridProps> = ({\n slice,\n}: TextCardGridProps) => {\n const [primary800] = useToken('colors', ['primary.800']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary800} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', color: 'white' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <SimpleGrid\n mt={['14', null, null, '24']}\n columns={3}\n justifyItems=\"center\"\n gap=\"20\"\n rowGap=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map(\n ({ id, tagline, title, text, image, buttons }, index) => (\n <Box\n key={id}\n backgroundColor=\"white\"\n zIndex=\"base\"\n padding={variants[slice.variant].padding}\n boxShadow=\"lg\"\n borderRadius=\"2xl\"\n minHeight=\"2xs\"\n width=\"full\"\n maxWidth={slice.cards.length > 1 ? 'unset' : 'xl'}\n position=\"relative\"\n display=\"flex\"\n flexDir=\"column\"\n alignItems=\"flex-start\"\n justifyContent={\n slice.variant === 'shape' ? 'flex-end' : 'flex-start'\n }\n overflow=\"hidden\"\n >\n <Box\n position={variants[slice.variant].position}\n width={variants[slice.variant].width}\n height={variants[slice.variant].height}\n mb={variants[slice.variant].mb}\n top={\n variants[slice.variant].positionIcon(index).includes('top')\n ? '-4'\n : 'unset'\n }\n left={\n variants[slice.variant].positionIcon(index).includes('left')\n ? '-4'\n : 'unset'\n }\n right={\n variants[slice.variant]\n .positionIcon(index)\n .includes('right')\n ? '-4'\n : 'unset'\n }\n bottom={\n variants[slice.variant]\n .positionIcon(index)\n .includes('bottom')\n ? '-4'\n : 'unset'\n }\n borderBottomRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomRight')\n ? 'full'\n : 'unset'\n }\n borderBottomLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomLeft')\n ? 'full'\n : 'unset'\n }\n borderTopRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topRight')\n ? 'full'\n : 'unset'\n }\n borderTopLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topLeft')\n ? 'full'\n : 'unset'\n }\n css={\n variants[slice.variant]\n .positionIcon(index)\n .includes('unset')\n ? css`\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n `\n : css`\n & span,\n div,\n img {\n border-${\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ]\n }-radius: var(--boemly-radii-full);\n }\n `\n }\n >\n <Image\n src={strapiMediaUrl(image.img, 'small')}\n alt={image.alt}\n fill\n style={{ objectFit: image.objectFit || 'cover' }}\n />\n </Box>\n <Box zIndex=\"aboveBase\" width=\"full\">\n {tagline && (\n <Text color=\"black\" size=\"smMonoNormal\" mb=\"2\">\n {tagline}\n </Text>\n )}\n <Heading as=\"h4\" size=\"xl\" mb=\"3\">\n {title}\n </Heading>\n <RichText\n content={text}\n listProps={{\n textColor: 'gray.500',\n textSize: 'smRegularNormal',\n }}\n textProps={{\n color: 'gray.500',\n size: 'smRegularNormal',\n }}\n />\n {buttons && !!buttons.length && (\n <Flex\n mt=\"4\"\n gap=\"3\"\n flexDir={['column', null, null, null, 'row']}\n >\n {buttons.map((button, buttonIndex) => (\n <StrapiLinkButton\n key={button.id}\n link={button}\n size=\"sm\"\n rightIcon={\n buttonIndex === 0 ? (\n <CaretRight size=\"10\" weight=\"bold\" />\n ) : undefined\n }\n variant={buttonIndex === 0 ? 'outline' : 'ghost'}\n component=\"TextCardGrid\"\n />\n ))}\n </Flex>\n )}\n </Box>\n </Box>\n )\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const CarouselContainer = styled(Box)`\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n margin-top: var(--boemly-space-4);\n width: var(--boemly-sizes-full);\n }\n\n width: var(--boemly-sizes-full);\n\n overflow-x: hidden;\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n overflow-x: scroll;\n }\n`;\n\ninterface CarouselInnerContainerProps {\n numberOfItems: number;\n}\nexport const CarouselInnerContainer = styled(\n motion.div\n)<CarouselInnerContainerProps>`\n display: flex;\n gap: var(--boemly-space-6);\n justify-content: center;\n\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-6)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-6)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n gap: var(--boemly-space-1);\n justify-content: flex-start;\n width: calc(\n (var(--boemly-sizes-2xs) + var(--boemly-space-4)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-6)\n );\n }\n`;\n\nexport const CardContainer = styled(Box)`\n width: var(--boemly-sizes-sm);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n min-width: var(--boemly-sizes-sm);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n`;\n","const shuffleElements = (slides: any[]) => {\n const slidesCopy = [...slides]; // Create a copy to avoid mutating the original array\n for (let i = slidesCopy.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [slidesCopy[i], slidesCopy[j]] = [slidesCopy[j], slidesCopy[i]];\n }\n return slidesCopy;\n};\n\nexport default shuffleElements;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n Box,\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n IconButton,\n TextCardWithIcon,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport {\n CardContainer,\n CarouselContainer,\n CarouselInnerContainer,\n} from './styles';\nimport { useMeasure, useWindowSize } from 'react-use';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ArrowLeft, ArrowRight } from '@phosphor-icons/react';\nimport { IntlContext } from '../../components/ContextProvider';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport { useRouter } from 'next/router';\nimport shuffleElements from '../../utils/shuffleElements';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface TextCarouselSlice extends StrapiDefaultHeader {\n slides: StrapiTextCardWithIcon[];\n button?: StrapiLink;\n isShuffled?: boolean;\n}\nexport interface TextCarouselProps {\n slice: TextCarouselSlice;\n}\n\nconst ITEM_GAP = 24;\nconst MAX_OFFSET_RIGHT = 55;\n\nexport const TextCarousel: React.FC<TextCarouselProps> = ({\n slice,\n}: TextCarouselProps) => {\n const containerRef = useRef(null);\n const [primary50] = useToken('colors', ['primary.50']);\n const [itemRef, { width: itemWidth }] = useMeasure<HTMLDivElement>();\n const { formatMessage } = useContext(IntlContext);\n const analyticsFunction = useContext(AnalyticsContext);\n const { width: windowWidth } = useWindowSize();\n const { push } = useRouter();\n\n const [displaySlides, setDisplaySlides] = useState(slice.slides);\n const [sliderIndex, setSliderIndex] = useState(0);\n\n const numberOfItems = useMemo(\n () => slice.slides.length,\n [slice.slides.length]\n );\n\n const sliderItemsWidth = useMemo(\n () => numberOfItems * (itemWidth + ITEM_GAP) - ITEM_GAP,\n [itemWidth, numberOfItems]\n );\n\n const offsetLeft = useMemo(\n () => sliderIndex * (itemWidth + ITEM_GAP) * -1,\n [sliderIndex, itemWidth]\n );\n\n const allowScroll = useMemo(\n () => sliderItemsWidth + ITEM_GAP * 2 > windowWidth,\n\n [sliderItemsWidth, windowWidth]\n );\n\n const canMoveRight = useMemo(() => {\n const offsetRight = windowWidth - (sliderItemsWidth + offsetLeft);\n\n return offsetRight < MAX_OFFSET_RIGHT;\n }, [itemWidth, sliderIndex, sliderItemsWidth, windowWidth]);\n\n const canMoveLeft = useMemo(() => sliderIndex !== 0, [sliderIndex]);\n\n const handleSlidesButtonClick = (button?: StrapiLink) => {\n if (button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'TextCarousel',\n buttonText: button.text,\n buttonUrl: strapiLinkUrl(button),\n section: 'slides',\n },\n });\n push(strapiLinkUrl(button));\n }\n };\n\n const { slides, isShuffled = false } = slice;\n\n useEffect(() => {\n if (isShuffled) {\n setDisplaySlides(shuffleElements(slides));\n }\n }, [slides, isShuffled]);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n </Wrapper>\n\n <CarouselContainer ref={containerRef}>\n <Box position=\"relative\" width=\"full\">\n <Wrapper>\n <CarouselInnerContainer\n numberOfItems={slice.slides.length}\n animate={{\n x: offsetLeft,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n >\n {displaySlides.map(({ id, title, text, icon, image, button }) => (\n <CardContainer key={id} ref={itemRef}>\n <TextCardWithIcon\n title={title}\n text={text}\n height=\"full\"\n icon={\n <Image\n src={strapiMediaUrl(icon.img, 'small')}\n alt={icon.alt}\n fill\n style={{ objectFit: icon.objectFit || 'contain' }}\n />\n }\n image={\n image && (\n <Image\n src={strapiMediaUrl(image?.img, 'medium')}\n alt={image?.alt}\n fill\n style={{\n objectFit: image?.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n )\n }\n button={\n button && {\n text: button.text,\n onClick: () => handleSlidesButtonClick(button),\n }\n }\n displayAs=\"column\"\n />\n </CardContainer>\n ))}\n </CarouselInnerContainer>\n </Wrapper>\n <Box\n display={['none', null, null, !!allowScroll ? 'flex' : 'none']}\n pointerEvents=\"none\"\n position=\"absolute\"\n top=\"40%\"\n left=\"0\"\n width=\"full\"\n py=\"0\"\n px=\"32\"\n justifyContent=\"space-between\"\n >\n <Box>\n <AnimatePresence>\n {canMoveLeft && (\n <IconButton\n key=\"leftButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex - 1)}\n aria-label={formatMessage({\n id: 'sections.textCarousel.moveLeft',\n })}\n icon={<ArrowLeft size={16} />}\n pointerEvents=\"auto\"\n boxShadow=\"md\"\n />\n )}\n </AnimatePresence>\n </Box>\n <Box>\n <AnimatePresence>\n {canMoveRight && (\n <IconButton\n key=\"rightButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex + 1)}\n aria-label={formatMessage({\n id: 'sections.textCarousel.moveRight',\n })}\n icon={<ArrowRight size={16} />}\n pointerEvents=\"auto\"\n boxShadow=\"md\"\n />\n )}\n </AnimatePresence>\n </Box>\n </Box>\n </Box>\n </CarouselContainer>\n\n <>\n {slice.button && (\n <Wrapper>\n <Center>\n <StrapiLinkButton\n link={slice.button}\n size=\"xl\"\n mt={['8', null, '14']}\n component=\"TextCarousel\"\n />\n </Center>\n </Wrapper>\n )}\n </>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext } from 'react';\nimport {\n Box,\n ContactArea,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n TextCardWithIcon,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiContactArea from '../../models/strapi/StrapiContactArea';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface TextWithTextCardsSlice extends StrapiDefaultHeader {\n cards: StrapiTextCardWithIcon[];\n contact?: StrapiContactArea;\n shape?: StrapiImage;\n}\nexport interface TextWithTextCardsProps {\n slice: TextWithTextCardsSlice;\n}\n\nexport const TextWithTextCards: React.FC<TextWithTextCardsProps> = ({\n slice,\n}: TextWithTextCardsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n const [white] = useToken('colors', ['white']);\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n const handleContactButtonClick = () => {\n if (slice.contact?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'TextWithTextCards',\n buttonText: slice.contact.button.text,\n buttonUrl: strapiLinkUrl(slice.contact.button),\n section: 'contact',\n },\n });\n push(strapiLinkUrl(slice.contact.button));\n }\n };\n\n return (\n <DefaultSectionContainer backgroundColor={white} title={slice.title}>\n <>\n {slice.shape && (\n <Box\n position=\"absolute\"\n right={['-28', null, null, '-136']}\n top={['96', null, null, '-28']}\n width={['sm', null, null, '4xl']}\n height={['sm', null, null, '4xl']}\n borderBottomRightRadius=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderBottomRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(16, 1fr)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n >\n <GridItem\n colSpan={[8, null, null, null, 9]}\n rowSpan={1}\n pr={['0', null, null, null, '32']}\n >\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n textProps={{ pr: ['0', null, null, null, '10'] }}\n />\n\n {slice.contact && !belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: handleContactButtonClick,\n }}\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 7]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.cards.map((card) => (\n <TextCardWithIcon\n key={card.id}\n title={card.title}\n text={card.text}\n icon={\n <Image\n src={strapiMediaUrl(card.icon.img, 'small')}\n alt={card.icon.alt}\n fill\n style={{ objectFit: card.icon.objectFit || 'contain' }}\n />\n }\n />\n ))}\n </GridItem>\n </Grid>\n {slice.contact && belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: handleContactButtonClick,\n }}\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { FormatNumberOptions } from 'react-intl';\n\nexport const FORMAT_AS_EUR_CONFIG: FormatNumberOptions = {\n style: 'currency',\n currency: 'EUR',\n};\n\nexport const FORMAT_AS_METER_CONFIG: FormatNumberOptions = {\n unit: 'meter',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_HECTARE_CONFIG: FormatNumberOptions = {\n unit: 'hectare',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 2,\n};\n\nexport const FORMAT_AS_CUBIC_METERS_PER_HECTARE_CONFIG: FormatNumberOptions = {\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_PERCENT_CONFIG: FormatNumberOptions = {\n style: 'percent',\n maximumFractionDigits: 2,\n};\n","import Issuer from './Issuer';\n\nexport enum CreditAvailability {\n CREDITS_AVAILABLE = 'credits_available',\n NO_CREDITS_AVAILABLE = 'no_credits_available',\n SOME_CREDITS_AVAILABLE = 'some_credits_available',\n SOON_CREDITS_AVAILABLE = 'soon_credits_available',\n}\n\ninterface FPMProject {\n id: string;\n title: string;\n description?: string;\n friendlyName?: string;\n\n isPublic?: boolean;\n geom?: {\n type: 'Point';\n coordinates: [number, number];\n };\n area?: number;\n location?: string;\n countryCode: string;\n start?: Date;\n end?: Date;\n projectType?: {\n title: string;\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n projectDeveloper?: {\n name: string;\n friendlyName?: string;\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n verificationStandard?: {\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n forecastedAmountYearly?: number;\n averageSellableAmountPerYear: number;\n riskBuffer?: number;\n defaultIssuer?: Issuer;\n creditAvailability: CreditAvailability;\n certificationDate?: Date;\n\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport default FPMProject;\n","import React, { useContext } from 'react';\nimport { Flex, Tag, Text } from 'boemly';\nimport NextLink from 'next/link';\nimport { IntlContext } from '../ContextProvider';\nimport { CreditAvailability } from '../../models/fpm/FPMProject';\n\nexport interface CreditsAvailableBadgeProps {\n status: CreditAvailability;\n href?: string;\n}\n\nconst CreditsAvailableBadge = ({\n status,\n href,\n}: CreditsAvailableBadgeProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n const variants: Record<\n CreditAvailability,\n { message: string; color: string }\n > = {\n [CreditAvailability.CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.yes',\n }),\n color: 'green.600',\n },\n [CreditAvailability.NO_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.no',\n }),\n color: 'red.600',\n },\n [CreditAvailability.SOME_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.some',\n }),\n color: 'orange.500',\n },\n [CreditAvailability.SOON_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.notYet',\n }),\n color: 'blue.500',\n },\n };\n\n const variant = variants[status];\n\n return (\n <Flex\n justifyContent=\"flex-start\"\n as={href ? NextLink : undefined}\n href={href}\n >\n <Tag backgroundColor={variant.color}>\n <Text color=\"white\" size=\"xsLowBold\">\n {variant.message}\n </Text>\n </Tag>\n </Flex>\n );\n};\n\nexport default CreditsAvailableBadge;\n","import { Box, Container, Flex, Heading, Tag, Text } from 'boemly';\nimport React, { useContext } from 'react';\nimport Image from 'next/image';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport { strapiMediaUrl } from '../..';\nimport { FORMAT_AS_HECTARE_CONFIG } from '../../constants/formatter';\nimport CreditsAvailableBadge from '../../components/CreditsAvailableBadge';\nimport { IntlContext } from '../ContextProvider';\n\nexport interface ProjectGridCardProps {\n project: PortfolioProject;\n}\n\nexport const ProjectGridCard = ({\n project,\n}: ProjectGridCardProps): JSX.Element => {\n const { formatNumber, formatMessage } = useContext(IntlContext);\n\n return (\n <Container height=\"full\">\n <Flex flexDir=\"column\" height=\"full\">\n {project.thumbnail && (\n <Box borderRadius=\"xl\" position=\"relative\" height=\"36\" mb=\"2\">\n <Image\n src={strapiMediaUrl(project.thumbnail?.img, 'medium')}\n alt={project.thumbnail?.alt}\n fill\n style={{\n objectFit: project.thumbnail?.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n )}\n <Heading my=\"4\" size=\"lg\">\n {project.friendlyName || project.title}\n </Heading>\n <Flex flexDir=\"row\" gap=\"2\" flexWrap=\"wrap\">\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatNumber(\n (project.area || 0) / 10000,\n FORMAT_AS_HECTARE_CONFIG\n )}\n </Text>\n </Tag>\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {project.location}\n </Text>\n </Tag>\n {project.certificationDate ? (\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage(\n { id: 'components.projectGridCard.certified' },\n { year: new Date(project.certificationDate).getFullYear() }\n )}\n </Text>\n </Tag>\n ) : (\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage({\n id: 'components.projectGridCard.certificationInProgress',\n })}\n </Text>\n </Tag>\n )}\n <CreditsAvailableBadge status={project.creditAvailability} />\n </Flex>\n </Flex>\n </Container>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n ProjectCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiProjectCard from '../../models/strapi/StrapiProjectCard';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { IStrapiData, PortfolioProject, StrapiProject } from '../..';\nimport ProjectGridCard from '../../components/ProjectGridCard';\n\ninterface TextWithCardSlice {\n tagline?: string;\n title: string;\n text?: string;\n listItems?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiProjectCard;\n project?: { data?: IStrapiData<StrapiProject> };\n cardPosition: 'left' | 'right';\n}\nexport interface TextWithCardProps {\n slice: TextWithCardSlice;\n projects: PortfolioProject[];\n}\n\nexport const TextWithCard: React.FC<TextWithCardProps> = ({\n slice,\n projects,\n}: TextWithCardProps) => {\n const portfolioProject = projects.find(\n (p) =>\n slice.project?.data?.attributes.fpmProjectId &&\n p.id === slice.project.data.attributes.fpmProjectId\n );\n\n const card = (\n <GridItem\n colSpan={[4, null, null, null, 2]}\n rowSpan={1}\n position=\"relative\"\n data-testid={`card-position-${slice.cardPosition}`}\n >\n {portfolioProject && <ProjectGridCard project={portfolioProject} />}\n {!portfolioProject && slice.card && (\n <ProjectCard\n facts={slice.card.facts}\n footerSubTitle={slice.card.footerSubTitle}\n footerTitle={slice.card.footerTitle}\n title={slice.card.title}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n />\n )}\n </GridItem>\n );\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(4, auto)',\n null,\n null,\n null,\n 'repeat(6, auto)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n columnGap={['0', null, null, null, '28']}\n >\n {slice.cardPosition === 'left' && card}\n <GridItem colSpan={4} rowSpan={1} position=\"relative\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.listItems && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.listItems} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n component=\"TextWithCard\"\n />\n )}\n </GridItem>\n {slice.cardPosition === 'right' && card}\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MEDIUM_TRANSITION_DURATION = 0.2;\n","import React from 'react';\nimport Link from 'next/link';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\ninterface LinkCardsGridSlice {\n tagline?: string;\n title: string;\n text?: string;\n cards: {\n id: number;\n title: string;\n text?: string;\n link: StrapiLink;\n }[];\n}\nexport interface LinkCardsGridProps {\n slice: LinkCardsGridSlice;\n}\n\nexport const LinkCardsGrid: React.FC<LinkCardsGridProps> = ({\n slice,\n}: LinkCardsGridProps) => (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n <SimpleGrid mt=\"16\" columns={[1, null, null, null, 2]} gap=\"4\">\n {slice.cards.map(({ id, title, text, link }) => (\n <Box\n key={id}\n as={Link}\n href={strapiLinkUrl(link)}\n data-testid=\"link\"\n px=\"10\"\n py=\"8\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n display=\"flex\"\n flexDir=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n cursor=\"pointer\"\n transitionDuration={`${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ backgroundColor: 'gray.50' }}\n >\n <div>\n <Heading as=\"h4\" size=\"lg\">\n {title}\n </Heading>\n {text && (\n <Text mt=\"2\" size=\"smRegularNormal\">\n {text}\n </Text>\n )}\n </div>\n\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n height=\"12\"\n width=\"12\"\n minWidth=\"12\"\n minHeight=\"12\"\n ml=\"6\"\n backgroundColor=\"white\"\n >\n <CaretRight />\n </Box>\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Tag,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SmallHeroProps {\n slice: {\n tags?: {\n id: number;\n text: string;\n colorScheme: string;\n }[];\n tagline?: string;\n title: string;\n subTitle?: string;\n button?: StrapiLink;\n image?: StrapiImage;\n gradient?: boolean;\n };\n theme: 'dark' | 'light';\n}\n\nconst colors = {\n dark: {\n tagline: 'white',\n title: 'white',\n text: 'white',\n background: 'gray.900',\n },\n light: {\n tagline: 'primary.500',\n title: 'black',\n text: 'gray.500',\n background: 'primary.50',\n },\n};\n\nexport const SmallHero: React.FC<SmallHeroProps> = ({\n slice,\n theme,\n}: SmallHeroProps) => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"xl\"\n backgroundColor={colors[theme].background}\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n {slice.gradient && <Gradient />}\n </>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"60%\"\n width=\"full\"\n textAlign=\"center\"\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n {slice.tags && (\n <Flex direction=\"row\" justify=\"center\" gap=\"2\" mb=\"4\" wrap=\"wrap\">\n {slice.tags.map(({ id, text, colorScheme }) => (\n <Tag\n key={id}\n colorScheme={colorScheme}\n size=\"md\"\n variant=\"subtle\"\n >\n {text}\n </Tag>\n ))}\n </Flex>\n )}\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{\n color: colors[theme].tagline,\n textAlign: 'center',\n mx: 'auto',\n }}\n titleProps={{\n color: colors[theme].title,\n maxW: '4xl',\n textAlign: 'center',\n mx: 'auto',\n }}\n textProps={{\n maxW: '2xl',\n textAlign: 'center',\n mx: 'auto',\n color: colors[theme].text,\n }}\n />\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n mt=\"6\"\n size=\"lg\"\n component=\"SmallHero\"\n />\n )}\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box, Link } from 'boemly';\n\nexport const BlogItemContainer = styled(Link)`\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n`;\n\nexport const ImageContainer = styled(Box)`\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: var(--boemly-sizes-3xs);\n }\n`;\n","import React, { useContext } from 'react';\nimport {\n Box,\n DatePersonPair,\n DefaultSectionContainer,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport { BlogItemContainer, ImageContainer } from './styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogProps {\n slice: {\n blog_posts: IStrapiData<StrapiBlogPost>[];\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nexport const Blog: React.FC<BlogProps> = ({ slice, blogPosts }: BlogProps) => {\n const { formatDate } = useContext(IntlContext);\n const sortedBlogPosts = slice.blog_posts.sort(\n (a, b) =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime()\n );\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]} spacingX={56} spacingY={24}>\n {sortedBlogPosts.map(({ attributes }) => {\n const blogPost: IStrapiData<StrapiBlogPost> | undefined =\n blogPosts.find((bp) => bp.attributes.slug === attributes.slug);\n if (!blogPost) {\n return null;\n }\n return (\n <BlogItemContainer\n key={blogPost.attributes.slug}\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'large')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category.data && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n <Spacer height=\"4\" />\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author.data\n ? {\n name: blogPost.attributes.author.data.attributes\n .name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes\n .img.objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionContainer, SimpleGrid, Wrapper } from 'boemly';\nimport Link from 'next/link';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport IStrapi from '../../models/strapi/IStrapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiProject from '../../models/strapi/StrapiProject';\nimport ProjectGridCard from '../../components/ProjectGridCard';\n\nexport interface ProjectsGridProps {\n slice: {\n projects: IStrapi<IStrapiData<StrapiProject>[]>;\n };\n projects: PortfolioProject[];\n}\n\nconst ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: {\n condition: boolean;\n wrapper: (children: JSX.Element) => JSX.Element;\n children: JSX.Element;\n}) => (condition ? wrapper(children) : children);\n\nexport const ProjectsGrid: React.FC<ProjectsGridProps> = ({\n projects,\n slice,\n}: ProjectsGridProps) => {\n const filteredProjects = projects.filter(\n (fpmProject) =>\n fpmProject.thumbnail &&\n slice.projects.data.some(\n (strapiProject) =>\n strapiProject.attributes.fpmProjectId === fpmProject.id\n )\n );\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2, null, 3]} gap=\"16\">\n {filteredProjects.map((project) => (\n <ConditionalWrapper\n key={project.id}\n condition={!!project.slug}\n wrapper={(children: JSX.Element) => (\n <Link\n href={`${project.portfolioHost || ''}/portfolio/${\n project.slug\n }`}\n passHref\n key={project.id}\n legacyBehavior\n >\n {children}\n </Link>\n )}\n >\n <Box\n as=\"a\"\n cursor=\"pointer\"\n borderRadius=\"2xl\"\n transition={`box-shadow ease ${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ boxShadow: 'lg' }}\n >\n <ProjectGridCard project={project} />\n </Box>\n </ConditionalWrapper>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MAPBOX_TOKEN =\n 'pk.eyJ1IjoidHJlZS1seSIsImEiOiJja25rNG1heHgwNThjMnZwZTl2eThmeXUwIn0.SOrYUKfevZkbx8jZPxJesA';\n\nexport enum MapBoxStyle {\n Outdoors = 'mapbox://styles/mapbox/outdoors-v11',\n SatelliteStreets = 'mapbox://styles/mapbox/satellite-streets-v11',\n Satellite = 'mapbox://styles/mapbox/satellite-v9',\n CaliTerrain = 'mapbox://styles/tree-ly/clna54iq603ht01pbc199cszw',\n}\n\nexport const MAPBOX_TILES_URL = `${\n process.env.NEXT_PUBLIC_MAPBOX_TILES_URL || 'http://localhost:8123'\n}/vectortiles/v1/plots/{z}/{x}/{y}.mvt`;\nexport const MAPBOX_SOURCE_LAYER = 'plots';\nexport const MAPBOX_SOURCE_IDENTIFIER = 'plots';\nexport const MAPBOX_BORDER_LAYER_IDENTIFIER = 'plots-borders';\nexport const MAPBOX_FILL_LAYER_IDENTIFIER = 'plots-fill';\nexport const MAPBOX_TEXT_LAYER_IDENTIFIER = 'plots-text';\n\nexport const MAPBOX_TEXT_MIN_ZOOM = 15;\nexport const MAPBOX_SHAPES_MIN_ZOOM = 13;\n\nexport const MAPBOX_MAX_ZOOM = 19;\nexport const MAPBOX_INITIAL_ZOOM = 13;\n","import { css } from '@emotion/react';\n\nconst mapboxStyle = css`\n .mapboxgl-map {\n -webkit-tap-highlight-color: rgb(0 0 0/0);\n font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;\n overflow: hidden;\n position: relative;\n }\n .mapboxgl-canvas {\n left: 0;\n position: absolute;\n top: 0;\n }\n .mapboxgl-map:-webkit-full-screen {\n height: 100%;\n width: 100%;\n }\n .mapboxgl-canary {\n background-color: salmon;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {\n cursor: grab;\n -webkit-user-select: none;\n user-select: none;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {\n cursor: pointer;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive:active,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {\n cursor: grabbing;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {\n touch-action: pinch-zoom;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan\n .mapboxgl-canvas {\n touch-action: none;\n }\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapboxgl-ctrl-top-left,\n .mapboxgl-ctrl-top-right {\n pointer-events: none;\n position: absolute;\n z-index: 2;\n }\n .mapboxgl-ctrl-top-left {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-right {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left {\n bottom: 0;\n left: 0;\n }\n .mapboxgl-ctrl-bottom-right {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl {\n clear: both;\n pointer-events: auto;\n transform: translate(0);\n }\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl {\n float: left;\n margin: 10px 0 0 10px;\n }\n .mapboxgl-ctrl-top-right .mapboxgl-ctrl {\n float: right;\n margin: 10px 10px 0 0;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl {\n float: left;\n margin: 0 0 10px 10px;\n }\n .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl {\n float: right;\n margin: 0 10px 10px 0;\n }\n .mapboxgl-ctrl-group {\n background: #fff;\n border-radius: 4px;\n }\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px ButtonText;\n }\n }\n .mapboxgl-ctrl-group button {\n background-color: transparent;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 29px;\n outline: none;\n overflow: hidden;\n padding: 0;\n width: 29px;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid #ddd;\n }\n .mapboxgl-ctrl button .mapboxgl-ctrl-icon {\n background-position: 50%;\n background-repeat: no-repeat;\n display: block;\n height: 100%;\n width: 100%;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-icon {\n background-color: transparent;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid ButtonText;\n }\n }\n .mapboxgl-ctrl-attrib-button:focus,\n .mapboxgl-ctrl-group button:focus {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl button:disabled {\n cursor: not-allowed;\n }\n .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {\n opacity: 0.25;\n }\n .mapboxgl-ctrl-group button:first-of-type {\n border-radius: 4px 4px 0 0;\n }\n .mapboxgl-ctrl-group button:last-of-type {\n border-radius: 0 0 4px 4px;\n }\n .mapboxgl-ctrl-group button:only-of-type {\n border-radius: inherit;\n }\n .mapboxgl-ctrl button:not(:disabled):hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-group button:focus:focus-visible {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl-group button:focus:not(:focus-visible) {\n box-shadow: none;\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting\n .mapboxgl-ctrl-icon {\n animation: mapboxgl-spin 2s linear infinite;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n }\n @keyframes mapboxgl-spin {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n }\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n cursor: pointer;\n display: block;\n height: 23px;\n margin: 0 0 -4px -4px;\n overflow: hidden;\n width: 88px;\n }\n a.mapboxgl-ctrl-logo.mapboxgl-compact {\n width: 23px;\n }\n @media (-ms-high-contrast: active) {\n a.mapboxgl-ctrl-logo {\n background-color: transparent;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n background-color: hsla(0, 0%, 100%, 0.5);\n margin: 0;\n padding: 0 5px;\n }\n @media screen {\n .mapboxgl-ctrl-attrib.mapboxgl-compact {\n background-color: #fff;\n border-radius: 12px;\n margin: 10px;\n min-height: 20px;\n padding: 2px 24px 2px 0;\n position: relative;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n padding: 2px 28px 2px 8px;\n visibility: visible;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show,\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n border-radius: 12px;\n padding: 2px 8px 2px 28px;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner {\n display: none;\n }\n .mapboxgl-ctrl-attrib-button {\n background-color: hsla(0, 0%, 100%, 0.5);\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n border: 0;\n border-radius: 12px;\n box-sizing: border-box;\n cursor: pointer;\n display: none;\n height: 24px;\n outline: none;\n position: absolute;\n right: 0;\n top: 0;\n width: 24px;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button {\n left: 0;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner {\n display: block;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n left: 0;\n }\n }\n @media screen and (-ms-high-contrast: active) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n @media screen and (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl-attrib a {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n }\n .mapboxgl-ctrl-attrib a:hover {\n color: inherit;\n text-decoration: underline;\n }\n .mapboxgl-ctrl-attrib .mapbox-improve-map {\n font-weight: 700;\n margin-left: 2px;\n }\n .mapboxgl-attrib-empty {\n display: none;\n }\n .mapboxgl-ctrl-scale {\n background-color: hsla(0, 0%, 100%, 0.75);\n border: 2px solid #333;\n border-top: #333;\n box-sizing: border-box;\n color: #333;\n font-size: 10px;\n padding: 0 5px;\n white-space: nowrap;\n }\n .mapboxgl-popup {\n display: flex;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n will-change: transform;\n }\n .mapboxgl-popup-anchor-top,\n .mapboxgl-popup-anchor-top-left,\n .mapboxgl-popup-anchor-top-right {\n flex-direction: column;\n }\n .mapboxgl-popup-anchor-bottom,\n .mapboxgl-popup-anchor-bottom-left,\n .mapboxgl-popup-anchor-bottom-right {\n flex-direction: column-reverse;\n }\n .mapboxgl-popup-anchor-left {\n flex-direction: row;\n }\n .mapboxgl-popup-anchor-right {\n flex-direction: row-reverse;\n }\n .mapboxgl-popup-tip {\n border: 10px solid transparent;\n height: 0;\n width: 0;\n z-index: 1;\n }\n .mapboxgl-popup-anchor-top .mapboxgl-popup-tip {\n align-self: center;\n border-bottom-color: #fff;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom-color: #fff;\n border-left: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom-color: #fff;\n border-right: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n align-self: center;\n border-bottom: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom: none;\n border-left: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom: none;\n border-right: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-left .mapboxgl-popup-tip {\n align-self: center;\n border-left: none;\n border-right-color: #fff;\n }\n .mapboxgl-popup-anchor-right .mapboxgl-popup-tip {\n align-self: center;\n border-left-color: #fff;\n border-right: none;\n }\n .mapboxgl-popup-close-button {\n background-color: transparent;\n border: 0;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 0;\n }\n .mapboxgl-popup-close-button:hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-popup-content {\n background: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n position: relative;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-content {\n border-top-left-radius: 0;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-content {\n border-top-right-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content {\n border-bottom-left-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content {\n border-bottom-right-radius: 0;\n }\n .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-popup-track-pointer * {\n pointer-events: none;\n user-select: none;\n }\n .mapboxgl-map:hover .mapboxgl-popup-track-pointer {\n display: flex;\n }\n .mapboxgl-map:active .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-marker {\n left: 0;\n opacity: 1;\n position: absolute;\n top: 0;\n transition: opacity 0.2s;\n will-change: transform;\n }\n .mapboxgl-user-location-dot,\n .mapboxgl-user-location-dot:before {\n background-color: #1da1f2;\n border-radius: 50%;\n height: 15px;\n width: 15px;\n }\n .mapboxgl-user-location-dot:before {\n animation: mapboxgl-user-location-dot-pulse 2s infinite;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-dot:after {\n border: 2px solid #fff;\n border-radius: 50%;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n content: '';\n height: 19px;\n left: -2px;\n position: absolute;\n top: -2px;\n width: 19px;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading {\n height: 0;\n width: 0;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-bottom: 7.5px solid #4aa1eb;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-left: 7.5px solid transparent;\n transform: translateY(-28px) skewY(-20deg);\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after {\n border-right: 7.5px solid transparent;\n transform: translate(7.5px, -28px) skewY(20deg);\n }\n @keyframes mapboxgl-user-location-dot-pulse {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 70% {\n opacity: 0;\n transform: scale(3);\n }\n to {\n opacity: 0;\n transform: scale(1);\n }\n }\n .mapboxgl-user-location-dot-stale {\n background-color: #aaa;\n }\n .mapboxgl-user-location-dot-stale:after {\n display: none;\n }\n .mapboxgl-user-location-accuracy-circle {\n background-color: #1da1f233;\n border-radius: 100%;\n height: 1px;\n width: 1px;\n }\n .mapboxgl-crosshair,\n .mapboxgl-crosshair .mapboxgl-interactive,\n .mapboxgl-crosshair .mapboxgl-interactive:active {\n cursor: crosshair;\n }\n .mapboxgl-boxzoom {\n background: #fff;\n border: 2px dotted #202020;\n height: 0;\n left: 0;\n opacity: 0.5;\n position: absolute;\n top: 0;\n width: 0;\n }\n @media print {\n .mapbox-improve-map {\n display: none;\n }\n }\n .mapboxgl-scroll-zoom-blocker,\n .mapboxgl-touch-pan-blocker {\n align-items: center;\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n display: flex;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n text-align: center;\n top: 0;\n transition: opacity 0.75s ease-in-out;\n transition-delay: 1s;\n width: 100%;\n }\n .mapboxgl-scroll-zoom-blocker-show,\n .mapboxgl-touch-pan-blocker-show {\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page\n .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n`;\n\nexport default mapboxStyle;\n","import { FeatureCollection } from 'geojson';\nimport fpmClient from '../fpmClient';\n\nconst getFpmProjectsByBbox = async (\n bbox: string,\n preview: boolean = false\n): Promise<FeatureCollection> => {\n const [west, south, east, north] = bbox.split(',').map(Number);\n const cache = preview ? false : undefined;\n\n const fpmResponse = await fpmClient.get<FeatureCollection>(\n '/public/projects',\n {\n params: {\n bbox: `${west},${south},${east},${north}`,\n },\n cache,\n }\n );\n\n return fpmResponse.data;\n};\n\nexport default getFpmProjectsByBbox;\n","import { FeatureCollection } from 'geojson';\nimport { IStrapiData, StrapiProject } from '..';\n\nconst mergeProjectData = (\n featureCollection: FeatureCollection,\n strapiProjects: Map<string, IStrapiData<StrapiProject>>\n): FeatureCollection => {\n // Add slug and portfolioHost to each feature's properties if we have Strapi data\n const mergedFeatureCollection = {\n ...featureCollection,\n features: featureCollection.features.map((feature) => {\n const fpmProjectId = feature.properties?.id;\n const strapiProject = fpmProjectId\n ? strapiProjects.get(fpmProjectId)\n : null;\n\n if (strapiProject) {\n feature.properties = {\n ...feature.properties,\n slug: strapiProject.attributes.slug || undefined,\n portfolioHost:\n strapiProject.attributes.portfolio?.data?.attributes.host ||\n undefined,\n };\n }\n\n return feature;\n }),\n };\n\n return mergedFeatureCollection;\n};\n\nexport default mergeProjectData;\n","import React, {\n useRef,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\nimport mapboxgl from 'mapbox-gl';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n} from 'boemly';\nimport { MAPBOX_MAX_ZOOM, MAPBOX_TOKEN } from '../../constants/mapbox';\nimport { IntlContext } from '../../components/ContextProvider';\nimport mapboxStyle from './mapboxStyle';\nimport { FeatureCollection } from 'geojson';\nimport debounce from 'lodash/debounce';\nimport getFpmProjectsByBbox from '../../integrations/strapi/getFpmProjectsByBbox';\nimport getStrapiProjects from '../../integrations/strapi/getStrapiProjects';\nimport mergeProjectData from '../../utils/mergeProjectData';\nimport { CreditAvailability } from '../../models/fpm/FPMProject';\nimport { IStrapiData, StrapiProject } from '../..';\n\nconst projectPinImage =\n 'https://cdn.jsdelivr.net/npm/@phosphor-icons/core@2.0.2/assets/fill/map-pin-fill.svg';\n\nmapboxgl.accessToken = MAPBOX_TOKEN;\n\nexport interface ProjectsMapProps {\n slice: {\n tagline?: string;\n title?: string;\n text?: string;\n defaultCenterCoordinates?: { latitude: number; longitude: number };\n defaultZoomLevel?: number;\n };\n}\n\nconst FALLBACK_BBOX =\n '-1.9950830850086163,44.4464186384987,21.995083085002875,54.12644342419196';\n\nexport const ProjectsMap: React.FC<ProjectsMapProps> = ({\n slice,\n}: ProjectsMapProps) => {\n const { locale, formatMessage } = useContext(IntlContext);\n const mapContainer = useRef<HTMLDivElement>(null);\n const map = useRef<mapboxgl.Map | null>(null);\n const animationIntervalRef = useRef<NodeJS.Timeout | null>(null);\n const [featureCollection, setFeatureCollection] =\n useState<FeatureCollection | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const initialBboxRef = useRef<string | null>(null);\n const [isMapReady, setIsMapReady] = useState(false);\n const [strapiProjects, setStrapiProjects] = useState<Map<\n string,\n IStrapiData<StrapiProject>\n > | null>(null);\n\n const isBboxContained = useCallback(\n (innerBbox: string, outerBbox: string): boolean => {\n const [innerWest, innerSouth, innerEast, innerNorth] = innerBbox\n .split(',')\n .map(Number);\n const [outerWest, outerSouth, outerEast, outerNorth] = outerBbox\n .split(',')\n .map(Number);\n return (\n innerWest >= outerWest &&\n innerEast <= outerEast &&\n innerSouth >= outerSouth &&\n innerNorth <= outerNorth\n );\n },\n []\n );\n\n const fetchStrapiData = useCallback(async () => {\n if (strapiProjects) return; // If we already have Strapi data, don't fetch it again\n\n try {\n const data = await getStrapiProjects(locale, '2'); // pLevel = Population depth which is a param in the API request. 2 is enough to get the slug and the portfolioHost\n setStrapiProjects(data);\n } catch (error) {\n console.error('❌ Error fetching Strapi projects:', error);\n }\n }, [locale, strapiProjects]);\n\n const fetchProjectsData = useCallback(\n async (bbox: string) => {\n setIsLoading(true);\n try {\n const fpmData = await getFpmProjectsByBbox(bbox);\n\n // If we have Strapi data, merge it, otherwise show FPM data immediately\n const mergedData = strapiProjects\n ? mergeProjectData(fpmData, strapiProjects)\n : fpmData;\n\n setFeatureCollection(mergedData);\n } catch (error) {\n console.error('Error fetching projects:', error);\n } finally {\n setIsLoading(false);\n }\n },\n [strapiProjects]\n );\n\n const debouncedUpdateBbox = useCallback(\n debounce(() => {\n if (!map.current || !initialBboxRef.current) return;\n const bounds = map.current.getBounds();\n const newBbox = `${bounds.getWest()},${bounds.getSouth()},${bounds.getEast()},${bounds.getNorth()}`;\n if (!isBboxContained(newBbox, initialBboxRef.current)) {\n fetchProjectsData(newBbox);\n initialBboxRef.current = newBbox;\n }\n }, 500),\n [fetchProjectsData, isBboxContained]\n );\n\n const addProjectsLayer = useCallback(() => {\n if (!map.current || !featureCollection || !map.current.isStyleLoaded()) {\n return;\n }\n\n const filteredFeatureCollection = {\n ...featureCollection,\n features: featureCollection.features.filter(\n (feature) => feature.properties?.isPublic !== false\n ),\n };\n\n const source = map.current.getSource('projects') as mapboxgl.GeoJSONSource;\n\n if (!source) {\n map.current.addSource('projects', {\n type: 'geojson',\n data: filteredFeatureCollection,\n cluster: true,\n clusterMaxZoom: 14,\n clusterRadius: 50,\n });\n\n map.current.addLayer({\n id: 'clusters',\n type: 'circle',\n source: 'projects',\n filter: ['has', 'point_count'],\n paint: {\n 'circle-color': [\n 'step',\n ['get', 'point_count'],\n '#51bbd6',\n 2,\n '#2A3FBA',\n ],\n 'circle-radius': ['step', ['get', 'point_count'], 20, 10, 30, 30, 40],\n 'circle-radius-transition': { duration: 300 },\n 'circle-stroke-width': 5,\n 'circle-stroke-color': '#2A3FBA',\n 'circle-stroke-opacity': 0.4,\n },\n });\n\n if (animationIntervalRef.current) {\n clearInterval(animationIntervalRef.current);\n }\n animationIntervalRef.current = setInterval(() => {\n if (!map.current) return;\n const now = Date.now() / 1000;\n const pulseFactor = 1 + 0.05 * Math.sin((now * 2 * Math.PI) / 2.8);\n const expression = [\n 'step',\n ['get', 'point_count'],\n 20 * pulseFactor,\n 10,\n 30 * pulseFactor,\n 30,\n 40 * pulseFactor,\n ] as mapboxgl.ExpressionSpecification;\n map.current.setPaintProperty('clusters', 'circle-radius', expression);\n }, 50);\n\n map.current.addLayer({\n id: 'cluster-count',\n type: 'symbol',\n source: 'projects',\n filter: ['has', 'point_count'],\n layout: {\n 'text-field': '{point_count_abbreviated}',\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\n 'text-size': 12,\n },\n paint: {\n 'text-color': '#fff',\n },\n });\n\n // Load SVG as PNG\n fetch(projectPinImage)\n .then((response) => response.text())\n .then((svgText) => {\n // Modify SVG color\n const modifiedSvg = svgText.replace(/fill=\"[^\"]*\"/, `fill=\"#2A3FBA\"`);\n const img = new Image();\n img.src = `data:image/svg+xml;base64,${btoa(modifiedSvg)}`;\n return new Promise<HTMLImageElement>((resolve, reject) => {\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n })\n .then((img) => {\n if (!map.current) return;\n const canvas = document.createElement('canvas');\n canvas.width = 80;\n canvas.height = 80;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.drawImage(img, 10, 10, 60, 60);\n const pngImg = new Image();\n pngImg.src = canvas.toDataURL('image/png');\n pngImg.onload = () => {\n map.current?.addImage('project-pin', pngImg, { pixelRatio: 2 });\n map.current?.addLayer({\n id: 'unclustered-point',\n type: 'symbol',\n source: 'projects',\n filter: ['!', ['has', 'point_count']],\n layout: {\n 'icon-image': 'project-pin',\n },\n });\n };\n })\n .catch((error) => {\n console.error('Error loading project pin image:', error);\n });\n\n const popup = new mapboxgl.Popup({\n closeButton: true,\n closeOnClick: false,\n className: 'custom-popup',\n offset: [0, -20],\n });\n\n const style = document.createElement('style');\n style.textContent = `\n .custom-popup .mapboxgl-popup-content {\n border-radius: 8px;\n padding: 12px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n background: white;\n color: #333;\n }\n .mapboxgl-popup {\n max-width: 300px !important;\n }\n .mapboxgl-popup-close-button {\n padding: 4px 8px;\n font-size: 16px;\n color: #666;\n }\n .mapboxgl-popup-close-button:hover {\n background: #f0f0f0;\n color: #333;\n }\n `;\n document.head.appendChild(style);\n\n map.current.on('click', 'unclustered-point', (e) => {\n if (!e.features || !e.features[0].properties) return;\n map.current!.getCanvas().style.cursor = 'pointer';\n\n const coordinates = (e.features[0].geometry as any).coordinates.slice();\n const {\n title,\n projectDeveloper,\n slug,\n portfolioHost,\n creditAvailability,\n } = e.features[0].properties;\n\n // Calculate if popup would go off screen at the top\n const point = map.current!.project(coordinates);\n const popupHeight = 150; // Approximate height of popup\n const offset: [number, number] =\n point.y - popupHeight - 20 < 0 ? [0, 20] : [0, -20];\n\n let developer = 'Unknown';\n try {\n const projectDeveloperRaw = projectDeveloper;\n if (projectDeveloperRaw) {\n developer =\n JSON.parse(projectDeveloperRaw as string)?.name ?? 'Unknown';\n }\n } catch {\n developer = 'Unknown';\n }\n\n const projectUrl =\n slug && portfolioHost ? `${portfolioHost}/portfolio/${slug}` : null;\n\n const getBadgeMessage = (status: string) => {\n switch (status) {\n case CreditAvailability.CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.yes',\n });\n case CreditAvailability.NO_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.no',\n });\n case CreditAvailability.SOME_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.some',\n });\n case CreditAvailability.SOON_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.notYet',\n });\n default:\n return '';\n }\n };\n\n const getBadgeColor = (status: string) => {\n switch (status) {\n case CreditAvailability.CREDITS_AVAILABLE:\n return '#15803d';\n case CreditAvailability.NO_CREDITS_AVAILABLE:\n return '#b91c1c';\n case CreditAvailability.SOME_CREDITS_AVAILABLE:\n return '#ea580c';\n case CreditAvailability.SOON_CREDITS_AVAILABLE:\n return '#2563eb';\n default:\n return '#e0e7ff';\n }\n };\n\n const badgeColor = getBadgeColor(creditAvailability);\n const badgeMessage = getBadgeMessage(creditAvailability);\n\n const badge = projectUrl\n ? `<a href=\"${projectUrl}\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration: none;\"><span style=\"display: inline-block; background: ${badgeColor}; color: white; font-weight: 600; border-radius: 4px; padding: 2px 8px; font-size: 12px; margin-bottom: 6px; cursor: pointer;\">${badgeMessage}</span></a>`\n : `<span style=\"display: inline-block; background: ${badgeColor}; color: white; font-weight: 600; border-radius: 4px; padding: 2px 8px; font-size: 12px; margin-bottom: 6px;\">${badgeMessage}</span>`;\n\n const button = projectUrl\n ? `<a href=\"${projectUrl}\" target=\"_blank\" rel=\"noopener\" style=\"display: inline-block; margin-top: 12px; padding: 4px 8px; border: 1px solid #e2e8f0; border-radius: 4px; background: #fff; font-size: 14px; font-weight: 700; text-decoration: none;\">Show more info</a>`\n : '';\n\n const description = `\n <div style=\"padding: 2px; padding-right: 16px; min-width: 180px; max-width: 260px;\">\n ${badge}\n <h3 style=\"font-size: 15px; font-weight: bold;\">${title}</h3>\n <p style=\"font-size: 15px; color: #64748b;\">${developer}</p>\n ${button}\n </div>\n `;\n\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\n }\n\n popup\n .setOffset(offset)\n .setLngLat(coordinates)\n .setHTML(description)\n .addTo(map.current!);\n });\n\n map.current.on('click', 'clusters', (e) => {\n const features = map.current?.queryRenderedFeatures(e.point, {\n layers: ['clusters'],\n });\n if (!features || !features[0].properties) return;\n\n const clusterId = features[0].properties.cluster_id;\n const projectSource = map.current?.getSource(\n 'projects'\n ) as mapboxgl.GeoJSONSource;\n\n projectSource.getClusterExpansionZoom(clusterId, (err, zoom) => {\n if (err || !map.current) return;\n const coordinates = (features[0].geometry as any).coordinates;\n map.current.easeTo({ center: coordinates, zoom });\n });\n });\n\n map.current.on('mouseenter', 'clusters', () => {\n if (map.current) map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'clusters', () => {\n if (map.current) map.current.getCanvas().style.cursor = '';\n });\n\n map.current.on('mouseenter', 'unclustered-point', () => {\n if (map.current) map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'unclustered-point', () => {\n if (map.current) map.current.getCanvas().style.cursor = '';\n });\n } else {\n source.setData(filteredFeatureCollection);\n }\n }, [featureCollection, locale, formatMessage]);\n\n useEffect(() => {\n if (map.current || !mapContainer.current) return;\n\n let initialCenter: [number, number];\n let initialZoom: number;\n\n if (slice.defaultCenterCoordinates && slice.defaultZoomLevel) {\n initialCenter = [\n slice.defaultCenterCoordinates.longitude,\n slice.defaultCenterCoordinates.latitude,\n ];\n initialZoom = slice.defaultZoomLevel;\n } else {\n // Always start with fallback view - don't wait for user location\n const bbox = initialBboxRef.current || FALLBACK_BBOX;\n const [west, south, east, north] = bbox.split(',').map(Number);\n const bounds = new mapboxgl.LngLatBounds([west, south], [east, north]);\n const center = bounds.getCenter();\n initialCenter = [center.lng, center.lat];\n initialZoom = 6;\n }\n\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: 'mapbox://styles/mapbox/streets-v12',\n center: initialCenter,\n zoom: initialZoom,\n maxZoom: MAPBOX_MAX_ZOOM,\n });\n\n map.current.addControl(new mapboxgl.NavigationControl(), 'top-right');\n\n map.current.on('load', () => {\n setIsMapReady(true);\n if (!(slice.defaultCenterCoordinates && slice.defaultZoomLevel)) {\n const bbox = initialBboxRef.current || FALLBACK_BBOX;\n const [west, south, east, north] = bbox.split(',').map(Number);\n const bounds = new mapboxgl.LngLatBounds([west, south], [east, north]);\n map.current?.fitBounds(bounds, { padding: 20 });\n }\n });\n\n map.current.on('moveend', () => {\n if (initialBboxRef.current) {\n debouncedUpdateBbox();\n }\n });\n\n return () => {\n debouncedUpdateBbox.cancel();\n if (animationIntervalRef.current) {\n clearInterval(animationIntervalRef.current);\n }\n map.current?.remove();\n map.current = null;\n };\n }, [\n slice.defaultCenterCoordinates,\n slice.defaultZoomLevel,\n debouncedUpdateBbox,\n ]);\n\n // Fetch Strapi data once on component mount\n useEffect(() => {\n fetchStrapiData();\n }, [fetchStrapiData]);\n\n // Handle re-merging data when Strapi data becomes available\n useEffect(() => {\n if (strapiProjects && featureCollection) {\n const mergedData = mergeProjectData(featureCollection, strapiProjects);\n setFeatureCollection(mergedData);\n }\n }, [strapiProjects]);\n\n // Request user location (non-blocking)\n useEffect(() => {\n if (slice.defaultCenterCoordinates && slice.defaultZoomLevel) {\n // Use provided default coordinates\n const { latitude, longitude } = slice.defaultCenterCoordinates;\n const buffer = 10;\n const bbox = `${longitude - buffer},${latitude - buffer},${\n longitude + buffer\n },${latitude + buffer}`;\n initialBboxRef.current = bbox;\n fetchProjectsData(bbox);\n } else if (navigator.geolocation) {\n // Set fallback immediately (non-blocking)\n initialBboxRef.current = FALLBACK_BBOX;\n fetchProjectsData(FALLBACK_BBOX);\n\n // Request user location asynchronously\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const userLoc = {\n lat: position.coords.latitude,\n lon: position.coords.longitude,\n };\n if (map.current) {\n map.current.easeTo({\n center: [userLoc.lon, userLoc.lat],\n zoom: 10,\n duration: 1500,\n });\n\n // Update bbox for this location\n const buffer = 1;\n const bbox = `${userLoc.lon - buffer},${userLoc.lat - buffer},${\n userLoc.lon + buffer\n },${userLoc.lat + buffer}`;\n initialBboxRef.current = bbox;\n fetchProjectsData(bbox);\n }\n },\n () => {\n // Permission denied or error - already have fallback data loaded\n // No need to re-fetch since we already loaded FALLBACK_BBOX data\n }\n );\n } else {\n // Geolocation not supported - use fallback\n initialBboxRef.current = FALLBACK_BBOX;\n fetchProjectsData(FALLBACK_BBOX);\n }\n }, [\n slice.defaultCenterCoordinates,\n slice.defaultZoomLevel,\n fetchProjectsData,\n ]);\n\n useEffect(() => {\n if (isMapReady && featureCollection && map.current?.isStyleLoaded()) {\n addProjectsLayer();\n }\n }, [isMapReady, featureCollection, addProjectsLayer]);\n\n return (\n <DefaultSectionContainer>\n <Box css={mapboxStyle}>\n <Wrapper>\n {slice.title ? (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Box height=\"16\" />\n </>\n ) : (\n <></>\n )}\n <Box\n height=\"xl\"\n ref={mapContainer}\n borderRadius=\"xl\"\n overflow=\"hidden\"\n boxShadow={['md', null, null, 'none']}\n />\n <>{isLoading && <Box>Loading projects...</Box>}</>\n </Wrapper>\n </Box>\n </DefaultSectionContainer>\n );\n};\n\nexport default ProjectsMap;\n","import React from 'react';\nimport { Box, DefaultSectionContainer, Wrapper } from 'boemly';\nimport { useMeasure } from 'react-use';\n\ninterface VideoSlice {\n youTubeID: string;\n title: string;\n}\n\nexport interface VideoProps {\n slice: VideoSlice;\n}\n\nexport const Video: React.FC<VideoProps> = ({ slice }: VideoProps) => {\n const [ref, { width }] = useMeasure<HTMLDivElement>();\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Box ref={ref} borderRadius=\"xl\">\n <iframe\n data-testid=\"video-iframe\"\n width={width}\n height={(width / 16) * 9}\n src={`https://www.youtube.com/embed/${slice.youTubeID}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n title={slice.title}\n style={{ borderRadius: 'var(--boemly-radii-xl)' }}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport Image from 'next/image';\nimport {\n DefaultSectionContainer,\n Wrapper,\n AvatarWithName,\n Text,\n Box,\n} from 'boemly';\nimport StrapiAvatarWithName from '../../models/strapi/StrapiAvatarWithName';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface FullWidthHighlightQuoteProps {\n slice: {\n tagline?: string;\n quote: string;\n avatarWithName: StrapiAvatarWithName;\n };\n}\n\nexport const FullWidthHighlightQuote: React.FC<\n FullWidthHighlightQuoteProps\n> = ({ slice }: FullWidthHighlightQuoteProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Box maxWidth=\"5xl\" marginX=\"auto\" mb=\"8\">\n {slice.tagline && (\n <Text\n color=\"primary.700\"\n size=\"mdMonoUppercase\"\n textAlign=\"center\"\n mb=\"3\"\n >\n {slice.tagline}\n </Text>\n )}\n <Text color=\"black\" size=\"xlRegularNormalBold\" textAlign=\"center\">\n {slice.quote}\n </Text>\n </Box>\n <AvatarWithName\n name={slice.avatarWithName.name}\n description={slice.avatarWithName.description}\n image={\n <Image\n src={strapiMediaUrl(slice.avatarWithName.image.img, 'small')}\n alt={slice.avatarWithName.image.alt}\n fill\n style={{\n objectFit: slice.avatarWithName.image.objectFit || 'cover',\n }}\n />\n }\n orientation=\"vertical\"\n />\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const SliderContainer = styled(Box)`\n --mobile-image-width: calc(100vw - var(--boemly-space-24));\n --desktop-image-width: var(--boemly-sizes-md);\n\n width: var(--boemly-size-full);\n\n overflow-x: hidden;\n\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-6))\n );\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n overflow-x: scroll;\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-8))\n );\n }\n`;\n\ninterface SliderInnerContainerProps {\n imageCount: number;\n}\nexport const SliderInnerContainer = styled(\n motion.div\n)<SliderInnerContainerProps>`\n display: flex;\n gap: var(--boemly-space-6);\n\n width: fit-content;\n`;\n\nexport const ItemContainer = styled(Box)`\n width: var(--desktop-image-width);\n\n :last-of-type {\n margin-right: var(--boemly-space-8);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: var(--mobile-image-width);\n }\n`;\n\ninterface ImageContainerProps {\n aspectRatio: number;\n}\nexport const ImageContainer = styled(Box)<ImageContainerProps>`\n position: relative;\n\n max-height: var(--boemly-sizes-xl);\n height: calc(\n var(--desktop-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--desktop-image-width);\n\n border-radius: var(--boemly-radii-xl);\n\n & img {\n border-radius: var(--boemly-radii-xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: calc(\n var(--mobile-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--mobile-image-width);\n }\n`;\n","const ALLOWED_RATIOS = [2 / 3, 1 / 1, 3 / 2, 2 / 1, 3 / 1, 4 / 1, 5 / 1]; // width / height\n\nexport const getClosestRatio = (width: number, height: number): number => {\n const ratio = width / height;\n\n let minDiff = Math.abs(ratio - ALLOWED_RATIOS[0]);\n let posMinDiff = 0;\n\n ALLOWED_RATIOS.forEach((allowedRatio, index) => {\n if (Math.abs(ratio - allowedRatio) < minDiff) {\n minDiff = Math.abs(ratio - allowedRatio);\n posMinDiff = index;\n }\n });\n\n return ALLOWED_RATIOS[posMinDiff];\n};\n","import React, { useMemo, useRef, useState } from 'react';\nimport {\n Box,\n IconButton,\n DefaultSectionContainer,\n Flex,\n Text,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useMeasure, useWindowSize } from 'react-use';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ArrowLeft, ArrowRight } from '@phosphor-icons/react';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport {\n ItemContainer,\n SliderContainer,\n SliderInnerContainer,\n ImageContainer,\n} from './styles';\nimport { getClosestRatio } from '../../utils/getClosestRatio';\n\nexport interface FullWidthImageSliderProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\n\nconst ITEM_GAP = 24;\nconst MAX_OFFSET_RIGHT = 162;\n\nexport const FullWidthImageSlider: React.FC<FullWidthImageSliderProps> = ({\n slice,\n}: FullWidthImageSliderProps) => {\n const containerRef = useRef(null);\n const [imageRef, { width: imageWidth }] = useMeasure<HTMLDivElement>();\n const { width: windowWidth } = useWindowSize();\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n\n const numberOfItems = useMemo(\n () => slice.images.length,\n [slice.images.length]\n );\n\n const sliderItemsWidth = useMemo(\n () => numberOfItems * (imageWidth + ITEM_GAP) - ITEM_GAP,\n [imageWidth, numberOfItems]\n );\n\n const offsetLeft = useMemo(\n () => sliderIndex * (imageWidth + ITEM_GAP) * -1,\n [sliderIndex, imageWidth]\n );\n\n const allowScroll = useMemo(\n () => sliderItemsWidth + ITEM_GAP * 3 > windowWidth,\n\n [sliderItemsWidth, windowWidth]\n );\n\n const canMoveRight = useMemo(() => {\n const offsetRight = windowWidth - (sliderItemsWidth + offsetLeft);\n\n return offsetRight < MAX_OFFSET_RIGHT;\n }, [imageWidth, sliderIndex, sliderItemsWidth, windowWidth]);\n\n const canMoveLeft = useMemo(() => sliderIndex !== 0, [sliderIndex]);\n\n return (\n <DefaultSectionContainer>\n <SliderContainer ref={containerRef}>\n <SliderInnerContainer\n animate={{\n x: imageWidth * -sliderIndex,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n imageCount={slice.images.length}\n >\n {slice.images.map((image, index) => (\n <ItemContainer key={image.id} ref={imageRef}>\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"end\"\n flexDirection=\"column\"\n gap=\"2\"\n >\n <ImageContainer\n aspectRatio={getClosestRatio(\n image.img.img.data.attributes.width,\n image.img.img.data.attributes.height\n )}\n >\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n }}\n onClick={() => {\n setSliderIndex(index);\n if (!isMobile) setIsOpen(true);\n }}\n />\n </ImageContainer>\n\n <Text noOfLines={3} height=\"72px\" fontSize=\"md\">\n {image.caption}\n </Text>\n </Flex>\n </ItemContainer>\n ))}\n </SliderInnerContainer>\n </SliderContainer>\n\n <Box\n display={['none', null, null, !!allowScroll ? 'flex' : 'none']}\n pointerEvents=\"none\"\n position=\"absolute\"\n top=\"calc(50% - var(--boemly-sizes-12))\"\n left=\"0\"\n width=\"full\"\n py=\"0\"\n px=\"32\"\n justifyContent=\"space-between\"\n >\n <Box>\n <AnimatePresence>\n {canMoveLeft && (\n <IconButton\n key=\"leftButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex - 1)}\n aria-label=\"Move left\"\n icon={<ArrowLeft size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n <Box>\n <AnimatePresence>\n {canMoveRight && (\n <IconButton\n key=\"rightButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex + 1)}\n aria-label=\"Move right\"\n icon={<ArrowRight size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n </Box>\n\n <FullScreenImage\n images={slice.images.map((image) => image.img)}\n currentIndex={sliderIndex}\n setCurrentIndex={setSliderIndex}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Grid,\n GridItem,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SideBySideImagesProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\nexport const SideBySideImages: React.FC<SideBySideImagesProps> = ({\n slice,\n}: SideBySideImagesProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap={['12', null, null, '6']}\n >\n {slice.images.map((image) => (\n <Box key={image.id}>\n <Box height=\"md\" position=\"relative\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Text mt=\"3\" size=\"xsLowNormal\">\n {image.caption}\n </Text>\n </Box>\n ))}\n </SimpleGrid>\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Spacer,\n Wrapper,\n} from 'boemly';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\ntype Variant = 'gray' | 'green' | 'white';\n\nenum CtaCardType {\n Left = 'left',\n CenterWithoutImage = 'centerWithoutImage',\n CenterWithImage = 'centerWithImage',\n Right = 'right',\n}\n\nexport interface CtaProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n variant: Variant;\n ctaCards: CtaCard[];\n };\n}\n\nexport interface CtaCard {\n id: number;\n tagline?: string;\n title: string;\n subTitle?: string;\n image?: StrapiImage;\n buttons?: StrapiButtonWithVariant[];\n variant: Variant;\n backgroundShape: boolean;\n textAlign: 'left' | 'right' | 'center';\n}\n\nconst STATES: Record<CtaCardType, Record<string, any>> = {\n left: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'space-between',\n buttonJustifyContent: 'start',\n textMarginLeft: ['0', null, null, null, '14'],\n textMarginRight: '0',\n },\n centerWithoutImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n textMarginRight: '0',\n },\n centerWithImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n textMarginRight: '0',\n },\n right: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'start',\n buttonJustifyContent: 'start',\n textMarginLeft: '0',\n textMarginRight: ['0', null, null, null, '10'],\n },\n};\n\nconst VARIANTS: Record<Variant, Record<string, Record<CtaCardType, string>>> = {\n gray: {\n backgroundColor: {\n left: 'primary.50',\n centerWithoutImage: 'primary.50',\n centerWithImage: 'primary.50',\n right: 'primary.50',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n green: {\n backgroundColor: {\n left: 'primary.800',\n centerWithoutImage: 'primary.800',\n centerWithImage: 'primary.800',\n right: 'primary.800',\n },\n taglineColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n titleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n subTitleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n },\n white: {\n backgroundColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'primary.800',\n right: 'white',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n};\n\nconst getTypeOfCard = (ctaCard: CtaCard): CtaCardType => {\n if (ctaCard.textAlign === 'center') {\n if (ctaCard.image) {\n return CtaCardType.CenterWithImage;\n }\n return CtaCardType.CenterWithoutImage;\n }\n if (ctaCard.textAlign === 'left') {\n return CtaCardType.Left;\n }\n return CtaCardType.Right;\n};\n\nexport const Cta: React.FC<CtaProps> = ({ slice }: CtaProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor.left}\n title={slice.title}\n >\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n taglineProps={{\n color: VARIANTS[slice.variant].taglineColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n title={slice.title}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor.left,\n textAlign: 'center',\n width: 'full',\n maxWidth: '3xl',\n }}\n text={slice.subTitle}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n />\n </Flex>\n <Spacer height={['16', null, null, null, '20']} />\n </>\n ) : (\n <></>\n )}\n <Flex gap=\"4\" flexDirection=\"column\">\n {slice.ctaCards.map((ctaCard) => {\n const ctaCardType = getTypeOfCard(ctaCard);\n\n return (\n <Container\n backgroundColor={\n VARIANTS[ctaCard.variant].backgroundColor[ctaCardType]\n }\n key={ctaCard.id}\n position=\"relative\"\n elevation=\"none\"\n >\n {ctaCard.image &&\n ctaCardType === CtaCardType.CenterWithImage ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'large')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n <Gradient />\n </Box>\n ) : (\n <></>\n )}\n {ctaCard.backgroundShape ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? `${CDN_URI}/assets/v3/strapi-slices/shapes-dark.svg`\n : `${CDN_URI}/assets/v3/strapi-slices/shapes-light.svg`\n }\n alt={formatMessage({\n id: `sections.cta.backgroundShapes${\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? 'Dark'\n : 'Light'\n }`,\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Flex\n flexDir={['column', null, null, null, 'row']}\n flexGrow=\"1\"\n gap={['8', null, null, null, '16']}\n justifyContent={STATES[ctaCardType].justifyContent}\n >\n {ctaCard.image && ctaCardType === CtaCardType.Right ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'xLarge')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Box\n zIndex=\"base\"\n marginLeft={STATES[ctaCardType].textMarginLeft}\n marginRight={STATES[ctaCardType].textMarginRight}\n maxWidth=\"3xl\"\n >\n <Spacer height={['0', null, null, null, '20']} />\n\n <DefaultSectionHeader\n tagline={ctaCard.tagline}\n taglineProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].taglineColor[ctaCardType],\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTagline,\n ],\n }}\n title={ctaCard.title}\n titleProps={{\n fontFamily: 'heading',\n fontSize: '4xl',\n fontWeight: '600',\n lineHeight: '9',\n textAlign: STATES[ctaCardType].textAlign,\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTitle,\n ],\n color:\n VARIANTS[ctaCard.variant].titleColor[ctaCardType],\n }}\n text={ctaCard.subTitle}\n textProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].subTitleColor[ctaCardType],\n }}\n />\n {ctaCard.buttons && ctaCard.buttons.length > 0 ? (\n <>\n <Spacer height=\"8\" />\n <Flex\n gap=\"2\"\n justifyContent={\n STATES[ctaCardType].buttonJustifyContent\n }\n >\n {ctaCard.buttons &&\n ctaCard.buttons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n link={button.button}\n size=\"md\"\n variant={button.variant}\n component=\"Cta\"\n />\n ))}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <Spacer height={['1', null, null, null, '20']} />\n </Box>\n {ctaCard.image && ctaCardType === CtaCardType.Left ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'xLarge')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n );\n })}\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, Wrapper } from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface CtaOnlyProps {\n slice: {\n button: StrapiLink;\n };\n}\n\nexport const CtaOnly: React.FC<CtaOnlyProps> = ({ slice }: CtaOnlyProps) => (\n <Wrapper>\n <Box position=\"absolute\" top=\"-28\" transform=\"translateY(50%)\">\n <StrapiLinkButton size=\"md\" link={slice.button} component=\"CtaOnly\" />\n </Box>\n </Wrapper>\n);\n","import React, { useContext, useState } from 'react';\nimport {\n DefaultSectionContainer,\n Divider,\n Flex,\n GridItem,\n Heading,\n IconButton,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { Check, Link as LinkIcon } from '@phosphor-icons/react';\nimport { useCopyToClipboard } from 'react-use';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiGlossaryItem from '../../models/strapi/StrapiGlossaryItem';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface GlossaryProps {\n slice: {\n glossary_items: IStrapiData<StrapiGlossaryItem>[];\n };\n}\n\nexport const Glossary: React.FC<GlossaryProps> = ({ slice }: GlossaryProps) => {\n const [, copyToClipboard] = useCopyToClipboard();\n const { formatMessage } = useContext(IntlContext);\n const grouped: Record<string, StrapiGlossaryItem[]> = {};\n const [copiedItem, setCopiedItem] = useState<string>();\n\n slice.glossary_items\n .sort((a, b) => a.attributes.title.localeCompare(b.attributes.title))\n .forEach((curr) => {\n const index = curr.attributes.title.at(0)?.toUpperCase() || 'A';\n if (!grouped[index]) {\n grouped[index] = [];\n }\n grouped[index].push(curr.attributes);\n }, {});\n\n const handleAnchorClick = async (slug: string) => {\n if (window?.location) {\n const currentUrl = window.location.href.split('#')[0];\n copyToClipboard(`${currentUrl}#${slug}`);\n setCopiedItem(slug);\n\n setTimeout(() => {\n setCopiedItem(undefined);\n }, 1200);\n }\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid>\n {Object.entries(grouped).map(([letter, items], index) => (\n <GridItem maxW=\"xl\" placeSelf=\"center\" key={letter}>\n <Heading size=\"3xl\" mb=\"8\">\n {letter}\n </Heading>\n\n <SimpleGrid spacing=\"6\">\n {items.map((item) => (\n <GridItem key={item.slug}>\n <Flex mb=\"2\" gap=\"1.5\" alignItems=\"center\">\n <Heading\n wordBreak=\"break-word\"\n size=\"xl\"\n id={item.slug}\n scrollMarginTop=\"calc(var(--header-height) + var(--boemly-sizes-10))\"\n >\n {item.title}\n </Heading>\n <IconButton\n variant=\"ghost\"\n size=\"xs\"\n icon={\n copiedItem === item.slug ? (\n <Check size=\"16\" data-testid=\"check-icon\" />\n ) : (\n <LinkIcon size=\"16\" />\n )\n }\n title={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n aria-label={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n onClick={async () => handleAnchorClick(item.slug)}\n />\n </Flex>\n <Text color=\"black\" wordBreak=\"break-word\">\n {item.text}\n </Text>\n </GridItem>\n ))}\n </SimpleGrid>\n\n {index !== Object.keys(grouped).length - 1 && (\n <Divider maxW=\"xl\" placeSelf=\"center\" mb=\"10\" mt=\"10\" />\n )}\n </GridItem>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MINIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10;\n\nexport const MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10_000;\n","import React, { useContext, useCallback } from 'react';\nimport {\n Badge,\n BoemlyFormControl,\n Box,\n Button,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Divider,\n Flex,\n InputRightAddon,\n LabelNumberPair,\n RichText,\n SimpleGrid,\n Spacer,\n useToken,\n Wrapper,\n} from 'boemly';\nimport { Field, FieldProps, Form, Formik, FormikProps } from 'formik';\nimport { FPM_API_URI } from '../../constants/api';\nimport CheckoutForm from '../../models/forms/CheckoutForm';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../constants/domain';\nimport { IntlContext } from '../../components/ContextProvider';\nimport { useRouter } from 'next/router';\n\nexport interface ShopCheckoutProps {\n slice: {\n tagline?: string;\n title: string;\n text?: string;\n badge?: string;\n batchId: string;\n pricePerKg: number;\n couponId?: string;\n initialContributionValue: number;\n checkoutText: string;\n currency: 'EUR' | 'CHF';\n taxInPercent?: number;\n };\n}\n\nexport const ShopCheckout = ({ slice }: ShopCheckoutProps): JSX.Element => {\n const [primary50] = useToken('colors', ['primary.50']);\n const { formatMessage, formatNumber, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: CheckoutForm) => {\n const errors: Partial<{ contributionValue: string }> = {};\n\n if (!values.contributionValue) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.empty',\n });\n } else if (\n values.contributionValue < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: `sections.shopCheckout.contributionValue.validation.tooLow.${slice.currency}`,\n });\n } else if (\n values.contributionValue > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [locale]\n );\n\n const onSubmit = ({ contributionValue }: CheckoutForm) => {\n const checkoutURL = new URL(`${FPM_API_URI}/v1/webhooks/shop/checkout`);\n const currentURL = new URL(window.location.href);\n\n checkoutURL.searchParams.append('batchId', slice.batchId);\n\n checkoutURL.searchParams.append(\n 'quantity',\n Math.floor(contributionValue / slice.pricePerKg).toString()\n );\n\n checkoutURL.searchParams.append('cancelPath', currentURL.pathname);\n\n if (slice.couponId)\n checkoutURL.searchParams.append('couponId', slice.couponId);\n\n push(checkoutURL.toString());\n };\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <Flex\n flexDir={['column', null, null, null, 'row']}\n justifyContent=\"space-between\"\n alignItems={['left', null, null, null, 'center']}\n >\n <Box marginRight={['0', null, null, null, '36']} flexShrink={2}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <Container maxWidth=\"md\" padding=\"lg\" shadow=\"lg\">\n {slice.badge ? (\n <>\n <Badge\n colorScheme=\"green\"\n textTransform=\"none\"\n whiteSpace=\"unset\"\n >\n {slice.badge}\n </Badge>\n <Spacer height=\"3\" />\n </>\n ) : (\n <></>\n )}\n\n <RichText\n content={slice.checkoutText}\n textProps={{ color: 'gray.500' }}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <LabelNumberPair\n label={formatMessage({ id: 'sections.shopCheckout.intro.price' })}\n number={`${formatNumber(slice.pricePerKg * 100, {\n style: 'currency',\n currency: slice.currency,\n })}/${formatNumber(100, {\n style: 'unit',\n unit: 'kilogram',\n })} CO₂`}\n caption={formatMessage({\n id: 'sections.shopCheckout.summary.price.taxNotIncluded',\n })}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <Formik\n initialValues={{\n contributionValue: slice.initialContributionValue,\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n values,\n }: FormikProps<CheckoutForm>) => {\n const summaryPrice =\n Math.floor(values.contributionValue / slice.pricePerKg) *\n slice.pricePerKg;\n\n return (\n <Form onSubmit={handleSubmit}>\n <Box width=\"full\">\n <Field name=\"contributionValue\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValue\"\n size=\"md\"\n inputProps={{ type: 'number', ...field }}\n label={formatMessage({\n id: `sections.shopCheckout.contributionValue.label.${slice.currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"1\">\n {formatMessage({\n id: `sections.shopCheckout.contributionValue.unit.${slice.currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValue &&\n touched.contributionValue\n }\n errorMessage={errors.contributionValue}\n />\n )}\n </Field>\n </Box>\n\n <Spacer height=\"6\" />\n\n <SimpleGrid columns={2} gap=\"4\">\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.kg',\n })}\n number={`${formatNumber(\n Math.floor(\n values.contributionValue / slice.pricePerKg\n ),\n {\n style: 'unit',\n unit: 'kilogram',\n maximumFractionDigits: 0,\n }\n )} CO₂`}\n />\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.price',\n })}\n number={formatNumber(summaryPrice, {\n style: 'currency',\n currency: slice.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}\n caption={\n slice.taxInPercent &&\n slice.taxInPercent > 0 &&\n summaryPrice > 0\n ? formatMessage(\n {\n id: 'sections.shopCheckout.summary.price.taxIncluded',\n },\n {\n number: formatNumber(\n summaryPrice +\n summaryPrice * (slice.taxInPercent / 100),\n {\n style: 'currency',\n currency: slice.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }\n ),\n }\n )\n : ''\n }\n />\n </SimpleGrid>\n\n <Spacer height=\"6\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'sections.shopCheckout.submit' })}\n </Button>\n </Form>\n );\n }}\n </Formik>\n </Container>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n Spacer,\n Text,\n} from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface FactsProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n button?: StrapiLink;\n variant: 'gray' | 'green' | 'white';\n facts: { key: string; value: string }[];\n };\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n titleColor: 'white',\n subTitleColor: 'white',\n factKeyColor: 'whiteAlpha.900',\n factValueColor: 'white',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n};\n\nexport const Facts: React.FC<FactsProps> = ({ slice }: FactsProps) => (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n flexDir=\"column\"\n textAlign=\"center\"\n justifyContent=\"space-between\"\n paddingX={['6', null, '8']}\n title={slice.title}\n >\n <>\n {slice.title && (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n text={slice.subTitle}\n title={slice.title}\n taglineProps={{\n color: VARIANTS[slice.variant].tagLineColor,\n textAlign: 'center',\n }}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor,\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor,\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Spacer height={['0', null, '12']} />\n </>\n )}\n <Flex\n justifyContent={slice.facts.length < 3 ? 'center' : 'flex-start'}\n alignItems=\"center\"\n flexWrap=\"wrap\"\n mx={[null, null, null, '22', '28']}\n flexDir={['column', null, null, 'row']}\n gap={[null, null, null, '12']}\n >\n {slice.facts.map((fact) => (\n <Flex\n key={fact.key}\n flexDir=\"column\"\n width={[\n 'var(--boemly-sizes-full)',\n null,\n null,\n 'calc((var(--boemly-sizes-full) - var(--boemly-space-24))/ 3 )',\n ]}\n mt={['8', '8', '8', slice.facts.length > 3 ? '16' : '0']}\n >\n <Heading\n fontSize=\"6xl\"\n fontFamily=\"display\"\n lineHeight=\"10\"\n fontWeight=\"700\"\n color={VARIANTS[slice.variant].factValueColor}\n mb=\"2\"\n as=\"p\"\n >\n {fact.value}\n </Heading>\n\n <Text\n size=\"mdLowNormal\"\n color={VARIANTS[slice.variant].factKeyColor}\n >\n {fact.key}\n </Text>\n </Flex>\n ))}\n </Flex>\n\n {slice.button && (\n <>\n <Spacer height={['0', null, '20']} />\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n variant={slice.variant === 'green' ? 'outline' : 'solid'}\n component=\"Facts\"\n />\n </>\n )}\n </>\n </DefaultSectionContainer>\n);\n","import React, { useContext, useMemo } from 'react';\nimport {\n Text,\n Heading,\n Spacer,\n DatePersonPair,\n DefaultSectionHeader,\n DefaultSectionContainer,\n Wrapper,\n SimpleGrid,\n Box,\n Flex,\n useMediaQuery,\n useToken,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiCategory from '../../models/strapi/StrapiCategory';\nimport IStrapi from '../../models/strapi/IStrapi';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { BlogItemContainer, ImageContainer } from '../Blog/styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogCardsProps {\n slice: {\n tagline: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n variant: 'white' | 'gray';\n blogPostCategory: IStrapi<IStrapiData<StrapiCategory> | null>;\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nconst VARIANTS = {\n white: {\n backgroundColor: 'white',\n },\n gray: {\n backgroundColor: 'primary.50',\n },\n};\n\nconst sortByCreatedAt = (\n a: IStrapiData<StrapiBlogPost>,\n b: IStrapiData<StrapiBlogPost>\n): number =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime();\n\nexport const BlogCards: React.FC<BlogCardsProps> = ({\n slice,\n blogPosts,\n}: BlogCardsProps) => {\n const { formatDate } = useContext(IntlContext);\n const [mobile] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [gray700] = useToken('colors', ['gray.700']);\n\n const sortedBlogPosts = useMemo(\n () => blogPosts.sort(sortByCreatedAt),\n [blogPosts]\n );\n\n const blogPostsToDisplay = useMemo(\n () =>\n slice.blogPostCategory?.data?.attributes.name\n ? sortedBlogPosts\n .filter(\n (blogPost) =>\n blogPost.attributes.category.data?.attributes.name ===\n slice.blogPostCategory?.data?.attributes.name\n )\n .slice(0, 3)\n : sortedBlogPosts.slice(0, 3),\n [sortedBlogPosts, slice]\n );\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n title={slice.title}\n >\n <Wrapper>\n {mobile || !slice.button ? (\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: '2xl' }}\n textProps={{ maxW: '2xl' }}\n />\n ) : (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"60\">\n <Box>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n />\n </Box>\n <Box minWidth=\"40\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n component=\"BlogCards\"\n />\n </Box>\n </Flex>\n )}\n <Spacer height=\"14\" />\n <SimpleGrid\n columns={[1, null, null, 3]}\n spacingX={4}\n spacingY={24}\n flexShrink=\"0\"\n >\n {blogPostsToDisplay.map((blogPost) => (\n <BlogItemContainer\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n data-testid=\"blog-item\"\n key={blogPost.attributes.slug}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'medium')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data?.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n\n <Spacer height=\"4\" />\n\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author.data\n ? {\n name: blogPost.attributes.author.data.attributes.name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes.img\n .objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n ))}\n </SimpleGrid>\n <>\n {mobile && slice.button && (\n <>\n <Box minWidth=\"40\" mt=\"6\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n component=\"BlogCards\"\n />\n </Box>\n </>\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useCallback, useContext } from 'react';\nimport {\n BoemlyFormControl,\n Box,\n Button,\n Divider,\n Flex,\n InputRightAddon,\n Spacer,\n Text,\n} from 'boemly';\nimport {\n Field,\n FieldProps,\n Form,\n Formik,\n FormikErrors,\n FormikProps,\n} from 'formik';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport { StrapiLink } from '../../..';\nimport { IntlContext } from '../../ContextProvider';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../../constants/domain';\nimport { CDN_URI, FPM_API_URI } from '../../../constants/api';\nimport StrapiLinkButton from '../../StrapiLinkButton';\nimport SmallCheckoutForm from '../../../models/forms/SmallCheckoutForm';\n\nconst calculateTaxIncludedValue = (\n values: SmallCheckoutForm,\n taxInPercent: number\n) => {\n const value = parseInt(values.contributionValueCurrency);\n\n if (isNaN(value)) return 0;\n\n return value + value * (taxInPercent / 100);\n};\n\nexport interface SmallCheckoutProps {\n batchId: string;\n pricePerKg: number;\n initialContributionValue: number;\n taxInPercent?: number;\n checkoutText?: string;\n currency: 'EUR' | 'CHF';\n\n title?: string;\n subtitle?: string;\n button?: StrapiLink;\n}\n\nconst SmallCheckout = ({\n pricePerKg,\n currency,\n batchId,\n initialContributionValue,\n taxInPercent,\n checkoutText,\n title,\n subtitle,\n button,\n}: SmallCheckoutProps) => {\n const { formatNumber, formatMessage, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: SmallCheckoutForm) => {\n const errors: FormikErrors<SmallCheckoutForm> = {};\n const value = parseInt(values.contributionValueCurrency);\n if (!values.contributionValueCurrency || isNaN(value)) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.empty',\n });\n } else if (value < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY) {\n errors.contributionValueCurrency = formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.${currency}`,\n });\n } else if (value > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [currency, locale]\n );\n\n const onSubmit = async ({ contributionValueCurrency }: SmallCheckoutForm) => {\n const checkoutURL = new URL(`${FPM_API_URI}/v1/webhooks/shop/checkout`);\n const currentURL = new URL(window.location.href);\n\n checkoutURL.searchParams.append('batchId', batchId);\n\n checkoutURL.searchParams.append(\n 'quantity',\n Math.floor(parseInt(contributionValueCurrency) / pricePerKg).toString()\n );\n\n checkoutURL.searchParams.append('cancelPath', currentURL.pathname);\n\n push(checkoutURL.toString());\n };\n\n return (\n <Flex\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n background=\"primary.100\"\n padding=\"6\"\n direction=\"column\"\n >\n <Flex gap=\"2\" alignItems=\"end\" mb=\"6\">\n <Text color=\"black\" lineHeight=\"0\">\n {formatMessage(\n { id: 'unit.formatter.tonsCo2' },\n {\n number: (\n <Text as=\"span\" size=\"lgLowBold\" color=\"black\">\n {formatNumber(pricePerKg * 1000, {\n style: 'currency',\n currency,\n maximumFractionDigits: 0,\n })}\n </Text>\n ),\n }\n )}\n </Text>\n <Text size=\"smLowNormal\">\n {formatMessage({\n id: 'portfolio.smallCheckout.price.taxNotIncluded',\n })}\n </Text>\n </Flex>\n\n <Formik\n initialValues={{\n contributionValueCurrency: initialContributionValue.toString(),\n contributionValueTons: (\n initialContributionValue /\n pricePerKg /\n 1000\n ).toString(),\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n setValues,\n values,\n }: FormikProps<SmallCheckoutForm>) => (\n <Form onSubmit={handleSubmit}>\n <Flex gap=\"4\">\n <Box width=\"full\">\n <Field name=\"contributionValueCurrency\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueCurrency\"\n size=\"md\"\n inputProps={{\n type: 'number',\n value: field.value || '',\n onChange: (e) => {\n const value = e.target.valueAsNumber;\n\n setValues({\n contributionValueCurrency: value.toString(),\n contributionValueTons: (\n value /\n pricePerKg /\n 1000\n ).toString(),\n });\n },\n }}\n label={formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.label.${currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"currencyUnit\">\n {formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.unit.${currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueCurrency &&\n touched.contributionValueCurrency\n }\n errorMessage={errors.contributionValueCurrency}\n />\n )}\n </Field>\n </Box>\n\n <Box width=\"full\">\n <Field name=\"contributionValueTons\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueTons\"\n size=\"md\"\n inputProps={{\n type: 'number',\n value: field.value || '',\n onChange: (e) => {\n const value = e.target.valueAsNumber;\n setValues({\n contributionValueCurrency: (\n value *\n pricePerKg *\n 1000\n ).toString(),\n contributionValueTons: value.toString(),\n });\n },\n }}\n label={formatMessage({\n id: 'portfolio.smallCheckout.contributionValueTons.label',\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"tCO₂\">tCO₂</InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueTons &&\n touched.contributionValueTons\n }\n errorMessage={errors.contributionValueTons}\n />\n )}\n </Field>\n </Box>\n </Flex>\n {values.contributionValueCurrency &&\n taxInPercent &&\n taxInPercent > 0 && (\n <Text size=\"smLowNormal\" mt=\"2\">\n {formatMessage(\n { id: 'portfolio.smallCheckout.price.taxIncluded' },\n {\n number: formatNumber(\n calculateTaxIncludedValue(values, taxInPercent),\n {\n style: 'currency',\n currency,\n maximumFractionDigits: 2,\n }\n ),\n }\n )}\n </Text>\n )}\n\n <Spacer height=\"4\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'portfolio.smallCheckout.submitButton' })}\n </Button>\n </Form>\n )}\n </Formik>\n\n <Flex\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n mt=\"6\"\n gap=\"2\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/globe-love-icon.svg`}\n alt=\"Icon\"\n width={20}\n height={20}\n />\n <Text size=\"smLowNormal\">{checkoutText}</Text>\n </Flex>\n\n <Divider my=\"6\" />\n\n <Flex width=\"full\" alignItems=\"center\" direction=\"column\">\n {title && (\n <Text size=\"smLowBold\" textAlign=\"center\" color=\"black\" mb=\"2\">\n {title}\n </Text>\n )}\n {subtitle && (\n <Text size=\"smRegularNormal\" textAlign=\"center\" mb=\"3\">\n {subtitle}\n </Text>\n )}\n {button && (\n <StrapiLinkButton\n link={{\n intercomLauncher: true,\n ...button,\n }}\n variant=\"outline\"\n component=\"SmallCheckout\"\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport default SmallCheckout;\n","const convertAreaM2ToHa = (areaInM2: string): number =>\n parseInt(areaInM2, 10) / 10000;\n\nexport default convertAreaM2ToHa;\n","const convertCo2AmountKgToTons = (amount: string): number =>\n parseInt(amount, 10) / 1000;\n\nexport default convertCo2AmountKgToTons;\n","const getTimeSpanInYears = (start: Date, end: Date) => {\n const monthsDifference = end.getMonth() - start.getMonth();\n const yearsDifference = end.getFullYear() - start.getFullYear();\n\n if (monthsDifference > 4) {\n return yearsDifference + 1;\n }\n if (monthsDifference < -4) {\n return yearsDifference - 1;\n }\n return yearsDifference;\n};\n\nexport default getTimeSpanInYears;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n Divider,\n Flex,\n Heading,\n LabelTextPair,\n SimpleGrid,\n Spacer,\n Tooltip,\n} from 'boemly';\nimport Image from 'next/image';\nimport convertAreaM2ToHa from '../../../utils/convertAreaM2ToHa';\nimport convertCo2AmountKgToTons from '../../../utils/convertCo2AmountKgToTons';\nimport CreditsAvailableBadge from '../../../components/CreditsAvailableBadge';\nimport PortfolioProject from '../../../models/PortfolioProject';\nimport {\n FORMAT_AS_HECTARE_CONFIG,\n FORMAT_AS_PERCENT_CONFIG,\n} from '../../../constants/formatter';\nimport getTimeSpanInYears from '../../../utils/getTimeSpanInYears';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface ProjectInfoProps {\n project: PortfolioProject;\n subtitles: {\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n averageSellableAmountPerYearSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n };\n}\n\nexport const ProjectInfo: React.FC<ProjectInfoProps> = ({\n project,\n subtitles,\n}: ProjectInfoProps) => {\n const { formatMessage, formatNumber, formatDate } = useContext(IntlContext);\n\n return (\n <Container p=\"2\" width=\"full\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({ id: 'features.projectInfo.projectInfo.value' })}\n </Heading>\n\n <Spacer height=\"8\" />\n\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap=\"8\"\n spacingX=\"10\"\n spacingY=\"8\"\n >\n {project.area && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.area',\n })}\n text={formatNumber(\n convertAreaM2ToHa(project.area.toString()),\n FORMAT_AS_HECTARE_CONFIG\n )}\n caption={subtitles.areaSubtitle}\n />\n </Box>\n )}\n\n {project.location && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.location',\n })}\n text={project.location}\n caption={subtitles.locationSubtitle}\n />\n </Box>\n )}\n\n {project.start && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.start',\n })}\n text={formatDate(project.start, {\n year: 'numeric',\n month: 'long',\n })}\n caption={subtitles.startSubtitle}\n />\n </Box>\n )}\n\n {project.start && project.end && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.timeSpan',\n })}\n text={formatMessage(\n {\n id: 'features.projectInfo.properties.year',\n },\n {\n years: getTimeSpanInYears(\n new Date(project.start),\n new Date(project.end)\n ),\n }\n )}\n caption={subtitles.timeSpanSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.projectType ||\n project.projectDeveloper ||\n project.verificationStandard ? (\n <>\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n {project.projectType && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectType',\n })}\n text={project.projectType.title}\n caption={subtitles.projectTypeSubtitle}\n />\n </Box>\n )}\n {project.projectDeveloper && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectDeveloper',\n })}\n text={project.projectDeveloper.name}\n caption={subtitles.projectDeveloperSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.verificationStandard ? (\n <>\n {project.projectType || project.projectDeveloper ? (\n <Spacer height=\"6\" />\n ) : (\n <></>\n )}\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.verificationStandard.label',\n })}\n text={formatMessage({\n id: `features.projectInfo.properties.verificationStandard.value.${project.verificationStandard.id}`,\n defaultMessage: project.verificationStandard.id,\n })}\n caption={subtitles.verificationStandardSubtitle}\n />\n </Box>\n\n {project.defaultIssuer && (\n <Box position=\"relative\" width=\"14\" height=\"8\">\n <Image\n src={project.defaultIssuer.logoUrl}\n alt={`${project.defaultIssuer.name} logo`}\n fill\n style={{ objectFit: 'contain' }}\n />\n </Box>\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n\n {(project.averageSellableAmountPerYear &&\n project.averageSellableAmountPerYear > 0) ||\n project.riskBuffer ? (\n <>\n <Spacer height=\"8\" />\n <Divider />\n <Spacer height=\"8\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n {project.averageSellableAmountPerYear &&\n project.averageSellableAmountPerYear > 0 && (\n <Tooltip\n label={formatMessage({\n id: 'features.projectInfo.properties.projectVolume.toolTip',\n })}\n >\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectVolume.label',\n })}\n text={formatMessage(\n {\n id: 'unit.formatter.tonsCo2PerYear',\n },\n {\n number: formatNumber(\n convertCo2AmountKgToTons(\n project.averageSellableAmountPerYear.toString()\n ),\n { maximumFractionDigits: 0 }\n ),\n }\n )}\n caption={subtitles.averageSellableAmountPerYearSubtitle}\n />\n </Box>\n </Tooltip>\n )}\n\n {project.riskBuffer && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.riskBuffer',\n })}\n text={formatNumber(\n project.riskBuffer / 100,\n FORMAT_AS_PERCENT_CONFIG\n )}\n caption={subtitles.riskBufferSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n <Box mt=\"2\">\n <CreditsAvailableBadge status={project.creditAvailability} />\n </Box>\n </Container>\n );\n};\n","import React, { useContext } from 'react';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport {\n Center,\n Container,\n Flex,\n Heading,\n IconButton,\n Spacer,\n Text,\n} from 'boemly';\nimport { DownloadSimple, FilePdf } from '@phosphor-icons/react';\nimport Link from 'next/link';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface DocumentsDownloadListProps {\n documentUrls: StrapiLink[];\n}\n\nexport const DocumentsDownloadList: React.FC<DocumentsDownloadListProps> = ({\n documentUrls,\n}: DocumentsDownloadListProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container p=\"2\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({\n id: 'features.portfolio.documentsDownloadList.projectDocuments',\n })}\n </Heading>\n\n <Flex flexDir=\"column\">\n {documentUrls.map((documentUrl) => (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"center\"\n mt=\"6\"\n key={documentUrl.text}\n >\n <Flex alignItems=\"center\">\n <Center\n w=\"8\"\n h=\"8\"\n borderRadius=\"full\"\n borderWidth=\"1px\"\n borderColor=\"grey.200\"\n >\n <FilePdf />\n </Center>\n\n <Spacer width=\"4\" />\n\n <Flex flexDir=\"column\">\n <Text size=\"smMonoNormal\">PDF</Text>\n <Text size=\"mdLowBold\" color=\"black\" textAlign=\"left\">\n {documentUrl.text}\n </Text>\n </Flex>\n </Flex>\n\n <Spacer width=\"32\" />\n\n <IconButton\n variant=\"outline\"\n aria-label={formatMessage({\n id: 'features.portfolio.documentsDownloadList.downloadDocument',\n })}\n icon={<DownloadSimple />}\n as={Link}\n href={documentUrl.url}\n size=\"sm\"\n />\n </Flex>\n ))}\n </Flex>\n </Container>\n );\n};\n","import React from 'react';\nimport StrapiImage from '../../../models/strapi/StrapiImage';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../../utils/strapiMediaUrl';\nimport { Text, Heading, Flex, Box, Container } from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../../components/StrapiLinkButton';\n\nexport interface ContactProps {\n avatar?: StrapiImage;\n title?: string;\n text?: string;\n button?: StrapiLink;\n}\n\nexport const Contact: React.FC<ContactProps> = ({\n avatar,\n title,\n text,\n button,\n}: ContactProps) => (\n <Container backgroundColor=\"primary.100\" border=\"none\" p=\"8\" height=\"full\">\n <Flex\n flexDir=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"full\"\n >\n {avatar ? (\n <Box\n position=\"relative\"\n width=\"20\"\n height=\"20\"\n borderRadius=\"full\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(avatar.img, 'small')}\n alt={avatar.alt}\n fill\n objectFit={avatar.objectFit}\n />\n </Box>\n ) : (\n <></>\n )}\n {title ? (\n <Heading\n mt=\"6\"\n size=\"md\"\n fontWeight=\"500\"\n textAlign=\"center\"\n color=\"black\"\n >\n {title}\n </Heading>\n ) : (\n <></>\n )}\n {text ? (\n <Text mt=\"2\" size=\"smRegularNormal\" textAlign=\"center\">\n {text}\n </Text>\n ) : (\n <></>\n )}\n {button ? (\n <StrapiLinkButton\n mt=\"6\"\n link={button}\n size=\"md\"\n variant=\"outline\"\n component=\"Contact\"\n />\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n);\n","import FPMProject from '../../models/fpm/FPMProject';\nimport fpmClient from '../fpmClient';\n\nconst getFpmProjectById = async (projectId: string): Promise<FPMProject> => {\n const fpmResponse = await fpmClient.get<FPMProject>(\n `/public/projects/${projectId}`\n );\n\n return fpmResponse.data;\n};\n\nexport default getFpmProjectById;\n","import React, { useEffect, useState } from 'react';\nimport { DefaultSectionContainer, Flex, Wrapper } from 'boemly';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport SmallCheckout from '../../components/portfolio/SmallCheckout';\nimport ProjectInfo from '../../components/portfolio/ProjectInfo';\nimport DocumentsDownloadList from '../../components/portfolio/DocumentsDownloadList';\nimport Contact from '../../components/portfolio/Contact';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport getFpmProjectById from '../../integrations/strapi/getFpmProjectById';\n\nexport interface ProjectFactsProps {\n project?: PortfolioProject;\n slice: {\n projectId: string;\n\n batchId?: string;\n currency?: 'EUR' | 'CHF';\n pricePerKg?: number;\n taxInPercent?: number;\n initialContributionValue?: number;\n checkoutText?: string;\n\n customTitle?: string;\n customSubtitle?: string;\n customButton?: StrapiLink;\n documentUrls?: StrapiLink[];\n\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n averageSellableAmountPerYearSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n\n contactTitle?: string;\n contactText?: string;\n contactButton?: StrapiLink;\n contactAvatar?: StrapiImage;\n };\n}\n\nexport const ProjectFacts: React.FC<ProjectFactsProps> = ({\n slice,\n project,\n}: ProjectFactsProps) => {\n const [enhancedProject, setEnhancedProject] = useState<\n PortfolioProject | undefined\n >(project);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n const fetchCompleteProjectData = async () => {\n if (project && project.id) {\n setIsLoading(true);\n try {\n const completeFpmProject = await getFpmProjectById(project.id);\n\n // Merge the complete FPM data with existing project data (preserving Strapi fields like slug, portfolioHost, thumbnail)\n const mergedProject: PortfolioProject = {\n ...completeFpmProject,\n slug: project.slug,\n portfolioHost: project.portfolioHost,\n thumbnail: project.thumbnail,\n };\n\n setEnhancedProject(mergedProject);\n } catch (error) {\n console.error('Error fetching complete project data:', error);\n // Fallback to original project data if fetch fails\n setEnhancedProject(project);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n fetchCompleteProjectData();\n }, [project]);\n\n if (!enhancedProject) {\n return (\n <>Invalid configuration, check if a project this id exists in the FPM</>\n );\n }\n\n if (isLoading) {\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <div>Loading project data...</div>\n </Wrapper>\n </DefaultSectionContainer>\n );\n }\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Flex flexDir={['column', null, null, 'row']} gap=\"4\" width=\"full\">\n <ProjectInfo project={enhancedProject} subtitles={slice} />\n <Flex flexDir=\"column\" gap=\"4\" width=\"full\">\n {slice.documentUrls && slice.documentUrls.length > 0 && (\n <DocumentsDownloadList documentUrls={slice.documentUrls} />\n )}\n {slice.batchId &&\n slice.pricePerKg &&\n slice.currency &&\n slice.initialContributionValue ? (\n <SmallCheckout\n batchId={slice.batchId}\n checkoutText={slice.checkoutText}\n currency={slice.currency}\n initialContributionValue={slice.initialContributionValue}\n pricePerKg={slice.pricePerKg}\n title={slice.customTitle}\n subtitle={slice.customSubtitle}\n button={slice.customButton}\n taxInPercent={slice.taxInPercent}\n />\n ) : (\n (slice.contactTitle ||\n slice.contactText ||\n slice.contactButton ||\n slice.contactAvatar) && (\n <Contact\n title={slice.contactTitle}\n text={slice.contactText}\n button={slice.contactButton}\n avatar={slice.contactAvatar}\n />\n )\n )}\n </Flex>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { Container, Center, Heading, Button, Box, Text, Flex } from 'boemly';\nimport React, { useContext } from 'react';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport { IntlContext } from '../../components/ContextProvider';\nimport Link from 'next/link';\n\nexport interface CustomerCardProps {\n customerStory: StrapiCustomerStory;\n}\nexport const CustomerCard = ({\n customerStory,\n}: CustomerCardProps): JSX.Element => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container padding=\"none\" height=\"full\">\n <Flex flexDir=\"column\" height=\"full\">\n <Center height=\"24\" backgroundColor=\"primary.50\" borderTopRadius=\"xl\">\n {customerStory.cardImage && (\n <Box position=\"relative\" height=\"12\" width=\"12\">\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Box>\n )}\n </Center>\n <Box px=\"6\" pt=\"8\" pb=\"6\" mb=\"auto\">\n {customerStory.customerCardCustomerIndustry && (\n <Text size=\"xsMonoUppercase\" color=\"gray.500\" mb=\"2\">\n {customerStory.customerCardCustomerIndustry}\n </Text>\n )}\n {customerStory.title && (\n <Heading size=\"md\" fontWeight=\"500\">\n {customerStory.title}\n </Heading>\n )}\n </Box>\n <Box px=\"6\" pt=\"8\" pb=\"6\">\n <Button\n as={Link}\n href={`/customer-stories/${customerStory.slug}`}\n variant=\"outline\"\n size=\"sm\"\n >\n {formatMessage({ id: 'sections.customerCard.more' })}\n </Button>\n </Box>\n </Flex>\n </Container>\n );\n};\n","import { Container, Heading, Button, Box, Text } from 'boemly';\nimport React, { useContext } from 'react';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport { IntlContext } from '../../components/ContextProvider';\nimport Link from 'next/link';\n\nexport interface CustomerQuoteCardProps {\n customerStory: StrapiCustomerStory;\n}\n\nexport const CustomerQuoteCard = ({\n customerStory,\n}: CustomerQuoteCardProps): JSX.Element => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container p=\"1\" backgroundColor=\"primary.100\" height=\"full\">\n {customerStory.cardImage ? (\n <Box\n position=\"relative\"\n height=\"12\"\n width=\"12\"\n borderRadius=\"full\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n <Box>\n <Box my=\"8\">\n <Heading size=\"md\" fontWeight=\"500\">\n {customerStory.customerName}\n </Heading>\n <Text size=\"xs\">{customerStory.quoteCardCustomerTitle}</Text>\n </Box>\n <Text size=\"xs\" color=\"black\">\n {customerStory.quoteCardQuote}\n </Text>\n <Button\n href={`/customer-stories/${customerStory.slug}`}\n as={Link}\n variant=\"outline\"\n size=\"sm\"\n mt=\"8\"\n >\n {formatMessage({ id: 'sections.customerQuoteCard.more' })}\n </Button>\n </Box>\n </Container>\n );\n};\n","import { Box, Container, Flex } from 'boemly';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport React from 'react';\nimport Link from 'next/link';\n\nexport interface LogoCardProps {\n customerStory: StrapiCustomerStory;\n}\nexport const LogoCard = ({ customerStory }: LogoCardProps) => {\n if (customerStory.cardImage) {\n return (\n <Container height=\"full\" backgroundColor=\"primary.50\">\n <Flex justifyContent=\"center\" height=\"full\" padding=\"4\">\n <Box position=\"relative\" height=\"12\" width=\"36\" marginY=\"auto\">\n <Link href={`/customer-stories/${customerStory.slug}`}>\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Link>\n </Box>\n </Flex>\n </Container>\n );\n }\n return <></>;\n};\n","import React from 'react';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport { Box, DefaultSectionContainer, SimpleGrid, Wrapper } from 'boemly';\nimport CustomerCard from '../../components/CustomerCard';\nimport CustomerQuoteCard from '../../components/CustomerQuoteCard';\nimport LogoCard from '../../components/LogoCard';\n\nexport interface CustomerStoriesProps {\n slice: {\n customer_stories: IStrapiData<StrapiCustomerStory>[];\n };\n customerStories: IStrapiData<StrapiCustomerStory>[];\n}\n\nexport const CustomerStories = ({\n slice,\n customerStories,\n}: CustomerStoriesProps): JSX.Element => {\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2, 3]} spacingX={6} spacingY={6}>\n {slice.customer_stories.map(({ attributes }) => {\n const customerStory: IStrapiData<StrapiCustomerStory> | undefined =\n customerStories.find(\n (cs) => cs.attributes.slug === attributes.slug\n );\n if (!customerStory) {\n return null;\n }\n return (\n <Box key={customerStory.id}>\n {attributes.variant === 'customerCard' && (\n <CustomerCard customerStory={customerStory.attributes} />\n )}\n {attributes.variant === 'quoteCard' && (\n <CustomerQuoteCard customerStory={customerStory.attributes} />\n )}\n {attributes.variant === 'logoCard' && (\n <LogoCard customerStory={customerStory.attributes} />\n )}\n </Box>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Check, X } from '@phosphor-icons/react';\nimport { Box } from 'boemly';\n\nexport interface IconProps {\n variant: 'gray' | 'green' | 'white';\n icon: string;\n}\n\nconst BULLET_POINT_VARIANTS = {\n gray: { bulletPointColor: 'black' },\n green: { bulletPointColor: 'white' },\n white: { bulletPointColor: 'black' },\n};\n\nexport const Icon = ({ variant, icon }: IconProps): JSX.Element => {\n switch (icon) {\n case 'check':\n return <Check size={20} color=\"var(--boemly-colors-primary-500)\" />;\n case 'cross':\n return <X size={20} color=\"var(--boemly-colors-red-500)\" />;\n default:\n return (\n <Box\n data-testid=\"bullet-point-box\"\n borderRadius=\"full\"\n backgroundColor={BULLET_POINT_VARIANTS[variant].bulletPointColor}\n width=\"2\"\n height=\"2\"\n margin=\"1.5\"\n />\n );\n }\n};\nexport default Icon;\n","import React, { useContext } from 'react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport {\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n Text,\n Flex,\n Box,\n Spacer,\n Divider,\n Heading,\n Badge,\n SimpleGrid,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { Icon } from './Icon';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface ComparisonProps {\n slice: {\n title?: string;\n subTitle?: string;\n tagline?: string;\n\n comparisonCards: ComparisonCard[];\n };\n}\n\nexport interface ComparisonCard {\n id: number;\n title: string;\n subTitle: string;\n badge?: string;\n variant: 'gray' | 'green' | 'white';\n image?: StrapiImage;\n button?: StrapiLink;\n factTitle?: string;\n factSubtitle?: string;\n lists: {\n id: string;\n title: string;\n items: { id: string; text: string; icon: 'bullet' | 'check' | 'cross' }[];\n }[];\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n green: {\n backgroundColor: 'primary.800',\n textColor: 'white',\n subTitleColor: 'whiteAlpha.900',\n factColor: 'white',\n dividerColor: 'whiteAlpha.200',\n },\n white: {\n backgroundColor: 'white',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n};\n\nexport const Comparison: React.FC<ComparisonProps> = ({\n slice,\n}: ComparisonProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n textProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n taglineProps={{ textAlign: 'center', maxWidth: '3xl' }}\n />\n </Flex>\n <Spacer height=\"12\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid\n columns={[1, null, null, null, slice.comparisonCards.length]}\n spacing=\"4\"\n >\n {slice.comparisonCards.map((comparisonCard) => (\n <Container\n boxShadow={comparisonCard.variant === 'green' ? 'xl' : 'base'}\n border={\n comparisonCard.variant === 'green' ? 'primary.800' : undefined\n }\n zIndex=\"base\"\n key={comparisonCard.id}\n position=\"relative\"\n elevation=\"none\"\n p=\"3\"\n backgroundColor={VARIANTS[comparisonCard.variant].backgroundColor}\n >\n {comparisonCard.variant === 'green' ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n zIndex=\"-1\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/shapes-comparison.svg`}\n alt={formatMessage({\n id: 'sections.comparison.backgroundShapes',\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n <Flex flexDir=\"column\" gap=\"4\">\n {comparisonCard.image && (\n <Box position=\"relative\" height=\"7\" width=\"100%\">\n <Image\n src={strapiMediaUrl(comparisonCard.image.img, 'small')}\n alt={comparisonCard.image.alt}\n fill\n style={{\n objectFit: comparisonCard.image.objectFit,\n }}\n />\n </Box>\n )}\n <Flex gap=\"2\" alignItems=\"center\" flexWrap=\"wrap\">\n <Heading\n size=\"xl\"\n color={VARIANTS[comparisonCard.variant].textColor}\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.title}\n </Heading>\n {comparisonCard.badge && (\n <Badge\n backgroundColor=\"green.100\"\n borderRadius=\"md\"\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.badge}\n </Badge>\n )}\n </Flex>\n </Flex>\n <Spacer height=\"4\" />\n <Text\n size=\"smRegularNormal\"\n color={VARIANTS[comparisonCard.variant].subTitleColor}\n >\n {comparisonCard.subTitle}\n </Text>\n\n {comparisonCard.factTitle ||\n comparisonCard.factSubtitle ||\n comparisonCard.button ? (\n <>\n <Spacer height=\"6\" />\n <Flex flexDir=\"column\">\n {comparisonCard.factTitle && (\n <>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"lgMonoNormal\"\n >\n {comparisonCard.factTitle}\n </Text>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"smLowNormal\"\n >\n {comparisonCard.factSubtitle}\n </Text>\n </>\n )}\n {comparisonCard.button && (\n <StrapiLinkButton\n mt=\"6\"\n link={comparisonCard.button}\n size=\"md\"\n variant=\"outline\"\n rightIcon={<CaretRight size={16} weight=\"bold\" />}\n component=\"Comparison\"\n />\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <>\n {comparisonCard.lists.map((list) => (\n <Box key={list.id}>\n <Divider\n my=\"8\"\n color={VARIANTS[comparisonCard.variant].dividerColor}\n />\n <Text\n size=\"smLowBold\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {list.title}\n </Text>\n <>\n {list.items.map((item) => (\n <Box key={item.id}>\n <Spacer height=\"4\" />\n <Flex gap=\"4\" alignItems=\"center\">\n <Box>\n <Icon\n variant={comparisonCard.variant}\n icon={item.icon}\n />\n </Box>\n <Text\n size=\"smLowNormal\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {item.text}\n </Text>\n </Flex>\n </Box>\n ))}\n </>\n </Box>\n ))}\n </>\n </Container>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\nexport default Comparison;\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\n\ninterface CarouselInnerContainerProps {\n logoCount: number;\n}\n\nexport const CarouselInnerContainer = styled(\n motion.div\n)<CarouselInnerContainerProps>`\n display: flex;\n justify-content: ${(props) =>\n props.logoCount < 5 ? 'center' : 'flex-start'};\n gap: var(--boemly-space-24);\n padding-right: var(--boemly-space-24);\n padding-left: var(--boemly-space-24);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: calc(\n ${(props) => props.logoCount} *\n (var(--boemly-sizes-16) + var(--boemly-space-6))\n );\n justify-content: ${(props) =>\n props.logoCount < 5 ? 'center' : 'flex-start'};\n }\n`;\n\nexport const LogoGrid = styled(motion.div)`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--boemly-space-24);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--boemly-space-6);\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport {\n DefaultSectionContainer,\n Flex,\n Heading,\n Spacer,\n Box,\n useMediaQuery,\n useToken,\n} from 'boemly';\nimport Image from 'next/image';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport { useWindowSize } from 'react-use';\n\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport AutoScroll from 'embla-carousel-auto-scroll';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport { getClosestRatio } from '../../utils/getClosestRatio';\nimport { CarouselInnerContainer, LogoGrid } from './styles';\n\nexport interface CarouselMarqueeBannerProps {\n slice: {\n title?: string;\n logos: StrapiImage[];\n };\n}\n\n// Separate component containing the actual logic\nconst CarouselMarqueeBannerContent: React.FC<CarouselMarqueeBannerProps> = ({\n slice,\n}) => {\n const [primary50] = useToken('colors', ['primary.50']);\n const { width: windowWidth } = useWindowSize();\n const hasEnoughLogosForLoop = slice.logos.length >= 5;\n const LOOP_ARRAY_LENGTH = windowWidth > 2000 ? 5 : 4;\n\n // Duplicate Logos to create a full loop\n const logosToRender = hasEnoughLogosForLoop\n ? Array.from({ length: LOOP_ARRAY_LENGTH }, () => slice.logos).flat()\n : slice.logos;\n\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n // Carousel setup\n const [emblaRef] = useEmblaCarousel(\n {\n loop: hasEnoughLogosForLoop,\n align: 'start',\n containScroll: 'trimSnaps',\n dragFree: true,\n },\n hasEnoughLogosForLoop\n ? [\n AutoScroll({\n playOnInit: true,\n speed: isMobile ? 0.5 : 1,\n stopOnInteraction: false,\n stopOnMouseEnter: false,\n stopOnFocusIn: false,\n }),\n ]\n : []\n );\n\n const renderLogos = (): React.ReactNode => {\n if (!hasEnoughLogosForLoop) {\n return (\n <LogoGrid>\n {slice.logos.map((logo, index) => (\n <Box\n key={`${logo.id}-${index}`}\n flexShrink={0}\n transform=\"translate3d(0, 0, 0)\"\n >\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Box\n position=\"relative\"\n height={isMobile ? '16' : '36'}\n width={`calc(var(--boemly-sizes-10)\n * ${getClosestRatio(\n logo.img.data.attributes.width,\n logo.img.data.attributes.height\n )})`}\n >\n <Image\n src={strapiMediaUrl(logo.img, 'large')}\n alt={logo.alt}\n fill\n style={{\n objectFit: logo.objectFit || 'contain',\n filter: 'grayscale(100%)',\n }}\n />\n </Box>\n </Flex>\n </Box>\n ))}\n </LogoGrid>\n );\n }\n\n return (\n <Box width=\"full\" overflow=\"hidden\" ref={emblaRef} cursor=\"pointer\">\n <CarouselInnerContainer logoCount={slice.logos.length}>\n {logosToRender.map((logo, index) => (\n <Box\n key={`${logo.id}-${index}`}\n flexShrink={0}\n transform=\"translate3d(0, 0, 0)\"\n >\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Box\n position=\"relative\"\n height={isMobile ? '16' : '36'}\n width={`calc(var(--boemly-sizes-10) * ${getClosestRatio(\n logo.img.data.attributes.width,\n logo.img.data.attributes.height\n )})`}\n >\n <Image\n src={strapiMediaUrl(logo.img, 'large')}\n alt={logo.alt}\n fill\n style={{\n objectFit: logo.objectFit || 'contain',\n filter: 'grayscale(100%)',\n }}\n />\n </Box>\n </Flex>\n </Box>\n ))}\n </CarouselInnerContainer>\n </Box>\n );\n };\n\n return (\n <DefaultSectionContainer backgroundColor={primary50}>\n <>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <Heading size=\"md\" fontWeight=\"500\">\n {slice.title}\n </Heading>\n </Flex>\n <Spacer height=\"12\" minHeight=\"12\" />\n </>\n ) : null}\n\n {renderLogos()}\n </>\n </DefaultSectionContainer>\n );\n};\n\n// Lazy-rendering the child component after client-side hydration\nexport const CarouselMarqueeBanner: React.FC<CarouselMarqueeBannerProps> = ({\n slice,\n}: CarouselMarqueeBannerProps) => {\n const [showChild, setShowChild] = useState(false);\n\n useEffect(() => {\n setShowChild(true); // Hydrate the component after the client-side is ready\n }, []);\n\n if (!showChild) {\n return <div />;\n }\n\n return <CarouselMarqueeBannerContent slice={slice} />;\n};\n\nexport default CarouselMarqueeBanner;\n","import React, { useContext } from 'react';\nimport {\n Button,\n Box,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n Spacer,\n Tag,\n Text,\n Wrapper,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from 'react-intl';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport { useState } from 'react';\nimport FullScreenImage from '../../components/FullScreenImage';\n\nexport interface TimelineProps {\n slice: {\n title: string;\n text?: string;\n tagline?: string;\n\n timelineItems: TimelineItem[];\n };\n}\n\nexport interface TimelineItem {\n id: number;\n tagline?: string;\n title: string;\n text?: string;\n badge?: { text: string; variant: 'orange' | 'green' | 'red' | 'gray' };\n logo?: StrapiImage;\n icon?: StrapiImage;\n image?: StrapiImage;\n button?: StrapiLink;\n backgroundShapes?: boolean;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ slice }: TimelineProps) => {\n const { formatMessage } = useContext(IntlContext);\n const [visibleItems, setVisibleItems] = useState(3);\n const [mobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n const [isOpen, setIsOpen] = useState(false);\n\n const showMoreItems = () => {\n setVisibleItems((prevVisibleItems) => prevVisibleItems + 3);\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Flex flexDir={['column', null, null, 'row']}>\n <Box\n width={['full', null, null, '50%']}\n position={[null, null, null, 'sticky']}\n top={['16', null, null, '32']}\n height=\"full\"\n paddingRight={[null, null, null, '28']}\n >\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n {mobile && (\n <>\n <Spacer h=\"10\" />\n <Flex justifyContent=\"center\">\n <Box\n borderRadius=\"full\"\n width=\"3\"\n height=\"3\"\n margin=\"1.5\"\n backgroundColor=\"gray\"\n />\n </Flex>\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"20\"\n />\n </>\n )}\n </Box>\n <Box\n overflow=\"visible\"\n maxWidth={['full', null, null, '50%']}\n borderLeft={[\n null,\n null,\n null,\n 'dashed 1px var(--boemly-colors-gray-200)',\n ]}\n position=\"relative\"\n width=\"full\"\n >\n <Flex\n flexDir=\"column\"\n overflow=\"visible\"\n gap={[null, null, null, '8']}\n >\n {slice.timelineItems.slice(0, visibleItems).map((item, index) => (\n <SimpleGrid\n gap={['none', null, null, '4']}\n key={item.id}\n columns={[1, null, null, 2]}\n alignContent=\"center\"\n gridTemplateColumns={[null, null, null, '1fr 16fr']}\n position=\"relative\"\n >\n <Flex\n alignItems=\"center\"\n justifyContent={['center', null, null, 'flex-start']}\n >\n <Box\n position=\"absolute\"\n transform={[null, null, null, 'translateX(-50%)']}\n backgroundColor=\"white\"\n >\n {item.icon ? (\n <Box padding=\"2\">\n <Image\n src={strapiMediaUrl(item.icon.img, 'xSmall')}\n alt={item.icon.alt}\n width=\"21\"\n height=\"21\"\n />\n </Box>\n ) : (\n <Box padding=\"2\">\n <Box\n borderRadius=\"full\"\n backgroundColor=\"primary.800\"\n width=\"2\"\n height=\"2\"\n />\n </Box>\n )}\n {mobile && (\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"10\"\n />\n )}\n </Box>\n </Flex>\n <Container\n p={[null, null, null, '3']}\n zIndex=\"base\"\n position=\"relative\"\n elevation=\"none\"\n >\n {item.backgroundShapes ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n zIndex=\"-1\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/timeline-shapes.svg`}\n alt={formatMessage({\n id: 'sections.timeline.backgroundShapes',\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Flex flexDir=\"column\">\n <Flex\n alignItems=\"flex-start\"\n justifyContent=\"space-between\"\n >\n <Box>\n {item.tagline && (\n <>\n <Text color=\"primary.800\" size=\"smMonoUppercase\">\n {item.tagline}\n </Text>\n <Spacer h=\"2\" />\n </>\n )}\n </Box>\n <Flex>\n {item.badge && (\n <Tag\n colorScheme={item.badge.variant}\n borderRadius=\"md\"\n >\n {item.badge.text}\n </Tag>\n )}\n {item.logo && (\n <Box position=\"relative\" height=\"8\" width=\"16\">\n <Image\n src={strapiMediaUrl(item.logo.img, 'small')}\n alt={item.logo.alt}\n fill\n style={{\n objectFit: item.logo.objectFit,\n }}\n />\n </Box>\n )}\n </Flex>\n </Flex>\n <Heading\n size=\"lg\"\n mt={['6', null, null, '3']}\n maxWidth=\"xs\"\n >\n {item.title}\n </Heading>\n {item.text && (\n <Box mt=\"3\">\n <RichText content={item.text} />\n </Box>\n )}\n {item.button && (\n <Box textAlign=\"left\">\n <Spacer h=\"4\" />\n <StrapiLinkButton\n link={item.button}\n size=\"sm\"\n variant=\"outline\"\n component=\"Timeline\"\n />\n </Box>\n )}\n {item.image ? (\n <>\n <Box\n position=\"relative\"\n mt=\"4\"\n height={['2xs', null, null, null, '48']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(item.image.img, 'xLarge')}\n alt={item.image.alt}\n fill\n style={{\n cursor: mobile ? 'unset' : 'pointer',\n objectFit: item.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n onClick={() => !mobile && setIsOpen(true)}\n />\n <FullScreenImage\n images={[item.image]}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </Box>\n </>\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n {mobile && index + 1 < slice.timelineItems.length && (\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"20\"\n />\n )}\n </SimpleGrid>\n ))}\n </Flex>\n {visibleItems < slice.timelineItems.length && (\n <>\n <Box\n width=\"full\"\n height={['36', null, null, '64']}\n position=\"absolute\"\n bottom=\"0\"\n zIndex=\"1\"\n background=\"linear-gradient(180deg, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.98) 76.54%, #FFF 100%)\"\n />\n <Box\n bottom=\"0\"\n textAlign=\"center\"\n zIndex=\"overlay\"\n position=\"relative\"\n >\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={showMoreItems}\n m={[null, null, null, '8']}\n >\n {formatMessage({ id: 'sections.timeline.showMoreButton' })}\n </Button>\n </Box>\n </>\n )}\n </Box>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","const getCountryFlag = (countryCode: string): string => {\n return countryCode\n .toUpperCase()\n .replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397));\n};\nexport default getCountryFlag;\n","import Locale from '../Locale';\nimport StrapiImage from './StrapiImage';\nimport StrapiLink from './StrapiLink';\nimport StrapiLocalization from './StrapiLocalization';\nimport StrapiTopBanner from './StrapiTopBanner';\n\nexport enum EventType {\n CONFERENCE = 'Conference',\n MEET_UP = 'Meet Up',\n WEBINAR = 'Webinar',\n FOREST_WALK = 'Forest Walk',\n LUNCH_AND_LEARN = 'Lunch & Learn',\n FESTIVAL = 'Festival',\n ROADSHOW = 'RoadShow',\n PARTNER_EVENT = 'Partner Event',\n FAIR = 'Fair',\n}\n\ninterface StrapiEvent {\n title: string;\n description: string;\n button?: StrapiLink;\n buttonVariant?: 'outline' | 'ghost' | 'link' | 'solid' | 'outlineWhite';\n recommended?: boolean;\n speakers?: {\n id: number;\n name: string;\n image: StrapiImage;\n }[];\n image: StrapiImage;\n logo: StrapiImage;\n eventTypes: {\n id: number;\n eventType: EventType;\n }[];\n languages: {\n id: number;\n language: string;\n countryCode: string;\n }[];\n location?: string;\n locale: Locale;\n online?: boolean;\n start: Date;\n end?: Date;\n allDay?: boolean;\n slices: any[];\n localizations: StrapiLocalization[];\n topBanner?: StrapiTopBanner;\n}\n\nexport default StrapiEvent;\n","const isSameDate = (date1: Date, date2: Date): boolean => {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n};\n\nexport default isSameDate;\n","import React, { useContext, useState } from 'react';\nimport {\n Text,\n Box,\n Flex,\n Heading,\n Tooltip,\n Tag,\n useMediaQuery,\n Button,\n} from 'boemly';\nimport { css } from '@emotion/react';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../StrapiLinkButton';\nimport {\n BowlFood,\n CalendarBlank,\n CaretDown,\n CaretRight,\n CaretUp,\n ChalkboardTeacher,\n Confetti,\n Handshake,\n Headset,\n Info,\n Laptop,\n MapPinLine,\n PersonSimpleWalk,\n ProjectorScreenChart,\n Star,\n UsersThree,\n Webcam,\n} from '@phosphor-icons/react';\nimport getCountryFlag from '../../utils/getCountryFlag';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport StrapiEvent, { EventType } from '../../models/strapi/StrapiEvent';\nimport { IntlContext } from '../ContextProvider';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport isSameDate from '../../utils/isSameDate';\n\nexport interface EventCardProps {\n event: StrapiEvent;\n}\n\nconst MAX_LENGTH = 120;\nconst LOCATION_MAX_LENGTH = 28;\n\nconst getEventIcon = (eventType: string): JSX.Element => {\n switch (eventType) {\n case EventType.WEBINAR:\n return <Webcam size={12} />;\n case EventType.CONFERENCE:\n return <Headset size={12} />;\n case EventType.MEET_UP:\n return <UsersThree size={12} />;\n case EventType.FOREST_WALK:\n return <PersonSimpleWalk size={12} />;\n case EventType.PARTNER_EVENT:\n return <Handshake size={12} />;\n case EventType.LUNCH_AND_LEARN:\n return <BowlFood size={12} />;\n case EventType.FAIR:\n return <ChalkboardTeacher size={12} />;\n case EventType.FESTIVAL:\n return <Confetti size={12} />;\n case EventType.ROADSHOW:\n return <ProjectorScreenChart size={12} />;\n default:\n return <Info size={12} weight=\"fill\" />;\n }\n};\n\nexport const EventCard = ({ event }: EventCardProps): JSX.Element => {\n const { formatDate, formatNumber, formatMessage } = useContext(IntlContext);\n const [isExpanded, setIsExpanded] = useState(false);\n const [mobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n const toggleText = () => {\n setIsExpanded(!isExpanded);\n };\n\n const isLocationTooLong =\n (event.location?.length ?? 0) >= LOCATION_MAX_LENGTH;\n\n return (\n <Box\n borderRadius={['xl', null, null, '2xl']}\n height=\"full\"\n width=\"full\"\n border=\"1px solid var(--boemly-colors-gray-200)\"\n background=\"white\"\n >\n <Box\n position=\"relative\"\n width=\"full\"\n height={['32', null, null, '44']}\n borderTopRadius={['xl', null, null, '2xl']}\n css={css`\n & span,\n div,\n img {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n }\n `}\n >\n <Image\n src={strapiMediaUrl(event.image?.img, 'medium')}\n alt={event.image?.alt}\n fill\n style={{\n objectFit: event.image?.objectFit || 'cover',\n }}\n />\n\n <Box\n position=\"absolute\"\n top={['6', null, null, '8']}\n right={['6', null, null, '8']}\n zIndex=\"1\"\n width={['12', null, null, '16']}\n height={['12', null, null, '16']}\n >\n <Image\n src={strapiMediaUrl(event.logo.img, 'medium')}\n alt={event.logo.alt}\n fill\n style={{\n objectFit: event.logo.objectFit || 'contain',\n borderRadius: 'var(--boemly-radii-md)',\n border:\n '1px solid, var(--whiteAlpha-700, rgba(255, 255, 255, 0.64))',\n }}\n />\n </Box>\n </Box>\n <Flex\n flexDir=\"column\"\n p={['6', null, null, '8']}\n h=\"calc(var(--boemly-sizes-full) - var(--boemly-sizes-44))\"\n >\n <Flex flexDir=\"row\" mb=\"4\" gap=\"2\" flexWrap=\"wrap\">\n {event.recommended ? (\n <Flex mb={['2', null, null, '0']}>\n <Tag backgroundColor=\"green.600\">\n <Star size={12} weight=\"fill\" color=\"white\" />\n &nbsp;\n <Text size=\"xsLowBold\" color=\"white\">\n {formatMessage({\n id: 'sections.eventCard.recommendedEvent',\n })}\n </Text>\n </Tag>\n </Flex>\n ) : (\n <></>\n )}\n <Flex flexWrap=\"wrap\" gap=\"2\">\n {event.eventTypes.map((e) => (\n <Tag key={e.id}>\n {getEventIcon(e.eventType)}&nbsp;\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage({\n id: `sections.eventCard.eventType.${e.eventType\n .toLowerCase()\n .replace(/\\s+/g, '')}`,\n })}\n </Text>\n </Tag>\n ))}\n {event.languages.map(({ id, language, countryCode }) => (\n <Tag key={id}>\n {getCountryFlag(countryCode)}&nbsp;\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {language}\n </Text>\n </Tag>\n ))}\n </Flex>\n </Flex>\n <Heading>{event.title}</Heading>\n <Flex\n gap={isLocationTooLong ? '2' : ['2', null, null, '6']}\n alignItems={mobile || isLocationTooLong ? 'flex-start' : 'center'}\n my=\"4\"\n flexDir={mobile || isLocationTooLong ? 'column' : 'row'}\n >\n {event.online && (\n <Flex gap=\"2\" alignItems=\"center\">\n <Laptop size={20} color={'var(--boemly-colors-primary-700)'} />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>Online</Text>\n </Flex>\n )}\n {event.location && (\n <Flex gap=\"2\" alignItems=\"center\">\n <MapPinLine\n size={20}\n color={'var(--boemly-colors-primary-700)'}\n weight=\"fill\"\n />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>\n {event.location}\n </Text>\n </Flex>\n )}\n <Flex alignItems=\"center\" gap=\"2\">\n <CalendarBlank\n size={20}\n color={'var(--boemly-colors-primary-700)'}\n />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>\n {formatDate(event.start, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })}\n\n {!event.allDay &&\n ` | ${formatNumber(new Date(event.start).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.start).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n\n {event.end &&\n !isSameDate(new Date(event.start), new Date(event.end)) && (\n <>\n {' - '}\n {formatDate(event.end, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })}\n\n {!event.allDay &&\n ` | ${formatNumber(new Date(event.end).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.end).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n </>\n )}\n\n {event.end &&\n !event.allDay &&\n isSameDate(new Date(event.start), new Date(event.end)) &&\n ` - ${formatNumber(new Date(event.end).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.end).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n </Text>\n </Flex>\n </Flex>\n <Text\n mb={mobile ? '0' : '7'}\n size={['xsRegularNormal', null, null, 'smRegularNormal']}\n >\n {isExpanded || !mobile\n ? event.description\n : `${event.description.substring(0, MAX_LENGTH)}...`}\n </Text>\n {event.description.length > MAX_LENGTH && mobile && (\n <Flex justifyContent=\"flex-start\">\n <Button\n mt=\"2\"\n onClick={toggleText}\n variant=\"link\"\n rightIcon={\n isExpanded ? <CaretUp size=\"12\" /> : <CaretDown size=\"12\" />\n }\n >\n {formatMessage(\n isExpanded\n ? {\n id: 'sections.eventCard.buttonShowLess',\n }\n : { id: 'sections.eventCard.buttonShowMore' }\n )}\n </Button>\n </Flex>\n )}\n <Flex\n mt={mobile ? '7' : 'auto'}\n justifyContent={mobile ? undefined : 'space-between'}\n flexDir={mobile ? 'column-reverse' : 'row'}\n gap={mobile ? '4' : '0'}\n >\n {event.button && (\n <Flex width={mobile ? 'full' : 'auto'}>\n <StrapiLinkButton\n key={event.button.id}\n size=\"md\"\n variant={event.buttonVariant}\n link={event.button}\n rightIcon={<CaretRight size=\"10\" />}\n width=\"full\"\n component=\"EventCard\"\n />\n </Flex>\n )}\n {event.speakers && event.speakers.length > 0 && (\n <Flex flexDir=\"row\" gap=\"2\">\n {event.speakers.map((speaker) => (\n <Box key={speaker.id}>\n <Box\n width={['10', null, null, '12']}\n height={['10', null, null, '12']}\n position=\"relative\"\n borderRadius=\"2xl\"\n >\n <Tooltip label={speaker.name}>\n <Image\n src={strapiMediaUrl(speaker.image.img, 'medium')}\n alt={speaker.image.alt}\n fill\n style={{\n objectFit: speaker.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-md)',\n border:\n '1px solid, var(--whiteAlpha-700, rgba(255, 255, 255, 0.64))',\n }}\n />\n </Tooltip>\n </Box>\n </Box>\n ))}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Box>\n );\n};\n","import useSWRInfinite, { SWRInfiniteKeyLoader } from 'swr/infinite';\nimport { useCallback, useMemo } from 'react';\nimport UseInfiniteDataHookProps from './UseInfiniteDataHookProps';\nimport SWRData from '../SWRData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport StrapiEvent from '../strapi/StrapiEvent';\n\nconst useEvents = ({\n getKey,\n batchSize,\n}: {\n getKey: SWRInfiniteKeyLoader;\n batchSize: number;\n}): UseInfiniteDataHookProps<IStrapiResponse<StrapiEvent[]>[]> => {\n const { data, isLoading, setSize, size, mutate } = useSWRInfinite<\n SWRData<IStrapiResponse<StrapiEvent[]>>\n >(getKey, { revalidateFirstPage: false, revalidateAll: false });\n\n const count: number | undefined = useMemo(() => {\n return data?.[0]?.body?.meta?.pagination?.total || 0;\n }, [data]);\n\n const isLoadingMore = useMemo(\n () => !!(size > 0 && data && typeof data[size - 1] === 'undefined'),\n [size, data]\n );\n\n const loadMore = useCallback(() => setSize(size + 1), [setSize, size]);\n\n const canLoadMore = useMemo(\n () => count !== undefined && size * batchSize < count,\n [count, size, batchSize]\n );\n\n return {\n data: data as any,\n isLoading,\n isLoadingMore,\n canLoadMore,\n refetch: mutate,\n loadMore,\n count,\n };\n};\n\nexport default useEvents;\n","import {\n DefaultSectionContainer,\n Wrapper,\n Spacer,\n DefaultSectionHeader,\n SimpleGrid,\n Box,\n Button,\n Flex,\n Center,\n Text,\n BoemlyTag,\n Select,\n} from 'boemly';\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport EventCard from '../../components/EventCard';\nimport { SWRInfiniteKeyLoader } from 'swr/infinite';\nimport useEvents from '../../models/hooks/useEvents';\nimport {\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_URI,\n} from '../../constants/strapi';\nimport { IntlContext } from '../../components/ContextProvider';\nimport { mutate } from 'swr/_internal';\nimport { EventType } from '@testing-library/react';\nimport StrapiEvent from '../../models/strapi/StrapiEvent';\nimport IStrapiData from '../../models/strapi/IStrapiData';\n\nconst UPCOMING_BATCH_SIZE = 6;\nconst PAST_BATCH_SIZE = 2;\n\ninterface FiltersProps {\n eventTypes: EventType[];\n languages: {\n id: number;\n language: string;\n countryCode: string;\n }[];\n}\n\nexport interface EventsProps {\n slice: {\n upcomingTitle?: string;\n upcomingDescription?: string;\n pastTitle: string;\n pastDescription?: string;\n filterSearch?: boolean;\n };\n}\n\nconst enum Sort {\n NEWEST_FIRST = 'newest',\n OLDEST_FIRST = 'oldest',\n}\n\ninterface EventOption {\n value: string;\n label: string;\n}\n\nexport const Events: React.FC<EventsProps> = ({ slice }: EventsProps) => {\n const { formatMessage, locale } = useContext(IntlContext);\n const [eventTypeFilter, setEventTypeFilter] = useState([] as string[]);\n const [languageFilter, setLanguageFilter] = useState([] as string[]);\n const [sort, setSort] = useState([Sort.NEWEST_FIRST] as string[]);\n\n const [allEventTypeOptions, setAllEventTypeOptions] = useState<EventOption[]>(\n []\n );\n const [allLanguageOptions, setAllLanguageOptions] = useState<EventOption[]>(\n []\n );\n\n const now = new Date().toISOString();\n\n const buildEventsUrl = (\n index: any,\n batchSize: number,\n startFilter: string\n ) => {\n const url = new URL(`/treely-events`, STRAPI_URI);\n url.searchParams.append(\n 'pagination[start]',\n (index * batchSize).toString()\n );\n url.searchParams.append('pagination[limit]', batchSize.toString());\n url.searchParams.append(startFilter, now);\n url.searchParams.append('locale', locale);\n url.searchParams.append('pLevel', STRAPI_DEFAULT_POPULATE_DEPTH);\n\n if (sort[0] === Sort.OLDEST_FIRST) {\n url.searchParams.append('sort', 'start:asc');\n } else {\n url.searchParams.append('sort', 'start:desc');\n }\n\n if (eventTypeFilter.length) {\n eventTypeFilter.forEach((filter, i) => {\n url.searchParams.append(\n `filters[$or][${i}][eventTypes][eventType]`,\n filter\n );\n });\n }\n\n if (languageFilter.length) {\n languageFilter.forEach((filter, i) => {\n url.searchParams.append(\n `filters[$or][${eventTypeFilter.length + i}][languages][language]`,\n filter\n );\n });\n }\n return `/treely-events` + url.search;\n };\n\n const getUpcomingKey: SWRInfiniteKeyLoader = useCallback(\n (index) =>\n buildEventsUrl(index, UPCOMING_BATCH_SIZE, 'filters[start][$gte]'),\n [eventTypeFilter, languageFilter, sort]\n );\n\n const getPastKey: SWRInfiniteKeyLoader = useCallback(\n (index) => buildEventsUrl(index, PAST_BATCH_SIZE, 'filters[start][$lt]'),\n [eventTypeFilter, languageFilter, sort]\n );\n\n const {\n data: upcomingData,\n isLoading: isLoadingUpcoming,\n isLoadingMore: isLoadingMoreUpcoming,\n canLoadMore: canLoadMoreUpcoming,\n loadMore: loadMoreUpcoming,\n } = useEvents({ getKey: getUpcomingKey, batchSize: UPCOMING_BATCH_SIZE });\n\n const {\n data: pastData,\n isLoading: isLoadingPast,\n isLoadingMore: isLoadingMorePast,\n canLoadMore: canLoadMorePast,\n loadMore: loadMorePast,\n } = useEvents({ getKey: getPastKey, batchSize: PAST_BATCH_SIZE });\n\n const processEvents = (data: any) => {\n return (\n data?.flatMap((d: any) => d?.body?.data)?.filter((t: any) => !!t) || []\n );\n };\n\n // Process upcoming events\n const upcomingEvents = useMemo(() => {\n return processEvents(upcomingData);\n }, [upcomingData]);\n\n // Process past events\n const pastEvents = useMemo(() => {\n return processEvents(pastData);\n }, [pastData]);\n\n // Function to fetch all possible options\n const fetchAllOptions = useCallback(async () => {\n const url = new URL(`/treely-events`, STRAPI_URI);\n url.searchParams.append('locale', locale);\n url.searchParams.append('pLevel', STRAPI_DEFAULT_POPULATE_DEPTH);\n\n const response = await fetch(\n `${STRAPI_URI}/api/treely-events${url.search}`,\n {\n headers: {\n 'Strapi-Response-Format': 'v4',\n },\n }\n );\n const data = await response.json();\n\n const events = data?.data || [];\n\n // Extract all event types\n const allEventTypes = new Set<string>();\n events.forEach((event: any) => {\n if (event?.attributes?.eventTypes) {\n event.attributes.eventTypes.forEach((item: any) => {\n allEventTypes.add(item.eventType);\n });\n }\n });\n\n // Extract all languages\n const allLanguages = new Set<string>();\n events.forEach((event: any) => {\n if (event?.attributes?.languages) {\n event.attributes.languages.forEach((item: any) => {\n allLanguages.add(item.language);\n });\n }\n });\n\n // Update state with all options\n setAllEventTypeOptions(\n Array.from(allEventTypes).map((value) => ({ value, label: value }))\n );\n\n setAllLanguageOptions(\n Array.from(allLanguages).map((value) => ({ value, label: value }))\n );\n }, [locale]);\n\n // Fetch all options when component mounts\n useEffect(() => {\n fetchAllOptions();\n }, [fetchAllOptions]);\n\n const removeFilter = (\n filterType: keyof FiltersProps,\n valueToRemove: string\n ) => {\n if (filterType === 'eventTypes') {\n setEventTypeFilter((prev) =>\n prev.filter((item) => item !== valueToRemove)\n );\n } else if (filterType === 'languages') {\n setLanguageFilter((prev) =>\n prev.filter((item) => item !== valueToRemove)\n );\n }\n };\n\n useEffect(() => {\n mutate(getUpcomingKey);\n }, [eventTypeFilter, languageFilter, sort]);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.upcomingTitle ? (\n <>\n <DefaultSectionHeader\n title={slice.upcomingTitle}\n text={slice.upcomingDescription}\n titleProps={{ maxW: '3xl' }}\n textProps={{ maxW: '3xl' }}\n />\n <Spacer h=\"10\" />\n </>\n ) : (\n <></>\n )}\n {slice.filterSearch && (upcomingEvents || pastEvents) ? (\n <>\n <Flex\n justifyContent=\"space-between\"\n direction={['column-reverse', null, null, 'row']}\n alignItems=\"baseline\"\n gap=\"4\"\n >\n <Flex\n direction=\"column\"\n width=\"full\"\n justifyContent=\"start\"\n gap=\"4\"\n >\n {/* Filter section */}\n <Flex\n direction={['column', null, null, 'row']}\n gap=\"4\"\n justifyContent=\"start\"\n >\n <Box position=\"relative\" width={['full', null, null, '56']}>\n <Select\n isMultiple={true}\n isSearchable={true}\n id=\"eventTypeFilter\"\n size=\"md\"\n placeholder={formatMessage({\n id: 'sections.events.eventsFilter.eventType',\n })}\n searchPlaceholder={formatMessage({\n id: 'sections.events.eventsFilter.searchPlaceholder',\n })}\n options={allEventTypeOptions}\n value={eventTypeFilter ?? []}\n onChange={(selected: string[]) => {\n setEventTypeFilter(selected);\n }}\n />\n </Box>\n <Box position=\"relative\" width={['full', null, null, '56']}>\n <Select\n isMultiple={true}\n isSearchable={true}\n id=\"languageFilter\"\n size=\"md\"\n placeholder={formatMessage({\n id: 'sections.events.eventsFilter.language',\n })}\n searchPlaceholder={formatMessage({\n id: 'sections.events.eventsFilter.searchPlaceholder',\n })}\n options={allLanguageOptions}\n value={languageFilter ?? []}\n onChange={(selected: string[]) => {\n setLanguageFilter(selected);\n }}\n />\n </Box>\n </Flex>\n\n {/* Filter Tags */}\n <Box display=\"flex\" flexWrap=\"wrap\" minHeight=\"6\" gap=\"2\">\n {eventTypeFilter.map((eventType) => {\n const event = allEventTypeOptions.find(\n (option) => option.value === eventType\n );\n return (\n <BoemlyTag\n key={eventType}\n isClosable={true}\n onClose={() => removeFilter('eventTypes', eventType)}\n >\n {event?.label}\n </BoemlyTag>\n );\n })}\n\n {languageFilter.map((singleLanguage) => {\n const language = allLanguageOptions.find(\n (option) => option.value === singleLanguage\n );\n return (\n <BoemlyTag\n key={singleLanguage}\n isClosable={true}\n onClose={() =>\n removeFilter('languages', singleLanguage)\n }\n >\n {language?.label}\n </BoemlyTag>\n );\n })}\n </Box>\n </Flex>\n {/* Sort Section */}\n <Box display=\"flex\" gap=\"1px\" width=\"52\" alignItems=\"center\">\n <Text size=\"smLowNormal\" color=\"black\" width=\"20\">\n Sort by:\n </Text>\n <Select\n isMultiple={false}\n borderColor=\"white\"\n value={[sort[0]]}\n placeholder={sort[0]}\n onChange={(selected: string[]) => setSort(selected)}\n options={[\n {\n label: formatMessage({\n id: `sections.events.eventsFilter.sortBy.${Sort.NEWEST_FIRST}`,\n }),\n value: Sort.NEWEST_FIRST,\n },\n {\n label: formatMessage({\n id: `sections.events.eventsFilter.sortBy.${Sort.OLDEST_FIRST}`,\n }),\n value: Sort.OLDEST_FIRST,\n },\n ]}\n />\n </Box>\n </Flex>\n\n <Spacer h={['8', null, null, '16']} />\n </>\n ) : (\n <></>\n )}\n\n {(!upcomingEvents || upcomingEvents.length === 0) &&\n !isLoadingUpcoming ? (\n <Center>\n {formatMessage({ id: 'sections.events.noUpcomingEvents' })}\n </Center>\n ) : (\n // List of upcoming events\n <SimpleGrid\n columns={[1, null, null, null, null, 2]}\n spacingX=\"6\"\n gap=\"6\"\n flexShrink=\"0\"\n mb={['10', null, null, '20']}\n placeItems=\"center\"\n >\n {upcomingEvents.map((event: IStrapiData<StrapiEvent>) => (\n <Box key={event.id} width=\"full\" height=\"full\">\n <EventCard event={event.attributes} />\n </Box>\n ))}\n </SimpleGrid>\n )}\n <Flex justifyContent=\"center\">\n {!isLoadingUpcoming && canLoadMoreUpcoming && (\n <Button\n onClick={() => {\n loadMoreUpcoming();\n }}\n variant=\"solid\"\n isLoading={isLoadingMoreUpcoming}\n >\n {formatMessage({ id: 'sections.events.loadMore' })}\n </Button>\n )}\n </Flex>\n </Wrapper>\n\n <Spacer h={['10', null, null, '28']} />\n\n <Box background=\"primary.50\" pt={['8', null, null, '24']}>\n <Wrapper>\n <DefaultSectionHeader\n title={slice.pastTitle}\n text={slice.pastDescription}\n titleProps={{ maxW: '3xl' }}\n textProps={{ maxW: '3xl' }}\n />\n\n <Spacer h=\"10\" />\n\n {(!pastEvents || pastEvents.length === 0) && !isLoadingPast ? (\n <>\n <Center>\n {formatMessage({ id: 'sections.events.noPastEvents' })}\n </Center>\n <Spacer h=\"24\" />\n </>\n ) : (\n // List of past events\n <SimpleGrid\n columns={[1, null, null, null, null, 2]}\n spacingX=\"6\"\n gap=\"6\"\n flexShrink=\"0\"\n placeItems=\"center\"\n mb={['10', null, null, '20']}\n >\n {pastEvents.map((event: IStrapiData<StrapiEvent>) => (\n <Box key={event.id} height=\"full\" width=\"full\">\n <EventCard event={event.attributes} />\n </Box>\n ))}\n </SimpleGrid>\n )}\n <Flex justifyContent=\"center\">\n {!isLoadingPast && canLoadMorePast && (\n <Button\n mb=\"20\"\n onClick={() => {\n loadMorePast();\n }}\n variant=\"solid\"\n isLoading={isLoadingMorePast}\n >\n {formatMessage({ id: 'sections.events.loadMore' })}\n </Button>\n )}\n </Flex>\n </Wrapper>\n </Box>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport FullWidthImage from '../../slices/FullWidthImage';\nimport Hero from '../../slices/Hero';\nimport IconGrid from '../../slices/IconGrid';\nimport ImageGrid from '../../slices/ImageGrid';\nimport ImageTextSequence from '../../slices/ImageTextSequence';\nimport LeftTextRightCard from '../../slices/LeftTextRightCard';\nimport LogoGridWithText from '../../slices/LogoGridWithText';\nimport MapHero from '../../slices/MapHero';\nimport QAndA from '../../slices/QAndA';\nimport QuoteCards from '../../slices/QuoteCards';\nimport RichTextSection from '../../slices/RichTextSection';\nimport Steps from '../../slices/Steps';\nimport TextCardGrid from '../../slices/TextCardGrid';\nimport TextCarousel from '../../slices/TextCarousel';\nimport TextWithTextCards from '../../slices/TextWithTextCards';\nimport TextWithCard from '../../slices/TextWithCard';\nimport LinkCardsGrid from '../../slices/LinkCardsGrid';\nimport SmallHero from '../../slices/SmallHero';\nimport Blog from '../../slices/Blog';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport ProjectsGrid from '../../slices/ProjectsGrid';\nimport ProjectsMap from '../../slices/ProjectsMap';\nimport Video from '../../slices/Video';\nimport FullWidthHighlightQuote from '../../slices/FullWidthHighlightQuote';\nimport FullWidthImageSlider from '../../slices/FullWidthImageSlider';\nimport SideBySideImages from '../../slices/SideBySideImages';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport Cta from '../../slices/Cta';\nimport CtaOnly from '../../slices/CtaOnly';\nimport Glossary from '../../slices/Glossary';\nimport ShopCheckout from '../../slices/ShopCheckout';\nimport Facts from '../../slices/Facts';\nimport BlogCards from '../../slices/BlogCards';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport ProjectFacts from '../../slices/ProjectFacts';\nimport CustomerStories from '../../slices/CustomerStories';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport Comparison from '../../slices/Comparison';\nimport CarouselMarqueeBanner from '../../slices/CarouselMarqueeBanner';\nimport Locale from '../../models/Locale';\nimport { ContextProvider } from '../ContextProvider';\nimport Timeline from '../../slices/Timeline';\nimport Events from '../../slices/Events';\nimport { AnalyticsFunction } from '../ContextProvider/ContextProvider';\n\nexport interface CustomSliceProps {\n slice: any;\n id: string;\n}\n\nexport interface SliceRendererProps {\n slices: any;\n blogPosts: IStrapiData<StrapiBlogPost>[];\n projects: PortfolioProject[];\n customerStories: IStrapiData<StrapiCustomerStory>[];\n locale?: Locale;\n CustomSlice?: ({ slice, id }: CustomSliceProps) => JSX.Element;\n analyticsFunction?: AnalyticsFunction;\n}\n\nexport const SliceRenderer = ({\n slices,\n blogPosts,\n projects,\n customerStories,\n locale = 'en',\n CustomSlice,\n analyticsFunction,\n}: SliceRendererProps): JSX.Element => (\n <ContextProvider locale={locale} analyticsFunction={analyticsFunction}>\n {slices.map((slice: any) => {\n switch (slice.__component) {\n case 'sections.hero':\n return (\n <Hero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.map-hero':\n return (\n <MapHero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.rich-text':\n return (\n <RichTextSection\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.left-text-right-card':\n return (\n <LeftTextRightCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-card':\n return (\n <TextWithCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n projects={projects}\n />\n );\n case 'sections.logo-grid-with-text':\n return (\n <LogoGridWithText\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.quote-cards':\n return (\n <QuoteCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.q-and-a':\n return (\n <QAndA key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-grid':\n return (\n <ImageGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-image':\n return (\n <FullWidthImage\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-text-cards':\n return (\n <TextWithTextCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-card-grid':\n return (\n <TextCardGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.icon-grid':\n return (\n <IconGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-text-sequence':\n return (\n <ImageTextSequence\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.steps':\n return (\n <Steps key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.text-carousel':\n return (\n <TextCarousel\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.link-cards-grid':\n return (\n <LinkCardsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.small-hero':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"dark\"\n />\n );\n case 'sections.small-hero-light':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"light\"\n />\n );\n case 'sections.project-facts':\n return (\n <ProjectFacts\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n project={projects.find((p) => p.id === slice.projectId)}\n />\n );\n case 'sections.projects-grid':\n return (\n <ProjectsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n projects={projects}\n />\n );\n case 'sections.projects-map':\n return (\n <ProjectsMap\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.video':\n return (\n <Video key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-highlight-quote':\n return (\n <FullWidthHighlightQuote\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.full-width-image-slider':\n return (\n <FullWidthImageSlider\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.side-by-side-images':\n return (\n <SideBySideImages\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.cta-only':\n return (\n <CtaOnly key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.cta':\n return <Cta key={`${slice.__component}-${slice.id}`} slice={slice} />;\n case 'sections.shop-checkout':\n return (\n <ShopCheckout\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.facts':\n return (\n <Facts key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.blog-cards':\n return (\n <BlogCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n blogPosts={blogPosts}\n />\n );\n case 'sections.blog':\n return (\n <Blog\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n blog_posts: slice.blog_posts.data,\n }}\n blogPosts={blogPosts}\n />\n );\n case 'sections.glossary':\n return (\n <Glossary\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n glossary_items: slice.glossary_items.data,\n }}\n />\n );\n case 'sections.customer-stories':\n return (\n <CustomerStories\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n customer_stories: slice.customer_stories.data,\n }}\n customerStories={customerStories}\n />\n );\n case 'sections.comparison':\n return (\n <Comparison\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.timeline':\n return (\n <Timeline key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.carousel-marquee-banner':\n return (\n <CarouselMarqueeBanner\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.events':\n return (\n <Events key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n default:\n if (CustomSlice) {\n return (\n <CustomSlice\n key={`${slice.__component}-${slice.id}`}\n id={slice.__component}\n slice={slice}\n />\n );\n }\n\n return (\n <div key={`${slice.__component}-${slice.id}`}>\n Slice component not supported\n </div>\n );\n }\n })}\n </ContextProvider>\n);\n"],"names":["STRAPI_URI","process","env","NEXT_PUBLIC_STRAPI_URI","STRAPI_DEFAULT_PAGE_SIZE","STRAPI_DEFAULT_POPULATE_DEPTH","STRAPI_FALLBACK_LOCALE","strapiClient","setupCache","axios","create","baseURL","headers","paramsSerializer","p","qs","stringify","encodeValuesOnly","timeout","ttl","includes","getAllSlugsFromStrapi","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","locales","_temp","_ref2","_ref2$filters","filters","slugPromises","slugResults","allSlugs","missingLocales","wrap","_callee$","_context","prev","next","map","locale","get","params","then","response","data","page","slug","attributes","error","_error$response","status","Promise","all","sent","flat","flatMap","filter","fallbackSlug","some","_extends","abrupt","concat","stop","_x","_x2","_x3","apply","arguments","NEXT_PUBLIC_API_URI","FPM_API_URI","NEXT_PUBLIC_FPM_API_URI","CDN_URI","fpmClient","FALLBACK_LOCALE","getStrapiProjects","pLevel","preview","cache","strapiParams","strapiProjects","_yield$Promise$all","strapiProjectsLocalized","strapiProjectsEnglish","_i","_arr","project","undefined","Map","length","fpmProjectId","set","t0","console","warn","getPortfolioProjects","fpmProjects","fpmProject","_strapiProject$attrib","strapiProject","id","toReturn","thumbnail","portfolio","host","portfolioHost","getStrapiCollectionType","key","_ref$locale","_ref$preview","_ref$filters","sharedParams","requestedLocaleData","fallbackLocaleData","results","_error$response2","fallbackLocaleDataEntry","requestedLocale","find","localized","getStrapiSingleType","isAxiosError","strapiMediaUrl","media","preferredSize","url","ext","_media$data$attribute","formats","indexOf","DEFAULT_SHARE_IMAGE","DEFAULT_SHARE_ALT","EXTENDABLE_HEADER_SECTIONS","DARK_THEME_HEADER_SECTIONS","SLICES_WITH_BLOG_POSTS","SLICES_WITH_CUSTOMER_STORIES","SLICES_WITH_PROJECTS","mergeGlobalAndStrapiBlogPostData","context","global","post","blog","projects","_post$attributes$meta","_post$attributes$meta2","_post$attributes$meta3","_global$attributes$me","_post$attributes$meta4","_post$attributes$meta5","_global$attributes$me2","_post$attributes","_post$attributes$meta6","_post$attributes$meta7","_post$attributes$meta8","_post$attributes$meta9","_post$attributes$meta10","_post$attributes$meta11","_global$attributes$me3","metaShareImageUrl","metadata","shareImage","schemaMarkupTypes","returnBlog","slices","slice","__component","returnProjects","headerType","extendable","theme","headerNavMenus","navbar","navMenus","headerButtons","buttons","footerLinks","footer","links","title","description","alt","metaTitleSuffix","favicon","blogPosts","banner","topBanner","customerStories","isFallbackLocale","mergeGlobalAndStrapiCustomerStoryData","customerStory","_customerStory$attrib","_customerStory$attrib2","_customerStory$attrib3","_customerStory$attrib4","_customerStory$attrib5","_customerStory$attrib6","_customerStory$attrib7","_customerStory$attrib8","_customerStory$attrib9","_customerStory$attrib10","_customerStory$attrib11","_customerStory$attrib12","returnCustomerStories","mergeGlobalAndStrapiPageData","_page$attributes$meta","_page$attributes$meta2","_page$attributes$meta3","_page$attributes$meta4","_page$attributes$meta5","_page$attributes$meta6","_page$attributes","_page$attributes$slic","_page$attributes$slic2","_page$attributes$meta7","_page$attributes$meta8","_page$attributes$meta9","_page$attributes$meta10","_page$attributes$meta11","_page$attributes$meta12","returnBlogPosts","mergeGlobalAndStrapiProject","_project$attributes$m","_project$attributes$m2","_project$attributes$m3","_project$attributes$m4","_project$attributes$m5","_project$attributes","_project$attributes$s","_project$attributes$s2","_project$attributes$m6","_project$attributes$m7","_project$attributes$m8","_project$attributes$m9","_project$attributes$m10","_project$attributes$m11","strapiLinkUrl","strapiLink","_strapiLink","_strapiLink2","PreviewAlert","React","createElement","Box","position","top","left","BoemlyAlert","text","getTextValue","value","getSchemaProperty","schema","property","getSchemaIdentifier","_offer$price","type","offer","price","validateSchema","Array","isArray","every","item","SEOTags","_shareImage$url","_shareImage$alt","_ref$metaTitleSuffix","_ref$favicon","_ref$domain","domain","schemaMarkup","shareImageUrl","shareImageAlt","schemas","isValidSchema","schemaArray","getSchemaKey","index","identifier","Head","name","content","rel","href","dangerouslySetInnerHTML","__html","JSON","ZoomableImage","image","_ref$zoom","zoom","_useState","useState","isZoomed","setIsZoomed","_useState2","backgroundPos","setBackgroundPos","imageSrc","img","zoomInPosition","e","zoomer","currentTarget","getBoundingClientRect","x","clientX","width","y","clientY","height","toggleZoomImage","handleClick","handleMove","Fragment","as","display","overflow","flexShrink","scrollSnapAlign","scrollSnapStop","draggable","cursor","backgroundImage","backgroundSize","backgroundPosition","onClick","onMouseMove","Image","src","fill","style","visibility","objectFit","FullScreenImage","images","isOpen","onClose","_ref$currentIndex","currentIndex","setCurrentIndex","containerRef","useRef","useLockBodyScroll","canMoveRight","useMemo","canMoveLeft","onRight","useCallback","c","onLeft","useKey","useEffect","setTimeout","_containerRef$current","current","scrollTo","clientWidth","behavior","BoemlyModal","trigger","size","Flex","insetY","insetX","alignItems","justifyContent","ref","flexGrow","flexBasis","gap","marginX","scrollSnapType","inset","pointerEvents","IconButton","icon","CaretLeft","variant","mr","CaretRight","ml","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_MD_QUERY","BREAKPOINT_LG_QUERY","FullWidthImage","setIsOpen","_useMediaQuery","useMediaQuery","isMobile","DefaultSectionContainer","Wrapper","DefaultSectionHeader","isHero","tagline","taglineProps","textAlign","mt","titleProps","maxW","textProps","borderRadius","openHubSpotChat","w","window","HubSpotConversations","widget","open","hsConversationsOnReady","GLOBAL_STYLE","css","_templateObject","_taggedTemplateLiteralLoose","messagesDe","unitMessagesDe","rootMessagesDe","creditsAvailableBadgeMessagesDe","eventCardMessagesDe","portfolioDocumentsDownloadListMessagesDe","portfolioProjectInfoMessagesDe","portfolioSmallCheckoutMessagesDe","projectGridCardMessagesDe","comparisonMessagesDe","ctaMessagesDe","customerCardMessagesDe","customerQuoteCardMessagesDe","eventsMessagesDe","glossaryMessagesDe","projectFactsMessagesDe","projectsMapMessagesDe","shopCheckoutMessagesDe","textCarouselMessagesDe","timelineMessagesDe","messagesEn","unitMessagesEn","rootMessagesEn","creditsAvailableBadgeMessagesEn","eventCardMessagesEn","portfolioDocumentsDownloadListMessagesEn","portfolioProjectInfoMessagesEn","portfolioSmallCheckoutMessagesEn","projectGridCardMessagesEn","comparisonMessagesEn","ctaMessagesEn","customerCardMessagesEn","customerQuoteCardMessagesEn","eventsMessagesEn","glossaryMessagesEn","projectFactsMessagesEn","projectsMapMessagesEn","shopCheckoutMessagesEn","textCarouselMessagesEn","timelineMessagesEn","messages","en","de","getMessages","messagesLocale","Object","keys","AnalyticsContext","createContext","createIntlCache","intlFactory","createIntl","IntlContext","ContextProvider","children","analyticsFunction","fetcher","resource","init","errorData","message","Error","t1","t2","body","SWRConfig","Global","styles","Provider","StrapiLinkButton","link","_ref$component","component","buttonProps","_objectWithoutPropertiesLoose","_excluded","adBlockDetected","useDetectAdBlock","useContext","buttonUrl","intercomLauncher","props","action","buttonText","Button","Link","Hero","minHeight","backgroundColor","overflowX","Gradient","shape","bottom","borderTopRightRadius","right","transform","subTitle","color","mx","button","additionalButtons","IconGrid","columns","iconsWithTextAndButton","flexDirection","Spacer","h","SimpleGrid","rowGap","iconWithTextAndButton","margin","Heading","mb","Text","LinkedInIcon","viewBox","xmlns","clipPath","d","StrapiLinkButtonWithIcon","getLinkIcon","destination","Globe","rightIcon","ImageGrid","_useToken","useToken","primary50","minChildWidth","flexDir","flexWrap","ImageTextSequence","oneColumnGrid","_useToken2","gray700","background","imageTextRows","imageBox","LeftTextRightCard","_useRouter","useRouter","push","handleCardButtonClick","_slice$card","card","_slice$card5","_slice$card2","_slice$card3","_slice$card4","cardTitle","Grid","templateColumns","templateRows","GridItem","colSpan","rowSpan","pr","checkMarkLabels","BoemlyList","listItems","colorScheme","ArrowRight","PortfolioCard","facts","portfolioNumber","LogoGridWithText","RichText","logos","logo","MapHeroContainer","styled","MapHeroTextContainer","_templateObject2","ShapeContainer","_templateObject3","MapContainer","_templateObject4","MapGradient","_templateObject5","MapHero","belowBreakpoint","maxWidth","mobileMap","convertToKebabCase","str","matches","match","toLowerCase","join","VARIANTS","gray","tagLineColor","textColor","accordionVariant","otherQuestionsBackground","green","white","QAndA","_slice$variant","handleHeroButtonClick","_slice$hero","hero","section","pb","paddingY","maxHeight","paddingTop","paddingRight","overflowY","BoemlyAccordion","rows","questionsAndAnswers","defaultIndex","padding","otherQuestions","HeroCard","QuoteCards","handleHeroCardButtonClick","paddingBottom","shapes","Shape","radius","cards","QuoteCard","avatar","marginTop","RichTextSection","Steps","_slice$card$shapes","gray900","steps","stepRefs","setStepRefs","stepProgress","setStepProgress","_useWindowScroll","useWindowScroll","offsetY","_useWindowSize","useWindowSize","windowHeight","handleShapesCardButtonClick","createRef","containerOffsetTop","offsetTop","_ref$current","currentItemOffsetTop","step","Center","options","forceBlock","marginBottom","borderLeft","opacity","borderRight","transition","ShapesCard","ShapePosition","shapePositions","topLeft","bottomRight","topRight","bottomLeft","oppositesOfCorners","_oppositesOfCorners","unset","variants","positionIcon","TextCardGrid","primary800","justifyItems","zIndex","boxShadow","borderBottomRightRadius","borderBottomLeftRadius","borderTopLeftRadius","listProps","textSize","buttonIndex","weight","CarouselContainer","CarouselInnerContainer","motion","div","numberOfItems","CardContainer","shuffleElements","slides","slidesCopy","i","j","Math","floor","random","ITEM_GAP","MAX_OFFSET_RIGHT","TextCarousel","_useMeasure","useMeasure","itemRef","itemWidth","_useContext","formatMessage","windowWidth","displaySlides","setDisplaySlides","sliderIndex","setSliderIndex","sliderItemsWidth","offsetLeft","allowScroll","offsetRight","handleSlidesButtonClick","_slice$isShuffled","isShuffled","animate","duration","ease","TextCardWithIcon","displayAs","py","px","AnimatePresence","initial","exit","ArrowLeft","TextWithTextCards","handleContactButtonClick","_slice$contact","contact","ContactArea","FORMAT_AS_HECTARE_CONFIG","unit","unitDisplay","maximumFractionDigits","FORMAT_AS_PERCENT_CONFIG","CreditAvailability","CreditsAvailableBadge","_variants","CREDITS_AVAILABLE","NO_CREDITS_AVAILABLE","SOME_CREDITS_AVAILABLE","SOON_CREDITS_AVAILABLE","NextLink","Tag","ProjectGridCard","_project$thumbnail","_project$thumbnail2","_project$thumbnail3","formatNumber","Container","my","friendlyName","area","location","certificationDate","year","Date","getFullYear","creditAvailability","TextWithCard","portfolioProject","_slice$project","cardPosition","ProjectCard","footerSubTitle","footerTitle","columnGap","MEDIUM_TRANSITION_DURATION","LinkCardsGrid","borderStyle","borderWidth","borderColor","transitionDuration","_hover","minWidth","colors","dark","light","SmallHero","gradient","tags","direction","justify","BlogItemContainer","ImageContainer","Blog","formatDate","sortedBlogPosts","blog_posts","sort","a","b","createdAt","getTime","spacingX","spacingY","blogPost","bp","category","teaser","DatePersonPair","date","person","author","ConditionalWrapper","condition","wrapper","ProjectsGrid","filteredProjects","passHref","legacyBehavior","MAPBOX_TOKEN","MapBoxStyle","NEXT_PUBLIC_MAPBOX_TILES_URL","MAPBOX_MAX_ZOOM","mapboxStyle","getFpmProjectsByBbox","bbox","_bbox$split$map","west","south","east","north","fpmResponse","split","Number","mergeProjectData","featureCollection","mergedFeatureCollection","features","feature","_feature$properties","properties","projectPinImage","mapboxgl","accessToken","FALLBACK_BBOX","ProjectsMap","mapContainer","animationIntervalRef","setFeatureCollection","isLoading","setIsLoading","initialBboxRef","_useState3","isMapReady","setIsMapReady","_useState4","setStrapiProjects","isBboxContained","innerBbox","outerBbox","_innerBbox$split$map","innerWest","innerSouth","innerEast","innerNorth","_outerBbox$split$map","outerWest","outerSouth","outerEast","outerNorth","fetchStrapiData","fetchProjectsData","_ref3","_callee2","fpmData","mergedData","_callee2$","_context2","finish","debouncedUpdateBbox","debounce","bounds","getBounds","newBbox","getWest","getSouth","getEast","getNorth","addProjectsLayer","isStyleLoaded","filteredFeatureCollection","isPublic","source","getSource","addSource","cluster","clusterMaxZoom","clusterRadius","addLayer","paint","clearInterval","setInterval","now","pulseFactor","sin","PI","expression","setPaintProperty","layout","fetch","svgText","modifiedSvg","replace","btoa","resolve","reject","onload","onerror","canvas","document","ctx","getContext","drawImage","pngImg","toDataURL","_map$current","_map$current2","addImage","pixelRatio","popup","Popup","closeButton","closeOnClick","className","offset","textContent","head","appendChild","on","getCanvas","coordinates","geometry","_e$features$0$propert","projectDeveloper","point","popupHeight","developer","projectDeveloperRaw","_JSON$parse$name","_JSON$parse","parse","_unused","projectUrl","getBadgeMessage","getBadgeColor","badgeColor","badgeMessage","badge","abs","lngLat","lng","setOffset","setLngLat","setHTML","addTo","_map$current3","_map$current4","queryRenderedFeatures","layers","clusterId","cluster_id","projectSource","getClusterExpansionZoom","err","easeTo","center","setData","initialCenter","initialZoom","defaultCenterCoordinates","defaultZoomLevel","longitude","latitude","LngLatBounds","getCenter","lat","container","maxZoom","addControl","NavigationControl","_map$current5","_bbox$split$map2","fitBounds","_map$current6","cancel","remove","_slice$defaultCenterC","buffer","navigator","geolocation","getCurrentPosition","userLoc","coords","lon","_map$current7","Video","youTubeID","frameBorder","allow","allowFullScreen","FullWidthHighlightQuote","quote","AvatarWithName","avatarWithName","orientation","SliderContainer","SliderInnerContainer","ItemContainer","aspectRatio","ALLOWED_RATIOS","getClosestRatio","ratio","minDiff","posMinDiff","forEach","allowedRatio","FullWidthImageSlider","imageRef","imageWidth","imageCount","noOfLines","fontSize","caption","SideBySideImages","CtaCardType","STATES","paddingTagline","paddingTitle","buttonJustifyContent","textMarginLeft","textMarginRight","centerWithoutImage","centerWithImage","taglineColor","titleColor","subTitleColor","getTypeOfCard","ctaCard","CenterWithImage","CenterWithoutImage","Left","Right","Cta","ctaCards","ctaCardType","elevation","backgroundShape","marginLeft","marginRight","paddingX","fontFamily","fontWeight","lineHeight","CtaOnly","Glossary","_useCopyToClipboard","useCopyToClipboard","copyToClipboard","grouped","copiedItem","setCopiedItem","glossary_items","localeCompare","curr","_curr$attributes$titl","at","toUpperCase","handleAnchorClick","_window","currentUrl","entries","letter","items","placeSelf","spacing","wordBreak","scrollMarginTop","Check","LinkIcon","_onClick","Divider","MINIMUM_CONTRIBUTION_VALUE_IN_MONEY","MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY","ShopCheckout","validateForm","values","errors","contributionValue","currency","onSubmit","checkoutURL","URL","currentURL","searchParams","append","batchId","pricePerKg","toString","pathname","couponId","shadow","Badge","textTransform","whiteSpace","checkoutText","LabelNumberPair","label","number","Formik","initialValues","initialContributionValue","validate","touched","handleSubmit","summaryPrice","Form","Field","_ref4","field","BoemlyFormControl","inputProps","rightAddonsOrElements","InputRightAddon","isInvalid","errorMessage","minimumFractionDigits","taxInPercent","factKeyColor","factValueColor","Facts","fact","sortByCreatedAt","BlogCards","mobile","blogPostsToDisplay","_slice$blogPostCatego","blogPostCategory","_blogPost$attributes$","_slice$blogPostCatego2","_blogPost$attributes$2","calculateTaxIncludedValue","parseInt","contributionValueCurrency","isNaN","SmallCheckout","subtitle","contributionValueTons","setValues","_ref5","onChange","target","valueAsNumber","_ref6","convertAreaM2ToHa","areaInM2","convertCo2AmountKgToTons","amount","getTimeSpanInYears","start","end","monthsDifference","getMonth","yearsDifference","ProjectInfo","subtitles","LabelTextPair","areaSubtitle","locationSubtitle","month","startSubtitle","years","timeSpanSubtitle","projectType","verificationStandard","projectTypeSubtitle","projectDeveloperSubtitle","defaultMessage","verificationStandardSubtitle","defaultIssuer","logoUrl","averageSellableAmountPerYear","riskBuffer","Tooltip","averageSellableAmountPerYearSubtitle","riskBufferSubtitle","DocumentsDownloadList","documentUrls","documentUrl","FilePdf","DownloadSimple","Contact","border","getFpmProjectById","projectId","ProjectFacts","enhancedProject","setEnhancedProject","fetchCompleteProjectData","completeFpmProject","mergedProject","customTitle","customSubtitle","customButton","contactTitle","contactText","contactButton","contactAvatar","CustomerCard","borderTopRadius","cardImage","pt","customerCardCustomerIndustry","CustomerQuoteCard","customerName","quoteCardCustomerTitle","quoteCardQuote","LogoCard","marginY","CustomerStories","customer_stories","cs","BULLET_POINT_VARIANTS","bulletPointColor","Icon","X","factColor","dividerColor","Comparison","comparisonCards","comparisonCard","factTitle","factSubtitle","lists","list","logoCount","LogoGrid","CarouselMarqueeBannerContent","hasEnoughLogosForLoop","LOOP_ARRAY_LENGTH","logosToRender","from","_useEmblaCarousel","useEmblaCarousel","loop","align","containScroll","dragFree","AutoScroll","playOnInit","speed","stopOnInteraction","stopOnMouseEnter","stopOnFocusIn","emblaRef","renderLogos","CarouselMarqueeBanner","showChild","setShowChild","Timeline","visibleItems","setVisibleItems","showMoreItems","prevVisibleItems","timelineItems","alignContent","gridTemplateColumns","backgroundShapes","m","getCountryFlag","countryCode","char","String","fromCodePoint","charCodeAt","EventType","isSameDate","date1","date2","getDate","MAX_LENGTH","LOCATION_MAX_LENGTH","getEventIcon","eventType","WEBINAR","Webcam","CONFERENCE","Headset","MEET_UP","UsersThree","FOREST_WALK","PersonSimpleWalk","PARTNER_EVENT","Handshake","LUNCH_AND_LEARN","BowlFood","FAIR","ChalkboardTeacher","FESTIVAL","Confetti","ROADSHOW","ProjectorScreenChart","Info","EventCard","_event$location$lengt","_event$location","_event$image","_event$image2","_event$image3","event","isExpanded","setIsExpanded","toggleText","isLocationTooLong","recommended","Star","eventTypes","languages","language","online","Laptop","MapPinLine","CalendarBlank","day","allDay","getUTCHours","minimumIntegerDigits","getUTCMinutes","substring","CaretUp","CaretDown","buttonVariant","speakers","speaker","useEvents","getKey","batchSize","_useSWRInfinite","useSWRInfinite","revalidateFirstPage","revalidateAll","setSize","mutate","count","_data$","meta","pagination","total","isLoadingMore","loadMore","canLoadMore","refetch","UPCOMING_BATCH_SIZE","PAST_BATCH_SIZE","Sort","Events","eventTypeFilter","setEventTypeFilter","languageFilter","setLanguageFilter","NEWEST_FIRST","setSort","allEventTypeOptions","setAllEventTypeOptions","_useState5","allLanguageOptions","setAllLanguageOptions","toISOString","buildEventsUrl","startFilter","OLDEST_FIRST","search","getUpcomingKey","getPastKey","_useEvents","upcomingData","isLoadingUpcoming","isLoadingMoreUpcoming","canLoadMoreUpcoming","loadMoreUpcoming","_useEvents2","pastData","isLoadingPast","isLoadingMorePast","canLoadMorePast","loadMorePast","processEvents","_data$flatMap","_d$body","t","upcomingEvents","pastEvents","fetchAllOptions","events","allEventTypes","allLanguages","json","Set","_event$attributes","add","_event$attributes2","removeFilter","filterType","valueToRemove","upcomingTitle","upcomingDescription","filterSearch","Select","isMultiple","isSearchable","placeholder","searchPlaceholder","selected","option","BoemlyTag","isClosable","singleLanguage","placeItems","pastTitle","pastDescription","SliceRenderer","CustomSlice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,IAAMA,UAAU,GACrBC,OAAO,CAACC,GAAG,CAACC,sBAAsB,IAAI,uBAAuB,CAAA;AAExD,IAAMC,wBAAwB,GAAG,KAAK,CAAA;AACtC,IAAMC,6BAA6B,GAAG,GAAG,CAAA;AAEzC,IAAMC,sBAAsB,GAAG,IAAI;;ACD1C,IAAMC,YAAY,gBAAGC,UAAU,cAC7BC,KAAK,CAACC,MAAM,CAAC;EACXC,OAAO,EAAKX,UAAU,GAAM,MAAA;AAC5BY,EAAAA,OAAO,EAAE;AAAE,IAAA,wBAAwB,EAAE,IAAA;GAAM;AAC3CC,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAGC,CAAC,EAAA;AAAA,IAAA,OAAKC,EAAE,CAACC,SAAS,CAACF,CAAC,EAAE;AAAEG,MAAAA,gBAAgB,EAAE,IAAA;KAAM,CAAC,CAAA;AAAA,GAAA;AACpEC,EAAAA,OAAO,EAAE,KAAA;AACV,CAAA,CAAC,EACF;EACEC,GAAG,eACDnB,UAAU,CAACoB,QAAQ,CAAC,WAAW,CAAC,iBAAIpB,UAAU,CAACoB,QAAQ,CAAC,WAAW,CAAC,GAChE,CAAC,GACD,EAAE,GAAG,EAAE,GAAG,IAAI;AACrB,CAAA,CACF;;ACHD,IAAMC,qBAAqB,gBAAA,YAAA;AAAA,EAAA,IAAAC,IAAA,gBAAAC,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAAC,OAC5BC,CAAAA,IAAY,EACZC,OAAiB,EAAAC,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,EAAAC,aAAA,EAAAC,OAAA,EAAAC,YAAA,EAAAC,WAAA,EAAAC,QAAA,EAAAC,cAAA,CAAA;AAAA,IAAA,OAAAZ,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;UAAAX,KAAA,GAAAD,KAAA,KACW,KAAA,CAAA,GAAA;AAAEG,YAAAA,OAAO,EAAE,EAAE;AAAA,WAAE,GAAAH,KAAA,EAAAE,aAAA,GAAAD,KAAA,CAAzCE,OAAO,EAAPA,OAAO,GAAAD,aAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,aAAA,CAAA;AAERE,UAAAA,YAAY,GAAGL,OAAO,CAACc,GAAG,CAAC,UAACC,MAAM,EAAA;AAAA,YAAA,OACtCpC,YAAY,CACTqC,GAAG,CAAoCjB,IAAI,EAAE;AAC5CkB,cAAAA,MAAM,EAAE;AACNF,gBAAAA,MAAM,EAAEA,MAAM;AACd,gBAAA,sBAAsB,EAAEvC,wBAAwB;AAChD4B,gBAAAA,OAAO,EAAPA,OAAAA;AACD,eAAA;aACF,CAAC,CACDc,IAAI,CAAC,UAACC,QAAQ,EAAA;cAAA,OACbA,QAAQ,CAACC,IAAI,CAACA,IAAI,CAACN,GAAG,CAAC,UAACO,IAAI,EAAA;gBAAA,OAAM;AAChCC,kBAAAA,IAAI,EAAED,IAAI,CAACE,UAAU,CAACD,IAAI;AAC1BP,kBAAAA,MAAM,EAAEM,IAAI,CAACE,UAAU,CAACR,MAAAA;iBACzB,CAAA;AAAA,eAAC,CAAC,CAAA;AAAA,aAAA,CAAA;AAEL;aACM,OAAA,CAAA,CAAC,UAACS,KAAK,EAAI;AAAA,cAAA,IAAAC,eAAA,CAAA;AACf,cAAA,IAAI,CAAAA,CAAAA,eAAA,GAAAD,KAAK,CAACL,QAAQ,KAAdM,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAgBC,MAAM,MAAK,GAAG,EAAE;AAClC,gBAAA,OAAO,EAAE,CAAA;AACX,eAAA;AACA,cAAA,MAAMF,KAAK,CAAA;AACb,aAAC,CAAC,CAAA;WACL,CAAA,CAAA;AAAAb,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAEyBc,OAAO,CAACC,GAAG,CAACvB,YAAY,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAA7CC,WAAW,GAAAK,QAAA,CAAAkB,IAAA,CAAA;AAEbtB,UAAAA,QAAQ,GAAGD,WAAW,CAACwB,IAAI,EAAE,CAEjC;AACMtB,UAAAA,cAAc,GAAGR,OAAO,CAAC+B,OAAO,CAAC,UAAChB,MAAM,EAAI;AAChD,YAAA,OAAOR,QAAQ,CACZyB,MAAM,CAAC,UAACV,IAAI,EAAA;AAAA,cAAA,OAAKA,IAAI,CAACP,MAAM,KAAKrC,sBAAsB,CAAA;AAAA,aAAA,CAAC,CACxDsD,MAAM,CACL,UAACC,YAAY,EAAA;AAAA,cAAA,OACX,CAAC1B,QAAQ,CAAC2B,IAAI,CACZ,UAACZ,IAAI,EAAA;AAAA,gBAAA,OAAKA,IAAI,CAACA,IAAI,KAAKW,YAAY,CAACX,IAAI,IAAIA,IAAI,CAACP,MAAM,KAAKA,MAAM,CAAA;eACpE,CAAA,CAAA;AAAA,aAAA,CACJ,CACAD,GAAG,CAAC,UAACmB,YAAY,EAAA;cAAA,OAAAE,QAAA,KAAWF,YAAY,EAAA;AAAElB,gBAAAA,MAAM,EAANA,MAAAA;AAAM,eAAA,CAAA,CAAA;aAAG,CAAC,CAAC;AAC1D,WAAC,CAAC,CAAA;UAAA,OAAAJ,QAAA,CAAAyB,MAAA,CAAA,QAAA,EAAA,EAAA,CAAAC,MAAA,CAES9B,QAAQ,EAAKC,cAAc,CAAA,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAG,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;GACvC,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA/CKL,qBAAqBA,CAAA8C,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAA/C,IAAA,CAAAgD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA+C1B;;AC7DCtE,OAAO,CAACC,GAAG,CAACsE,mBAAmB,IAAI,wBAAuB;AACrD,IAAMC,WAAW,GACtBxE,OAAO,CAACC,GAAG,CAACwE,uBAAuB,IAAI,+BAA+B,CAAA;AACjE,IAAMC,OAAO,GAAG,qBAAqB;;ACC5C,IAAMC,SAAS,gBAAGpE,UAAU,cAC1BC,KAAK,CAACC,MAAM,CAAC;EACXC,OAAO,EAAK8D,WAAW,GAAK,KAAA;AAC5B5D,EAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAGC,CAAC,EAAA;AAAA,IAAA,OAAKC,EAAE,CAACC,SAAS,CAACF,CAAC,EAAE;AAAEG,MAAAA,gBAAgB,EAAE,IAAA;KAAM,CAAC,CAAA;AAAA,GAAA;AACpEC,EAAAA,OAAO,EAAE,IAAA;AACV,CAAA,CAAC,EACF;EACEC,GAAG,eACDsD,WAAW,CAACrD,QAAQ,CAAC,WAAW,CAAC,iBAAIqD,WAAW,CAACrD,QAAQ,CAAC,WAAW,CAAC,GAClE,CAAC,GACD,EAAE,GAAG,EAAE,GAAG,IAAI;AACrB,CAAA,CACF;;ACVD,IAAMyD,eAAe,GAAG,IAAI,CAAA;AAE5B,IAAMC,iBAAiB,gBAAA,YAAA;AAAA,EAAA,IAAAxD,IAAA,gBAAAC,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAAC,OACxBiB,CAAAA,MAAiB,EACjBoC,MAAA,EACAC,OAAmB,EAAA;AAAA,IAAA,IAAAC,KAAA,EAAAC,YAAA,EAAAC,cAAA,EAAAC,kBAAA,EAAAC,uBAAA,EAAAC,qBAAA,EAAAC,EAAA,EAAAC,IAAA,EAAAC,OAAA,CAAA;AAAA,IAAA,OAAAjE,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAFnBE,MAAiB,KAAA,KAAA,CAAA,EAAA;AAAjBA,YAAAA,MAAiB,GAAA,IAAI,CAAA;AAAA,WAAA;AAAA,UAAA,IACrBoC,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,YAAAA,MAAA,GAAiB1E,6BAA6B,CAAA;AAAA,WAAA;AAAA,UAAA,IAC9C2E,OAAmB,KAAA,KAAA,CAAA,EAAA;AAAnBA,YAAAA,OAAmB,GAAA,KAAK,CAAA;AAAA,WAAA;AAElBC,UAAAA,KAAK,GAAGD,OAAO,GAAG,KAAK,GAAGU,SAAS,CAAA;AACnCR,UAAAA,YAAY,GAAwB;AACxCH,YAAAA,MAAM,EAANA,MAAM;AACNpC,YAAAA,MAAM,EAANA,MAAM;AACN,YAAA,sBAAsB,EAAEvC,wBAAwB;AAChDkD,YAAAA,MAAM,EAAE0B,OAAO,GAAG,OAAO,GAAG,WAAA;WAC7B,CAAA;AAEKG,UAAAA,cAAc,GAAG,IAAIQ,GAAG,EAAsC,CAAA;AAAApD,UAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;UAAA,OAGHc,OAAO,CAACC,GAAG,CAAC,CACzEjD,YAAY,CAACqC,GAAG,CACd,WAAW,EACX;AAAEC,YAAAA,MAAM,EAAEqC,YAAY;AAAED,YAAAA,KAAK,EAALA,KAAAA;AAAK,WAAE,CAChC,EACD1E,YAAY,CAACqC,GAAG,CACd,WAAW,EACX;YACEC,MAAM,EAAAkB,QAAA,CAAA,EAAA,EAAOmB,YAAY,EAAA;AAAEvC,cAAAA,MAAM,EAAEkC,eAAAA;aAAiB,CAAA;AACpDI,YAAAA,KAAK,EAALA,KAAAA;WACD,CACF,CACF,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAAAG,kBAAA,GAAA7C,QAAA,CAAAkB,IAAA,CAAA;AAZK4B,UAAAA,uBAAuB,GAAAD,kBAAA,CAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,qBAAqB,GAAAF,kBAAA,CAAA,CAAA,CAAA,CAAA;AAcrD;UACA,KAAAG,EAAA,GAAAC,CAAAA,EAAAA,IAAA,GAAAvB,EAAAA,CAAAA,MAAA,CACKqB,qBAAqB,CAACtC,IAAI,CAACA,IAAI,EAC/BqC,uBAAuB,CAACrC,IAAI,CAACA,IAAI,CAAAuC,EAAAA,EAAA,GAAAC,IAAA,CAAAI,MAAA,EAAAL,EAAA,EACnC,EAAA;YAHQE,OAAO,GAAAD,IAAA,CAAAD,EAAA,CAAA,CAAA;AAIhB,YAAA,IAAIE,OAAO,CAACtC,UAAU,CAAC0C,YAAY,EAAE;cACnCV,cAAc,CAACW,GAAG,CAACL,OAAO,CAACtC,UAAU,CAAC0C,YAAY,EAAEJ,OAAO,CAAC,CAAA;AAC9D,aAAA;AACF,WAAA;AAAClD,UAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,EAAA;AAAAF,UAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;UAAAD,QAAA,CAAAwD,EAAA,GAAAxD,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAEDyD,OAAO,CAACC,IAAI,CAAC,8BAA8B,EAAA1D,QAAA,CAAAwD,EAAO,CAAC,CAAA;AACnD;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,OAAAxD,QAAA,CAAAyB,MAAA,CAAA,QAAA,EAGKmB,cAAc,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAA5C,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;GACtB,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA7CKoD,iBAAiBA,CAAAX,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAA/C,IAAA,CAAAgD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA6CtB,EAAA;;AChDD,IAAM2B,oBAAoB,gBAAA,YAAA;AAAA,EAAA,IAAA5E,IAAA,gBAAAC,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAC3BiB,MAAA,EACAqC,OAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,EAAAG,kBAAA,EAAAe,WAAA,EAAAhB,cAAA,CAAA;AAAA,IAAA,OAAA3D,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IADAE,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,YAAAA,MAAA,GAAiB,IAAI,CAAA;AAAA,WAAA;AAAA,UAAA,IACrBqC,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,YAAAA,OAAA,GAAmB,KAAK,CAAA;AAAA,WAAA;AAElBC,UAAAA,KAAK,GAAGD,OAAO,GAAG,KAAK,GAAGU,SAAS,CAAA;AAAAnD,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;UAAA,OAEac,OAAO,CAACC,GAAG,CAAC,CAChEoB,SAAS,CAAChC,GAAG,CAAe,kBAAkB,EAAE;AAAEqC,YAAAA,KAAK,EAALA,KAAAA;WAAO,CAAC,EAC1DH,iBAAiB,CAACnC,MAAM,EAAEtC,6BAA6B,EAAE2E,OAAO,CAAC,CAClE,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAAAI,kBAAA,GAAA7C,QAAA,CAAAkB,IAAA,CAAA;UAHa0C,WAAW,GAAAf,kBAAA,CAAA,CAAA,CAAA,CAAjBpC,IAAI,CAAA;AAAiBmC,UAAAA,cAAc,GAAAC,kBAAA,CAAA,CAAA,CAAA,CAAA;UAAA,OAAA7C,QAAA,CAAAyB,MAAA,CAKrCmC,QAAAA,EAAAA,WAAW,CAACzD,GAAG,CAAC,UAAC0D,UAAsB,EAAI;AAAA,YAAA,IAAAC,qBAAA,CAAA;YAChD,IAAMC,aAAa,GAAGnB,cAAc,CAACvC,GAAG,CAACwD,UAAU,CAACG,EAAE,CAAC,CAAA;YAEvD,IAAMC,QAAQ,GAAqBJ,UAAU,CAAA;AAE7C,YAAA,IAAIE,aAAa,IAAbA,IAAAA,IAAAA,aAAa,CAAEnD,UAAU,CAACD,IAAI,EAAE;AAClCsD,cAAAA,QAAQ,CAACtD,IAAI,GAAGoD,aAAa,CAACnD,UAAU,CAACD,IAAI,CAAA;AAC/C,aAAA;AACA,YAAA,IAAIoD,aAAa,IAAbA,IAAAA,IAAAA,aAAa,CAAEnD,UAAU,CAACsD,SAAS,EAAE;cACvCD,QAAQ,CAACC,SAAS,GAAGH,aAAa,oBAAbA,aAAa,CAAEnD,UAAU,CAACsD,SAAS,CAAA;AAC1D,aAAA;AACA,YAAA,IAAIH,aAAa,IAAAD,IAAAA,IAAAA,CAAAA,qBAAA,GAAbC,aAAa,CAAEnD,UAAU,CAACuD,SAAS,CAAC1D,IAAI,KAAxCqD,IAAAA,IAAAA,qBAAA,CAA0ClD,UAAU,CAACwD,IAAI,EAAE;AAC7DH,cAAAA,QAAQ,CAACI,aAAa,GACpBN,aAAa,CAACnD,UAAU,CAACuD,SAAS,CAAC1D,IAAI,CAACG,UAAU,CAACwD,IAAI,CAAA;AAC3D,aAAA;AAEA,YAAA,OAAOH,QAAQ,CAAA;AACjB,WAAC,CAAC,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAjE,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;GACH,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA7BKwE,oBAAoBA,CAAA/B,EAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAA9C,IAAA,CAAAgD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA6BzB;;AClBD,IAAMsC,uBAAuB,gBAAA,YAAA;AAAA,EAAA,IAAA/E,KAAA,gBAAAP,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAAC,OAI9BC,CAAAA,IAAY,EACZmF,GAAM,EAAAxF,IAAA,EAAA;IAAA,IAAAyF,WAAA,EAAApE,MAAA,EAAAqE,YAAA,EAAAhC,OAAA,EAAAiC,YAAA,EAAAjF,OAAA,EAAAiD,KAAA,EAAAiC,YAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,OAAA,CAAA;AAAA,IAAA,OAAA7F,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAAsE,UAAAA,WAAA,GAAAzF,IAAA,CACJqB,MAAM,EAANA,MAAM,GAAAoE,WAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAAA,WAAA,EAAAC,YAAA,GAAA1F,IAAA,CAAE0D,OAAO,EAAPA,OAAO,GAAAgC,YAAA,cAAG,KAAK,GAAAA,YAAA,EAAAC,YAAA,GAAA3F,IAAA,CAAEU,OAAO,EAAPA,OAAO,GAAAiF,YAAA,cAAG,EAAE,GAAAA,YAAA,CAAA;AAExChC,UAAAA,KAAK,GAAGD,OAAO,GAAG,KAAK,GAAGU,SAAS,CAAA;AAEnCwB,UAAAA,YAAY,GAAG;AACnBnC,YAAAA,MAAM,EAAE1E,6BAA6B;AACrC,YAAA,sBAAsB,EAAED,wBAAwB;AAChD4B,YAAAA,OAAO,EAAPA,OAAO;AACPsB,YAAAA,MAAM,EAAE0B,OAAO,GAAG,OAAO,GAAG,WAAA;WAC7B,CAAA;AAAAzC,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAEiClC,YAAY,CAC3CqC,GAAG,CAAoCjB,IAAI,EAAE;YAC5CkB,MAAM,EAAAkB,QAAA,CAAA,EAAA,EACDmD,YAAY,EAAA;AACfvE,cAAAA,MAAM,EAANA,MAAAA;aACD,CAAA;AACDsC,YAAAA,KAAK,EAALA,KAAAA;WACD,CAAC,CACDnC,IAAI,CAAC,UAACC,QAAQ,EAAA;AAAA,YAAA,OAAKA,QAAQ,CAACC,IAAI,CAACA,IAAI,CAAA;AAAA,WAAA,CAAA;AACtC;WACM,OAAA,CAAA,CAAC,UAACI,KAAK,EAAI;AAAA,YAAA,IAAAC,eAAA,CAAA;AACf,YAAA,IAAI,CAAAA,CAAAA,eAAA,GAAAD,KAAK,CAACL,QAAQ,KAAdM,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAgBC,MAAM,MAAK,GAAG,EAAE;AAClC,cAAA,OAAO,EAAE,CAAA;AACX,aAAA;AACA,YAAA,MAAMF,KAAK,CAAA;AACb,WAAC,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAfE+D,mBAAmB,GAAA5E,QAAA,CAAAkB,IAAA,CAAA;AAAAlB,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAiBQlC,YAAY,CAC1CqC,GAAG,CAAoCjB,IAAI,EAAE;YAC5CkB,MAAM,EAAAkB,QAAA,CAAA,EAAA,EACDmD,YAAY,EAAA;AACfvE,cAAAA,MAAM,EAAErC,sBAAAA;aACT,CAAA;AACD2E,YAAAA,KAAK,EAALA,KAAAA;WACD,CAAC,CACDnC,IAAI,CAAC,UAACC,QAAQ,EAAA;AAAA,YAAA,OAAKA,QAAQ,CAACC,IAAI,CAACA,IAAI,CAAA;AAAA,WAAA,CAAA;AACtC;WACM,OAAA,CAAA,CAAC,UAACI,KAAK,EAAI;AAAA,YAAA,IAAAkE,gBAAA,CAAA;AACf,YAAA,IAAI,CAAAA,CAAAA,gBAAA,GAAAlE,KAAK,CAACL,QAAQ,KAAduE,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAgBhE,MAAM,MAAK,GAAG,EAAE;AAClC,cAAA,OAAO,EAAE,CAAA;AACX,aAAA;AACA,YAAA,MAAMF,KAAK,CAAA;AACb,WAAC,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAfEgE,kBAAkB,GAAA7E,QAAA,CAAAkB,IAAA,CAAA;AAiBlB4D,UAAAA,OAAO,GAAGD,kBAAkB,CAAC1E,GAAG,CAAC,UAAC6E,uBAAuB,EAAI;AACjE,YAAA,IAAMC,eAAe,GAAGL,mBAAmB,CAACM,IAAI,CAC9C,UAACC,SAAS,EAAA;AAAA,cAAA,OACRA,SAAS,CAACvE,UAAU,CAAC2D,GAAG,CAAC,KAAKS,uBAAuB,CAACpE,UAAU,CAAC2D,GAAG,CAAC,CAAA;aACxE,CAAA,CAAA;YAED,OAAOU,eAAe,IAAID,uBAAuB,CAAA;AACnD,WAAC,CAAC,CAAA;AAAA,UAAA,OAAAhF,QAAA,CAAAyB,MAAA,CAAA,QAAA,EAEKqD,OAAO,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAA9E,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;GACf,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA7DKmF,uBAAuBA,CAAA1C,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAAvC,KAAA,CAAAwC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA6D5B;;AC9DD,IAAMoD,mBAAmB,gBAAA,YAAA;AAAA,EAAA,IAAA7F,KAAA,gBAAAP,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAC1BC,IAAY,EAAAL,IAAA,EAAA;AAAA,IAAA,IAAAyF,WAAA,EAAApE,MAAA,EAAAqE,YAAA,EAAAhC,OAAA,EAAAiC,YAAA,EAAAjF,OAAA,EAAAiD,KAAA,EAAApC,MAAA,EAAAE,QAAA,EAAAM,eAAA,CAAA;AAAA,IAAA,OAAA7B,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAAsE,UAAAA,WAAA,GAAAzF,IAAA,CACVqB,MAAM,EAANA,MAAM,GAAAoE,WAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAAA,WAAA,EAAAC,YAAA,GAAA1F,IAAA,CAAE0D,OAAO,EAAPA,OAAO,GAAAgC,YAAA,cAAG,KAAK,GAAAA,YAAA,EAAAC,YAAA,GAAA3F,IAAA,CAAEU,OAAO,EAAPA,OAAO,GAAAiF,YAAA,cAAG,EAAE,GAAAA,YAAA,CAAA;AAExChC,UAAAA,KAAK,GAAGD,OAAO,GAAG,KAAK,GAAGU,SAAS,CAAA;AACnC7C,UAAAA,MAAM,GAAwB;AAClCkC,YAAAA,MAAM,EAAE1E,6BAA6B;AACrCsC,YAAAA,MAAM,EAANA,MAAM;AACN,YAAA,sBAAsB,EAAEvC,wBAAwB;AAChD4B,YAAAA,OAAO,EAAPA,OAAO;AACPsB,YAAAA,MAAM,EAAE0B,OAAO,GAAG,OAAO,GAAG,WAAA;WAC7B,CAAA;AAAAzC,UAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAKkBlC,YAAY,CAACqC,GAAG,CAACjB,IAAI,EAAE;AAAEkB,YAAAA,MAAM,EAANA,MAAM;AAAEoC,YAAAA,KAAK,EAALA,KAAAA;AAAK,WAAE,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAA1DlC,QAAQ,GAAAR,QAAA,CAAAkB,IAAA,CAAA;UAAA,OAAAlB,QAAA,CAAAyB,MAAA,CAAA,QAAA,EACDjB,QAAQ,CAACC,IAAI,CAACA,IAAI,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA;AAAAT,UAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;UAAAD,QAAA,CAAAwD,EAAA,GAAAxD,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,IAAA,EAErBA,QAAA,CAAAwD,EAAA,CAAM6B,YAAY,IAAI,EAAAvE,eAAA,GAAAd,QAAA,CAAAwD,EAAA,CAAMhD,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAdM,eAAA,CAAgBC,MAAM,MAAK,GAAG,CAAA,EAAA;AAAAf,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AAAAF,UAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OAErClC,YAAY,CAACqC,GAAG,CAACjB,IAAI,EAAE;YACtCkB,MAAM,EAAAkB,QAAA,CAAA,EAAA,EAAOlB,MAAM,EAAA;AAAEF,cAAAA,MAAM,EAAErC,sBAAAA;aAAwB,CAAA;AACrD2E,YAAAA,KAAK,EAALA,KAAAA;AACD,WAAA,CAAC,CAAA;AAAA,QAAA,KAAA,EAAA;UAHFlC,QAAQ,GAAAR,QAAA,CAAAkB,IAAA,CAAA;UAAA,OAAAlB,QAAA,CAAAyB,MAAA,CAAA,QAAA,EAKDjB,QAAQ,CAACC,IAAI,CAACA,IAAI,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA;UAAA,MAAAT,QAAA,CAAAwD,EAAA,CAAA;AAAA,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAxD,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;GAK9B,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA/BKiG,mBAAmBA,CAAAxD,EAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAAtC,KAAA,CAAAwC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA+BxB;;AC1CKsD,IAAAA,cAAc,GAAG,SAAjBA,cAAcA,CAClBC,KAAwC,EACxCC,aAOe,EACL;AAAA,EAAA,IARVA,aAOe,KAAA,KAAA,CAAA,EAAA;AAPfA,IAAAA,aAOe,GAAA,QAAQ,CAAA;AAAA,GAAA;EAEvB,IAAAzG,IAAA,GAAcwG,KAAK,CAAC9E,IAAI,CAACG,UAAU,IAAI,EAAE;IAAnC6E,GAAG,GAAA1G,IAAA,CAAH0G,GAAG,CAAA;AACT,EAAA,IAAID,aAAa,KAAK,QAAQ,IAAID,KAAK,CAAC9E,IAAI,CAACG,UAAU,CAAC8E,GAAG,KAAK,MAAM,EAAE;AAAA,IAAA,IAAAC,qBAAA,CAAA;AACtEF,IAAAA,GAAG,GAAG,CAAAE,CAAAA,qBAAA,GAAAJ,KAAK,CAAC9E,IAAI,CAACG,UAAU,CAACgF,OAAO,CAACJ,aAAa,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAA5CG,qBAAA,CAA8CF,GAAG,KAAIA,GAAG,CAAA;AAChE,GAAA;EACA,IAAIA,GAAG,KAAKA,GAAG,CAACI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAIJ,GAAG,CAACI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1E,IAAA,OAAOJ,GAAG,CAAA;AACZ,GAAA;AACA,EAAA,OAAA,EAAA,IACEhI,UAAU,CAACoB,QAAQ,CAAC,WAAW,CAAC,IAAIpB,UAAU,CAACoB,QAAQ,CAAC,WAAW,CAAC,GAChEpB,UAAU,GACV,EACN,IAAGgI,GAAG,CAAA;AACR;;AC5BO,IAAMK,mBAAmB,GAC9B,4DAA4D,CAAA;AACvD,IAAMC,iBAAiB,GAAG,aAAa;;ACFvC,IAAMC,0BAA0B,GAAG,CACxC,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,CAC5B,CAAA;AACM,IAAMC,0BAA0B,GAAG,CACxC,eAAe,EACf,qBAAqB,CACtB,CAAA;AACM,IAAMC,sBAAsB,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;AACvE,IAAMC,4BAA4B,GAAG,CAAC,2BAA2B,CAAC,CAAA;AAClE,IAAMC,oBAAoB,GAAG,CAClC,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,CAC1B;;ACHD,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAgCA,CACpCC,OAA8B,EAC9BC,MAAiC,EACjCC,IAAiC,EACjCC,IAAmC,EACnCC,QAA4B,EACL;AAAA,EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAA/H,IAAA,EAAAgI,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAA/H,KAAA,EAAAgI,uBAAA,EAAAC,uBAAA,EAAAC,sBAAA,CAAA;EACvB,IAAMC,iBAAiB,GAAG,CAAAf,qBAAA,GAAAH,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,KAAxBhB,IAAAA,IAAAA,qBAAA,CAA0BiB,UAAU,GAC1DtC,cAAc,CAAA,CAAAsB,sBAAA,GAAA,CAAAC,sBAAA,GACZL,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,qBAAxBd,sBAAA,CAA0Be,UAAU,CAACrC,KAAK,KAAA,IAAA,GAAAqB,sBAAA,GAAAE,CAAAA,qBAAA,GACxCP,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAArCd,qBAAA,CAAuCvB,KAAK,EAC9C,OAAO,CACR,GACDO,mBAAmB,CAAA;AAEvB,EAAA,IAAM+B,iBAAiB,GAAA,CAAA9I,IAAA,GAAA,CAAAgI,sBAAA,GAAAC,CAAAA,sBAAA,GACrBR,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxBX,sBAAA,CAA0Ba,iBAAiB,KAAAd,IAAAA,GAAAA,sBAAA,GAAAE,CAAAA,sBAAA,GAC3CV,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1BV,sBAAA,CAA4BY,iBAAiB,KAAA9I,IAAAA,GAAAA,IAAA,GAC7C,EAAE,CAAA;EAEJ,IAAM+I,UAAU,GAAGtB,IAAI,CAAC5F,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OACnD9B,sBAAsB,CAACrH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACnD,CAAA,CAAA;EACD,IAAMC,cAAc,GAAG1B,IAAI,CAAC5F,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OACvD5B,oBAAoB,CAACvH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACjD,CAAA,CAAA;EAED,OAAAzG,QAAA,KACKgF,IAAI,EAAA;AACP;AACAE,IAAAA,QAAQ,EAAEwB,cAAc,GAAGxB,QAAQ,GAAG,EAAE;AACxC;AACA9F,IAAAA,UAAU,EAAAY,QAAA,CAAA,EAAA,EACLgF,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAE5F,UAAU,EAAA;AACnB+G,MAAAA,QAAQ,EAAE,CAAAnB,IAAI,IAAAU,IAAAA,IAAAA,CAAAA,gBAAA,GAAJV,IAAI,CAAE5F,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAhBsG,gBAAA,CAAkBS,QAAQ,KAAIpB,MAAM,CAAC3F,UAAU,CAAC+G,QAAAA;KAC3D,CAAA;AACD;AACAQ,IAAAA,UAAU,EAAE;AACVC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,KAAK,EAAE,OAAA;KACR;IACDC,cAAc,EAAE/B,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACC,QAAQ,IAAI,EAAE;IACvDC,aAAa,EAAElC,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACG,OAAO,IAAI,EAAE;IACrDC,WAAW,EAAEpC,MAAM,CAAC3F,UAAU,CAACgI,MAAM,CAACC,KAAK,IAAI,EAAE;AACjDlB,IAAAA,QAAQ,EAAE;MACRmB,KAAK,EAAA,CAAA3B,sBAAA,GAAAC,CAAAA,sBAAA,GACHZ,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxBP,sBAAA,CAA0B0B,KAAK,KAAA3B,IAAAA,GAAAA,sBAAA,GAAIZ,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACmB,KAAK;MACrEC,WAAW,EAAA,CAAA1B,sBAAA,GAAAC,CAAAA,sBAAA,GACTd,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxBL,sBAAA,CAA0ByB,WAAW,KAAA1B,IAAAA,GAAAA,sBAAA,GACrCd,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACoB,WAAW;AACxCnB,MAAAA,UAAU,EAAE;AACVnC,QAAAA,GAAG,EAAEiC,iBAAiB;AACtBsB,QAAAA,GAAG,GAAAzJ,KAAA,GAAA,CAAAgI,uBAAA,GAAAC,CAAAA,uBAAA,GACDhB,IAAI,CAAC5F,UAAU,CAAC+G,QAAQ,KAAAH,IAAAA,IAAAA,CAAAA,uBAAA,GAAxBA,uBAAA,CAA0BI,UAAU,KAApCJ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,uBAAA,CAAsCwB,GAAG,YAAAzB,uBAAA,GAAA,CAAAE,sBAAA,GACzClB,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAArCH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuCuB,GAAG,KAAA,IAAA,GAAAzJ,KAAA,GAC1CwG,iBAAAA;OACH;AACDkD,MAAAA,eAAe,EAAE1C,MAAM,CAAC3F,UAAU,CAACqI,eAAe;MAClDC,OAAO,EAAE5D,cAAc,CAACiB,MAAM,CAAC3F,UAAU,CAACsI,OAAO,EAAE,WAAW,CAAC;AAC/DrB,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD;AACDE,IAAAA,MAAM,EAAEvB,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAE5F,UAAU,CAACmH,MAAM;AAC/BoB,IAAAA,SAAS,EAAErB,UAAU,GAAGrB,IAAI,GAAG,EAAE;AACjC2C,IAAAA,MAAM,EAAE7C,MAAM,CAAC3F,UAAU,CAACwI,MAAM;AAChCC,IAAAA,SAAS,EAAE,CAAA7C,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAE5F,UAAU,CAACyI,SAAS,KAAI9C,MAAM,CAAC3F,UAAU,CAACyI,SAAS;AACpEC,IAAAA,eAAe,EAAE,EAAE;AACnB7G,IAAAA,OAAO,EAAE,CAAC,CAAC6D,OAAO,CAAC7D,OAAO;IAC1B8G,gBAAgB,EAAEjD,OAAO,CAAClG,MAAM,KAAKoG,IAAI,CAAC5F,UAAU,CAACR,MAAAA;AAAM,GAAA,CAAA,CAAA;AAE/D;;ACzEA,IAAMoJ,qCAAqC,GAAG,SAAxCA,qCAAqCA,CACzClD,OAA8B,EAC9BC,MAAiC,EACjCkD,aAA+C,EAC/CH,eAAmD,EACvB;AAAA,EAAA,IAAAI,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAA9C,qBAAA,EAAA/H,IAAA,EAAA8K,sBAAA,EAAAC,sBAAA,EAAA7C,sBAAA,EAAA8C,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,uBAAA,EAAA5K,KAAA,EAAA6K,uBAAA,EAAAC,uBAAA,EAAA5C,sBAAA,CAAA;EAC5B,IAAMC,iBAAiB,GAAG,CAAAgC,qBAAA,GAAAD,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,KAAjC+B,IAAAA,IAAAA,qBAAA,CAAmC9B,UAAU,GACnEtC,cAAc,CAAA,CAAAqE,sBAAA,GAAA,CAAAC,sBAAA,GACZH,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,qBAAjCiC,sBAAA,CAAmChC,UAAU,CAACrC,KAAK,KAAA,IAAA,GAAAoE,sBAAA,GAAA7C,CAAAA,qBAAA,GACjDP,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAArCd,qBAAA,CAAuCvB,KAAK,EAC9C,OAAO,CACR,GACDO,mBAAmB,CAAA;AAEvB,EAAA,IAAM+B,iBAAiB,GAAA,CAAA9I,IAAA,GAAA,CAAA8K,sBAAA,GAAAC,CAAAA,sBAAA,GACrBL,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCmC,sBAAA,CAAmCjC,iBAAiB,KAAAgC,IAAAA,GAAAA,sBAAA,GAAA5C,CAAAA,sBAAA,GACpDV,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1BV,sBAAA,CAA4BY,iBAAiB,KAAA9I,IAAAA,GAAAA,IAAA,GAC7C,EAAE,CAAA;EAEJ,IAAMuL,qBAAqB,GAAGb,aAAa,CAAC7I,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OACvE7B,4BAA4B,CAACtH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACzD,CAAA,CAAA;EAED,OAAAzG,QAAA,KACKiI,aAAa,EAAA;AAChB;AACA/C,IAAAA,QAAQ,EAAE,EAAE;AACZ9F,IAAAA,UAAU,EAAAY,QAAA,CAAA,EAAA,EACLiI,aAAa,IAAbA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAE7I,UAAU,EAAA;AAC5B+G,MAAAA,QAAQ,EACN,CAAA8B,aAAa,IAAAM,IAAAA,IAAAA,CAAAA,sBAAA,GAAbN,aAAa,CAAE7I,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAzBmJ,sBAAA,CAA2BpC,QAAQ,KAAIpB,MAAM,CAAC3F,UAAU,CAAC+G,QAAAA;KAC5D,CAAA;AACD;AACAQ,IAAAA,UAAU,EAAE;AACVC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,KAAK,EAAE,OAAA;KACR;IACDC,cAAc,EAAE/B,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACC,QAAQ,IAAI,EAAE;IACvDC,aAAa,EAAElC,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACG,OAAO,IAAI,EAAE;IACrDC,WAAW,EAAEpC,MAAM,CAAC3F,UAAU,CAACgI,MAAM,CAACC,KAAK,IAAI,EAAE;AACjDlB,IAAAA,QAAQ,EAAE;MACRmB,KAAK,EAAA,CAAAkB,sBAAA,GAAAC,CAAAA,sBAAA,GACHR,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCsC,sBAAA,CAAmCnB,KAAK,KAAAkB,IAAAA,GAAAA,sBAAA,GACxCzD,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACmB,KAAK;MAClCC,WAAW,EAAA,CAAAmB,sBAAA,GAAAC,CAAAA,uBAAA,GACTV,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCwC,uBAAA,CAAmCpB,WAAW,KAAAmB,IAAAA,GAAAA,sBAAA,GAC9C3D,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACoB,WAAW;AACxCnB,MAAAA,UAAU,EAAE;AACVnC,QAAAA,GAAG,EAAEiC,iBAAiB;AACtBsB,QAAAA,GAAG,GAAAzJ,KAAA,GAAA,CAAA6K,uBAAA,GAAAC,CAAAA,uBAAA,GACDZ,aAAa,CAAC7I,UAAU,CAAC+G,QAAQ,KAAA0C,IAAAA,IAAAA,CAAAA,uBAAA,GAAjCA,uBAAA,CAAmCzC,UAAU,KAA7CyC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,uBAAA,CAA+CrB,GAAG,YAAAoB,uBAAA,GAAA,CAAA3C,sBAAA,GAClDlB,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAArCH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuCuB,GAAG,KAAA,IAAA,GAAAzJ,KAAA,GAC1CwG,iBAAAA;OACH;AACDkD,MAAAA,eAAe,EAAE1C,MAAM,CAAC3F,UAAU,CAACqI,eAAe;MAClDC,OAAO,EAAE5D,cAAc,CAACiB,MAAM,CAAC3F,UAAU,CAACsI,OAAO,EAAE,WAAW,CAAC;AAC/DrB,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD;AACDE,IAAAA,MAAM,EAAE0B,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAE7I,UAAU,CAACmH,MAAM;AACxCuB,IAAAA,eAAe,EAAEgB,qBAAqB,GAAGhB,eAAe,GAAG,EAAE;AAC7DF,IAAAA,MAAM,EAAE7C,MAAM,CAAC3F,UAAU,CAACwI,MAAM;AAChCC,IAAAA,SAAS,EACP,CAAAI,aAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAE7I,UAAU,CAACyI,SAAS,KAAI9C,MAAM,CAAC3F,UAAU,CAACyI,SAAS;AACpEF,IAAAA,SAAS,EAAE,EAAE;AACb1G,IAAAA,OAAO,EAAE,CAAC,CAAC6D,OAAO,CAAC7D,OAAO;IAC1B8G,gBAAgB,EAAEjD,OAAO,CAAClG,MAAM,KAAKqJ,aAAa,CAAC7I,UAAU,CAACR,MAAAA;AAAM,GAAA,CAAA,CAAA;AAExE;;AC1DA,IAAMmK,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAChCjE,OAA8B,EAC9BC,MAAiC,EACjC7F,IAA6B,EAC7ByI,SAAwC,EACxCG,eAAmD,EACnD5C,QAA4B,EACT;AAAA,EAAA,IAAA8D,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAA5D,qBAAA,EAAA/H,IAAA,EAAA4L,sBAAA,EAAAC,sBAAA,EAAA3D,sBAAA,EAAA4D,sBAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,uBAAA,EAAA7L,KAAA,EAAA8L,uBAAA,EAAAC,uBAAA,EAAA7D,sBAAA,CAAA;EACnB,IAAMC,iBAAiB,GAAG,CAAA8C,qBAAA,GAAA9J,IAAI,CAACE,UAAU,CAAC+G,QAAQ,KAAxB6C,IAAAA,IAAAA,qBAAA,CAA0B5C,UAAU,GAC1DtC,cAAc,CAAA,CAAAmF,sBAAA,GAAA,CAAAC,sBAAA,GACZhK,IAAI,CAACE,UAAU,CAAC+G,QAAQ,qBAAxB+C,sBAAA,CAA0B9C,UAAU,CAACrC,KAAK,KAAA,IAAA,GAAAkF,sBAAA,GAAA3D,CAAAA,qBAAA,GACxCP,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAArCd,qBAAA,CAAuCvB,KAAK,EAC9C,OAAO,CACR,GACDO,mBAAmB,CAAA;AAEvB,EAAA,IAAM+B,iBAAiB,GAAA,CAAA9I,IAAA,GAAA,CAAA4L,sBAAA,GAAAC,CAAAA,sBAAA,GACrBlK,IAAI,CAACE,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxBiD,sBAAA,CAA0B/C,iBAAiB,KAAA8C,IAAAA,GAAAA,sBAAA,GAAA1D,CAAAA,sBAAA,GAC3CV,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1BV,sBAAA,CAA4BY,iBAAiB,KAAA9I,IAAAA,GAAAA,IAAA,GAC7C,EAAE,CAAA;EAEJ,IAAMwM,eAAe,GAAG7K,IAAI,CAACE,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OACxD9B,sBAAsB,CAACrH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACnD,CAAA,CAAA;EACD,IAAMqC,qBAAqB,GAAG5J,IAAI,CAACE,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OAC9D7B,4BAA4B,CAACtH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACzD,CAAA,CAAA;EACD,IAAMC,cAAc,GAAGxH,IAAI,CAACE,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OACvD5B,oBAAoB,CAACvH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACjD,CAAA,CAAA;EAED,OAAAzG,QAAA,KACKd,IAAI,EAAA;AACP;AACAgG,IAAAA,QAAQ,EAAEwB,cAAc,GAAGxB,QAAQ,GAAG,EAAE;AACxC;AACA9F,IAAAA,UAAU,EAAAY,QAAA,CAAA,EAAA,EACLd,IAAI,IAAJA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEE,UAAU,EAAA;MACnB+G,QAAQ,EAAA,CAAAkD,sBAAA,GAAEnK,IAAI,aAAAoK,gBAAA,GAAJpK,IAAI,CAAEE,UAAU,qBAAhBkK,gBAAA,CAAkBnD,QAAQ,KAAAkD,IAAAA,GAAAA,sBAAA,GAAItE,MAAM,CAAC3F,UAAU,CAAC+G,QAAAA;KAC3D,CAAA;AACD;AACAQ,IAAAA,UAAU,EAAE;AACVC,MAAAA,UAAU,EAAEpC,0BAA0B,CAACnH,QAAQ,CAAAkM,CAAAA,qBAAA,GAC7CrK,IAAI,CAACE,UAAU,CAACmH,MAAM,CAAC,CAAC,CAAC,qBAAzBgD,qBAAA,CAA2B9C,WAAW,CACvC;MACDI,KAAK,EAAEpC,0BAA0B,CAACpH,QAAQ,EAAAmM,sBAAA,GACxCtK,IAAI,CAACE,UAAU,CAACmH,MAAM,CAAC,CAAC,CAAC,KAAzBiD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA2B/C,WAAW,CACvC,GACG,MAAM,GACN,OAAA;KACL;IACDK,cAAc,EAAE/B,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACC,QAAQ,IAAI,EAAE;IACvDC,aAAa,EAAElC,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACG,OAAO,IAAI,EAAE;IACrDC,WAAW,EAAEpC,MAAM,CAAC3F,UAAU,CAACgI,MAAM,CAACC,KAAK,IAAI,EAAE;AACjDlB,IAAAA,QAAQ,EAAE;MACRmB,KAAK,EAAA,CAAAmC,sBAAA,GAAAC,CAAAA,sBAAA,GACHxK,IAAI,CAACE,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxBuD,sBAAA,CAA0BpC,KAAK,KAAAmC,IAAAA,GAAAA,sBAAA,GAAI1E,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACmB,KAAK;MACrEC,WAAW,EAAA,CAAAoC,sBAAA,GAAAC,CAAAA,uBAAA,GACT1K,IAAI,CAACE,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxByD,uBAAA,CAA0BrC,WAAW,KAAAoC,IAAAA,GAAAA,sBAAA,GACrC5E,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACoB,WAAW;AACxCnB,MAAAA,UAAU,EAAE;AACVnC,QAAAA,GAAG,EAAEiC,iBAAiB;AACtBsB,QAAAA,GAAG,GAAAzJ,KAAA,GAAA,CAAA8L,uBAAA,GAAAC,CAAAA,uBAAA,GACD5K,IAAI,CAACE,UAAU,CAAC+G,QAAQ,KAAA2D,IAAAA,IAAAA,CAAAA,uBAAA,GAAxBA,uBAAA,CAA0B1D,UAAU,KAApC0D,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,uBAAA,CAAsCtC,GAAG,YAAAqC,uBAAA,GAAA,CAAA5D,sBAAA,GACzClB,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAArCH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuCuB,GAAG,KAAA,IAAA,GAAAzJ,KAAA,GAC1CwG,iBAAAA;OACH;AACDkD,MAAAA,eAAe,EAAE1C,MAAM,CAAC3F,UAAU,CAACqI,eAAe;MAClDC,OAAO,EAAE5D,cAAc,CAACiB,MAAM,CAAC3F,UAAU,CAACsI,OAAO,EAAE,WAAW,CAAC;AAC/DrB,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD;AACDE,IAAAA,MAAM,EAAErH,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEE,UAAU,CAACmH,MAAM;AAC/BoB,IAAAA,SAAS,EAAEoC,eAAe,GAAGpC,SAAS,GAAG,EAAE;AAC3CC,IAAAA,MAAM,EAAE7C,MAAM,CAAC3F,UAAU,CAACwI,MAAM;AAChCC,IAAAA,SAAS,EAAE,CAAA3I,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEE,UAAU,CAACyI,SAAS,KAAI9C,MAAM,CAAC3F,UAAU,CAACyI,SAAS;AACpEC,IAAAA,eAAe,EAAEgB,qBAAqB,GAAGhB,eAAe,GAAG,EAAE;AAC7D7G,IAAAA,OAAO,EAAE,CAAC,CAAC6D,OAAO,CAAC7D,OAAO;IAC1B8G,gBAAgB,EAAEjD,OAAO,CAAClG,MAAM,KAAKM,IAAI,CAACE,UAAU,CAACR,MAAAA;AAAM,GAAA,CAAA,CAAA;AAE/D;;ACjFA,IAAMoL,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAC/BlF,OAA8B,EAC9BC,MAAiC,EACjCrD,OAAmC,EACnCiG,SAAwC,EACxCzC,QAA4B,EACN;AAAA,EAAA,IAAA+E,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAA7E,qBAAA,EAAA/H,IAAA,EAAA6M,sBAAA,EAAAC,sBAAA,EAAA5E,sBAAA,EAAA6E,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAA7M,KAAA,EAAA8M,uBAAA,EAAAC,uBAAA,EAAA7E,sBAAA,CAAA;EACtB,IAAMC,iBAAiB,GAAG,CAAA+D,qBAAA,GAAAvI,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,KAA3B8D,IAAAA,IAAAA,qBAAA,CAA6B7D,UAAU,GAC7DtC,cAAc,CAAA,CAAAoG,sBAAA,GAAA,CAAAC,sBAAA,GACZzI,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,qBAA3BgE,sBAAA,CAA6B/D,UAAU,CAACrC,KAAK,KAAA,IAAA,GAAAmG,sBAAA,GAAA5E,CAAAA,qBAAA,GAC3CP,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAArCd,qBAAA,CAAuCvB,KAAK,EAC9C,OAAO,CACR,GACDO,mBAAmB,CAAA;AAEvB,EAAA,IAAM+B,iBAAiB,GAAA,CAAA9I,IAAA,GAAA,CAAA6M,sBAAA,GAAAC,CAAAA,sBAAA,GACrB3I,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3BkE,sBAAA,CAA6BhE,iBAAiB,KAAA+D,IAAAA,GAAAA,sBAAA,GAAA3E,CAAAA,sBAAA,GAC9CV,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA1BV,sBAAA,CAA4BY,iBAAiB,KAAA9I,IAAAA,GAAAA,IAAA,GAC7C,EAAE,CAAA;EAEJ,IAAMwM,eAAe,GAAGrI,OAAO,CAACtC,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OAC3D9B,sBAAsB,CAACrH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACnD,CAAA,CAAA;EACD,IAAMC,cAAc,GAAGhF,OAAO,CAACtC,UAAU,CAACmH,MAAM,CAACxG,IAAI,CAAC,UAACyG,KAAK,EAAA;AAAA,IAAA,OAC1D5B,oBAAoB,CAACvH,QAAQ,CAACmJ,KAAK,CAACC,WAAW,CAAC,CAAA;GACjD,CAAA,CAAA;EAED,OAAAzG,QAAA,KACK0B,OAAO,EAAA;AACV;AACAwD,IAAAA,QAAQ,EAAEwB,cAAc,GAAGxB,QAAQ,GAAG,EAAE;AACxC;AACA9F,IAAAA,UAAU,EAAAY,QAAA,CACL0B,EAAAA,EAAAA,OAAO,CAACtC,UAAU,EAAA;AACrB+G,MAAAA,QAAQ,EAAE,CAAAzE,OAAO,IAAA4I,IAAAA,IAAAA,CAAAA,mBAAA,GAAP5I,OAAO,CAAEtC,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAnBkL,mBAAA,CAAqBnE,QAAQ,KAAIpB,MAAM,CAAC3F,UAAU,CAAC+G,QAAAA;KAC9D,CAAA;AACDQ,IAAAA,UAAU,EAAE;AACVC,MAAAA,UAAU,EAAEpC,0BAA0B,CAACnH,QAAQ,CAAAkN,CAAAA,qBAAA,GAC7C7I,OAAO,CAACtC,UAAU,CAACmH,MAAM,CAAC,CAAC,CAAC,qBAA5BgE,qBAAA,CAA8B9D,WAAW,CAC1C;MACDI,KAAK,EAAEpC,0BAA0B,CAACpH,QAAQ,EAAAmN,sBAAA,GACxC9I,OAAO,CAACtC,UAAU,CAACmH,MAAM,CAAC,CAAC,CAAC,KAA5BiE,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA8B/D,WAAW,CAC1C,GACG,MAAM,GACN,OAAA;KACL;AACD;IACAK,cAAc,EAAE/B,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACC,QAAQ,IAAI,EAAE;IACvDC,aAAa,EAAElC,MAAM,CAAC3F,UAAU,CAAC2H,MAAM,CAACG,OAAO,IAAI,EAAE;IACrDC,WAAW,EAAEpC,MAAM,CAAC3F,UAAU,CAACgI,MAAM,CAACC,KAAK,IAAI,EAAE;AACjDlB,IAAAA,QAAQ,EAAE;MACRmB,KAAK,EAAA,CAAAmD,sBAAA,GAAAC,CAAAA,sBAAA,GACHhJ,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3BuE,sBAAA,CAA6BpD,KAAK,KAAAmD,IAAAA,GAAAA,sBAAA,GAAI1F,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACmB,KAAK;MACxEC,WAAW,EAAA,CAAAoD,sBAAA,GAAAC,CAAAA,sBAAA,GACTlJ,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,KAAA,IAAA,GAAA,KAAA,CAAA,GAA3ByE,sBAAA,CAA6BrD,WAAW,KAAAoD,IAAAA,GAAAA,sBAAA,GACxC5F,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACoB,WAAW;AACxCnB,MAAAA,UAAU,EAAE;AACVnC,QAAAA,GAAG,EAAEiC,iBAAiB;AACtBsB,QAAAA,GAAG,GAAAzJ,KAAA,GAAA,CAAA8M,uBAAA,GAAAC,CAAAA,uBAAA,GACDpJ,OAAO,CAACtC,UAAU,CAAC+G,QAAQ,KAAA2E,IAAAA,IAAAA,CAAAA,uBAAA,GAA3BA,uBAAA,CAA6B1E,UAAU,KAAvC0E,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,uBAAA,CAAyCtD,GAAG,YAAAqD,uBAAA,GAAA,CAAA5E,sBAAA,GAC5ClB,MAAM,CAAC3F,UAAU,CAAC+G,QAAQ,CAACC,UAAU,KAArCH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAuCuB,GAAG,KAAA,IAAA,GAAAzJ,KAAA,GAC1CwG,iBAAAA;OACH;AACDkD,MAAAA,eAAe,EAAE1C,MAAM,CAAC3F,UAAU,CAACqI,eAAe;MAClDC,OAAO,EAAE5D,cAAc,CAACiB,MAAM,CAAC3F,UAAU,CAACsI,OAAO,EAAE,WAAW,CAAC;AAC/DrB,MAAAA,iBAAiB,EAAjBA,iBAAAA;KACD;AACDE,IAAAA,MAAM,EAAE7E,OAAO,CAACtC,UAAU,CAACmH,MAAM;AACjCoB,IAAAA,SAAS,EAAEoC,eAAe,GAAGpC,SAAS,GAAG,EAAE;AAC3CC,IAAAA,MAAM,EAAE7C,MAAM,CAAC3F,UAAU,CAACwI,MAAM;AAChCC,IAAAA,SAAS,EAAE,CAAAnG,OAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEtC,UAAU,CAACyI,SAAS,KAAI9C,MAAM,CAAC3F,UAAU,CAACyI,SAAS;AACvEC,IAAAA,eAAe,EAAE,EAAE;AACnB7G,IAAAA,OAAO,EAAE,CAAC,CAAC6D,OAAO,CAAC7D,OAAO;IAC1B8G,gBAAgB,EAAEjD,OAAO,CAAClG,MAAM,KAAK8C,OAAO,CAACtC,UAAU,CAACR,MAAAA;AAAM,GAAA,CAAA,CAAA;AAElE;;AC3FA,IAAMmM,aAAa,GAAG,SAAhBA,aAAaA,CACjBC,UAAqC,EAC3B;EAAA,IAAAC,WAAA,EAAAC,YAAA,CAAA;AAAA,EAAA,IADVF,UAAqC,KAAA,KAAA,CAAA,EAAA;AAArCA,IAAAA,UAAqC,GAAArJ,SAAS,CAAA;AAAA,GAAA;AAE9C,EAAA,IAAA,CAAAsJ,WAAA,GAAID,UAAU,KAAA,IAAA,IAAA,CAAAC,WAAA,GAAVA,WAAA,CAAY/L,IAAI,KAAA,IAAA,IAAhB+L,WAAA,CAAkBhM,IAAI,EAAE;IAC1B,OAAW+L,GAAAA,GAAAA,UAAU,CAAC9L,IAAI,CAACD,IAAI,CAACG,UAAU,CAACD,IAAI,CAAA;AACjD,GAAA;EAEA,OAAO,CAAA,CAAA+L,YAAA,GAAAF,UAAU,qBAAVE,YAAA,CAAYjH,GAAG,KAAI,GAAG,CAAA;AAC/B;;ICPakH,YAAY,GAAG,SAAfA,YAAYA,GAAqB;AAC5C,EAAA,OACEC,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,IAAAA,QAAQ,EAAC,OAAO;AAACC,IAAAA,GAAG,EAAC,GAAG;AAACC,IAAAA,IAAI,EAAC,GAAA;AAAG,GAAA,EACpCL,KAAA,CAAAC,aAAA,CAACK,WAAW,EAAA;AAACC,IAAAA,IAAI,EAAC,SAAS;AAACpM,IAAAA,MAAM,EAAC,OAAA;AAAO,GAAA,CAAG,CACzC,CAAA;AAEV;;ACoCA;AACA,IAAMqM,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAc,EAAY;AAC9C,EAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK,CAAA;AAC3C,EAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,MAAM,IAAIA,KAAK,EAAE;IAClE,OAAQA,KAA0B,CAACF,IAAI,CAAA;AACzC,GAAA;AACA,EAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;AACA,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CACrBC,MAA2B,EAC3BC,QAAgB,EACN;EACV,OACEJ,YAAY,CAAEG,MAA6C,CAACC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAA;AAEhF,CAAC,CAAA;AAED;AACA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIF,MAA2B,EAAY;AAAA,EAAA,IAAAG,YAAA,CAAA;AAClE,EAAA,IAAMC,IAAI,GAAIJ,MAA8B,CAAC,OAAO,CAAC,CAAA;AAErD,EAAA,QAAQI,IAAI;AACV,IAAA,KAAK,cAAc;AACjB,MAAA,OAAOL,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,CAAA;AACvD,IAAA,KAAK,SAAS,CAAA;AACd,IAAA,KAAK,aAAa;AAChB,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,UAAU,CAAC,IAAI,kBAAkB,CAAA;AACpE,IAAA,KAAK,SAAS;AACZ,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,kBAAkB,CAAA;AAChE,IAAA,KAAK,QAAQ;AACX,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,gBAAgB,CAAA;AAC9D,IAAA,KAAK,OAAO;AACV,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,gBAAgB,CAAA;AAC9D,IAAA,KAAK,eAAe;AAClB,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,kBAAkB,CAAA;AAChE,IAAA,KAAK,SAAS;AACZ,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,iBAAiB,CAAA;AAC/D,IAAA,KAAK,OAAO;AACV,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,eAAe,CAAA;AAC7D,IAAA,KAAK,SAAS;AACZ,MAAA,OAAO,UAAU,CAAA;AACnB,IAAA,KAAK,OAAO;AACV,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,gBAAgB,CAAA;AAC9D,IAAA,KAAK,gBAAgB;AACnB,MAAA,OAAO,aAAa,CAAA;AACtB,IAAA,KAAK,OAAO;MACV,IAAMK,KAAK,GAAGL,MAAe,CAAA;MAC7B,OAAAG,QAAAA,IAAAA,CAAAA,YAAA,GAAgBE,KAAK,CAACC,KAAK,KAAAH,IAAAA,GAAAA,YAAA,GAAI,eAAe,CAAA,CAAA;AAChD,IAAA,KAAK,SAAS;AACZ,MAAA,OAAOJ,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,eAAe,CAAA;AAC7D,IAAA,KAAK,QAAQ;AACX,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,aAAa,CAAA;AAC3D,IAAA,KAAK,qBAAqB;AACxB,MAAA,OAAOD,iBAAiB,CAACC,MAAM,EAAE,MAAM,CAAC,IAAI,mBAAmB,CAAA;AACjE,IAAA;AACE,MAAA,OAAO,gBAAgB,CAAA;AAC3B,GAAA;AACF,CAAC,CAAA;AAuBD,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAClBP,MAA6E,EAClE;AACX,EAAA,IAAIQ,KAAK,CAACC,OAAO,CAACT,MAAM,CAAC,EAAE;AACzB,IAAA,OAAOA,MAAM,CAACU,KAAK,CACjB,UAACC,IAAI,EAAA;MAAA,OAAKA,IAAI,CAAC,UAAU,CAAC,KAAK,oBAAoB,IAAI,OAAO,IAAIA,IAAI,CAAA;KACvE,CAAA,CAAA;AACH,GAAA;EACA,OAAOX,MAAM,CAAC,UAAU,CAAC,KAAK,oBAAoB,IAAI,OAAO,IAAIA,MAAM,CAAA;AACzE,CAAC,CAAA;IAEYY,OAAO,GAA2B,SAAlCA,OAAOA,CAAApP,IAAA,EAQD;EAAA,IAAAqP,eAAA,EAAAC,eAAA,CAAA;AAAA,EAAA,IAPjBvF,KAAK,GAAA/J,IAAA,CAAL+J,KAAK;IACLC,WAAW,GAAAhK,IAAA,CAAXgK,WAAW;IACXnB,UAAU,GAAA7I,IAAA,CAAV6I,UAAU;IAAA0G,oBAAA,GAAAvP,IAAA,CACVkK,eAAe;AAAfA,IAAAA,eAAe,GAAAqF,oBAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,oBAAA;IAAAC,YAAA,GAAAxP,IAAA,CAC3BmK,OAAO;AAAPA,IAAAA,OAAO,GAAAqF,YAAA,KAAG,KAAA,CAAA,GAAA,iCAAiC,GAAAA,YAAA;IAAAC,WAAA,GAAAzP,IAAA,CAC3C0P,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,WAAA;IAClBE,YAAY,GAAA3P,IAAA,CAAZ2P,YAAY,CAAA;AAEZ,EAAA,IAAMC,aAAa,GAAA,CAAAP,eAAA,GAAGxG,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEnC,GAAG,KAAA,IAAA,GAAA2I,eAAA,GAAItI,mBAAmB,CAAA;AAC5D,EAAA,IAAM8I,aAAa,GAAA,CAAAP,eAAA,GAAGzG,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEoB,GAAG,KAAA,IAAA,GAAAqF,eAAA,GAAItI,iBAAiB,CAAA;EAE1D,IAAI8I,OAAO,GAAGH,YAAY,CAAA;EAC1B,IAAII,aAAa,GAAGJ,YAAY,GAAGZ,cAAc,CAACY,YAAY,CAAC,GAAG,KAAK,CAAA;AAEvE,EAAA,IAAIA,YAAY,IAAI,CAACI,aAAa,EAAE;AAClCrL,IAAAA,OAAO,CAACC,IAAI,CACV,0FAA0F,EAC1FgL,YAAY,CACb,CAAA;AACDG,IAAAA,OAAO,GAAG1L,SAAS,CAAA;AACnB2L,IAAAA,aAAa,GAAG,KAAK,CAAA;AACvB,GAAA;AAEA,EAAA,IAAMC,WAAW,GAAGF,OAAO,GACvBd,KAAK,CAACC,OAAO,CAACa,OAAO,CAAC,GACpBA,OAAO,GACP,CAACA,OAAO,CAAC,GACX,EAAE,CAAA;EAEN,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAChBzB,MAAwC,EACxC0B,KAAa,EACH;AACV,IAAA,IAAMtB,IAAI,GAAIJ,MAA8B,CAAC,OAAO,CAAC,CAAA;AACrD,IAAA,IAAM2B,UAAU,GAAGzB,mBAAmB,CAACF,MAA6B,CAAC,CAAA;AACrE,IAAA,OAAUI,IAAI,GAAA,GAAA,GAAIuB,UAAU,GAAA,GAAA,GAAID,KAAK,CAAA;GACtC,CAAA;EAED,OACErC,oBAACuC,IAAI,EAAA,IAAA,EACHvC,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EAAW/D,KAAK,GAAA,KAAA,GAAMG,eAAiB,CAAS,EAChD2D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,aAAa;AAACC,IAAAA,OAAO,EAAEtG,WAAAA;AAAe,GAAA,CAAA,EACjD6D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMyC,IAAAA,GAAG,EAAC,MAAM;AAACC,IAAAA,IAAI,EAAErG,OAAAA;AAAW,GAAA,CAAA,EAElC0D,KAAM,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAAW,IAAAA,QAAQ,EAAC,QAAQ;AAAC6B,IAAAA,OAAO,EAAaZ,UAAAA,GAAAA,MAAAA;AAAY,GAAA,CAAA,EACxD7B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,SAAS;AAAC6B,IAAAA,OAAO,EAAC,SAAA;AAAY,GAAA,CAAA,EAC7CzC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,UAAU;AAAC6B,IAAAA,OAAO,EAAEvG,KAAAA;AAAS,GAAA,CAAA,EAC5C8D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,gBAAgB;AAAC6B,IAAAA,OAAO,EAAEtG,WAAAA;AAAe,GAAA,CAAA,EACxD6D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,UAAU;AAAC6B,IAAAA,OAAO,EAAEV,aAAAA;AAAiB,GAAA,CAAA,EACpD/B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,cAAc;AAAC6B,IAAAA,OAAO,EAAET,aAAAA;AAAiB,GAAA,CAAA,EAExDhC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,cAAc;AAACC,IAAAA,OAAO,EAAC,qBAAA;AAAwB,GAAA,CAAA,EAC1DzC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,IAAAA,QAAQ,EAAC,gBAAgB;AAAC6B,IAAAA,OAAO,EAAEZ,MAAAA;AAAU,GAAA,CAAA,EACnD7B,KAAM,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAAW,IAAAA,QAAQ,EAAC,aAAa;AAAC6B,IAAAA,OAAO,EAAaZ,UAAAA,GAAAA,MAAAA;AAAY,GAAA,CAAA,EAC7D7B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,eAAe;AAACC,IAAAA,OAAO,EAAEvG,KAAAA;AAAS,GAAA,CAAA,EAC7C8D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,qBAAqB;AAACC,IAAAA,OAAO,EAAEtG,WAAAA;AAAe,GAAA,CAAA,EACzD6D,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,eAAe;AAACC,IAAAA,OAAO,EAAEV,aAAAA;AAAiB,GAAA,CAAA,EACrD/B,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMuC,IAAAA,IAAI,EAAC,mBAAmB;AAACC,IAAAA,OAAO,EAAET,aAAAA;GAAiB,CAAA,EAExDE,aAAa,IACZC,WAAW,CAAC5O,GAAG,CAAC,UAACoN,MAAM,EAAE0B,KAAK,EAAA;AAAA,IAAA,OAC5BrC,KACE,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAAtI,MAAAA,GAAG,EAAEyK,YAAY,CAACzB,MAAM,EAAE0B,KAAK,CAAC;AAChCtB,MAAAA,IAAI,EAAC,qBAAqB;AAC1B6B,MAAAA,uBAAuB,EAAE;AACvBC,QAAAA,MAAM,EAAEC,IAAI,CAACjR,SAAS,CAAC8O,MAAM,CAAA;AAC9B,OAAA;AAAA,KAAA,CACD,CAAA;AAAA,GACH,CAAC,CACC,CAAA;AAEX;;ACtMA,IAAMoC,aAAa,GAAG,SAAhBA,aAAaA,CAAA5Q,IAAA,EAAiD;AAAA,EAAA,IAA3C6Q,KAAK,GAAA7Q,IAAA,CAAL6Q,KAAK;IAAAC,SAAA,GAAA9Q,IAAA,CAAE+Q,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,SAAA,CAAA;AACxC;AACA,EAAA,IAAAE,SAAA,GAAgCC,QAAQ,CAAC,KAAK,CAAC;AAAxCC,IAAAA,QAAQ,GAAAF,SAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,SAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAI,UAAA,GAA0CH,QAAQ,CAAC,SAAS,CAAC;AAAtDI,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAEtC,IAAMG,QAAQ,GAAGhL,cAAc,CAACsK,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC,CAAA;AAEpD,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,CAA4C,EAAI;AACtE;IACA,IAAMC,MAAM,GAAGD,CAAC,CAACE,aAAa,CAACC,qBAAqB,EAAE,CAAA;AACtD,IAAA,IAAMC,CAAC,GAAI,CAACJ,CAAC,CAACK,OAAO,GAAGJ,MAAM,CAACG,CAAC,IAAIH,MAAM,CAACK,KAAK,GAAI,GAAG,CAAA;AACvD,IAAA,IAAMC,CAAC,GAAI,CAACP,CAAC,CAACQ,OAAO,GAAGP,MAAM,CAACM,CAAC,IAAIN,MAAM,CAACQ,MAAM,GAAI,GAAG,CAAA;AACxDb,IAAAA,gBAAgB,CAAIQ,CAAC,GAAKG,IAAAA,GAAAA,CAAC,MAAG,CAAC,CAAA;GAChC,CAAA;AAED,EAAA,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIV,CAA4C,EAAI;AACvE,IAAA,IAAIR,QAAQ,EAAE;MACZC,WAAW,CAAC,KAAK,CAAC,CAAA;AACpB,KAAC,MAAM;AACL;MACAA,WAAW,CAAC,IAAI,CAAC,CAAA;MACjBM,cAAc,CAACC,CAAC,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;AAED,EAAA,IAAMW,WAAW,GAAG,SAAdA,WAAWA,CAAIX,CAA4C,EAAI;IACnEU,eAAe,CAACV,CAAC,CAAC,CAAA;GACnB,CAAA;AAED,EAAA,IAAMY,UAAU,GAAG,SAAbA,UAAUA,CAAIZ,CAA4C,EAAI;AAClE,IAAA,IAAIR,QAAQ,EAAE;MACZO,cAAc,CAACC,CAAC,CAAC,CAAA;AACnB,KAAA;GACD,CAAA;EAED,OACE7D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsC,IAAI,EAAA,IAAA,EACHvC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMyC,IAAAA,GAAG,EAAC,UAAU;AAACiC,IAAAA,EAAE,EAAC,OAAO;AAAChC,IAAAA,IAAI,EAAEe,QAAAA;GAAQ,CAAI,CAC7C,EACP1D,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFC,IAAAA,QAAQ,EAAC,UAAU;AACnByE,IAAAA,OAAO,EAAC,cAAc;AACtBT,IAAAA,KAAK,EAAC,MAAM;AACZG,IAAAA,MAAM,EAAC,MAAM;AACbO,IAAAA,QAAQ,EAAC,QAAQ;AACjBC,IAAAA,UAAU,EAAC,GAAG;AACdC,IAAAA,eAAe,EAAC,QAAQ;AACxBC,IAAAA,cAAc,EAAC,QAAQ;AACvBC,IAAAA,SAAS,EAAC,OAAO;AACjBC,IAAAA,MAAM,EAAE7B,QAAQ,GAAG,UAAU,GAAG,SAAS;AACzC8B,IAAAA,eAAe,EAAE9B,QAAQ,GAAWK,OAAAA,GAAAA,QAAQ,UAAO,MAAM;IACzD0B,cAAc,EAAKlC,IAAI,GAAG,GAAA;AAC1BmC,IAAAA,kBAAkB,EAAE7B,aAAa;AACjC8B,IAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGzB,CAAC,EAAA;MAAA,OAAKW,WAAW,CAACX,CAAC,CAAC,CAAA;AAAA,KAAA;AAC9B0B,IAAAA,WAAW,EAAE,SAAbA,WAAWA,CAAG1B,CAAC,EAAA;MAAA,OAAKY,UAAU,CAACZ,CAAC,CAAC,CAAA;AAAA,KAAA;AAAA,GAAA,EAEjC7D,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,IAAAA,GAAG,EAAE/B,QAAQ;IACbtH,GAAG,EAAE4G,KAAK,CAAC5G,GAAG;AACdsJ,IAAAA,IAAI,EAAA,IAAA;AACJC,IAAAA,KAAK,EAAE;AACLC,MAAAA,UAAU,EAAEvC,QAAQ,GAAG,QAAQ,GAAG,SAAS;AAC3CwC,MAAAA,SAAS,EAAE,SAAA;;GAEb,CAAA,CACE,CACL,CAAA;AAEP,CAAC;;AClEM,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA3T,IAAA,EAMD;AAAA,EAAA,IALzB4T,MAAM,GAAA5T,IAAA,CAAN4T,MAAM;IACNC,MAAM,GAAA7T,IAAA,CAAN6T,MAAM;IACNC,OAAO,GAAA9T,IAAA,CAAP8T,OAAO;IAAAC,iBAAA,GAAA/T,IAAA,CACPgU,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,iBAAA;IAChBE,eAAe,GAAAjU,IAAA,CAAfiU,eAAe,CAAA;AAEf,EAAA,IAAMC,YAAY,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;EAEjDC,iBAAiB,CAACP,MAAM,CAAC,CAAA;EAEzB,IAAMQ,YAAY,GAAGC,OAAO,CAC1B,YAAA;AAAA,IAAA,OAAMN,YAAY,GAAGJ,MAAM,CAACtP,MAAM,GAAG,CAAC,CAAA;AAAA,GAAA,EACtC,CAAC0P,YAAY,EAAEJ,MAAM,CAACtP,MAAM,CAAC,CAC9B,CAAA;EACD,IAAMiQ,WAAW,GAAGD,OAAO,CAAC,YAAA;IAAA,OAAMN,YAAY,KAAK,CAAC,CAAA;GAAE,EAAA,CAACA,YAAY,CAAC,CAAC,CAAA;EAErE,IAAMQ,OAAO,GAAGC,WAAW,CACzB,YAAA;AAAA,IAAA,OAAMJ,YAAY,IAAIJ,eAAe,IAAIA,eAAe,CAAC,UAACS,CAAC,EAAA;MAAA,OAAKA,CAAC,GAAG,CAAC,CAAA;KAAC,CAAA,CAAA;GACtE,EAAA,CAACL,YAAY,CAAC,CACf,CAAA;EACD,IAAMM,MAAM,GAAGF,WAAW,CACxB,YAAA;AAAA,IAAA,OAAMF,WAAW,IAAIN,eAAe,IAAIA,eAAe,CAAC,UAACS,CAAC,EAAA;MAAA,OAAKA,CAAC,GAAG,CAAC,CAAA;KAAC,CAAA,CAAA;GACrE,EAAA,CAACH,WAAW,CAAC,CACd,CAAA;EAEDK,MAAM,CAAC,YAAY,EAAEJ,OAAO,EAAE,EAAE,EAAE,CAACA,OAAO,CAAC,CAAC,CAAA;EAC5CI,MAAM,CAAC,WAAW,EAAED,MAAM,EAAE,EAAE,EAAE,CAACA,MAAM,CAAC,CAAC,CAAA;AAEzCE,EAAAA,SAAS,CAAC,YAAK;IACb,IAAI,CAAC,CAAChB,MAAM,EAAE;AACZiB,MAAAA,UAAU,CAAC,YAAK;AAAA,QAAA,IAAAC,qBAAA,CAAA;QACdb,YAAY,IAAA,IAAA,IAAA,CAAAa,qBAAA,GAAZb,YAAY,CAAEc,OAAO,KAArBD,IAAAA,IAAAA,qBAAA,CAAuBE,QAAQ,CAAC;AAC9B/G,UAAAA,IAAI,EAAE8F,YAAY,GAAGE,YAAY,CAACc,OAAO,CAACE,WAAW;AACrDC,UAAAA,QAAQ,EAAE,SAAA;AACX,SAAA,CAAC,CAAA;OACH,EAAE,EAAE,CAAC,CAAA;AACR,KAAA;AACF,GAAC,EAAE,CAACtB,MAAM,CAAC,CAAC,CAAA;AAEZgB,EAAAA,SAAS,CAAC,YAAK;IACb,IAAIX,YAAY,CAACc,OAAO,EAAE;AACxBd,MAAAA,YAAY,CAACc,OAAO,CAACC,QAAQ,CAAC;AAC5B/G,QAAAA,IAAI,EAAE8F,YAAY,GAAGE,YAAY,CAACc,OAAO,CAACE,WAAW;AACrDC,QAAAA,QAAQ,EAAE,QAAA;AACX,OAAA,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EAAE,CAACnB,YAAY,EAAEE,YAAY,CAAC,CAAC,CAAA;AAEhC,EAAA,OACErG,oBAACuH,WAAW,EAAA;AACVtB,IAAAA,OAAO,EAAEA,OAAO;AAChBD,IAAAA,MAAM,EAAEA,MAAM;AACd9J,IAAAA,KAAK,EAAC,EAAE;AACRsL,IAAAA,OAAO,EAAC,EAAE;AACVC,IAAAA,IAAI,EAAC,MAAM;AACXhF,IAAAA,OAAO,EACLzC,oBAAC0H,IAAI,EAAA;AACHvH,MAAAA,QAAQ,EAAC,UAAU;AACnBwH,MAAAA,MAAM,EAAC,IAAI;AACXC,MAAAA,MAAM,EAAC,GAAG;AACVC,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,cAAc,EAAC,QAAA;AAAQ,KAAA,EAEvB9H,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AACHK,MAAAA,GAAG,EAAE1B,YAAY;AACjB2B,MAAAA,QAAQ,EAAC,GAAG;AACZC,MAAAA,SAAS,EAAC,MAAM;AAChBnD,MAAAA,UAAU,EAAC,GAAG;AACdoD,MAAAA,GAAG,EAAC,GAAG;AACPC,MAAAA,OAAO,EAAC,IAAI;AACZC,MAAAA,cAAc,EAAC,aAAa;AAC5BvD,MAAAA,QAAQ,EAAC,QAAQ;AACjB1E,MAAAA,QAAQ,EAAC,UAAU;AACnBmE,MAAAA,MAAM,EAAC,MAAM;AACbH,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EAEX4B,MAAM,CAACxS,GAAG,CAAC,UAACyP,KAAK,EAAA;AAAA,MAAA,OAChBhD,KAAC,CAAAC,aAAA,CAAA8C,aAAa,EAAC;QAAApL,GAAG,EAAEqL,KAAK,CAAC5L,EAAE;AAAE4L,QAAAA,KAAK,EAAEA,KAAAA;AAAS,OAAA,CAAA,CAAA;KAC/C,CAAC,CACG,EAEPhD,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHvH,MAAAA,QAAQ,EAAC,UAAU;AACnBkI,MAAAA,KAAK,EAAC,GAAG;AACTP,MAAAA,cAAc,EAAC,eAAe;AAC9BD,MAAAA,UAAU,EAAC,QAAQ;AACnBS,MAAAA,aAAa,EAAC,MAAA;AAAM,KAAA,EAEpBtI,KAAA,CAAAC,aAAA,CAACsI,UAAU,EACT;AAAA3C,MAAAA,UAAU,EAAEc,WAAW,GAAG,SAAS,GAAG,QAAQ;AAC9CpB,MAAAA,OAAO,EAAEwB,MAAM;AACf0B,MAAAA,IAAI,EAAExI,KAAC,CAAAC,aAAA,CAAAwI,SAAS;AAAChB,QAAAA,IAAI,EAAE,EAAA;AAAM,OAAA,CAAA;AAAA,MAAA,YAAA,EAClB,kBAAkB;AAC7BiB,MAAAA,OAAO,EAAC,SAAS;AACjBJ,MAAAA,aAAa,EAAC,KAAK;AACnBK,MAAAA,EAAE,EAAC,GAAA;AACH,KAAA,CAAA,EAEF3I,KAAC,CAAAC,aAAA,CAAAsI,UAAU;AACT3C,MAAAA,UAAU,EAAEY,YAAY,GAAG,SAAS,GAAG,QAAQ;AAC/ClB,MAAAA,OAAO,EAAEqB,OAAO;AAChB6B,MAAAA,IAAI,EAAExI,KAAA,CAAAC,aAAA,CAAC2I,UAAU,EAAA;AAACnB,QAAAA,IAAI,EAAE,EAAA;QAAM;AACnB,MAAA,YAAA,EAAA,cAAc;AACzBiB,MAAAA,OAAO,EAAC,SAAS;AACjBJ,MAAAA,aAAa,EAAC,KAAK;AACnBO,MAAAA,EAAE,EAAC,GAAA;MACH,CACG,CAAA;AAGX,GAAA,CAAA,CAAA;AAEN,CAAC;;AC/HM,IAAMC,aAAa,GAAM,GAAG,GAAG,CAAC,GAAI,IAAA,CAAA;AACpC,IAAMC,aAAa,GAAM,GAAG,GAAG,CAAC,GAAI,IAAA,CAAA;AAIpC,IAAMC,mBAAmB,GAAkBF,cAAAA,GAAAA,aAAa,GAAG,GAAA,CAAA;AAC3D,IAAMG,mBAAmB,GAAkBF,cAAAA,GAAAA,aAAa,GAAG,GAAA;;ACe3D,IAAMG,cAAc,GAAkC,SAAhDA,cAAcA,CAAA/W,IAAA,EAED;AAAA,EAAA,IADxBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAA+H,SAAA,GAA4BC,QAAQ,CAAC,KAAK,CAAC;AAApC4C,IAAAA,MAAM,GAAA7C,SAAA,CAAA,CAAA,CAAA;AAAEgG,IAAAA,SAAS,GAAAhG,SAAA,CAAA,CAAA,CAAA,CAAA;AACxB,EAAA,IAAAiG,cAAA,GAAmBC,aAAa,CAACL,mBAAmB,CAAC;AAA9CM,IAAAA,QAAQ,GAAAF,cAAA,CAAA,CAAA,CAAA,CAAA;AAEf,EAAA,OACEpJ,oBAACuJ,uBAAuB,EAAA;IAACrN,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACzC8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;AACnBC,IAAAA,MAAM,EAAA,IAAA;IACNC,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAQ;MAAEC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;KAAG;AACnEC,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;KAAQ;AACjE8B,IAAAA,SAAS,EAAE;AAAEJ,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;;AACxD,GAAA,CAAA,EAEFnI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AAAC2J,IAAAA,EAAE,EAAC,IAAI;AAACxF,IAAAA,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAC1DtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC4H,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAAC4H,KAAK,CAAC5G,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEzK,KAAK,CAAC4H,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC3CX,MAAAA,MAAM,EAAEoE,QAAQ,GAAG,OAAO,GAAG,SAAS;AACtCY,MAAAA,YAAY,EAAE,yBAAA;KACf;IACD5E,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ,CAACgE,QAAQ,IAAIH,SAAS,CAAC,IAAI,CAAC,CAAA;AAAA,KAAA;AAC3C,GAAA,CAAA,EAEFnJ,KAAA,CAAAC,aAAA,CAAC6F,eAAe,EAAA;AACdC,IAAAA,MAAM,EAAE,CAAC3K,KAAK,CAAC4H,KAAK,CAAC;AACrBgD,IAAAA,MAAM,EAAEA,MAAM;IACdC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQkD,SAAS,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;GAAA,CAC/B,CACE,CACE,CACc,CAAA;AAE9B,CAAC;;AC/DD,IAAMgB,eAAe,GAAG,SAAlBA,eAAeA,GAAQ;EAC3B,IAAMC,CAAC,GAAGC,MAAa,CAAA;EAEvB,IAAID,CAAC,CAACE,oBAAoB,EAAE;AAC1BF,IAAAA,CAAC,CAACE,oBAAoB,CAACC,MAAM,CAACC,IAAI,EAAE,CAAA;AACtC,GAAC,MAAM;AACLJ,IAAAA,CAAC,CAACK,sBAAsB,GAAG,CACzB,YAAK;AACHL,MAAAA,CAAC,CAACE,oBAAoB,CAACC,MAAM,CAACC,IAAI,EAAE,CAAA;AACtC,KAAC,CACF,CAAA;AACH,GAAA;AACF,CAAC;;;ACVM,IAAME,YAAY,gBAAGC,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAQ9B,CAAA,gIAAA,CAAA,CAAA,CAAA,CAAA;;ACVD,IAAMC,YAAU,GAAG;AACjB,EAAA,sCAAsC,EAAE,mBAAA;CACzC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,2CAA2C,EAAE,mBAAmB;AAChE,EAAA,4CAA4C,EAAE,6BAA6B;AAC3E,EAAA,0CAA0C,EAAE,6BAA6B;AACzE,EAAA,8CAA8C,EAAE,wBAAA;CACjD;;ACLD,IAAMA,YAAU,GAAG;AACjB,EAAA,+BAA+B,EAAE,0BAA0B;AAC3D,EAAA,oCAAoC,EAAE,yBAAA;CACvC;;ACHD,IAAMA,YAAU,GAAG;AACjB,EAAA,4BAA4B,EAAE,aAAA;CAC/B;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,iCAAiC,EAAE,aAAA;CACpC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,qCAAqC,EAAE,0BAA0B;AACjE,EAAA,mCAAmC,EAAE,eAAe;AACpD,EAAA,mCAAmC,EAAE,kBAAkB;AAEvD,EAAA,yCAAyC,EAAE,WAAW;AACtD,EAAA,sCAAsC,EAAE,SAAS;AACjD,EAAA,yCAAyC,EAAE,iBAAiB;AAC5D,EAAA,2CAA2C,EAAE,sBAAsB;AACnE,EAAA,0CAA0C,EAAE,sBAAsB;AAClE,EAAA,mCAAmC,EAAE,OAAO;AAC5C,EAAA,uCAAuC,EAAE,UAAU;AACnD,EAAA,uCAAuC,EAAE,UAAU;AACnD,EAAA,qCAAqC,EAAE,SAAA;CACxC;;ACdD,IAAMA,YAAU,GAAG;AACjB,EAAA,0BAA0B,EAAE,YAAY;AACxC,EAAA,kCAAkC,EAChC,+CAA+C;AACjD,EAAA,8BAA8B,EAAE,4CAA4C;AAC5E,EAAA,yCAAyC,EAAE,QAAQ;AACnD,EAAA,wCAAwC,EAAE,YAAY;AACtD,EAAA,uCAAuC,EAAE,SAAS;AAClD,EAAA,2CAA2C,EAAE,gBAAgB;AAC7D,EAAA,4CAA4C,EAAE,gBAAgB;AAC9D,EAAA,4CAA4C,EAAE,gBAAA;CAC/C;;ACXD,IAAMA,YAAU,GAAG;AACjB,EAAA,mCAAmC,EACjC,4DAA4D;AAC9D,EAAA,sCAAsC,EAAE,oCAAoC;AAC5E,EAAA,sCAAsC,EACpC,wDAAA;CACH;;ACND,IAAMA,YAAU,GAAG;AACjB,EAAA,2DAA2D,EACzD,kBAAkB;AACpB,EAAA,2DAA2D,EACzD,wBAAA;CACH;;ACLD,IAAMA,YAAU,GAAG;AACjB,EAAA,yCAAyC,EAAE,eAAA;CAC5C;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,sCAAsC,EAAE,sBAAsB;AAC9D,EAAA,oDAAoD,EAClD,8BAAA;CACH;;ACJD,IAAMA,YAAU,GAAG;AACjB,EAAA,gCAAgC,EAAE,YAAA;CACnC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,wCAAwC,EAAE,eAAe;AACzD,EAAA,sCAAsC,EAAE,gBAAgB;AACxD,EAAA,0CAA0C,EAAE,UAAU;AACtD,EAAA,uCAAuC,EAAE,qBAAqB;AAC9D,EAAA,0CAA0C,EAAE,kBAAkB;AAC9D,EAAA,6CAA6C,EAAE,aAAa;AAC5D,EAAA,kDAAkD,EAAE,oBAAoB;AACxE,EAAA,4DAA4D,EAC1D,wBAAwB;AAC1B,EAAA,iFAAiF,EAC/E,mDAAmD;AACrD,EAAA,mEAAmE,EACjE,0DAA0D;AAC5D,EAAA,uDAAuD,EACrD,uIAAuI;AACzI,EAAA,qDAAqD,EAAE,gBAAgB;AACvE,EAAA,4CAA4C,EAAE,qBAAqB;AAEnE,EAAA,sCAAsC,EACpC,oDAAA;CACH;;ACrBD,IAAMA,YAAU,GAAG;AACjB,EAAA,8CAA8C,EAAE,cAAc;AAC9D,EAAA,2CAA2C,EACzC,mCAAmC;AAErC,EAAA,6DAA6D,EAC3D,kCAAkC;AACpC,EAAA,6DAA6D,EAC3D,gCAAgC;AAClC,EAAA,4DAA4D,EAAE,GAAG;AACjE,EAAA,4DAA4D,EAAE,KAAK;AACnE,EAAA,yEAAyE,EACvE,0CAA0C;AAC5C,EAAA,yEAAyE,EACvE,4CAA4C;AAC9C,EAAA,oEAAoE,EAClE,gCAAgC;AAClC,EAAA,sEAAsE,EACpE,gEAAgE;AAElE,EAAA,qDAAqD,EAAE,mBAAmB;AAE1E,EAAA,sCAAsC,EAAE,gBAAA;CACzC;;ACvBD,IAAMA,YAAU,GAAG;AACjB,EAAA,mCAAmC,EAAE,OAAO;AAE5C,EAAA,mDAAmD,EACjD,iCAAiC;AACnC,EAAA,mDAAmD,EACjD,mCAAmC;AACrC,EAAA,kDAAkD,EAAE,GAAG;AACvD,EAAA,kDAAkD,EAAE,KAAK;AACzD,EAAA,0DAA0D,EACxD,kCAAkC;AACpC,EAAA,+DAA+D,EAC7D,yCAAyC;AAC3C,EAAA,+DAA+D,EAC7D,wCAAwC;AAC1C,EAAA,4DAA4D,EAC1D,oFAAoF;AAEtF,EAAA,kCAAkC,EAAE,OAAO;AAC3C,EAAA,qCAAqC,EAAE,OAAO;AAC9C,EAAA,oDAAoD,EAAE,cAAc;AACpE,EAAA,iDAAiD,EAC/C,mCAAmC;AAErC,EAAA,8BAA8B,EAAE,QAAA;CACjC;;ACzBD,IAAMA,YAAU,GAAG;AACjB,EAAA,iCAAiC,EAAE,qBAAqB;AACxD,EAAA,gCAAgC,EAAE,oBAAA;CACnC;;ACHD,IAAMA,YAAU,GAAG;AACjB,EAAA,oCAAoC,EAAE,mBAAmB;AACzD,EAAA,kCAAkC,EAAE,oCAAA;CACrC;;ACHD,IAAMC,cAAc,GAAG;AACrB,EAAA,wBAAwB,EAAE,gBAAgB;AAC1C,EAAA,+BAA+B,EAAE,oBAAA;CAClC;;ACiBD,IAAMC,cAAc,gBAAApW,QAAA,CAIfqW,EAAAA,EAAAA,YAA+B,EAC/BC,YAAmB,EACnBC,YAAwC,EACxCC,YAA8B,EAC9BC,YAAgC,EAChCC,YAAyB,EAKzBC,YAAoB,EACpBC,YAAa,EACbC,YAAsB,EACtBC,YAA2B,EAC3BC,YAAgB,EAChBC,YAAkB,EAClBC,YAAsB,EACtBC,YAAqB,EACrBC,YAAsB,EACtBC,YAAsB,EACtBC,YAAkB,EAKlBlB,cAAc,CAClB;;AClDD,IAAMmB,YAAU,GAAG;AACjB,EAAA,sCAAsC,EAAE,mBAAA;CACzC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,2CAA2C,EAAE,mBAAmB;AAChE,EAAA,4CAA4C,EAAE,wBAAwB;AACtE,EAAA,0CAA0C,EAAE,sBAAsB;AAClE,EAAA,8CAA8C,EAAE,wBAAA;CACjD;;ACLD,IAAMA,YAAU,GAAG;AACjB,EAAA,mCAAmC,EAAE,wBAAwB;AAC7D,EAAA,oCAAoC,EAAE,yBAAA;CACvC;;ACHD,IAAMA,YAAU,GAAG;AACjB,EAAA,4BAA4B,EAAE,WAAA;CAC/B;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,iCAAiC,EAAE,WAAA;CACpC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,qCAAqC,EAAE,mBAAmB;AAC1D,EAAA,mCAAmC,EAAE,WAAW;AAChD,EAAA,mCAAmC,EAAE,WAAW;AAEhD,EAAA,yCAAyC,EAAE,YAAY;AACvD,EAAA,sCAAsC,EAAE,SAAS;AACjD,EAAA,yCAAyC,EAAE,aAAa;AACxD,EAAA,2CAA2C,EAAE,eAAe;AAC5D,EAAA,0CAA0C,EAAE,eAAe;AAC3D,EAAA,mCAAmC,EAAE,MAAM;AAC3C,EAAA,uCAAuC,EAAE,UAAU;AACnD,EAAA,uCAAuC,EAAE,UAAU;AACnD,EAAA,qCAAqC,EAAE,SAAA;CACxC;;ACdD,IAAMpB,YAAU,GAAG;AACjB,EAAA,0BAA0B,EAAE,WAAW;AACvC,EAAA,kCAAkC,EAAE,0BAA0B;AAC9D,EAAA,8BAA8B,EAAE,sBAAsB;AACtD,EAAA,gDAAgD,EAAE,QAAQ;AAC1D,EAAA,wCAAwC,EAAE,YAAY;AACtD,EAAA,uCAAuC,EAAE,UAAU;AACnD,EAAA,2CAA2C,EAAE,SAAS;AACtD,EAAA,4CAA4C,EAAE,cAAc;AAC5D,EAAA,4CAA4C,EAAE,cAAA;CAC/C;;ACVD,IAAMoB,YAAU,GAAG;AACjB,EAAA,mCAAmC,EACjC,+CAA+C;AACjD,EAAA,sCAAsC,EAAE,mCAAmC;AAC3E,EAAA,sCAAsC,EAAE,kCAAA;CACzC;;ACLD,IAAMA,YAAU,GAAG;AACjB,EAAA,2DAA2D,EACzD,mBAAmB;AACrB,EAAA,2DAA2D,EACzD,mBAAA;CACH;;ACLD,IAAMA,YAAU,GAAG;AACjB,EAAA,yCAAyC,EAAE,eAAA;CAC5C;;ACFD,IAAMpB,YAAU,GAAG;AACjB,EAAA,sCAAsC,EAAE,mBAAmB;AAC3D,EAAA,oDAAoD,EAClD,2BAAA;CACH;;ACJD,IAAMoB,YAAU,GAAG;AACjB,EAAA,gCAAgC,EAAE,gBAAA;CACnC;;ACFD,IAAMA,YAAU,GAAG;AACjB,EAAA,wCAAwC,EAAE,eAAe;AACzD,EAAA,sCAAsC,EAAE,cAAc;AACtD,EAAA,0CAA0C,EAAE,UAAU;AACtD,EAAA,uCAAuC,EAAE,oBAAoB;AAC7D,EAAA,0CAA0C,EAAE,mBAAmB;AAC/D,EAAA,6CAA6C,EAAE,cAAc;AAC7D,EAAA,kDAAkD,EAAE,mBAAmB;AACvE,EAAA,4DAA4D,EAC1D,uBAAuB;AACzB,EAAA,iFAAiF,EAC/E,mDAAmD;AACrD,EAAA,mEAAmE,EACjE,0DAA0D;AAC5D,EAAA,qDAAqD,EAAE,gBAAgB;AACvE,EAAA,uDAAuD,EACrD,8GAA8G;AAChH,EAAA,4CAA4C,EAAE,mBAAmB;AAEjE,EAAA,sCAAsC,EACpC,oDAAA;CACH;;ACrBD,IAAMA,YAAU,GAAG;AACjB,EAAA,8CAA8C,EAAE,mBAAmB;AACnE,EAAA,2CAA2C,EAAE,+BAA+B;AAE5E,EAAA,6DAA6D,EAC3D,4BAA4B;AAC9B,EAAA,6DAA6D,EAC3D,0BAA0B;AAC5B,EAAA,4DAA4D,EAAE,GAAG;AACjE,EAAA,4DAA4D,EAAE,KAAK;AACnE,EAAA,yEAAyE,EACvE,mCAAmC;AACrC,EAAA,yEAAyE,EACvE,oCAAoC;AACtC,EAAA,oEAAoE,EAClE,sBAAsB;AACxB,EAAA,sEAAsE,EACpE,oDAAoD;AAEtD,EAAA,qDAAqD,EACnD,6BAA6B;AAE/B,EAAA,sCAAsC,EAAE,aAAA;CACzC;;ACvBD,IAAMA,YAAU,GAAG;AACjB,EAAA,mCAAmC,EAAE,OAAO;AAE5C,EAAA,mDAAmD,EACjD,+BAA+B;AACjC,EAAA,mDAAmD,EACjD,iCAAiC;AACnC,EAAA,kDAAkD,EAAE,GAAG;AACvD,EAAA,kDAAkD,EAAE,KAAK;AACzD,EAAA,0DAA0D,EACxD,sBAAsB;AACxB,EAAA,+DAA+D,EAC7D,yCAAyC;AAC3C,EAAA,+DAA+D,EAC7D,wCAAwC;AAC1C,EAAA,4DAA4D,EAC1D,uEAAuE;AAEzE,EAAA,kCAAkC,EAAE,UAAU;AAC9C,EAAA,qCAAqC,EAAE,OAAO;AAC9C,EAAA,oDAAoD,EAAE,mBAAmB;AACzE,EAAA,iDAAiD,EAC/C,+BAA+B;AAEjC,EAAA,8BAA8B,EAAE,UAAA;CACjC;;ACzBD,IAAMpB,UAAU,GAAG;AACjB,EAAA,iCAAiC,EAAE,YAAY;AAC/C,EAAA,gCAAgC,EAAE,WAAA;CACnC;;ACHD,IAAMoB,UAAU,GAAG;AACjB,EAAA,oCAAoC,EAAE,mBAAmB;AACzD,EAAA,kCAAkC,EAAE,4BAAA;CACrC;;ACHD,IAAMC,cAAc,GAAG;AACrB,EAAA,wBAAwB,EAAE,gBAAgB;AAC1C,EAAA,+BAA+B,EAAE,oBAAA;CAClC;;ACiBD,IAAMC,cAAc,gBAAAxX,QAAA,CAIfyX,EAAAA,EAAAA,YAA+B,EAC/BC,YAAmB,EACnBC,YAAwC,EACxCC,YAA8B,EAC9BC,YAAgC,EAChCC,YAAyB,EAKzBC,YAAoB,EACpBC,YAAa,EACbC,YAAsB,EACtBC,YAA2B,EAC3BC,YAAgB,EAChBC,YAAkB,EAClBC,YAAsB,EACtBC,YAAqB,EACrBC,YAAsB,EACtBC,UAAsB,EACtBC,UAAkB,EAKlBlB,cAAc,CAClB;;AC9CD,IAAMmB,QAAQ,GAAG;AACfC,EAAAA,EAAE,EAAEnB,cAAc;AAClBoB,EAAAA,EAAE,EAAExC,cAAAA;CACL,CAAA;AAED,IAAMyC,WAAW,GAAG,SAAdA,WAAWA,CAAIja,MAAc,EAAI;AACrC,EAAA,IAAMka,cAAc,GAAGC,MAAM,CAACC,IAAI,CAACN,QAAQ,CAAC,CAACrb,QAAQ,MAAIuB,MAAQ,CAAC,GAC7DA,MAAgC,GACjCrC,sBAAsB,CAAA;EAE1B,OAAOmc,QAAQ,CAACI,cAAc,CAAC,CAAA;AACjC,CAAC;;ACCM,IAAMG,gBAAgB,gBAAGC,aAAa,CAC3CvX,SAAS,CACV,CAAA;AAED,IAAMT,KAAK,gBAAGiY,eAAe,EAAE,CAAA;AAE/B,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIxa,MAAc,EAAA;AAAA,EAAA,OACjCya,UAAU,CACR;AACEza,IAAAA,MAAM,EAANA,MAAM;IACN8Z,QAAQ,EAAEG,WAAW,CAACja,MAAM,CAAA;GAC7B,EACDsC,KAAK,CACN,CAAA;AAAA,CAAA,CAAA;AAEI,IAAMoY,WAAW,gBAAGJ,aAAa,cAACE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;AAQpD,IAAMG,eAAe,GAAmC,SAAlDA,eAAeA,CAAAhc,IAAA,EAIY;AAAA,EAAA,IAHtCic,QAAQ,GAAAjc,IAAA,CAARic,QAAQ;IACR5a,MAAM,GAAArB,IAAA,CAANqB,MAAM;IACN6a,iBAAiB,GAAAlc,IAAA,CAAjBkc,iBAAiB,CAAA;AAEjB,EAAA,IAAMC,OAAO,gBAAA,YAAA;AAAA,IAAA,IAAA3b,KAAA,GAAAP,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAOgc,QAAa,EAAEC,IAAS,EAAA;MAAA,IAAA5a,QAAA,EAAA6a,SAAA,CAAA;AAAA,MAAA,OAAApc,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OACtBlC,YAAY,CAACqC,GAAG,CAAA,EAAA,GAAI8a,QAAQ,EAAA3Z,QAAA,KAC9C4Z,IAAI,EAAA;AACP/c,cAAAA,OAAO,EAAE,EAAE;AAAA,aAAA,CACZ,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAHImC,QAAQ,GAAAR,QAAA,CAAAkB,IAAA,CAAA;YAAA,IAKVV,EAAAA,QAAQ,CAACO,MAAM,GAAG,GAAG,IAAIP,QAAQ,CAACO,MAAM,IAAI,GAAG,CAAA,EAAA;AAAAf,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;AAC7Cmb,YAAAA,SAAS,GAAG;AAAEC,cAAAA,OAAO,EAAE,EAAA;aAAI,CAAA;AAAAtb,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OAEXM,QAAQ,CAACC,IAAI,CAAA;AAAA,UAAA,KAAA,CAAA;YAA/B4a,SAAS,GAAArb,QAAA,CAAAkB,IAAA,CAAA;AAAAlB,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;YAAAD,QAAA,CAAAwD,EAAA,GAAAxD,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAETqb,YAAAA,SAAS,GAAG;cACVC,OAAO,EAAA,gDAAA;aACR,CAAA;AAAC,UAAA,KAAA,EAAA;AAAA,YAAA,MAEE,IAAIC,KAAK,CAACF,SAAS,CAACC,OAAO,CAAC,CAAA;AAAA,UAAA,KAAA,EAAA;AAAAtb,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;YAAA,OAGfM,QAAQ,CAACC,IAAI,CAAA;AAAA,UAAA,KAAA,EAAA;AAAAT,YAAAA,QAAA,CAAAwb,EAAA,GAAAxb,QAAA,CAAAkB,IAAA,CAAA;AAAAlB,YAAAA,QAAA,CAAAyb,EAAA,GAAWjb,QAAQ,CAACnC,OAAO,CAAA;YAAA,OAAA2B,QAAA,CAAAyB,MAAA,CAAA,QAAA,EAAA;cAApDia,IAAI,EAAA1b,QAAA,CAAAwb,EAAA;cAAuBnd,OAAO,EAAA2B,QAAA,CAAAyb,EAAAA;AAAA,aAAA,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAzb,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAxC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAC5C,CAAA,CAAA,CAAA;AAAA,IAAA,OAAA,SAnBK+b,OAAOA,CAAAtZ,EAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAtC,KAAA,CAAAwC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GAmBZ,EAAA,CAAA;AACD,EAAA,OACE4K,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAA8O,SAAS,EACR;AAAAtO,IAAAA,KAAK,EAAE;AACL6N,MAAAA,OAAO,EAAPA,OAAAA;AACD,KAAA;AAAA,GAAA,EAEDtO,KAAA,CAAAC,aAAA,CAAC+O,MAAM,EAAC;AAAAC,IAAAA,MAAM,EAAE;AAAEvE,MAAAA,YAAY,EAAZA,YAAAA;;GAAkB,CAAA,EACpC1K,KAAC,CAAAC,aAAA,CAAAiO,WAAW,CAACgB,QAAQ,EAAA;IAACzO,KAAK,EAAEuN,WAAW,CAACxa,MAAM,CAAA;GAAC,EAC9CwM,KAAA,CAAAC,aAAA,CAAC4N,gBAAgB,CAACqB,QAAQ,EAAA;AAACzO,IAAAA,KAAK,EAAE4N,iBAAAA;AAC/B,GAAA,EAAAD,QAAQ,CACiB,CACP,CACb,CACX,CAAA;AAEP,CAAC;;;ACrDM,IAAMe,gBAAgB,GAAoC,SAApDA,gBAAgBA,CAAAhd,IAAA,EAID;AAAA,EAAA,IAH1Bid,IAAI,GAAAjd,IAAA,CAAJid,IAAI;IAAAC,cAAA,GAAAld,IAAA,CACJmd,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,kBAAkB,GAAAA,cAAA;AAC3BE,IAAAA,WAAW,GAAAC,6BAAA,CAAArd,IAAA,EAAAsd,WAAA,CAAA,CAAA;AAEd,EAAA,IAAMC,eAAe,GAAGC,gBAAgB,EAAE,CAAA;AAC1C,EAAA,IAAMtB,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;AAEtD,EAAA,IAAMrJ,WAAW,GAAG,SAAdA,WAAWA,GAAQ;AACvB,IAAA,IAAMqL,SAAS,GACbT,IAAI,CAACU,gBAAgB,IAAIJ,eAAe,GACpC,sBAAsB,GACtB/P,aAAa,CAACyP,IAAI,CAAC,CAAA;IAEzBf,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,MAAAA,IAAI,EAAE,OAAO;AACbgP,MAAAA,KAAK,EAAE;AACLC,QAAAA,MAAM,EAAE,OAAO;AACfV,QAAAA,SAAS,EAATA,SAAS;QACTW,UAAU,EAAEb,IAAI,CAAC7O,IAAI;AACrBsP,QAAAA,SAAS,EAATA,SAAAA;AACD,OAAA;AACF,KAAA,CAAC,CAAA;GACH,CAAA;EAED,IAAIT,IAAI,CAACU,gBAAgB,EAAE;AACzB,IAAA,IAAIJ,eAAe,EAAE;MACnB,OACE1P,oBAACkQ,MAAM,EAAAtb,QAAA,KACD2a,WAAW,EAAA;AACf5K,QAAAA,EAAE,EAAEwL,IAAI;AACRxN,QAAAA,IAAI,EAAC,sBAAsB;AAC3B2C,QAAAA,OAAO,EAAEd,WAAAA;OAER4K,CAAAA,EAAAA,IAAI,CAAC7O,IAAI,CACH,CAAA;AAEb,KAAA;IAEA,OACEP,oBAACkQ,MAAM,EAAAtb,QAAA,KACD2a,WAAW,EAAA;AACfjK,MAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;AACZd,QAAAA,WAAW,EAAE,CAAA;AACb2F,QAAAA,eAAe,EAAE,CAAA;AACnB,OAAA;KAECiF,CAAAA,EAAAA,IAAI,CAAC7O,IAAI,CACH,CAAA;AAEb,GAAA;EAEA,OACEP,KAAC,CAAAC,aAAA,CAAAiQ,MAAM,EAAAtb,QAAA,KACD2a,WAAW,EAAA;AACf5K,IAAAA,EAAE,EAAEwL,IAAI;AACRxN,IAAAA,IAAI,EAAEhD,aAAa,CAACyP,IAAI,CAAC;AACzB9J,IAAAA,OAAO,EAAEd,WAAAA;GAER4K,CAAAA,EAAAA,IAAI,CAAC7O,IAAI,CACH,CAAA;AAEb,CAAC;;ACnEM,IAAM6P,IAAI,GAAG,SAAPA,IAAIA,CAAAje,IAAA,EAAA;AAAA,EAAA,IAAMiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAAA,EAAA,OAC1B4E,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,IAAAA,QAAQ,EAAC,UAAU;AACnBgE,IAAAA,KAAK,EAAC,MAAM;AACZG,IAAAA,MAAM,EAAC,4BAA4B;AACnC+L,IAAAA,SAAS,EAAC,KAAK;AACfC,IAAAA,eAAe,EAAC,UAAU;AAC1BC,IAAAA,SAAS,EAAC,QAAA;GAAQ,EAEjBnV,KAAK,CAAC4H,KAAK,IACVhD,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC4H,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAAC4H,KAAK,CAAC5G,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAAC4H,KAAK,CAAC6C,SAAS,IAAI,OAAA;;GAC7C,CAAA,EACF7F,KAAC,CAAAC,aAAA,CAAAuQ,QAAQ,EAAG,IAAA,CAAA,CAEf,EACApV,KAAK,CAACqV,KAAK,IACVzQ,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBuQ,IAAAA,MAAM,EAAC,GAAG;AACVC,IAAAA,oBAAoB,EAAC,MAAM;IAC3BxM,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;IACvCG,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AACxCsM,IAAAA,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAE1B5Q,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACqV,KAAK,CAAC9M,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAACqV,KAAK,CAACrU,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEzK,KAAK,CAACqV,KAAK,CAAC5K,SAAS,IAAI,OAAO;AAC3C8K,MAAAA,oBAAoB,EAAE,0BAAA;AACvB,KAAA;GAAA,CACD,CAEL,EACD3Q,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBE,IAAAA,IAAI,EAAC,GAAG;AACRD,IAAAA,GAAG,EAAC,KAAK;AACT+D,IAAAA,KAAK,EAAC,MAAM;IACZ0F,SAAS,EAAEzO,KAAK,CAACyO,SAAS;AAC1BgH,IAAAA,SAAS,EAAC,kBAAA;GAAkB,EAE5B7Q,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;AACnBC,IAAAA,MAAM,EAAA,IAAA;IACNC,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpBlH,IAAAA,YAAY,EAAE;AAAEmH,MAAAA,KAAK,EAAE,OAAA;KAAS;AAChChH,IAAAA,UAAU,EAAE;AACVgH,MAAAA,KAAK,EAAE,OAAO;MACd/G,IAAI,EAAE5O,KAAK,CAACyO,SAAS,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK;MAClDmH,EAAE,EAAE5V,KAAK,CAACyO,SAAS,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO;MACnDA,SAAS,EAAEzO,KAAK,CAACyO,SAAAA;KAClB;AACDI,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE,KAAK;MACXgH,EAAE,EAAE5V,KAAK,CAACyO,SAAS,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO;MACnDA,SAAS,EAAEzO,KAAK,CAACyO,SAAS;AAC1BkH,MAAAA,KAAK,EAAE,OAAA;;AAET,GAAA,CAAA,EAEF/Q,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHQ,IAAAA,GAAG,EAAC,GAAG;IACPJ,cAAc,EAAE1M,KAAK,CAACyO,SAAS,KAAK,QAAQ,GAAG,QAAQ,GAAG,OAAA;GAAO,EAEhEzO,KAAK,CAAC6V,MAAM,IACXjR,oBAACmP,gBAAgB,EAAA;AACfxX,IAAAA,GAAG,EAAEyD,KAAK,CAAC6V,MAAM,CAAC7Z,EAAE;AACpB0S,IAAAA,EAAE,EAAC,IAAI;AACPrC,IAAAA,IAAI,EAAC,IAAI;IACT2H,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClB3B,IAAAA,SAAS,EAAC,MAAA;IAEb,EACAlU,KAAK,CAAC8V,iBAAiB,CAAC3d,GAAG,CAAC,UAAC0d,MAAM,EAAA;AAAA,IAAA,OAClCjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAAxX,MAAAA,GAAG,EAAEsZ,MAAM,CAACA,MAAM,CAAC7Z,EAAE;AACrB0S,MAAAA,EAAE,EAAC,IAAI;AACPrC,MAAAA,IAAI,EAAC,IAAI;MACTiB,OAAO,EAAEuI,MAAM,CAACvI,OAAO;MACvB0G,IAAI,EAAE6B,MAAM,CAACA,MAAM;AACnB3B,MAAAA,SAAS,EAAC,MAAA;AAAM,KAAA,CAChB,CAAA;AAAA,GACH,CAAC,CACG,CACN,CACK,CACN,CACF,CAAA;AAAA,CACP;;ACvFM,IAAM6B,QAAQ,GAAG,SAAXA,QAAQA,CAAAhf,IAAA,EAA6C;AAAA,EAAA,IAAvCiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAC9B,EAAA,IAAMgW,OAAO,GAAG,SAAVA,OAAOA,GAAQ;AACnB,IAAA,IAAIhW,KAAK,CAACiW,sBAAsB,CAAC5a,MAAM,KAAK,CAAC,EAAE;MAC7C,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,KAAA;AACA,IAAA,IAAI2E,KAAK,CAACiW,sBAAsB,CAAC5a,MAAM,KAAK,CAAC,EAAE;AAC7C,MAAA,OAAO,CAAC,CAAA;AACV,KAAA;IACA,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,OACEuJ,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLpO,KAAK,CAACc,KAAK,GACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACG,IAAAA,UAAU,EAAC,QAAQ;AAACyJ,IAAAA,aAAa,EAAC,QAAA;AAAQ,GAAA,EAC9CtR,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpBlH,IAAAA,YAAY,EAAE;AAAEI,MAAAA,IAAI,EAAE,KAAK;AAAEH,MAAAA,SAAS,EAAE,QAAA;KAAU;AAClDE,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE,KAAK;AAAEH,MAAAA,SAAS,EAAE,QAAA;KAAU;AAChDI,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,KAAK;AAAEH,MAAAA,SAAS,EAAE,QAAA;AAAU,KAAA;GAAA,CAC/C,CACG,EACP7J,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACC,IAAAA,CAAC,EAAC,IAAA;AAAI,GAAA,CAAG,CAChB,GAEHxR,yCACD,EAEDA,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EACT;IAAAL,OAAO,EAAEA,OAAO,EAAE;IAClBlJ,GAAG,EAAE9M,KAAK,CAACiW,sBAAsB,CAAC5a,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;IAC5Dib,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;GAAC,EAE/BtW,KAAK,CAACiW,sBAAsB,CAAC9d,GAAG,CAAC,UAACoe,qBAAqB,EAAA;AAAA,IAAA,OACtD3R,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;MAACvI,GAAG,EAAEga,qBAAqB,CAACva,EAAAA;AAAE,KAAA,EAChC4I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACF0R,MAAAA,MAAM,EAAC,QAAQ;AACftB,MAAAA,eAAe,EAAC,YAAY;AAC5BpG,MAAAA,YAAY,EAAC,MAAM;AACnBtF,MAAAA,OAAO,EAAC,MAAM;AACdiD,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,cAAc,EAAC,cAAc;AAC7B3D,MAAAA,KAAK,EAAC,QAAQ;AACdG,MAAAA,MAAM,EAAC,QAAA;AAAQ,KAAA,EAEftE,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,MAAAA,QAAQ,EAAC,UAAU;AAACgE,MAAAA,KAAK,EAAC,IAAI;AAACG,MAAAA,MAAM,EAAC,IAAA;AAAI,KAAA,EAC7CtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CACjBiZ,qBAAqB,CAACnJ,IAAI,CAAC7E,GAAG,EAC9B,QAAQ,CACT;AACDvH,MAAAA,GAAG,EAAEuV,qBAAqB,CAACnJ,IAAI,CAACpM,GAAG;AACnCsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EACP8L,qBAAqB,CAACnJ,IAAI,CAAC3C,SAAS,IAAI,SAAA;AAC3C,OAAA;KAAA,CACD,CACE,CACF,EACN7F,KAAC,CAAAC,aAAA,CAAA4R,OAAO;AAACpK,MAAAA,IAAI,EAAC,IAAI;AAACoC,MAAAA,SAAS,EAAC,QAAQ;AAACiI,MAAAA,EAAE,EAAC,GAAG;AAAChI,MAAAA,EAAE,EAAC,GAAA;KAC7C,EAAA6H,qBAAqB,CAACzV,KAAK,CACpB,EACV8D,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAiB;AAACoC,MAAAA,SAAS,EAAC,QAAA;AAAQ,KAAA,EAC5C8H,qBAAqB,CAACpR,IAAI,CACtB,EACNoR,qBAAqB,CAACV,MAAM,IAC3BjR,oBAACE,GAAG,EAAA;AAAC2J,MAAAA,SAAS,EAAC,QAAA;AAAQ,KAAA,EACrB7J,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAAxX,MAAAA,GAAG,EAAEga,qBAAqB,CAACV,MAAM,CAAC7Z,EAAE;AACpC0S,MAAAA,EAAE,EAAC,GAAG;AACNrC,MAAAA,IAAI,EAAC,IAAI;AACTiB,MAAAA,OAAO,EAAC,SAAS;MACjB0G,IAAI,EAAEuC,qBAAqB,CAACV,MAAM;AAClC3B,MAAAA,SAAS,EAAC,UAAA;MACV,CAEL,CACG,CAAA;GACP,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;ACvHD,IAAM0C,YAAY,GAAG,SAAfA,YAAYA,GAAA;AAAA,EAAA,OAChBhS,KACE,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAAkE,IAAAA,KAAK,EAAC,IAAI;AACVG,IAAAA,MAAM,EAAC,IAAI;AACX2N,IAAAA,OAAO,EAAC,WAAW;AACnBvM,IAAAA,IAAI,EAAC,MAAM;AACXwM,IAAAA,KAAK,EAAC,4BAAA;AAA4B,GAAA,EAElClS,KAAG,CAAAC,aAAA,CAAA,GAAA,EAAA;AAAAkS,IAAAA,QAAQ,EAAC,qBAAA;AAAqB,GAAA,EAC/BnS,KACE,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAAmS,IAAAA,CAAC,EAAC,i5CAAi5C;AACn5C1M,IAAAA,IAAI,EAAC,SAAA;IACL,CACA,EACJ1F,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EACED,KAAU,CAAAC,aAAA,CAAA,UAAA,EAAA;AAAA7I,IAAAA,EAAE,EAAC,eAAA;AAAe,GAAA,EAC1B4I,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMkE,IAAAA,KAAK,EAAC,IAAI;AAACG,IAAAA,MAAM,EAAC,IAAI;AAACoB,IAAAA,IAAI,EAAC,OAAA;GAAU,CAAA,CACnC,CACN,CACH,CAAA;AAAA,CACP;;;ACVM,IAAM2M,wBAAwB,GAEjC,SAFSA,wBAAwBA,CAAAlgB,IAAA,EAEqB;AAAA,EAAA,IAAnDid,IAAI,GAAAjd,IAAA,CAAJid,IAAI;AAAKW,IAAAA,KAAK,GAAAP,6BAAA,CAAArd,IAAA,EAAAsd,SAAA,CAAA,CAAA;AACnB,EAAA,IAAM6C,WAAW,GAAG,SAAdA,WAAWA,CAAIC,WAAmB,EAAI;AAC1C,IAAA,QAAQA,WAAW;AACjB,MAAA,KAAK,UAAU;AAAE,QAAA;AACf,UAAA,OAAOvS,KAAA,CAAAC,aAAA,CAAC+R,YAAY,EAAA,IAAA,CAAG,CAAA;AACzB,SAAA;AACA,MAAA,KAAK,KAAK;AAAE,QAAA;AACV,UAAA,OAAOhS,KAAA,CAAAC,aAAA,CAACuS,KAAK,EAAA,IAAA,CAAG,CAAA;AAClB,SAAA;AACA,MAAA;AAAS,QAAA;AACP,UAAA,OAAOxS,KAAA,CAAAC,aAAA,CAAC2I,UAAU,EAAA,IAAA,CAAG,CAAA;AACvB,SAAA;AACF,KAAA;GACD,CAAA;EAED,OACE5I,oBAACmP,gBAAgB,EAAAva,QAAA,KACXmb,KAAK,EAAA;IACTX,IAAI,EAAEA,IAAI,CAACA,IAAI;AACfqD,IAAAA,SAAS,EAAEH,WAAW,CAAClD,IAAI,CAACmD,WAAW,CAAA;AAAC,GAAA,CACxC,CAAA,CAAA;AAEN,CAAC;;ACJM,IAAMG,SAAS,GAA6B,SAAtCA,SAASA,CAAAvgB,IAAA,EAED;AAAA,EAAA,IADnBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAEL,IAAAuX,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAEhB,EAAA,OACE3S,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEuC,SAAS;IAAE3W,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACrE8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAA;KAAU;AACrCE,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;KAAQ;AACjE8B,IAAAA,SAAS,EAAE;AAAEJ,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;AAAM,KAAA;AAC9D,GAAA,CAAA,EAEFnI,KAAC,CAAAC,aAAA,CAAAwR,UAAU;AACT3H,IAAAA,EAAE,EAAC,IAAI;AACPsH,IAAAA,OAAO,EAAE,CAAC;AACVlJ,IAAAA,GAAG,EAAC,IAAI;AACRwJ,IAAAA,MAAM,EAAC,IAAI;AACXoB,IAAAA,aAAa,EAAC,OAAA;GAAO,EAEpB1X,KAAK,CAAC2K,MAAM,CAACxS,GAAG,CAAC,UAAAZ,KAAA,EAAA;AAAA,IAAA,IAAGyE,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAE8E,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAE4U,QAAQ,GAAAne,KAAA,CAARme,QAAQ;MAAE9N,KAAK,GAAArQ,KAAA,CAALqQ,KAAK;MAAE/G,KAAK,GAAAtJ,KAAA,CAALsJ,KAAK,CAAA;AAAA,IAAA,OACpD+D,oBAACE,GAAG,EAAA;AAACvI,MAAAA,GAAG,EAAEP,EAAAA;AAAE,KAAA,EACV4I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,MAAAA,QAAQ,EAAC,UAAU;AAACmE,MAAAA,MAAM,EAAC,IAAI;AAAC4F,MAAAA,YAAY,EAAC,IAAA;AAAI,KAAA,EACpDlK,KAAC,CAAAC,aAAA,CAAAuF,OAAK;MACJC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;MACxCvH,GAAG,EAAE4G,KAAK,CAAC5G,GAAG;AACdsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE7C,KAAK,CAAC6C,SAAS,IAAI,OAAO;AACrCqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;KAAA,CACD,CACE,EACNlK,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAApK,MAAAA,IAAI,EAAC,IAAI;AAACqC,MAAAA,EAAE,EAAC,GAAA;KACnB,EAAA5N,KAAK,CACE,EACT4U,QAAQ,IAAI9Q,oBAAC+R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAA;AAAmB,KAAA,EAAAqJ,QAAQ,CAAQ,EAC1D7U,KAAK,IAAIA,KAAK,CAACxF,MAAM,GAAG,CAAC,IACxBuJ,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAC;AAAAoC,MAAAA,EAAE,EAAC,GAAG;AAACiJ,MAAAA,OAAO,EAAC,KAAK;AAAC7K,MAAAA,GAAG,EAAC,GAAG;AAAC8K,MAAAA,QAAQ,EAAC,MAAA;AACzC,KAAA,EAAA/W,KAAK,CAAC1I,GAAG,CAAC,UAAC6b,IAAI,EAAA;AAAA,MAAA,OACdpP,KAAA,CAAAC,aAAA,CAACoS,wBAAwB,EAAA;QACvB1a,GAAG,EAAEyX,IAAI,CAAChY,EAAE;AACZgY,QAAAA,IAAI,EAAEA,IAAI;AACV3H,QAAAA,IAAI,EAAC,IAAI;AACTiB,QAAAA,OAAO,EAAC,SAAS;AACjB4G,QAAAA,SAAS,EAAC,WAAA;AAAW,OAAA,CACrB,CAAA;KACH,CAAC,CAEL,CACG,CAAA;GACP,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;ACxDM,IAAM2D,iBAAiB,GAAqC,SAAtDA,iBAAiBA,CAAA9gB,IAAA,EAED;AAAA,EAAA,IAD3BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAgO,cAAA,GAAwBC,aAAa,CAACJ,mBAAmB,CAAC;AAAnDiK,IAAAA,aAAa,GAAA9J,cAAA,CAAA,CAAA,CAAA,CAAA;EACpB,IAAAuJ,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;EAChB,IAAAQ,UAAA,GAAkBP,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;AAA3CQ,IAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAEd,EAAA,OACEnT,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEuC,SAAS;IAAE3W,KAAK,EAAEd,KAAK,CAACc,KAAAA;GAAK,EACpEd,KAAK,CAACiY,UAAU,GACfrT,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,GAAG;AACPwQ,IAAAA,KAAK,EAAC,IAAI;IACVhM,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAA;AAAC,GAAA,EAEtC5E,KAAC,CAAAC,aAAA,CAAAuF,OAAK;IACJC,GAAG,EAAKjQ,OAAO,GAAiD,iDAAA;AAChE4G,IAAAA,GAAG,EAAC,KAAK;AACT+H,IAAAA,KAAK,EAAC,KAAK;AACXG,IAAAA,MAAM,EAAC,KAAA;IACP,CACE,EACNtE,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,IAAI;AACRwQ,IAAAA,KAAK,EAAC,KAAK;IACXhM,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAA;AAAC,GAAA,EAEtC5E,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;IACJC,GAAG,EAAKjQ,OAAO,GAAgD,gDAAA;AAC/D4G,IAAAA,GAAG,EAAC,KAAK;AACT+H,IAAAA,KAAK,EAAC,KAAK;AACXG,IAAAA,MAAM,EAAC,KAAA;AAAK,GAAA,CACZ,CACE,CACL,GAEHtE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;MAAEC,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA;KAAG;AACjEE,IAAAA,UAAU,EAAE;AACVC,MAAAA,IAAI,EAAE,KAAK;MACX7B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;MACxC0B,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA;KAC/C;AACDI,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE,KAAK;MACX7B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;MACxC0B,SAAS,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC/CkH,MAAAA,KAAK,EAAE,OAAA;;AAET,GAAA,CAAA,EAEF/Q,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EACT;AAAAvJ,IAAAA,GAAG,EAAC,IAAI;IACR4B,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAClCsH,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;GAAC,EAEhChW,KAAK,CAACkY,aAAa,CAAC/f,GAAG,CACtB,UAAAZ,KAAA,EAAqC0P,KAAK,EAAI;AAAA,IAAA,IAA3CjL,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAE8E,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAEqE,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI;MAAE0Q,MAAM,GAAAte,KAAA,CAANse,MAAM;MAAEjO,KAAK,GAAArQ,KAAA,CAALqQ,KAAK,CAAA;AAC/B,IAAA,IAAMuQ,QAAQ,GACZvT,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFC,MAAAA,QAAQ,EAAC,UAAU;AACnBgE,MAAAA,KAAK,EAAC,MAAM;MACZkM,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,KAAA,EAEpCrQ,KAAC,CAAAC,aAAA,CAAAuF,OAAK;MACJC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;MACvCvH,GAAG,EAAE4G,KAAK,CAAC5G,GAAG;AACdsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE7C,KAAK,CAAC6C,SAAS,IAAI,SAAS;AACvCqE,QAAAA,YAAY,EAAE,wBAAA;;KAEhB,CAAA,CACE,CAET,CAAA;AACD,IAAA,OACElK,KAAC,CAAAC,aAAA,CAAAyE,QAAQ,EAAC;AAAA/M,MAAAA,GAAG,EAAEP,EAAAA;AAAE,KAAA,EACd,CAAC8b,aAAa,IAAI7Q,KAAK,GAAG,CAAC,KAAK,CAAC,KAAKkR,QAAQ,EAC/CvT,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAA0E,MAAAA,OAAO,EAAC,MAAM;AACdiD,MAAAA,UAAU,EAAC,YAAY;AACvByJ,MAAAA,aAAa,EAAC,QAAQ;AACtBxJ,MAAAA,cAAc,EAAC,QAAA;AAAQ,KAAA,EAEvB9H,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA;AAAClN,MAAAA,EAAE,EAAC,IAAI;AAAC8C,MAAAA,IAAI,EAAC,IAAI;AAACqK,MAAAA,EAAE,EAAC,GAAA;KAAG,EAC9B5V,KAAK,CACE,EACV8D,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,MAAAA,IAAI,EAAC,iBAAA;KAAiB,EAAElH,IAAI,CAAQ,EACzC0Q,MAAM,IACLjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAArF,MAAAA,EAAE,EAAC,GAAG;AACNsF,MAAAA,IAAI,EAAE6B,MAAM;AACZxJ,MAAAA,IAAI,EAAC,IAAI;AACTiB,MAAAA,OAAO,EAAC,SAAS;AACjB+J,MAAAA,SAAS,EAAEzS,KAAC,CAAAC,aAAA,CAAA2I,UAAU;AAACnB,QAAAA,IAAI,EAAC,IAAI;AAACsJ,QAAAA,KAAK,EAAEqC,OAAAA;QAAW;AACnD9D,MAAAA,SAAS,EAAC,mBAAA;AAAmB,KAAA,CAEhC,CACG,EACL,CAAC4D,aAAa,IAAI7Q,KAAK,GAAG,CAAC,KAAK,CAAC,IAAIkR,QAAQ,CACrC,CAAA;GAEd,CACF,CACU,CACL,CACc,CAAA;AAE9B,CAAC;;ACzHM,IAAMC,iBAAiB,GAAqC,SAAtDA,iBAAiBA,CAAArhB,IAAA,EAED;AAAA,EAAA,IAD3BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAqY,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AACZ,EAAA,IAAMtF,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;AAEtD,EAAA,IAAM+F,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAQ;AAAA,IAAA,IAAAC,WAAA,CAAA;IACjC,IAAAA,CAAAA,WAAA,GAAIzY,KAAK,CAAC0Y,IAAI,KAAVD,IAAAA,IAAAA,WAAA,CAAY5C,MAAM,EAAE;AAAA,MAAA,IAAA8C,YAAA,CAAA;AACtB,MAAA,IAAI1F,iBAAiB,EAAE;AAAA,QAAA,IAAA2F,YAAA,EAAAC,YAAA,EAAAC,YAAA,CAAA;AACrB7F,QAAAA,iBAAiB,CAAC;AAChBtN,UAAAA,IAAI,EAAE,OAAO;AACbgP,UAAAA,KAAK,EAAE;AACLC,YAAAA,MAAM,EAAE,OAAO;AACfV,YAAAA,SAAS,EAAE,mBAAmB;AAC9BW,YAAAA,UAAU,EAAA+D,CAAAA,YAAA,GAAE5Y,KAAK,CAAC0Y,IAAI,KAAA,IAAA,IAAA,CAAAE,YAAA,GAAVA,YAAA,CAAY/C,MAAM,KAAlB+C,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAoBzT,IAAI;AACpCsP,YAAAA,SAAS,EAAElQ,aAAa,CAAAsU,CAAAA,YAAA,GAAC7Y,KAAK,CAAC0Y,IAAI,KAAVG,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAYhD,MAAM,CAAC;YAC5CkD,SAAS,EAAA,CAAAD,YAAA,GAAE9Y,KAAK,CAAC0Y,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAVI,YAAA,CAAYhY,KAAAA;AACxB,WAAA;AACF,SAAA,CAAC,CAAA;AACJ,OAAA;AAEAyX,MAAAA,IAAI,CAAChU,aAAa,CAAAoU,CAAAA,YAAA,GAAC3Y,KAAK,CAAC0Y,IAAI,KAAVC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAY9C,MAAM,CAAC,CAAC,CAAA;AACzC,KAAA;GACD,CAAA;AAED,EAAA,OACEjR,oBAACuJ,uBAAuB,EAAA;IAACrN,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACzC8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAmU,IAAI,EACH;IAAAC,eAAe,EAAE,CACf,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAClB;IACDC,YAAY,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC;AACpE5C,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,EAEX1R,KAAC,CAAAC,aAAA,CAAAsU,QAAQ;AAACC,IAAAA,OAAO,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,CAAC;IAAEC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EACjE1U,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;GACZ,CAAA,EAEDnF,KAAK,CAACuZ,eAAe,IACpB3U,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,IAAA;AAAO,GAAA,CAAA,EACtBtE,KAAA,CAAAC,aAAA,CAAC2U,UAAU,EAAC;IAAAC,SAAS,EAAEzZ,KAAK,CAACuZ,eAAAA;AAAmB,GAAA,CAAA,EAChD3U,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAC;AAAAjN,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,CAAG,CAEzB,EAEAlJ,KAAK,CAAC6V,MAAM,IACXjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;IAAAC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTqN,IAAAA,WAAW,EAAC,OAAO;AACnBpM,IAAAA,OAAO,EAAC,SAAS;IACjB+J,SAAS,EAAEzS,KAAA,CAAAC,aAAA,CAAC8U,UAAU,EAAA,IAAA,CAAG;AACzBzF,IAAAA,SAAS,EAAC,mBAAA;GAAmB,CAEhC,CACQ,EACXtP,KAAC,CAAAC,aAAA,CAAAsU,QAAQ;IACPC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjCC,IAAAA,OAAO,EAAE,CAAC;AACVtU,IAAAA,QAAQ,EAAC,UAAA;KAER/E,KAAK,CAAC0Y,IAAI,IACT9T,oBAACgV,aAAa,EAAA;AACZ9Y,IAAAA,KAAK,EAAEd,KAAK,CAAC0Y,IAAI,CAAC5X,KAAK;AACvB+U,IAAAA,MAAM,EACJ7V,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,IAAI;AACnB1Q,MAAAA,IAAI,EAAEnF,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,CAAC1Q,IAAI;AAC5B+E,MAAAA,OAAO,EAAEsO,qBAAAA;KACV;AAEHqB,IAAAA,KAAK,EAAE7Z,KAAK,CAAC0Y,IAAI,CAACmB,KAAK;AACvBjS,IAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AACnDvH,MAAAA,GAAG,EAAEhB,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAAC5G,GAAG;AACzBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAAS,OAAA;AAAA,KAAA,CAC3D;AAEJqP,IAAAA,eAAe,EAAE9Z,KAAK,CAAC0Y,IAAI,CAACoB,eAAAA;AAAe,GAAA,CAE9C,CACQ,CACN,CACC,CACc,CAAA;AAE9B,CAAC;;ACtGM,IAAMC,gBAAgB,GAAoC,SAApDA,gBAAgBA,CAAAhjB,IAAA,EAED;AAAA,EAAA,IAD1BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAEL,IAAAuX,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAEhB,EAAA,OACE3S,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEuC,SAAS;IAAE3W,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACrE8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;AAACL,IAAAA,OAAO,EAAE,CAAC;AAAElJ,IAAAA,GAAG,EAAC,IAAI;AAAC4K,IAAAA,aAAa,EAAC,OAAA;AAAO,GAAA,EACpD9S,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAA0E,IAAAA,OAAO,EAAC,MAAM;AACd0M,IAAAA,aAAa,EAAC,QAAQ;AACtBxJ,IAAAA,cAAc,EAAC,QAAQ;AACvBD,IAAAA,UAAU,EAAC,YAAA;AAAY,GAAA,EAEvB7H,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAC;AAAAlN,IAAAA,EAAE,EAAC,IAAI;AAAC8C,IAAAA,IAAI,EAAC,KAAK;AAACqK,IAAAA,EAAE,EAAC,GAAA;KAC5B1W,KAAK,CAACc,KAAK,CACJ,EACV8D,KAAA,CAAAC,aAAA,CAACmV,QAAQ,EAAC;IAAA3S,OAAO,EAAErH,KAAK,CAACmF,IAAAA;GAAQ,CAAA,EAChCnF,KAAK,CAAC6V,MAAM,IACXjR,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB;IACfC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTqN,IAAAA,WAAW,EAAC,OAAO;AACnBpM,IAAAA,OAAO,EAAC,SAAS;AACjBoB,IAAAA,EAAE,EAAC,GAAG;IACN2I,SAAS,EAAEzS,KAAC,CAAAC,aAAA,CAAA8U,UAAU,OAAG;AACzBzF,IAAAA,SAAS,EAAC,kBAAA;GAAkB,CAE/B,CACG,EACNtP,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,IAAAA,OAAO,EAAC,KAAK;AAACC,IAAAA,QAAQ,EAAC,MAAM;IAAC9K,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;GAAC,EAC9D9M,KAAK,CAACia,KAAK,CAAC9hB,GAAG,CAAC,UAAC+hB,IAAI,EAAA;AAAA,IAAA,OACpBtV,oBAAC0H,IAAI,EAAA;MACH/P,GAAG,EAAE2d,IAAI,CAACle,EAAE;AACZ0Q,MAAAA,cAAc,EAAC,QAAQ;AACvBD,MAAAA,UAAU,EAAC,QAAQ;AACnBG,MAAAA,QAAQ,EAAE,CAAC;AACXlD,MAAAA,UAAU,EAAE,CAAC;MACbmD,SAAS,EAAE7M,KAAK,CAACia,KAAK,CAAC5e,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,KAAA;AAAK,KAAA,EAEjDuJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,MAAAA,QAAQ,EAAC,UAAU;AAACmE,MAAAA,MAAM,EAAC,IAAI;AAACH,MAAAA,KAAK,EAAC,MAAA;KAAM,EAC9CmR,IAAI,CAAClG,IAAI,GACRpP,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AAAG0C,MAAAA,IAAI,EAAEhD,aAAa,CAAC2V,IAAI,CAAClG,IAAI,CAAA;AAAC,KAAA,EAC/BpP,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC4c,IAAI,CAAC3R,GAAG,EAAE,OAAO,CAAC;MACtCvH,GAAG,EAAEkZ,IAAI,CAAClZ,GAAG;AACbsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;AAAEE,QAAAA,SAAS,EAAEyP,IAAI,CAACzP,SAAS,IAAI,SAAA;AAAS,OAAA;MAC/C,CACA,GAEJ7F,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC4c,IAAI,CAAC3R,GAAG,EAAE,OAAO,CAAC;MACtCvH,GAAG,EAAEkZ,IAAI,CAAClZ,GAAG;AACbsJ,MAAAA,IAAI;AACJC,MAAAA,KAAK,EAAE;AAAEE,QAAAA,SAAS,EAAEyP,IAAI,CAACzP,SAAS,IAAI,SAAA;;KACtC,CACH,CACG,CACD,CAAA;AAAA,GACR,CAAC,CACG,CACI,CACL,CACc,CAAA;AAE9B,CAAC;;;AC3FM,IAAM0P,gBAAgB,gBAAGC,MAAM,CAACtV,GAAG,CAAC,CAAA0K,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAAA,CAAA,iRAAA,EAAA,+BAAA,CAAA,CAAA,CAAA,EAST9B,aAAa,CAG9C,CAAA;AAEM,IAAM0M,oBAAoB,gBAAGD,MAAM,CAACtV,GAAG,CAAC,CAAAwV,kBAAA,KAAAA,kBAAA,gBAAA7K,2BAAA,CAAA,CAAA,qLAAA,EAAA,wGAAA,CAAA,CAAA,CAAA,EAQb9B,aAAa,CAM9C,CAAA;AAEM,IAAM4M,cAAc,gBAAGH,MAAM,CAACtV,GAAG,CAAC,CAAA0V,kBAAA,KAAAA,kBAAA,gBAAA/K,2BAAA,CAAA,CAAA,wUAAA,EAAA,gCAAA,CAAA,CAAA,CAAA,EAeP9B,aAAa,CAG9C,CAAA;AAEM,IAAM8M,YAAY,gBAAGL,MAAM,CAACtV,GAAG,CAAC,CAAA4V,kBAAA,KAAAA,kBAAA,gBAAAjL,2BAAA,CAAA,CAAA,8KAAA,EAAA,iQAAA,CAAA,CAAA,CAAA,EAaL9B,aAAa,CAW9C,CAAA;AAEM,IAAMgN,WAAW,gBAAGP,MAAM,CAACtV,GAAG,CAAC,CAAA8V,gBAAA,KAAAA,gBAAA,gBAAAnL,2BAAA,CAAA,CAAA,kWAAA,EAAA,qOAAA,CAAA,CAAA,CAAA,EAgBJ9B,aAAa,CAS9C;;AC7EM,IAAMkN,OAAO,GAA2B,SAAlCA,OAAOA,CAAA9jB,IAAA,EAAuD;AAAA,EAAA,IAAzBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACrD,EAAA,IAAAgO,cAAA,GAA0BC,aAAa,CAACJ,mBAAmB,CAAC;AAArDiN,IAAAA,eAAe,GAAA9M,cAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,OACEpJ,KAAC,CAAAC,aAAA,CAAAsV,gBAAgB,EAAC;AAAAY,IAAAA,QAAQ,EAAC,MAAA;AAAM,GAAA,EAC9B/a,KAAK,CAACqV,KAAK,IACVzQ,oBAAC2V,cAAc,EAAA,IAAA,EACb3V,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACqV,KAAK,CAAC9M,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAACqV,KAAK,CAACrU,GAAG;AACpBsJ,IAAAA,IAAI,EAAA,IAAA;AACJC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAACqV,KAAK,CAAC5K,SAAS,IAAI,OAAA;AAAS,KAAA;AAAA,GAAA,CACtD,CAEL,EACD7F,KAAA,CAAAC,aAAA,CAACwV,oBAAoB,EAAA,IAAA,EACnBzV,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB,EACnB;AAAAC,IAAAA,MAAM,EACN,IAAA;IAAAC,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpB/G,IAAAA,UAAU,EAAE;MAAEC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;KAAG;AACvDC,IAAAA,SAAS,EAAE;MAAED,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;AAAC,KAAA;AACpD,GAAA,CAAA,EACD5O,KAAK,CAACU,OAAO,IAAIV,KAAK,CAACU,OAAO,CAACrF,MAAM,GAAG,CAAC,IACxCuJ,oBAAC0H,IAAI,EAAA;AAACoC,IAAAA,EAAE,EAAC,IAAI;AAACiJ,IAAAA,OAAO,EAAC,KAAK;AAAC7K,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EACjClI,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAAC,IAAAA,IAAI,EAAEhU,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;AACtB2L,IAAAA,IAAI,EAAC,IAAI;AACT6H,IAAAA,SAAS,EAAC,SAAA;AACV,GAAA,CAAA,EACDlU,KAAK,CAACU,OAAO,CAACrF,MAAM,KAAK,CAAC,IACzBuJ,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB;AACfC,IAAAA,IAAI,EAAEhU,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;AACtB4M,IAAAA,OAAO,EAAC,SAAS;AACjBjB,IAAAA,IAAI,EAAC,IAAI;AACT6H,IAAAA,SAAS,EAAC,SAAA;GACV,CACH,CAEJ,CACA,CACK,CACW,EACvBtP,KAAA,CAAAC,aAAA,CAAC4V,YAAY,EAAA,IAAA,EACVK,eAAe,GACdlW,KAAC,CAAAC,aAAA,CAAAuF,OAAK;IACJC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACgb,SAAS,CAACzS,GAAG,EAAE,QAAQ,CAAC;AAClDvH,IAAAA,GAAG,EAAEhB,KAAK,CAACgb,SAAS,CAACha,GAAG;AACxBsJ,IAAAA,IAAI;AACJC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAACgb,SAAS,CAACvQ,SAAS,IAAI,SAAA;AAAW,KAAA;AAAA,GAAA,CAC5D,GAEF7F,oBAACwF,OAAK,EAAA;IACJC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC7H,GAAG,CAACoQ,GAAG,EAAE,QAAQ,CAAC;AAC5CvH,IAAAA,GAAG,EAAEhB,KAAK,CAAC7H,GAAG,CAAC6I,GAAG;AAClBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAAC7H,GAAG,CAACsS,SAAS,IAAI,OAAA;AAAO,KAAA;IAErD,EACD7F,KAAA,CAAAC,aAAA,CAAC8V,WAAW,EAAA,IAAA,CAAG,CACF,CACE,CAAA;AAEvB,CAAC;;AC9FD,IAAMM,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,GAAW,EAAI;EACzC,IAAMC,OAAO,GACXD,GAAG,IACHA,GAAG,CAACE,KAAK,CACP,oEAAoE,CACrE,CAAA;AACH,EAAA,OAAOD,OAAO,GAAGA,OAAO,CAAChjB,GAAG,CAAC,UAAC0Q,CAAS,EAAA;AAAA,IAAA,OAAKA,CAAC,CAACwS,WAAW,EAAE,CAAA;AAAA,GAAA,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AAC7E,CAAC;;ACgBD,IAAMC,UAAQ,GAAG;AACfC,EAAAA,IAAI,EAAE;AACJtG,IAAAA,eAAe,EAAE,YAAY;AAC7BuG,IAAAA,YAAY,EAAE,aAAa;AAC3BC,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,gBAAgB,EAAE,OAAO;AACzBC,IAAAA,wBAAwB,EAAE,aAAA;GAC3B;AACDC,EAAAA,KAAK,EAAE;AACL3G,IAAAA,eAAe,EAAE,aAAa;AAC9BuG,IAAAA,YAAY,EAAE,OAAO;AACrBC,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,gBAAgB,EAAE,OAAO;AACzBC,IAAAA,wBAAwB,EAAE,aAAA;GAC3B;AACDE,EAAAA,KAAK,EAAE;AACL5G,IAAAA,eAAe,EAAE,OAAO;AACxBuG,IAAAA,YAAY,EAAE,aAAa;AAC3BC,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,gBAAgB,EAAE,OAAO;AACzBC,IAAAA,wBAAwB,EAAE,aAAA;AAC3B,GAAA;CACF,CAAA;AAmBM,IAAMG,KAAK,GAAyB,SAA9BA,KAAKA,CAAAhlB,IAAA,EAAmD;AAAA,EAAA,IAAAilB,cAAA,CAAA;AAAA,EAAA,IAAvBhc,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACjD,EAAA,IAAAqY,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AACZ,EAAA,IAAMtF,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;AAEtD,EAAA,IAAMwJ,qBAAqB,GAAG,SAAxBA,qBAAqBA,GAAQ;AAAA,IAAA,IAAAC,WAAA,CAAA;IACjC,IAAAA,CAAAA,WAAA,GAAIlc,KAAK,CAACmc,IAAI,KAAVD,IAAAA,IAAAA,WAAA,CAAYrG,MAAM,EAAE;MACtB5C,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,QAAAA,IAAI,EAAE,OAAO;AACbgP,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE,OAAO;AACfV,UAAAA,SAAS,EAAE,OAAO;AAClBW,UAAAA,UAAU,EAAE7U,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC1Q,IAAI;UAClCsP,SAAS,EAAElQ,aAAa,CAACvE,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC;AAC3CuG,UAAAA,OAAO,EAAE,MAAA;AACV,SAAA;AACF,OAAA,CAAC,CAAA;MACF7D,IAAI,CAAChU,aAAa,CAACvE,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC,CAAC,CAAA;AACxC,KAAA;GACD,CAAA;AAED,EAAA,IAAMvI,OAAO,GAAGiO,UAAQ,CAAA,CAAAS,cAAA,GAAChc,KAAK,CAACsN,OAAO,KAAA,IAAA,GAAA0O,cAAA,GAAI,OAAO,CAAC,CAAA;AAElD,EAAA,OACEpX,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFuX,IAAAA,EAAE,EAAErc,KAAK,CAACmc,IAAI,GAAG,EAAE,GAAG,EAAE;AACxBngB,IAAAA,EAAE,EAAEif,kBAAkB,CAACjb,KAAK,CAACc,KAAK,CAAC;IACnCoU,eAAe,EAAE5H,OAAO,CAAC4H,eAAAA;AAAe,GAAA,EAExCtQ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;IAACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAAC,GAAA,EACrCpR,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAACyI,IAAAA,EAAE,EAAC,IAAI;AAAC+O,IAAAA,QAAQ,EAAC,IAAA;AAAI,GAAA,EACxB1X,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,IAAAA,IAAI,EAAC,iBAAiB;IAACsJ,KAAK,EAAErI,OAAO,CAACmO,YAAAA;GAAY,EACrDzb,KAAK,CAACuO,OAAO,CACT,EACP3J,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA;AACNlN,IAAAA,EAAE,EAAC,IAAI;AACP8C,IAAAA,IAAI,EAAC,KAAK;IACVsJ,KAAK,EAAErI,OAAO,CAACoO,SAAS;AACxBhN,IAAAA,EAAE,EAAC,GAAG;AACNgI,IAAAA,EAAE,EAAC,IAAA;AAAI,GAAA,EAEN1W,KAAK,CAACc,KAAK,CACJ,CACN,EACN8D,KAAC,CAAAC,aAAA,CAAAC,GAAG;IACFyX,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACtCC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACnCC,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IACpCC,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA;AAAC,GAAA,EAE1C9X,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC8X,eAAe,EACd;IAAAC,IAAI,EAAE5c,KAAK,CAAC6c,mBAAmB;IAC/BC,YAAY,EAAE9c,KAAK,CAAC8c,YAAY;IAChCxP,OAAO,EAAEA,OAAO,CAACqO,gBAAAA;AACjB,GAAA,CAAA,EACF/W,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EACH;AAAAyQ,IAAAA,OAAO,EAAC,GAAG;IACX7H,eAAe,EAAE5H,OAAO,CAACsO,wBAAwB;AACjD9M,IAAAA,YAAY,EAAC,KAAK;AAClBJ,IAAAA,EAAE,EAAC,IAAI;IACPiJ,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACtCjL,cAAc,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;IAC3DD,UAAU,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA;AAAC,GAAA,EAEhD7H,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAC;AAAAlN,IAAAA,EAAE,EAAC,IAAI;AAAC8C,IAAAA,IAAI,EAAC,IAAI;AAACsJ,IAAAA,KAAK,EAAC,OAAA;KAC9B3V,KAAK,CAACgd,cAAc,CACb,EACVpY,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;IAAClB,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;AAAK,GAAA,CAAA,EAC7CrQ,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EAAA;AACf1H,IAAAA,IAAI,EAAC,IAAI;AACTqN,IAAAA,WAAW,EAAC,OAAO;AACnBzB,IAAAA,UAAU,EAAC,OAAO;IAClBZ,SAAS,EAAEzS,KAAA,CAAAC,aAAA,CAAC8U,UAAU,EAAA,IAAA,CAAG;IACzB3F,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClB3B,IAAAA,SAAS,EAAC,OAAA;IACV,CACG,CACH,CACF,CACK,CACL,CACN,EAELlU,KAAK,CAACmc,IAAI,IACTvX,KAAC,CAAAC,aAAA,CAAAC,GAAG,EAAC;AAAAuX,IAAAA,EAAE,EAAC,IAAI;AAAC3N,IAAAA,EAAE,EAAC,KAAA;AAAK,GAAA,EACnB9J,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAoY,QAAQ,EACP;AAAAnc,IAAAA,KAAK,EAAEd,KAAK,CAACmc,IAAI,CAACrb,KAAK;AACvB4U,IAAAA,QAAQ,EAAE1V,KAAK,CAACmc,IAAI,CAACzG,QAAQ;AAC7B1B,IAAAA,IAAI,EACFhU,KAAK,CAACmc,IAAI,CAACtG,MAAM,IAAI;AACnB1Q,MAAAA,IAAI,EAAEnF,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC1Q,IAAI;AAC5B+E,MAAAA,OAAO,EAAE+R,qBAAAA;KACV;AAEHrU,IAAAA,KAAK,EACH5H,KAAK,CAACmc,IAAI,CAACvU,KAAK,IACdhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AACnDvH,MAAAA,GAAG,EAAEhB,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAAC5G,GAAG;AACzBsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAAS,OAAA;KAAA,CAAA;GAE9D,CAEH,CACM,CAEb,CACA,CAAA;AAEP,CAAC;;ACnJM,IAAMyS,UAAU,GAA8B,SAAxCA,UAAUA,CAAAnmB,IAAA,EAED;AAAA,EAAA,IADpBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAqY,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AACZ,EAAA,IAAMtF,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;AAEtD,EAAA,IAAM0K,yBAAyB,GAAG,SAA5BA,yBAAyBA,GAAQ;AAAA,IAAA,IAAAjB,WAAA,CAAA;IACrC,IAAAA,CAAAA,WAAA,GAAIlc,KAAK,CAACmc,IAAI,KAAVD,IAAAA,IAAAA,WAAA,CAAYrG,MAAM,EAAE;MACtB5C,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,QAAAA,IAAI,EAAE,OAAO;AACbgP,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE,OAAO;AACfV,UAAAA,SAAS,EAAE,YAAY;AACvBW,UAAAA,UAAU,EAAE7U,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC1Q,IAAI;UAClCsP,SAAS,EAAElQ,aAAa,CAACvE,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC;AAC3CuG,UAAAA,OAAO,EAAE,MAAA;AACV,SAAA;AACF,OAAA,CAAC,CAAA;MACF7D,IAAI,CAAChU,aAAa,CAACvE,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC,CAAC,CAAA;AACxC,KAAA;GACD,CAAA;AAED,EAAA,OACEjR,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACF9I,IAAAA,EAAE,EAAEif,kBAAkB,CAACjb,KAAK,CAACc,KAAK,CAAC;AACnCiE,IAAAA,QAAQ,EAAC,UAAU;AACnByX,IAAAA,UAAU,EAAC,IAAI;IACfY,aAAa,EAAE,CAAC,CAACpd,KAAK,CAACmc,IAAI,GAAG,IAAI,GAAG,IAAA;AAAI,GAAA,EAExCnc,KAAK,CAACqd,MAAM,IAAIrd,KAAK,CAACqd,MAAM,CAAChiB,MAAM,KAAK,CAAC,IACxCuJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACyY,KAAK,EAAA;AACJjI,IAAAA,KAAK,EACHzQ,oBAACwF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAAC9U,GAAG,EAAE,OAAO,CAAC;MACjDvH,GAAG,EAAEhB,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAACrc,GAAG;AACxBsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAAC5S,SAAS,IAAI,OAAA;AAAO,OAAA;AACxD,KAAA,CAAA;AAEJzF,IAAAA,GAAG,EAAC,GAAG;AACPwQ,IAAAA,KAAK,EAAC,GAAG;AACTnJ,IAAAA,IAAI,EAAC,IAAI;AACTkR,IAAAA,MAAM,EAAC,aAAA;AACP,GAAA,CAAA,EACF3Y,KAAA,CAAAC,aAAA,CAACyY,KAAK,EAAA;AACJjI,IAAAA,KAAK,EACHzQ,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;AAAAC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAAC9U,GAAG,EAAE,OAAO,CAAC;MACjDvH,GAAG,EAAEhB,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAACrc,GAAG;AACxBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAACqd,MAAM,CAAC,CAAC,CAAC,CAAC5S,SAAS,IAAI,OAAA;AAAS,OAAA;AAAA,KAAA,CAC1D;AAEJ6K,IAAAA,MAAM,EAAC,GAAG;AACVrQ,IAAAA,IAAI,EAAC,GAAG;AACRsY,IAAAA,MAAM,EAAC,WAAA;AAAW,GAAA,CAClB,CAEL,EACD3Y,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAC8J,IAAAA,IAAI,EAAC,KAAA;AAAK,GAAA,EACbhK,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;IACZ,CACE,EACNP,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EACT;AAAAL,IAAAA,OAAO,EAAE,CAAC;AACVlJ,IAAAA,GAAG,EAAC,IAAI;AACRwJ,IAAAA,MAAM,EAAC,GAAG;AACV5H,IAAAA,EAAE,EAAC,IAAI;AACPgJ,IAAAA,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAA;KAEpC1X,KAAK,CAACwd,KAAK,CAACrlB,GAAG,CAAC,UAACugB,IAAI,EAAA;AAAA,IAAA,OACpB9T,KAAC,CAAAC,aAAA,CAAAC,GAAG;MAACvI,GAAG,EAAEmc,IAAI,CAAC1c,EAAE;AAAE+M,MAAAA,KAAK,EAAC,MAAM;AAACgS,MAAAA,QAAQ,EAAC,KAAA;AAAK,KAAA,EAC5CnW,KAAC,CAAAC,aAAA,CAAA4Y,SAAS;MACRlhB,GAAG,EAAEmc,IAAI,CAAC1c,EAAE;AACZ0hB,MAAAA,MAAM,EAAE;AACNtW,QAAAA,IAAI,EAAEsR,IAAI,CAACgF,MAAM,CAACtW,IAAI;AACtBrG,QAAAA,WAAW,EAAE2X,IAAI,CAACgF,MAAM,CAAC3c,WAAW;AACpC6G,QAAAA,KAAK,EACHhD,KAAC,CAAAC,aAAA,CAAAuF,OAAK;AACJC,UAAAA,GAAG,EAAE/M,cAAc,CAACob,IAAI,CAACgF,MAAM,CAAC9V,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;AACnDvH,UAAAA,GAAG,EAAE0X,IAAI,CAACgF,MAAM,CAAC9V,KAAK,CAAC5G,GAAG;AAC1BsJ,UAAAA,IAAI,EAAA,IAAA;AACJC,UAAAA,KAAK,EAAE;YACLE,SAAS,EAAEiO,IAAI,CAACgF,MAAM,CAAC9V,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAC3C,WAAA;SAAA,CAAA;OAGN;MACDtF,IAAI,EAAEuT,IAAI,CAACvT,IAAAA;AACX,KAAA,CAAA,CACE,CAAA;AAAA,GACP,CAAC,CACS,CACL,CACN,EACLnF,KAAK,CAACmc,IAAI,IACTvX,KAAC,CAAAC,aAAA,CAAAC,GAAG,EAAC;AAAA6Y,IAAAA,SAAS,EAAC,KAAK;AAACP,IAAAA,aAAa,EAAC,IAAA;AAAI,GAAA,EACrCxY,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAoY,QAAQ,EACP;AAAAnc,IAAAA,KAAK,EAAEd,KAAK,CAACmc,IAAI,CAACrb,KAAK;AACvB4U,IAAAA,QAAQ,EAAE1V,KAAK,CAACmc,IAAI,CAACzG,QAAQ;AAC7B1B,IAAAA,IAAI,EACFhU,KAAK,CAACmc,IAAI,CAACtG,MAAM,IAAI;AACnB1Q,MAAAA,IAAI,EAAEnF,KAAK,CAACmc,IAAI,CAACtG,MAAM,CAAC1Q,IAAI;AAC5B+E,MAAAA,OAAO,EAAEiT,yBAAAA;KACV;AAEHvV,IAAAA,KAAK,EACH5H,KAAK,CAACmc,IAAI,CAACvU,KAAK,IACdhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AACnDvH,MAAAA,GAAG,EAAEhB,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAAC5G,GAAG;AACzBsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAACmc,IAAI,CAACvU,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAAS,OAAA;KAAA,CAAA;GAE9D,CAEH,CACM,CAEb,CACA,CAAA;AAEP,CAAC;;AChJM,IAAMmT,eAAe,GAAmC,SAAlDA,eAAeA,CAAA7mB,IAAA,EAAA;AAAA,EAAA,IAC1BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAAA,OAEL4E,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAmU,IAAI;AAACC,IAAAA,eAAe,EAAC,iBAAiB;AAACnM,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAC7ClI,KAAA,CAAAC,aAAA,CAACsU,QAAQ,EAAA;IAACC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAAC,GAAA,EACpCxU,KAAA,CAAAC,aAAA,CAACmV,QAAQ,EAAA;IAAC3S,OAAO,EAAErH,KAAK,CAACqH,OAAAA;AAAO,GAAA,CAAI,CAC3B,CACN,CACC,CACc,CAAA;AAAA,CAC3B;;ACkBM,IAAMwW,KAAK,GAAyB,SAA9BA,KAAKA,CAAA9mB,IAAA,EAAmD;AAAA,EAAA,IAAA+mB,kBAAA,CAAA;AAAA,EAAA,IAAvB9d,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACjD,EAAA,IAAAqY,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AACZ,EAAA,IAAMtF,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;EAEtD,IAAA8E,SAAA,GAAkBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;AAA3CuG,IAAAA,OAAO,GAAAxG,SAAA,CAAA,CAAA,CAAA,CAAA;AAEd,EAAA,IAAMtM,YAAY,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AAEjD,EAAA,IAAAnD,SAAA,GAAgCC,QAAQ,CAAC,IAAIjC,KAAK,CAAC/F,KAAK,CAACge,KAAK,CAAC3iB,MAAM,CAAC,CAAC;AAAhE4iB,IAAAA,QAAQ,GAAAlW,SAAA,CAAA,CAAA,CAAA;AAAEmW,IAAAA,WAAW,GAAAnW,SAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAI,UAAA,GAAwCH,QAAQ,CAC9C,IAAIjC,KAAK,CAAC/F,KAAK,CAACge,KAAK,CAAC3iB,MAAM,CAAC,CAC9B;AAFM8iB,IAAAA,YAAY,GAAAhW,UAAA,CAAA,CAAA,CAAA;AAAEiW,IAAAA,eAAe,GAAAjW,UAAA,CAAA,CAAA,CAAA,CAAA;AAIpC,EAAA,IAAAkW,gBAAA,GAAuBC,eAAe,EAAE;IAA7BC,OAAO,GAAAF,gBAAA,CAAVrV,CAAC,CAAA;AACT,EAAA,IAAAwV,cAAA,GAAiCC,aAAa,EAAE;IAAhCC,YAAY,GAAAF,cAAA,CAApBtV,MAAM,CAAA;AAEd,EAAA,IAAMyV,2BAA2B,GAAG,SAA9BA,2BAA2BA,GAAQ;AAAA,IAAA,IAAAlG,WAAA,CAAA;IACvC,IAAAA,CAAAA,WAAA,GAAIzY,KAAK,CAAC0Y,IAAI,KAAVD,IAAAA,IAAAA,WAAA,CAAY5C,MAAM,EAAE;MACtB5C,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,QAAAA,IAAI,EAAE,OAAO;AACbgP,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE,OAAO;AACfV,UAAAA,SAAS,EAAE,OAAO;AAClBW,UAAAA,UAAU,EAAE7U,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,CAAC1Q,IAAI;UAClCsP,SAAS,EAAElQ,aAAa,CAACvE,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,CAAC;AAC3CuG,UAAAA,OAAO,EAAE,MAAA;AACV,SAAA;AACF,OAAA,CAAC,CAAA;MACF7D,IAAI,CAAChU,aAAa,CAACvE,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,CAAC,CAAC,CAAA;AACxC,KAAA;GACD,CAAA;AACDjK,EAAAA,SAAS,CAAC,YAAK;AACbsS,IAAAA,WAAW,CAACle,KAAK,CAACge,KAAK,CAAC7lB,GAAG,CAAC,YAAA;MAAA,OAAMymB,SAAS,EAAE,CAAA;AAAA,KAAA,CAAC,CAAC,CAAA;GAChD,EAAE,EAAE,CAAC,CAAA;AAENhT,EAAAA,SAAS,CAAC,YAAK;AAAA,IAAA,IAAAE,qBAAA,CAAA;AACb,IAAA,IAAM+S,kBAAkB,GAAG,CAAA/S,CAAAA,qBAAA,GAAAb,YAAY,CAACc,OAAO,KAApBD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBgT,SAAS,KAAI,CAAC,CAAA;AAC/DV,IAAAA,eAAe,CACbH,QAAQ,CAAC9lB,GAAG,CAAC,UAACwU,GAAG,EAAI;AAAA,MAAA,IAAAoS,YAAA,CAAA;AACnB,MAAA,IAAMC,oBAAoB,GAAG,CAAAD,CAAAA,YAAA,GAAApS,GAAG,CAACZ,OAAO,KAAXgT,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAaD,SAAS,KAAI,CAAC,CAAA;AACxD,MAAA,OAAOD,kBAAkB,GAAGG,oBAAoB,GAC9CT,OAAO,GAAGG,YAAY,GAAG,CAAC,GACxB,GAAG,GACH,CAAC,CAAA;AACP,KAAC,CAAC,CACH,CAAA;AACH,GAAC,EAAE,CAACH,OAAO,CAAC,CAAC,CAAA;AAEb,EAAA,OACE3Z,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK8H,IAAAA,GAAG,EAAE1B,YAAAA;AAAY,GAAA,EACpBrG,KAAC,CAAAC,aAAA,CAAAsJ,uBAAuB,EAAC;AAAA+G,IAAAA,eAAe,EAAE6I,OAAO;IAAEjd,KAAK,EAAEd,KAAK,CAACc,KAAAA;GAAK,EACnE8D,KACG,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EAAAtJ,KAAK,CAAC4H,KAAK,IACVhD,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,GAAG;AACPC,IAAAA,IAAI,EAAC,GAAG;AACR8D,IAAAA,KAAK,EAAC,MAAM;AACZG,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,EAEbtE,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC4H,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAAC4H,KAAK,CAAC5G,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAAC4H,KAAK,CAAC6C,SAAS,IAAI,OAAA;;AAC7C,GAAA,CAAA,EACF7F,KAAA,CAAAC,aAAA,CAACuQ,QAAQ,EAAA,IAAA,CAAG,CAEf,CACA,EACHxQ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAA;KAAU;AACrCE,IAAAA,UAAU,EAAE;AACVF,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAM;AACf4I,MAAAA,KAAK,EAAE,OAAA;KACR;AACD9G,IAAAA,SAAS,EAAE;AACTJ,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,IAAI;AACV7B,MAAAA,OAAO,EAAE,MAAM;AACf4I,MAAAA,KAAK,EAAE,gBAAA;;AAET,GAAA,CAAA,EAEF/Q,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAAC6Y,IAAAA,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;GAC9B,EAAA3d,KAAK,CAACge,KAAK,CAAC7lB,GAAG,CAAC,UAAAZ,KAAA,EAA4B0P,KAAK,EAAA;AAAA,IAAA,IAA9BjL,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAEijB,IAAI,GAAA1nB,KAAA,CAAJ0nB,IAAI;MAAEne,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAEqE,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI,CAAA;AAAA,IAAA,OACvCP,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACqL,MAAAA,OAAO,EAAC,QAAQ;AAAClL,MAAAA,UAAU,EAAC,QAAQ;AAAClQ,MAAAA,GAAG,EAAEP,EAAAA;AAAE,KAAA,EAChD4I,KAAA,CAAAC,aAAA,CAACqa,MAAM,EACL;AAAAnW,MAAAA,KAAK,EAAC,IAAI;AACVG,MAAAA,MAAM,EAAC,IAAI;AACX4F,MAAAA,YAAY,EAAC,MAAM;AACnBoG,MAAAA,eAAe,EAAC,OAAA;AAAO,KAAA,EAEvBtQ,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAiB;AAACsJ,MAAAA,KAAK,EAAC,OAAA;KAAO,EACvCsJ,IAAI,CACA,CACA,EACTra,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAC;AAAApK,MAAAA,IAAI,EAAC,IAAI;AAACsJ,MAAAA,KAAK,EAAC,OAAO;AAACjH,MAAAA,EAAE,EAAC,GAAG;AAACD,MAAAA,SAAS,EAAC,QAAA;KAAQ,EACvD3N,KAAK,CACE,EACTqE,IAAI,IACHP,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAC8J,MAAAA,IAAI,EAAC,IAAI;AAACF,MAAAA,EAAE,EAAC,GAAA;AAAG,KAAA,EACnB9J,KAAA,CAAAC,aAAA,CAACmV,QAAQ,EAAA;AACPmF,MAAAA,OAAO,EAAE;AAAEC,QAAAA,UAAU,EAAE,IAAA;OAAM;AAC7B/X,MAAAA,OAAO,EAAElC,IAAI;AACb0J,MAAAA,SAAS,EAAE;AACTxC,QAAAA,IAAI,EAAE,iBAAiB;AACvBsJ,QAAAA,KAAK,EAAE,gBAAgB;AACvBlH,QAAAA,SAAS,EAAE,QAAA;AACZ,OAAA;KAAA,CACD,CAEL,EACA,CAACxH,KAAK,GAAG,CAAC,GAAGjH,KAAK,CAACge,KAAK,CAAC3iB,MAAM,IAAI2E,KAAK,CAAC0Y,IAAI,KAC5C9T,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAA6H,MAAAA,GAAG,EAAEsR,QAAQ,CAAChX,KAAK,CAAC;AACpBlC,MAAAA,QAAQ,EAAC,UAAU;AACnB4Y,MAAAA,SAAS,EAAC,GAAG;AACb0B,MAAAA,YAAY,EAAC,GAAG;AAChBnW,MAAAA,MAAM,EAAC,IAAA;AAAI,KAAA,EAEXtE,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AACnBmE,MAAAA,MAAM,EAAC,MAAM;AACboW,MAAAA,UAAU,EAAC,kBAAkB;AAC7BC,MAAAA,OAAO,EAAC,KAAA;AACR,KAAA,CAAA,EACF3a,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,MAAAA,QAAQ,EAAC,UAAU;AACnBmE,MAAAA,MAAM,EAAKiV,YAAY,CAAClX,KAAK,CAAC,GAAG,GAAA;AACjCuY,MAAAA,WAAW,EAAC,iBAAiB;AAC7BD,MAAAA,OAAO,EAAC,GAAG;AACXE,MAAAA,UAAU,EAAC,+CAAA;KAA+C,CAC1D,CAEL,CACI,CAAA;AAAA,GACR,CAAC,CACE,EAELzf,KAAK,CAAC0Y,IAAI,IACT9T,KAAA,CAAAC,aAAA,CAAC6a,UAAU,EACT;AAAAnR,IAAAA,OAAO,EAAEvO,KAAK,CAAC0Y,IAAI,CAACnK,OAAO;AAC3BzN,IAAAA,KAAK,EAAEd,KAAK,CAAC0Y,IAAI,CAAC5X,KAAK;AACvBqE,IAAAA,IAAI,EAAEnF,KAAK,CAAC0Y,IAAI,CAACvT,IAAI;IACrBkY,MAAM,EACJrd,KAAK,CAAC0Y,IAAI,CAAC2E,MAAM,KAAA,CAAAS,kBAAA,GACjB9d,KAAK,CAAC0Y,IAAI,CAAC2E,MAAM,KAAjBS,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kBAAA,CAAmB3lB,GAAG,CAAC,UAACkd,KAAK,EAAA;AAAA,MAAA,OAC3BzQ,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;QACJ7N,GAAG,EAAE8Y,KAAK,CAACrZ,EAAE;QACbqO,GAAG,EAAE/M,cAAc,CAAC+X,KAAK,CAAC9M,GAAG,EAAE,OAAO,CAAC;QACvCvH,GAAG,EAAEqU,KAAK,CAACrU,GAAG;AACdsJ,QAAAA,IAAI,EAAA,IAAA;AACJC,QAAAA,KAAK,EAAE;AAAEE,UAAAA,SAAS,EAAE4K,KAAK,CAAC5K,SAAS,IAAI,OAAA;AAAO,SAAA;AAC9C,OAAA,CAAA,CAAA;AAAA,KACH,CAAC,CAAA;AAEJoL,IAAAA,MAAM,EACJ7V,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,IAAI;AACnB1Q,MAAAA,IAAI,EAAEnF,KAAK,CAAC0Y,IAAI,CAAC7C,MAAM,CAAC1Q,IAAI;AAC5B+E,MAAAA,OAAO,EAAEyU,2BAAAA;AACV,KAAA;AAAA,GAAA,CAGN,CACA,CACK,CACc,CACtB,CAAA;AAEV,CAAC;;;ACzLD,IAAKgB,aAMJ,CAAA;AAND,CAAA,UAAKA,aAAa,EAAA;AAChBA,EAAAA,aAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpBA,EAAAA,aAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtBA,EAAAA,aAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1BA,EAAAA,aAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5BA,EAAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EANIA,aAAa,KAAbA,aAAa,GAMjB,EAAA,CAAA,CAAA,CAAA;AAED,IAAMC,cAAc,GAAoB,CACtCD,aAAa,CAACE,OAAO,EACrBF,aAAa,CAACG,WAAW,EACzBH,aAAa,CAACI,QAAQ,EACtBJ,aAAa,CAACK,UAAU,EACxBL,aAAa,CAACI,QAAQ,EACtBJ,aAAa,CAACK,UAAU,EACxBL,aAAa,CAACE,OAAO,EACrBF,aAAa,CAACG,WAAW,CAC1B,CAAA;AAED,IAAMG,kBAAkB,IAAAC,mBAAA,GAAAA,EAAAA,EAAAA,mBAAA,CACrBP,aAAa,CAACK,UAAU,CAAA,GAAGL,aAAa,CAACI,QAAQ,EAAAG,mBAAA,CACjDP,aAAa,CAACI,QAAQ,CAAGJ,GAAAA,aAAa,CAACK,UAAU,EAAAE,mBAAA,CACjDP,aAAa,CAACG,WAAW,CAAA,GAAGH,aAAa,CAACE,OAAO,EAAAK,mBAAA,CACjDP,aAAa,CAACE,OAAO,CAAA,GAAGF,aAAa,CAACG,WAAW,EAAAI,mBAAA,CACjDP,aAAa,CAACQ,KAAK,CAAGR,GAAAA,aAAa,CAACQ,KAAK,EAAAD,mBAAA,CAC3C,CAAA;AAWD,IAAME,QAAQ,GAAuC;AACnD/K,EAAAA,KAAK,EAAE;IACL0H,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC/BsD,IAAAA,YAAY,EAAE,SAAdA,YAAYA,CAAGpZ,KAAa,EAAA;AAAA,MAAA,OAC1B2Y,cAAc,CAAC3Y,KAAK,GAAG2Y,cAAc,CAACvkB,MAAM,CAAC,CAAA;AAAA,KAAA;AAC/C0N,IAAAA,KAAK,EAAE,IAAI;AACXG,IAAAA,MAAM,EAAE,IAAI;AACZnE,IAAAA,QAAQ,EAAE,UAAU;AACpB2R,IAAAA,EAAE,EAAE,OAAA;GACL;AACD9O,EAAAA,KAAK,EAAE;IACLmV,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IAC/BsD,YAAY,EAAE,SAAdA,YAAYA,GAAA;MAAA,OAAQV,aAAa,CAACQ,KAAK,CAAA;AAAA,KAAA;AACvCpX,IAAAA,KAAK,EAAE,IAAI;AACXG,IAAAA,MAAM,EAAE,IAAI;AACZnE,IAAAA,QAAQ,EAAE,UAAU;AACpB2R,IAAAA,EAAE,EAAE,IAAA;AACL,GAAA;CACF,CAAA;AAEM,IAAM4J,YAAY,GAAgC,SAA5CA,YAAYA,CAAAvpB,IAAA,EAED;AAAA,EAAA,IADtBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAEL,IAAAuX,SAAA,GAAqBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;AAAjD+I,IAAAA,UAAU,GAAAhJ,SAAA,CAAA,CAAA,CAAA,CAAA;AAEjB,EAAA,OACE3S,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEqL,UAAU;IAAEzf,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACtE8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAQ;AAAEkH,MAAAA,KAAK,EAAE,OAAA;KAAS;AACrDhH,IAAAA,UAAU,EAAE;AACVF,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAM;AACf4I,MAAAA,KAAK,EAAE,OAAA;KACR;AACD9G,IAAAA,SAAS,EAAE;AACTJ,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,IAAI;AACV7B,MAAAA,OAAO,EAAE,MAAM;AACf4I,MAAAA,KAAK,EAAE,gBAAA;;AAET,GAAA,CAAA,EAEF/Q,KAAA,CAAAC,aAAA,CAACwR,UAAU,EACT;IAAA3H,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5BsH,IAAAA,OAAO,EAAE,CAAC;AACVwK,IAAAA,YAAY,EAAC,QAAQ;AACrB1T,IAAAA,GAAG,EAAC,IAAI;AACRwJ,IAAAA,MAAM,EAAC,IAAI;AACXoB,IAAAA,aAAa,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAA;GAEpC,EAAA1X,KAAK,CAACwd,KAAK,CAACrlB,GAAG,CACd,UAAAZ,KAAA,EAA+C0P,KAAK,EAAA;AAAA,IAAA,IAAjDjL,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAEuS,OAAO,GAAAhX,KAAA,CAAPgX,OAAO;MAAEzN,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAEqE,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI;MAAEyC,KAAK,GAAArQ,KAAA,CAALqQ,KAAK;MAAElH,OAAO,GAAAnJ,KAAA,CAAPmJ,OAAO,CAAA;AAAA,IAAA,OACzCkE,oBAACE,GAAG,EAAA;AACFvI,MAAAA,GAAG,EAAEP,EAAE;AACPkZ,MAAAA,eAAe,EAAC,OAAO;AACvBuL,MAAAA,MAAM,EAAC,MAAM;MACb1D,OAAO,EAAEqD,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAACyP,OAAO;AACxC2D,MAAAA,SAAS,EAAC,IAAI;AACd5R,MAAAA,YAAY,EAAC,KAAK;AAClBmG,MAAAA,SAAS,EAAC,KAAK;AACflM,MAAAA,KAAK,EAAC,MAAM;MACZgS,QAAQ,EAAE/a,KAAK,CAACwd,KAAK,CAACniB,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI;AACjD0J,MAAAA,QAAQ,EAAC,UAAU;AACnByE,MAAAA,OAAO,EAAC,MAAM;AACdmO,MAAAA,OAAO,EAAC,QAAQ;AAChBlL,MAAAA,UAAU,EAAC,YAAY;MACvBC,cAAc,EACZ1M,KAAK,CAACsN,OAAO,KAAK,OAAO,GAAG,UAAU,GAAG,YAAY;AAEvD7D,MAAAA,QAAQ,EAAC,QAAA;AAAQ,KAAA,EAEjB7E,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;MACFC,QAAQ,EAAEqb,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAACvI,QAAQ;MAC1CgE,KAAK,EAAEqX,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAACvE,KAAK;MACpCG,MAAM,EAAEkX,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAACpE,MAAM;MACtCwN,EAAE,EAAE0J,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAACoJ,EAAE;MAC9B1R,GAAG,EACDob,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAACpQ,QAAQ,CAAC,KAAK,CAAC,GACvD,IAAI,GACJ,OAAO;MAEboO,IAAI,EACFmb,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAACpQ,QAAQ,CAAC,MAAM,CAAC,GACxD,IAAI,GACJ,OAAO;MAEb2e,KAAK,EACH4K,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CACpB+S,YAAY,CAACpZ,KAAK,CAAC,CACnBpQ,QAAQ,CAAC,OAAO,CAAC,GAChB,IAAI,GACJ,OAAO;MAEbye,MAAM,EACJ8K,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CACpB+S,YAAY,CAACpZ,KAAK,CAAC,CACnBpQ,QAAQ,CAAC,QAAQ,CAAC,GACjB,IAAI,GACJ,OAAO;MAEb8pB,uBAAuB,EACrBV,kBAAkB,CAChBG,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAC5C,CAACpQ,QAAQ,CAAC,aAAa,CAAC,GACrB,MAAM,GACN,OAAO;MAEb+pB,sBAAsB,EACpBX,kBAAkB,CAChBG,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAC5C,CAACpQ,QAAQ,CAAC,YAAY,CAAC,GACpB,MAAM,GACN,OAAO;MAEb0e,oBAAoB,EAClB0K,kBAAkB,CAChBG,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAC5C,CAACpQ,QAAQ,CAAC,UAAU,CAAC,GAClB,MAAM,GACN,OAAO;MAEbgqB,mBAAmB,EACjBZ,kBAAkB,CAChBG,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAC5C,CAACpQ,QAAQ,CAAC,SAAS,CAAC,GACjB,MAAM,GACN,OAAO;MAEb0Y,GAAG,EACD6Q,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CACpB+S,YAAY,CAACpZ,KAAK,CAAC,CACnBpQ,QAAQ,CAAC,OAAO,CAAC,GAChB0Y,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,GAAAC,2BAAA,CAAA,CAAA,iOAAA,CAAA,CAAA,CAAA,CAAA,GAOHF,GAAG,CAAA+K,kBAAA,KAAAA,kBAAA,GAAA7K,2BAAA,CAAA,CAAA,mHAAA,EAAA,+EAAA,CAAA,CAAA,CAAA,EAKHwQ,kBAAkB,CAChBG,QAAQ,CAACpgB,KAAK,CAACsN,OAAO,CAAC,CAAC+S,YAAY,CAACpZ,KAAK,CAAC,CAE/C,CAAA;AAEH,KAAA,EAGDrC,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;MACJC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;MACvCvH,GAAG,EAAE4G,KAAK,CAAC5G,GAAG;AACdsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AAAEE,QAAAA,SAAS,EAAE7C,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAAO,OAAA;MAC9C,CACE,EACN7F,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAAC2b,MAAAA,MAAM,EAAC,WAAW;AAAC1X,MAAAA,KAAK,EAAC,MAAA;KAAM,EACjCwF,OAAO,IACN3J,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAhB,MAAAA,KAAK,EAAC,OAAO;AAACtJ,MAAAA,IAAI,EAAC,cAAc;AAACqK,MAAAA,EAAE,EAAC,GAAA;KACxC,EAAAnI,OAAO,CAEX,EACD3J,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA;AAAClN,MAAAA,EAAE,EAAC,IAAI;AAAC8C,MAAAA,IAAI,EAAC,IAAI;AAACqK,MAAAA,EAAE,EAAC,GAAA;KAAG,EAC9B5V,KAAK,CACE,EACV8D,KAAA,CAAAC,aAAA,CAACmV,QAAQ,EACP;AAAA3S,MAAAA,OAAO,EAAElC,IAAI;AACb2b,MAAAA,SAAS,EAAE;AACTpF,QAAAA,SAAS,EAAE,UAAU;AACrBqF,QAAAA,QAAQ,EAAE,iBAAA;OACX;AACDlS,MAAAA,SAAS,EAAE;AACT8G,QAAAA,KAAK,EAAE,UAAU;AACjBtJ,QAAAA,IAAI,EAAE,iBAAA;;AAER,KAAA,CAAA,EACD3L,OAAO,IAAI,CAAC,CAACA,OAAO,CAACrF,MAAM,IAC1BuJ,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AACHoC,MAAAA,EAAE,EAAC,GAAG;AACN5B,MAAAA,GAAG,EAAC,GAAG;MACP6K,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;KAAC,EAE3CjX,OAAO,CAACvI,GAAG,CAAC,UAAC0d,MAAM,EAAEmL,WAAW,EAAA;AAAA,MAAA,OAC/Bpc,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB,EACf;QAAAxX,GAAG,EAAEsZ,MAAM,CAAC7Z,EAAE;AACdgY,QAAAA,IAAI,EAAE6B,MAAM;AACZxJ,QAAAA,IAAI,EAAC,IAAI;QACTgL,SAAS,EACP2J,WAAW,KAAK,CAAC,GACfpc,KAAA,CAAAC,aAAA,CAAC2I,UAAU,EAAA;AAACnB,UAAAA,IAAI,EAAC,IAAI;AAAC4U,UAAAA,MAAM,EAAC,MAAA;SAAS,CAAA,GACpC9lB,SAAS;AAEfmS,QAAAA,OAAO,EAAE0T,WAAW,KAAK,CAAC,GAAG,SAAS,GAAG,OAAO;AAChD9M,QAAAA,SAAS,EAAC,cAAA;AAAc,OAAA,CACxB,CAAA;KACH,CAAC,CAEL,CACG,CACF,CAAA;GACP,CACF,CACU,CACL,CACc,CAAA;AAE9B,CAAC;;;AC1RM,IAAMgN,iBAAiB,gBAAG9G,MAAM,CAACtV,GAAG,CAAC,CAAA0K,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,4VAIV/B,aAAa,EASbA,aAAa,CAG9C,CAAA;AAKM,IAAMyT,wBAAsB,gBAAG/G,MAAM,CAC1CgH,MAAM,CAACC,GAAG,CACX,CAAA/G,kBAAA,KAAAA,kBAAA,gBAAA7K,2BAAA,CAAA,CAAA,iKAAA,EAAA,mHAAA,EAAA,+JAAA,EAAA,kDAAA,CAAA,CAAA,CAAA,EAOO,UAAA1Y,IAAA,EAAA;AAAA,EAAA,IAAGuqB,aAAa,GAAAvqB,IAAA,CAAbuqB,aAAa,CAAA;AAAA,EAAA,OAAoCA,aAAa,CAAA;AAAA,CAKvC5T,EAAAA,aAAa,EAKrC,UAAAnW,KAAA,EAAA;AAAA,EAAA,IAAG+pB,aAAa,GAAA/pB,KAAA,CAAb+pB,aAAa,CAAA;AAAA,EAAA,OAAoCA,aAAa,CAAA;AAAA,CAI1E,CAAA,CAAA;AAEM,IAAMC,aAAa,gBAAGnH,MAAM,CAACtV,GAAG,CAAC,CAAA0V,kBAAA,KAAAA,kBAAA,gBAAA/K,2BAAA,CAAA,CAAA,wEAAA,EAAA,2KAAA,CAAA,CAAA,CAAA,EAGN/B,aAAa,CAS9C;;AC/DD,IAAM8T,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,MAAa,EAAI;AACxC,EAAA,IAAMC,UAAU,GAAAhoB,EAAAA,CAAAA,MAAA,CAAO+nB,MAAM,CAAC,CAAC;AAC/B,EAAA,KAAK,IAAIE,CAAC,GAAGD,UAAU,CAACrmB,MAAM,GAAG,CAAC,EAAEsmB,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;AAC9C,IAAA,IAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,IAAIJ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAAC,IAAA,IAAA5qB,IAAA,GACb,CAAC2qB,UAAU,CAACE,CAAC,CAAC,EAAEF,UAAU,CAACC,CAAC,CAAC,CAAC,CAAA;AAA9DD,IAAAA,UAAU,CAACC,CAAC,CAAC,GAAA5qB,IAAA,CAAA,CAAA,CAAA,CAAA;AAAE2qB,IAAAA,UAAU,CAACE,CAAC,CAAC,GAAA7qB,IAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,GAAA;AACA,EAAA,OAAO2qB,UAAU,CAAA;AACnB,CAAC;;ACiCD,IAAMM,UAAQ,GAAG,EAAE,CAAA;AACnB,IAAMC,kBAAgB,GAAG,EAAE,CAAA;AAEpB,IAAMC,YAAY,GAAgC,SAA5CA,YAAYA,CAAAnrB,IAAA,EAED;AAAA,EAAA,IADtBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAMiL,YAAY,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;EACjC,IAAAqM,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAChB,EAAA,IAAA4K,WAAA,GAAwCC,UAAU,EAAkB;AAA7DC,IAAAA,OAAO,GAAAF,WAAA,CAAA,CAAA,CAAA;IAAWG,SAAS,GAAAH,WAAA,CAAA,CAAA,CAAA,CAAhBpZ,KAAK,CAAA;AACvB,EAAA,IAAAwZ,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AACrB,EAAA,IAAMvP,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;AACtD,EAAA,IAAA+L,cAAA,GAA+BC,aAAa,EAAE;IAA/BgE,WAAW,GAAAjE,cAAA,CAAlBzV,KAAK,CAAA;AACb,EAAA,IAAAsP,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AAEZ,EAAA,IAAAxQ,SAAA,GAA0CC,QAAQ,CAAChI,KAAK,CAACyhB,MAAM,CAAC;AAAzDiB,IAAAA,aAAa,GAAA3a,SAAA,CAAA,CAAA,CAAA;AAAE4a,IAAAA,gBAAgB,GAAA5a,SAAA,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAI,UAAA,GAAsCH,QAAQ,CAAC,CAAC,CAAC;AAA1C4a,IAAAA,WAAW,GAAAza,UAAA,CAAA,CAAA,CAAA;AAAE0a,IAAAA,cAAc,GAAA1a,UAAA,CAAA,CAAA,CAAA,CAAA;EAElC,IAAMmZ,aAAa,GAAGjW,OAAO,CAC3B,YAAA;AAAA,IAAA,OAAMrL,KAAK,CAACyhB,MAAM,CAACpmB,MAAM,CAAA;AAAA,GAAA,EACzB,CAAC2E,KAAK,CAACyhB,MAAM,CAACpmB,MAAM,CAAC,CACtB,CAAA;EAED,IAAMynB,gBAAgB,GAAGzX,OAAO,CAC9B,YAAA;AAAA,IAAA,OAAMiW,aAAa,IAAIgB,SAAS,GAAGN,UAAQ,CAAC,GAAGA,UAAQ,CAAA;AAAA,GAAA,EACvD,CAACM,SAAS,EAAEhB,aAAa,CAAC,CAC3B,CAAA;EAED,IAAMyB,UAAU,GAAG1X,OAAO,CACxB,YAAA;IAAA,OAAMuX,WAAW,IAAIN,SAAS,GAAGN,UAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAAA,GAAA,EAC/C,CAACY,WAAW,EAAEN,SAAS,CAAC,CACzB,CAAA;EAED,IAAMU,WAAW,GAAG3X,OAAO,CACzB,YAAA;AAAA,IAAA,OAAMyX,gBAAgB,GAAGd,UAAQ,GAAG,CAAC,GAAGS,WAAW,CAAA;AAAA,GAAA,EAEnD,CAACK,gBAAgB,EAAEL,WAAW,CAAC,CAChC,CAAA;AAED,EAAA,IAAMrX,YAAY,GAAGC,OAAO,CAAC,YAAK;AAChC,IAAA,IAAM4X,WAAW,GAAGR,WAAW,IAAIK,gBAAgB,GAAGC,UAAU,CAAC,CAAA;IAEjE,OAAOE,WAAW,GAAGhB,kBAAgB,CAAA;GACtC,EAAE,CAACK,SAAS,EAAEM,WAAW,EAAEE,gBAAgB,EAAEL,WAAW,CAAC,CAAC,CAAA;EAE3D,IAAMnX,WAAW,GAAGD,OAAO,CAAC,YAAA;IAAA,OAAMuX,WAAW,KAAK,CAAC,CAAA;GAAE,EAAA,CAACA,WAAW,CAAC,CAAC,CAAA;AAEnE,EAAA,IAAMM,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIrN,MAAmB,EAAI;AACtD,IAAA,IAAIA,MAAM,EAAE;MACV5C,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,QAAAA,IAAI,EAAE,OAAO;AACbgP,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE,OAAO;AACfV,UAAAA,SAAS,EAAE,cAAc;UACzBW,UAAU,EAAEgB,MAAM,CAAC1Q,IAAI;AACvBsP,UAAAA,SAAS,EAAElQ,aAAa,CAACsR,MAAM,CAAC;AAChCuG,UAAAA,OAAO,EAAE,QAAA;AACV,SAAA;AACF,OAAA,CAAC,CAAA;AACF7D,MAAAA,IAAI,CAAChU,aAAa,CAACsR,MAAM,CAAC,CAAC,CAAA;AAC7B,KAAA;GACD,CAAA;AAED,EAAA,IAAQ4L,MAAM,GAAyBzhB,KAAK,CAApCyhB,MAAM;IAAA0B,iBAAA,GAAyBnjB,KAAK,CAA5BojB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA,CAAA;AAElCvX,EAAAA,SAAS,CAAC,YAAK;AACb,IAAA,IAAIwX,UAAU,EAAE;AACdT,MAAAA,gBAAgB,CAACnB,eAAe,CAACC,MAAM,CAAC,CAAC,CAAA;AAC3C,KAAA;AACF,GAAC,EAAE,CAACA,MAAM,EAAE2B,UAAU,CAAC,CAAC,CAAA;AAExB,EAAA,OACExe,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEuC,SAAS;IAAE3W,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACrE8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAA;KAAU;AACrCE,IAAAA,UAAU,EAAE;AAAEF,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;KAAQ;AACjE8B,IAAAA,SAAS,EAAE;AAAEJ,MAAAA,SAAS,EAAE,QAAQ;AAAEG,MAAAA,IAAI,EAAE,KAAK;AAAE7B,MAAAA,OAAO,EAAE,MAAA;AAAQ,KAAA;GAAA,CAChE,CACM,EAEVnI,KAAA,CAAAC,aAAA,CAACqc,iBAAiB,EAAA;AAACvU,IAAAA,GAAG,EAAE1B,YAAAA;AAAY,GAAA,EAClCrG,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAACC,IAAAA,QAAQ,EAAC,UAAU;AAACgE,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EACnCnE,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAsc,wBAAsB,EACrB;AAAAG,IAAAA,aAAa,EAAEthB,KAAK,CAACyhB,MAAM,CAACpmB,MAAM;AAClCgoB,IAAAA,OAAO,EAAE;AACPxa,MAAAA,CAAC,EAAEka,UAAAA;KACJ;AACDtD,IAAAA,UAAU,EAAE;AACV6D,MAAAA,QAAQ,EAAE,GAAG;AACbC,MAAAA,IAAI,EAAE,WAAA;AACP,KAAA;AAAA,GAAA,EAEAb,aAAa,CAACvqB,GAAG,CAAC,UAAAZ,KAAA,EAAA;AAAA,IAAA,IAAGyE,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAE8E,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAEqE,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI;MAAEiI,IAAI,GAAA7V,KAAA,CAAJ6V,IAAI;MAAExF,KAAK,GAAArQ,KAAA,CAALqQ,KAAK;MAAEiO,MAAM,GAAAte,KAAA,CAANse,MAAM,CAAA;AAAA,IAAA,OACxDjR,KAAC,CAAAC,aAAA,CAAA0c,aAAa,EAAC;AAAAhlB,MAAAA,GAAG,EAAEP,EAAE;AAAE2Q,MAAAA,GAAG,EAAE0V,OAAAA;AAAO,KAAA,EAClCzd,KAAA,CAAAC,aAAA,CAAC2e,gBAAgB,EACf;AAAA1iB,MAAAA,KAAK,EAAEA,KAAK;AACZqE,MAAAA,IAAI,EAAEA,IAAI;AACV+D,MAAAA,MAAM,EAAC,MAAM;AACbkE,MAAAA,IAAI,EACFxI,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;QAAAC,GAAG,EAAE/M,cAAc,CAAC8P,IAAI,CAAC7E,GAAG,EAAE,OAAO,CAAC;QACtCvH,GAAG,EAAEoM,IAAI,CAACpM,GAAG;AACbsJ,QAAAA,IAAI,EACJ,IAAA;AAAAC,QAAAA,KAAK,EAAE;AAAEE,UAAAA,SAAS,EAAE2C,IAAI,CAAC3C,SAAS,IAAI,SAAA;AAAS,SAAA;AAC/C,OAAA,CAAA;MAEJ7C,KAAK,EACHA,KAAK,IACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;QAAAC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEW,GAAG,EAAE,QAAQ,CAAC;AACzCvH,QAAAA,GAAG,EAAE4G,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAE5G,GAAG;AACfsJ,QAAAA,IAAI,EAAA,IAAA;AACJC,QAAAA,KAAK,EAAE;UACLE,SAAS,EAAE,CAAA7C,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE6C,SAAS,KAAI,OAAO;AACtCqE,UAAAA,YAAY,EAAE,wBAAA;AACf,SAAA;AAAA,OAAA,CAEJ;MAEH+G,MAAM,EACJA,MAAM,IAAI;QACR1Q,IAAI,EAAE0Q,MAAM,CAAC1Q,IAAI;QACjB+E,OAAO,EAAE,SAATA,OAAOA,GAAA;UAAA,OAAQgZ,uBAAuB,CAACrN,MAAM,CAAC,CAAA;AAAA,SAAA;OAC/C;AAEH4N,MAAAA,SAAS,EAAC,QAAA;AAAQ,KAAA,CAClB,CACY,CAAA;GACjB,CAAC,CACqB,CACjB,EACV7e,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAA0E,IAAAA,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAACwZ,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9D9V,IAAAA,aAAa,EAAC,MAAM;AACpBnI,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,KAAK;AACTC,IAAAA,IAAI,EAAC,GAAG;AACR8D,IAAAA,KAAK,EAAC,MAAM;AACZ2a,IAAAA,EAAE,EAAC,GAAG;AACNC,IAAAA,EAAE,EAAC,IAAI;AACPjX,IAAAA,cAAc,EAAC,eAAA;GAAe,EAE9B9H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC+e,eAAe,EAAA,IAAA,EACbtY,WAAW,IACV1G,KAAA,CAAAC,aAAA,CAACsI,UAAU,EAAA;AACT5Q,IAAAA,GAAG,EAAC,YAAY;IAChBgN,EAAE,EAAE6X,MAAM,CAACvL,MAAM;AACjBgO,IAAAA,OAAO,EAAE;AAAEtE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvB8D,IAAAA,OAAO,EAAE;AAAE9D,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvBuE,IAAAA,IAAI,EAAE;AAAEvE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACpBlT,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;IACjBpD,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ2Y,cAAc,CAACD,WAAW,GAAG,CAAC,CAAC,CAAA;AAAA,KAAA;IAAA,YAAA,EAClCJ,aAAa,CAAC;AACxBxmB,MAAAA,EAAE,EAAE,gCAAA;KACL,CAAC;AACFoR,IAAAA,IAAI,EAAExI,KAAA,CAAAC,aAAA,CAACkf,SAAS,EAAC;AAAA1X,MAAAA,IAAI,EAAE,EAAA;AAAE,KAAA,CAAI;AAC7Ba,IAAAA,aAAa,EAAC,MAAM;AACpBwT,IAAAA,SAAS,EAAC,IAAA;GAAI,CAEjB,CACe,CACd,EACN9b,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC+e,eAAe,EAAA,IAAA,EACbxY,YAAY,IACXxG,KAAA,CAAAC,aAAA,CAACsI,UAAU,EAAA;AACT5Q,IAAAA,GAAG,EAAC,aAAa;IACjBgN,EAAE,EAAE6X,MAAM,CAACvL,MAAM;AACjBgO,IAAAA,OAAO,EAAE;AAAEtE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvB8D,IAAAA,OAAO,EAAE;AAAE9D,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvBuE,IAAAA,IAAI,EAAE;AAAEvE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACpBlT,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;IACjBpD,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ2Y,cAAc,CAACD,WAAW,GAAG,CAAC,CAAC,CAAA;AAAA,KAAA;IAAA,YAAA,EAClCJ,aAAa,CAAC;AACxBxmB,MAAAA,EAAE,EAAE,iCAAA;KACL,CAAC;AACFoR,IAAAA,IAAI,EAAExI,KAAC,CAAAC,aAAA,CAAA8U,UAAU;AAACtN,MAAAA,IAAI,EAAE,EAAA;AAAE,KAAA,CAAI;AAC9Ba,IAAAA,aAAa,EAAC,MAAM;AACpBwT,IAAAA,SAAS,EAAC,IAAA;AAAI,GAAA,CAEjB,CACe,CACd,CACF,CACF,CACY,EAEpB9b,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGtJ,KAAK,CAAC6V,MAAM,IACXjR,oBAACwJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACqa,MAAM,EAAA,IAAA,EACLta,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EAAA;IACfC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTqC,IAAAA,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AACrBwF,IAAAA,SAAS,EAAC,cAAA;AACV,GAAA,CAAA,CACK,CAEZ,CACA,CACqB,CAAA;AAE9B,CAAC;;ACzNM,IAAM8P,iBAAiB,GAAqC,SAAtDA,iBAAiBA,CAAAjtB,IAAA,EAED;AAAA,EAAA,IAD3BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAqY,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AACZ,EAAA,IAAMtF,iBAAiB,GAAGuB,UAAU,CAAC/B,gBAAgB,CAAC,CAAA;EACtD,IAAA8E,SAAA,GAAgBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;AAAtCsE,IAAAA,KAAK,GAAAvE,SAAA,CAAA,CAAA,CAAA,CAAA;AACZ,EAAA,IAAAvJ,cAAA,GAA0BC,aAAa,CAACJ,mBAAmB,CAAC;AAArDiN,IAAAA,eAAe,GAAA9M,cAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAMiW,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAAQ;AAAA,IAAA,IAAAC,cAAA,CAAA;IACpC,IAAAA,CAAAA,cAAA,GAAIlkB,KAAK,CAACmkB,OAAO,KAAbD,IAAAA,IAAAA,cAAA,CAAerO,MAAM,EAAE;MACzB5C,iBAAiB,IAAA,IAAA,IAAjBA,iBAAiB,CAAG;AAClBtN,QAAAA,IAAI,EAAE,OAAO;AACbgP,QAAAA,KAAK,EAAE;AACLC,UAAAA,MAAM,EAAE,OAAO;AACfV,UAAAA,SAAS,EAAE,mBAAmB;AAC9BW,UAAAA,UAAU,EAAE7U,KAAK,CAACmkB,OAAO,CAACtO,MAAM,CAAC1Q,IAAI;UACrCsP,SAAS,EAAElQ,aAAa,CAACvE,KAAK,CAACmkB,OAAO,CAACtO,MAAM,CAAC;AAC9CuG,UAAAA,OAAO,EAAE,SAAA;AACV,SAAA;AACF,OAAA,CAAC,CAAA;MACF7D,IAAI,CAAChU,aAAa,CAACvE,KAAK,CAACmkB,OAAO,CAACtO,MAAM,CAAC,CAAC,CAAA;AAC3C,KAAA;GACD,CAAA;AAED,EAAA,OACEjR,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAE4G,KAAK;IAAEhb,KAAK,EAAEd,KAAK,CAACc,KAAAA;GAAK,EACjE8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGtJ,KAAK,CAACqV,KAAK,IACVzQ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,IAAAA,QAAQ,EAAC,UAAU;IACnByQ,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;IAClCxQ,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAC9B+D,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAChCG,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACjCyX,IAAAA,uBAAuB,EAAC,MAAA;AAAM,GAAA,EAE9B/b,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACqV,KAAK,CAAC9M,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAACqV,KAAK,CAACrU,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEzK,KAAK,CAACqV,KAAK,CAAC5K,SAAS,IAAI,OAAO;AAC3CkW,MAAAA,uBAAuB,EAAE,0BAAA;;GAE3B,CAAA,CAEL,CACA,EACH/b,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAmU,IAAI,EACH;IAAAC,eAAe,EAAE,CACf,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAClB;IACDC,YAAY,EAAE,CACZ,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAClB;AACD5C,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,EAEX1R,KAAA,CAAAC,aAAA,CAACsU,QAAQ,EAAA;IACPC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjCC,IAAAA,OAAO,EAAE,CAAC;IACVC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAEjC1U,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChB0J,IAAAA,SAAS,EAAE;MAAEyK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;;AAC7C,GAAA,CAAA,EAEDtZ,KAAK,CAACmkB,OAAO,IAAI,CAACrJ,eAAe,IAChClW,KAAC,CAAAC,aAAA,CAAAuf,WAAW,EACV;AAAAtjB,IAAAA,KAAK,EAAEd,KAAK,CAACmkB,OAAO,CAACrjB,KAAK;AAC1BqE,IAAAA,IAAI,EAAEnF,KAAK,CAACmkB,OAAO,CAAChf,IAAI;AACxBuY,IAAAA,MAAM,EAAE;AACNtW,MAAAA,IAAI,EAAEpH,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAACtW,IAAI;AAC/BrG,MAAAA,WAAW,EAAEf,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC3c,WAAW;AAC7C6G,MAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,QAAAA,GAAG,EAAE/M,cAAc,CACjB0C,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAACW,GAAG,EAC9B,OAAO,CACR;QACDvH,GAAG,EAAEhB,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAAC5G,GAAG;AACnCsJ,QAAAA,IAAI,EAAA,IAAA;AACJC,QAAAA,KAAK,EAAE;UACLE,SAAS,EACPzK,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAC3C,SAAA;OAAA,CAAA;KAGN;AACDuJ,IAAAA,IAAI,EAAE;AACJ7O,MAAAA,IAAI,EAAEnF,KAAK,CAACmkB,OAAO,CAACtO,MAAM,CAAC1Q,IAAI;AAC/B+E,MAAAA,OAAO,EAAE+Z,wBAAAA;AACV,KAAA;GAAA,CAEJ,CACQ,EACXrf,KAAC,CAAAC,aAAA,CAAAsU,QAAQ;IACPC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjCC,IAAAA,OAAO,EAAE,CAAC;AACVtU,IAAAA,QAAQ,EAAC,UAAA;GAAU,EAElB/E,KAAK,CAACwd,KAAK,CAACrlB,GAAG,CAAC,UAACugB,IAAI,EAAA;AAAA,IAAA,OACpB9T,KAAA,CAAAC,aAAA,CAAC2e,gBAAgB,EACf;MAAAjnB,GAAG,EAAEmc,IAAI,CAAC1c,EAAE;MACZ8E,KAAK,EAAE4X,IAAI,CAAC5X,KAAK;MACjBqE,IAAI,EAAEuT,IAAI,CAACvT,IAAI;AACfiI,MAAAA,IAAI,EACFxI,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;QACJC,GAAG,EAAE/M,cAAc,CAACob,IAAI,CAACtL,IAAI,CAAC7E,GAAG,EAAE,OAAO,CAAC;AAC3CvH,QAAAA,GAAG,EAAE0X,IAAI,CAACtL,IAAI,CAACpM,GAAG;AAClBsJ,QAAAA,IAAI;AACJC,QAAAA,KAAK,EAAE;AAAEE,UAAAA,SAAS,EAAEiO,IAAI,CAACtL,IAAI,CAAC3C,SAAS,IAAI,SAAA;AAAS,SAAA;;AAGxD,KAAA,CAAA,CAAA;AAAA,GACH,CAAC,CACO,CACN,EACNzK,KAAK,CAACmkB,OAAO,IAAIrJ,eAAe,IAC/BlW,KAAA,CAAAC,aAAA,CAACuf,WAAW,EAAA;AACVtjB,IAAAA,KAAK,EAAEd,KAAK,CAACmkB,OAAO,CAACrjB,KAAK;AAC1BqE,IAAAA,IAAI,EAAEnF,KAAK,CAACmkB,OAAO,CAAChf,IAAI;AACxBuY,IAAAA,MAAM,EAAE;AACNtW,MAAAA,IAAI,EAAEpH,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAACtW,IAAI;AAC/BrG,MAAAA,WAAW,EAAEf,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC3c,WAAW;AAC7C6G,MAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,QAAAA,GAAG,EAAE/M,cAAc,CACjB0C,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAACW,GAAG,EAC9B,OAAO,CACR;QACDvH,GAAG,EAAEhB,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAAC5G,GAAG;AACnCsJ,QAAAA,IAAI,EAAA,IAAA;AACJC,QAAAA,KAAK,EAAE;UACLE,SAAS,EACPzK,KAAK,CAACmkB,OAAO,CAACzG,MAAM,CAAC9V,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAC3C,SAAA;OAAA,CAAA;KAGN;AACDuJ,IAAAA,IAAI,EAAE;AACJ7O,MAAAA,IAAI,EAAEnF,KAAK,CAACmkB,OAAO,CAACtO,MAAM,CAAC1Q,IAAI;AAC/B+E,MAAAA,OAAO,EAAE+Z,wBAAAA;AACV,KAAA;GAAA,CAEJ,CACA,CACK,CACc,CAAA;AAE9B,CAAC;;ACrLM,IAAMI,wBAAwB,GAAwB;AAC3DC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,WAAW,EAAE,OAAO;AACpBha,EAAAA,KAAK,EAAE,MAAM;AACbia,EAAAA,qBAAqB,EAAE,CAAA;CACxB,CAAA;AAMM,IAAMC,wBAAwB,GAAwB;AAC3Dla,EAAAA,KAAK,EAAE,SAAS;AAChBia,EAAAA,qBAAqB,EAAE,CAAA;CACxB;;AC1BD,IAAYE,kBAKX,CAAA;AALD,CAAA,UAAYA,kBAAkB,EAAA;AAC5BA,EAAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvCA,EAAAA,kBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC7CA,EAAAA,kBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACjDA,EAAAA,kBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD,CAAA;AACnD,CAAC,EALWA,kBAAkB,KAAlBA,kBAAkB,GAK7B,EAAA,CAAA,CAAA;;ACID,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA5tB,IAAA,EAGM;AAAA,EAAA,IAAA6tB,SAAA,CAAA;AAAA,EAAA,IAF/B7rB,MAAM,GAAAhC,IAAA,CAANgC,MAAM;IACNwO,IAAI,GAAAxQ,IAAA,CAAJwQ,IAAI,CAAA;AAEJ,EAAA,IAAAgb,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;EAErB,IAAMpC,QAAQ,IAAAwE,SAAA,GAAA,EAAA,EAAAA,SAAA,CAIXF,kBAAkB,CAACG,iBAAiB,CAAG,GAAA;IACtCvR,OAAO,EAAEkP,aAAa,CAAC;AACrBxmB,MAAAA,EAAE,EAAE,2CAAA;KACL,CAAC;AACF2Z,IAAAA,KAAK,EAAE,WAAA;AACR,GAAA,EAAAiP,SAAA,CACAF,kBAAkB,CAACI,oBAAoB,CAAG,GAAA;IACzCxR,OAAO,EAAEkP,aAAa,CAAC;AACrBxmB,MAAAA,EAAE,EAAE,0CAAA;KACL,CAAC;AACF2Z,IAAAA,KAAK,EAAE,SAAA;AACR,GAAA,EAAAiP,SAAA,CACAF,kBAAkB,CAACK,sBAAsB,CAAG,GAAA;IAC3CzR,OAAO,EAAEkP,aAAa,CAAC;AACrBxmB,MAAAA,EAAE,EAAE,4CAAA;KACL,CAAC;AACF2Z,IAAAA,KAAK,EAAE,YAAA;AACR,GAAA,EAAAiP,SAAA,CACAF,kBAAkB,CAACM,sBAAsB,CAAG,GAAA;IAC3C1R,OAAO,EAAEkP,aAAa,CAAC;AACrBxmB,MAAAA,EAAE,EAAE,8CAAA;KACL,CAAC;AACF2Z,IAAAA,KAAK,EAAE,UAAA;GACR,EAAAiP,SAAA,CACF,CAAA;AAED,EAAA,IAAMtX,OAAO,GAAG8S,QAAQ,CAACrnB,MAAM,CAAC,CAAA;AAEhC,EAAA,OACE6L,oBAAC0H,IAAI,EAAA;AACHI,IAAAA,cAAc,EAAC,YAAY;AAC3BnD,IAAAA,EAAE,EAAEhC,IAAI,GAAG0d,IAAQ,GAAG9pB,SAAS;AAC/BoM,IAAAA,IAAI,EAAEA,IAAAA;AAAI,GAAA,EAEV3C,KAAA,CAAAC,aAAA,CAACqgB,GAAG,EAAC;IAAAhQ,eAAe,EAAE5H,OAAO,CAACqI,KAAAA;AAAK,GAAA,EACjC/Q,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAhB,IAAAA,KAAK,EAAC,OAAO;AAACtJ,IAAAA,IAAI,EAAC,WAAA;AAAW,GAAA,EACjCiB,OAAO,CAACgG,OAAO,CACX,CACH,CACD,CAAA;AAEX,CAAC;;ACjDM,IAAM6R,eAAe,GAAG,SAAlBA,eAAeA,CAAApuB,IAAA,EAEY;AAAA,EAAA,IAAAquB,kBAAA,EAAAC,mBAAA,EAAAC,mBAAA,CAAA;AAAA,EAAA,IADtCpqB,OAAO,GAAAnE,IAAA,CAAPmE,OAAO,CAAA;AAEP,EAAA,IAAAqnB,WAAA,GAAwC/N,UAAU,CAAC1B,WAAW,CAAC;IAAvDyS,YAAY,GAAAhD,WAAA,CAAZgD,YAAY;IAAE/C,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAEnC,EAAA,OACE5d,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EAAC;AAAAtc,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,EACtBtE,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACqL,IAAAA,OAAO,EAAC,QAAQ;AAACzO,IAAAA,MAAM,EAAC,MAAA;GAAM,EACjChO,OAAO,CAACgB,SAAS,IAChB0I,oBAACE,GAAG,EAAA;AAACgK,IAAAA,YAAY,EAAC,IAAI;AAAC/J,IAAAA,QAAQ,EAAC,UAAU;AAACmE,IAAAA,MAAM,EAAC,IAAI;AAACwN,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EAC3D9R,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;AAAAC,IAAAA,GAAG,EAAE/M,cAAc,CAAA8nB,CAAAA,kBAAA,GAAClqB,OAAO,CAACgB,SAAS,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjBkpB,kBAAA,CAAmB7c,GAAG,EAAE,QAAQ,CAAC;IACrDvH,GAAG,EAAA,CAAAqkB,mBAAA,GAAEnqB,OAAO,CAACgB,SAAS,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjBmpB,mBAAA,CAAmBrkB,GAAG;AAC3BsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAE,CAAA,CAAA6a,mBAAA,GAAApqB,OAAO,CAACgB,SAAS,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjBopB,mBAAA,CAAmB7a,SAAS,KAAI,OAAO;AAClDqE,MAAAA,YAAY,EAAE,wBAAA;AACf,KAAA;GAAA,CACD,CAEL,EACDlK,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAC;AAAAgP,IAAAA,EAAE,EAAC,GAAG;AAACpZ,IAAAA,IAAI,EAAC,IAAA;AAAI,GAAA,EACtBnR,OAAO,CAACwqB,YAAY,IAAIxqB,OAAO,CAAC4F,KAAK,CAC9B,EACV8D,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,IAAAA,OAAO,EAAC,KAAK;AAAC7K,IAAAA,GAAG,EAAC,GAAG;AAAC8K,IAAAA,QAAQ,EAAC,MAAA;AAAM,GAAA,EACzChT,KAAA,CAAAC,aAAA,CAACqgB,GAAG,EAAA,IAAA,EACFtgB,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,WAAW;AAACsJ,IAAAA,KAAK,EAAC,UAAA;AAAU,GAAA,EACpC4P,YAAY,CACX,CAACrqB,OAAO,CAACyqB,IAAI,IAAI,CAAC,IAAI,KAAK,EAC3BtB,wBAAwB,CACzB,CACI,CACH,EACNzf,KAAA,CAAAC,aAAA,CAACqgB,GAAG,EAAA,IAAA,EACFtgB,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,IAAAA,IAAI,EAAC,WAAW;AAACsJ,IAAAA,KAAK,EAAC,UAAA;GAC1B,EAAAza,OAAO,CAAC0qB,QAAQ,CACZ,CACH,EACL1qB,OAAO,CAAC2qB,iBAAiB,GACxBjhB,oBAACsgB,GAAG,EAAA,IAAA,EACFtgB,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,WAAW;AAACsJ,IAAAA,KAAK,EAAC,UAAA;GAC1B,EAAA6M,aAAa,CACZ;AAAExmB,IAAAA,EAAE,EAAE,sCAAA;AAAsC,GAAE,EAC9C;IAAE8pB,IAAI,EAAE,IAAIC,IAAI,CAAC7qB,OAAO,CAAC2qB,iBAAiB,CAAC,CAACG,WAAW,EAAA;GAAI,CAC5D,CACI,CACH,GAENphB,oBAACsgB,GAAG,EAAA,IAAA,EACFtgB,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,WAAW;AAACsJ,IAAAA,KAAK,EAAC,UAAA;GAC1B,EAAA6M,aAAa,CAAC;AACbxmB,IAAAA,EAAE,EAAE,oDAAA;GACL,CAAC,CACG,CAEV,EACD4I,KAAA,CAAAC,aAAA,CAAC8f,qBAAqB,EAAA;IAAC5rB,MAAM,EAAEmC,OAAO,CAAC+qB,kBAAAA;GAAkB,CAAI,CACxD,CACF,CACG,CAAA;AAEhB,CAAC;;ACpCM,IAAMC,YAAY,GAAgC,SAA5CA,YAAYA,CAAAnvB,IAAA,EAGD;AAAA,EAAA,IAFtBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IACLtB,QAAQ,GAAA3H,IAAA,CAAR2H,QAAQ,CAAA;AAER,EAAA,IAAMynB,gBAAgB,GAAGznB,QAAQ,CAACxB,IAAI,CACpC,UAAC3G,CAAC,EAAA;AAAA,IAAA,IAAA6vB,cAAA,CAAA;AAAA,IAAA,OACA,CAAAA,CAAAA,cAAA,GAAApmB,KAAK,CAAC9E,OAAO,KAAAkrB,IAAAA,IAAAA,CAAAA,cAAA,GAAbA,cAAA,CAAe3tB,IAAI,qBAAnB2tB,cAAA,CAAqBxtB,UAAU,CAAC0C,YAAY,KAC5C/E,CAAC,CAACyF,EAAE,KAAKgE,KAAK,CAAC9E,OAAO,CAACzC,IAAI,CAACG,UAAU,CAAC0C,YAAY,CAAA;GACtD,CAAA,CAAA;AAED,EAAA,IAAMod,IAAI,GACR9T,KAAA,CAAAC,aAAA,CAACsU,QAAQ,EACP;IAAAC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACjCC,IAAAA,OAAO,EAAE,CAAC;AACVtU,IAAAA,QAAQ,EAAC,UAAU;IACN,aAAA,EAAA,gBAAA,GAAiB/E,KAAK,CAACqmB,YAAAA;GAAc,EAEjDF,gBAAgB,IAAIvhB,KAAC,CAAAC,aAAA,CAAAsgB,eAAe;AAACjqB,IAAAA,OAAO,EAAEirB,gBAAAA;AAAoB,GAAA,CAAA,EAClE,CAACA,gBAAgB,IAAInmB,KAAK,CAAC0Y,IAAI,IAC9B9T,oBAAC0hB,WAAW,EAAA;AACVzM,IAAAA,KAAK,EAAE7Z,KAAK,CAAC0Y,IAAI,CAACmB,KAAK;AACvB0M,IAAAA,cAAc,EAAEvmB,KAAK,CAAC0Y,IAAI,CAAC6N,cAAc;AACzCC,IAAAA,WAAW,EAAExmB,KAAK,CAAC0Y,IAAI,CAAC8N,WAAW;AACnC1lB,IAAAA,KAAK,EAAEd,KAAK,CAAC0Y,IAAI,CAAC5X,KAAK;AACvB8G,IAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AACnDvH,MAAAA,GAAG,EAAEhB,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAAC5G,GAAG;AACzBsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QAAEE,SAAS,EAAEzK,KAAK,CAAC0Y,IAAI,CAAC9Q,KAAK,CAAC6C,SAAS,IAAI,OAAA;AAAO,OAAA;;AAG7D,GAAA,CACH,CAEJ,CAAA;AAED,EAAA,OACE7F,oBAACuJ,uBAAuB,EAAA;IAACrN,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACzC8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAmU,IAAI,EACH;IAAAC,eAAe,EAAE,CACf,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAClB;IACDC,YAAY,EAAE,CACZ,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,CAClB;AACD5C,IAAAA,MAAM,EAAC,IAAI;IACXmQ,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAEvCzmB,KAAK,CAACqmB,YAAY,KAAK,MAAM,IAAI3N,IAAI,EACtC9T,KAAA,CAAAC,aAAA,CAACsU,QAAQ,EAAA;AAACC,IAAAA,OAAO,EAAE,CAAC;AAAEC,IAAAA,OAAO,EAAE,CAAC;AAAEtU,IAAAA,QAAQ,EAAC,UAAA;AAAU,GAAA,EACnDH,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;GACZ,CAAA,EAEDnF,KAAK,CAACyZ,SAAS,IACd7U,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,IAAA;AAAO,GAAA,CAAA,EACtBtE,KAAA,CAAAC,aAAA,CAAC2U,UAAU,EAAC;IAAAC,SAAS,EAAEzZ,KAAK,CAACyZ,SAAAA;AAAa,GAAA,CAAA,EAC1C7U,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAC;AAAAjN,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,CAAG,CAEzB,EAEAlJ,KAAK,CAAC6V,MAAM,IACXjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;IAAAC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTqN,IAAAA,WAAW,EAAC,OAAO;AACnBpM,IAAAA,OAAO,EAAC,SAAS;IACjB+J,SAAS,EAAEzS,KAAA,CAAAC,aAAA,CAAC8U,UAAU,EAAA,IAAA,CAAG;AACzBzF,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,CAE3B,CACQ,EACVlU,KAAK,CAACqmB,YAAY,KAAK,OAAO,IAAI3N,IAAI,CAClC,CACC,CACc,CAAA;AAE9B,CAAC;;AChIM,IAAMgO,0BAA0B,GAAG,GAAG;;AC+BtC,IAAMC,aAAa,GAAiC,SAA9CA,aAAaA,CAAA5vB,IAAA,EAAA;AAAA,EAAA,IACxBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAAA,EAAA,OAEL4E,oBAACuJ,uBAAuB,EAAA;IAACrN,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACzC8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;AACZ,GAAA,CAAA,EAEFP,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EAAC;AAAA3H,IAAAA,EAAE,EAAC,IAAI;IAACsH,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAElJ,IAAAA,GAAG,EAAC,GAAA;GACxD,EAAA9M,KAAK,CAACwd,KAAK,CAACrlB,GAAG,CAAC,UAAAZ,KAAA,EAAA;AAAA,IAAA,IAAGyE,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAE8E,KAAK,GAAAvJ,KAAA,CAALuJ,KAAK;MAAEqE,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI;MAAE6O,IAAI,GAAAzc,KAAA,CAAJyc,IAAI,CAAA;AAAA,IAAA,OACvCpP,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAvI,MAAAA,GAAG,EAAEP,EAAE;AACPuN,MAAAA,EAAE,EAAEwL,IAAI;AACRxN,MAAAA,IAAI,EAAEhD,aAAa,CAACyP,IAAI,CAAC;AACb,MAAA,aAAA,EAAA,MAAM;AAClB2P,MAAAA,EAAE,EAAC,IAAI;AACPD,MAAAA,EAAE,EAAC,GAAG;AACNkD,MAAAA,WAAW,EAAC,OAAO;AACnBC,MAAAA,WAAW,EAAC,MAAM;AAClBC,MAAAA,WAAW,EAAC,UAAU;AACtBhY,MAAAA,YAAY,EAAC,KAAK;AAClBtF,MAAAA,OAAO,EAAC,MAAM;AACdmO,MAAAA,OAAO,EAAC,KAAK;AACblL,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,cAAc,EAAC,eAAe;AAC9B5C,MAAAA,MAAM,EAAC,SAAS;MAChBid,kBAAkB,EAAKL,0BAA0B,GAAG,GAAA;AACpDM,MAAAA,MAAM,EAAE;AAAE9R,QAAAA,eAAe,EAAE,SAAA;AAAW,OAAA;AAAA,KAAA,EAEtCtQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,EACED,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAAlN,MAAAA,EAAE,EAAC,IAAI;AAAC8C,MAAAA,IAAI,EAAC,IAAA;KACnB,EAAAvL,KAAK,CACE,EACTqE,IAAI,IACHP,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACjI,MAAAA,EAAE,EAAC,GAAG;AAACrC,MAAAA,IAAI,EAAC,iBAAA;KAAiB,EAChClH,IAAI,CAER,CACG,EAENP,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAA0E,MAAAA,OAAO,EAAC,MAAM;AACdiD,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,cAAc,EAAC,QAAQ;AACvBka,MAAAA,WAAW,EAAC,OAAO;AACnBC,MAAAA,WAAW,EAAC,MAAM;AAClBC,MAAAA,WAAW,EAAC,UAAU;AACtBhY,MAAAA,YAAY,EAAC,KAAK;AAClB5F,MAAAA,MAAM,EAAC,IAAI;AACXH,MAAAA,KAAK,EAAC,IAAI;AACVke,MAAAA,QAAQ,EAAC,IAAI;AACbhS,MAAAA,SAAS,EAAC,IAAI;AACdxH,MAAAA,EAAE,EAAC,GAAG;AACNyH,MAAAA,eAAe,EAAC,OAAA;KAAO,EAEvBtQ,KAAC,CAAAC,aAAA,CAAA2I,UAAU,EAAG,IAAA,CAAA,CACV,CACF,CAAA;GACP,CAAC,CACS,CACL,CACc,CAAA;AAAA,CAC3B;;AChED,IAAM0Z,MAAM,GAAG;AACbC,EAAAA,IAAI,EAAE;AACJ5Y,IAAAA,OAAO,EAAE,OAAO;AAChBzN,IAAAA,KAAK,EAAE,OAAO;AACdqE,IAAAA,IAAI,EAAE,OAAO;AACb8S,IAAAA,UAAU,EAAE,UAAA;GACb;AACDmP,EAAAA,KAAK,EAAE;AACL7Y,IAAAA,OAAO,EAAE,aAAa;AACtBzN,IAAAA,KAAK,EAAE,OAAO;AACdqE,IAAAA,IAAI,EAAE,UAAU;AAChB8S,IAAAA,UAAU,EAAE,YAAA;AACb,GAAA;CACF,CAAA;AAEM,IAAMoP,SAAS,GAA6B,SAAtCA,SAASA,CAAAtwB,IAAA,EAAA;AAAA,EAAA,IACpBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IACLK,KAAK,GAAAtJ,IAAA,CAALsJ,KAAK,CAAA;AAAA,EAAA,OAELuE,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBgE,IAAAA,KAAK,EAAC,MAAM;AACZG,IAAAA,MAAM,EAAC,IAAI;AACXgM,IAAAA,eAAe,EAAEgS,MAAM,CAAC7mB,KAAK,CAAC,CAAC4X,UAAAA;GAAU,EAExCjY,KAAK,CAAC4H,KAAK,IACVhD,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAAC4H,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAC9CvH,IAAAA,GAAG,EAAEhB,KAAK,CAAC4H,KAAK,CAAC5G,GAAG;AACpBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAEzK,KAAK,CAAC4H,KAAK,CAAC6C,SAAS,IAAI,OAAA;;GAC7C,CAAA,EACDzK,KAAK,CAACsnB,QAAQ,IAAI1iB,oBAACwQ,QAAQ,EAAA,IAAA,CAAG,CAElC,EACDxQ,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBE,IAAAA,IAAI,EAAC,GAAG;AACRD,IAAAA,GAAG,EAAC,KAAK;AACT+D,IAAAA,KAAK,EAAC,MAAM;AACZ0F,IAAAA,SAAS,EAAC,QAAQ;AAClBgH,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,EAE5B7Q,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGtJ,KAAK,CAACunB,IAAI,IACT3iB,oBAAC0H,IAAI,EAAA;AAACkb,IAAAA,SAAS,EAAC,KAAK;AAACC,IAAAA,OAAO,EAAC,QAAQ;AAAC3a,IAAAA,GAAG,EAAC,GAAG;AAAC4J,IAAAA,EAAE,EAAC,GAAG;AAAC5e,IAAAA,IAAI,EAAC,MAAA;GAAM,EAC9DkI,KAAK,CAACunB,IAAI,CAACpvB,GAAG,CAAC,UAAAZ,KAAA,EAAA;AAAA,IAAA,IAAGyE,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAEmJ,IAAI,GAAA5N,KAAA,CAAJ4N,IAAI;MAAEuU,WAAW,GAAAniB,KAAA,CAAXmiB,WAAW,CAAA;AAAA,IAAA,OACtC9U,KAAC,CAAAC,aAAA,CAAAqgB,GAAG,EACF;AAAA3oB,MAAAA,GAAG,EAAEP,EAAE;AACP0d,MAAAA,WAAW,EAAEA,WAAW;AACxBrN,MAAAA,IAAI,EAAC,IAAI;AACTiB,MAAAA,OAAO,EAAC,QAAA;OAEPnI,IAAI,CACD,CAAA;GACP,CAAC,CAEL,EACDP,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;AACnBC,IAAAA,MAAM,EAAA,IAAA;IACNC,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpBlH,IAAAA,YAAY,EAAE;AACZmH,MAAAA,KAAK,EAAEuR,MAAM,CAAC7mB,KAAK,CAAC,CAACkO,OAAO;AAC5BE,MAAAA,SAAS,EAAE,QAAQ;AACnBmH,MAAAA,EAAE,EAAE,MAAA;KACL;AACDjH,IAAAA,UAAU,EAAE;AACVgH,MAAAA,KAAK,EAAEuR,MAAM,CAAC7mB,KAAK,CAAC,CAACS,KAAK;AAC1B8N,MAAAA,IAAI,EAAE,KAAK;AACXH,MAAAA,SAAS,EAAE,QAAQ;AACnBmH,MAAAA,EAAE,EAAE,MAAA;KACL;AACD/G,IAAAA,SAAS,EAAE;AACTD,MAAAA,IAAI,EAAE,KAAK;AACXH,MAAAA,SAAS,EAAE,QAAQ;AACnBmH,MAAAA,EAAE,EAAE,MAAM;AACVD,MAAAA,KAAK,EAAEuR,MAAM,CAAC7mB,KAAK,CAAC,CAAC8E,IAAAA;;GAEvB,CAAA,EACDnF,KAAK,CAAC6V,MAAM,IACXjR,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB,EACf;IAAAC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBnH,IAAAA,EAAE,EAAC,GAAG;AACNrC,IAAAA,IAAI,EAAC,IAAI;AACT6H,IAAAA,SAAS,EAAC,WAAA;AACV,GAAA,CACH,CACA,CACK,CACN,CACF,CAAA;AAAA,CACP;;;AC3HM,IAAMwT,iBAAiB,gBAAGtN,MAAM,CAACrF,MAAI,CAAC,CAAAvF,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAc5C,CAAA,+PAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEM,IAAMkY,gBAAc,gBAAGvN,MAAM,CAACtV,GAAG,CAAC,CAAAwV,kBAAA,KAAAA,kBAAA,gBAAA7K,2BAAA,CAAA,CAAA,oWAAA,EAAA,kDAAA,CAAA,CAAA,CAAA,EAcP/B,aAAa,CAG9C;;ACXM,IAAMka,IAAI,GAAwB,SAA5BA,IAAIA,CAAA7wB,IAAA,EAA4D;AAAA,EAAA,IAAjCiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IAAEmB,SAAS,GAAApK,IAAA,CAAToK,SAAS,CAAA;AAC1D,EAAA,IAAAohB,WAAA,GAAuB/N,UAAU,CAAC1B,WAAW,CAAC;IAAtC+U,UAAU,GAAAtF,WAAA,CAAVsF,UAAU,CAAA;EAClB,IAAMC,eAAe,GAAG9nB,KAAK,CAAC+nB,UAAU,CAACC,IAAI,CAC3C,UAACC,CAAC,EAAEC,CAAC,EAAA;IAAA,OACH,IAAInC,IAAI,CAACmC,CAAC,CAACtvB,UAAU,CAACuvB,SAAS,CAAC,CAACC,OAAO,EAAE,GAC1C,IAAIrC,IAAI,CAACkC,CAAC,CAACrvB,UAAU,CAACuvB,SAAS,CAAC,CAACC,OAAO,EAAE,CAAA;GAC7C,CAAA,CAAA;EAED,OACExjB,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;IAACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAEqS,IAAAA,QAAQ,EAAE,EAAE;AAAEC,IAAAA,QAAQ,EAAE,EAAA;KAC9DR,eAAe,CAAC3vB,GAAG,CAAC,UAAAZ,KAAA,EAAmB;AAAA,IAAA,IAAhBqB,UAAU,GAAArB,KAAA,CAAVqB,UAAU,CAAA;AAChC,IAAA,IAAM2vB,QAAQ,GACZpnB,SAAS,CAACjE,IAAI,CAAC,UAACsrB,EAAE,EAAA;MAAA,OAAKA,EAAE,CAAC5vB,UAAU,CAACD,IAAI,KAAKC,UAAU,CAACD,IAAI,CAAA;KAAC,CAAA,CAAA;IAChE,IAAI,CAAC4vB,QAAQ,EAAE;AACb,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,OACE3jB,KAAC,CAAAC,aAAA,CAAA6iB,iBAAiB,EAChB;AAAAnrB,MAAAA,GAAG,EAAEgsB,QAAQ,CAAC3vB,UAAU,CAACD,IAAI;AAC7B4Q,MAAAA,EAAE,EAAEwL,IAAI;AACRxN,MAAAA,IAAI,EAAWghB,QAAAA,GAAAA,QAAQ,CAAC3vB,UAAU,CAACD,IAAAA;AAAM,KAAA,EAEzCiM,KAAA,CAAAC,aAAA,CAAC8iB,gBAAc,EAAA,IAAA,EACb/iB,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAACirB,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACA,GAAG,EAAE,OAAO,CAAC;AACzDvH,MAAAA,GAAG,EAAEunB,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACvH,GAAG;AAChCsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QACLE,SAAS,EAAE8d,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACkC,SAAS,IAAI,OAAA;AACjD,OAAA;KAAA,CACD,CACa,EACjB7F,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAAC6e,MAAAA,EAAE,EAAC,GAAG;AAACD,MAAAA,EAAE,EAAC,GAAA;AAAG,KAAA,EACf6E,QAAQ,CAAC3vB,UAAU,CAAC6vB,QAAQ,CAAChwB,IAAI,IAChCmM,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,MAAAA,IAAI,EAAC,iBAAiB;AAACsJ,MAAAA,KAAK,EAAC,aAAa;AAACe,MAAAA,EAAE,EAAC,GAAA;AACjD,KAAA,EAAA6R,QAAQ,CAAC3vB,UAAU,CAAC6vB,QAAQ,CAAChwB,IAAI,CAACG,UAAU,CAACwO,IAAI,CAErD,EACDxC,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAApK,MAAAA,IAAI,EAAC,IAAA;AAAM,KAAA,EAAAkc,QAAQ,CAAC3vB,UAAU,CAACkI,KAAK,CAAW,EACvDynB,QAAQ,CAAC3vB,UAAU,CAAC8vB,MAAM,IACzB9jB,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAiB;AAACqC,MAAAA,EAAE,EAAC,GAAA;AAC7B,KAAA,EAAA6Z,QAAQ,CAAC3vB,UAAU,CAAC8vB,MAAM,CAE9B,EACD9jB,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EACrBtE,KAAC,CAAAC,aAAA,CAAA8jB,cAAc;MACbC,IAAI,EAAEf,UAAU,CAACU,QAAQ,CAAC3vB,UAAU,CAACuvB,SAAS,CAAC;MAC/CU,MAAM,EACJN,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,GAC3B;QACE2O,IAAI,EAAEmhB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAC7CwO,IAAI;AACPQ,QAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;AAAAC,UAAAA,GAAG,EAAE/M,cAAc,CACjBirB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAAC2P,GAAG,CAC3CA,GAAG,EACN,WAAW,CACZ;AACDvH,UAAAA,GAAG,EACDunB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAAC2P,GAAG,CAC3CvH,GAAG;AAERsJ,UAAAA,IAAI,EACJ,IAAA;AAAAC,UAAAA,KAAK,EAAE;AACLE,YAAAA,SAAS,EACP8d,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CACvC2P,GAAG,CAACkC,SAAS,IAAI,OAAA;AACvB,WAAA;SAAA,CAAA;AAGN,OAAA,GACDtP,SAAAA;KAAS,CAEf,CACE,CACY,CAAA;GAEvB,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;AC9FD,IAAM4tB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAhyB,IAAA,EAAA;AAAA,EAAA,IACtBiyB,SAAS,GAAAjyB,IAAA,CAATiyB,SAAS;IACTC,OAAO,GAAAlyB,IAAA,CAAPkyB,OAAO;IACPjW,QAAQ,GAAAjc,IAAA,CAARic,QAAQ,CAAA;AAAA,EAAA,OAKHgW,SAAS,GAAGC,OAAO,CAACjW,QAAQ,CAAC,GAAGA,QAAQ,CAAA;AAAA,CAAC,CAAA;AAEzC,IAAMkW,YAAY,GAAgC,SAA5CA,YAAYA,CAAA3xB,KAAA,EAGD;AAAA,EAAA,IAFtBmH,QAAQ,GAAAnH,KAAA,CAARmH,QAAQ;IACRsB,KAAK,GAAAzI,KAAA,CAALyI,KAAK,CAAA;AAEL,EAAA,IAAMmpB,gBAAgB,GAAGzqB,QAAQ,CAACrF,MAAM,CACtC,UAACwC,UAAU,EAAA;AAAA,IAAA,OACTA,UAAU,CAACK,SAAS,IACpB8D,KAAK,CAACtB,QAAQ,CAACjG,IAAI,CAACc,IAAI,CACtB,UAACwC,aAAa,EAAA;MAAA,OACZA,aAAa,CAACnD,UAAU,CAAC0C,YAAY,KAAKO,UAAU,CAACG,EAAE,CAAA;KAC1D,CAAA,CAAA;GACJ,CAAA,CAAA;EAED,OACE4I,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAC;AAAAL,IAAAA,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAAElJ,IAAAA,GAAG,EAAC,IAAA;AAAI,GAAA,EACvDqc,gBAAgB,CAAChxB,GAAG,CAAC,UAAC+C,OAAO,EAAA;AAAA,IAAA,OAC5B0J,KAAC,CAAAC,aAAA,CAAAkkB,kBAAkB;MACjBxsB,GAAG,EAAErB,OAAO,CAACc,EAAE;AACfgtB,MAAAA,SAAS,EAAE,CAAC,CAAC9tB,OAAO,CAACvC,IAAI;AACzBswB,MAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGjW,QAAqB,EAAA;AAAA,QAAA,OAC7BpO,KAAC,CAAAC,aAAA,CAAAkQ,IAAI;UACHxN,IAAI,EAAA,CAAKrM,OAAO,CAACmB,aAAa,IAAI,EAAE,IAAA,aAAA,GAClCnB,OAAO,CAACvC,IACR;AACFywB,UAAAA,QAAQ,EAAA,IAAA;UACR7sB,GAAG,EAAErB,OAAO,CAACc,EAAE;AACfqtB,UAAAA,cAAc,EAEb,IAAA;SAAA,EAAArW,QAAQ,CACJ,CAAA;AAAA,OAAA;AACR,KAAA,EAEDpO,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAyE,MAAAA,EAAE,EAAC,GAAG;AACNO,MAAAA,MAAM,EAAC,SAAS;AAChBgF,MAAAA,YAAY,EAAC,KAAK;MAClB2Q,UAAU,EAAA,kBAAA,GAAqBiH,0BAA0B,GAAG,GAAA;AAC5DM,MAAAA,MAAM,EAAE;AAAEtG,QAAAA,SAAS,EAAE,IAAA;AAAM,OAAA;AAAA,KAAA,EAE3B9b,KAAA,CAAAC,aAAA,CAACsgB,eAAe,EAAA;AAACjqB,MAAAA,OAAO,EAAEA,OAAAA;KAAW,CAAA,CACjC,CACa,CAAA;GACtB,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;AC5EM,IAAMouB,YAAY,GACvB,2FAA2F,CAAA;AAE7F,IAAYC,WAKX,CAAA;AALD,CAAA,UAAYA,WAAW,EAAA;AACrBA,EAAAA,WAAA,CAAA,UAAA,CAAA,GAAA,qCAAgD,CAAA;AAChDA,EAAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,8CAAiE,CAAA;AACjEA,EAAAA,WAAA,CAAA,WAAA,CAAA,GAAA,qCAAiD,CAAA;AACjDA,EAAAA,WAAA,CAAA,aAAA,CAAA,GAAA,mDAAiE,CAAA;AACnE,CAAC,EALWA,WAAW,KAAXA,WAAW,GAKtB,EAAA,CAAA,CAAA,CAAA;AAE4B,CAC3B7zB,OAAO,CAACC,GAAG,CAAC6zB,4BAA4B,IAAI,uBAC9C,IAAuC,wCAAA;AAUhC,IAAMC,eAAe,GAAG,EAAE;;;ACpBjC,IAAMC,WAAW,gBAAGna,GAAG,CAAAC,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAypBtB,CAAA,6muCAAA,CAAA,CAAA,CAAA,CAAA;;ACxpBD,IAAMka,oBAAoB,gBAAA,YAAA;AAAA,EAAA,IAAA5yB,IAAA,gBAAAC,iBAAA,cAAAC,mBAAA,EAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAC3ByyB,IAAY,EACZnvB,OAAA,EAAA;AAAA,IAAA,IAAAovB,eAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,KAAA,EAAAvvB,KAAA,EAAAwvB,WAAA,CAAA;AAAA,IAAA,OAAAjzB,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAAuC,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,YAAAA,OAAA,GAAmB,KAAK,CAAA;AAAA,WAAA;UAAAovB,eAAA,GAEWD,IAAI,CAACO,KAAK,CAAC,GAAG,CAAC,CAAChyB,GAAG,CAACiyB,MAAM,CAAC,EAAvDN,IAAI,GAAAD,eAAA,CAAA,CAAA,CAAA,EAAEE,KAAK,GAAAF,eAAA,CAAA,CAAA,CAAA,EAAEG,IAAI,GAAAH,eAAA,CAAA,CAAA,CAAA,EAAEI,KAAK,GAAAJ,eAAA,CAAA,CAAA,CAAA,CAAA;AACzBnvB,UAAAA,KAAK,GAAGD,OAAO,GAAG,KAAK,GAAGU,SAAS,CAAA;AAAAnD,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAEfmC,SAAS,CAAChC,GAAG,CACrC,kBAAkB,EAClB;AACEC,YAAAA,MAAM,EAAE;AACNsxB,cAAAA,IAAI,EAAKE,IAAI,GAAA,GAAA,GAAIC,KAAK,GAAA,GAAA,GAAIC,IAAI,GAAIC,GAAAA,GAAAA,KAAAA;aACnC;AACDvvB,YAAAA,KAAK,EAALA,KAAAA;AACD,WAAA,CACF,CAAA;AAAA,QAAA,KAAA,CAAA;UARKwvB,WAAW,GAAAlyB,QAAA,CAAAkB,IAAA,CAAA;AAAA,UAAA,OAAAlB,QAAA,CAAAyB,MAAA,CAUVywB,QAAAA,EAAAA,WAAW,CAACzxB,IAAI,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAT,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;GACxB,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SAlBKwyB,oBAAoBA,CAAA/vB,EAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAA9C,IAAA,CAAAgD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAkBzB,EAAA;;AClBD,IAAMqwB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACpBC,iBAAoC,EACpC1vB,cAAuD,EAClC;AACrB;AACA,EAAA,IAAM2vB,uBAAuB,GAAA/wB,QAAA,CAAA,EAAA,EACxB8wB,iBAAiB,EAAA;IACpBE,QAAQ,EAAEF,iBAAiB,CAACE,QAAQ,CAACryB,GAAG,CAAC,UAACsyB,OAAO,EAAI;AAAA,MAAA,IAAAC,mBAAA,CAAA;MACnD,IAAMpvB,YAAY,GAAAovB,CAAAA,mBAAA,GAAGD,OAAO,CAACE,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBD,mBAAA,CAAoB1uB,EAAE,CAAA;MAC3C,IAAMD,aAAa,GAAGT,YAAY,GAC9BV,cAAc,CAACvC,GAAG,CAACiD,YAAY,CAAC,GAChC,IAAI,CAAA;AAER,MAAA,IAAIS,aAAa,EAAE;AAAA,QAAA,IAAAD,qBAAA,CAAA;AACjB2uB,QAAAA,OAAO,CAACE,UAAU,GAAAnxB,QAAA,CACbixB,EAAAA,EAAAA,OAAO,CAACE,UAAU,EAAA;AACrBhyB,UAAAA,IAAI,EAAEoD,aAAa,CAACnD,UAAU,CAACD,IAAI,IAAIwC,SAAS;UAChDkB,aAAa,EACX,EAAAP,qBAAA,GAAAC,aAAa,CAACnD,UAAU,CAACuD,SAAS,KAAA,IAAA,IAAA,CAAAL,qBAAA,GAAlCA,qBAAA,CAAoCrD,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxCqD,qBAAA,CAA0ClD,UAAU,CAACwD,IAAI,KACzDjB,SAAAA;SACH,CAAA,CAAA;AACH,OAAA;AAEA,MAAA,OAAOsvB,OAAO,CAAA;KACf,CAAA;GACF,CAAA,CAAA;AAED,EAAA,OAAOF,uBAAuB,CAAA;AAChC,CAAC;;ACND,IAAMK,eAAe,GACnB,sFAAsF,CAAA;AAExFC,QAAQ,CAACC,WAAW,GAAGxB,YAAY,CAAA;AAYnC,IAAMyB,aAAa,GACjB,2EAA2E,CAAA;AAEtE,IAAMC,WAAW,GAA+B,SAA1CA,WAAWA,CAAAj0B,IAAA,EAED;AAAA,EAAA,IADrBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAuiB,WAAA,GAAkC/N,UAAU,CAAC1B,WAAW,CAAC;IAAjD1a,MAAM,GAAAmqB,WAAA,CAANnqB,MAAM;IAAEoqB,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAC7B,EAAA,IAAMyI,YAAY,GAAG/f,MAAM,CAAiB,IAAI,CAAC,CAAA;AACjD,EAAA,IAAM/S,GAAG,GAAG+S,MAAM,CAAsB,IAAI,CAAC,CAAA;AAC7C,EAAA,IAAMggB,oBAAoB,GAAGhgB,MAAM,CAAwB,IAAI,CAAC,CAAA;AAChE,EAAA,IAAAnD,SAAA,GACEC,QAAQ,CAA2B,IAAI,CAAC;AADnCsiB,IAAAA,iBAAiB,GAAAviB,SAAA,CAAA,CAAA,CAAA;AAAEojB,IAAAA,oBAAoB,GAAApjB,SAAA,CAAA,CAAA,CAAA,CAAA;AAE9C,EAAA,IAAAI,UAAA,GAAkCH,QAAQ,CAAC,KAAK,CAAC;AAA1CojB,IAAAA,SAAS,GAAAjjB,UAAA,CAAA,CAAA,CAAA;AAAEkjB,IAAAA,YAAY,GAAAljB,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAMmjB,cAAc,GAAGpgB,MAAM,CAAgB,IAAI,CAAC,CAAA;AAClD,EAAA,IAAAqgB,UAAA,GAAoCvjB,QAAQ,CAAC,KAAK,CAAC;AAA5CwjB,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAG,UAAA,GAA4C1jB,QAAQ,CAG1C,IAAI,CAAC;AAHRpN,IAAAA,cAAc,GAAA8wB,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,iBAAiB,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;EAKxC,IAAME,eAAe,GAAGpgB,WAAW,CACjC,UAACqgB,SAAiB,EAAEC,SAAiB,EAAa;AAChD,IAAA,IAAAC,oBAAA,GAAuDF,SAAS,CAC7D1B,KAAK,CAAC,GAAG,CAAC,CACVhyB,GAAG,CAACiyB,MAAM,CAAC;AAFP4B,MAAAA,SAAS,GAAAD,oBAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,oBAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,SAAS,GAAAH,oBAAA,CAAA,CAAA,CAAA;AAAEI,MAAAA,UAAU,GAAAJ,oBAAA,CAAA,CAAA,CAAA,CAAA;AAGnD,IAAA,IAAAK,oBAAA,GAAuDN,SAAS,CAC7D3B,KAAK,CAAC,GAAG,CAAC,CACVhyB,GAAG,CAACiyB,MAAM,CAAC;AAFPiC,MAAAA,SAAS,GAAAD,oBAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,UAAU,GAAAF,oBAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,SAAS,GAAAH,oBAAA,CAAA,CAAA,CAAA;AAAEI,MAAAA,UAAU,GAAAJ,oBAAA,CAAA,CAAA,CAAA,CAAA;AAGnD,IAAA,OACEJ,SAAS,IAAIK,SAAS,IACtBH,SAAS,IAAIK,SAAS,IACtBN,UAAU,IAAIK,UAAU,IACxBH,UAAU,IAAIK,UAAU,CAAA;GAE3B,EACD,EAAE,CACH,CAAA;EAED,IAAMC,eAAe,GAAGjhB,WAAW,cAAAxU,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAC,SAAAC,OAAA,GAAA;AAAA,IAAA,IAAAsB,IAAA,CAAA;AAAA,IAAA,OAAAxB,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,CAC9B0C,cAAc,EAAA;AAAA5C,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;UAAA,OAAAF,QAAA,CAAAyB,MAAA,CAAA,QAAA,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA;AAAAzB,UAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAGGqC,iBAAiB,CAACnC,MAAM,EAAE,GAAG,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;UAA3CK,IAAI,GAAAT,QAAA,CAAAkB,IAAA,CAAA;AAAyC;UACnDyyB,iBAAiB,CAAClzB,IAAI,CAAC,CAAA;AAACT,UAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,CAAA;AAAAF,UAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;UAAAD,QAAA,CAAAwD,EAAA,GAAAxD,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAExByD,OAAO,CAAC5C,KAAK,CAAC,mCAAmC,EAAAb,QAAA,CAAAwD,EAAO,CAAC,CAAA;AAAC,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAxD,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAE7D,IAAE,CAACiB,MAAM,EAAEwC,cAAc,CAAC,CAAC,CAAA;EAE5B,IAAM8xB,iBAAiB,GAAGlhB,WAAW,cAAA,YAAA;IAAA,IAAAmhB,KAAA,GAAA31B,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CACnC,SAAA01B,QAAAA,CAAOhD,IAAY,EAAA;MAAA,IAAAiD,OAAA,EAAAC,UAAA,CAAA;AAAA,MAAA,OAAA71B,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAi1B,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/0B,IAAA,GAAA+0B,SAAA,CAAA90B,IAAA;AAAA,UAAA,KAAA,CAAA;YACjBmzB,YAAY,CAAC,IAAI,CAAC,CAAA;AAAC2B,YAAAA,SAAA,CAAA/0B,IAAA,GAAA,CAAA,CAAA;AAAA+0B,YAAAA,SAAA,CAAA90B,IAAA,GAAA,CAAA,CAAA;YAAA,OAEKyxB,oBAAoB,CAACC,IAAI,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAA1CiD,OAAO,GAAAG,SAAA,CAAA9zB,IAAA,CAAA;AAEb;YACM4zB,UAAU,GAAGlyB,cAAc,GAC7ByvB,gBAAgB,CAACwC,OAAO,EAAEjyB,cAAc,CAAC,GACzCiyB,OAAO,CAAA;YAEX1B,oBAAoB,CAAC2B,UAAU,CAAC,CAAA;AAACE,YAAAA,SAAA,CAAA90B,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,UAAA,KAAA,CAAA;AAAA80B,YAAAA,SAAA,CAAA/0B,IAAA,GAAA,CAAA,CAAA;YAAA+0B,SAAA,CAAAxxB,EAAA,GAAAwxB,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YAEjCvxB,OAAO,CAAC5C,KAAK,CAAC,0BAA0B,EAAAm0B,SAAA,CAAAxxB,EAAO,CAAC,CAAA;AAAC,UAAA,KAAA,EAAA;AAAAwxB,YAAAA,SAAA,CAAA/0B,IAAA,GAAA,EAAA,CAAA;YAEjDozB,YAAY,CAAC,KAAK,CAAC,CAAA;YAAC,OAAA2B,SAAA,CAAAC,MAAA,CAAA,EAAA,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAD,SAAA,CAAArzB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAizB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;KAEvB,CAAA,CAAA,CAAA;AAAA,IAAA,OAAA,UAAAhzB,EAAA,EAAA;AAAA,MAAA,OAAA+yB,KAAA,CAAA5yB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GACD,EAAA,EAAA,CAACY,cAAc,CAAC,CACjB,CAAA;AAED,EAAA,IAAMsyB,mBAAmB,GAAG1hB,WAAW,CACrC2hB,QAAQ,CAAC,YAAK;IACZ,IAAI,CAACh1B,GAAG,CAAC4T,OAAO,IAAI,CAACuf,cAAc,CAACvf,OAAO,EAAE,OAAA;IAC7C,IAAMqhB,MAAM,GAAGj1B,GAAG,CAAC4T,OAAO,CAACshB,SAAS,EAAE,CAAA;IACtC,IAAMC,OAAO,GAAMF,MAAM,CAACG,OAAO,EAAE,GAAA,GAAA,GAAIH,MAAM,CAACI,QAAQ,EAAE,GAAIJ,GAAAA,GAAAA,MAAM,CAACK,OAAO,EAAE,SAAIL,MAAM,CAACM,QAAQ,EAAI,CAAA;IACnG,IAAI,CAAC9B,eAAe,CAAC0B,OAAO,EAAEhC,cAAc,CAACvf,OAAO,CAAC,EAAE;MACrD2gB,iBAAiB,CAACY,OAAO,CAAC,CAAA;MAC1BhC,cAAc,CAACvf,OAAO,GAAGuhB,OAAO,CAAA;AAClC,KAAA;GACD,EAAE,GAAG,CAAC,EACP,CAACZ,iBAAiB,EAAEd,eAAe,CAAC,CACrC,CAAA;AAED,EAAA,IAAM+B,gBAAgB,GAAGniB,WAAW,CAAC,YAAK;AACxC,IAAA,IAAI,CAACrT,GAAG,CAAC4T,OAAO,IAAI,CAACue,iBAAiB,IAAI,CAACnyB,GAAG,CAAC4T,OAAO,CAAC6hB,aAAa,EAAE,EAAE;AACtE,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAMC,yBAAyB,GAAAr0B,QAAA,CAAA,EAAA,EAC1B8wB,iBAAiB,EAAA;MACpBE,QAAQ,EAAEF,iBAAiB,CAACE,QAAQ,CAACnxB,MAAM,CACzC,UAACoxB,OAAO,EAAA;AAAA,QAAA,IAAAC,mBAAA,CAAA;QAAA,OAAK,CAAA,CAAAA,mBAAA,GAAAD,OAAO,CAACE,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAlBD,mBAAA,CAAoBoD,QAAQ,MAAK,KAAK,CAAA;AAAA,OAAA,CAAA;KAEtD,CAAA,CAAA;IAED,IAAMC,MAAM,GAAG51B,GAAG,CAAC4T,OAAO,CAACiiB,SAAS,CAAC,UAAU,CAA2B,CAAA;IAE1E,IAAI,CAACD,MAAM,EAAE;AACX51B,MAAAA,GAAG,CAAC4T,OAAO,CAACkiB,SAAS,CAAC,UAAU,EAAE;AAChCtoB,QAAAA,IAAI,EAAE,SAAS;AACflN,QAAAA,IAAI,EAAEo1B,yBAAyB;AAC/BK,QAAAA,OAAO,EAAE,IAAI;AACbC,QAAAA,cAAc,EAAE,EAAE;AAClBC,QAAAA,aAAa,EAAE,EAAA;AAChB,OAAA,CAAC,CAAA;AAEFj2B,MAAAA,GAAG,CAAC4T,OAAO,CAACsiB,QAAQ,CAAC;AACnBryB,QAAAA,EAAE,EAAE,UAAU;AACd2J,QAAAA,IAAI,EAAE,QAAQ;AACdooB,QAAAA,MAAM,EAAE,UAAU;AAClB10B,QAAAA,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;AAC9Bi1B,QAAAA,KAAK,EAAE;AACL,UAAA,cAAc,EAAE,CACd,MAAM,EACN,CAAC,KAAK,EAAE,aAAa,CAAC,EACtB,SAAS,EACT,CAAC,EACD,SAAS,CACV;AACD,UAAA,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACrE,UAAA,0BAA0B,EAAE;AAAEhL,YAAAA,QAAQ,EAAE,GAAA;WAAK;AAC7C,UAAA,qBAAqB,EAAE,CAAC;AACxB,UAAA,qBAAqB,EAAE,SAAS;AAChC,UAAA,uBAAuB,EAAE,GAAA;AAC1B,SAAA;AACF,OAAA,CAAC,CAAA;MAEF,IAAI4H,oBAAoB,CAACnf,OAAO,EAAE;AAChCwiB,QAAAA,aAAa,CAACrD,oBAAoB,CAACnf,OAAO,CAAC,CAAA;AAC7C,OAAA;AACAmf,MAAAA,oBAAoB,CAACnf,OAAO,GAAGyiB,WAAW,CAAC,YAAK;AAC9C,QAAA,IAAI,CAACr2B,GAAG,CAAC4T,OAAO,EAAE,OAAA;QAClB,IAAM0iB,GAAG,GAAG1I,IAAI,CAAC0I,GAAG,EAAE,GAAG,IAAI,CAAA;AAC7B,QAAA,IAAMC,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG7M,IAAI,CAAC8M,GAAG,CAAEF,GAAG,GAAG,CAAC,GAAG5M,IAAI,CAAC+M,EAAE,GAAI,GAAG,CAAC,CAAA;QAClE,IAAMC,UAAU,GAAG,CACjB,MAAM,EACN,CAAC,KAAK,EAAE,aAAa,CAAC,EACtB,EAAE,GAAGH,WAAW,EAChB,EAAE,EACF,EAAE,GAAGA,WAAW,EAChB,EAAE,EACF,EAAE,GAAGA,WAAW,CACmB,CAAA;QACrCv2B,GAAG,CAAC4T,OAAO,CAAC+iB,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAED,UAAU,CAAC,CAAA;OACtE,EAAE,EAAE,CAAC,CAAA;AAEN12B,MAAAA,GAAG,CAAC4T,OAAO,CAACsiB,QAAQ,CAAC;AACnBryB,QAAAA,EAAE,EAAE,eAAe;AACnB2J,QAAAA,IAAI,EAAE,QAAQ;AACdooB,QAAAA,MAAM,EAAE,UAAU;AAClB10B,QAAAA,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;AAC9B01B,QAAAA,MAAM,EAAE;AACN,UAAA,YAAY,EAAE,2BAA2B;AACzC,UAAA,WAAW,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;AAC7D,UAAA,WAAW,EAAE,EAAA;SACd;AACDT,QAAAA,KAAK,EAAE;AACL,UAAA,YAAY,EAAE,MAAA;AACf,SAAA;AACF,OAAA,CAAC,CAAA;AAEF;AACAU,MAAAA,KAAK,CAACpE,eAAe,CAAC,CACnBryB,IAAI,CAAC,UAACC,QAAQ,EAAA;AAAA,QAAA,OAAKA,QAAQ,CAAC2M,IAAI,EAAE,CAAA;AAAA,OAAA,CAAC,CACnC5M,IAAI,CAAC,UAAC02B,OAAO,EAAI;AAChB;QACA,IAAMC,WAAW,GAAGD,OAAO,CAACE,OAAO,CAAC,cAAc,oBAAkB,CAAC,CAAA;AACrE,QAAA,IAAM5mB,GAAG,GAAG,IAAI6B,KAAK,EAAE,CAAA;AACvB7B,QAAAA,GAAG,CAAC8B,GAAG,GAAA,4BAAA,GAAgC+kB,IAAI,CAACF,WAAW,CAAG,CAAA;AAC1D,QAAA,OAAO,IAAIl2B,OAAO,CAAmB,UAACq2B,OAAO,EAAEC,MAAM,EAAI;UACvD/mB,GAAG,CAACgnB,MAAM,GAAG,YAAA;YAAA,OAAMF,OAAO,CAAC9mB,GAAG,CAAC,CAAA;AAAA,WAAA,CAAA;UAC/BA,GAAG,CAACinB,OAAO,GAAGF,MAAM,CAAA;AACtB,SAAC,CAAC,CAAA;AACJ,OAAC,CAAC,CACD/2B,IAAI,CAAC,UAACgQ,GAAG,EAAI;AACZ,QAAA,IAAI,CAACpQ,GAAG,CAAC4T,OAAO,EAAE,OAAA;AAClB,QAAA,IAAM0jB,MAAM,GAAGC,QAAQ,CAAC7qB,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC/C4qB,MAAM,CAAC1mB,KAAK,GAAG,EAAE,CAAA;QACjB0mB,MAAM,CAACvmB,MAAM,GAAG,EAAE,CAAA;AAClB,QAAA,IAAMymB,GAAG,GAAGF,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAACD,GAAG,EAAE,OAAA;AACVA,QAAAA,GAAG,CAACE,SAAS,CAACtnB,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAClC,QAAA,IAAMunB,MAAM,GAAG,IAAI1lB,KAAK,EAAE,CAAA;QAC1B0lB,MAAM,CAACzlB,GAAG,GAAGolB,MAAM,CAACM,SAAS,CAAC,WAAW,CAAC,CAAA;QAC1CD,MAAM,CAACP,MAAM,GAAG,YAAK;UAAA,IAAAS,YAAA,EAAAC,aAAA,CAAA;AACnB,UAAA,CAAAD,YAAA,GAAA73B,GAAG,CAAC4T,OAAO,KAAA,IAAA,IAAXikB,YAAA,CAAaE,QAAQ,CAAC,aAAa,EAAEJ,MAAM,EAAE;AAAEK,YAAAA,UAAU,EAAE,CAAA;AAAC,WAAE,CAAC,CAAA;UAC/D,CAAAF,aAAA,GAAA93B,GAAG,CAAC4T,OAAO,KAAXkkB,IAAAA,IAAAA,aAAA,CAAa5B,QAAQ,CAAC;AACpBryB,YAAAA,EAAE,EAAE,mBAAmB;AACvB2J,YAAAA,IAAI,EAAE,QAAQ;AACdooB,YAAAA,MAAM,EAAE,UAAU;YAClB10B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACrC01B,YAAAA,MAAM,EAAE;AACN,cAAA,YAAY,EAAE,aAAA;AACf,aAAA;AACF,WAAA,CAAC,CAAA;SACH,CAAA;AACH,OAAC,CAAC,CAAA,OAAA,CACI,CAAC,UAACl2B,KAAK,EAAI;AACf4C,QAAAA,OAAO,CAAC5C,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC,CAAA;AAC1D,OAAC,CAAC,CAAA;AAEJ,MAAA,IAAMu3B,KAAK,GAAG,IAAIvF,QAAQ,CAACwF,KAAK,CAAC;AAC/BC,QAAAA,WAAW,EAAE,IAAI;AACjBC,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,SAAS,EAAE,cAAc;AACzBC,QAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAChB,OAAA,CAAC,CAAA;AAEF,MAAA,IAAMlmB,KAAK,GAAGmlB,QAAQ,CAAC7qB,aAAa,CAAC,OAAO,CAAC,CAAA;MAC7C0F,KAAK,CAACmmB,WAAW,GAoBhB,0iBAAA,CAAA;AACDhB,MAAAA,QAAQ,CAACiB,IAAI,CAACC,WAAW,CAACrmB,KAAK,CAAC,CAAA;MAEhCpS,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAACpoB,CAAC,EAAI;AACjD,QAAA,IAAI,CAACA,CAAC,CAAC+hB,QAAQ,IAAI,CAAC/hB,CAAC,CAAC+hB,QAAQ,CAAC,CAAC,CAAC,CAACG,UAAU,EAAE,OAAA;QAC9CxyB,GAAG,CAAC4T,OAAQ,CAAC+kB,SAAS,EAAE,CAACvmB,KAAK,CAACT,MAAM,GAAG,SAAS,CAAA;AAEjD,QAAA,IAAMinB,WAAW,GAAItoB,CAAC,CAAC+hB,QAAQ,CAAC,CAAC,CAAC,CAACwG,QAAgB,CAACD,WAAW,CAAC/wB,KAAK,EAAE,CAAA;QACvE,IAAAixB,qBAAA,GAMIxoB,CAAC,CAAC+hB,QAAQ,CAAC,CAAC,CAAC,CAACG,UAAU;UAL1B7pB,KAAK,GAAAmwB,qBAAA,CAALnwB,KAAK;UACLowB,gBAAgB,GAAAD,qBAAA,CAAhBC,gBAAgB;UAChBv4B,IAAI,GAAAs4B,qBAAA,CAAJt4B,IAAI;UACJ0D,aAAa,GAAA40B,qBAAA,CAAb50B,aAAa;UACb4pB,kBAAkB,GAAAgL,qBAAA,CAAlBhL,kBAAkB,CAAA;AAGpB;QACA,IAAMkL,KAAK,GAAGh5B,GAAG,CAAC4T,OAAQ,CAAC7Q,OAAO,CAAC61B,WAAW,CAAC,CAAA;AAC/C,QAAA,IAAMK,WAAW,GAAG,GAAG,CAAC;QACxB,IAAMX,MAAM,GACVU,KAAK,CAACnoB,CAAC,GAAGooB,WAAW,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAErD,IAAIC,SAAS,GAAG,SAAS,CAAA;QACzB,IAAI;UACF,IAAMC,mBAAmB,GAAGJ,gBAAgB,CAAA;AAC5C,UAAA,IAAII,mBAAmB,EAAE;YAAA,IAAAC,gBAAA,EAAAC,WAAA,CAAA;AACvBH,YAAAA,SAAS,IAAAE,gBAAA,GAAA,CAAAC,WAAA,GACP9pB,IAAI,CAAC+pB,KAAK,CAACH,mBAA6B,CAAC,qBAAzCE,WAAA,CAA2CpqB,IAAI,KAAAmqB,IAAAA,GAAAA,gBAAA,GAAI,SAAS,CAAA;AAChE,WAAA;SACD,CAAC,OAAAG,OAAA,EAAM;AACNL,UAAAA,SAAS,GAAG,SAAS,CAAA;AACvB,SAAA;QAEA,IAAMM,UAAU,GACdh5B,IAAI,IAAI0D,aAAa,GAAMA,aAAa,GAAA,aAAA,GAAc1D,IAAI,GAAK,IAAI,CAAA;AAErE,QAAA,IAAMi5B,eAAe,GAAG,SAAlBA,eAAeA,CAAI74B,MAAc,EAAI;AACzC,UAAA,QAAQA,MAAM;YACZ,KAAK2rB,kBAAkB,CAACG,iBAAiB;AACvC,cAAA,OAAOrC,aAAa,CAAC;AACnBxmB,gBAAAA,EAAE,EAAE,2CAAA;AACL,eAAA,CAAC,CAAA;YACJ,KAAK0oB,kBAAkB,CAACI,oBAAoB;AAC1C,cAAA,OAAOtC,aAAa,CAAC;AACnBxmB,gBAAAA,EAAE,EAAE,0CAAA;AACL,eAAA,CAAC,CAAA;YACJ,KAAK0oB,kBAAkB,CAACK,sBAAsB;AAC5C,cAAA,OAAOvC,aAAa,CAAC;AACnBxmB,gBAAAA,EAAE,EAAE,4CAAA;AACL,eAAA,CAAC,CAAA;YACJ,KAAK0oB,kBAAkB,CAACM,sBAAsB;AAC5C,cAAA,OAAOxC,aAAa,CAAC;AACnBxmB,gBAAAA,EAAE,EAAE,8CAAA;AACL,eAAA,CAAC,CAAA;AACJ,YAAA;AACE,cAAA,OAAO,EAAE,CAAA;AACb,WAAA;SACD,CAAA;AAED,QAAA,IAAM61B,aAAa,GAAG,SAAhBA,aAAaA,CAAI94B,MAAc,EAAI;AACvC,UAAA,QAAQA,MAAM;YACZ,KAAK2rB,kBAAkB,CAACG,iBAAiB;AACvC,cAAA,OAAO,SAAS,CAAA;YAClB,KAAKH,kBAAkB,CAACI,oBAAoB;AAC1C,cAAA,OAAO,SAAS,CAAA;YAClB,KAAKJ,kBAAkB,CAACK,sBAAsB;AAC5C,cAAA,OAAO,SAAS,CAAA;YAClB,KAAKL,kBAAkB,CAACM,sBAAsB;AAC5C,cAAA,OAAO,SAAS,CAAA;AAClB,YAAA;AACE,cAAA,OAAO,SAAS,CAAA;AACpB,WAAA;SACD,CAAA;AAED,QAAA,IAAM8M,UAAU,GAAGD,aAAa,CAAC5L,kBAAkB,CAAC,CAAA;AACpD,QAAA,IAAM8L,YAAY,GAAGH,eAAe,CAAC3L,kBAAkB,CAAC,CAAA;AAExD,QAAA,IAAM+L,KAAK,GAAGL,UAAU,GAAA,YAAA,GACRA,UAAU,GAAA,0HAAA,GAAmHG,UAAU,GAAA,kIAAA,GAAkIC,YAAY,GAAA,aAAA,GAAA,mDAAA,GAC9OD,UAAU,GAAA,iHAAA,GAAiHC,YAAY,GAAS,SAAA,CAAA;AAEvM,QAAA,IAAMlc,MAAM,GAAG8b,UAAU,GACTA,YAAAA,GAAAA,UAAU,gQACtB,EAAE,CAAA;QAEN,IAAM5wB,WAAW,wHAEXixB,KAAK,GAAA,kEAAA,GAC2ClxB,KAAK,GACTuwB,mEAAAA,GAAAA,SAAS,GACrDxb,oBAAAA,GAAAA,MAAM,GAEX,8BAAA,CAAA;AAED,QAAA,OAAOgM,IAAI,CAACoQ,GAAG,CAACxpB,CAAC,CAACypB,MAAM,CAACC,GAAG,GAAGpB,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AACpDA,UAAAA,WAAW,CAAC,CAAC,CAAC,IAAItoB,CAAC,CAACypB,MAAM,CAACC,GAAG,GAAGpB,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;AAC9D,SAAA;QAEAX,KAAK,CACFgC,SAAS,CAAC3B,MAAM,CAAC,CACjB4B,SAAS,CAACtB,WAAW,CAAC,CACtBuB,OAAO,CAACvxB,WAAW,CAAC,CACpBwxB,KAAK,CAACp6B,GAAG,CAAC4T,OAAQ,CAAC,CAAA;AACxB,OAAC,CAAC,CAAA;MAEF5T,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAACpoB,CAAC,EAAI;QAAA,IAAA+pB,aAAA,EAAAC,aAAA,CAAA;AACxC,QAAA,IAAMjI,QAAQ,GAAA,CAAAgI,aAAA,GAAGr6B,GAAG,CAAC4T,OAAO,KAAXymB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAaE,qBAAqB,CAACjqB,CAAC,CAAC0oB,KAAK,EAAE;UAC3DwB,MAAM,EAAE,CAAC,UAAU,CAAA;AACpB,SAAA,CAAC,CAAA;QACF,IAAI,CAACnI,QAAQ,IAAI,CAACA,QAAQ,CAAC,CAAC,CAAC,CAACG,UAAU,EAAE,OAAA;QAE1C,IAAMiI,SAAS,GAAGpI,QAAQ,CAAC,CAAC,CAAC,CAACG,UAAU,CAACkI,UAAU,CAAA;AACnD,QAAA,IAAMC,aAAa,GAAA,CAAAL,aAAA,GAAGt6B,GAAG,CAAC4T,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAAX0mB,aAAA,CAAazE,SAAS,CAC1C,UAAU,CACe,CAAA;QAE3B8E,aAAa,CAACC,uBAAuB,CAACH,SAAS,EAAE,UAACI,GAAG,EAAElrB,IAAI,EAAI;AAC7D,UAAA,IAAIkrB,GAAG,IAAI,CAAC76B,GAAG,CAAC4T,OAAO,EAAE,OAAA;UACzB,IAAMglB,WAAW,GAAIvG,QAAQ,CAAC,CAAC,CAAC,CAACwG,QAAgB,CAACD,WAAW,CAAA;AAC7D54B,UAAAA,GAAG,CAAC4T,OAAO,CAACknB,MAAM,CAAC;AAAEC,YAAAA,MAAM,EAAEnC,WAAW;AAAEjpB,YAAAA,IAAI,EAAJA,IAAAA;AAAI,WAAE,CAAC,CAAA;AACnD,SAAC,CAAC,CAAA;AACJ,OAAC,CAAC,CAAA;MAEF3P,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAK;AAC5C,QAAA,IAAI14B,GAAG,CAAC4T,OAAO,EAAE5T,GAAG,CAAC4T,OAAO,CAAC+kB,SAAS,EAAE,CAACvmB,KAAK,CAACT,MAAM,GAAG,SAAS,CAAA;AACnE,OAAC,CAAC,CAAA;MACF3R,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,YAAK;AAC5C,QAAA,IAAI14B,GAAG,CAAC4T,OAAO,EAAE5T,GAAG,CAAC4T,OAAO,CAAC+kB,SAAS,EAAE,CAACvmB,KAAK,CAACT,MAAM,GAAG,EAAE,CAAA;AAC5D,OAAC,CAAC,CAAA;MAEF3R,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,YAAK;AACrD,QAAA,IAAI14B,GAAG,CAAC4T,OAAO,EAAE5T,GAAG,CAAC4T,OAAO,CAAC+kB,SAAS,EAAE,CAACvmB,KAAK,CAACT,MAAM,GAAG,SAAS,CAAA;AACnE,OAAC,CAAC,CAAA;MACF3R,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,YAAK;AACrD,QAAA,IAAI14B,GAAG,CAAC4T,OAAO,EAAE5T,GAAG,CAAC4T,OAAO,CAAC+kB,SAAS,EAAE,CAACvmB,KAAK,CAACT,MAAM,GAAG,EAAE,CAAA;AAC5D,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;AACLikB,MAAAA,MAAM,CAACoF,OAAO,CAACtF,yBAAyB,CAAC,CAAA;AAC3C,KAAA;GACD,EAAE,CAACvD,iBAAiB,EAAElyB,MAAM,EAAEoqB,aAAa,CAAC,CAAC,CAAA;AAE9C5W,EAAAA,SAAS,CAAC,YAAK;IACb,IAAIzT,GAAG,CAAC4T,OAAO,IAAI,CAACkf,YAAY,CAAClf,OAAO,EAAE,OAAA;AAE1C,IAAA,IAAIqnB,aAA+B,CAAA;AACnC,IAAA,IAAIC,WAAmB,CAAA;AAEvB,IAAA,IAAIrzB,KAAK,CAACszB,wBAAwB,IAAItzB,KAAK,CAACuzB,gBAAgB,EAAE;AAC5DH,MAAAA,aAAa,GAAG,CACdpzB,KAAK,CAACszB,wBAAwB,CAACE,SAAS,EACxCxzB,KAAK,CAACszB,wBAAwB,CAACG,QAAQ,CACxC,CAAA;MACDJ,WAAW,GAAGrzB,KAAK,CAACuzB,gBAAgB,CAAA;AACtC,KAAC,MAAM;AACL;AACA,MAAA,IAAM3J,IAAI,GAAG0B,cAAc,CAACvf,OAAO,IAAIgf,aAAa,CAAA;AACpD,MAAA,IAAAlB,eAAA,GAAmCD,IAAI,CAACO,KAAK,CAAC,GAAG,CAAC,CAAChyB,GAAG,CAACiyB,MAAM,CAAC;AAAvDN,QAAAA,IAAI,GAAAD,eAAA,CAAA,CAAA,CAAA;AAAEE,QAAAA,KAAK,GAAAF,eAAA,CAAA,CAAA,CAAA;AAAEG,QAAAA,IAAI,GAAAH,eAAA,CAAA,CAAA,CAAA;AAAEI,QAAAA,KAAK,GAAAJ,eAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,MAAA,IAAMuD,MAAM,GAAG,IAAIvC,QAAQ,CAAC6I,YAAY,CAAC,CAAC5J,IAAI,EAAEC,KAAK,CAAC,EAAE,CAACC,IAAI,EAAEC,KAAK,CAAC,CAAC,CAAA;AACtE,MAAA,IAAMiJ,MAAM,GAAG9F,MAAM,CAACuG,SAAS,EAAE,CAAA;MACjCP,aAAa,GAAG,CAACF,MAAM,CAACf,GAAG,EAAEe,MAAM,CAACU,GAAG,CAAC,CAAA;AACxCP,MAAAA,WAAW,GAAG,CAAC,CAAA;AACjB,KAAA;AAEAl7B,IAAAA,GAAG,CAAC4T,OAAO,GAAG,IAAI8e,QAAQ,CAACzvB,GAAG,CAAC;MAC7By4B,SAAS,EAAE5I,YAAY,CAAClf,OAAO;AAC/BxB,MAAAA,KAAK,EAAE,oCAAoC;AAC3C2oB,MAAAA,MAAM,EAAEE,aAAa;AACrBtrB,MAAAA,IAAI,EAAEurB,WAAW;AACjBS,MAAAA,OAAO,EAAErK,eAAAA;AACV,KAAA,CAAC,CAAA;AAEFtxB,IAAAA,GAAG,CAAC4T,OAAO,CAACgoB,UAAU,CAAC,IAAIlJ,QAAQ,CAACmJ,iBAAiB,EAAE,EAAE,WAAW,CAAC,CAAA;AAErE77B,IAAAA,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,MAAM,EAAE,YAAK;MAC1BpF,aAAa,CAAC,IAAI,CAAC,CAAA;MACnB,IAAI,EAAEzrB,KAAK,CAACszB,wBAAwB,IAAItzB,KAAK,CAACuzB,gBAAgB,CAAC,EAAE;AAAA,QAAA,IAAAU,aAAA,CAAA;AAC/D,QAAA,IAAMrK,KAAI,GAAG0B,cAAc,CAACvf,OAAO,IAAIgf,aAAa,CAAA;AACpD,QAAA,IAAAmJ,gBAAA,GAAmCtK,KAAI,CAACO,KAAK,CAAC,GAAG,CAAC,CAAChyB,GAAG,CAACiyB,MAAM,CAAC;AAAvDN,UAAAA,KAAI,GAAAoK,gBAAA,CAAA,CAAA,CAAA;AAAEnK,UAAAA,MAAK,GAAAmK,gBAAA,CAAA,CAAA,CAAA;AAAElK,UAAAA,KAAI,GAAAkK,gBAAA,CAAA,CAAA,CAAA;AAAEjK,UAAAA,MAAK,GAAAiK,gBAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,QAAA,IAAM9G,OAAM,GAAG,IAAIvC,QAAQ,CAAC6I,YAAY,CAAC,CAAC5J,KAAI,EAAEC,MAAK,CAAC,EAAE,CAACC,KAAI,EAAEC,MAAK,CAAC,CAAC,CAAA;QACtE,CAAAgK,aAAA,GAAA97B,GAAG,CAAC4T,OAAO,KAAXkoB,IAAAA,IAAAA,aAAA,CAAaE,SAAS,CAAC/G,OAAM,EAAE;AAAErQ,UAAAA,OAAO,EAAE,EAAA;AAAE,SAAE,CAAC,CAAA;AACjD,OAAA;AACF,KAAC,CAAC,CAAA;AAEF5kB,IAAAA,GAAG,CAAC4T,OAAO,CAAC8kB,EAAE,CAAC,SAAS,EAAE,YAAK;MAC7B,IAAIvF,cAAc,CAACvf,OAAO,EAAE;AAC1BmhB,QAAAA,mBAAmB,EAAE,CAAA;AACvB,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,YAAK;AAAA,MAAA,IAAAkH,aAAA,CAAA;MACVlH,mBAAmB,CAACmH,MAAM,EAAE,CAAA;MAC5B,IAAInJ,oBAAoB,CAACnf,OAAO,EAAE;AAChCwiB,QAAAA,aAAa,CAACrD,oBAAoB,CAACnf,OAAO,CAAC,CAAA;AAC7C,OAAA;MACA,CAAAqoB,aAAA,GAAAj8B,GAAG,CAAC4T,OAAO,aAAXqoB,aAAA,CAAaE,MAAM,EAAE,CAAA;MACrBn8B,GAAG,CAAC4T,OAAO,GAAG,IAAI,CAAA;KACnB,CAAA;AACH,GAAC,EAAE,CACD/L,KAAK,CAACszB,wBAAwB,EAC9BtzB,KAAK,CAACuzB,gBAAgB,EACtBrG,mBAAmB,CACpB,CAAC,CAAA;AAEF;AACAthB,EAAAA,SAAS,CAAC,YAAK;AACb6gB,IAAAA,eAAe,EAAE,CAAA;AACnB,GAAC,EAAE,CAACA,eAAe,CAAC,CAAC,CAAA;AAErB;AACA7gB,EAAAA,SAAS,CAAC,YAAK;IACb,IAAIhR,cAAc,IAAI0vB,iBAAiB,EAAE;AACvC,MAAA,IAAMwC,UAAU,GAAGzC,gBAAgB,CAACC,iBAAiB,EAAE1vB,cAAc,CAAC,CAAA;MACtEuwB,oBAAoB,CAAC2B,UAAU,CAAC,CAAA;AAClC,KAAA;AACF,GAAC,EAAE,CAAClyB,cAAc,CAAC,CAAC,CAAA;AAEpB;AACAgR,EAAAA,SAAS,CAAC,YAAK;AACb,IAAA,IAAI5L,KAAK,CAACszB,wBAAwB,IAAItzB,KAAK,CAACuzB,gBAAgB,EAAE;AAC5D;AACA,MAAA,IAAAgB,qBAAA,GAAgCv0B,KAAK,CAACszB,wBAAwB;QAAtDG,QAAQ,GAAAc,qBAAA,CAARd,QAAQ;QAAED,SAAS,GAAAe,qBAAA,CAATf,SAAS,CAAA;MAC3B,IAAMgB,MAAM,GAAG,EAAE,CAAA;AACjB,MAAA,IAAM5K,IAAI,GAAM4J,SAAS,GAAGgB,MAAM,UAAIf,QAAQ,GAAGe,MAAM,CAAA,GAAA,GAAA,IACrDhB,SAAS,GAAGgB,MACd,WAAIf,QAAQ,GAAGe,MAAM,CAAE,CAAA;MACvBlJ,cAAc,CAACvf,OAAO,GAAG6d,IAAI,CAAA;MAC7B8C,iBAAiB,CAAC9C,IAAI,CAAC,CAAA;AACzB,KAAC,MAAM,IAAI6K,SAAS,CAACC,WAAW,EAAE;AAChC;MACApJ,cAAc,CAACvf,OAAO,GAAGgf,aAAa,CAAA;MACtC2B,iBAAiB,CAAC3B,aAAa,CAAC,CAAA;AAEhC;AACA0J,MAAAA,SAAS,CAACC,WAAW,CAACC,kBAAkB,CACtC,UAAC5vB,QAAQ,EAAI;AACX,QAAA,IAAM6vB,OAAO,GAAG;AACdhB,UAAAA,GAAG,EAAE7uB,QAAQ,CAAC8vB,MAAM,CAACpB,QAAQ;AAC7BqB,UAAAA,GAAG,EAAE/vB,QAAQ,CAAC8vB,MAAM,CAACrB,SAAAA;SACtB,CAAA;QACD,IAAIr7B,GAAG,CAAC4T,OAAO,EAAE;AACf5T,UAAAA,GAAG,CAAC4T,OAAO,CAACknB,MAAM,CAAC;YACjBC,MAAM,EAAE,CAAC0B,OAAO,CAACE,GAAG,EAAEF,OAAO,CAAChB,GAAG,CAAC;AAClC9rB,YAAAA,IAAI,EAAE,EAAE;AACRwb,YAAAA,QAAQ,EAAE,IAAA;AACX,WAAA,CAAC,CAAA;AAEF;UACA,IAAMkR,OAAM,GAAG,CAAC,CAAA;UAChB,IAAM5K,MAAI,GAAMgL,OAAO,CAACE,GAAG,GAAGN,OAAM,GAAA,GAAA,IAAII,OAAO,CAAChB,GAAG,GAAGY,OAAM,CAC1DI,GAAAA,GAAAA,IAAAA,OAAO,CAACE,GAAG,GAAGN,OAChB,CAAII,GAAAA,GAAAA,IAAAA,OAAO,CAAChB,GAAG,GAAGY,OAAM,CAAE,CAAA;UAC1BlJ,cAAc,CAACvf,OAAO,GAAG6d,MAAI,CAAA;UAC7B8C,iBAAiB,CAAC9C,MAAI,CAAC,CAAA;AACzB,SAAA;AACF,OAAC,EACD,YAAK;AACH;AACA;AAAA,OACD,CACF,CAAA;AACH,KAAC,MAAM;AACL;MACA0B,cAAc,CAACvf,OAAO,GAAGgf,aAAa,CAAA;MACtC2B,iBAAiB,CAAC3B,aAAa,CAAC,CAAA;AAClC,KAAA;AACF,GAAC,EAAE,CACD/qB,KAAK,CAACszB,wBAAwB,EAC9BtzB,KAAK,CAACuzB,gBAAgB,EACtB7G,iBAAiB,CAClB,CAAC,CAAA;AAEF9gB,EAAAA,SAAS,CAAC,YAAK;AAAA,IAAA,IAAAmpB,aAAA,CAAA;AACb,IAAA,IAAIvJ,UAAU,IAAIlB,iBAAiB,IAAA,CAAAyK,aAAA,GAAI58B,GAAG,CAAC4T,OAAO,aAAXgpB,aAAA,CAAanH,aAAa,EAAE,EAAE;AACnED,MAAAA,gBAAgB,EAAE,CAAA;AACpB,KAAA;GACD,EAAE,CAACnC,UAAU,EAAElB,iBAAiB,EAAEqD,gBAAgB,CAAC,CAAC,CAAA;AAErD,EAAA,OACE/oB,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACyK,IAAAA,GAAG,EAAEma,WAAAA;AAAW,GAAA,EACnB9kB,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLpO,KAAK,CAACc,KAAK,GACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAI;AAChBqJ,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAA;KAAU;AACrCE,IAAAA,UAAU,EAAE;AACVF,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAA;KACV;AACD8B,IAAAA,SAAS,EAAE;AACTJ,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAA;;AAEX,GAAA,CAAA,EACFnI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACoE,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,CAAG,CAClB,GAEHtE,yCACD,EACDA,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFoE,IAAAA,MAAM,EAAC,IAAI;AACXyD,IAAAA,GAAG,EAAEse,YAAY;AACjBnc,IAAAA,YAAY,EAAC,IAAI;AACjBrF,IAAAA,QAAQ,EAAC,QAAQ;IACjBiX,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAA;GACpC,CAAA,EACF9b,KAAG,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EAAA8hB,SAAS,IAAIxmB,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EAAA,qBAAA,CAA0B,CAAI,CAC1C,CACN,CACkB,CAAA;AAE9B,CAAC;;AC5jBM,IAAMkwB,KAAK,GAAyB,SAA9BA,KAAKA,CAAAj+B,IAAA,EAAmD;AAAA,EAAA,IAAvBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACjD,EAAA,IAAAmiB,WAAA,GAAyBC,UAAU,EAAkB;AAA9CzV,IAAAA,GAAG,GAAAwV,WAAA,CAAA,CAAA,CAAA;IAAIpZ,KAAK,GAAAoZ,WAAA,CAAA,CAAA,CAAA,CAALpZ,KAAK,CAAA;EAEnB,OACEnE,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAAC6H,IAAAA,GAAG,EAAEA,GAAG;AAAEmC,IAAAA,YAAY,EAAC,IAAA;AAAI,GAAA,EAC9BlK,KACc,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAA,IAAA,aAAA,EAAA,cAAc;AAC1BkE,IAAAA,KAAK,EAAEA,KAAK;AACZG,IAAAA,MAAM,EAAGH,KAAK,GAAG,EAAE,GAAI,CAAC;IACxBsB,GAAG,EAAA,gCAAA,GAAmCrK,KAAK,CAACi1B,SAAW;AACvDC,IAAAA,WAAW,EAAC,GAAG;AACfC,IAAAA,KAAK,EAAC,0FAA0F;AAChGC,IAAAA,eAAe;IACft0B,KAAK,EAAEd,KAAK,CAACc,KAAK;AAClByJ,IAAAA,KAAK,EAAE;AAAEuE,MAAAA,YAAY,EAAE,wBAAA;AAAwB,KAAA;IAC/C,CACE,CACE,CACc,CAAA;AAE9B,CAAC;;ACfM,IAAMumB,uBAAuB,GAEhC,SAFSA,uBAAuBA,CAAAt+B,IAAA,EAAA;AAAA,EAAA,IAE7BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAAA,OACV4E,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACiW,IAAAA,QAAQ,EAAC,KAAK;AAAChO,IAAAA,OAAO,EAAC,MAAM;AAAC2J,IAAAA,EAAE,EAAC,GAAA;GAAG,EACtC1W,KAAK,CAACuO,OAAO,IACZ3J,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AACHhB,IAAAA,KAAK,EAAC,aAAa;AACnBtJ,IAAAA,IAAI,EAAC,iBAAiB;AACtBoC,IAAAA,SAAS,EAAC,QAAQ;AAClBiI,IAAAA,EAAE,EAAC,GAAA;GAAG,EAEL1W,KAAK,CAACuO,OAAO,CAEjB,EACD3J,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAhB,IAAAA,KAAK,EAAC,OAAO;AAACtJ,IAAAA,IAAI,EAAC,qBAAqB;AAACoC,IAAAA,SAAS,EAAC,QAAA;AAAQ,GAAA,EAC9DzO,KAAK,CAACs1B,KAAK,CACP,CACH,EACN1wB,KAAC,CAAAC,aAAA,CAAA0wB,cAAc;AACbnuB,IAAAA,IAAI,EAAEpH,KAAK,CAACw1B,cAAc,CAACpuB,IAAI;AAC/BrG,IAAAA,WAAW,EAAEf,KAAK,CAACw1B,cAAc,CAACz0B,WAAW;AAC7C6G,IAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAAC0C,KAAK,CAACw1B,cAAc,CAAC5tB,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;AAC5DvH,MAAAA,GAAG,EAAEhB,KAAK,CAACw1B,cAAc,CAAC5tB,KAAK,CAAC5G,GAAG;AACnCsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;QACLE,SAAS,EAAEzK,KAAK,CAACw1B,cAAc,CAAC5tB,KAAK,CAAC6C,SAAS,IAAI,OAAA;;AAErD,KAAA,CAAA;AAEJgrB,IAAAA,WAAW,EAAC,UAAA;IACZ,CACM,CACc,CAAA;AAAA,CAC3B;;;ACpDM,IAAMC,eAAe,gBAAGtb,MAAM,CAACtV,GAAG,CAAC,CAAA0K,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAAA,CAAA,qVAAA,EAAA,2KAAA,CAAA,CAAA,CAAA,EAaR/B,aAAa,CAO9C,CAAA;AAKM,IAAMioB,oBAAoB,gBAAGvb,MAAM,CACxCgH,MAAM,CAACC,GAAG,CACX,CAAA/G,kBAAA,KAAAA,kBAAA,gBAAA7K,2BAAA,CAKA,CAAA,8EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEM,IAAMmmB,aAAa,gBAAGxb,MAAM,CAACtV,GAAG,CAAC,CAAA0V,gBAAA,KAAAA,gBAAA,gBAAA/K,2BAAA,CAAA,CAAA,gJAAA,EAAA,mDAAA,CAAA,CAAA,CAAA,EAON/B,aAAa,CAG9C,CAAA;AAKM,IAAMia,cAAc,gBAAGvN,MAAM,CAACtV,GAAG,CAAC,CAAA4V,gBAAA,KAAAA,gBAAA,gBAAAjL,2BAAA,CAAA,CAAA,6HAAA,EAAA,4LAAA,EAAA,qEAAA,EAAA,wDAAA,CAAA,CAAA,CAAA,EAMjC,UAAA1Y,IAAA,EAAA;AAAA,EAAA,IAAG8+B,WAAW,GAAA9+B,IAAA,CAAX8+B,WAAW,CAAA;AAAA,EAAA,OAA4BA,WAAW,CAAA;AAAA,CAU3BnoB,EAAAA,aAAa,EAGrC,UAAAnW,KAAA,EAAA;AAAA,EAAA,IAAGs+B,WAAW,GAAAt+B,KAAA,CAAXs+B,WAAW,CAAA;AAAA,EAAA,OAA4BA,WAAW,CAAA;AAAA,CAI9D,CAAA;;AC7ED,IAAMC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAElE,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIhtB,KAAa,EAAEG,MAAc,EAAY;AACvE,EAAA,IAAM8sB,KAAK,GAAGjtB,KAAK,GAAGG,MAAM,CAAA;AAE5B,EAAA,IAAI+sB,OAAO,GAAGpU,IAAI,CAACoQ,GAAG,CAAC+D,KAAK,GAAGF,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;EACjD,IAAII,UAAU,GAAG,CAAC,CAAA;AAElBJ,EAAAA,cAAc,CAACK,OAAO,CAAC,UAACC,YAAY,EAAEnvB,KAAK,EAAI;IAC7C,IAAI4a,IAAI,CAACoQ,GAAG,CAAC+D,KAAK,GAAGI,YAAY,CAAC,GAAGH,OAAO,EAAE;MAC5CA,OAAO,GAAGpU,IAAI,CAACoQ,GAAG,CAAC+D,KAAK,GAAGI,YAAY,CAAC,CAAA;AACxCF,MAAAA,UAAU,GAAGjvB,KAAK,CAAA;AACpB,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,OAAO6uB,cAAc,CAACI,UAAU,CAAC,CAAA;AACnC,CAAC;;ACmBD,IAAMlU,QAAQ,GAAG,EAAE,CAAA;AACnB,IAAMC,gBAAgB,GAAG,GAAG,CAAA;AAErB,IAAMoU,oBAAoB,GAAwC,SAA5DA,oBAAoBA,CAAAt/B,IAAA,EAED;AAAA,EAAA,IAD9BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAMiL,YAAY,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,IAAAiX,WAAA,GAA0CC,UAAU,EAAkB;AAA/DkU,IAAAA,QAAQ,GAAAnU,WAAA,CAAA,CAAA,CAAA;IAAWoU,UAAU,GAAApU,WAAA,CAAA,CAAA,CAAA,CAAjBpZ,KAAK,CAAA;AACxB,EAAA,IAAAyV,cAAA,GAA+BC,aAAa,EAAE;IAA/BgE,WAAW,GAAAjE,cAAA,CAAlBzV,KAAK,CAAA;AACb,EAAA,IAAAiF,cAAA,GAAmBC,aAAa,CAACL,mBAAmB,CAAC;AAA9CM,IAAAA,QAAQ,GAAAF,cAAA,CAAA,CAAA,CAAA,CAAA;AAEf,EAAA,IAAAjG,SAAA,GAAsCC,QAAQ,CAAC,CAAC,CAAC;AAA1C4a,IAAAA,WAAW,GAAA7a,SAAA,CAAA,CAAA,CAAA;AAAE8a,IAAAA,cAAc,GAAA9a,SAAA,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,IAAAI,UAAA,GAA4BH,QAAQ,CAAC,KAAK,CAAC;AAApC4C,IAAAA,MAAM,GAAAzC,UAAA,CAAA,CAAA,CAAA;AAAE4F,IAAAA,SAAS,GAAA5F,UAAA,CAAA,CAAA,CAAA,CAAA;EAExB,IAAMmZ,aAAa,GAAGjW,OAAO,CAC3B,YAAA;AAAA,IAAA,OAAMrL,KAAK,CAAC2K,MAAM,CAACtP,MAAM,CAAA;AAAA,GAAA,EACzB,CAAC2E,KAAK,CAAC2K,MAAM,CAACtP,MAAM,CAAC,CACtB,CAAA;EAED,IAAMynB,gBAAgB,GAAGzX,OAAO,CAC9B,YAAA;AAAA,IAAA,OAAMiW,aAAa,IAAIiV,UAAU,GAAGvU,QAAQ,CAAC,GAAGA,QAAQ,CAAA;AAAA,GAAA,EACxD,CAACuU,UAAU,EAAEjV,aAAa,CAAC,CAC5B,CAAA;EAED,IAAMyB,UAAU,GAAG1X,OAAO,CACxB,YAAA;IAAA,OAAMuX,WAAW,IAAI2T,UAAU,GAAGvU,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAAA,GAAA,EAChD,CAACY,WAAW,EAAE2T,UAAU,CAAC,CAC1B,CAAA;EAED,IAAMvT,WAAW,GAAG3X,OAAO,CACzB,YAAA;AAAA,IAAA,OAAMyX,gBAAgB,GAAGd,QAAQ,GAAG,CAAC,GAAGS,WAAW,CAAA;AAAA,GAAA,EAEnD,CAACK,gBAAgB,EAAEL,WAAW,CAAC,CAChC,CAAA;AAED,EAAA,IAAMrX,YAAY,GAAGC,OAAO,CAAC,YAAK;AAChC,IAAA,IAAM4X,WAAW,GAAGR,WAAW,IAAIK,gBAAgB,GAAGC,UAAU,CAAC,CAAA;IAEjE,OAAOE,WAAW,GAAGhB,gBAAgB,CAAA;GACtC,EAAE,CAACsU,UAAU,EAAE3T,WAAW,EAAEE,gBAAgB,EAAEL,WAAW,CAAC,CAAC,CAAA;EAE5D,IAAMnX,WAAW,GAAGD,OAAO,CAAC,YAAA;IAAA,OAAMuX,WAAW,KAAK,CAAC,CAAA;GAAE,EAAA,CAACA,WAAW,CAAC,CAAC,CAAA;AAEnE,EAAA,OACEhe,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAAC6wB,eAAe,EAAA;AAAC/oB,IAAAA,GAAG,EAAE1B,YAAAA;AAAY,GAAA,EAChCrG,KAAC,CAAAC,aAAA,CAAA8wB,oBAAoB,EACnB;AAAAtS,IAAAA,OAAO,EAAE;MACPxa,CAAC,EAAE0tB,UAAU,GAAG,CAAC3T,WAAAA;KAClB;AACDnD,IAAAA,UAAU,EAAE;AACV6D,MAAAA,QAAQ,EAAE,GAAG;AACbC,MAAAA,IAAI,EAAE,WAAA;KACP;AACDiT,IAAAA,UAAU,EAAEx2B,KAAK,CAAC2K,MAAM,CAACtP,MAAAA;GAExB,EAAA2E,KAAK,CAAC2K,MAAM,CAACxS,GAAG,CAAC,UAACyP,KAAK,EAAEX,KAAK,EAAA;AAAA,IAAA,OAC7BrC,oBAACgxB,aAAa,EAAA;MAACr5B,GAAG,EAAEqL,KAAK,CAAC5L,EAAE;AAAE2Q,MAAAA,GAAG,EAAE2pB,QAAAA;AAAQ,KAAA,EACzC1xB,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHpD,MAAAA,MAAM,EAAC,MAAM;AACbH,MAAAA,KAAK,EAAC,MAAM;AACZ2D,MAAAA,cAAc,EAAC,KAAK;AACpBwJ,MAAAA,aAAa,EAAC,QAAQ;AACtBpJ,MAAAA,GAAG,EAAC,GAAA;AAAG,KAAA,EAEPlI,KAAA,CAAAC,aAAA,CAAC8iB,cAAc,EAAA;MACbkO,WAAW,EAAEE,eAAe,CAC1BnuB,KAAK,CAACW,GAAG,CAACA,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACmQ,KAAK,EACnCnB,KAAK,CAACW,GAAG,CAACA,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACsQ,MAAM,CAAA;AACrC,KAAA,EAEDtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,CAACW,GAAG,CAACA,GAAG,EAAE,OAAO,CAAC;AAC3CvH,MAAAA,GAAG,EAAE4G,KAAK,CAACW,GAAG,CAACvH,GAAG;AAClBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE7C,KAAK,CAACW,GAAG,CAACkC,SAAS,IAAI,OAAO;AACzCX,QAAAA,MAAM,EAAEoE,QAAQ,GAAG,OAAO,GAAG,SAAA;OAC9B;AACDhE,MAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;QACZ2Y,cAAc,CAAC5b,KAAK,CAAC,CAAA;AACrB,QAAA,IAAI,CAACiH,QAAQ,EAAEH,SAAS,CAAC,IAAI,CAAC,CAAA;AAChC,OAAA;MACA,CACa,EAEjBnJ,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AAAC8f,MAAAA,SAAS,EAAE,CAAC;AAAEvtB,MAAAA,MAAM,EAAC,MAAM;AAACwtB,MAAAA,QAAQ,EAAC,IAAA;AAAI,KAAA,EAC5C9uB,KAAK,CAAC+uB,OAAO,CACT,CACF,CACO,CAAA;GACjB,CAAC,CACmB,CACP,EAElB/xB,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAA0E,IAAAA,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAACwZ,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9D9V,IAAAA,aAAa,EAAC,MAAM;AACpBnI,IAAAA,QAAQ,EAAC,UAAU;AACnBC,IAAAA,GAAG,EAAC,oCAAoC;AACxCC,IAAAA,IAAI,EAAC,GAAG;AACR8D,IAAAA,KAAK,EAAC,MAAM;AACZ2a,IAAAA,EAAE,EAAC,GAAG;AACNC,IAAAA,EAAE,EAAC,IAAI;AACPjX,IAAAA,cAAc,EAAC,eAAA;GAAe,EAE9B9H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC+e,eAAe,EACb,IAAA,EAAAtY,WAAW,IACV1G,oBAACuI,UAAU,EAAA;AACT5Q,IAAAA,GAAG,EAAC,YAAY;IAChBgN,EAAE,EAAE6X,MAAM,CAACvL,MAAM;AACjBgO,IAAAA,OAAO,EAAE;AAAEtE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvB8D,IAAAA,OAAO,EAAE;AAAE9D,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvBuE,IAAAA,IAAI,EAAE;AAAEvE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACpBlT,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;IACjBpD,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ2Y,cAAc,CAACD,WAAW,GAAG,CAAC,CAAC,CAAA;AAAA,KAAA;AACnC,IAAA,YAAA,EAAA,WAAW;AACtBxV,IAAAA,IAAI,EAAExI,KAAC,CAAAC,aAAA,CAAAkf,SAAS;AAAC1X,MAAAA,IAAI,EAAE,EAAA;AAAE,KAAA,CAAI;AAC7Ba,IAAAA,aAAa,EAAC,MAAA;GACd,CACH,CACe,CACd,EACNtI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC+e,eAAe,EACb,IAAA,EAAAxY,YAAY,IACXxG,oBAACuI,UAAU,EAAA;AACT5Q,IAAAA,GAAG,EAAC,aAAa;IACjBgN,EAAE,EAAE6X,MAAM,CAACvL,MAAM;AACjBgO,IAAAA,OAAO,EAAE;AAAEtE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvB8D,IAAAA,OAAO,EAAE;AAAE9D,MAAAA,OAAO,EAAE,CAAA;KAAG;AACvBuE,IAAAA,IAAI,EAAE;AAAEvE,MAAAA,OAAO,EAAE,CAAA;KAAG;AACpBlT,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;IACjBpD,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,MAAA,OAAQ2Y,cAAc,CAACD,WAAW,GAAG,CAAC,CAAC,CAAA;AAAA,KAAA;AACnC,IAAA,YAAA,EAAA,YAAY;AACvBxV,IAAAA,IAAI,EAAExI,oBAAC+U,UAAU,EAAA;AAACtN,MAAAA,IAAI,EAAE,EAAA;AAAM,KAAA,CAAA;AAC9Ba,IAAAA,aAAa,EAAC,MAAA;IAEjB,CACe,CACd,CACF,EAENtI,KAAC,CAAAC,aAAA,CAAA6F,eAAe;IACdC,MAAM,EAAE3K,KAAK,CAAC2K,MAAM,CAACxS,GAAG,CAAC,UAACyP,KAAK,EAAA;MAAA,OAAKA,KAAK,CAACW,GAAG,CAAA;KAAC,CAAA;AAC9CwC,IAAAA,YAAY,EAAE6X,WAAW;AACzB5X,IAAAA,eAAe,EAAE6X,cAAc;AAC/BjY,IAAAA,MAAM,EAAEA,MAAM;IACdC,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQkD,SAAS,CAAC,KAAK,CAAC,CAAA;AAAA,KAAA;AAC/B,GAAA,CAAA,CACsB,CAAA;AAE9B,CAAC;;ACvKM,IAAM6oB,gBAAgB,GAAoC,SAApDA,gBAAgBA,CAAA7/B,IAAA,EAAA;AAAA,EAAA,IAC3BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAAA,OAEL4E,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAmU,IAAI;AAACC,IAAAA,eAAe,EAAC,iBAAiB;AAACnM,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAC7ClI,KAAA,CAAAC,aAAA,CAACsU,QAAQ,EAAA;IAACC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAAC,GAAA,EACpCxU,KAAC,CAAAC,aAAA,CAAAwR,UAAU;IACTL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3BlJ,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;KAE1B9M,KAAK,CAAC2K,MAAM,CAACxS,GAAG,CAAC,UAACyP,KAAK,EAAA;AAAA,IAAA,OACtBhD,KAAC,CAAAC,aAAA,CAAAC,GAAG;MAACvI,GAAG,EAAEqL,KAAK,CAAC5L,EAAAA;AAAE,KAAA,EAChB4I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACoE,MAAAA,MAAM,EAAC,IAAI;AAACnE,MAAAA,QAAQ,EAAC,UAAU;AAAC+J,MAAAA,YAAY,EAAC,IAAA;AAAI,KAAA,EACpDlK,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACsK,KAAK,CAACW,GAAG,CAACA,GAAG,EAAE,OAAO,CAAC;AAC3CvH,MAAAA,GAAG,EAAE4G,KAAK,CAACW,GAAG,CAACvH,GAAG;AAClBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE7C,KAAK,CAACW,GAAG,CAACkC,SAAS,IAAI,OAAO;AACzCqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;KAAA,CACD,CACE,EACNlK,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AAACjI,MAAAA,EAAE,EAAC,GAAG;AAACrC,MAAAA,IAAI,EAAC,aAAA;AACf,KAAA,EAAAzE,KAAK,CAAC+uB,OAAO,CACT,CACH,CAAA;AAAA,GACP,CAAC,CACS,CACJ,CACN,CACC,CACc,CAAA;AAAA,CAC3B;;ACpCD,IAAKE,WAKJ,CAAA;AALD,CAAA,UAAKA,WAAW,EAAA;AACdA,EAAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACbA,EAAAA,WAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC,CAAA;AACzCA,EAAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnCA,EAAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALIA,WAAW,KAAXA,WAAW,GAKf,EAAA,CAAA,CAAA,CAAA;AAwBD,IAAMC,MAAM,GAA6C;AACvD7xB,EAAAA,IAAI,EAAE;AACJwJ,IAAAA,SAAS,EAAE,MAAM;AACjBsoB,IAAAA,cAAc,EAAE,GAAG;AACnBC,IAAAA,YAAY,EAAE,GAAG;AACjBtqB,IAAAA,cAAc,EAAE,eAAe;AAC/BuqB,IAAAA,oBAAoB,EAAE,OAAO;IAC7BC,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7CC,IAAAA,eAAe,EAAE,GAAA;GAClB;AACDC,EAAAA,kBAAkB,EAAE;AAClB3oB,IAAAA,SAAS,EAAE,QAAQ;AACnBsoB,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,YAAY,EAAE,IAAI;AAClBtqB,IAAAA,cAAc,EAAE,QAAQ;AACxBuqB,IAAAA,oBAAoB,EAAE,QAAQ;AAC9BC,IAAAA,cAAc,EAAE,GAAG;AACnBC,IAAAA,eAAe,EAAE,GAAA;GAClB;AACDE,EAAAA,eAAe,EAAE;AACf5oB,IAAAA,SAAS,EAAE,QAAQ;AACnBsoB,IAAAA,cAAc,EAAE,IAAI;AACpBC,IAAAA,YAAY,EAAE,IAAI;AAClBtqB,IAAAA,cAAc,EAAE,QAAQ;AACxBuqB,IAAAA,oBAAoB,EAAE,QAAQ;AAC9BC,IAAAA,cAAc,EAAE,GAAG;AACnBC,IAAAA,eAAe,EAAE,GAAA;GAClB;AACD3hB,EAAAA,KAAK,EAAE;AACL/G,IAAAA,SAAS,EAAE,MAAM;AACjBsoB,IAAAA,cAAc,EAAE,GAAG;AACnBC,IAAAA,YAAY,EAAE,GAAG;AACjBtqB,IAAAA,cAAc,EAAE,OAAO;AACvBuqB,IAAAA,oBAAoB,EAAE,OAAO;AAC7BC,IAAAA,cAAc,EAAE,GAAG;IACnBC,eAAe,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAC9C,GAAA;CACF,CAAA;AAED,IAAM5b,UAAQ,GAAiE;AAC7EC,EAAAA,IAAI,EAAE;AACJtG,IAAAA,eAAe,EAAE;AACfjQ,MAAAA,IAAI,EAAE,YAAY;AAClBmyB,MAAAA,kBAAkB,EAAE,YAAY;AAChCC,MAAAA,eAAe,EAAE,YAAY;AAC7B7hB,MAAAA,KAAK,EAAE,YAAA;KACR;AACD8hB,IAAAA,YAAY,EAAE;AACZryB,MAAAA,IAAI,EAAE,aAAa;AACnBmyB,MAAAA,kBAAkB,EAAE,aAAa;AACjCC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,aAAA;KACR;AACD+hB,IAAAA,UAAU,EAAE;AACVtyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;KACR;AACDgiB,IAAAA,aAAa,EAAE;AACbvyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;AACR,KAAA;GACF;AACDqG,EAAAA,KAAK,EAAE;AACL3G,IAAAA,eAAe,EAAE;AACfjQ,MAAAA,IAAI,EAAE,aAAa;AACnBmyB,MAAAA,kBAAkB,EAAE,aAAa;AACjCC,MAAAA,eAAe,EAAE,aAAa;AAC9B7hB,MAAAA,KAAK,EAAE,aAAA;KACR;AACD8hB,IAAAA,YAAY,EAAE;AACZryB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;KACR;AACD+hB,IAAAA,UAAU,EAAE;AACVtyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;KACR;AACDgiB,IAAAA,aAAa,EAAE;AACbvyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;AACR,KAAA;GACF;AACDsG,EAAAA,KAAK,EAAE;AACL5G,IAAAA,eAAe,EAAE;AACfjQ,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,aAAa;AAC9B7hB,MAAAA,KAAK,EAAE,OAAA;KACR;AACD8hB,IAAAA,YAAY,EAAE;AACZryB,MAAAA,IAAI,EAAE,aAAa;AACnBmyB,MAAAA,kBAAkB,EAAE,aAAa;AACjCC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,aAAA;KACR;AACD+hB,IAAAA,UAAU,EAAE;AACVtyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;KACR;AACDgiB,IAAAA,aAAa,EAAE;AACbvyB,MAAAA,IAAI,EAAE,OAAO;AACbmyB,MAAAA,kBAAkB,EAAE,OAAO;AAC3BC,MAAAA,eAAe,EAAE,OAAO;AACxB7hB,MAAAA,KAAK,EAAE,OAAA;AACR,KAAA;AACF,GAAA;CACF,CAAA;AAED,IAAMiiB,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,OAAgB,EAAiB;AACtD,EAAA,IAAIA,OAAO,CAACjpB,SAAS,KAAK,QAAQ,EAAE;IAClC,IAAIipB,OAAO,CAAC9vB,KAAK,EAAE;MACjB,OAAOivB,WAAW,CAACc,eAAe,CAAA;AACpC,KAAA;IACA,OAAOd,WAAW,CAACe,kBAAkB,CAAA;AACvC,GAAA;AACA,EAAA,IAAIF,OAAO,CAACjpB,SAAS,KAAK,MAAM,EAAE;IAChC,OAAOooB,WAAW,CAACgB,IAAI,CAAA;AACzB,GAAA;EACA,OAAOhB,WAAW,CAACiB,KAAK,CAAA;AAC1B,CAAC,CAAA;AAEM,IAAMC,GAAG,GAAuB,SAA1BA,GAAGA,CAAAhhC,IAAA,EAA+C;AAAA,EAAA,IAArBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAC7C,EAAA,IAAAuiB,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAErB,EAAA,OACE5d,oBAACuJ,uBAAuB,EAAA;IACtB+G,eAAe,EAAEqG,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAAC4H,eAAe,CAACjQ,IAAI;IAC7DnE,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EAElB8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLpO,KAAK,CAACc,KAAK,GACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACG,IAAAA,UAAU,EAAC,QAAQ;AAACyJ,IAAAA,aAAa,EAAC,QAAA;AAAQ,GAAA,EAC9CtR,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;AACtBC,IAAAA,YAAY,EAAE;MACZmH,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACgqB,YAAY,CAACryB,IAAI;AAChDwJ,MAAAA,SAAS,EAAE,QAAQ;AACnBsM,MAAAA,QAAQ,EAAE,KAAA;KACX;IACDja,KAAK,EAAEd,KAAK,CAACc,KAAK;AAClB6N,IAAAA,UAAU,EAAE;MACVgH,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACiqB,UAAU,CAACtyB,IAAI;AAC9CwJ,MAAAA,SAAS,EAAE,QAAQ;AACnB1F,MAAAA,KAAK,EAAE,MAAM;AACbgS,MAAAA,QAAQ,EAAE,KAAA;KACX;IACD5V,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpB7G,IAAAA,SAAS,EAAE;MACT8G,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACkqB,aAAa,CAACvyB,IAAI;AACjDwJ,MAAAA,SAAS,EAAE,QAAQ;AACnBsM,MAAAA,QAAQ,EAAE,KAAA;AACX,KAAA;GAAA,CACD,CACG,EACPnW,KAAC,CAAAC,aAAA,CAAAsR,MAAM;IAACjN,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,CAAI,CACjD,GAEHtE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAC;AAAAQ,IAAAA,GAAG,EAAC,GAAG;AAACoJ,IAAAA,aAAa,EAAC,QAAA;KACzBlW,KAAK,CAACg4B,QAAQ,CAAC7/B,GAAG,CAAC,UAACu/B,OAAO,EAAI;AAC9B,IAAA,IAAMO,WAAW,GAAGR,aAAa,CAACC,OAAO,CAAC,CAAA;AAE1C,IAAA,OACE9yB,KAAA,CAAAC,aAAA,CAAC2gB,SAAS,EAAA;MACRtQ,eAAe,EACbqG,UAAQ,CAACmc,OAAO,CAACpqB,OAAO,CAAC,CAAC4H,eAAe,CAAC+iB,WAAW,CAAC;MAExD17B,GAAG,EAAEm7B,OAAO,CAAC17B,EAAE;AACf+I,MAAAA,QAAQ,EAAC,UAAU;AACnBmzB,MAAAA,SAAS,EAAC,MAAA;AAAM,KAAA,EAEfR,OAAO,CAAC9vB,KAAK,IACdqwB,WAAW,KAAKpB,WAAW,CAACc,eAAe,GACzC/yB,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFC,MAAAA,QAAQ,EAAC,UAAU;AACnBE,MAAAA,IAAI,EAAC,GAAG;AACRD,MAAAA,GAAG,EAAC,GAAG;AACP+D,MAAAA,KAAK,EAAC,MAAM;AACZG,MAAAA,MAAM,EAAC,MAAM;AACb4F,MAAAA,YAAY,EAAC,IAAI;AACjBrF,MAAAA,QAAQ,EAAC,QAAA;AAAQ,KAAA,EAEjB7E,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACo6B,OAAO,CAAC9vB,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;AAC/CvH,MAAAA,GAAG,EAAE02B,OAAO,CAAC9vB,KAAK,CAAC5G,GAAG;AACtBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEitB,OAAO,CAAC9vB,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC7CqE,QAAAA,YAAY,EAAE,wBAAA;;AAEhB,KAAA,CAAA,EACFlK,KAAC,CAAAC,aAAA,CAAAuQ,QAAQ,OAAG,CACR,GAENxQ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACAouB,OAAO,CAACS,eAAe,GACtBvzB,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,MAAAA,QAAQ,EAAC,UAAU;AACnBE,MAAAA,IAAI,EAAC,GAAG;AACRD,MAAAA,GAAG,EAAC,GAAG;AACP+D,MAAAA,KAAK,EAAC,MAAM;AACZG,MAAAA,MAAM,EAAC,MAAA;AAAM,KAAA,EAEbtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK;AACJC,MAAAA,GAAG,EACD4tB,WAAW,KAAKpB,WAAW,CAACc,eAAe,IAC3CD,OAAO,CAACpqB,OAAO,KAAK,OAAO,GACpBlT,OAAO,GAAA,0CAAA,GACPA,OAAO,GAA2C,2CAAA;MAE3D4G,GAAG,EAAEwhB,aAAa,CAAC;AACjBxmB,QAAAA,EAAE,EACAi8B,+BAAAA,IAAAA,WAAW,KAAKpB,WAAW,CAACc,eAAe,IAC3CD,OAAO,CAACpqB,OAAO,KAAK,OAAO,GACvB,MAAM,GACN,OACN,CAAA;AACD,OAAA,CAAC;AACFhD,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE,OAAO;AAClBqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;AAAA,KAAA,CACD,CACE,GAENlK,yCACD,EAEDA,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;MAAAqL,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5C/K,MAAAA,QAAQ,EAAC,GAAG;MACZE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAClCJ,MAAAA,cAAc,EAAEoqB,MAAM,CAACmB,WAAW,CAAC,CAACvrB,cAAAA;AAAc,KAAA,EAEjDgrB,OAAO,CAAC9vB,KAAK,IAAIqwB,WAAW,KAAKpB,WAAW,CAACiB,KAAK,GACjDlzB,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,MAAAA,QAAQ,EAAC,UAAU;MACnBmE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;MACzC+d,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;AAAC,KAAA,EAEzCriB,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACo6B,OAAO,CAAC9vB,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAChDvH,MAAAA,GAAG,EAAE02B,OAAO,CAAC9vB,KAAK,CAAC5G,GAAG;AACtBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEitB,OAAO,CAAC9vB,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC7CqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;AAAA,KAAA,CACD,CACE,GAENlK,yCACD,EAEDA,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAA2b,MAAAA,MAAM,EAAC,MAAM;AACb2X,MAAAA,UAAU,EAAEtB,MAAM,CAACmB,WAAW,CAAC,CAACf,cAAc;AAC9CmB,MAAAA,WAAW,EAAEvB,MAAM,CAACmB,WAAW,CAAC,CAACd,eAAe;AAChDpc,MAAAA,QAAQ,EAAC,KAAA;AAAK,KAAA,EAEdnW,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;MAACjN,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAK,KAAA,CAAA,EAEjDtE,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;MACnBE,OAAO,EAAEmpB,OAAO,CAACnpB,OAAO;AACxBC,MAAAA,YAAY,EAAE;AACZC,QAAAA,SAAS,EAAEqoB,MAAM,CAACmB,WAAW,CAAC,CAACxpB,SAAS;QACxCkH,KAAK,EACH4F,UAAQ,CAACmc,OAAO,CAACpqB,OAAO,CAAC,CAACgqB,YAAY,CAACW,WAAW,CAAC;AACrDK,QAAAA,QAAQ,EAAE,CACR,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJxB,MAAM,CAACmB,WAAW,CAAC,CAAClB,cAAc,CAAA;OAErC;MACDj2B,KAAK,EAAE42B,OAAO,CAAC52B,KAAK;AACpB6N,MAAAA,UAAU,EAAE;AACV4pB,QAAAA,UAAU,EAAE,SAAS;AACrB7B,QAAAA,QAAQ,EAAE,KAAK;AACf8B,QAAAA,UAAU,EAAE,KAAK;AACjBC,QAAAA,UAAU,EAAE,GAAG;AACfhqB,QAAAA,SAAS,EAAEqoB,MAAM,CAACmB,WAAW,CAAC,CAACxpB,SAAS;AACxC6pB,QAAAA,QAAQ,EAAE,CACR,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJxB,MAAM,CAACmB,WAAW,CAAC,CAACjB,YAAY,CACjC;QACDrhB,KAAK,EACH4F,UAAQ,CAACmc,OAAO,CAACpqB,OAAO,CAAC,CAACiqB,UAAU,CAACU,WAAW,CAAA;OACnD;MACD9yB,IAAI,EAAEuyB,OAAO,CAAChiB,QAAQ;AACtB7G,MAAAA,SAAS,EAAE;AACTJ,QAAAA,SAAS,EAAEqoB,MAAM,CAACmB,WAAW,CAAC,CAACxpB,SAAS;QACxCkH,KAAK,EACH4F,UAAQ,CAACmc,OAAO,CAACpqB,OAAO,CAAC,CAACkqB,aAAa,CAACS,WAAW,CAAA;;AAEvD,KAAA,CAAA,EACDP,OAAO,CAACh3B,OAAO,IAAIg3B,OAAO,CAACh3B,OAAO,CAACrF,MAAM,GAAG,CAAC,GAC5CuJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAAQ,MAAAA,GAAG,EAAC,GAAG;AACPJ,MAAAA,cAAc,EACZoqB,MAAM,CAACmB,WAAW,CAAC,CAAChB,oBAAAA;AAGrB,KAAA,EAAAS,OAAO,CAACh3B,OAAO,IACdg3B,OAAO,CAACh3B,OAAO,CAACvI,GAAG,CAAC,UAAC0d,MAAM,EAAA;AAAA,MAAA,OACzBjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAAxX,QAAAA,GAAG,EAAEsZ,MAAM,CAACA,MAAM,CAAC7Z,EAAE;QACrBgY,IAAI,EAAE6B,MAAM,CAACA,MAAM;AACnBxJ,QAAAA,IAAI,EAAC,IAAI;QACTiB,OAAO,EAAEuI,MAAM,CAACvI,OAAO;AACvB4G,QAAAA,SAAS,EAAC,KAAA;AACV,OAAA,CAAA,CAAA;KACH,CAAC,CACC,CACN,GAEHtP,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAC;MAAAjN,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;MAAK,CAC7C,EACLwuB,OAAO,CAAC9vB,KAAK,IAAIqwB,WAAW,KAAKpB,WAAW,CAACgB,IAAI,GAChDjzB,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,MAAAA,QAAQ,EAAC,UAAU;MACnBmE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;MACzC+d,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;AAAC,KAAA,EAEzCriB,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACo6B,OAAO,CAAC9vB,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAChDvH,MAAAA,GAAG,EAAE02B,OAAO,CAAC9vB,KAAK,CAAC5G,GAAG;AACtBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEitB,OAAO,CAAC9vB,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC7CqE,QAAAA,YAAY,EAAE,wBAAA;;AAEhB,KAAA,CAAA,CACE,GAENlK,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,CACI,CACG,CAAA;GAEf,CAAC,CACG,CACC,CACc,CAAA;AAE9B,CAAC;;ACxZM,IAAMovB,OAAO,GAA2B,SAAlCA,OAAOA,CAAA3hC,IAAA,EAAA;AAAA,EAAA,IAA8BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAAA,EAAA,OACrD4E,oBAACwJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,IAAAA,QAAQ,EAAC,UAAU;AAACC,IAAAA,GAAG,EAAC,KAAK;AAACyQ,IAAAA,SAAS,EAAC,iBAAA;AAAiB,GAAA,EAC5D7Q,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EAAC;AAAA1H,IAAAA,IAAI,EAAC,IAAI;IAAC2H,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAAE3B,IAAAA,SAAS,EAAC,SAAA;IAAY,CAClE,CACE,CAAA;AAAA,CACX;;ACOM,IAAMykB,QAAQ,GAA4B,SAApCA,QAAQA,CAAA5hC,IAAA,EAAyD;AAAA,EAAA,IAA1BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACvD,EAAA,IAAA44B,mBAAA,GAA4BC,kBAAkB,EAAE;AAAvCC,IAAAA,eAAe,GAAAF,mBAAA,CAAA,CAAA,CAAA,CAAA;AACxB,EAAA,IAAArW,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;EACrB,IAAMuW,OAAO,GAAyC,EAAE,CAAA;AACxD,EAAA,IAAAhxB,SAAA,GAAoCC,QAAQ,EAAU;AAA/CgxB,IAAAA,UAAU,GAAAjxB,SAAA,CAAA,CAAA,CAAA;AAAEkxB,IAAAA,aAAa,GAAAlxB,SAAA,CAAA,CAAA,CAAA,CAAA;EAEhC/H,KAAK,CAACk5B,cAAc,CACjBlR,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;AAAA,IAAA,OAAKD,CAAC,CAACrvB,UAAU,CAACkI,KAAK,CAACq4B,aAAa,CAACjR,CAAC,CAACtvB,UAAU,CAACkI,KAAK,CAAC,CAAA;AAAA,GAAA,CAAC,CACpEq1B,OAAO,CAAC,UAACiD,IAAI,EAAI;AAAA,IAAA,IAAAC,qBAAA,CAAA;IAChB,IAAMpyB,KAAK,GAAG,CAAAoyB,CAAAA,qBAAA,GAAAD,IAAI,CAACxgC,UAAU,CAACkI,KAAK,CAACw4B,EAAE,CAAC,CAAC,CAAC,KAA3BD,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA6BE,WAAW,EAAE,KAAI,GAAG,CAAA;AAC/D,IAAA,IAAI,CAACR,OAAO,CAAC9xB,KAAK,CAAC,EAAE;AACnB8xB,MAAAA,OAAO,CAAC9xB,KAAK,CAAC,GAAG,EAAE,CAAA;AACrB,KAAA;IACA8xB,OAAO,CAAC9xB,KAAK,CAAC,CAACsR,IAAI,CAAC6gB,IAAI,CAACxgC,UAAU,CAAC,CAAA;GACrC,EAAE,EAAE,CAAC,CAAA;AAER,EAAA,IAAM4gC,iBAAiB,gBAAA,YAAA;IAAA,IAAAjiC,KAAA,GAAAP,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAOwB,IAAY,EAAA;AAAA,MAAA,IAAA8gC,OAAA,CAAA;AAAA,MAAA,IAAAC,UAAA,CAAA;AAAA,MAAA,OAAAziC,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAC3C,YAAA,IAAA,CAAAuhC,OAAA,GAAIxqB,MAAM,aAANwqB,OAAA,CAAQ7T,QAAQ,EAAE;AACd8T,cAAAA,UAAU,GAAGzqB,MAAM,CAAC2W,QAAQ,CAACre,IAAI,CAAC4iB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD2O,cAAAA,eAAe,CAAIY,UAAU,GAAI/gC,GAAAA,GAAAA,IAAM,CAAC,CAAA;cACxCsgC,aAAa,CAACtgC,IAAI,CAAC,CAAA;AAEnBkT,cAAAA,UAAU,CAAC,YAAK;gBACdotB,aAAa,CAAC99B,SAAS,CAAC,CAAA;eACzB,EAAE,IAAI,CAAC,CAAA;AACV,aAAA;AAAC,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAnD,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAxC,OAAA,CAAA,CAAA;KACF,CAAA,CAAA,CAAA;IAAA,OAVKqiC,SAAAA,iBAAiBA,CAAA5/B,EAAA,EAAA;AAAA,MAAA,OAAArC,KAAA,CAAAwC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GAUtB,EAAA,CAAA;AAED,EAAA,OACE4K,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EACR,IAAA,EAAA9D,MAAM,CAAConB,OAAO,CAACZ,OAAO,CAAC,CAAC5gC,GAAG,CAAC,UAAAw0B,KAAA,EAAkB1lB,KAAK,EAAA;IAAA,IAArB2yB,MAAM,GAAAjN,KAAA,CAAA,CAAA,CAAA;AAAEkN,MAAAA,KAAK,GAAAlN,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAC1C/nB,KAAC,CAAAC,aAAA,CAAAsU,QAAQ;AAACvK,MAAAA,IAAI,EAAC,IAAI;AAACkrB,MAAAA,SAAS,EAAC,QAAQ;AAACv9B,MAAAA,GAAG,EAAEq9B,MAAAA;AAAM,KAAA,EAChDh1B,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAApK,MAAAA,IAAI,EAAC,KAAK;AAACqK,MAAAA,EAAE,EAAC,GAAA;KACpB,EAAAkjB,MAAM,CACC,EAEVh1B,KAAC,CAAAC,aAAA,CAAAwR,UAAU;AAAC0jB,MAAAA,OAAO,EAAC,GAAA;AACjB,KAAA,EAAAF,KAAK,CAAC1hC,GAAG,CAAC,UAAC+N,IAAI,EAAA;AAAA,MAAA,OACdtB,KAAC,CAAAC,aAAA,CAAAsU,QAAQ;QAAC5c,GAAG,EAAE2J,IAAI,CAACvN,IAAAA;AAAI,OAAA,EACtBiM,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACoK,QAAAA,EAAE,EAAC,GAAG;AAAC5J,QAAAA,GAAG,EAAC,KAAK;AAACL,QAAAA,UAAU,EAAC,QAAA;AAAQ,OAAA,EACxC7H,KAAC,CAAAC,aAAA,CAAA4R,OAAO;AACNujB,QAAAA,SAAS,EAAC,YAAY;AACtB3tB,QAAAA,IAAI,EAAC,IAAI;QACTrQ,EAAE,EAAEkK,IAAI,CAACvN,IAAI;AACbshC,QAAAA,eAAe,EAAC,qDAAA;OAEf,EAAA/zB,IAAI,CAACpF,KAAK,CACH,EACV8D,KAAC,CAAAC,aAAA,CAAAsI,UAAU;AACTG,QAAAA,OAAO,EAAC,OAAO;AACfjB,QAAAA,IAAI,EAAC,IAAI;AACTe,QAAAA,IAAI,EACF4rB,UAAU,KAAK9yB,IAAI,CAACvN,IAAI,GACtBiM,KAAC,CAAAC,aAAA,CAAAq1B,KAAK;AAAC7tB,UAAAA,IAAI,EAAC,IAAI;AAAa,UAAA,aAAA,EAAA,YAAA;UAAe,GAE5CzH,KAAA,CAAAC,aAAA,CAACs1B,MAAQ,EAAC;AAAA9tB,UAAAA,IAAI,EAAC,IAAA;AAAI,SAAA,CACpB;QAEHvL,KAAK,EAAE0hB,aAAa,CAAC;AACnBxmB,UAAAA,EAAE,EAAE,mCAAA;SACL,CAAC;QAAA,YAAA,EACUwmB,aAAa,CAAC;AACxBxmB,UAAAA,EAAE,EAAE,mCAAA;AACL,SAAA,CAAC;QACFkO,OAAO,EAAA,YAAA;UAAA,IAAAkwB,QAAA,GAAApjC,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAE,SAAA01B,QAAA,GAAA;AAAA,YAAA,OAAA31B,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAi1B,UAAAC,SAAA,EAAA;AAAA,cAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/0B,IAAA,GAAA+0B,SAAA,CAAA90B,IAAA;AAAA,gBAAA,KAAA,CAAA;kBAAA,OAAA80B,SAAA,CAAAvzB,MAAA,CAAA,QAAA,EAAY+/B,iBAAiB,CAACtzB,IAAI,CAACvN,IAAI,CAAC,CAAA,CAAA;AAAA,gBAAA,KAAA,CAAA,CAAA;AAAA,gBAAA,KAAA,KAAA;kBAAA,OAAAq0B,SAAA,CAAArzB,IAAA,EAAA,CAAA;AAAA,eAAA;AAAA,aAAA,EAAAizB,QAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA,CAAA;AAAA,UAAA,SAAjD1iB,OAAOA,GAAA;AAAA,YAAA,OAAAkwB,QAAA,CAAArgC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,WAAA;AAAA,UAAA,OAAPkQ,OAAO,CAAA;AAAA,SAAA,EAAA;QACP,CACG,EACPtF,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAhB,QAAAA,KAAK,EAAC,OAAO;AAACqkB,QAAAA,SAAS,EAAC,YAAA;AAAY,OAAA,EACvC9zB,IAAI,CAACf,IAAI,CACL,CACE,CAAA;KACZ,CAAC,CACS,EAEZ8B,KAAK,KAAKsL,MAAM,CAACC,IAAI,CAACumB,OAAO,CAAC,CAAC19B,MAAM,GAAG,CAAC,IACxCuJ,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAC;AAAAzrB,MAAAA,IAAI,EAAC,IAAI;AAACkrB,MAAAA,SAAS,EAAC,QAAQ;AAACpjB,MAAAA,EAAE,EAAC,IAAI;AAAChI,MAAAA,EAAE,EAAC,IAAA;AAAO,KAAA,CACzD,CACQ,CAAA;GACZ,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;AC7GM,IAAM4rB,mCAAmC,GAAG,EAAE,CAAA;AAE9C,IAAMC,mCAAmC,GAAG,KAAM;;AC2ClD,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAAzjC,IAAA,EAAiD;AAAA,EAAA,IAA3CiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAClC,IAAAuX,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAChB,EAAA,IAAAgL,WAAA,GAAgD/N,UAAU,CAAC1B,WAAW,CAAC;IAA/D0P,aAAa,GAAAD,WAAA,CAAbC,aAAa;IAAE+C,YAAY,GAAAhD,WAAA,CAAZgD,YAAY;IAAEntB,MAAM,GAAAmqB,WAAA,CAANnqB,MAAM,CAAA;AAC3C,EAAA,IAAAigB,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AAEZ,EAAA,IAAMkiB,YAAY,GAAGjvB,WAAW,CAC9B,UAACkvB,MAAoB,EAAI;IACvB,IAAMC,MAAM,GAA2C,EAAE,CAAA;AAEzD,IAAA,IAAI,CAACD,MAAM,CAACE,iBAAiB,EAAE;AAC7BD,MAAAA,MAAM,CAACC,iBAAiB,GAAGpY,aAAa,CAAC;AACvCxmB,QAAAA,EAAE,EAAE,0DAAA;AACL,OAAA,CAAC,CAAA;AACJ,KAAC,MAAM,IACL0+B,MAAM,CAACE,iBAAiB,GAAGN,mCAAmC,EAC9D;AACAK,MAAAA,MAAM,CAACC,iBAAiB,GAAGpY,aAAa,CAAC;QACvCxmB,EAAE,EAAA,4DAAA,GAA+DgE,KAAK,CAAC66B,QAAAA;AACxE,OAAA,CAAC,CAAA;AACJ,KAAC,MAAM,IACLH,MAAM,CAACE,iBAAiB,GAAGL,mCAAmC,EAC9D;AACAI,MAAAA,MAAM,CAACC,iBAAiB,GAAGpY,aAAa,CAAC;AACvCxmB,QAAAA,EAAE,EAAE,4DAAA;AACL,OAAA,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAO2+B,MAAM,CAAA;AACf,GAAC,EACD,CAACviC,MAAM,CAAC,CACT,CAAA;AAED,EAAA,IAAM0iC,QAAQ,GAAG,SAAXA,QAAQA,CAAAvjC,KAAA,EAA2C;AAAA,IAAA,IAArCqjC,iBAAiB,GAAArjC,KAAA,CAAjBqjC,iBAAiB,CAAA;AACnC,IAAA,IAAMG,WAAW,GAAG,IAAIC,GAAG,CAAI9gC,WAAW,+BAA4B,CAAC,CAAA;IACvE,IAAM+gC,UAAU,GAAG,IAAID,GAAG,CAAC/rB,MAAM,CAAC2W,QAAQ,CAACre,IAAI,CAAC,CAAA;IAEhDwzB,WAAW,CAACG,YAAY,CAACC,MAAM,CAAC,SAAS,EAAEn7B,KAAK,CAACo7B,OAAO,CAAC,CAAA;IAEzDL,WAAW,CAACG,YAAY,CAACC,MAAM,CAC7B,UAAU,EACVtZ,IAAI,CAACC,KAAK,CAAC8Y,iBAAiB,GAAG56B,KAAK,CAACq7B,UAAU,CAAC,CAACC,QAAQ,EAAE,CAC5D,CAAA;IAEDP,WAAW,CAACG,YAAY,CAACC,MAAM,CAAC,YAAY,EAAEF,UAAU,CAACM,QAAQ,CAAC,CAAA;AAElE,IAAA,IAAIv7B,KAAK,CAACw7B,QAAQ,EAChBT,WAAW,CAACG,YAAY,CAACC,MAAM,CAAC,UAAU,EAAEn7B,KAAK,CAACw7B,QAAQ,CAAC,CAAA;AAE7DjjB,IAAAA,IAAI,CAACwiB,WAAW,CAACO,QAAQ,EAAE,CAAC,CAAA;GAC7B,CAAA;AAED,EAAA,OACE12B,KAAA,CAAAC,aAAA,CAACsJ,uBAAuB,EAAA;AAAC+G,IAAAA,eAAe,EAAEuC,SAAS;IAAE3W,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EACrE8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;IACHqL,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5CjL,IAAAA,cAAc,EAAC,eAAe;IAC9BD,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA;AAAC,GAAA,EAEhD7H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;IAAAuzB,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAAE3uB,IAAAA,UAAU,EAAE,CAAA;AAAC,GAAA,EAC5D9E,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;IACZ,CACE,EACNP,KAAA,CAAAC,aAAA,CAAC2gB,SAAS,EAAA;AAACzK,IAAAA,QAAQ,EAAC,IAAI;AAACgC,IAAAA,OAAO,EAAC,IAAI;AAAC0e,IAAAA,MAAM,EAAC,IAAA;GAAI,EAC9Cz7B,KAAK,CAACgyB,KAAK,GACVptB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAAC62B,KAAK,EACJ;AAAAhiB,IAAAA,WAAW,EAAC,OAAO;AACnBiiB,IAAAA,aAAa,EAAC,MAAM;AACpBC,IAAAA,UAAU,EAAC,OAAA;KAEV57B,KAAK,CAACgyB,KAAK,CACN,EACRptB,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAG,GAAA,CAAG,CACpB,GAEHtE,yCACD,EAEDA,KAAA,CAAAC,aAAA,CAACmV,QAAQ,EAAA;IACP3S,OAAO,EAAErH,KAAK,CAAC67B,YAAY;AAC3BhtB,IAAAA,SAAS,EAAE;AAAE8G,MAAAA,KAAK,EAAE,UAAA;;AACpB,GAAA,CAAA,EAEF/Q,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAG,IAAA,CAAA,EACXz1B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAi3B,eAAe;IACdC,KAAK,EAAEvZ,aAAa,CAAC;AAAExmB,MAAAA,EAAE,EAAE,mCAAA;AAAmC,KAAE,CAAC;IACjEggC,MAAM,EAAKzW,YAAY,CAACvlB,KAAK,CAACq7B,UAAU,GAAG,GAAG,EAAE;AAC9C9wB,MAAAA,KAAK,EAAE,UAAU;MACjBswB,QAAQ,EAAE76B,KAAK,CAAC66B,QAAAA;AACjB,KAAA,CAAC,GAAA,GAAA,GAAItV,YAAY,CAAC,GAAG,EAAE;AACtBhb,MAAAA,KAAK,EAAE,MAAM;AACb+Z,MAAAA,IAAI,EAAE,UAAA;AACP,KAAA,CAAC,GAAO,YAAA;IACTqS,OAAO,EAAEnU,aAAa,CAAC;AACrBxmB,MAAAA,EAAE,EAAE,oDAAA;KACL,CAAA;AACD,GAAA,CAAA,EAEF4I,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAG,IAAA,CAAA,EACXz1B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAo3B,MAAM,EACL;AAAAC,IAAAA,aAAa,EAAE;MACbtB,iBAAiB,EAAE56B,KAAK,CAACm8B,wBAAAA;KAC1B;AACDC,IAAAA,QAAQ,EAAE3B,YAAY;AACtBK,IAAAA,QAAQ,EAAEA,QAAAA;GAET,EAAA,UAAAnO,KAAA,EAK+B;AAAA,IAAA,IAJ9BgO,MAAM,GAAAhO,KAAA,CAANgO,MAAM;MACN0B,OAAO,GAAA1P,KAAA,CAAP0P,OAAO;MACPC,YAAY,GAAA3P,KAAA,CAAZ2P,YAAY;MACZ5B,MAAM,GAAA/N,KAAA,CAAN+N,MAAM,CAAA;AAEN,IAAA,IAAM6B,YAAY,GAChB1a,IAAI,CAACC,KAAK,CAAC4Y,MAAM,CAACE,iBAAiB,GAAG56B,KAAK,CAACq7B,UAAU,CAAC,GACvDr7B,KAAK,CAACq7B,UAAU,CAAA;AAElB,IAAA,OACEz2B,KAAC,CAAAC,aAAA,CAAA23B,IAAI,EAAC;AAAA1B,MAAAA,QAAQ,EAAEwB,YAAAA;AAAY,KAAA,EAC1B13B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACiE,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EACfnE,KAAA,CAAAC,aAAA,CAAC43B,KAAK,EAAC;AAAAr1B,MAAAA,IAAI,EAAC,mBAAA;OACT,UAAAs1B,KAAA,EAAA;AAAA,MAAA,IAAGC,KAAK,GAAAD,KAAA,CAALC,KAAK,CAAA;AAAA,MAAA,OACP/3B,KAAC,CAAAC,aAAA,CAAA+3B,iBAAiB;AAChB5gC,QAAAA,EAAE,EAAC,mBAAmB;AACtBqQ,QAAAA,IAAI,EAAC,IAAI;AACTwwB,QAAAA,UAAU,EAAArjC,QAAA,CAAA;AAAImM,UAAAA,IAAI,EAAE,QAAA;AAAQ,SAAA,EAAKg3B,KAAK,CAAE;QACxCZ,KAAK,EAAEvZ,aAAa,CAAC;UACnBxmB,EAAE,EAAA,gDAAA,GAAmDgE,KAAK,CAAC66B,QAAAA;SAC5D,CAAC;AACFiC,QAAAA,qBAAqB,EAAE,CACrBl4B,KAAA,CAAAC,aAAA,CAACk4B,eAAe,EAAC;AAAAxgC,UAAAA,GAAG,EAAC,GAAA;SAAG,EACrBimB,aAAa,CAAC;UACbxmB,EAAE,EAAA,+CAAA,GAAkDgE,KAAK,CAAC66B,QAAAA;SAC3D,CAAC,CACc,CACnB;QACDmC,SAAS,EACP,CAAC,CAACrC,MAAM,CAACC,iBAAiB,IAC1ByB,OAAO,CAACzB,iBAAiB;QAE3BqC,YAAY,EAAEtC,MAAM,CAACC,iBAAAA;AAAiB,OAAA,CACtC,CAAA;KACH,CACK,CACJ,EAENh2B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAwR,UAAU;AAACL,MAAAA,OAAO,EAAE,CAAC;AAAElJ,MAAAA,GAAG,EAAC,GAAA;AAAG,KAAA,EAC7BlI,KAAA,CAAAC,aAAA,CAACi3B,eAAe,EAAA;MACdC,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,QAAAA,EAAE,EAAE,kCAAA;AACL,OAAA,CAAC;AACFggC,MAAAA,MAAM,EAAKzW,YAAY,CACrB1D,IAAI,CAACC,KAAK,CACR4Y,MAAM,CAACE,iBAAiB,GAAG56B,KAAK,CAACq7B,UAAU,CAC5C,EACD;AACE9wB,QAAAA,KAAK,EAAE,MAAM;AACb+Z,QAAAA,IAAI,EAAE,UAAU;AAChBE,QAAAA,qBAAqB,EAAE,CAAA;AACxB,OAAA,CACF,GAAA,WAAA;AACD,KAAA,CAAA,EACF5f,KAAA,CAAAC,aAAA,CAACi3B,eAAe,EAAA;MACdC,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,QAAAA,EAAE,EAAE,qCAAA;AACL,OAAA,CAAC;AACFggC,MAAAA,MAAM,EAAEzW,YAAY,CAACgX,YAAY,EAAE;AACjChyB,QAAAA,KAAK,EAAE,UAAU;QACjBswB,QAAQ,EAAE76B,KAAK,CAAC66B,QAAQ;AACxBqC,QAAAA,qBAAqB,EAAE,CAAC;AACxB1Y,QAAAA,qBAAqB,EAAE,CAAA;AACxB,OAAA,CAAC;AACFmS,MAAAA,OAAO,EACL32B,KAAK,CAACm9B,YAAY,IAClBn9B,KAAK,CAACm9B,YAAY,GAAG,CAAC,IACtBZ,YAAY,GAAG,CAAC,GACZ/Z,aAAa,CACX;AACExmB,QAAAA,EAAE,EAAE,iDAAA;OACL,EACD;AACEggC,QAAAA,MAAM,EAAEzW,YAAY,CAClBgX,YAAY,GACVA,YAAY,IAAIv8B,KAAK,CAACm9B,YAAY,GAAG,GAAG,CAAC,EAC3C;AACE5yB,UAAAA,KAAK,EAAE,UAAU;UACjBswB,QAAQ,EAAE76B,KAAK,CAAC66B,QAAQ;AACxBqC,UAAAA,qBAAqB,EAAE,CAAC;AACxB1Y,UAAAA,qBAAqB,EAAE,CAAA;SACxB,CAAA;OAEJ,CACF,GACD,EAAA;KAAE,CAER,CACS,EAEb5f,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAiQ,MAAM;AAACnP,MAAAA,IAAI,EAAC,QAAQ;AAACoD,MAAAA,KAAK,EAAC,MAAA;KAAM,EAC/ByZ,aAAa,CAAC;AAAExmB,MAAAA,EAAE,EAAE,8BAAA;KAAgC,CAAC,CAC/C,CACJ,CAAA;AAEX,GAAC,CACM,CACC,CACP,CACC,CACc,CAAA;AAE9B,CAAC;;ACrPD,IAAMuf,UAAQ,GAAG;AACfC,EAAAA,IAAI,EAAE;AACJtG,IAAAA,eAAe,EAAE,YAAY;AAC7BuG,IAAAA,YAAY,EAAE,aAAa;AAC3B8b,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,aAAa,EAAE,OAAO;AACtB4F,IAAAA,YAAY,EAAE,UAAU;AACxBC,IAAAA,cAAc,EAAE,UAAA;GACjB;AACDxhB,EAAAA,KAAK,EAAE;AACL3G,IAAAA,eAAe,EAAE,aAAa;AAC9BuG,IAAAA,YAAY,EAAE,OAAO;AACrB8b,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,aAAa,EAAE,OAAO;AACtB4F,IAAAA,YAAY,EAAE,gBAAgB;AAC9BC,IAAAA,cAAc,EAAE,OAAA;GACjB;AACDvhB,EAAAA,KAAK,EAAE;AACL5G,IAAAA,eAAe,EAAE,OAAO;AACxBuG,IAAAA,YAAY,EAAE,aAAa;AAC3B8b,IAAAA,UAAU,EAAE,OAAO;AACnBC,IAAAA,aAAa,EAAE,OAAO;AACtB4F,IAAAA,YAAY,EAAE,UAAU;AACxBC,IAAAA,cAAc,EAAE,UAAA;AACjB,GAAA;CACF,CAAA;AAEM,IAAMC,KAAK,GAAyB,SAA9BA,KAAKA,CAAAvmC,IAAA,EAAA;AAAA,EAAA,IAA4BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAAA,EAAA,OACjD4E,oBAACuJ,uBAAuB,EAAA;IACtB+G,eAAe,EAAEqG,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAAC4H,eAAe;AACxDyC,IAAAA,OAAO,EAAC,QAAQ;AAChBlJ,IAAAA,SAAS,EAAC,QAAQ;AAClB/B,IAAAA,cAAc,EAAC,eAAe;AAC9B4rB,IAAAA,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;IAC1Bx3B,KAAK,EAAEd,KAAK,CAACc,KAAAA;AAAK,GAAA,EAElB8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGtJ,KAAK,CAACc,KAAK,IACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBpJ,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;IACpB5U,KAAK,EAAEd,KAAK,CAACc,KAAK;AAClB0N,IAAAA,YAAY,EAAE;MACZmH,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACmO,YAAY;AAC3ChN,MAAAA,SAAS,EAAE,QAAA;KACZ;AACDE,IAAAA,UAAU,EAAE;MACVgH,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACiqB,UAAU;AACzC9oB,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAA;KACV;AACD8B,IAAAA,SAAS,EAAE;MACT8G,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAACkqB,aAAa;AAC5C/oB,MAAAA,SAAS,EAAE,QAAQ;AACnBG,MAAAA,IAAI,EAAE,KAAK;AACX7B,MAAAA,OAAO,EAAE,MAAA;;AAEX,GAAA,CAAA,EACFnI,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAA;GAAC,CAAI,CAExC,EACDtE,KAAC,CAAAC,aAAA,CAAAyH,IAAI;IACHI,cAAc,EAAE1M,KAAK,CAAC6Z,KAAK,CAACxe,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY;AAChEoR,IAAAA,UAAU,EAAC,QAAQ;AACnBmL,IAAAA,QAAQ,EAAC,MAAM;IACfhC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAClC+B,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACtC7K,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;GAE3B,EAAA9M,KAAK,CAAC6Z,KAAK,CAAC1hB,GAAG,CAAC,UAAColC,IAAI,EAAA;AAAA,IAAA,OACpB34B,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;MAAA/P,GAAG,EAAEghC,IAAI,CAAChhC,GAAG;AACbob,MAAAA,OAAO,EAAC,QAAQ;MAChB5O,KAAK,EAAE,CACL,0BAA0B,EAC1B,IAAI,EACJ,IAAI,EACJ,+DAA+D,CAChE;AACD2F,MAAAA,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE1O,KAAK,CAAC6Z,KAAK,CAACxe,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAA;AAAC,KAAA,EAExDuJ,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EACN;AAAAigB,MAAAA,QAAQ,EAAC,KAAK;AACd6B,MAAAA,UAAU,EAAC,SAAS;AACpBE,MAAAA,UAAU,EAAC,IAAI;AACfD,MAAAA,UAAU,EAAC,KAAK;MAChB7iB,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAAC+vB,cAAc;AAC7C3mB,MAAAA,EAAE,EAAC,GAAG;AACNnN,MAAAA,EAAE,EAAC,GAAA;OAEFg0B,IAAI,CAACl4B,KAAK,CACH,EAEVT,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EACH;AAAAtK,MAAAA,IAAI,EAAC,aAAa;AAClBsJ,MAAAA,KAAK,EAAE4F,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAAC8vB,YAAAA;AAAY,KAAA,EAE1CG,IAAI,CAAChhC,GAAG,CACJ,CACF,CAAA;GACR,CAAC,CACG,EAENyD,KAAK,CAAC6V,MAAM,IACXjR,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAsR,MAAM,EAAC;AAAAjN,IAAAA,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAA;AAAK,GAAA,CAAA,EACrCtE,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;IAAAC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;IACTiB,OAAO,EAAEtN,KAAK,CAACsN,OAAO,KAAK,OAAO,GAAG,SAAS,GAAG,OAAO;AACxD4G,IAAAA,SAAS,EAAC,OAAA;GACV,CAAA,CAEL,CACA,CACqB,CAAA;AAAA,CAC3B;;ACpGD,IAAMqH,UAAQ,GAAG;AACfO,EAAAA,KAAK,EAAE;AACL5G,IAAAA,eAAe,EAAE,OAAA;GAClB;AACDsG,EAAAA,IAAI,EAAE;AACJtG,IAAAA,eAAe,EAAE,YAAA;AAClB,GAAA;CACF,CAAA;AAED,IAAMsoB,eAAe,GAAG,SAAlBA,eAAeA,CACnBvV,CAA8B,EAC9BC,CAA8B,EAAA;EAAA,OAE9B,IAAInC,IAAI,CAACmC,CAAC,CAACtvB,UAAU,CAACuvB,SAAS,CAAC,CAACC,OAAO,EAAE,GAC1C,IAAIrC,IAAI,CAACkC,CAAC,CAACrvB,UAAU,CAACuvB,SAAS,CAAC,CAACC,OAAO,EAAE,CAAA;AAAA,CAAA,CAAA;AAErC,IAAMqV,SAAS,GAA6B,SAAtCA,SAASA,CAAA1mC,IAAA,EAGD;AAAA,EAAA,IAFnBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IACLmB,SAAS,GAAApK,IAAA,CAAToK,SAAS,CAAA;AAET,EAAA,IAAAohB,WAAA,GAAuB/N,UAAU,CAAC1B,WAAW,CAAC;IAAtC+U,UAAU,GAAAtF,WAAA,CAAVsF,UAAU,CAAA;AAClB,EAAA,IAAA7Z,cAAA,GAAiBC,aAAa,CAACJ,mBAAmB,CAAC;AAA5C6vB,IAAAA,MAAM,GAAA1vB,cAAA,CAAA,CAAA,CAAA,CAAA;EACb,IAAAuJ,SAAA,GAAkBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;AAA3CQ,IAAAA,OAAO,GAAAT,SAAA,CAAA,CAAA,CAAA,CAAA;EAEd,IAAMuQ,eAAe,GAAGzc,OAAO,CAC7B,YAAA;AAAA,IAAA,OAAMlK,SAAS,CAAC6mB,IAAI,CAACwV,eAAe,CAAC,CAAA;GACrC,EAAA,CAACr8B,SAAS,CAAC,CACZ,CAAA;EAED,IAAMw8B,kBAAkB,GAAGtyB,OAAO,CAChC,YAAA;AAAA,IAAA,IAAAuyB,qBAAA,CAAA;IAAA,OACE,CAAAA,qBAAA,GAAA59B,KAAK,CAAC69B,gBAAgB,KAAAD,IAAAA,IAAAA,CAAAA,qBAAA,GAAtBA,qBAAA,CAAwBnlC,IAAI,aAA5BmlC,qBAAA,CAA8BhlC,UAAU,CAACwO,IAAI,GACzC0gB,eAAe,CACZzuB,MAAM,CACL,UAACkvB,QAAQ,EAAA;MAAA,IAAAuV,qBAAA,EAAAC,sBAAA,CAAA;AAAA,MAAA,OACP,CAAAD,CAAAA,qBAAA,GAAAvV,QAAQ,CAAC3vB,UAAU,CAAC6vB,QAAQ,CAAChwB,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCqlC,qBAAA,CAAmCllC,UAAU,CAACwO,IAAI,OAAA22B,CAAAA,sBAAA,GAClD/9B,KAAK,CAAC69B,gBAAgB,cAAAE,sBAAA,GAAtBA,sBAAA,CAAwBtlC,IAAI,KAA5BslC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA8BnlC,UAAU,CAACwO,IAAI,CAAA,CAAA;AAAA,KAAA,CAChD,CACApH,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GACd8nB,eAAe,CAAC9nB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAAA,GAAA,EACjC,CAAC8nB,eAAe,EAAE9nB,KAAK,CAAC,CACzB,CAAA;AAED,EAAA,OACE4E,KAAC,CAAAC,aAAA,CAAAsJ,uBAAuB;IACtB+G,eAAe,EAAEqG,UAAQ,CAACvb,KAAK,CAACsN,OAAO,CAAC,CAAC4H,eAAe;IACxDpU,KAAK,EAAEd,KAAK,CAACc,KAAAA;GAAK,EAElB8D,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLsvB,MAAM,IAAI,CAAC19B,KAAK,CAAC6V,MAAM,GACtBjR,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpB/G,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE,KAAA;KAAO;AAC3BC,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,KAAA;AAAO,KAAA;AAAA,GAAA,CAC1B,GAEFhK,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EAAC;AAAAI,IAAAA,cAAc,EAAC,eAAe;AAACD,IAAAA,UAAU,EAAC,QAAQ;AAACK,IAAAA,GAAG,EAAC,IAAA;AAAI,GAAA,EAC/DlI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAC,CAAAC,aAAA,CAAAwJ,oBAAoB;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAAA;IACZ,CACE,EACN9Q,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACmiB,IAAAA,QAAQ,EAAC,IAAA;AAAI,GAAA,EAChBriB,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EAAA;IACfC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;AACjB+J,IAAAA,SAAS,EAAEzS,KAAC,CAAAC,aAAA,CAAA2I,UAAU,EAAC;AAAAmI,MAAAA,KAAK,EAAEqC,OAAAA;AAAO,KAAA,CAAI;AACzC9D,IAAAA,SAAS,EAAC,WAAA;GACV,CAAA,CACE,CAET,EACDtP,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,IAAA;AAAO,GAAA,CAAA,EACtBtE,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;IACTL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3BqS,IAAAA,QAAQ,EAAE,CAAC;AACXC,IAAAA,QAAQ,EAAE,EAAE;AACZ5e,IAAAA,UAAU,EAAC,GAAA;AAAG,GAAA,EAEbi0B,kBAAkB,CAACxlC,GAAG,CAAC,UAACowB,QAAQ,EAAA;AAAA,IAAA,IAAAyV,sBAAA,CAAA;AAAA,IAAA,OAC/Bp5B,KAAC,CAAAC,aAAA,CAAA6iB,iBAAiB,EAChB;AAAAne,MAAAA,EAAE,EAAEwL,IAAI;AACRxN,MAAAA,IAAI,EAAWghB,QAAAA,GAAAA,QAAQ,CAAC3vB,UAAU,CAACD,IAAM;AAC7B,MAAA,aAAA,EAAA,WAAW;AACvB4D,MAAAA,GAAG,EAAEgsB,QAAQ,CAAC3vB,UAAU,CAACD,IAAAA;AAAI,KAAA,EAE7BiM,KAAA,CAAAC,aAAA,CAAC8iB,gBAAc,EAAA,IAAA,EACb/iB,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;AACJC,MAAAA,GAAG,EAAE/M,cAAc,CAACirB,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACA,GAAG,EAAE,QAAQ,CAAC;AAC1DvH,MAAAA,GAAG,EAAEunB,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACvH,GAAG;AAChCsJ,MAAAA,IAAI,EAAA,IAAA;AACJC,MAAAA,KAAK,EAAE;QACLE,SAAS,EAAE8d,QAAQ,CAAC3vB,UAAU,CAAC2P,GAAG,CAACkC,SAAS,IAAI,OAAA;AACjD,OAAA;KAAA,CACD,CACa,EACjB7F,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAAC6e,MAAAA,EAAE,EAAC,GAAG;AAACD,MAAAA,EAAE,EAAC,GAAA;AAAG,KAAA,EACf6E,QAAQ,CAAC3vB,UAAU,CAAC6vB,QAAQ,IAC3B7jB,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAiB;AAACsJ,MAAAA,KAAK,EAAC,aAAa;AAACe,MAAAA,EAAE,EAAC,GAAA;KACjD,EAAA,CAAAsnB,sBAAA,GAAAzV,QAAQ,CAAC3vB,UAAU,CAAC6vB,QAAQ,CAAChwB,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjCulC,sBAAA,CAAmCplC,UAAU,CAACwO,IAAI,CAEtD,EACDxC,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAApK,MAAAA,IAAI,EAAC,IAAA;AAAM,KAAA,EAAAkc,QAAQ,CAAC3vB,UAAU,CAACkI,KAAK,CAAW,EACvDynB,QAAQ,CAAC3vB,UAAU,CAAC8vB,MAAM,IACzB9jB,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,iBAAiB;AAACqC,MAAAA,EAAE,EAAC,GAAA;AAC7B,KAAA,EAAA6Z,QAAQ,CAAC3vB,UAAU,CAAC8vB,MAAM,CAE9B,EAED9jB,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAA8jB,cAAc;MACbC,IAAI,EAAEf,UAAU,CAACU,QAAQ,CAAC3vB,UAAU,CAACuvB,SAAS,CAAC;MAC/CU,MAAM,EACJN,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,GAC3B;QACE2O,IAAI,EAAEmhB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAACwO,IAAI;AACrDQ,QAAAA,KAAK,EACHhD,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;AAAAC,UAAAA,GAAG,EAAE/M,cAAc,CACjBirB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAAC2P,GAAG,CAC3CA,GAAG,EACN,WAAW,CACZ;AACDvH,UAAAA,GAAG,EACDunB,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAAC2P,GAAG,CAC3CvH,GAAG;AAERsJ,UAAAA,IAAI,EACJ,IAAA;AAAAC,UAAAA,KAAK,EAAE;AACLE,YAAAA,SAAS,EACP8d,QAAQ,CAAC3vB,UAAU,CAACkwB,MAAM,CAACrwB,IAAI,CAACG,UAAU,CAAC2P,GAAG,CAC3CkC,SAAS,IAAI,OAAA;AACnB,WAAA;SAAA,CAAA;AAGN,OAAA,GACDtP,SAAAA;KAAS,CAEf,CACE,CACY,CAAA;AAAA,GACrB,CAAC,CACS,EACbyJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGo0B,MAAM,IAAI19B,KAAK,CAAC6V,MAAM,IACrBjR,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAACmiB,IAAAA,QAAQ,EAAC,IAAI;AAACvY,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EACvB9J,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;IAAAC,IAAI,EAAEhU,KAAK,CAAC6V,MAAM;AAClBxJ,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;AACjB+J,IAAAA,SAAS,EAAEzS,KAAC,CAAAC,aAAA,CAAA2I,UAAU;AAACmI,MAAAA,KAAK,EAAEqC,OAAAA;AAAO,KAAA,CAAI;AACzC9D,IAAAA,SAAS,EAAC,WAAA;AAAW,GAAA,CACrB,CACE,CAET,CACA,CACK,CACc,CAAA;AAE9B,CAAC;;ACjLD,IAAM+pB,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAC7BvD,MAAyB,EACzByC,YAAoB,EAClB;AACF,EAAA,IAAM93B,KAAK,GAAG64B,QAAQ,CAACxD,MAAM,CAACyD,yBAAyB,CAAC,CAAA;AAExD,EAAA,IAAIC,KAAK,CAAC/4B,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AAE1B,EAAA,OAAOA,KAAK,GAAGA,KAAK,IAAI83B,YAAY,GAAG,GAAG,CAAC,CAAA;AAC7C,CAAC,CAAA;AAeD,IAAMkB,aAAa,GAAG,SAAhBA,aAAaA,CAAAtnC,IAAA,EAUM;AAAA,EAAA,IATvBskC,UAAU,GAAAtkC,IAAA,CAAVskC,UAAU;IACVR,QAAQ,GAAA9jC,IAAA,CAAR8jC,QAAQ;IACRO,OAAO,GAAArkC,IAAA,CAAPqkC,OAAO;IACPe,wBAAwB,GAAAplC,IAAA,CAAxBolC,wBAAwB;IACxBgB,YAAY,GAAApmC,IAAA,CAAZomC,YAAY;IACZtB,YAAY,GAAA9kC,IAAA,CAAZ8kC,YAAY;IACZ/6B,KAAK,GAAA/J,IAAA,CAAL+J,KAAK;IACLw9B,QAAQ,GAAAvnC,IAAA,CAARunC,QAAQ;IACRzoB,MAAM,GAAA9e,IAAA,CAAN8e,MAAM,CAAA;AAEN,EAAA,IAAA0M,WAAA,GAAgD/N,UAAU,CAAC1B,WAAW,CAAC;IAA/DyS,YAAY,GAAAhD,WAAA,CAAZgD,YAAY;IAAE/C,aAAa,GAAAD,WAAA,CAAbC,aAAa;IAAEpqB,MAAM,GAAAmqB,WAAA,CAANnqB,MAAM,CAAA;AAC3C,EAAA,IAAAigB,UAAA,GAAiBC,SAAS,EAAE;IAApBC,IAAI,GAAAF,UAAA,CAAJE,IAAI,CAAA;AAEZ,EAAA,IAAMkiB,YAAY,GAAGjvB,WAAW,CAC9B,UAACkvB,MAAyB,EAAI;IAC5B,IAAMC,MAAM,GAAoC,EAAE,CAAA;AAClD,IAAA,IAAMt1B,KAAK,GAAG64B,QAAQ,CAACxD,MAAM,CAACyD,yBAAyB,CAAC,CAAA;IACxD,IAAI,CAACzD,MAAM,CAACyD,yBAAyB,IAAIC,KAAK,CAAC/4B,KAAK,CAAC,EAAE;AACrDs1B,MAAAA,MAAM,CAACwD,yBAAyB,GAAG3b,aAAa,CAAC;AAC/CxmB,QAAAA,EAAE,EAAE,oEAAA;AACL,OAAA,CAAC,CAAA;AACJ,KAAC,MAAM,IAAIqJ,KAAK,GAAGi1B,mCAAmC,EAAE;AACtDK,MAAAA,MAAM,CAACwD,yBAAyB,GAAG3b,aAAa,CAAC;AAC/CxmB,QAAAA,EAAE,EAAyE6+B,sEAAAA,GAAAA,QAAAA;AAC5E,OAAA,CAAC,CAAA;AACJ,KAAC,MAAM,IAAIx1B,KAAK,GAAGk1B,mCAAmC,EAAE;AACtDI,MAAAA,MAAM,CAACwD,yBAAyB,GAAG3b,aAAa,CAAC;AAC/CxmB,QAAAA,EAAE,EAAE,sEAAA;AACL,OAAA,CAAC,CAAA;AACJ,KAAA;AAEA,IAAA,OAAO2+B,MAAM,CAAA;AACf,GAAC,EACD,CAACE,QAAQ,EAAEziC,MAAM,CAAC,CACnB,CAAA;AAED,EAAA,IAAM0iC,QAAQ,gBAAA,YAAA;IAAA,IAAAnO,KAAA,GAAA31B,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAAI,KAAA,EAAA;AAAA,MAAA,IAAA4mC,yBAAA,EAAApD,WAAA,EAAAE,UAAA,CAAA;AAAA,MAAA,OAAAhkC,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YAASimC,yBAAyB,GAAA5mC,KAAA,CAAzB4mC,yBAAyB,CAAA;AAC3CpD,YAAAA,WAAW,GAAG,IAAIC,GAAG,CAAI9gC,WAAW,+BAA4B,CAAC,CAAA;YACjE+gC,UAAU,GAAG,IAAID,GAAG,CAAC/rB,MAAM,CAAC2W,QAAQ,CAACre,IAAI,CAAC,CAAA;YAEhDwzB,WAAW,CAACG,YAAY,CAACC,MAAM,CAAC,SAAS,EAAEC,OAAO,CAAC,CAAA;YAEnDL,WAAW,CAACG,YAAY,CAACC,MAAM,CAC7B,UAAU,EACVtZ,IAAI,CAACC,KAAK,CAACoc,QAAQ,CAACC,yBAAyB,CAAC,GAAG9C,UAAU,CAAC,CAACC,QAAQ,EAAE,CACxE,CAAA;YAEDP,WAAW,CAACG,YAAY,CAACC,MAAM,CAAC,YAAY,EAAEF,UAAU,CAACM,QAAQ,CAAC,CAAA;AAElEhjB,YAAAA,IAAI,CAACwiB,WAAW,CAACO,QAAQ,EAAE,CAAC,CAAA;AAAC,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAtjC,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAxC,OAAA,CAAA,CAAA;KAC9B,CAAA,CAAA,CAAA;IAAA,OAdK2jC,SAAAA,QAAQA,CAAAlhC,EAAA,EAAA;AAAA,MAAA,OAAA+yB,KAAA,CAAA5yB,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GAcb,EAAA,CAAA;AAED,EAAA,OACE4K,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EACH;AAAAvD,IAAAA,KAAK,EAAC,MAAM;AACZG,IAAAA,MAAM,EAAC,MAAM;AACb4F,IAAAA,YAAY,EAAC,IAAI;AACjBmJ,IAAAA,UAAU,EAAC,aAAa;AACxB8E,IAAAA,OAAO,EAAC,GAAG;AACXyK,IAAAA,SAAS,EAAC,QAAA;AAAQ,GAAA,EAElB5iB,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACQ,IAAAA,GAAG,EAAC,GAAG;AAACL,IAAAA,UAAU,EAAC,KAAK;AAACiK,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EACnC9R,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAhB,IAAAA,KAAK,EAAC,OAAO;AAAC8iB,IAAAA,UAAU,EAAC,GAAA;GAAG,EAC/BjW,aAAa,CACZ;AAAExmB,IAAAA,EAAE,EAAE,wBAAA;GAA0B,EAChC;AACEggC,IAAAA,MAAM,EACJp3B,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AAACpN,MAAAA,EAAE,EAAC,MAAM;AAAC8C,MAAAA,IAAI,EAAC,WAAW;AAACsJ,MAAAA,KAAK,EAAC,OAAA;AAAO,KAAA,EAC3C4P,YAAY,CAAC8V,UAAU,GAAG,IAAI,EAAE;AAC/B9wB,MAAAA,KAAK,EAAE,UAAU;AACjBswB,MAAAA,QAAQ,EAARA,QAAQ;AACRrW,MAAAA,qBAAqB,EAAE,CAAA;AACxB,KAAA,CAAC,CAAA;GAGP,CACF,CACI,EACP5f,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,aAAA;GAAa,EACrBmW,aAAa,CAAC;AACbxmB,IAAAA,EAAE,EAAE,8CAAA;GACL,CAAC,CACG,CACF,EAEP4I,KAAC,CAAAC,aAAA,CAAAo3B,MAAM,EACL;AAAAC,IAAAA,aAAa,EAAE;AACbiC,MAAAA,yBAAyB,EAAEhC,wBAAwB,CAACb,QAAQ,EAAE;MAC9DiD,qBAAqB,EAAE,CACrBpC,wBAAwB,GACxBd,UAAU,GACV,IAAI,EACJC,QAAQ,EAAE;KACb;AACDc,IAAAA,QAAQ,EAAE3B,YAAY;AACtBK,IAAAA,QAAQ,EAAEA,QAAAA;GAAQ,EAEjB,UAAA4B,KAAA,EAAA;AAAA,IAAA,IACC/B,MAAM,GAAA+B,KAAA,CAAN/B,MAAM;MACN0B,OAAO,GAAAK,KAAA,CAAPL,OAAO;MACPC,YAAY,GAAAI,KAAA,CAAZJ,YAAY;MACZkC,SAAS,GAAA9B,KAAA,CAAT8B,SAAS;MACT9D,MAAM,GAAAgC,KAAA,CAANhC,MAAM,CAAA;AAAA,IAAA,OAEN91B,KAAC,CAAAC,aAAA,CAAA23B,IAAI,EAAC;AAAA1B,MAAAA,QAAQ,EAAEwB,YAAAA;AAAY,KAAA,EAC1B13B,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACQ,MAAAA,GAAG,EAAC,GAAA;AAAG,KAAA,EACXlI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACiE,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EACfnE,KAAC,CAAAC,aAAA,CAAA43B,KAAK,EAAC;AAAAr1B,MAAAA,IAAI,EAAC,2BAAA;KACT,EAAA,UAAAq3B,KAAA,EAAA;AAAA,MAAA,IAAG9B,KAAK,GAAA8B,KAAA,CAAL9B,KAAK,CAAA;AAAA,MAAA,OACP/3B,KAAC,CAAAC,aAAA,CAAA+3B,iBAAiB,EAChB;AAAA5gC,QAAAA,EAAE,EAAC,2BAA2B;AAC9BqQ,QAAAA,IAAI,EAAC,IAAI;AACTwwB,QAAAA,UAAU,EAAE;AACVl3B,UAAAA,IAAI,EAAE,QAAQ;AACdN,UAAAA,KAAK,EAAEs3B,KAAK,CAACt3B,KAAK,IAAI,EAAE;AACxBq5B,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGj2B,CAAC,EAAI;AACd,YAAA,IAAMpD,KAAK,GAAGoD,CAAC,CAACk2B,MAAM,CAACC,aAAa,CAAA;AAEpCJ,YAAAA,SAAS,CAAC;AACRL,cAAAA,yBAAyB,EAAE94B,KAAK,CAACi2B,QAAQ,EAAE;cAC3CiD,qBAAqB,EAAE,CACrBl5B,KAAK,GACLg2B,UAAU,GACV,IAAI,EACJC,QAAQ,EAAE;AACb,aAAA,CAAC,CAAA;AACJ,WAAA;SACD;QACDS,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,UAAAA,EAAE,EAA6D6+B,0DAAAA,GAAAA,QAAAA;SAChE,CAAC;AACFiC,QAAAA,qBAAqB,EAAE,CACrBl4B,KAAA,CAAAC,aAAA,CAACk4B,eAAe,EAAC;AAAAxgC,UAAAA,GAAG,EAAC,cAAA;SAAc,EAChCimB,aAAa,CAAC;AACbxmB,UAAAA,EAAE,EAA4D6+B,yDAAAA,GAAAA,QAAAA;SAC/D,CAAC,CACc,CACnB;QACDmC,SAAS,EACP,CAAC,CAACrC,MAAM,CAACwD,yBAAyB,IAClC9B,OAAO,CAAC8B,yBAAyB;QAEnClB,YAAY,EAAEtC,MAAM,CAACwD,yBAAAA;AAAyB,OAAA,CAC9C,CAAA;KACH,CACK,CACJ,EAENv5B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACiE,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EACfnE,KAAC,CAAAC,aAAA,CAAA43B,KAAK,EAAC;AAAAr1B,MAAAA,IAAI,EAAC,uBAAA;KACT,EAAA,UAAAy3B,KAAA,EAAA;AAAA,MAAA,IAAGlC,KAAK,GAAAkC,KAAA,CAALlC,KAAK,CAAA;AAAA,MAAA,OACP/3B,KAAC,CAAAC,aAAA,CAAA+3B,iBAAiB,EAChB;AAAA5gC,QAAAA,EAAE,EAAC,uBAAuB;AAC1BqQ,QAAAA,IAAI,EAAC,IAAI;AACTwwB,QAAAA,UAAU,EAAE;AACVl3B,UAAAA,IAAI,EAAE,QAAQ;AACdN,UAAAA,KAAK,EAAEs3B,KAAK,CAACt3B,KAAK,IAAI,EAAE;AACxBq5B,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGj2B,CAAC,EAAI;AACd,YAAA,IAAMpD,KAAK,GAAGoD,CAAC,CAACk2B,MAAM,CAACC,aAAa,CAAA;AACpCJ,YAAAA,SAAS,CAAC;cACRL,yBAAyB,EAAE,CACzB94B,KAAK,GACLg2B,UAAU,GACV,IAAI,EACJC,QAAQ,EAAE;AACZiD,cAAAA,qBAAqB,EAAEl5B,KAAK,CAACi2B,QAAQ,EAAE;AACxC,aAAA,CAAC,CAAA;AACJ,WAAA;SACD;QACDS,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,UAAAA,EAAE,EAAE,qDAAA;SACL,CAAC;AACF8gC,QAAAA,qBAAqB,EAAE,CACrBl4B,KAAA,CAAAC,aAAA,CAACk4B,eAAe,EAAA;AAACxgC,UAAAA,GAAG,EAAC,WAAA;SAA6B,EAAA,WAAA,CAAA,CACnD;QACDygC,SAAS,EACP,CAAC,CAACrC,MAAM,CAAC4D,qBAAqB,IAC9BlC,OAAO,CAACkC,qBAAqB;QAE/BtB,YAAY,EAAEtC,MAAM,CAAC4D,qBAAAA;AACrB,OAAA,CAAA,CAAA;AAAA,KACH,CACK,CACJ,CACD,EACN7D,MAAM,CAACyD,yBAAyB,IAC/BhB,YAAY,IACZA,YAAY,GAAG,CAAC,IACdv4B,oBAAC+R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,aAAa;AAACqC,MAAAA,EAAE,EAAC,GAAA;OACzB8T,aAAa,CACZ;AAAExmB,MAAAA,EAAE,EAAE,2CAAA;AAA2C,KAAE,EACnD;MACEggC,MAAM,EAAEzW,YAAY,CAClB0Y,yBAAyB,CAACvD,MAAM,EAAEyC,YAAY,CAAC,EAC/C;AACE5yB,QAAAA,KAAK,EAAE,UAAU;AACjBswB,QAAAA,QAAQ,EAARA,QAAQ;AACRrW,QAAAA,qBAAqB,EAAE,CAAA;OACxB,CAAA;KAEJ,CACF,CAEJ,EAEH5f,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAiQ,MAAM;AAACnP,MAAAA,IAAI,EAAC,QAAQ;AAACoD,MAAAA,KAAK,EAAC,MAAA;KAAM,EAC/ByZ,aAAa,CAAC;AAAExmB,MAAAA,EAAE,EAAE,sCAAA;KAAwC,CAAC,CACvD,CACJ,CAAA;AAAA,GACR,CACM,EAET4I,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHvD,IAAAA,KAAK,EAAC,MAAM;AACZ2D,IAAAA,cAAc,EAAC,QAAQ;AACvBD,IAAAA,UAAU,EAAC,QAAQ;AACnBiC,IAAAA,EAAE,EAAC,GAAG;AACN5B,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAEPlI,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;IAAAC,GAAG,EAAKjQ,OAAO,GAA8C,8CAAA;AAC7D4G,IAAAA,GAAG,EAAC,MAAM;AACV+H,IAAAA,KAAK,EAAE,EAAE;AACTG,IAAAA,MAAM,EAAE,EAAA;AACR,GAAA,CAAA,EACFtE,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AAACtK,IAAAA,IAAI,EAAC,aAAA;GAAe,EAAAwvB,YAAY,CAAQ,CACzC,EAEPj3B,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAA;AAAC5U,IAAAA,EAAE,EAAC,GAAA;AAAM,GAAA,CAAA,EAElB7gB,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACvD,IAAAA,KAAK,EAAC,MAAM;AAAC0D,IAAAA,UAAU,EAAC,QAAQ;AAAC+a,IAAAA,SAAS,EAAC,QAAA;GAAQ,EACtD1mB,KAAK,IACJ8D,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AAACtK,IAAAA,IAAI,EAAC,WAAW;AAACoC,IAAAA,SAAS,EAAC,QAAQ;AAACkH,IAAAA,KAAK,EAAC,OAAO;AAACe,IAAAA,EAAE,EAAC,GAAA;GAAG,EAC3D5V,KAAK,CAET,EACAw9B,QAAQ,IACP15B,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,iBAAiB;AAACoC,IAAAA,SAAS,EAAC,QAAQ;AAACiI,IAAAA,EAAE,EAAC,GAAA;GAChD,EAAA4nB,QAAQ,CAEZ,EACAzoB,MAAM,IACLjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EAAA;AACfC,IAAAA,IAAI,EAAAxa,QAAA,CAAA;AACFkb,MAAAA,gBAAgB,EAAE,IAAA;AAAI,KAAA,EACnBmB,MAAM,CACV;AACDvI,IAAAA,OAAO,EAAC,SAAS;AACjB4G,IAAAA,SAAS,EAAC,eAAA;GAAe,CAE5B,CACI,CACF,CAAA;AAEX,CAAC;;ACxTD,IAAM4qB,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,QAAgB,EAAA;AAAA,EAAA,OACzCb,QAAQ,CAACa,QAAQ,EAAE,EAAE,CAAC,GAAG,KAAK,CAAA;AAAA,CAAA;;ACDhC,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIC,MAAc,EAAA;AAAA,EAAA,OAC9Cf,QAAQ,CAACe,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;AAAA,CAAA;;ACD7B,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,KAAW,EAAEC,GAAS,EAAI;AACpD,EAAA,IAAMC,gBAAgB,GAAGD,GAAG,CAACE,QAAQ,EAAE,GAAGH,KAAK,CAACG,QAAQ,EAAE,CAAA;AAC1D,EAAA,IAAMC,eAAe,GAAGH,GAAG,CAACpZ,WAAW,EAAE,GAAGmZ,KAAK,CAACnZ,WAAW,EAAE,CAAA;EAE/D,IAAIqZ,gBAAgB,GAAG,CAAC,EAAE;IACxB,OAAOE,eAAe,GAAG,CAAC,CAAA;AAC5B,GAAA;AACA,EAAA,IAAIF,gBAAgB,GAAG,CAAC,CAAC,EAAE;IACzB,OAAOE,eAAe,GAAG,CAAC,CAAA;AAC5B,GAAA;AACA,EAAA,OAAOA,eAAe,CAAA;AACxB,CAAC;;AC6BM,IAAMC,WAAW,GAA+B,SAA1CA,WAAWA,CAAAzoC,IAAA,EAGD;AAAA,EAAA,IAFrBmE,OAAO,GAAAnE,IAAA,CAAPmE,OAAO;IACPukC,SAAS,GAAA1oC,IAAA,CAAT0oC,SAAS,CAAA;AAET,EAAA,IAAAld,WAAA,GAAoD/N,UAAU,CAAC1B,WAAW,CAAC;IAAnE0P,aAAa,GAAAD,WAAA,CAAbC,aAAa;IAAE+C,YAAY,GAAAhD,WAAA,CAAZgD,YAAY;IAAEsC,UAAU,GAAAtF,WAAA,CAAVsF,UAAU,CAAA;AAE/C,EAAA,OACEjjB,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EAAC;AAAAjvB,IAAAA,CAAC,EAAC,GAAG;AAACwS,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EAC3BnE,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAC;AAAApK,IAAAA,IAAI,EAAC,IAAI;AAACoC,IAAAA,SAAS,EAAC,MAAA;GAC1B,EAAA+T,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,wCAAA;GAA0C,CAAC,CACxD,EAEV4I,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EAErBtE,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EACT;IAAAL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3BlJ,IAAAA,GAAG,EAAC,GAAG;AACPub,IAAAA,QAAQ,EAAC,IAAI;AACbC,IAAAA,QAAQ,EAAC,GAAA;AAAG,GAAA,EAEXptB,OAAO,CAACyqB,IAAI,IACX/gB,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,sCAAA;KACL,CAAC;AACFmJ,IAAAA,IAAI,EAAEogB,YAAY,CAChBuZ,iBAAiB,CAAC5jC,OAAO,CAACyqB,IAAI,CAAC2V,QAAQ,EAAE,CAAC,EAC1CjX,wBAAwB,CACzB;IACDsS,OAAO,EAAE8I,SAAS,CAACE,YAAAA;GACnB,CAAA,CAEL,EAEAzkC,OAAO,CAAC0qB,QAAQ,IACfhhB,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,0CAAA;AACL,KAAA,CAAC;IACFmJ,IAAI,EAAEjK,OAAO,CAAC0qB,QAAQ;IACtB+Q,OAAO,EAAE8I,SAAS,CAACG,gBAAAA;GAAgB,CACnC,CAEL,EAEA1kC,OAAO,CAACikC,KAAK,IACZv6B,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,uCAAA;KACL,CAAC;AACFmJ,IAAAA,IAAI,EAAE0iB,UAAU,CAAC3sB,OAAO,CAACikC,KAAK,EAAE;AAC9BrZ,MAAAA,IAAI,EAAE,SAAS;AACf+Z,MAAAA,KAAK,EAAE,MAAA;KACR,CAAC;IACFlJ,OAAO,EAAE8I,SAAS,CAACK,aAAAA;GAAa,CAChC,CAEL,EAEA5kC,OAAO,CAACikC,KAAK,IAAIjkC,OAAO,CAACkkC,GAAG,IAC3Bx6B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,0CAAA;AACL,KAAA,CAAC;IACFmJ,IAAI,EAAEqd,aAAa,CACjB;AACExmB,MAAAA,EAAE,EAAE,sCAAA;KACL,EACD;AACE+jC,MAAAA,KAAK,EAAEb,kBAAkB,CACvB,IAAInZ,IAAI,CAAC7qB,OAAO,CAACikC,KAAK,CAAC,EACvB,IAAIpZ,IAAI,CAAC7qB,OAAO,CAACkkC,GAAG,CAAC,CAAA;KAExB,CACF;IACDzI,OAAO,EAAE8I,SAAS,CAACO,gBAAAA;AAAgB,GAAA,CACnC,CAEL,CACU,EAEZ9kC,OAAO,CAAC+kC,WAAW,IACpB/kC,OAAO,CAACg2B,gBAAgB,IACxBh2B,OAAO,CAACglC,oBAAoB,GAC1Bt7B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAG,IAAA,CAAA,EACXz1B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAG,GAAA,CAAG,CACpB,GAEHtE,yCACD,EACDA,KAAC,CAAAC,aAAA,CAAAwR,UAAU;IAACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAEqS,IAAAA,QAAQ,EAAC,IAAI;AAACC,IAAAA,QAAQ,EAAC,GAAA;AAAG,GAAA,EAChEptB,OAAO,CAAC+kC,WAAW,IAClBr7B,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,6CAAA;AACL,KAAA,CAAC;AACFmJ,IAAAA,IAAI,EAAEjK,OAAO,CAAC+kC,WAAW,CAACn/B,KAAK;IAC/B61B,OAAO,EAAE8I,SAAS,CAACU,mBAAAA;GAAmB,CACtC,CAEL,EACAjlC,OAAO,CAACg2B,gBAAgB,IACvBtsB,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,kDAAA;AACL,KAAA,CAAC;AACFmJ,IAAAA,IAAI,EAAEjK,OAAO,CAACg2B,gBAAgB,CAAC9pB,IAAI;IACnCuvB,OAAO,EAAE8I,SAAS,CAACW,wBAAAA;AACnB,GAAA,CAAA,CAEL,CACU,EAEZllC,OAAO,CAACglC,oBAAoB,GAC3Bt7B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGpO,OAAO,CAAC+kC,WAAW,IAAI/kC,OAAO,CAACg2B,gBAAgB,GAC9CtsB,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAC;AAAAjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,GAErBtE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACI,IAAAA,cAAc,EAAC,eAAe;AAACD,IAAAA,UAAU,EAAC,QAAA;AAAQ,GAAA,EACtD7H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,4DAAA;AACL,KAAA,CAAC;IACFmJ,IAAI,EAAEqd,aAAa,CAAC;AAClBxmB,MAAAA,EAAE,EAAgEd,6DAAAA,GAAAA,OAAO,CAACglC,oBAAoB,CAAClkC,EAAI;AACnGqkC,MAAAA,cAAc,EAAEnlC,OAAO,CAACglC,oBAAoB,CAAClkC,EAAAA;AAC9C,KAAA,CAAC;IACF26B,OAAO,EAAE8I,SAAS,CAACa,4BAAAA;IACnB,CACE,EAELplC,OAAO,CAACqlC,aAAa,IACpB37B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AAACgE,IAAAA,KAAK,EAAC,IAAI;AAACG,IAAAA,MAAM,EAAC,GAAA;AAAG,GAAA,EAC5CtE,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;AAAAC,IAAAA,GAAG,EAAEnP,OAAO,CAACqlC,aAAa,CAACC,OAAO;AAClCx/B,IAAAA,GAAG,EAAK9F,OAAO,CAACqlC,aAAa,CAACn5B,IAAI,GAAO,OAAA;AACzCkD,IAAAA,IAAI,EAAA,IAAA;AACJC,IAAAA,KAAK,EAAE;AAAEE,MAAAA,SAAS,EAAE,SAAA;;GACpB,CAAA,CAEL,CACI,CACN,GAEH7F,yCACD,EAEC1J,OAAO,CAACulC,4BAA4B,IACpCvlC,OAAO,CAACulC,4BAA4B,GAAG,CAAC,IAC1CvlC,OAAO,CAACwlC,UAAU,GAChB97B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAM,GAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EAAG,IAAA,CAAA,EACXz1B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,GAAA;AAAG,GAAA,CAAG,CACpB,GAEHtE,yCACD,EACDA,KAAC,CAAAC,aAAA,CAAAwR,UAAU;IAACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAAEqS,IAAAA,QAAQ,EAAC,IAAI;AAACC,IAAAA,QAAQ,EAAC,GAAA;AAAG,GAAA,EAChEptB,OAAO,CAACulC,4BAA4B,IACnCvlC,OAAO,CAACulC,4BAA4B,GAAG,CAAC,IACtC77B,KAAC,CAAAC,aAAA,CAAA87B,OAAO,EACN;IAAA5E,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,uDAAA;KACL,CAAA;AAAC,GAAA,EAEF4I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,qDAAA;AACL,KAAA,CAAC;IACFmJ,IAAI,EAAEqd,aAAa,CACjB;AACExmB,MAAAA,EAAE,EAAE,+BAAA;KACL,EACD;AACEggC,MAAAA,MAAM,EAAEzW,YAAY,CAClByZ,wBAAwB,CACtB9jC,OAAO,CAACulC,4BAA4B,CAACnF,QAAQ,EAAE,CAChD,EACD;AAAE9W,QAAAA,qBAAqB,EAAE,CAAA;OAAG,CAAA;KAE/B,CACF;IACDmS,OAAO,EAAE8I,SAAS,CAACmB,oCAAAA;GAAoC,CACvD,CACE,CAET,EAEF1lC,OAAO,CAACwlC,UAAU,IACjB97B,oBAACE,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAAC66B,aAAa,EAAA;IACZ3D,KAAK,EAAEvZ,aAAa,CAAC;AACnBxmB,MAAAA,EAAE,EAAE,4CAAA;KACL,CAAC;IACFmJ,IAAI,EAAEogB,YAAY,CAChBrqB,OAAO,CAACwlC,UAAU,GAAG,GAAG,EACxBjc,wBAAwB,CACzB;IACDkS,OAAO,EAAE8I,SAAS,CAACoB,kBAAAA;GAAkB,CACrC,CAEL,CACU,EAEbj8B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAC4J,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EACT9J,KAAC,CAAAC,aAAA,CAAA8f,qBAAqB,EAAC;IAAA5rB,MAAM,EAAEmC,OAAO,CAAC+qB,kBAAAA;GAAsB,CAAA,CACzD,CACI,CAAA;AAEhB,CAAC;;ACnPM,IAAM6a,qBAAqB,GAAyC,SAA9DA,qBAAqBA,CAAA/pC,IAAA,EAED;AAAA,EAAA,IAD/BgqC,YAAY,GAAAhqC,IAAA,CAAZgqC,YAAY,CAAA;AAEZ,EAAA,IAAAxe,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAErB,EAAA,OACE5d,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EAAC;AAAAjvB,IAAAA,CAAC,EAAC,GAAA;AAAG,GAAA,EACdqO,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EAAC;AAAApK,IAAAA,IAAI,EAAC,IAAI;AAACoC,IAAAA,SAAS,EAAC,MAAA;GAC1B,EAAA+T,aAAa,CAAC;AACbxmB,IAAAA,EAAE,EAAE,2DAAA;GACL,CAAC,CACM,EAEV4I,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,IAAAA,OAAO,EAAC,QAAA;AACX,GAAA,EAAAopB,YAAY,CAAC5oC,GAAG,CAAC,UAAC6oC,WAAW,EAAA;AAAA,IAAA,OAC5Bp8B,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AACHI,MAAAA,cAAc,EAAC,eAAe;AAC9BD,MAAAA,UAAU,EAAC,QAAQ;AACnBiC,MAAAA,EAAE,EAAC,GAAG;MACNnS,GAAG,EAAEykC,WAAW,CAAC77B,IAAAA;AAAI,KAAA,EAErBP,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACG,MAAAA,UAAU,EAAC,QAAA;AAAQ,KAAA,EACvB7H,KAAC,CAAAC,aAAA,CAAAqa,MAAM;AACLlQ,MAAAA,CAAC,EAAC,GAAG;AACLoH,MAAAA,CAAC,EAAC,GAAG;AACLtH,MAAAA,YAAY,EAAC,MAAM;AACnB+X,MAAAA,WAAW,EAAC,KAAK;AACjBC,MAAAA,WAAW,EAAC,UAAA;AAAU,KAAA,EAEtBliB,KAAC,CAAAC,aAAA,CAAAo8B,OAAO,OAAG,CACJ,EAETr8B,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACpN,MAAAA,KAAK,EAAC,GAAA;AAAM,KAAA,CAAA,EAEpBnE,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,MAAAA,OAAO,EAAC,QAAA;AAAQ,KAAA,EACpB/S,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,MAAAA,IAAI,EAAC,cAAA;KAAyB,EAAA,KAAA,CAAA,EACpCzH,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,MAAAA,IAAI,EAAC,WAAW;AAACsJ,MAAAA,KAAK,EAAC,OAAO;AAAClH,MAAAA,SAAS,EAAC,MAAA;AAC5C,KAAA,EAAAuyB,WAAW,CAAC77B,IAAI,CACZ,CACF,CACF,EAEPP,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACpN,MAAAA,KAAK,EAAC,IAAA;AAAO,KAAA,CAAA,EAErBnE,KAAA,CAAAC,aAAA,CAACsI,UAAU,EACT;AAAAG,MAAAA,OAAO,EAAC,SAAS;MAAA,YAAA,EACLkV,aAAa,CAAC;AACxBxmB,QAAAA,EAAE,EAAE,2DAAA;OACL,CAAC;MACFoR,IAAI,EAAExI,KAAC,CAAAC,aAAA,CAAAq8B,cAAc,EAAG,IAAA,CAAA;AACxB33B,MAAAA,EAAE,EAAEwL,IAAI;MACRxN,IAAI,EAAEy5B,WAAW,CAACvjC,GAAG;AACrB4O,MAAAA,IAAI,EAAC,IAAA;AAAI,KAAA,CACT,CACG,CAAA;GACR,CAAC,CACG,CACG,CAAA;AAEhB,CAAC;;AC/DM,IAAM80B,OAAO,GAA2B,SAAlCA,OAAOA,CAAApqC,IAAA,EAAA;AAAA,EAAA,IAClB2mB,MAAM,GAAA3mB,IAAA,CAAN2mB,MAAM;IACN5c,KAAK,GAAA/J,IAAA,CAAL+J,KAAK;IACLqE,IAAI,GAAApO,IAAA,CAAJoO,IAAI;IACJ0Q,MAAM,GAAA9e,IAAA,CAAN8e,MAAM,CAAA;AAAA,EAAA,OAENjR,KAAA,CAAAC,aAAA,CAAC2gB,SAAS,EAAC;AAAAtQ,IAAAA,eAAe,EAAC,aAAa;AAACksB,IAAAA,MAAM,EAAC,MAAM;AAAC7qC,IAAAA,CAAC,EAAC,GAAG;AAAC2S,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,EACxEtE,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAAqL,IAAAA,OAAO,EAAC,QAAQ;AAChBjL,IAAAA,cAAc,EAAC,QAAQ;AACvBD,IAAAA,UAAU,EAAC,QAAQ;AACnBvD,IAAAA,MAAM,EAAC,MAAA;GAAM,EAEZwU,MAAM,GACL9Y,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBgE,IAAAA,KAAK,EAAC,IAAI;AACVG,IAAAA,MAAM,EAAC,IAAI;AACX4F,IAAAA,YAAY,EAAC,MAAM;AACnBrF,IAAAA,QAAQ,EAAC,QAAA;AAAQ,GAAA,EAEjB7E,KAAA,CAAAC,aAAA,CAACuF,OAAK,EAAA;IACJC,GAAG,EAAE/M,cAAc,CAACogB,MAAM,CAACnV,GAAG,EAAE,OAAO,CAAC;IACxCvH,GAAG,EAAE0c,MAAM,CAAC1c,GAAG;AACfsJ,IAAAA,IAAI,EAAA,IAAA;IACJG,SAAS,EAAEiT,MAAM,CAACjT,SAAAA;GAClB,CAAA,CACE,GAEN7F,yCACD,EACA9D,KAAK,GACJ8D,oBAAC6R,OAAO,EAAA;AACN/H,IAAAA,EAAE,EAAC,GAAG;AACNrC,IAAAA,IAAI,EAAC,IAAI;AACTmsB,IAAAA,UAAU,EAAC,KAAK;AAChB/pB,IAAAA,SAAS,EAAC,QAAQ;AAClBkH,IAAAA,KAAK,EAAC,OAAA;GAAO,EAEZ7U,KAAK,CACE,GAEV8D,yCACD,EACAO,IAAI,GACHP,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACjI,IAAAA,EAAE,EAAC,GAAG;AAACrC,IAAAA,IAAI,EAAC,iBAAiB;AAACoC,IAAAA,SAAS,EAAC,QAAA;GAAQ,EACnDtJ,IAAI,CACA,GAEPP,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACAuM,MAAM,GACLjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAArF,IAAAA,EAAE,EAAC,GAAG;AACNsF,IAAAA,IAAI,EAAE6B,MAAM;AACZxJ,IAAAA,IAAI,EAAC,IAAI;AACTiB,IAAAA,OAAO,EAAC,SAAS;AACjB4G,IAAAA,SAAS,EAAC,SAAA;AACV,GAAA,CAAA,GAEFtP,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,CACI,CACG,CAAA;AAAA,CACb;;AC5ED,IAAM+3B,iBAAiB,gBAAA,YAAA;EAAA,IAAAtqC,IAAA,gBAAAC,iBAAA,cAAAC,mBAAA,GAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAOmqC,SAAiB,EAAA;AAAA,IAAA,IAAApX,WAAA,CAAA;AAAA,IAAA,OAAAjzB,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAAAF,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OACtBmC,SAAS,CAAChC,GAAG,CAAA,mBAAA,GACjBipC,SAAW,CAChC,CAAA;AAAA,QAAA,KAAA,CAAA;UAFKpX,WAAW,GAAAlyB,QAAA,CAAAkB,IAAA,CAAA;AAAA,UAAA,OAAAlB,QAAA,CAAAyB,MAAA,CAIVywB,QAAAA,EAAAA,WAAW,CAACzxB,IAAI,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAT,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;GACxB,CAAA,CAAA,CAAA;EAAA,OANKkqC,SAAAA,iBAAiBA,CAAAznC,EAAA,EAAA;AAAA,IAAA,OAAA7C,IAAA,CAAAgD,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CAMtB,EAAA;;ACqCM,IAAMunC,YAAY,GAAgC,SAA5CA,YAAYA,CAAAxqC,IAAA,EAGD;AAAA,EAAA,IAFtBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IACL9E,OAAO,GAAAnE,IAAA,CAAPmE,OAAO,CAAA;AAEP,EAAA,IAAA6M,SAAA,GAA8CC,QAAQ,CAEpD9M,OAAO,CAAC;AAFHsmC,IAAAA,eAAe,GAAAz5B,SAAA,CAAA,CAAA,CAAA;AAAE05B,IAAAA,kBAAkB,GAAA15B,SAAA,CAAA,CAAA,CAAA,CAAA;AAG1C,EAAA,IAAAI,UAAA,GAAkCH,QAAQ,CAAC,KAAK,CAAC;AAA1CojB,IAAAA,SAAS,GAAAjjB,UAAA,CAAA,CAAA,CAAA;AAAEkjB,IAAAA,YAAY,GAAAljB,UAAA,CAAA,CAAA,CAAA,CAAA;AAE9ByD,EAAAA,SAAS,CAAC,YAAK;AACb,IAAA,IAAM81B,wBAAwB,gBAAA,YAAA;MAAA,IAAAnqC,KAAA,GAAAP,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAAC,OAAA,GAAA;QAAA,IAAAwqC,kBAAA,EAAAC,aAAA,CAAA;AAAA,QAAA,OAAA3qC,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAC3BgD,OAAO,IAAIA,OAAO,CAACc,EAAE,CAAA,EAAA;AAAAhE,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,gBAAA,MAAA;AAAA,eAAA;cACvBmzB,YAAY,CAAC,IAAI,CAAC,CAAA;AAACrzB,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA,CAAA;AAAAD,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEgBmpC,iBAAiB,CAACnmC,OAAO,CAACc,EAAE,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;cAAxD2lC,kBAAkB,GAAA3pC,QAAA,CAAAkB,IAAA,CAAA;AAExB;cACM0oC,aAAa,GAAApoC,QAAA,CAAA,EAAA,EACdmoC,kBAAkB,EAAA;gBACrBhpC,IAAI,EAAEuC,OAAO,CAACvC,IAAI;gBAClB0D,aAAa,EAAEnB,OAAO,CAACmB,aAAa;gBACpCH,SAAS,EAAEhB,OAAO,CAACgB,SAAAA;AAAS,eAAA,CAAA,CAAA;cAG9BulC,kBAAkB,CAACG,aAAa,CAAC,CAAA;AAAC5pC,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,cAAA,MAAA;AAAA,YAAA,KAAA,EAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;cAAAD,QAAA,CAAAwD,EAAA,GAAAxD,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cAElCyD,OAAO,CAAC5C,KAAK,CAAC,uCAAuC,EAAAb,QAAA,CAAAwD,EAAO,CAAC,CAAA;AAC7D;cACAimC,kBAAkB,CAACvmC,OAAO,CAAC,CAAA;AAAC,YAAA,KAAA,EAAA;AAAAlD,cAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;cAE5BozB,YAAY,CAAC,KAAK,CAAC,CAAA;cAAC,OAAArzB,QAAA,CAAAi1B,MAAA,CAAA,EAAA,CAAA,CAAA;AAAA,YAAA,KAAA,EAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAj1B,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAxC,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;OAGzB,CAAA,CAAA,CAAA;AAAA,MAAA,OAAA,SAvBKuqC,wBAAwBA,GAAA;AAAA,QAAA,OAAAnqC,KAAA,CAAAwC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,OAAA,CAAA;KAuB7B,EAAA,CAAA;AAED0nC,IAAAA,wBAAwB,EAAE,CAAA;AAC5B,GAAC,EAAE,CAACxmC,OAAO,CAAC,CAAC,CAAA;EAEb,IAAI,CAACsmC,eAAe,EAAE;IACpB,OACE58B,KAAwE,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EAAA,qEAAA,CAAA,CAAA;AAE5E,GAAA;AAEA,EAAA,IAAI8hB,SAAS,EAAE;IACb,OACExmB,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAkC,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,yBAAA,CAAA,CAC1B,CACc,CAAA;AAE9B,GAAA;EAEA,OACED,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAC,CAAAC,aAAA,CAAAyH,IAAI;IAACqL,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAAE7K,IAAAA,GAAG,EAAC,GAAG;AAAC/D,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EAChEnE,KAAC,CAAAC,aAAA,CAAA26B,WAAW;AAACtkC,IAAAA,OAAO,EAAEsmC,eAAe;AAAE/B,IAAAA,SAAS,EAAEz/B,KAAAA;AAAS,GAAA,CAAA,EAC3D4E,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,IAAAA,OAAO,EAAC,QAAQ;AAAC7K,IAAAA,GAAG,EAAC,GAAG;AAAC/D,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EACxC/I,KAAK,CAAC+gC,YAAY,IAAI/gC,KAAK,CAAC+gC,YAAY,CAAC1lC,MAAM,GAAG,CAAC,IAClDuJ,KAAA,CAAAC,aAAA,CAACi8B,qBAAqB,EAAC;IAAAC,YAAY,EAAE/gC,KAAK,CAAC+gC,YAAAA;GAAY,CACxD,EACA/gC,KAAK,CAACo7B,OAAO,IACdp7B,KAAK,CAACq7B,UAAU,IAChBr7B,KAAK,CAAC66B,QAAQ,IACd76B,KAAK,CAACm8B,wBAAwB,GAC5Bv3B,KAAA,CAAAC,aAAA,CAACw5B,aAAa,EAAA;IACZjD,OAAO,EAAEp7B,KAAK,CAACo7B,OAAO;IACtBS,YAAY,EAAE77B,KAAK,CAAC67B,YAAY;IAChChB,QAAQ,EAAE76B,KAAK,CAAC66B,QAAQ;IACxBsB,wBAAwB,EAAEn8B,KAAK,CAACm8B,wBAAwB;IACxDd,UAAU,EAAEr7B,KAAK,CAACq7B,UAAU;IAC5Bv6B,KAAK,EAAEd,KAAK,CAAC6hC,WAAW;IACxBvD,QAAQ,EAAEt+B,KAAK,CAAC8hC,cAAc;IAC9BjsB,MAAM,EAAE7V,KAAK,CAAC+hC,YAAY;IAC1B5E,YAAY,EAAEn9B,KAAK,CAACm9B,YAAAA;GAAY,CAChC,GAEF,CAACn9B,KAAK,CAACgiC,YAAY,IACjBhiC,KAAK,CAACiiC,WAAW,IACjBjiC,KAAK,CAACkiC,aAAa,IACnBliC,KAAK,CAACmiC,aAAa,KACnBv9B,oBAACu8B,OAAO,EAAA;IACNrgC,KAAK,EAAEd,KAAK,CAACgiC,YAAY;IACzB78B,IAAI,EAAEnF,KAAK,CAACiiC,WAAW;IACvBpsB,MAAM,EAAE7V,KAAK,CAACkiC,aAAa;IAC3BxkB,MAAM,EAAE1d,KAAK,CAACmiC,aAAAA;AAAa,GAAA,CAGhC,CACI,CACF,CACC,CACc,CAAA;AAE9B,CAAC;;ACpIM,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAArrC,IAAA,EAEY;AAAA,EAAA,IADnC0K,aAAa,GAAA1K,IAAA,CAAb0K,aAAa,CAAA;AAEb,EAAA,IAAA8gB,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAErB,EAAA,OACE5d,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EAAC;AAAAzI,IAAAA,OAAO,EAAC,MAAM;AAAC7T,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,EACrCtE,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACqL,IAAAA,OAAO,EAAC,QAAQ;AAACzO,IAAAA,MAAM,EAAC,MAAA;AAAM,GAAA,EAClCtE,KAAA,CAAAC,aAAA,CAACqa,MAAM,EAAA;AAAChW,IAAAA,MAAM,EAAC,IAAI;AAACgM,IAAAA,eAAe,EAAC,YAAY;AAACmtB,IAAAA,eAAe,EAAC,IAAA;KAC9D5gC,aAAa,CAAC6gC,SAAS,IACtB19B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACC,IAAAA,QAAQ,EAAC,UAAU;AAACmE,IAAAA,MAAM,EAAC,IAAI;AAACH,IAAAA,KAAK,EAAC,IAAA;AAAI,GAAA,EAC7CnE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAACmE,aAAa,CAAC6gC,SAAS,CAAC/5B,GAAG,EAAE,QAAQ,CAAC;AAC1DvH,IAAAA,GAAG,EAAES,aAAa,CAAC6gC,SAAS,CAACthC,GAAG;AAChCsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEhJ,aAAa,CAAC6gC,SAAS,CAAC73B,SAAAA;;GAErC,CAAA,CAEL,CACM,EACT7F,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAA6e,IAAAA,EAAE,EAAC,GAAG;AAAC4e,IAAAA,EAAE,EAAC,GAAG;AAAClmB,IAAAA,EAAE,EAAC,GAAG;AAAC3F,IAAAA,EAAE,EAAC,MAAA;GAAM,EAChCjV,aAAa,CAAC+gC,4BAA4B,IACzC59B,oBAAC+R,IAAI,EAAA;AAACtK,IAAAA,IAAI,EAAC,iBAAiB;AAACsJ,IAAAA,KAAK,EAAC,UAAU;AAACe,IAAAA,EAAE,EAAC,GAAA;KAC9CjV,aAAa,CAAC+gC,4BAA4B,CAE9C,EACA/gC,aAAa,CAACX,KAAK,IAClB8D,oBAAC6R,OAAO,EAAA;AAACpK,IAAAA,IAAI,EAAC,IAAI;AAACmsB,IAAAA,UAAU,EAAC,KAAA;AAC3B,GAAA,EAAA/2B,aAAa,CAACX,KAAK,CAEvB,CACG,EACN8D,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAC6e,IAAAA,EAAE,EAAC,GAAG;AAAC4e,IAAAA,EAAE,EAAC,GAAG;AAAClmB,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EACvBzX,KAAA,CAAAC,aAAA,CAACiQ,MAAM,EAAA;AACLvL,IAAAA,EAAE,EAAEwL,IAAI;IACRxN,IAAI,EAAA,oBAAA,GAAuB9F,aAAa,CAAC9I,IAAM;AAC/C2U,IAAAA,OAAO,EAAC,SAAS;AACjBjB,IAAAA,IAAI,EAAC,IAAA;GAAI,EAERmW,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,4BAAA;AAA4B,GAAE,CAAC,CAC7C,CACL,CACD,CACG,CAAA;AAEhB,CAAC;;AC9CM,IAAMymC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA1rC,IAAA,EAEY;AAAA,EAAA,IADxC0K,aAAa,GAAA1K,IAAA,CAAb0K,aAAa,CAAA;AAEb,EAAA,IAAA8gB,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAErB,EAAA,OACE5d,KAAA,CAAAC,aAAA,CAAC2gB,SAAS,EAAA;AAACjvB,IAAAA,CAAC,EAAC,GAAG;AAAC2e,IAAAA,eAAe,EAAC,aAAa;AAAChM,IAAAA,MAAM,EAAC,MAAA;GAAM,EACzDzH,aAAa,CAAC6gC,SAAS,GACtB19B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,IAAAA,QAAQ,EAAC,UAAU;AACnBmE,IAAAA,MAAM,EAAC,IAAI;AACXH,IAAAA,KAAK,EAAC,IAAI;AACV+F,IAAAA,YAAY,EAAC,MAAM;AACnBrF,IAAAA,QAAQ,EAAC,QAAA;AAAQ,GAAA,EAEjB7E,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAACmE,aAAa,CAAC6gC,SAAS,CAAC/5B,GAAG,EAAE,QAAQ,CAAC;AAC1DvH,IAAAA,GAAG,EAAES,aAAa,CAAC6gC,SAAS,CAACthC,GAAG;AAChCsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEhJ,aAAa,CAAC6gC,SAAS,CAAC73B,SAAAA;AACpC,KAAA;GAAA,CACD,CACE,GAEN7F,yCACD,EACDA,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAC2gB,IAAAA,EAAE,EAAC,GAAA;AAAG,GAAA,EACT7gB,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA;AAACpK,IAAAA,IAAI,EAAC,IAAI;AAACmsB,IAAAA,UAAU,EAAC,KAAA;GAAK,EAChC/2B,aAAa,CAACihC,YAAY,CACnB,EACV99B,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,IAAA;KAAM5K,aAAa,CAACkhC,sBAAsB,CAAQ,CACzD,EACN/9B,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,IAAAA,IAAI,EAAC,IAAI;AAACsJ,IAAAA,KAAK,EAAC,OAAA;GAAO,EAC1BlU,aAAa,CAACmhC,cAAc,CACxB,EACPh+B,KAAA,CAAAC,aAAA,CAACiQ,MAAM,EACL;IAAAvN,IAAI,EAAA,oBAAA,GAAuB9F,aAAa,CAAC9I,IAAM;AAC/C4Q,IAAAA,EAAE,EAAEwL,IAAI;AACRzH,IAAAA,OAAO,EAAC,SAAS;AACjBjB,IAAAA,IAAI,EAAC,IAAI;AACTqC,IAAAA,EAAE,EAAC,GAAA;GAAG,EAEL8T,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,iCAAA;GAAmC,CAAC,CAClD,CACL,CACI,CAAA;AAEhB,CAAC;;ACnDM,IAAM6mC,QAAQ,GAAG,SAAXA,QAAQA,CAAA9rC,IAAA,EAAwC;AAAA,EAAA,IAAlC0K,aAAa,GAAA1K,IAAA,CAAb0K,aAAa,CAAA;EACtC,IAAIA,aAAa,CAAC6gC,SAAS,EAAE;AAC3B,IAAA,OACE19B,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EAAC;AAAAtc,MAAAA,MAAM,EAAC,MAAM;AAACgM,MAAAA,eAAe,EAAC,YAAA;AAAY,KAAA,EACnDtQ,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACI,MAAAA,cAAc,EAAC,QAAQ;AAACxD,MAAAA,MAAM,EAAC,MAAM;AAAC6T,MAAAA,OAAO,EAAC,GAAA;AAAG,KAAA,EACrDnY,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AAACmE,MAAAA,MAAM,EAAC,IAAI;AAACH,MAAAA,KAAK,EAAC,IAAI;AAAC+5B,MAAAA,OAAO,EAAC,MAAA;AAAM,KAAA,EAC5Dl+B,KAAC,CAAAC,aAAA,CAAAkQ,IAAI;MAACxN,IAAI,EAAA,oBAAA,GAAuB9F,aAAa,CAAC9I,IAAAA;AAAM,KAAA,EACnDiM,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAACmE,aAAa,CAAC6gC,SAAS,CAAC/5B,GAAG,EAAE,QAAQ,CAAC;AAC1DvH,MAAAA,GAAG,EAAES,aAAa,CAAC6gC,SAAS,CAACthC,GAAG;AAChCsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEhJ,aAAa,CAAC6gC,SAAS,CAAC73B,SAAAA;AACpC,OAAA;AAAA,KAAA,CACD,CACG,CACH,CACD,CACG,CAAA;AAEhB,GAAA;EACA,OAAO7F,yCAAK,CAAA;AACd,CAAC;;AChBM,IAAMm+B,eAAe,GAAG,SAAlBA,eAAeA,CAAAhsC,IAAA,EAGY;AAAA,EAAA,IAFtCiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK;IACLsB,eAAe,GAAAvK,IAAA,CAAfuK,eAAe,CAAA;EAEf,OACEsD,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;IAACL,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAAEqS,IAAAA,QAAQ,EAAE,CAAC;AAAEC,IAAAA,QAAQ,EAAE,CAAA;GAAC,EACjEtoB,KAAK,CAACgjC,gBAAgB,CAAC7qC,GAAG,CAAC,UAAAZ,KAAA,EAAmB;AAAA,IAAA,IAAhBqB,UAAU,GAAArB,KAAA,CAAVqB,UAAU,CAAA;AACvC,IAAA,IAAM6I,aAAa,GACjBH,eAAe,CAACpE,IAAI,CAClB,UAAC+lC,EAAE,EAAA;MAAA,OAAKA,EAAE,CAACrqC,UAAU,CAACD,IAAI,KAAKC,UAAU,CAACD,IAAI,CAAA;KAC/C,CAAA,CAAA;IACH,IAAI,CAAC8I,aAAa,EAAE;AAClB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,OACEmD,oBAACE,GAAG,EAAA;MAACvI,GAAG,EAAEkF,aAAa,CAACzF,EAAAA;AAAE,KAAA,EACvBpD,UAAU,CAAC0U,OAAO,KAAK,cAAc,IACpC1I,KAAA,CAAAC,aAAA,CAACu9B,YAAY,EAAA;MAAC3gC,aAAa,EAAEA,aAAa,CAAC7I,UAAAA;MAC5C,EACAA,UAAU,CAAC0U,OAAO,KAAK,WAAW,IACjC1I,KAAA,CAAAC,aAAA,CAAC49B,iBAAiB,EAAA;MAAChhC,aAAa,EAAEA,aAAa,CAAC7I,UAAAA;MACjD,EACAA,UAAU,CAAC0U,OAAO,KAAK,UAAU,IAChC1I,oBAACi+B,QAAQ,EAAA;MAACphC,aAAa,EAAEA,aAAa,CAAC7I,UAAAA;MACxC,CACG,CAAA;GAET,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;ACxCD,IAAMsqC,qBAAqB,GAAG;AAC5B1nB,EAAAA,IAAI,EAAE;AAAE2nB,IAAAA,gBAAgB,EAAE,OAAA;GAAS;AACnCtnB,EAAAA,KAAK,EAAE;AAAEsnB,IAAAA,gBAAgB,EAAE,OAAA;GAAS;AACpCrnB,EAAAA,KAAK,EAAE;AAAEqnB,IAAAA,gBAAgB,EAAE,OAAA;AAAS,GAAA;CACrC,CAAA;AAEM,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAArsC,IAAA,EAAiD;AAAA,EAAA,IAA3CuW,OAAO,GAAAvW,IAAA,CAAPuW,OAAO;IAAEF,IAAI,GAAArW,IAAA,CAAJqW,IAAI,CAAA;AAClC,EAAA,QAAQA,IAAI;AACV,IAAA,KAAK,OAAO;AACV,MAAA,OAAOxI,KAAA,CAAAC,aAAA,CAACq1B,KAAK,EAAA;AAAC7tB,QAAAA,IAAI,EAAE,EAAE;AAAEsJ,QAAAA,KAAK,EAAC,kCAAA;AAAkC,OAAA,CAAG,CAAA;AACrE,IAAA,KAAK,OAAO;AACV,MAAA,OAAO/Q,KAAA,CAAAC,aAAA,CAACw+B,CAAC,EAAA;AAACh3B,QAAAA,IAAI,EAAE,EAAE;AAAEsJ,QAAAA,KAAK,EAAC,8BAAA;AAA8B,OAAA,CAAG,CAAA;AAC7D,IAAA;AACE,MAAA,OACE/Q,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAAA,QAAA,aAAA,EACU,kBAAkB;AAC9BgK,QAAAA,YAAY,EAAC,MAAM;AACnBoG,QAAAA,eAAe,EAAEguB,qBAAqB,CAAC51B,OAAO,CAAC,CAAC61B,gBAAgB;AAChEp6B,QAAAA,KAAK,EAAC,GAAG;AACTG,QAAAA,MAAM,EAAC,GAAG;AACVsN,QAAAA,MAAM,EAAC,KAAA;AAAK,OAAA,CACZ,CAAA;AAER,GAAA;AACF,CAAC;;ACmBD,IAAM+E,QAAQ,GAAG;AACfC,EAAAA,IAAI,EAAE;AACJtG,IAAAA,eAAe,EAAE,YAAY;AAC7BwG,IAAAA,SAAS,EAAE,OAAO;AAClB8b,IAAAA,aAAa,EAAE,UAAU;AACzB8L,IAAAA,SAAS,EAAE,aAAa;AACxBC,IAAAA,YAAY,EAAE,UAAA;GACf;AACD1nB,EAAAA,KAAK,EAAE;AACL3G,IAAAA,eAAe,EAAE,aAAa;AAC9BwG,IAAAA,SAAS,EAAE,OAAO;AAClB8b,IAAAA,aAAa,EAAE,gBAAgB;AAC/B8L,IAAAA,SAAS,EAAE,OAAO;AAClBC,IAAAA,YAAY,EAAE,gBAAA;GACf;AACDznB,EAAAA,KAAK,EAAE;AACL5G,IAAAA,eAAe,EAAE,OAAO;AACxBwG,IAAAA,SAAS,EAAE,OAAO;AAClB8b,IAAAA,aAAa,EAAE,UAAU;AACzB8L,IAAAA,SAAS,EAAE,aAAa;AACxBC,IAAAA,YAAY,EAAE,UAAA;AACf,GAAA;CACF,CAAA;AAEM,IAAMC,UAAU,GAA8B,SAAxCA,UAAUA,CAAAzsC,IAAA,EAED;AAAA,EAAA,IADpBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AAEL,EAAA,IAAAuiB,WAAA,GAA0B/N,UAAU,CAAC1B,WAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAErB,EAAA,OACE5d,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLpO,KAAK,CAACc,KAAK,GACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACG,IAAAA,UAAU,EAAC,QAAQ;AAACyJ,IAAAA,aAAa,EAAC,QAAA;AAAQ,GAAA,EAC9CtR,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAAC0V,QAAQ;AACpB7G,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,KAAK;AAAEH,MAAAA,SAAS,EAAE,QAAA;KAAU;AAC/CE,IAAAA,UAAU,EAAE;AACVF,MAAAA,SAAS,EAAE,QAAQ;AACnBsM,MAAAA,QAAQ,EAAE,KAAA;KACX;AACDvM,IAAAA,YAAY,EAAE;AAAEC,MAAAA,SAAS,EAAE,QAAQ;AAAEsM,MAAAA,QAAQ,EAAE,KAAA;AAAO,KAAA;GAAA,CACtD,CACG,EACPnW,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,IAAA;AAAI,GAAA,CAAG,CACrB,GAEHtE,yCACD,EACDA,KAAC,CAAAC,aAAA,CAAAwR,UAAU;AACTL,IAAAA,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAEhW,KAAK,CAACyjC,eAAe,CAACpoC,MAAM,CAAC;AAC5D0+B,IAAAA,OAAO,EAAC,GAAA;GAAG,EAEV/5B,KAAK,CAACyjC,eAAe,CAACtrC,GAAG,CAAC,UAACurC,cAAc,EAAA;AAAA,IAAA,OACxC9+B,KAAA,CAAAC,aAAA,CAAC2gB,SAAS,EACR;MAAA9E,SAAS,EAAEgjB,cAAc,CAACp2B,OAAO,KAAK,OAAO,GAAG,IAAI,GAAG,MAAM;MAC7D8zB,MAAM,EACJsC,cAAc,CAACp2B,OAAO,KAAK,OAAO,GAAG,aAAa,GAAGnS,SAAS;AAEhEslB,MAAAA,MAAM,EAAC,MAAM;MACblkB,GAAG,EAAEmnC,cAAc,CAAC1nC,EAAE;AACtB+I,MAAAA,QAAQ,EAAC,UAAU;AACnBmzB,MAAAA,SAAS,EAAC,MAAM;AAChB3hC,MAAAA,CAAC,EAAC,GAAG;AACL2e,MAAAA,eAAe,EAAEqG,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAAC4H,eAAAA;AAAe,KAAA,EAEhEwuB,cAAc,CAACp2B,OAAO,KAAK,OAAO,GACjC1I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFC,MAAAA,QAAQ,EAAC,UAAU;AACnBE,MAAAA,IAAI,EAAC,GAAG;AACRD,MAAAA,GAAG,EAAC,GAAG;AACP+D,MAAAA,KAAK,EAAC,MAAM;AACZG,MAAAA,MAAM,EAAC,MAAM;AACbuX,MAAAA,MAAM,EAAC,IAAA;AAAI,KAAA,EAEX7b,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAKjQ,OAAO,GAAgD,gDAAA;MAC/D4G,GAAG,EAAEwhB,aAAa,CAAC;AACjBxmB,QAAAA,EAAE,EAAE,sCAAA;AACL,OAAA,CAAC;AACFsO,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE,OAAO;AAClBqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;AAAA,KAAA,CACD,CACE,GAENlK,yCACD,EACDA,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACqL,MAAAA,OAAO,EAAC,QAAQ;AAAC7K,MAAAA,GAAG,EAAC,GAAA;KAAG,EAC3B42B,cAAc,CAAC97B,KAAK,IACnBhD,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AAACmE,MAAAA,MAAM,EAAC,GAAG;AAACH,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EAC9CnE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAComC,cAAc,CAAC97B,KAAK,CAACW,GAAG,EAAE,OAAO,CAAC;AACtDvH,MAAAA,GAAG,EAAE0iC,cAAc,CAAC97B,KAAK,CAAC5G,GAAG;AAC7BsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEi5B,cAAc,CAAC97B,KAAK,CAAC6C,SAAAA;AACjC,OAAA;KAAA,CACD,CAEL,EACD7F,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACQ,MAAAA,GAAG,EAAC,GAAG;AAACL,MAAAA,UAAU,EAAC,QAAQ;AAACmL,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAAA,EAC/ChT,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EACN;AAAApK,MAAAA,IAAI,EAAC,IAAI;MACTsJ,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACoO,SAAS;AACjDkgB,MAAAA,UAAU,EAAC,UAAA;AAEV,KAAA,EAAA8H,cAAc,CAAC5iC,KAAK,CACb,EACT4iC,cAAc,CAAC1R,KAAK,IACnBptB,KAAA,CAAAC,aAAA,CAAC62B,KAAK,EACJ;AAAAxmB,MAAAA,eAAe,EAAC,WAAW;AAC3BpG,MAAAA,YAAY,EAAC,IAAI;AACjB8sB,MAAAA,UAAU,EAAC,UAAA;AAAU,KAAA,EAEpB8H,cAAc,CAAC1R,KAAK,CAExB,CACI,CACF,EACPptB,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EACrBtE,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AACHtK,MAAAA,IAAI,EAAC,iBAAiB;AACtBsJ,MAAAA,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACkqB,aAAAA;OAEvCkM,cAAc,CAAChuB,QAAQ,CACnB,EAENguB,cAAc,CAACC,SAAS,IACzBD,cAAc,CAACE,YAAY,IAC3BF,cAAc,CAAC7tB,MAAM,GACnBjR,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,MAAAA,MAAM,EAAC,GAAA;AAAM,KAAA,CAAA,EACrBtE,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,MAAAA,OAAO,EAAC,QAAA;KAAQ,EACnB+rB,cAAc,CAACC,SAAS,IACvB/+B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAA8R,IAAI;MACHhB,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACg2B,SAAS;AACjDj3B,MAAAA,IAAI,EAAC,cAAA;OAEJq3B,cAAc,CAACC,SAAS,CACpB,EACP/+B,KAAC,CAAAC,aAAA,CAAA8R,IAAI;MACHhB,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACg2B,SAAS;AACjDj3B,MAAAA,IAAI,EAAC,aAAA;AAAa,KAAA,EAEjBq3B,cAAc,CAACE,YAAY,CACvB,CAEV,EACAF,cAAc,CAAC7tB,MAAM,IACpBjR,KAAA,CAAAC,aAAA,CAACkP,gBAAgB,EACf;AAAArF,MAAAA,EAAE,EAAC,GAAG;MACNsF,IAAI,EAAE0vB,cAAc,CAAC7tB,MAAM;AAC3BxJ,MAAAA,IAAI,EAAC,IAAI;AACTiB,MAAAA,OAAO,EAAC,SAAS;AACjB+J,MAAAA,SAAS,EAAEzS,KAAC,CAAAC,aAAA,CAAA2I,UAAU,EAAC;AAAAnB,QAAAA,IAAI,EAAE,EAAE;AAAE4U,QAAAA,MAAM,EAAC,MAAA;AAAM,OAAA,CAAG;AACjD/M,MAAAA,SAAS,EAAC,YAAA;AAAY,KAAA,CAEzB,CACI,CACN,GAEHtP,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGo6B,cAAc,CAACG,KAAK,CAAC1rC,GAAG,CAAC,UAAC2rC,IAAI,EAAA;AAAA,MAAA,OAC7Bl/B,oBAACE,GAAG,EAAA;QAACvI,GAAG,EAAEunC,IAAI,CAAC9nC,EAAAA;AAAE,OAAA,EACf4I,KAAA,CAAAC,aAAA,CAACw1B,OAAO,EACN;AAAA5U,QAAAA,EAAE,EAAC,GAAG;AACN9P,QAAAA,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACi2B,YAAAA;AACxC,OAAA,CAAA,EACF3+B,KAAC,CAAAC,aAAA,CAAA8R,IAAI;AACHtK,QAAAA,IAAI,EAAC,WAAW;AAChBsJ,QAAAA,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACoO,SAAAA;SAEvCooB,IAAI,CAAChjC,KAAK,CACN,EACP8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGw6B,IAAI,CAACjK,KAAK,CAAC1hC,GAAG,CAAC,UAAC+N,IAAI,EAAA;AAAA,QAAA,OACnBtB,oBAACE,GAAG,EAAA;UAACvI,GAAG,EAAE2J,IAAI,CAAClK,EAAAA;AAAE,SAAA,EACf4I,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,UAAAA,MAAM,EAAC,GAAA;AAAM,SAAA,CAAA,EACrBtE,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACQ,UAAAA,GAAG,EAAC,GAAG;AAACL,UAAAA,UAAU,EAAC,QAAA;AAAQ,SAAA,EAC/B7H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA,IAAA,EACFF,KAAA,CAAAC,aAAA,CAACu+B,IAAI,EAAA;UACH91B,OAAO,EAAEo2B,cAAc,CAACp2B,OAAO;UAC/BF,IAAI,EAAElH,IAAI,CAACkH,IAAAA;UACX,CACE,EACNxI,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EACH;AAAAtK,UAAAA,IAAI,EAAC,aAAa;AAClBsJ,UAAAA,KAAK,EAAE4F,QAAQ,CAACmoB,cAAc,CAACp2B,OAAO,CAAC,CAACoO,SAAAA;AAEvC,SAAA,EAAAxV,IAAI,CAACf,IAAI,CACL,CACF,CACH,CAAA;OACP,CAAC,CACD,CACC,CAAA;KACP,CAAC,CACD,CACO,CAAA;GACb,CAAC,CACS,CACL,CACc,CAAA;AAE9B,CAAC;;;ACjQM,IAAMgc,sBAAsB,gBAAG/G,MAAM,CAC1CgH,MAAM,CAACC,GAAG,CACX,CAAA7R,iBAAA,KAAAA,iBAAA,gBAAAC,2BAAA,CAAA,CAAA,yCAAA,EAAA,0JAAA,EAAA,+BAAA,EAAA,6FAAA,EAAA,UAAA,CAAA,CAAA,CAAA,EAEoB,UAACkF,KAAK,EAAA;EAAA,OACvBA,KAAK,CAACovB,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAA;AAAA,CAKfr2B,EAAAA,aAAa,EAEvC,UAACiH,KAAK,EAAA;EAAA,OAAKA,KAAK,CAACovB,SAAS,CAAA;AAAA,CAAA,EAGX,UAACpvB,KAAK,EAAA;EAAA,OACvBA,KAAK,CAACovB,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAA;AAAA,CAElD,CAAA,CAAA;AAEM,IAAMC,QAAQ,gBAAG5pB,MAAM,CAACgH,MAAM,CAACC,GAAG,CAAC,CAAA/G,gBAAA,KAAAA,gBAAA,gBAAA7K,2BAAA,CAAA,CAAA,wIAAA,EAAA,2GAAA,CAAA,CAAA,CAAA,EAMR/B,aAAa,CAK9C;;ACXD;AACA,IAAMu2B,4BAA4B,GAAyC,SAArEA,4BAA4BA,CAAAltC,IAAA,EAE7B;AAAA,EAAA,IADHiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;EAEL,IAAAuX,SAAA,GAAoBC,QAAQ,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;AAA/CC,IAAAA,SAAS,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAChB,EAAA,IAAAiH,cAAA,GAA+BC,aAAa,EAAE;IAA/BgE,WAAW,GAAAjE,cAAA,CAAlBzV,KAAK,CAAA;EACb,IAAMm7B,qBAAqB,GAAGlkC,KAAK,CAACia,KAAK,CAAC5e,MAAM,IAAI,CAAC,CAAA;EACrD,IAAM8oC,iBAAiB,GAAG1hB,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpD;AACA,EAAA,IAAM2hB,aAAa,GAAGF,qBAAqB,GACvCn+B,KAAK,CAACs+B,IAAI,CAAC;AAAEhpC,IAAAA,MAAM,EAAE8oC,iBAAAA;AAAiB,GAAE,EAAE,YAAA;IAAA,OAAMnkC,KAAK,CAACia,KAAK,CAAA;AAAA,GAAA,CAAC,CAAC9gB,IAAI,EAAE,GACnE6G,KAAK,CAACia,KAAK,CAAA;AAEf,EAAA,IAAAjM,cAAA,GAAmBC,aAAa,CAACL,mBAAmB,CAAC;AAA9CM,IAAAA,QAAQ,GAAAF,cAAA,CAAA,CAAA,CAAA,CAAA;AAEf;EACA,IAAAs2B,iBAAA,GAAmBC,gBAAgB,CACjC;AACEC,MAAAA,IAAI,EAAEN,qBAAqB;AAC3BO,MAAAA,KAAK,EAAE,OAAO;AACdC,MAAAA,aAAa,EAAE,WAAW;AAC1BC,MAAAA,QAAQ,EAAE,IAAA;AACX,KAAA,EACDT,qBAAqB,GACjB,CACEU,UAAU,CAAC;AACTC,MAAAA,UAAU,EAAE,IAAI;AAChBC,MAAAA,KAAK,EAAE52B,QAAQ,GAAG,GAAG,GAAG,CAAC;AACzB62B,MAAAA,iBAAiB,EAAE,KAAK;AACxBC,MAAAA,gBAAgB,EAAE,KAAK;AACvBC,MAAAA,aAAa,EAAE,KAAA;KAChB,CAAC,CACH,GACD,EAAE,CACP;AAlBMC,IAAAA,QAAQ,GAAAZ,iBAAA,CAAA,CAAA,CAAA,CAAA;AAoBf,EAAA,IAAMa,WAAW,GAAG,SAAdA,WAAWA,GAAyB;IACxC,IAAI,CAACjB,qBAAqB,EAAE;AAC1B,MAAA,OACEt/B,KAAC,CAAAC,aAAA,CAAAm/B,QAAQ,EACN,IAAA,EAAAhkC,KAAK,CAACia,KAAK,CAAC9hB,GAAG,CAAC,UAAC+hB,IAAI,EAAEjT,KAAK,EAAA;AAAA,QAAA,OAC3BrC,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFvI,UAAAA,GAAG,EAAK2d,IAAI,CAACle,EAAE,SAAIiL,KAAO;AAC1ByC,UAAAA,UAAU,EAAE,CAAC;AACb+L,UAAAA,SAAS,EAAC,sBAAA;AAAsB,SAAA,EAEhC7Q,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAApD,UAAAA,MAAM,EAAC,MAAM;AACbH,UAAAA,KAAK,EAAC,MAAM;AACZ2D,UAAAA,cAAc,EAAC,QAAQ;AACvBD,UAAAA,UAAU,EAAC,QAAA;AAAQ,SAAA,EAEnB7H,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,UAAAA,QAAQ,EAAC,UAAU;AACnBmE,UAAAA,MAAM,EAAEgF,QAAQ,GAAG,IAAI,GAAG,IAAI;UAC9BnF,KAAK,EAAA,uDAAA,GACGgtB,eAAe,CACjB7b,IAAI,CAAC3R,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACmQ,KAAK,EAC9BmR,IAAI,CAAC3R,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACsQ,MAAM,CAChC,GAAA,GAAA;AAAG,SAAA,EAERtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK;UACJC,GAAG,EAAE/M,cAAc,CAAC4c,IAAI,CAAC3R,GAAG,EAAE,OAAO,CAAC;UACtCvH,GAAG,EAAEkZ,IAAI,CAAClZ,GAAG;AACbsJ,UAAAA,IAAI,EACJ,IAAA;AAAAC,UAAAA,KAAK,EAAE;AACLE,YAAAA,SAAS,EAAEyP,IAAI,CAACzP,SAAS,IAAI,SAAS;AACtCpR,YAAAA,MAAM,EAAE,iBAAA;AACT,WAAA;SAAA,CACD,CACE,CACD,CACH,CAAA;AAAA,OACP,CAAC,CACO,CAAA;AAEf,KAAA;AAEA,IAAA,OACEuL,KAAC,CAAAC,aAAA,CAAAC,GAAG;AAACiE,MAAAA,KAAK,EAAC,MAAM;AAACU,MAAAA,QAAQ,EAAC,QAAQ;AAACkD,MAAAA,GAAG,EAAEu4B,QAAQ;AAAEp7B,MAAAA,MAAM,EAAC,SAAA;AAAS,KAAA,EACjElF,KAAA,CAAAC,aAAA,CAACsc,sBAAsB,EAAC;AAAA4iB,MAAAA,SAAS,EAAE/jC,KAAK,CAACia,KAAK,CAAC5e,MAAAA;KAC5C,EAAA+oC,aAAa,CAACjsC,GAAG,CAAC,UAAC+hB,IAAI,EAAEjT,KAAK,EAAA;AAAA,MAAA,OAC7BrC,oBAACE,GAAG,EAAA;AACFvI,QAAAA,GAAG,EAAK2d,IAAI,CAACle,EAAE,SAAIiL,KAAO;AAC1ByC,QAAAA,UAAU,EAAE,CAAC;AACb+L,QAAAA,SAAS,EAAC,sBAAA;AAAsB,OAAA,EAEhC7Q,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAApD,QAAAA,MAAM,EAAC,MAAM;AACbH,QAAAA,KAAK,EAAC,MAAM;AACZ2D,QAAAA,cAAc,EAAC,QAAQ;AACvBD,QAAAA,UAAU,EAAC,QAAA;AAAQ,OAAA,EAEnB7H,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,QAAAA,QAAQ,EAAC,UAAU;AACnBmE,QAAAA,MAAM,EAAEgF,QAAQ,GAAG,IAAI,GAAG,IAAI;QAC9BnF,KAAK,EAAA,gCAAA,GAAmCgtB,eAAe,CACrD7b,IAAI,CAAC3R,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACmQ,KAAK,EAC9BmR,IAAI,CAAC3R,GAAG,CAAC9P,IAAI,CAACG,UAAU,CAACsQ,MAAM,CAChC,GAAA,GAAA;AAAG,OAAA,EAEJtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK;QACJC,GAAG,EAAE/M,cAAc,CAAC4c,IAAI,CAAC3R,GAAG,EAAE,OAAO,CAAC;QACtCvH,GAAG,EAAEkZ,IAAI,CAAClZ,GAAG;AACbsJ,QAAAA,IAAI,EACJ,IAAA;AAAAC,QAAAA,KAAK,EAAE;AACLE,UAAAA,SAAS,EAAEyP,IAAI,CAACzP,SAAS,IAAI,SAAS;AACtCpR,UAAAA,MAAM,EAAE,iBAAA;;OAEV,CAAA,CACE,CACD,CACH,CAAA;KACP,CAAC,CACqB,CACrB,CAAA;GAET,CAAA;AAED,EAAA,OACEuL,KAAC,CAAAC,aAAA,CAAAsJ,uBAAuB,EAAC;AAAA+G,IAAAA,eAAe,EAAEuC,SAAAA;AAAS,GAAA,EACjD7S,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACGtJ,KAAK,CAACc,KAAK,GACV8D,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACG,IAAAA,UAAU,EAAC,QAAQ;AAACyJ,IAAAA,aAAa,EAAC,QAAA;AAAQ,GAAA,EAC9CtR,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA;AAACpK,IAAAA,IAAI,EAAC,IAAI;AAACmsB,IAAAA,UAAU,EAAC,KAAA;AAC3B,GAAA,EAAAx4B,KAAK,CAACc,KAAK,CACJ,CACL,EACP8D,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACjN,IAAAA,MAAM,EAAC,IAAI;AAAC+L,IAAAA,SAAS,EAAC,IAAA;IAAO,CACpC,GACD,IAAI,EAEPkwB,WAAW,EAAE,CACb,CACqB,CAAA;AAE9B,CAAC,CAAA;AAED;AACO,IAAMC,qBAAqB,GAAyC,SAA9DA,qBAAqBA,CAAA7tC,KAAA,EAED;AAAA,EAAA,IAD/ByI,KAAK,GAAAzI,KAAA,CAALyI,KAAK,CAAA;AAEL,EAAA,IAAA+H,SAAA,GAAkCC,QAAQ,CAAC,KAAK,CAAC;AAA1Cq9B,IAAAA,SAAS,GAAAt9B,SAAA,CAAA,CAAA,CAAA;AAAEu9B,IAAAA,YAAY,GAAAv9B,SAAA,CAAA,CAAA,CAAA,CAAA;AAE9B6D,EAAAA,SAAS,CAAC,YAAK;AACb05B,IAAAA,YAAY,CAAC,IAAI,CAAC,CAAC;GACpB,EAAE,EAAE,CAAC,CAAA;EAEN,IAAI,CAACD,SAAS,EAAE;AACd,IAAA,OAAOzgC,gCAAO,CAAA;AAChB,GAAA;AAEA,EAAA,OAAOA,oBAACq/B,4BAA4B,EAAA;AAACjkC,IAAAA,KAAK,EAAEA,KAAAA;IAAS,CAAA;AACvD,CAAC;;ACpIM,IAAMulC,QAAQ,GAA4B,SAApCA,QAAQA,CAAAxuC,IAAA,EAAyD;AAAA,EAAA,IAA1BiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACvD,EAAA,IAAAuiB,WAAA,GAA0B/N,UAAU,CAAC1B,aAAW,CAAC;IAAzC0P,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AACrB,EAAA,IAAAza,SAAA,GAAwCC,QAAQ,CAAC,CAAC,CAAC;AAA5Cw9B,IAAAA,YAAY,GAAAz9B,SAAA,CAAA,CAAA,CAAA;AAAE09B,IAAAA,eAAe,GAAA19B,SAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAiG,cAAA,GAAiBC,aAAa,CAACL,mBAAmB,CAAC;AAA5C8vB,IAAAA,MAAM,GAAA1vB,cAAA,CAAA,CAAA,CAAA,CAAA;AACb,EAAA,IAAA7F,UAAA,GAA4BH,QAAQ,CAAC,KAAK,CAAC;AAApC4C,IAAAA,MAAM,GAAAzC,UAAA,CAAA,CAAA,CAAA;AAAE4F,IAAAA,SAAS,GAAA5F,UAAA,CAAA,CAAA,CAAA,CAAA;AAExB,EAAA,IAAMu9B,aAAa,GAAG,SAAhBA,aAAaA,GAAQ;IACzBD,eAAe,CAAC,UAACE,gBAAgB,EAAA;MAAA,OAAKA,gBAAgB,GAAG,CAAC,CAAA;KAAC,CAAA,CAAA;GAC5D,CAAA;EAED,OACE/gC,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;IAACqL,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;AAAC,GAAA,EAC1C/S,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;IAAAiE,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IAClChE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;IACtCC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC7BkE,IAAAA,MAAM,EAAC,MAAM;IACbuT,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAEtC7X,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EACnB;IAAAE,OAAO,EAAEvO,KAAK,CAACuO,OAAO;IACtBzN,KAAK,EAAEd,KAAK,CAACc,KAAK;IAClBqE,IAAI,EAAEnF,KAAK,CAACmF,IAAAA;AACZ,GAAA,CAAA,EACDu4B,MAAM,IACL94B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACC,IAAAA,CAAC,EAAC,IAAA;AAAO,GAAA,CAAA,EACjBxR,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACI,IAAAA,cAAc,EAAC,QAAA;AAAQ,GAAA,EAC3B9H,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFgK,IAAAA,YAAY,EAAC,MAAM;AACnB/F,IAAAA,KAAK,EAAC,GAAG;AACTG,IAAAA,MAAM,EAAC,GAAG;AACVsN,IAAAA,MAAM,EAAC,KAAK;AACZtB,IAAAA,eAAe,EAAC,MAAA;GAAM,CACtB,CACG,EACPtQ,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAA2E,IAAAA,QAAQ,EAAC,SAAS;AAClB+V,IAAAA,WAAW,EAAC,0CAA0C;AACtD/J,IAAAA,SAAS,EAAC,kBAAkB;AAC5B1Q,IAAAA,QAAQ,EAAC,UAAU;AACnBmE,IAAAA,MAAM,EAAC,IAAA;GAAI,CACX,CAEL,CACG,EACNtE,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAA2E,IAAAA,QAAQ,EAAC,SAAS;IAClBsR,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACrCuE,UAAU,EAAE,CACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,0CAA0C,CAC3C;AACDva,IAAAA,QAAQ,EAAC,UAAU;AACnBgE,IAAAA,KAAK,EAAC,MAAA;AAAM,GAAA,EAEZnE,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHqL,IAAAA,OAAO,EAAC,QAAQ;AAChBlO,IAAAA,QAAQ,EAAC,SAAS;IAClBqD,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;AAAC,GAAA,EAE3B9M,KAAK,CAAC4lC,aAAa,CAAC5lC,KAAK,CAAC,CAAC,EAAEwlC,YAAY,CAAC,CAACrtC,GAAG,CAAC,UAAC+N,IAAI,EAAEe,KAAK,EAAA;AAAA,IAAA,OAC1DrC,KAAC,CAAAC,aAAA,CAAAwR,UAAU,EACT;MAAAvJ,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;MAC9BvQ,GAAG,EAAE2J,IAAI,CAAClK,EAAE;MACZga,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3B6vB,MAAAA,YAAY,EAAC,QAAQ;MACrBC,mBAAmB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC;AACnD/gC,MAAAA,QAAQ,EAAC,UAAA;AAAU,KAAA,EAEnBH,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAAG,MAAAA,UAAU,EAAC,QAAQ;MACnBC,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAA;AAAC,KAAA,EAEpD9H,KAAC,CAAAC,aAAA,CAAAC,GAAG;AACFC,MAAAA,QAAQ,EAAC,UAAU;MACnB0Q,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;AACjDP,MAAAA,eAAe,EAAC,OAAA;KAAO,EAEtBhP,IAAI,CAACkH,IAAI,GACRxI,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AAACiY,MAAAA,OAAO,EAAC,GAAA;AAAG,KAAA,EACdnY,KAAA,CAAAC,aAAA,CAACuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC4I,IAAI,CAACkH,IAAI,CAAC7E,GAAG,EAAE,QAAQ,CAAC;AAC5CvH,MAAAA,GAAG,EAAEkF,IAAI,CAACkH,IAAI,CAACpM,GAAG;AAClB+H,MAAAA,KAAK,EAAC,IAAI;AACVG,MAAAA,MAAM,EAAC,IAAA;KACP,CAAA,CACE,GAENtE,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAiY,MAAAA,OAAO,EAAC,GAAA;AAAG,KAAA,EACdnY,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAgK,MAAAA,YAAY,EAAC,MAAM;AACnBoG,MAAAA,eAAe,EAAC,aAAa;AAC7BnM,MAAAA,KAAK,EAAC,GAAG;AACTG,MAAAA,MAAM,EAAC,GAAA;KAAG,CACV,CAEL,EACAw0B,MAAM,IACL94B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACF2E,MAAAA,QAAQ,EAAC,SAAS;AAClB+V,MAAAA,WAAW,EAAC,0CAA0C;AACtD/J,MAAAA,SAAS,EAAC,kBAAkB;AAC5B1Q,MAAAA,QAAQ,EAAC,UAAU;AACnBmE,MAAAA,MAAM,EAAC,IAAA;KAAI,CAEd,CACG,CACD,EACPtE,KAAC,CAAAC,aAAA,CAAA2gB,SAAS,EACR;MAAAjvB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC1BkqB,MAAAA,MAAM,EAAC,MAAM;AACb1b,MAAAA,QAAQ,EAAC,UAAU;AACnBmzB,MAAAA,SAAS,EAAC,MAAA;KAAM,EAEfhyB,IAAI,CAAC6/B,gBAAgB,GACpBnhC,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AACnBE,MAAAA,IAAI,EAAC,GAAG;AACRD,MAAAA,GAAG,EAAC,GAAG;AACP+D,MAAAA,KAAK,EAAC,MAAM;AACZG,MAAAA,MAAM,EAAC,MAAM;AACbuX,MAAAA,MAAM,EAAC,IAAA;AAAI,KAAA,EAEX7b,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAKjQ,OAAO,GAA8C,8CAAA;MAC7D4G,GAAG,EAAEwhB,aAAa,CAAC;AACjBxmB,QAAAA,EAAE,EAAE,oCAAA;AACL,OAAA,CAAC;AACFsO,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAE,OAAO;AAClBqE,QAAAA,YAAY,EAAE,wBAAA;AACf,OAAA;AAAA,KAAA,CACD,CACE,GAENlK,yCACD,EAEDA,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA;AAACqL,MAAAA,OAAO,EAAC,QAAA;AAAQ,KAAA,EACpB/S,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHG,MAAAA,UAAU,EAAC,YAAY;AACvBC,MAAAA,cAAc,EAAC,eAAA;AAAe,KAAA,EAE9B9H,KAAA,CAAAC,aAAA,CAACC,GAAG,EACD,IAAA,EAAAoB,IAAI,CAACqI,OAAO,IACX3J,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAAChB,MAAAA,KAAK,EAAC,aAAa;AAACtJ,MAAAA,IAAI,EAAC,iBAAA;KAAiB,EAC7CnG,IAAI,CAACqI,OAAO,CACR,EACP3J,KAAC,CAAAC,aAAA,CAAAsR,MAAM;AAACC,MAAAA,CAAC,EAAC,GAAA;KAAM,CAAA,CAEnB,CACG,EACNxR,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAA,IAAA,EACFpG,IAAI,CAAC8rB,KAAK,IACTptB,KAAA,CAAAC,aAAA,CAACqgB,GAAG,EACF;AAAAxL,MAAAA,WAAW,EAAExT,IAAI,CAAC8rB,KAAK,CAAC1kB,OAAO;AAC/BwB,MAAAA,YAAY,EAAC,IAAA;AAAI,KAAA,EAEhB5I,IAAI,CAAC8rB,KAAK,CAAC7sB,IAAI,CAEnB,EACAe,IAAI,CAACgU,IAAI,IACRtV,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AAACmE,MAAAA,MAAM,EAAC,GAAG;AAACH,MAAAA,KAAK,EAAC,IAAA;AAAI,KAAA,EAC5CnE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC4I,IAAI,CAACgU,IAAI,CAAC3R,GAAG,EAAE,OAAO,CAAC;AAC3CvH,MAAAA,GAAG,EAAEkF,IAAI,CAACgU,IAAI,CAAClZ,GAAG;AAClBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEvE,IAAI,CAACgU,IAAI,CAACzP,SAAAA;;KAEvB,CAAA,CAEL,CACI,CACF,EACP7F,KAAC,CAAAC,aAAA,CAAA4R,OAAO,EACN;AAAApK,MAAAA,IAAI,EAAC,IAAI;MACTqC,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC1BqM,MAAAA,QAAQ,EAAC,IAAA;AAER,KAAA,EAAA7U,IAAI,CAACpF,KAAK,CACH,EACToF,IAAI,CAACf,IAAI,IACRP,oBAACE,GAAG,EAAA;AAAC4J,MAAAA,EAAE,EAAC,GAAA;AAAG,KAAA,EACT9J,KAAC,CAAAC,aAAA,CAAAmV,QAAQ;MAAC3S,OAAO,EAAEnB,IAAI,CAACf,IAAAA;AAAQ,KAAA,CAAA,CAEnC,EACAe,IAAI,CAAC2P,MAAM,IACVjR,oBAACE,GAAG,EAAA;AAAC2J,MAAAA,SAAS,EAAC,MAAA;AAAM,KAAA,EACnB7J,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACC,MAAAA,CAAC,EAAC,GAAA;AAAM,KAAA,CAAA,EAChBxR,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB;MACfC,IAAI,EAAE9N,IAAI,CAAC2P,MAAM;AACjBxJ,MAAAA,IAAI,EAAC,IAAI;AACTiB,MAAAA,OAAO,EAAC,SAAS;AACjB4G,MAAAA,SAAS,EAAC,UAAA;KACV,CAAA,CAEL,EACAhO,IAAI,CAAC0B,KAAK,GACThD,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,MAAAA,QAAQ,EAAC,UAAU;AACnB2J,MAAAA,EAAE,EAAC,GAAG;MACNxF,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;MACvC+d,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAA;AAAC,KAAA,EAEzCriB,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC4I,IAAI,CAAC0B,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAC7CvH,MAAAA,GAAG,EAAEkF,IAAI,CAAC0B,KAAK,CAAC5G,GAAG;AACnBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLT,QAAAA,MAAM,EAAE4zB,MAAM,GAAG,OAAO,GAAG,SAAS;AACpCjzB,QAAAA,SAAS,EAAEvE,IAAI,CAAC0B,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC1CqE,QAAAA,YAAY,EAAE,wBAAA;OACf;MACD5E,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQ,CAACwzB,MAAM,IAAI3vB,SAAS,CAAC,IAAI,CAAC,CAAA;AAAA,OAAA;AACzC,KAAA,CAAA,EACFnJ,KAAA,CAAAC,aAAA,CAAC6F,eAAe,EAAA;AACdC,MAAAA,MAAM,EAAE,CAACzE,IAAI,CAAC0B,KAAK,CAAC;AACpBgD,MAAAA,MAAM,EAAEA,MAAM;MACdC,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQkD,SAAS,CAAC,KAAK,CAAC,CAAA;AAAA,OAAA;MAC/B,CACE,CACL,GAEHnJ,KAAK,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACN,CACI,CACG,EACXo0B,MAAM,IAAIz2B,KAAK,GAAG,CAAC,GAAGjH,KAAK,CAAC4lC,aAAa,CAACvqC,MAAM,IAC/CuJ,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAA2E,MAAAA,QAAQ,EAAC,SAAS;AAClB+V,MAAAA,WAAW,EAAC,0CAA0C;AACtD/J,MAAAA,SAAS,EAAC,kBAAkB;AAC5B1Q,MAAAA,QAAQ,EAAC,UAAU;AACnBmE,MAAAA,MAAM,EAAC,IAAA;AAAI,KAAA,CAEd,CACU,CAAA;GACd,CAAC,CACG,EACNs8B,YAAY,GAAGxlC,KAAK,CAAC4lC,aAAa,CAACvqC,MAAM,IACxCuJ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;AACFiE,IAAAA,KAAK,EAAC,MAAM;IACZG,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAChCnE,IAAAA,QAAQ,EAAC,UAAU;AACnBuQ,IAAAA,MAAM,EAAC,GAAG;AACVmL,IAAAA,MAAM,EAAC,GAAG;AACVxI,IAAAA,UAAU,EAAC,oGAAA;AACX,GAAA,CAAA,EACFrT,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAwQ,IAAAA,MAAM,EAAC,GAAG;AACV7G,IAAAA,SAAS,EAAC,QAAQ;AAClBgS,IAAAA,MAAM,EAAC,SAAS;AAChB1b,IAAAA,QAAQ,EAAC,UAAA;AAAU,GAAA,EAEnBH,KAAA,CAAAC,aAAA,CAACiQ,MAAM,EACL;AAAAxH,IAAAA,OAAO,EAAC,SAAS;AACjBjB,IAAAA,IAAI,EAAC,IAAI;AACTnC,IAAAA,OAAO,EAAEw7B,aAAa;IACtBM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;GAExB,EAAAxjB,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,kCAAA;AAAkC,GAAE,CAAC,CACnD,CACL,CAET,CACG,CACD,CACC,CACc,CAAA;AAE9B,CAAC;;AC3UD,IAAMiqC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,WAAmB,EAAY;EACrD,OAAOA,WAAW,CACf3M,WAAW,EAAE,CACbpK,OAAO,CAAC,IAAI,EAAE,UAACgX,KAAI,EAAA;AAAA,IAAA,OAAKC,MAAM,CAACC,aAAa,CAACF,KAAI,CAACG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;GAAC,CAAA,CAAA;AAC/E,CAAC;;ACED,IAAYC,SAUX,CAAA;AAVD,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzBA,EAAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnBA,EAAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3BA,EAAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,eAAiC,CAAA;AACjCA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrBA,EAAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/BA,EAAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAVWA,SAAS,KAATA,SAAS,GAUpB,EAAA,CAAA,CAAA;;AChBD,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAW,EAAEC,KAAW,EAAa;AACvD,EAAA,OACED,KAAK,CAACzgB,WAAW,EAAE,KAAK0gB,KAAK,CAAC1gB,WAAW,EAAE,IAC3CygB,KAAK,CAACnH,QAAQ,EAAE,KAAKoH,KAAK,CAACpH,QAAQ,EAAE,IACrCmH,KAAK,CAACE,OAAO,EAAE,KAAKD,KAAK,CAACC,OAAO,EAAE,CAAA;AAEvC,CAAC;;;ACsCD,IAAMC,UAAU,GAAG,GAAG,CAAA;AACtB,IAAMC,mBAAmB,GAAG,EAAE,CAAA;AAE9B,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,SAAiB,EAAiB;AACtD,EAAA,QAAQA,SAAS;IACf,KAAKR,SAAS,CAACS,OAAO;AACpB,MAAA,OAAOpiC,oBAACqiC,MAAM,EAAA;AAAC56B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IAC7B,KAAKk6B,SAAS,CAACW,UAAU;AACvB,MAAA,OAAOtiC,oBAACuiC,OAAO,EAAA;AAAC96B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IAC9B,KAAKk6B,SAAS,CAACa,OAAO;AACpB,MAAA,OAAOxiC,oBAACyiC,UAAU,EAAA;AAACh7B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IACjC,KAAKk6B,SAAS,CAACe,WAAW;AACxB,MAAA,OAAO1iC,oBAAC2iC,gBAAgB,EAAA;AAACl7B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IACvC,KAAKk6B,SAAS,CAACiB,aAAa;AAC1B,MAAA,OAAO5iC,oBAAC6iC,SAAS,EAAA;AAACp7B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IAChC,KAAKk6B,SAAS,CAACmB,eAAe;AAC5B,MAAA,OAAO9iC,oBAAC+iC,QAAQ,EAAA;AAACt7B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IAC/B,KAAKk6B,SAAS,CAACqB,IAAI;AACjB,MAAA,OAAOhjC,oBAACijC,iBAAiB,EAAA;AAACx7B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IACxC,KAAKk6B,SAAS,CAACuB,QAAQ;AACrB,MAAA,OAAOljC,oBAACmjC,QAAQ,EAAA;AAAC17B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;IAC/B,KAAKk6B,SAAS,CAACyB,QAAQ;AACrB,MAAA,OAAOpjC,oBAACqjC,oBAAoB,EAAA;AAAC57B,QAAAA,IAAI,EAAE,EAAA;QAAM,CAAA;AAC3C,IAAA;AACE,MAAA,OAAOzH,KAAA,CAAAC,aAAA,CAACqjC,IAAI,EAAA;AAAC77B,QAAAA,IAAI,EAAE,EAAE;AAAE4U,QAAAA,MAAM,EAAC,MAAA;AAAM,OAAA,CAAG,CAAA;AAC3C,GAAA;AACF,CAAC,CAAA;AAEM,IAAMknB,SAAS,GAAG,SAAZA,SAASA,CAAApxC,IAAA,EAA8C;EAAA,IAAAqxC,qBAAA,EAAAC,eAAA,EAAAC,YAAA,EAAAC,aAAA,EAAAC,aAAA,CAAA;AAAA,EAAA,IAAxCC,KAAK,GAAA1xC,IAAA,CAAL0xC,KAAK,CAAA;AAC/B,EAAA,IAAAlmB,WAAA,GAAoD/N,UAAU,CAAC1B,WAAW,CAAC;IAAnE+U,UAAU,GAAAtF,WAAA,CAAVsF,UAAU;IAAEtC,YAAY,GAAAhD,WAAA,CAAZgD,YAAY;IAAE/C,aAAa,GAAAD,WAAA,CAAbC,aAAa,CAAA;AAC/C,EAAA,IAAAza,SAAA,GAAoCC,QAAQ,CAAC,KAAK,CAAC;AAA5C0gC,IAAAA,UAAU,GAAA3gC,SAAA,CAAA,CAAA,CAAA;AAAE4gC,IAAAA,aAAa,GAAA5gC,SAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAiG,cAAA,GAAiBC,aAAa,CAACL,mBAAmB,CAAC;AAA5C8vB,IAAAA,MAAM,GAAA1vB,cAAA,CAAA,CAAA,CAAA,CAAA;AAEb,EAAA,IAAM46B,UAAU,GAAG,SAAbA,UAAUA,GAAQ;IACtBD,aAAa,CAAC,CAACD,UAAU,CAAC,CAAA;GAC3B,CAAA;AAED,EAAA,IAAMG,iBAAiB,GACrB,CAAA,CAAAT,qBAAA,GAAAC,CAAAA,eAAA,GAACI,KAAK,CAAC7iB,QAAQ,KAAdyiB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAgBhtC,MAAM,KAAA,IAAA,GAAA+sC,qBAAA,GAAI,CAAC,KAAKvB,mBAAmB,CAAA;AAEtD,EAAA,OACEjiC,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;IACFgK,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACvC5F,IAAAA,MAAM,EAAC,MAAM;AACbH,IAAAA,KAAK,EAAC,MAAM;AACZq4B,IAAAA,MAAM,EAAC,yCAAyC;AAChDnpB,IAAAA,UAAU,EAAC,OAAA;AAAO,GAAA,EAElBrT,KAAA,CAAAC,aAAA,CAACC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;AACnBgE,IAAAA,KAAK,EAAC,MAAM;IACZG,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAChCm5B,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAC1C9yB,IAAAA,GAAG,EAAEA,GAAG,CAAAC,eAAA,KAAAA,eAAA,GAAAC,2BAAA,CAAA,CAAA,0KAAA,CAAA,CAAA,CAAA,CAAA;AAOP,GAAA,EAED7K,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;AAAAC,IAAAA,GAAG,EAAE/M,cAAc,CAAAgrC,CAAAA,YAAA,GAACG,KAAK,CAAC7gC,KAAK,KAAA,IAAA,GAAA,KAAA,CAAA,GAAX0gC,YAAA,CAAa//B,GAAG,EAAE,QAAQ,CAAC;IAC/CvH,GAAG,EAAA,CAAAunC,aAAA,GAAEE,KAAK,CAAC7gC,KAAK,KAAA,IAAA,GAAA,KAAA,CAAA,GAAX2gC,aAAA,CAAavnC,GAAG;AACrBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;MACLE,SAAS,EAAE,CAAA+9B,CAAAA,aAAA,GAAAC,KAAK,CAAC7gC,KAAK,KAAX4gC,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAA,CAAa/9B,SAAS,KAAI,OAAA;;AAEvC,GAAA,CAAA,EAEF7F,KAAC,CAAAC,aAAA,CAAAC,GAAG,EACF;AAAAC,IAAAA,QAAQ,EAAC,UAAU;IACnBC,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IAC3BwQ,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AAC7BiL,IAAAA,MAAM,EAAC,GAAG;IACV1X,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC/BG,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAEhCtE,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;IAAAC,GAAG,EAAE/M,cAAc,CAACmrC,KAAK,CAACvuB,IAAI,CAAC3R,GAAG,EAAE,QAAQ,CAAC;AAC7CvH,IAAAA,GAAG,EAAEynC,KAAK,CAACvuB,IAAI,CAAClZ,GAAG;AACnBsJ,IAAAA,IAAI,EACJ,IAAA;AAAAC,IAAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,EAAEg+B,KAAK,CAACvuB,IAAI,CAACzP,SAAS,IAAI,SAAS;AAC5CqE,MAAAA,YAAY,EAAE,wBAAwB;AACtCsyB,MAAAA,MAAM,EACJ,6DAAA;AACH,KAAA;GAAA,CACD,CACE,CACF,EACNx8B,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHqL,IAAAA,OAAO,EAAC,QAAQ;IAChBphB,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AACzB6f,IAAAA,CAAC,EAAC,yDAAA;AAAyD,GAAA,EAE3DxR,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAC;AAAAqL,IAAAA,OAAO,EAAC,KAAK;AAACjB,IAAAA,EAAE,EAAC,GAAG;AAAC5J,IAAAA,GAAG,EAAC,GAAG;AAAC8K,IAAAA,QAAQ,EAAC,MAAA;GAAM,EAC/C6wB,KAAK,CAACK,WAAW,GAChBlkC,oBAAC0H,IAAI,EAAA;IAACoK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAA;AAAC,GAAA,EAC9B9R,KAAA,CAAAC,aAAA,CAACqgB,GAAG,EAAA;AAAChQ,IAAAA,eAAe,EAAC,WAAA;AAAW,GAAA,EAC9BtQ,KAAA,CAAAC,aAAA,CAACkkC,IAAI,EAAA;AAAC18B,IAAAA,IAAI,EAAE,EAAE;AAAE4U,IAAAA,MAAM,EAAC,MAAM;AAACtL,IAAAA,KAAK,EAAC,OAAA;GAAU,CAAA,UAE9C/Q,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EAAC;AAAAtK,IAAAA,IAAI,EAAC,WAAW;AAACsJ,IAAAA,KAAK,EAAC,OAAA;GAC1B,EAAA6M,aAAa,CAAC;AACbxmB,IAAAA,EAAE,EAAE,qCAAA;GACL,CAAC,CACG,CACH,CACD,GAEP4I,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EACD1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACsL,IAAAA,QAAQ,EAAC,MAAM;AAAC9K,IAAAA,GAAG,EAAC,GAAA;GAAG,EAC1B27B,KAAK,CAACO,UAAU,CAAC7wC,GAAG,CAAC,UAACsQ,CAAC,EAAA;AAAA,IAAA,OACtB7D,oBAACsgB,GAAG,EAAA;MAAC3oB,GAAG,EAAEkM,CAAC,CAACzM,EAAAA;AAAE,KAAA,EACX8qC,YAAY,CAACr+B,CAAC,CAACs+B,SAAS,CAAC,UAC1BniC,KAAC,CAAAC,aAAA,CAAA8R,IAAI,EAAC;AAAAtK,MAAAA,IAAI,EAAC,WAAW;AAACsJ,MAAAA,KAAK,EAAC,UAAA;KAC1B,EAAA6M,aAAa,CAAC;AACbxmB,MAAAA,EAAE,EAAkCyM,+BAAAA,GAAAA,CAAC,CAACs+B,SAAS,CAC5C1rB,WAAW,EAAE,CACb8T,OAAO,CAAC,MAAM,EAAE,EAAE,CAAA;KACtB,CAAC,CACG,CACH,CAAA;GACP,CAAC,EACDsZ,KAAK,CAACQ,SAAS,CAAC9wC,GAAG,CAAC,UAAAZ,KAAA,EAAA;AAAA,IAAA,IAAGyE,EAAE,GAAAzE,KAAA,CAAFyE,EAAE;MAAEktC,QAAQ,GAAA3xC,KAAA,CAAR2xC,QAAQ;MAAEhD,WAAW,GAAA3uC,KAAA,CAAX2uC,WAAW,CAAA;AAAA,IAAA,OAC/CthC,oBAACsgB,GAAG,EAAA;AAAC3oB,MAAAA,GAAG,EAAEP,EAAAA;AAAE,KAAA,EACTiqC,cAAc,CAACC,WAAW,CAAC,UAC5BthC,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;AAAAtK,MAAAA,IAAI,EAAC,WAAW;AAACsJ,MAAAA,KAAK,EAAC,UAAA;KAAU,EACpCuzB,QAAQ,CACJ,CACH,CAAA;GACP,CAAC,CACG,CACF,EACPtkC,KAAA,CAAAC,aAAA,CAAC4R,OAAO,EAAA,IAAA,EAAEgyB,KAAK,CAAC3nC,KAAK,CAAW,EAChC8D,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EACH;AAAAQ,IAAAA,GAAG,EAAE+7B,iBAAiB,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;AACrDp8B,IAAAA,UAAU,EAAEixB,MAAM,IAAImL,iBAAiB,GAAG,YAAY,GAAG,QAAQ;AACjEpjB,IAAAA,EAAE,EAAC,GAAG;AACN9N,IAAAA,OAAO,EAAE+lB,MAAM,IAAImL,iBAAiB,GAAG,QAAQ,GAAG,KAAA;GAAK,EAEtDJ,KAAK,CAACU,MAAM,IACXvkC,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EAAC;AAAAQ,IAAAA,GAAG,EAAC,GAAG;AAACL,IAAAA,UAAU,EAAC,QAAA;AAAQ,GAAA,EAC/B7H,KAAC,CAAAC,aAAA,CAAAukC,MAAM;AAAC/8B,IAAAA,IAAI,EAAE,EAAE;AAAEsJ,IAAAA,KAAK,EAAE,kCAAA;AAAsC,GAAA,CAAA,EAC/D/Q,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;IAACtK,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAA;AAAC,GAAA,EAAA,QAAA,CAAe,CAEpE,EACAo8B,KAAK,CAAC7iB,QAAQ,IACbhhB,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EAAC;AAAAQ,IAAAA,GAAG,EAAC,GAAG;AAACL,IAAAA,UAAU,EAAC,QAAA;AAAQ,GAAA,EAC/B7H,KAAA,CAAAC,aAAA,CAACwkC,UAAU,EAAA;AACTh9B,IAAAA,IAAI,EAAE,EAAE;AACRsJ,IAAAA,KAAK,EAAE,kCAAkC;AACzCsL,IAAAA,MAAM,EAAC,MAAA;AACP,GAAA,CAAA,EACFrc,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAC;IAAAtK,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAA;AAC9C,GAAA,EAAAo8B,KAAK,CAAC7iB,QAAQ,CACV,CAEV,EACDhhB,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACG,IAAAA,UAAU,EAAC,QAAQ;AAACK,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAC/BlI,KAAC,CAAAC,aAAA,CAAAykC,aAAa;AACZj9B,IAAAA,IAAI,EAAE,EAAE;AACRsJ,IAAAA,KAAK,EAAE,kCAAA;AACP,GAAA,CAAA,EACF/Q,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;IAACtK,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAA;AAAC,GAAA,EAC/Cwb,UAAU,CAAC4gB,KAAK,CAACtJ,KAAK,EAAE;AACvBrZ,IAAAA,IAAI,EAAE,SAAS;AACf+Z,IAAAA,KAAK,EAAE,SAAS;AAChB0J,IAAAA,GAAG,EAAE,SAAA;GACN,CAAC,EAED,CAACd,KAAK,CAACe,MAAM,IAAA,KAAA,GACNjkB,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACtJ,KAAK,CAAC,CAACsK,WAAW,EAAE,EAAE;AACtDC,IAAAA,oBAAoB,EAAE,CAAA;AACvB,GAAA,CAAC,GAAA,GAAA,GAAInkB,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACtJ,KAAK,CAAC,CAACwK,aAAa,EAAE,EAAE;AACxDD,IAAAA,oBAAoB,EAAE,CAAA;AACvB,GAAA,CAAG,EAELjB,KAAK,CAACrJ,GAAG,IACR,CAACoH,UAAU,CAAC,IAAIzgB,IAAI,CAAC0iB,KAAK,CAACtJ,KAAK,CAAC,EAAE,IAAIpZ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAAC,IACrDx6B,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACG,KAAK,EACLue,UAAU,CAAC4gB,KAAK,CAACrJ,GAAG,EAAE;AACrBtZ,IAAAA,IAAI,EAAE,SAAS;AACf+Z,IAAAA,KAAK,EAAE,SAAS;AAChB0J,IAAAA,GAAG,EAAE,SAAA;GACN,CAAC,EAED,CAACd,KAAK,CAACe,MAAM,IAAA,KAAA,GACNjkB,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAACqK,WAAW,EAAE,EAAE;AACpDC,IAAAA,oBAAoB,EAAE,CAAA;AACvB,GAAA,CAAC,GAAA,GAAA,GAAInkB,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAACuK,aAAa,EAAE,EAAE;AACtDD,IAAAA,oBAAoB,EAAE,CAAA;GACvB,CAAG,CAET,EAEFjB,KAAK,CAACrJ,GAAG,IACR,CAACqJ,KAAK,CAACe,MAAM,IACbhD,UAAU,CAAC,IAAIzgB,IAAI,CAAC0iB,KAAK,CAACtJ,KAAK,CAAC,EAAE,IAAIpZ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAAC,IAAA,KAAA,GAChD7Z,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAACqK,WAAW,EAAE,EAAE;AACpDC,IAAAA,oBAAoB,EAAE,CAAA;AACvB,GAAA,CAAC,GAAA,GAAA,GAAInkB,YAAY,CAAC,IAAIQ,IAAI,CAAC0iB,KAAK,CAACrJ,GAAG,CAAC,CAACuK,aAAa,EAAE,EAAE;AACtDD,IAAAA,oBAAoB,EAAE,CAAA;GACvB,CAAG,CACD,CACF,CACF,EACP9kC,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AACHD,IAAAA,EAAE,EAAEgnB,MAAM,GAAG,GAAG,GAAG,GAAG;IACtBrxB,IAAI,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAA;AAAC,GAAA,EAEvDq8B,UAAU,IAAI,CAAChL,MAAM,GAClB+K,KAAK,CAAC1nC,WAAW,GACd0nC,KAAK,CAAC1nC,WAAW,CAAC6oC,SAAS,CAAC,CAAC,EAAEhD,UAAU,CAAC,GAAA,KAAK,CACjD,EACN6B,KAAK,CAAC1nC,WAAW,CAAC1F,MAAM,GAAGurC,UAAU,IAAIlJ,MAAM,IAC9C94B,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EAAC;AAAAI,IAAAA,cAAc,EAAC,YAAA;AAAY,GAAA,EAC/B9H,KAAA,CAAAC,aAAA,CAACiQ,MAAM,EACL;AAAApG,IAAAA,EAAE,EAAC,GAAG;AACNxE,IAAAA,OAAO,EAAE0+B,UAAU;AACnBt7B,IAAAA,OAAO,EAAC,MAAM;IACd+J,SAAS,EACPqxB,UAAU,GAAG9jC,KAAC,CAAAC,aAAA,CAAAglC,OAAO;AAACx9B,MAAAA,IAAI,EAAC,IAAA;AAAO,KAAA,CAAA,GAAGzH,KAAA,CAAAC,aAAA,CAACilC,SAAS,EAAA;AAACz9B,MAAAA,IAAI,EAAC,IAAA;;AAGtD,GAAA,EAAAmW,aAAa,CACZkmB,UAAU,GACN;AACE1sC,IAAAA,EAAE,EAAE,mCAAA;AACL,GAAA,GACD;AAAEA,IAAAA,EAAE,EAAE,mCAAA;GAAqC,CAChD,CACM,CAEZ,EACD4I,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AACHoC,IAAAA,EAAE,EAAEgvB,MAAM,GAAG,GAAG,GAAG,MAAM;AACzBhxB,IAAAA,cAAc,EAAEgxB,MAAM,GAAGviC,SAAS,GAAG,eAAe;AACpDwc,IAAAA,OAAO,EAAE+lB,MAAM,GAAG,gBAAgB,GAAG,KAAK;AAC1C5wB,IAAAA,GAAG,EAAE4wB,MAAM,GAAG,GAAG,GAAG,GAAA;GAAG,EAEtB+K,KAAK,CAAC5yB,MAAM,IACXjR,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAC;AAAAvD,IAAAA,KAAK,EAAE20B,MAAM,GAAG,MAAM,GAAG,MAAA;AAAM,GAAA,EACnC94B,KAAC,CAAAC,aAAA,CAAAkP,gBAAgB;AACfxX,IAAAA,GAAG,EAAEksC,KAAK,CAAC5yB,MAAM,CAAC7Z,EAAE;AACpBqQ,IAAAA,IAAI,EAAC,IAAI;IACTiB,OAAO,EAAEm7B,KAAK,CAACsB,aAAa;IAC5B/1B,IAAI,EAAEy0B,KAAK,CAAC5yB,MAAM;AAClBwB,IAAAA,SAAS,EAAEzS,oBAAC4I,UAAU,EAAA;AAACnB,MAAAA,IAAI,EAAC,IAAA;MAAO;AACnCtD,IAAAA,KAAK,EAAC,MAAM;AACZmL,IAAAA,SAAS,EAAC,WAAA;GACV,CAAA,CAEL,EACAu0B,KAAK,CAACuB,QAAQ,IAAIvB,KAAK,CAACuB,QAAQ,CAAC3uC,MAAM,GAAG,CAAC,IAC1CuJ,oBAAC0H,IAAI,EAAA;AAACqL,IAAAA,OAAO,EAAC,KAAK;AAAC7K,IAAAA,GAAG,EAAC,GAAA;GAAG,EACxB27B,KAAK,CAACuB,QAAQ,CAAC7xC,GAAG,CAAC,UAAC8xC,OAAO,EAAA;AAAA,IAAA,OAC1BrlC,oBAACE,GAAG,EAAA;MAACvI,GAAG,EAAE0tC,OAAO,CAACjuC,EAAAA;AAAE,KAAA,EAClB4I,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAA;MACFiE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;MAC/BG,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAChCnE,MAAAA,QAAQ,EAAC,UAAU;AACnB+J,MAAAA,YAAY,EAAC,KAAA;AAAK,KAAA,EAElBlK,KAAA,CAAAC,aAAA,CAAC87B,OAAO,EAAC;MAAA5E,KAAK,EAAEkO,OAAO,CAAC7iC,IAAAA;AAAI,KAAA,EAC1BxC,KAAC,CAAAC,aAAA,CAAAuF,OAAK,EACJ;MAAAC,GAAG,EAAE/M,cAAc,CAAC2sC,OAAO,CAACriC,KAAK,CAACW,GAAG,EAAE,QAAQ,CAAC;AAChDvH,MAAAA,GAAG,EAAEipC,OAAO,CAACriC,KAAK,CAAC5G,GAAG;AACtBsJ,MAAAA,IAAI,EACJ,IAAA;AAAAC,MAAAA,KAAK,EAAE;AACLE,QAAAA,SAAS,EAAEw/B,OAAO,CAACriC,KAAK,CAAC6C,SAAS,IAAI,OAAO;AAC7CqE,QAAAA,YAAY,EAAE,wBAAwB;AACtCsyB,QAAAA,MAAM,EACJ,6DAAA;;KAEJ,CAAA,CACM,CACN,CACF,CAAA;AAAA,GACP,CAAC,CAEL,CACI,CACF,CACH,CAAA;AAEV,CAAC;;ACtUD,IAAM8I,SAAS,GAAG,SAAZA,SAASA,CAAAnzC,IAAA,EAMkD;AAAA,EAAA,IAL/DozC,MAAM,GAAApzC,IAAA,CAANozC,MAAM;IACNC,SAAS,GAAArzC,IAAA,CAATqzC,SAAS,CAAA;AAKT,EAAA,IAAAC,eAAA,GAAmDC,cAAc,CAE/DH,MAAM,EAAE;AAAEI,MAAAA,mBAAmB,EAAE,KAAK;AAAEC,MAAAA,aAAa,EAAE,KAAA;AAAO,KAAA,CAAC;IAFvD/xC,IAAI,GAAA4xC,eAAA,CAAJ5xC,IAAI;IAAE2yB,SAAS,GAAAif,eAAA,CAATjf,SAAS;IAAEqf,OAAO,GAAAJ,eAAA,CAAPI,OAAO;IAAEp+B,IAAI,GAAAg+B,eAAA,CAAJh+B,IAAI;IAAEq+B,MAAM,GAAAL,eAAA,CAANK,MAAM,CAAA;AAI9C,EAAA,IAAMC,KAAK,GAAuBt/B,OAAO,CAAC,YAAK;AAAA,IAAA,IAAAu/B,MAAA,CAAA;AAC7C,IAAA,OAAO,CAAAnyC,IAAI,IAAAmyC,IAAAA,IAAAA,CAAAA,MAAA,GAAJnyC,IAAI,CAAG,CAAC,CAAC,KAAAmyC,IAAAA,IAAAA,CAAAA,MAAA,GAATA,MAAA,CAAWl3B,IAAI,KAAA,IAAA,IAAA,CAAAk3B,MAAA,GAAfA,MAAA,CAAiBC,IAAI,KAAA,IAAA,IAAA,CAAAD,MAAA,GAArBA,MAAA,CAAuBE,UAAU,KAAjCF,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAA,CAAmCG,KAAK,KAAI,CAAC,CAAA;AACtD,GAAC,EAAE,CAACtyC,IAAI,CAAC,CAAC,CAAA;EAEV,IAAMuyC,aAAa,GAAG3/B,OAAO,CAC3B,YAAA;AAAA,IAAA,OAAM,CAAC,EAAEgB,IAAI,GAAG,CAAC,IAAI5T,IAAI,IAAI,OAAOA,IAAI,CAAC4T,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,CAAA;AAAA,GAAA,EACnE,CAACA,IAAI,EAAE5T,IAAI,CAAC,CACb,CAAA;EAED,IAAMwyC,QAAQ,GAAGz/B,WAAW,CAAC,YAAA;AAAA,IAAA,OAAMi/B,OAAO,CAACp+B,IAAI,GAAG,CAAC,CAAC,CAAA;AAAA,GAAA,EAAE,CAACo+B,OAAO,EAAEp+B,IAAI,CAAC,CAAC,CAAA;EAEtE,IAAM6+B,WAAW,GAAG7/B,OAAO,CACzB,YAAA;IAAA,OAAMs/B,KAAK,KAAKxvC,SAAS,IAAIkR,IAAI,GAAG+9B,SAAS,GAAGO,KAAK,CAAA;AAAA,GAAA,EACrD,CAACA,KAAK,EAAEt+B,IAAI,EAAE+9B,SAAS,CAAC,CACzB,CAAA;EAED,OAAO;AACL3xC,IAAAA,IAAI,EAAEA,IAAW;AACjB2yB,IAAAA,SAAS,EAATA,SAAS;AACT4f,IAAAA,aAAa,EAAbA,aAAa;AACbE,IAAAA,WAAW,EAAXA,WAAW;AACXC,IAAAA,OAAO,EAAET,MAAM;AACfO,IAAAA,QAAQ,EAARA,QAAQ;AACRN,IAAAA,KAAK,EAALA,KAAAA;GACD,CAAA;AACH,CAAC;;ACRD,IAAMS,mBAAmB,GAAG,CAAC,CAAA;AAC7B,IAAMC,eAAe,GAAG,CAAC,CAAA;AAqBzB,IAAWC,IAGV,CAAA;AAHD,CAAA,UAAWA,IAAI,EAAA;AACbA,EAAAA,IAAA,CAAA,cAAA,CAAA,GAAA,QAAuB,CAAA;AACvBA,EAAAA,IAAA,CAAA,cAAA,CAAA,GAAA,QAAuB,CAAA;AACzB,CAAC,EAHUA,IAAI,KAAJA,IAAI,GAGd,EAAA,CAAA,CAAA,CAAA;AAOM,IAAMC,MAAM,GAA0B,SAAhCA,MAAMA,CAAAx0C,IAAA,EAAqD;AAAA,EAAA,IAAxBiJ,KAAK,GAAAjJ,IAAA,CAALiJ,KAAK,CAAA;AACnD,EAAA,IAAAuiB,WAAA,GAAkC/N,UAAU,CAAC1B,WAAW,CAAC;IAAjD0P,aAAa,GAAAD,WAAA,CAAbC,aAAa;IAAEpqB,MAAM,GAAAmqB,WAAA,CAANnqB,MAAM,CAAA;AAC7B,EAAA,IAAA2P,SAAA,GAA8CC,QAAQ,CAAC,EAAc,CAAC;AAA/DwjC,IAAAA,eAAe,GAAAzjC,SAAA,CAAA,CAAA,CAAA;AAAE0jC,IAAAA,kBAAkB,GAAA1jC,SAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,EAAA,IAAAI,UAAA,GAA4CH,QAAQ,CAAC,EAAc,CAAC;AAA7D0jC,IAAAA,cAAc,GAAAvjC,UAAA,CAAA,CAAA,CAAA;AAAEwjC,IAAAA,iBAAiB,GAAAxjC,UAAA,CAAA,CAAA,CAAA,CAAA;EACxC,IAAAojB,UAAA,GAAwBvjB,QAAQ,CAAC,CAACsjC,IAAI,CAACM,YAAY,CAAa,CAAC;AAA1D5jB,IAAAA,IAAI,GAAAuD,UAAA,CAAA,CAAA,CAAA;AAAEsgB,IAAAA,OAAO,GAAAtgB,UAAA,CAAA,CAAA,CAAA,CAAA;AAEpB,EAAA,IAAAG,UAAA,GAAsD1jB,QAAQ,CAC5D,EAAE,CACH;AAFM8jC,IAAAA,mBAAmB,GAAApgB,UAAA,CAAA,CAAA,CAAA;AAAEqgB,IAAAA,sBAAsB,GAAArgB,UAAA,CAAA,CAAA,CAAA,CAAA;AAGlD,EAAA,IAAAsgB,UAAA,GAAoDhkC,QAAQ,CAC1D,EAAE,CACH;AAFMikC,IAAAA,kBAAkB,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,qBAAqB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EAIhD,IAAMvd,GAAG,GAAG,IAAI1I,IAAI,EAAE,CAAComB,WAAW,EAAE,CAAA;EAEpC,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAClBnlC,KAAU,EACVmjC,SAAiB,EACjBiC,WAAmB,EACjB;AACF,IAAA,IAAM5uC,GAAG,GAAG,IAAIu9B,GAAG,CAAA,gBAAA,EAAmBvlC,UAAU,CAAC,CAAA;AACjDgI,IAAAA,GAAG,CAACy9B,YAAY,CAACC,MAAM,CACrB,mBAAmB,EACnB,CAACl0B,KAAK,GAAGmjC,SAAS,EAAE9O,QAAQ,EAAE,CAC/B,CAAA;AACD79B,IAAAA,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,mBAAmB,EAAEiP,SAAS,CAAC9O,QAAQ,EAAE,CAAC,CAAA;IAClE79B,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAACkR,WAAW,EAAE5d,GAAG,CAAC,CAAA;IACzChxB,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,QAAQ,EAAE/iC,MAAM,CAAC,CAAA;IACzCqF,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,QAAQ,EAAErlC,6BAA6B,CAAC,CAAA;IAEhE,IAAIkyB,IAAI,CAAC,CAAC,CAAC,KAAKsjB,IAAI,CAACgB,YAAY,EAAE;MACjC7uC,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAC9C,KAAC,MAAM;MACL19B,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAC/C,KAAA;IAEA,IAAIqQ,eAAe,CAACnwC,MAAM,EAAE;AAC1BmwC,MAAAA,eAAe,CAACrV,OAAO,CAAC,UAAC98B,MAAM,EAAEsoB,CAAC,EAAI;QACpClkB,GAAG,CAACy9B,YAAY,CAACC,MAAM,mBACLxZ,CAAC,GAAA,0BAAA,EACjBtoB,MAAM,CACP,CAAA;AACH,OAAC,CAAC,CAAA;AACJ,KAAA;IAEA,IAAIqyC,cAAc,CAACrwC,MAAM,EAAE;AACzBqwC,MAAAA,cAAc,CAACvV,OAAO,CAAC,UAAC98B,MAAM,EAAEsoB,CAAC,EAAI;AACnClkB,QAAAA,GAAG,CAACy9B,YAAY,CAACC,MAAM,CACLqQ,eAAAA,IAAAA,eAAe,CAACnwC,MAAM,GAAGsmB,CAAC,CAC1CtoB,GAAAA,wBAAAA,EAAAA,MAAM,CACP,CAAA;AACH,OAAC,CAAC,CAAA;AACJ,KAAA;IACA,OAAO,gBAAA,GAAmBoE,GAAG,CAAC8uC,MAAM,CAAA;GACrC,CAAA;AAED,EAAA,IAAMC,cAAc,GAAyBhhC,WAAW,CACtD,UAACvE,KAAK,EAAA;AAAA,IAAA,OACJmlC,cAAc,CAACnlC,KAAK,EAAEmkC,mBAAmB,EAAE,sBAAsB,CAAC,CAAA;AAAA,GAAA,EACpE,CAACI,eAAe,EAAEE,cAAc,EAAE1jB,IAAI,CAAC,CACxC,CAAA;AAED,EAAA,IAAMykB,UAAU,GAAyBjhC,WAAW,CAClD,UAACvE,KAAK,EAAA;AAAA,IAAA,OAAKmlC,cAAc,CAACnlC,KAAK,EAAEokC,eAAe,EAAE,qBAAqB,CAAC,CAAA;AAAA,GAAA,EACxE,CAACG,eAAe,EAAEE,cAAc,EAAE1jB,IAAI,CAAC,CACxC,CAAA;EAED,IAAA0kB,UAAA,GAMIxC,SAAS,CAAC;AAAEC,MAAAA,MAAM,EAAEqC,cAAc;AAAEpC,MAAAA,SAAS,EAAEgB,mBAAAA;AAAmB,KAAE,CAAC;IALjEuB,YAAY,GAAAD,UAAA,CAAlBj0C,IAAI;IACOm0C,iBAAiB,GAAAF,UAAA,CAA5BthB,SAAS;IACMyhB,qBAAqB,GAAAH,UAAA,CAApC1B,aAAa;IACA8B,mBAAmB,GAAAJ,UAAA,CAAhCxB,WAAW;IACD6B,gBAAgB,GAAAL,UAAA,CAA1BzB,QAAQ,CAAA;EAGV,IAAA+B,WAAA,GAMI9C,SAAS,CAAC;AAAEC,MAAAA,MAAM,EAAEsC,UAAU;AAAErC,MAAAA,SAAS,EAAEiB,eAAAA;AAAe,KAAE,CAAC;IALzD4B,QAAQ,GAAAD,WAAA,CAAdv0C,IAAI;IACOy0C,aAAa,GAAAF,WAAA,CAAxB5hB,SAAS;IACM+hB,iBAAiB,GAAAH,WAAA,CAAhChC,aAAa;IACAoC,eAAe,GAAAJ,WAAA,CAA5B9B,WAAW;IACDmC,YAAY,GAAAL,WAAA,CAAtB/B,QAAQ,CAAA;AAGV,EAAA,IAAMqC,aAAa,GAAG,SAAhBA,aAAaA,CAAI70C,IAAS,EAAI;AAAA,IAAA,IAAA80C,aAAA,CAAA;IAClC,OACE,CAAA90C,IAAI,IAAA,IAAA,IAAA,CAAA80C,aAAA,GAAJ90C,IAAI,CAAEW,OAAO,CAAC,UAAC4d,CAAM,EAAA;AAAA,MAAA,IAAAw2B,OAAA,CAAA;MAAA,OAAKx2B,CAAC,IAAAw2B,IAAAA,IAAAA,CAAAA,OAAA,GAADx2B,CAAC,CAAEtD,IAAI,KAAA,IAAA,GAAA,KAAA,CAAA,GAAP85B,OAAA,CAAS/0C,IAAI,CAAA;AAAA,KAAA,CAAC,qBAAxC80C,aAAA,CAA0Cl0C,MAAM,CAAC,UAACo0C,CAAM,EAAA;MAAA,OAAK,CAAC,CAACA,CAAC,CAAA;AAAA,KAAA,CAAC,KAAI,EAAE,CAAA;GAE1E,CAAA;AAED;AACA,EAAA,IAAMC,cAAc,GAAGriC,OAAO,CAAC,YAAK;IAClC,OAAOiiC,aAAa,CAACX,YAAY,CAAC,CAAA;AACpC,GAAC,EAAE,CAACA,YAAY,CAAC,CAAC,CAAA;AAElB;AACA,EAAA,IAAMgB,UAAU,GAAGtiC,OAAO,CAAC,YAAK;IAC9B,OAAOiiC,aAAa,CAACL,QAAQ,CAAC,CAAA;AAChC,GAAC,EAAE,CAACA,QAAQ,CAAC,CAAC,CAAA;AAEd;EACA,IAAMW,eAAe,GAAGpiC,WAAW,cAAAxU,iBAAA,cAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAC,SAAAC,OAAA,GAAA;IAAA,IAAAsG,GAAA,EAAAjF,QAAA,EAAAC,IAAA,EAAAo1C,MAAA,EAAAC,aAAA,EAAAC,YAAA,CAAA;AAAA,IAAA,OAAA92C,mBAAA,EAAA,CAAAa,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;AAC5BuF,UAAAA,GAAG,GAAG,IAAIu9B,GAAG,CAAA,gBAAA,EAAmBvlC,UAAU,CAAC,CAAA;UACjDgI,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,QAAQ,EAAE/iC,MAAM,CAAC,CAAA;UACzCqF,GAAG,CAACy9B,YAAY,CAACC,MAAM,CAAC,QAAQ,EAAErlC,6BAA6B,CAAC,CAAA;AAACkC,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAE1C82B,KAAK,CACvBv5B,UAAU,0BAAqBgI,GAAG,CAAC8uC,MAAM,EAC5C;AACEl2C,YAAAA,OAAO,EAAE;AACP,cAAA,wBAAwB,EAAE,IAAA;AAC3B,aAAA;AACF,WAAA,CACF,CAAA;AAAA,QAAA,KAAA,CAAA;UAPKmC,QAAQ,GAAAR,QAAA,CAAAkB,IAAA,CAAA;AAAAlB,UAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,OAQKM,QAAQ,CAACw1C,IAAI,EAAE,CAAA;AAAA,QAAA,KAAA,CAAA;UAA5Bv1C,IAAI,GAAAT,QAAA,CAAAkB,IAAA,CAAA;UAEJ20C,MAAM,GAAG,CAAAp1C,IAAI,IAAA,IAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEA,IAAI,KAAI,EAAE,CAE/B;AACMq1C,UAAAA,aAAa,GAAG,IAAIG,GAAG,EAAU,CAAA;AACvCJ,UAAAA,MAAM,CAAC1X,OAAO,CAAC,UAACsS,KAAU,EAAI;AAAA,YAAA,IAAAyF,iBAAA,CAAA;YAC5B,IAAIzF,KAAK,IAAAyF,IAAAA,IAAAA,CAAAA,iBAAA,GAALzF,KAAK,CAAE7vC,UAAU,KAAjBs1C,IAAAA,IAAAA,iBAAA,CAAmBlF,UAAU,EAAE;cACjCP,KAAK,CAAC7vC,UAAU,CAACowC,UAAU,CAAC7S,OAAO,CAAC,UAACjwB,IAAS,EAAI;AAChD4nC,gBAAAA,aAAa,CAACK,GAAG,CAACjoC,IAAI,CAAC6gC,SAAS,CAAC,CAAA;AACnC,eAAC,CAAC,CAAA;AACJ,aAAA;AACF,WAAC,CAAC,CAAA;AAEF;AACMgH,UAAAA,YAAY,GAAG,IAAIE,GAAG,EAAU,CAAA;AACtCJ,UAAAA,MAAM,CAAC1X,OAAO,CAAC,UAACsS,KAAU,EAAI;AAAA,YAAA,IAAA2F,kBAAA,CAAA;YAC5B,IAAI3F,KAAK,IAAA2F,IAAAA,IAAAA,CAAAA,kBAAA,GAAL3F,KAAK,CAAE7vC,UAAU,KAAjBw1C,IAAAA,IAAAA,kBAAA,CAAmBnF,SAAS,EAAE;cAChCR,KAAK,CAAC7vC,UAAU,CAACqwC,SAAS,CAAC9S,OAAO,CAAC,UAACjwB,IAAS,EAAI;AAC/C6nC,gBAAAA,YAAY,CAACI,GAAG,CAACjoC,IAAI,CAACgjC,QAAQ,CAAC,CAAA;AACjC,eAAC,CAAC,CAAA;AACJ,aAAA;AACF,WAAC,CAAC,CAAA;AAEF;UACA6C,sBAAsB,CACpBhmC,KAAK,CAACs+B,IAAI,CAACyJ,aAAa,CAAC,CAAC31C,GAAG,CAAC,UAACkN,KAAK,EAAA;YAAA,OAAM;AAAEA,cAAAA,KAAK,EAALA,KAAK;AAAE02B,cAAAA,KAAK,EAAE12B,KAAAA;aAAO,CAAA;AAAA,WAAC,CAAC,CACpE,CAAA;UAED6mC,qBAAqB,CACnBnmC,KAAK,CAACs+B,IAAI,CAAC0J,YAAY,CAAC,CAAC51C,GAAG,CAAC,UAACkN,KAAK,EAAA;YAAA,OAAM;AAAEA,cAAAA,KAAK,EAALA,KAAK;AAAE02B,cAAAA,KAAK,EAAE12B,KAAAA;aAAO,CAAA;AAAA,WAAC,CAAC,CACnE,CAAA;AAAC,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAArN,QAAA,CAAA2B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAAxC,OAAA,CAAA,CAAA;AAAA,GACH,CAAE,CAAA,EAAA,CAACiB,MAAM,CAAC,CAAC,CAAA;AAEZ;AACAwT,EAAAA,SAAS,CAAC,YAAK;AACbgiC,IAAAA,eAAe,EAAE,CAAA;AACnB,GAAC,EAAE,CAACA,eAAe,CAAC,CAAC,CAAA;EAErB,IAAMS,YAAY,GAAG,SAAfA,YAAYA,CAChBC,UAA8B,EAC9BC,aAAqB,EACnB;IACF,IAAID,UAAU,KAAK,YAAY,EAAE;MAC/B7C,kBAAkB,CAAC,UAACxzC,IAAI,EAAA;AAAA,QAAA,OACtBA,IAAI,CAACoB,MAAM,CAAC,UAAC6M,IAAI,EAAA;UAAA,OAAKA,IAAI,KAAKqoC,aAAa,CAAA;SAAC,CAAA,CAAA;OAC9C,CAAA,CAAA;AACH,KAAC,MAAM,IAAID,UAAU,KAAK,WAAW,EAAE;MACrC3C,iBAAiB,CAAC,UAAC1zC,IAAI,EAAA;AAAA,QAAA,OACrBA,IAAI,CAACoB,MAAM,CAAC,UAAC6M,IAAI,EAAA;UAAA,OAAKA,IAAI,KAAKqoC,aAAa,CAAA;SAAC,CAAA,CAAA;OAC9C,CAAA,CAAA;AACH,KAAA;GACD,CAAA;AAED3iC,EAAAA,SAAS,CAAC,YAAK;IACb8+B,MAAM,CAAC8B,cAAc,CAAC,CAAA;GACvB,EAAE,CAAChB,eAAe,EAAEE,cAAc,EAAE1jB,IAAI,CAAC,CAAC,CAAA;AAE3C,EAAA,OACEpjB,oBAACuJ,uBAAuB,EAAA,IAAA,EACtBvJ,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACLpO,KAAK,CAACwuC,aAAa,GAClB5pC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBvN,KAAK,EAAEd,KAAK,CAACwuC,aAAa;IAC1BrpC,IAAI,EAAEnF,KAAK,CAACyuC,mBAAmB;AAC/B9/B,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE,KAAA;KAAO;AAC3BC,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,KAAA;;AACnB,GAAA,CAAA,EACFhK,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACC,IAAAA,CAAC,EAAC,IAAA;AAAI,GAAA,CAAG,CAChB,GAEHxR,yCACD,EACA5E,KAAK,CAAC0uC,YAAY,KAAKhB,cAAc,IAAIC,UAAU,CAAC,GACnD/oC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAyH,IAAI,EACH;AAAAI,IAAAA,cAAc,EAAC,eAAe;IAC9B8a,SAAS,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AAChD/a,IAAAA,UAAU,EAAC,UAAU;AACrBK,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAEPlI,KAAA,CAAAC,aAAA,CAACyH,IAAI,EACH;AAAAkb,IAAAA,SAAS,EAAC,QAAQ;AAClBze,IAAAA,KAAK,EAAC,MAAM;AACZ2D,IAAAA,cAAc,EAAC,OAAO;AACtBI,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EAGPlI,KAAC,CAAAC,aAAA,CAAAyH,IAAI;IACHkb,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;AACxC1a,IAAAA,GAAG,EAAC,GAAG;AACPJ,IAAAA,cAAc,EAAC,OAAA;AAAO,GAAA,EAEtB9H,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,IAAAA,QAAQ,EAAC,UAAU;IAACgE,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EACxDnE,KAAC,CAAAC,aAAA,CAAA8pC,MAAM;AACLC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE,IAAI;AAClB7yC,IAAAA,EAAE,EAAC,iBAAiB;AACpBqQ,IAAAA,IAAI,EAAC,IAAI;IACTyiC,WAAW,EAAEtsB,aAAa,CAAC;AACzBxmB,MAAAA,EAAE,EAAE,wCAAA;AACL,KAAA,CAAC;IACF+yC,iBAAiB,EAAEvsB,aAAa,CAAC;AAC/BxmB,MAAAA,EAAE,EAAE,gDAAA;AACL,KAAA,CAAC;AACFmjB,IAAAA,OAAO,EAAE2sB,mBAAmB;AAC5BzmC,IAAAA,KAAK,EAAEmmC,eAAe,IAAfA,IAAAA,GAAAA,eAAe,GAAI,EAAE;AAC5B9M,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGsQ,QAAkB,EAAI;MAC/BvD,kBAAkB,CAACuD,QAAQ,CAAC,CAAA;AAC9B,KAAA;IACA,CACE,EACNpqC,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAC,IAAAA,QAAQ,EAAC,UAAU;IAACgE,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EACxDnE,KAAC,CAAAC,aAAA,CAAA8pC,MAAM;AACLC,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE,IAAI;AAClB7yC,IAAAA,EAAE,EAAC,gBAAgB;AACnBqQ,IAAAA,IAAI,EAAC,IAAI;IACTyiC,WAAW,EAAEtsB,aAAa,CAAC;AACzBxmB,MAAAA,EAAE,EAAE,uCAAA;AACL,KAAA,CAAC;IACF+yC,iBAAiB,EAAEvsB,aAAa,CAAC;AAC/BxmB,MAAAA,EAAE,EAAE,gDAAA;AACL,KAAA,CAAC;AACFmjB,IAAAA,OAAO,EAAE8sB,kBAAkB;AAC3B5mC,IAAAA,KAAK,EAAEqmC,cAAc,IAAdA,IAAAA,GAAAA,cAAc,GAAI,EAAE;AAC3BhN,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGsQ,QAAkB,EAAI;MAC/BrD,iBAAiB,CAACqD,QAAQ,CAAC,CAAA;AAC7B,KAAA;GAAC,CACD,CACE,CACD,EAGPpqC,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAA0E,IAAAA,OAAO,EAAC,MAAM;AAACoO,IAAAA,QAAQ,EAAC,MAAM;AAAC3C,IAAAA,SAAS,EAAC,GAAG;AAACnI,IAAAA,GAAG,EAAC,GAAA;AAAG,GAAA,EACtD0+B,eAAe,CAACrzC,GAAG,CAAC,UAAC4uC,SAAS,EAAI;AACjC,IAAA,IAAM0B,KAAK,GAAGqD,mBAAmB,CAAC5uC,IAAI,CACpC,UAAC+xC,MAAM,EAAA;AAAA,MAAA,OAAKA,MAAM,CAAC5pC,KAAK,KAAK0hC,SAAS,CAAA;KACvC,CAAA,CAAA;AACD,IAAA,OACEniC,KAAA,CAAAC,aAAA,CAACqqC,SAAS,EAAA;AACR3yC,MAAAA,GAAG,EAAEwqC,SAAS;AACdoI,MAAAA,UAAU,EAAE,IAAI;MAChBtkC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OAAQwjC,YAAY,CAAC,YAAY,EAAEtH,SAAS,CAAC,CAAA;AAAA,OAAA;AAAA,KAAA,EAEnD0B,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAE1M,KAAK,CACH,CAAA;GAEf,CAAC,EAED2P,cAAc,CAACvzC,GAAG,CAAC,UAACi3C,cAAc,EAAI;AACrC,IAAA,IAAMlG,QAAQ,GAAG+C,kBAAkB,CAAC/uC,IAAI,CACtC,UAAC+xC,MAAM,EAAA;AAAA,MAAA,OAAKA,MAAM,CAAC5pC,KAAK,KAAK+pC,cAAc,CAAA;KAC5C,CAAA,CAAA;AACD,IAAA,OACExqC,KAAA,CAAAC,aAAA,CAACqqC,SAAS,EAAA;AACR3yC,MAAAA,GAAG,EAAE6yC,cAAc;AACnBD,MAAAA,UAAU,EAAE,IAAI;MAChBtkC,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,QAAA,OACLwjC,YAAY,CAAC,WAAW,EAAEe,cAAc,CAAC,CAAA;AAAA,OAAA;AAAA,KAAA,EAG1ClG,QAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEnN,KAAK,CACN,CAAA;GAEf,CAAC,CACE,CACD,EAEPn3B,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAA0E,IAAAA,OAAO,EAAC,MAAM;AAACsD,IAAAA,GAAG,EAAC,KAAK;AAAC/D,IAAAA,KAAK,EAAC,IAAI;AAAC0D,IAAAA,UAAU,EAAC,QAAA;AAAQ,GAAA,EAC1D7H,KAAA,CAAAC,aAAA,CAAC8R,IAAI,EAAA;AAACtK,IAAAA,IAAI,EAAC,aAAa;AAACsJ,IAAAA,KAAK,EAAC,OAAO;AAAC5M,IAAAA,KAAK,EAAC,IAAA;GAEtC,EAAA,UAAA,CAAA,EACPnE,KAAA,CAAAC,aAAA,CAAC8pC,MAAM,EACL;AAAAC,IAAAA,UAAU,EAAE,KAAK;AACjB9nB,IAAAA,WAAW,EAAC,OAAO;AACnBzhB,IAAAA,KAAK,EAAE,CAAC2iB,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB8mB,IAAAA,WAAW,EAAE9mB,IAAI,CAAC,CAAC,CAAC;AACpB0W,IAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAGsQ,QAAkB,EAAA;MAAA,OAAKnD,OAAO,CAACmD,QAAQ,CAAC,CAAA;AAAA,KAAA;AACnD7vB,IAAAA,OAAO,EAAE,CACP;MACE4c,KAAK,EAAEvZ,aAAa,CAAC;QACnBxmB,EAAE,EAAA,sCAAA,GAAyCsvC,IAAI,CAACM,YAAAA;OACjD,CAAC;MACFvmC,KAAK,EAAEimC,IAAI,CAACM,YAAAA;AACb,KAAA,EACD;MACE7P,KAAK,EAAEvZ,aAAa,CAAC;QACnBxmB,EAAE,EAAA,sCAAA,GAAyCsvC,IAAI,CAACgB,YAAAA;OACjD,CAAC;MACFjnC,KAAK,EAAEimC,IAAI,CAACgB,YAAAA;KACb,CAAA;GACF,CACD,CACE,CACD,EAEP1nC,KAAC,CAAAC,aAAA,CAAAsR,MAAM;IAACC,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;IAAK,CACrC,GAEHxR,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,CACD,EAEA,CAAC,CAACokC,cAAc,IAAIA,cAAc,CAACryC,MAAM,KAAK,CAAC,KAChD,CAACuxC,iBAAiB,GAChBhoC,KAAC,CAAAC,aAAA,CAAAqa,MAAM,QACJsD,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,kCAAA;AAAoC,GAAA,CAAC,CACnD;AAET;AACA4I,EAAAA,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;AACTL,IAAAA,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACvCqS,IAAAA,QAAQ,EAAC,GAAG;AACZvb,IAAAA,GAAG,EAAC,GAAG;AACPpD,IAAAA,UAAU,EAAC,GAAG;IACdgN,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B24B,IAAAA,UAAU,EAAC,QAAA;AAAQ,GAAA,EAElB3B,cAAc,CAACv1C,GAAG,CAAC,UAACswC,KAA+B,EAAA;AAAA,IAAA,OAClD7jC,KAAC,CAAAC,aAAA,CAAAC,GAAG,EAAC;MAAAvI,GAAG,EAAEksC,KAAK,CAACzsC,EAAE;AAAE+M,MAAAA,KAAK,EAAC,MAAM;AAACG,MAAAA,MAAM,EAAC,MAAA;AAAM,KAAA,EAC5CtE,KAAA,CAAAC,aAAA,CAACsjC,SAAS,EAAA;MAACM,KAAK,EAAEA,KAAK,CAAC7vC,UAAAA;AAAU,KAAA,CAAI,CAClC,CAAA;GACP,CAAC,CAEL,EACDgM,KAAA,CAAAC,aAAA,CAACyH,IAAI,EAAC;AAAAI,IAAAA,cAAc,EAAC,QAAA;GAAQ,EAC1B,CAACkgC,iBAAiB,IAAIE,mBAAmB,IACxCloC,KAAC,CAAAC,aAAA,CAAAiQ,MAAM;AACL5K,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;AACZ6iC,MAAAA,gBAAgB,EAAE,CAAA;KACnB;AACDz/B,IAAAA,OAAO,EAAC,OAAO;AACf8d,IAAAA,SAAS,EAAEyhB,qBAAAA;GAEV,EAAArqB,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,0BAAA;GAA4B,CAAC,CAErD,CACI,CACC,EAEV4I,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;IAACC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAK,GAAA,CAAA,EAEvCxR,KAAA,CAAAC,aAAA,CAACC,GAAG,EAAC;AAAAmT,IAAAA,UAAU,EAAC,YAAY;IAACsqB,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EACtD39B,KAAA,CAAAC,aAAA,CAACuJ,OAAO,EAAA,IAAA,EACNxJ,KAAA,CAAAC,aAAA,CAACwJ,oBAAoB,EAAA;IACnBvN,KAAK,EAAEd,KAAK,CAACsvC,SAAS;IACtBnqC,IAAI,EAAEnF,KAAK,CAACuvC,eAAe;AAC3B5gC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,IAAI,EAAE,KAAA;KAAO;AAC3BC,IAAAA,SAAS,EAAE;AAAED,MAAAA,IAAI,EAAE,KAAA;;AACnB,GAAA,CAAA,EAEFhK,KAAA,CAAAC,aAAA,CAACsR,MAAM,EAAA;AAACC,IAAAA,CAAC,EAAC,IAAA;AAAO,GAAA,CAAA,EAEhB,CAAC,CAACu3B,UAAU,IAAIA,UAAU,CAACtyC,MAAM,KAAK,CAAC,KAAK,CAAC6xC,aAAa,GACzDtoC,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAA0E,QAAA,EAAA,IAAA,EACE1E,KAAC,CAAAC,aAAA,CAAAqa,MAAM,EACJ,IAAA,EAAAsD,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,8BAAA;GAAgC,CAAC,CAC/C,EACT4I,KAAC,CAAAC,aAAA,CAAAsR,MAAM,EAAC;AAAAC,IAAAA,CAAC,EAAC,IAAA;IAAO,CAChB;AAEH;AACAxR,EAAAA,KAAA,CAAAC,aAAA,CAACwR,UAAU,EAAA;AACTL,IAAAA,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACvCqS,IAAAA,QAAQ,EAAC,GAAG;AACZvb,IAAAA,GAAG,EAAC,GAAG;AACPpD,IAAAA,UAAU,EAAC,GAAG;AACd2lC,IAAAA,UAAU,EAAC,QAAQ;IACnB34B,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAA;AAAC,GAAA,EAE3Bi3B,UAAU,CAACx1C,GAAG,CAAC,UAACswC,KAA+B,EAAA;AAAA,IAAA,OAC9C7jC,KAAC,CAAAC,aAAA,CAAAC,GAAG,EAAC;MAAAvI,GAAG,EAAEksC,KAAK,CAACzsC,EAAE;AAAEkN,MAAAA,MAAM,EAAC,MAAM;AAACH,MAAAA,KAAK,EAAC,MAAA;AAAM,KAAA,EAC5CnE,KAAA,CAAAC,aAAA,CAACsjC,SAAS,EAAA;MAACM,KAAK,EAAEA,KAAK,CAAC7vC,UAAAA;AAAU,KAAA,CAAI,CAClC,CAAA;GACP,CAAC,CAEL,EACDgM,KAAC,CAAAC,aAAA,CAAAyH,IAAI;AAACI,IAAAA,cAAc,EAAC,QAAA;GAClB,EAAA,CAACwgC,aAAa,IAAIE,eAAe,IAChCxoC,KAAC,CAAAC,aAAA,CAAAiQ,MAAM;AACL4B,IAAAA,EAAE,EAAC,IAAI;AACPxM,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;AACZmjC,MAAAA,YAAY,EAAE,CAAA;KACf;AACD//B,IAAAA,OAAO,EAAC,OAAO;AACf8d,IAAAA,SAAS,EAAE+hB,iBAAAA;GAEV,EAAA3qB,aAAa,CAAC;AAAExmB,IAAAA,EAAE,EAAE,0BAAA;AAA4B,GAAA,CAAC,CAErD,CACI,CACC,CACN,CACkB,CAAA;AAE9B,CAAC;;IC/ZYwzC,aAAa,GAAG,SAAhBA,aAAaA,CAAAz4C,IAAA,EAAA;AAAA,EAAA,IACxBgJ,MAAM,GAAAhJ,IAAA,CAANgJ,MAAM;IACNoB,SAAS,GAAApK,IAAA,CAAToK,SAAS;IACTzC,QAAQ,GAAA3H,IAAA,CAAR2H,QAAQ;IACR4C,eAAe,GAAAvK,IAAA,CAAfuK,eAAe;IAAA9E,WAAA,GAAAzF,IAAA,CACfqB,MAAM;AAANA,IAAAA,MAAM,GAAAoE,WAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,WAAA;IACbizC,WAAW,GAAA14C,IAAA,CAAX04C,WAAW;IACXx8B,iBAAiB,GAAAlc,IAAA,CAAjBkc,iBAAiB,CAAA;AAAA,EAAA,OAEjBrO,KAAC,CAAAC,aAAA,CAAAkO,eAAe;AAAC3a,IAAAA,MAAM,EAAEA,MAAM;AAAE6a,IAAAA,iBAAiB,EAAEA,iBAAAA;AAAiB,GAAA,EAClElT,MAAM,CAAC5H,GAAG,CAAC,UAAC6H,KAAU,EAAI;IACzB,QAAQA,KAAK,CAACC,WAAW;AACvB,MAAA,KAAK,eAAe;AAClB,QAAA,OACE2E,oBAACoQ,IAAI,EAAA;AAACzY,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEnE,MAAA,KAAK,mBAAmB;AACtB,QAAA,OACE4E,oBAACiW,OAAO,EAAA;AAACte,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEtE,MAAA,KAAK,oBAAoB;AACvB,QAAA,OACE4E,oBAACgZ,eAAe,EAAA;AACdrhB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,+BAA+B;AAClC,QAAA,OACE4E,oBAACwT,iBAAiB,EAAA;AAChB7b,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,yBAAyB;AAC5B,QAAA,OACE4E,KAAC,CAAAC,aAAA,CAAAqhB,YAAY,EACX;AAAA3pB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZtB,UAAAA,QAAQ,EAAEA,QAAAA;AACV,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,8BAA8B;AACjC,QAAA,OACEkG,oBAACmV,gBAAgB,EAAA;AACfxd,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,sBAAsB;AACzB,QAAA,OACE4E,oBAACsY,UAAU,EAAA;AACT3gB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,kBAAkB;AACrB,QAAA,OACE4E,oBAACmX,KAAK,EAAA;AAACxf,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEpE,MAAA,KAAK,qBAAqB;AACxB,QAAA,OACE4E,oBAAC0S,SAAS,EAAA;AAAC/a,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAExE,MAAA,KAAK,2BAA2B;AAC9B,QAAA,OACE4E,oBAACkJ,cAAc,EAAA;AACbvR,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,+BAA+B;AAClC,QAAA,OACE4E,oBAACof,iBAAiB,EAAA;AAChBznB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,yBAAyB;AAC5B,QAAA,OACE4E,oBAAC0b,YAAY,EAAA;AACX/jB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,oBAAoB;AACvB,QAAA,OACE4E,oBAACmR,QAAQ,EAAA;AAACxZ,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEvE,MAAA,KAAK,8BAA8B;AACjC,QAAA,OACE4E,oBAACiT,iBAAiB,EAAA;AAChBtb,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,gBAAgB;AACnB,QAAA,OACE4E,oBAACiZ,KAAK,EAAA;AAACthB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEpE,MAAA,KAAK,wBAAwB;AAC3B,QAAA,OACE4E,oBAACsd,YAAY,EAAA;AACX3lB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,0BAA0B;AAC7B,QAAA,OACE4E,oBAAC+hB,aAAa,EAAA;AACZpqB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,qBAAqB;AACxB,QAAA,OACE4E,KAAC,CAAAC,aAAA,CAAAwiB,SAAS,EACR;AAAA9qB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZK,UAAAA,KAAK,EAAC,MAAA;AACN,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,2BAA2B;AAC9B,QAAA,OACEuE,KAAC,CAAAC,aAAA,CAAAwiB,SAAS,EACR;AAAA9qB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZK,UAAAA,KAAK,EAAC,OAAA;AACN,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,wBAAwB;AAC3B,QAAA,OACEuE,KAAC,CAAAC,aAAA,CAAA08B,YAAY;AACXhlC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZ9E,UAAAA,OAAO,EAAEwD,QAAQ,CAACxB,IAAI,CAAC,UAAC3G,CAAC,EAAA;AAAA,YAAA,OAAKA,CAAC,CAACyF,EAAE,KAAKgE,KAAK,CAACshC,SAAS,CAAA;AAAA,WAAA,CAAA;AAAC,SAAA,CACvD,CAAA;AAEN,MAAA,KAAK,wBAAwB;AAC3B,QAAA,OACE18B,KAAC,CAAAC,aAAA,CAAAqkB,YAAY,EACX;AAAA3sB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZtB,UAAAA,QAAQ,EAAEA,QAAAA;AACV,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,uBAAuB;AAC1B,QAAA,OACEkG,oBAAComB,WAAW,EAAA;AACVzuB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,gBAAgB;AACnB,QAAA,OACE4E,oBAACowB,KAAK,EAAA;AAACz4B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEpE,MAAA,KAAK,qCAAqC;AACxC,QAAA,OACE4E,oBAACywB,uBAAuB,EAAA;AACtB94B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,kCAAkC;AACrC,QAAA,OACE4E,oBAACyxB,oBAAoB,EAAA;AACnB95B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,8BAA8B;AACjC,QAAA,OACE4E,oBAACgyB,gBAAgB,EAAA;AACfr6B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,mBAAmB;AACtB,QAAA,OACE4E,oBAAC8zB,OAAO,EAAA;AAACn8B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEtE,MAAA,KAAK,cAAc;AACjB,QAAA,OAAO4E,oBAACmzB,GAAG,EAAA;AAACx7B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;UAAS,CAAA;AACvE,MAAA,KAAK,wBAAwB;AAC3B,QAAA,OACE4E,oBAAC41B,YAAY,EAAA;AACXj+B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,gBAAgB;AACnB,QAAA,OACE4E,oBAAC04B,KAAK,EAAA;AAAC/gC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEpE,MAAA,KAAK,qBAAqB;AACxB,QAAA,OACE4E,KAAC,CAAAC,aAAA,CAAA44B,SAAS,EACR;AAAAlhC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAK;AACZmB,UAAAA,SAAS,EAAEA,SAAAA;AACX,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,eAAe;AAClB,QAAA,OACEyD,KAAC,CAAAC,aAAA,CAAA+iB,IAAI,EACH;AAAArrB,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;UACvCgE,KAAK,EAAAxG,QAAA,CAAA,EAAA,EACAwG,KAAK,EAAA;AACR+nB,YAAAA,UAAU,EAAE/nB,KAAK,CAAC+nB,UAAU,CAACtvB,IAAAA;WAC9B,CAAA;AACD0I,UAAAA,SAAS,EAAEA,SAAAA;AAAS,SAAA,CACpB,CAAA;AAEN,MAAA,KAAK,mBAAmB;AACtB,QAAA,OACEyD,KAAC,CAAAC,aAAA,CAAA8zB,QAAQ,EACP;AAAAp8B,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;UACvCgE,KAAK,EAAAxG,QAAA,CAAA,EAAA,EACAwG,KAAK,EAAA;AACRk5B,YAAAA,cAAc,EAAEl5B,KAAK,CAACk5B,cAAc,CAACzgC,IAAAA;AAAI,WAAA,CAAA;AAC1C,SAAA,CACD,CAAA;AAEN,MAAA,KAAK,2BAA2B;AAC9B,QAAA,OACEmM,KAAC,CAAAC,aAAA,CAAAk+B,eAAe,EACd;AAAAxmC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;UACvCgE,KAAK,EAAAxG,QAAA,CAAA,EAAA,EACAwG,KAAK,EAAA;AACRgjC,YAAAA,gBAAgB,EAAEhjC,KAAK,CAACgjC,gBAAgB,CAACvqC,IAAAA;WAC1C,CAAA;AACD6I,UAAAA,eAAe,EAAEA,eAAAA;AAAe,SAAA,CAChC,CAAA;AAEN,MAAA,KAAK,qBAAqB;AACxB,QAAA,OACEsD,oBAAC4+B,UAAU,EAAA;AACTjnC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,mBAAmB;AACtB,QAAA,OACE4E,oBAAC2gC,QAAQ,EAAA;AAAChpC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAEvE,MAAA,KAAK,kCAAkC;AACrC,QAAA,OACE4E,oBAACwgC,qBAAqB,EAAA;AACpB7oC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AACvCgE,UAAAA,KAAK,EAAEA,KAAAA;AACP,SAAA,CAAA,CAAA;AAEN,MAAA,KAAK,iBAAiB;AACpB,QAAA,OACE4E,oBAAC2mC,MAAM,EAAA;AAAChvC,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;AAAEgE,UAAAA,KAAK,EAAEA,KAAAA;AAAS,SAAA,CAAA,CAAA;AAErE,MAAA;AACE,QAAA,IAAIyvC,WAAW,EAAE;AACf,UAAA,OACE7qC,KAAC,CAAAC,aAAA,CAAA4qC,WAAW,EACV;AAAAlzC,YAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAID,GAAAA,GAAAA,KAAK,CAAChE,EAAI;YACvCA,EAAE,EAAEgE,KAAK,CAACC,WAAW;AACrBD,YAAAA,KAAK,EAAEA,KAAAA;AACP,WAAA,CAAA,CAAA;AAEN,SAAA;AAEA,QAAA,OACE4E,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKtI,UAAAA,GAAG,EAAKyD,KAAK,CAACC,WAAW,GAAA,GAAA,GAAID,KAAK,CAAChE,EAAAA;SAAI,EAAA,+BAAA,CAEtC,CAAA;AAEZ,KAAA;AACF,GAAC,CAAC,CACc,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"strapi-slices.esm.js","sources":["../src/constants/strapi.ts","../src/integrations/strapi/strapiClient.ts","../src/integrations/strapi/getAllSlugsFromStrapi.ts","../src/constants/api.ts","../src/integrations/fpmClient.ts","../src/integrations/strapi/getStrapiProjects.ts","../src/integrations/strapi/getPortfolioProjects.ts","../src/integrations/strapi/getStrapiCollectionType.ts","../src/integrations/strapi/getStrapiSingleType.ts","../src/utils/strapiMediaUrl.ts","../src/constants/metadata.ts","../src/constants/slicesConfig.ts","../src/utils/mergeGlobalAndStrapiBlogPostData.ts","../src/utils/mergeGlobalAndStrapiCustomerStoryData.ts","../src/utils/mergeGlobalAndStrapiPageData.ts","../src/utils/mergeGlobalAndStrapiProjectData.ts","../src/utils/strapiLinkUrl.ts","../src/components/PreviewAlert/PreviewAlert.tsx","../src/components/SEOTags/SEOTags.tsx","../src/components/FullScreenImage/ZoomableImage.tsx","../src/components/FullScreenImage/FullScreenImage.tsx","../src/constants/breakpoints.ts","../src/slices/FullWidthImage/FullWidthImage.tsx","../src/utils/openHubSpotChat.ts","../src/constants/globalStyle.ts","../src/slices/Comparison/messages.de.ts","../src/components/CreditsAvailableBadge/messages.de.ts","../src/slices/Cta/messages.de.ts","../src/components/CustomerCard/messages.de.ts","../src/components/CustomerQuoteCard/messages.de.ts","../src/components/EventCard/messages.de.ts","../src/slices/Events/messages.de.ts","../src/slices/Glossary/messages.de.ts","../src/components/portfolio/DocumentsDownloadList/messages.de.ts","../src/slices/ProjectFacts/messages.de.ts","../src/components/ProjectGridCard/messages.de.ts","../src/slices/ProjectsMap/messages.de.ts","../src/components/portfolio/ProjectInfo/messages.de.ts","../src/components/portfolio/SmallCheckout/messages.de.ts","../src/slices/ShopCheckout/messages.de.ts","../src/slices/TextCarousel/messages.de.ts","../src/slices/Timeline/messages.de.ts","../src/unit.messages.de.ts","../src/rootMessages.de.ts","../src/slices/Comparison/messages.en.ts","../src/components/CreditsAvailableBadge/messages.en.ts","../src/slices/Cta/messages.en.ts","../src/components/CustomerCard/messages.en.ts","../src/components/CustomerQuoteCard/messages.en.ts","../src/components/EventCard/messages.en.ts","../src/slices/Events/messages.en.ts","../src/slices/Glossary/messages.en.ts","../src/components/portfolio/DocumentsDownloadList/messages.en.ts","../src/slices/ProjectFacts/messages.en.ts","../src/components/ProjectGridCard/messages.en.ts","../src/slices/ProjectsMap/messages.en.ts","../src/components/portfolio/ProjectInfo/messages.en.ts","../src/components/portfolio/SmallCheckout/messages.en.ts","../src/slices/ShopCheckout/messages.en.ts","../src/slices/TextCarousel/messages.en.ts","../src/slices/Timeline/messages.en.ts","../src/unit.messages.en.ts","../src/rootMessages.en.ts","../src/utils/getMessages.ts","../src/components/ContextProvider/ContextProvider.tsx","../src/components/StrapiLinkButton/StrapiLinkButton.tsx","../src/slices/Hero/Hero.tsx","../src/slices/IconGrid/IconGrid.tsx","../src/icons/LinkedInIcon.tsx","../src/components/StrapiLinkButtonWithIcon/StrapiLinkButtonWithIcon.tsx","../src/slices/ImageGrid/ImageGrid.tsx","../src/slices/ImageTextSequence/ImageTextSequence.tsx","../src/slices/LeftTextRightCard/LeftTextRightCard.tsx","../src/slices/LogoGridWithText/LogoGridWithText.tsx","../src/slices/MapHero/styles.ts","../src/slices/MapHero/MapHero.tsx","../src/utils/convertToKebabCase.ts","../src/slices/QAndA/QAndA.tsx","../src/slices/QuoteCards/QuoteCards.tsx","../src/slices/RichTextSection/RichTextSection.tsx","../src/slices/Steps/Steps.tsx","../src/slices/TextCardGrid/TextCardGrid.tsx","../src/slices/TextCarousel/styles.ts","../src/utils/shuffleElements.ts","../src/slices/TextCarousel/TextCarousel.tsx","../src/slices/TextWithTextCards/TextWithTextCards.tsx","../src/constants/formatter.ts","../src/models/fpm/FPMProject.ts","../src/components/CreditsAvailableBadge/CreditsAvailableBadge.tsx","../src/components/ProjectGridCard/ProjectGridCard.tsx","../src/slices/TextWithCard/TextWithCard.tsx","../src/constants/animations.ts","../src/slices/LinkCardsGrid/LinkCardsGrid.tsx","../src/slices/SmallHero/SmallHero.tsx","../src/slices/Blog/styles.ts","../src/slices/Blog/Blog.tsx","../src/slices/ProjectsGrid/ProjectsGrid.tsx","../src/constants/mapbox.ts","../src/slices/ProjectsMap/mapboxStyle.ts","../src/integrations/strapi/getFpmProjectsByBbox.ts","../src/utils/mergeProjectData.ts","../src/slices/ProjectsMap/ProjectsMap.tsx","../src/slices/Video/Video.tsx","../src/slices/FullWidthHighlightQuote/FullWidthHighlightQuote.tsx","../src/slices/FullWidthImageSlider/styles.ts","../src/utils/getClosestRatio.ts","../src/slices/FullWidthImageSlider/FullWidthImageSlider.tsx","../src/slices/SideBySideImages/SideBySideImages.tsx","../src/slices/Cta/Cta.tsx","../src/slices/CtaOnly/CtaOnly.tsx","../src/slices/Glossary/Glossary.tsx","../src/constants/domain.ts","../src/slices/ShopCheckout/ShopCheckout.tsx","../src/slices/Facts/Facts.tsx","../src/slices/BlogCards/BlogCards.tsx","../src/components/portfolio/SmallCheckout/SmallCheckout.tsx","../src/utils/convertAreaM2ToHa.ts","../src/utils/convertCo2AmountKgToTons.ts","../src/utils/getTimeSpanInYears.ts","../src/components/portfolio/ProjectInfo/ProjectInfo.tsx","../src/components/portfolio/DocumentsDownloadList/DocumentsDownloadList.tsx","../src/components/portfolio/Contact/Contact.tsx","../src/integrations/strapi/getFpmProjectById.ts","../src/slices/ProjectFacts/ProjectFacts.tsx","../src/components/CustomerCard/CustomerCard.tsx","../src/components/CustomerQuoteCard/CustomerQuoteCard.tsx","../src/components/LogoCard/LogoCard.tsx","../src/slices/CustomerStories/CustomerStories.tsx","../src/slices/Comparison/Icon.tsx","../src/slices/Comparison/Comparison.tsx","../src/slices/CarouselMarqueeBanner/styles.ts","../src/slices/CarouselMarqueeBanner/CarouselMarqueeBanner.tsx","../src/slices/Timeline/Timeline.tsx","../src/utils/getCountryFlag.ts","../src/models/strapi/StrapiEvent.ts","../src/utils/isSameDate.ts","../src/components/EventCard/EventCard.tsx","../src/models/hooks/useEvents.ts","../src/slices/Events/Events.tsx","../src/components/SliceRenderer/SliceRenderer.tsx"],"sourcesContent":["export const STRAPI_URI =\n process.env.NEXT_PUBLIC_STRAPI_URI || 'http://127.0.0.1:1337';\n\nexport const STRAPI_DEFAULT_PAGE_SIZE = '100';\nexport const STRAPI_DEFAULT_POPULATE_DEPTH = '6';\n\nexport const STRAPI_FALLBACK_LOCALE = 'en';\n","import axios from 'axios';\nimport qs from 'qs';\nimport { setupCache } from 'axios-cache-interceptor';\nimport { STRAPI_URI } from '../../constants/strapi';\n\nconst strapiClient = setupCache(\n axios.create({\n baseURL: `${STRAPI_URI}/api`,\n headers: { 'Strapi-Response-Format': 'v4' },\n paramsSerializer: (p) => qs.stringify(p, { encodeValuesOnly: true }),\n timeout: 60_000,\n }),\n {\n ttl:\n STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')\n ? 0\n : 10 * 60 * 1000, // 10 minutes\n }\n);\n\nexport default strapiClient;\n","import strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport LocalizedEntity from '../../models/LocalizedEntity';\n\ninterface Options {\n filters?: Record<string, any>;\n}\n\ntype Slug = { slug: string; locale: string };\n\nconst getAllSlugsFromStrapi = async <T extends LocalizedEntity<'slug'>>(\n path: string,\n locales: string[],\n { filters = {} }: Options = { filters: {} }\n): Promise<Slug[]> => {\n const slugPromises = locales.map((locale) =>\n strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n locale: locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n },\n })\n .then((response) =>\n response.data.data.map((page) => ({\n slug: page.attributes.slug,\n locale: page.attributes.locale,\n }))\n )\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n })\n );\n\n const slugResults = await Promise.all(slugPromises);\n\n let allSlugs = slugResults.flat();\n\n // Identify missing locales for each slug\n const missingLocales = locales.flatMap((locale) => {\n return allSlugs\n .filter((slug) => slug.locale === STRAPI_FALLBACK_LOCALE)\n .filter(\n (fallbackSlug) =>\n !allSlugs.some(\n (slug) => slug.slug === fallbackSlug.slug && slug.locale === locale\n )\n )\n .map((fallbackSlug) => ({ ...fallbackSlug, locale })); // Clone only for missing locales\n });\n\n return [...allSlugs, ...missingLocales]; // Merge original and missing slugs\n};\n\nexport default getAllSlugsFromStrapi;\n","export const API_URI =\n process.env.NEXT_PUBLIC_API_URI || 'http://localhost:4001';\nexport const FPM_API_URI =\n process.env.NEXT_PUBLIC_FPM_API_URI || 'https://api.fpm.t-staging.com';\nexport const CDN_URI = 'https://cdn.tree.ly';\n","import axios from 'axios';\nimport qs from 'qs';\nimport { setupCache } from 'axios-cache-interceptor';\nimport { FPM_API_URI } from '../constants/api';\n\nconst fpmClient = setupCache(\n axios.create({\n baseURL: `${FPM_API_URI}/v1`,\n paramsSerializer: (p) => qs.stringify(p, { encodeValuesOnly: true }),\n timeout: 5000,\n }),\n {\n ttl:\n FPM_API_URI.includes('127.0.0.1') || FPM_API_URI.includes('localhost')\n ? 0\n : 10 * 60 * 1000, // 10 minutes\n }\n);\n\nexport default fpmClient;\n","import { IStrapiData, IStrapiResponse, StrapiProject } from '../..';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n} from '../../constants/strapi';\nimport strapiClient from './strapiClient';\n\nconst FALLBACK_LOCALE = 'en';\n\nconst getStrapiProjects = async (\n locale: string = 'en',\n pLevel: string = STRAPI_DEFAULT_POPULATE_DEPTH,\n preview: boolean = false\n): Promise<Map<string, IStrapiData<StrapiProject>>> => {\n const cache = preview ? false : undefined;\n const strapiParams: Record<string, any> = {\n pLevel,\n locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n status: preview ? 'draft' : 'published',\n };\n\n const strapiProjects = new Map<string, IStrapiData<StrapiProject>>();\n\n try {\n const [strapiProjectsLocalized, strapiProjectsEnglish] = await Promise.all([\n strapiClient.get<IStrapiResponse<IStrapiData<StrapiProject>[]>>(\n '/projects',\n { params: strapiParams, cache }\n ),\n strapiClient.get<IStrapiResponse<IStrapiData<StrapiProject>[]>>(\n '/projects',\n {\n params: { ...strapiParams, locale: FALLBACK_LOCALE },\n cache,\n }\n ),\n ]);\n\n // Process Strapi data if we got it\n for (const project of [\n ...strapiProjectsEnglish.data.data,\n ...strapiProjectsLocalized.data.data,\n ]) {\n if (project.attributes.fpmProjectId) {\n strapiProjects.set(project.attributes.fpmProjectId, project);\n }\n }\n } catch (error) {\n console.warn('Failed to fetch Strapi data:', error);\n // Return empty map on failure\n }\n\n return strapiProjects;\n};\n\nexport default getStrapiProjects;\n","import { PortfolioProject } from '../..';\nimport { STRAPI_DEFAULT_POPULATE_DEPTH } from '../../constants/strapi';\nimport FPMProject from '../../models/fpm/FPMProject';\nimport fpmClient from '../fpmClient';\nimport getStrapiProjects from './getStrapiProjects';\n\nconst getPortfolioProjects = async (\n locale: string = 'en',\n preview: boolean = false\n): Promise<PortfolioProject[]> => {\n const cache = preview ? false : undefined;\n\n const [{ data: fpmProjects }, strapiProjects] = await Promise.all([\n fpmClient.get<FPMProject[]>('/public/projects', { cache }),\n getStrapiProjects(locale, STRAPI_DEFAULT_POPULATE_DEPTH, preview),\n ]);\n\n return fpmProjects.map((fpmProject: FPMProject) => {\n const strapiProject = strapiProjects.get(fpmProject.id);\n\n const toReturn: PortfolioProject = fpmProject;\n\n if (strapiProject?.attributes.slug) {\n toReturn.slug = strapiProject.attributes.slug;\n }\n if (strapiProject?.attributes.thumbnail) {\n toReturn.thumbnail = strapiProject?.attributes.thumbnail;\n }\n if (strapiProject?.attributes.portfolio.data?.attributes.host) {\n toReturn.portfolioHost =\n strapiProject.attributes.portfolio.data.attributes.host;\n }\n\n return toReturn;\n });\n};\n\nexport default getPortfolioProjects;\n","import strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport LocalizedEntity from '../../models/LocalizedEntity';\n\ninterface Options {\n locale?: string;\n slug?: string;\n preview?: boolean;\n filters?: Record<string, any>;\n}\n\nconst getStrapiCollectionType = async <\n T extends LocalizedEntity<K>,\n K extends string\n>(\n path: string,\n key: K,\n { locale = 'en', preview = false, filters = {} }: Options\n): Promise<IStrapiData<T>[]> => {\n const cache = preview ? false : undefined;\n\n const sharedParams = {\n pLevel: STRAPI_DEFAULT_POPULATE_DEPTH,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n status: preview ? 'draft' : 'published',\n };\n\n const requestedLocaleData = await strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n ...sharedParams,\n locale,\n },\n cache,\n })\n .then((response) => response.data.data)\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n });\n\n const fallbackLocaleData = await strapiClient\n .get<IStrapiResponse<IStrapiData<T>[]>>(path, {\n params: {\n ...sharedParams,\n locale: STRAPI_FALLBACK_LOCALE,\n },\n cache,\n })\n .then((response) => response.data.data)\n // when a collection type for a requested locale does not exist, Strapi returns a 404. In this case, we return an empty array instead of throwing an error\n .catch((error) => {\n if (error.response?.status === 404) {\n return [];\n }\n throw error;\n });\n\n const results = fallbackLocaleData.map((fallbackLocaleDataEntry) => {\n const requestedLocale = requestedLocaleData.find(\n (localized) =>\n localized.attributes[key] === fallbackLocaleDataEntry.attributes[key]\n );\n\n return requestedLocale || fallbackLocaleDataEntry;\n });\n\n return results;\n};\n\nexport default getStrapiCollectionType;\n","import { AxiosResponse } from 'axios';\nimport strapiClient from './strapiClient';\nimport {\n STRAPI_DEFAULT_PAGE_SIZE,\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_FALLBACK_LOCALE,\n} from '../../constants/strapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\n\ninterface Options {\n locale?: string;\n preview?: boolean;\n filters?: Record<string, any>;\n}\n\nconst getStrapiSingleType = async <T>(\n path: string,\n { locale = 'en', preview = false, filters = {} }: Options\n): Promise<IStrapiData<T>> => {\n const cache = preview ? false : undefined;\n const params: Record<string, any> = {\n pLevel: STRAPI_DEFAULT_POPULATE_DEPTH,\n locale,\n 'pagination[pageSize]': STRAPI_DEFAULT_PAGE_SIZE,\n filters,\n status: preview ? 'draft' : 'published',\n };\n\n let response: AxiosResponse<IStrapiResponse<IStrapiData<T>>>;\n\n try {\n response = await strapiClient.get(path, { params, cache });\n return response.data.data;\n } catch (error: any) {\n if (error.isAxiosError && error.response?.status === 404) {\n // Retry request with fallback locale\n response = await strapiClient.get(path, {\n params: { ...params, locale: STRAPI_FALLBACK_LOCALE },\n cache,\n });\n\n return response.data.data;\n }\n\n throw error;\n }\n};\n\nexport default getStrapiSingleType;\n","import { STRAPI_URI } from '../constants/strapi';\nimport IStrapi from '../models/strapi/IStrapi';\nimport IStrapiData from '../models/strapi/IStrapiData';\nimport StrapiMedia from '../models/strapi/StrapiMedia';\n\nconst strapiMediaUrl = (\n media: IStrapi<IStrapiData<StrapiMedia>>,\n preferredSize:\n | 'native'\n | 'thumbnail'\n | 'xSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xLarge' = 'native'\n): string => {\n let { url } = media.data.attributes || {};\n if (preferredSize !== 'native' && media.data.attributes.ext !== '.svg') {\n url = media.data.attributes.formats[preferredSize]?.url || url;\n }\n if (url && (url.indexOf('http://') === 0 || url.indexOf('https://') === 0)) {\n return url;\n }\n return `${\n STRAPI_URI.includes('127.0.0.1') || STRAPI_URI.includes('localhost')\n ? STRAPI_URI\n : ''\n }${url}`;\n};\n\nexport default strapiMediaUrl;\n","export const DEFAULT_SHARE_IMAGE =\n 'https://cdn.tree.ly/assets/v3/app/share-image-generic.webp';\nexport const DEFAULT_SHARE_ALT = 'Share Image';\n","export const EXTENDABLE_HEADER_SECTIONS = [\n 'sections.hero',\n 'sections.map-hero',\n 'sections.full-width-image',\n 'sections.small-hero',\n 'sections.small-hero-light',\n];\nexport const DARK_THEME_HEADER_SECTIONS = [\n 'sections.hero',\n 'sections.small-hero',\n];\nexport const SLICES_WITH_BLOG_POSTS = ['sections.blog', 'sections.blog-cards'];\nexport const SLICES_WITH_CUSTOMER_STORIES = ['sections.customer-stories'];\nexport const SLICES_WITH_PROJECTS = [\n 'sections.projects-grid',\n 'sections.projects-map',\n 'sections.project-facts',\n 'sections.text-with-card',\n];\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiBlogPostProps,\n StrapiGlobal,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\nimport {\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\n\nconst mergeGlobalAndStrapiBlogPostData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n post: IStrapiData<StrapiBlogPost>,\n blog: IStrapiData<StrapiBlogPost>[],\n projects: PortfolioProject[]\n): StrapiBlogPostProps => {\n const metaShareImageUrl = post.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n post.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n post.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlog = post.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnProjects = post.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...post,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiBlogPost\n attributes: {\n ...post?.attributes,\n metadata: post?.attributes?.metadata || global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: true,\n theme: 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n post.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n post.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n post.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: post?.attributes.slices,\n blogPosts: returnBlog ? blog : [],\n banner: global.attributes.banner,\n topBanner: post?.attributes.topBanner || global.attributes.topBanner,\n customerStories: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== post.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiBlogPostData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiCustomerStory,\n StrapiCustomerStoryProps,\n StrapiGlobal,\n} from '..';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\nimport { SLICES_WITH_CUSTOMER_STORIES } from '../constants/slicesConfig';\n\nconst mergeGlobalAndStrapiCustomerStoryData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n customerStory: IStrapiData<StrapiCustomerStory>,\n customerStories: IStrapiData<StrapiCustomerStory>[]\n): StrapiCustomerStoryProps => {\n const metaShareImageUrl = customerStory.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n customerStory.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n customerStory.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnCustomerStories = customerStory.attributes.slices.some((slice) =>\n SLICES_WITH_CUSTOMER_STORIES.includes(slice.__component)\n );\n\n return {\n ...customerStory,\n // Portfolio Projects\n projects: [],\n attributes: {\n ...customerStory?.attributes,\n metadata:\n customerStory?.attributes?.metadata || global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: true,\n theme: 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n customerStory.attributes.metadata?.title ??\n global.attributes.metadata.title,\n description:\n customerStory.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n customerStory.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: customerStory?.attributes.slices,\n customerStories: returnCustomerStories ? customerStories : [],\n banner: global.attributes.banner,\n topBanner:\n customerStory?.attributes.topBanner || global.attributes.topBanner,\n blogPosts: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== customerStory.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiCustomerStoryData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiCustomerStory,\n StrapiGlobal,\n StrapiPage,\n StrapiPageProps,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport {\n DARK_THEME_HEADER_SECTIONS,\n EXTENDABLE_HEADER_SECTIONS,\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_CUSTOMER_STORIES,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\n\nconst mergeGlobalAndStrapiPageData = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n page: IStrapiData<StrapiPage>,\n blogPosts: IStrapiData<StrapiBlogPost>[],\n customerStories: IStrapiData<StrapiCustomerStory>[],\n projects: PortfolioProject[]\n): StrapiPageProps => {\n const metaShareImageUrl = page.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n page.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n page.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlogPosts = page.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnCustomerStories = page.attributes.slices.some((slice) =>\n SLICES_WITH_CUSTOMER_STORIES.includes(slice.__component)\n );\n const returnProjects = page.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...page,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiPage\n attributes: {\n ...page?.attributes,\n metadata: page?.attributes?.metadata ?? global.attributes.metadata,\n },\n // PageProps\n headerType: {\n extendable: EXTENDABLE_HEADER_SECTIONS.includes(\n page.attributes.slices[0]?.__component\n ),\n theme: DARK_THEME_HEADER_SECTIONS.includes(\n page.attributes.slices[0]?.__component\n )\n ? 'dark'\n : 'light',\n },\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n page.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n page.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n page.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: page?.attributes.slices,\n blogPosts: returnBlogPosts ? blogPosts : [],\n banner: global.attributes.banner,\n topBanner: page?.attributes.topBanner || global.attributes.topBanner,\n customerStories: returnCustomerStories ? customerStories : [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== page.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiPageData;\n","import { GetStaticPropsContext } from 'next';\nimport strapiMediaUrl from './strapiMediaUrl';\nimport {\n IStrapiData,\n StrapiBlogPost,\n StrapiGlobal,\n StrapiProject,\n StrapiProjectProps,\n} from '..';\nimport PortfolioProject from '../models/PortfolioProject';\nimport {\n DARK_THEME_HEADER_SECTIONS,\n EXTENDABLE_HEADER_SECTIONS,\n SLICES_WITH_BLOG_POSTS,\n SLICES_WITH_PROJECTS,\n} from '../constants/slicesConfig';\nimport { DEFAULT_SHARE_ALT, DEFAULT_SHARE_IMAGE } from '../constants/metadata';\n\nconst mergeGlobalAndStrapiProject = (\n context: GetStaticPropsContext,\n global: IStrapiData<StrapiGlobal>,\n project: IStrapiData<StrapiProject>,\n blogPosts: IStrapiData<StrapiBlogPost>[],\n projects: PortfolioProject[]\n): StrapiProjectProps => {\n const metaShareImageUrl = project.attributes.metadata?.shareImage\n ? strapiMediaUrl(\n project.attributes.metadata?.shareImage.media ??\n global.attributes.metadata.shareImage?.media,\n 'large'\n )\n : DEFAULT_SHARE_IMAGE;\n\n const schemaMarkupTypes =\n project.attributes.metadata?.schemaMarkupTypes ??\n global.attributes.metadata?.schemaMarkupTypes ??\n [];\n\n const returnBlogPosts = project.attributes.slices.some((slice) =>\n SLICES_WITH_BLOG_POSTS.includes(slice.__component)\n );\n const returnProjects = project.attributes.slices.some((slice) =>\n SLICES_WITH_PROJECTS.includes(slice.__component)\n );\n\n return {\n ...project,\n // Portfolio Projects\n projects: returnProjects ? projects : [],\n // StrapiProject\n attributes: {\n ...project.attributes,\n metadata: project?.attributes?.metadata || global.attributes.metadata,\n },\n headerType: {\n extendable: EXTENDABLE_HEADER_SECTIONS.includes(\n project.attributes.slices[0]?.__component\n ),\n theme: DARK_THEME_HEADER_SECTIONS.includes(\n project.attributes.slices[0]?.__component\n )\n ? 'dark'\n : 'light',\n },\n // PageProps\n headerNavMenus: global.attributes.navbar.navMenus || [],\n headerButtons: global.attributes.navbar.buttons || [],\n footerLinks: global.attributes.footer.links || [],\n metadata: {\n title:\n project.attributes.metadata?.title ?? global.attributes.metadata.title,\n description:\n project.attributes.metadata?.description ??\n global.attributes.metadata.description,\n shareImage: {\n url: metaShareImageUrl,\n alt:\n project.attributes.metadata?.shareImage?.alt ??\n global.attributes.metadata.shareImage?.alt ??\n DEFAULT_SHARE_ALT,\n },\n metaTitleSuffix: global.attributes.metaTitleSuffix,\n favicon: strapiMediaUrl(global.attributes.favicon, 'thumbnail'),\n schemaMarkupTypes,\n },\n slices: project.attributes.slices,\n blogPosts: returnBlogPosts ? blogPosts : [],\n banner: global.attributes.banner,\n topBanner: project?.attributes.topBanner || global.attributes.topBanner,\n customerStories: [],\n preview: !!context.preview,\n isFallbackLocale: context.locale !== project.attributes.locale,\n };\n};\n\nexport default mergeGlobalAndStrapiProject;\n","import StrapiLink from '../models/strapi/StrapiLink';\n\nconst strapiLinkUrl = (\n strapiLink: StrapiLink | undefined = undefined\n): string => {\n if (strapiLink?.page?.data) {\n return `/${strapiLink.page.data.attributes.slug}`;\n }\n\n return strapiLink?.url || '/';\n};\n\nexport default strapiLinkUrl;\n","import React from 'react';\nimport { BoemlyAlert, Box } from 'boemly';\n\nexport const PreviewAlert = (): JSX.Element => {\n return (\n <Box position=\"fixed\" top=\"4\" left=\"4\">\n <BoemlyAlert text=\"Preview\" status=\"error\" />\n </Box>\n );\n};\n","import React from 'react';\nimport Head from 'next/head';\nimport {\n DEFAULT_SHARE_ALT,\n DEFAULT_SHARE_IMAGE,\n} from '../../constants/metadata';\nimport {\n Article,\n BlogPosting,\n Brand,\n BreadcrumbList,\n Event,\n FAQPage,\n HowTo,\n LocalBusiness,\n Offer,\n Organization,\n Person,\n Product,\n QAPage,\n Service,\n SoftwareApplication,\n WebPage,\n WithContext,\n} from 'schema-dts';\n\ntype SupportedSchemaType =\n | Article\n | BlogPosting\n | Brand\n | BreadcrumbList\n | Event\n | FAQPage\n | HowTo\n | LocalBusiness\n | Offer\n | Organization\n | Person\n | Product\n | QAPage\n | Product\n | Service\n | SoftwareApplication\n | WebPage;\n\n// Helper function to convert SchemaValue to string\nconst getTextValue = (value: unknown): string => {\n if (typeof value === 'string') return value;\n if (typeof value === 'object' && value !== null && 'text' in value) {\n return (value as { text: string }).text;\n }\n return '';\n};\n\n// Helper function to safely access properties from a schema\nconst getSchemaProperty = (\n schema: SupportedSchemaType,\n property: string\n): string => {\n return (\n getTextValue((schema as unknown as Record<string, unknown>)[property]) || ''\n );\n};\n\n// Helper function to get a unique identifier from a schema\nconst getSchemaIdentifier = (schema: SupportedSchemaType): string => {\n const type = (schema as { '@type': string })['@type'];\n\n switch (type) {\n case 'Organization':\n return getSchemaProperty(schema, 'name') || 'default';\n case 'Article':\n case 'BlogPosting':\n return getSchemaProperty(schema, 'headline') || 'untitled-article';\n case 'Product':\n return getSchemaProperty(schema, 'name') || 'untitled-product';\n case 'Person':\n return getSchemaProperty(schema, 'name') || 'unnamed-person';\n case 'Event':\n return getSchemaProperty(schema, 'name') || 'untitled-event';\n case 'LocalBusiness':\n return getSchemaProperty(schema, 'name') || 'unnamed-business';\n case 'Service':\n return getSchemaProperty(schema, 'name') || 'unnamed-service';\n case 'Brand':\n return getSchemaProperty(schema, 'name') || 'unnamed-brand';\n case 'FAQPage':\n return 'faq-page';\n case 'HowTo':\n return getSchemaProperty(schema, 'name') || 'untitled-howto';\n case 'BreadcrumbList':\n return 'breadcrumbs';\n case 'Offer':\n const offer = schema as Offer;\n return `offer-${offer.price ?? 'unknown-price'}`;\n case 'WebPage':\n return getSchemaProperty(schema, 'name') || 'untitled-page';\n case 'QAPage':\n return getSchemaProperty(schema, 'name') || 'untitled-qa';\n case 'SoftwareApplication':\n return getSchemaProperty(schema, 'name') || 'untitled-software';\n default:\n return 'unknown-schema';\n }\n};\n\ninterface SEOTagsProps {\n title: string;\n description: string;\n shareImage?: {\n url: string;\n alt: string;\n };\n metaTitleSuffix?: string;\n favicon?: string;\n domain?: string;\n /**\n * Structured data for SEO purposes, following the schema.org standard.\n * This can be a single schema object or an array of schema objects.\n * Each object must include an `@context` property set to \"https://schema.org\"\n * and an `@type` property indicating the type of schema (e.g., Article, Product).\n */\n schemaMarkup?:\n | WithContext<SupportedSchemaType>\n | WithContext<SupportedSchemaType>[];\n}\n\nconst validateSchema = (\n schema: WithContext<SupportedSchemaType> | WithContext<SupportedSchemaType>[]\n): boolean => {\n if (Array.isArray(schema)) {\n return schema.every(\n (item) => item['@context'] === 'https://schema.org' && '@type' in item\n );\n }\n return schema['@context'] === 'https://schema.org' && '@type' in schema;\n};\n\nexport const SEOTags: React.FC<SEOTagsProps> = ({\n title,\n description,\n shareImage,\n metaTitleSuffix = 'Tree.ly',\n favicon = 'https://cdn.tree.ly/favicon.ico',\n domain = 'tree.ly',\n schemaMarkup,\n}: SEOTagsProps) => {\n const shareImageUrl = shareImage?.url ?? DEFAULT_SHARE_IMAGE;\n const shareImageAlt = shareImage?.alt ?? DEFAULT_SHARE_ALT;\n\n let schemas = schemaMarkup;\n let isValidSchema = schemaMarkup ? validateSchema(schemaMarkup) : false;\n\n if (schemaMarkup && !isValidSchema) {\n console.warn(\n 'Invalid schema markup provided to SEOTags component. Schema markup will not be rendered.',\n schemaMarkup\n );\n schemas = undefined;\n isValidSchema = false;\n }\n\n const schemaArray = schemas\n ? Array.isArray(schemas)\n ? schemas\n : [schemas]\n : [];\n\n const getSchemaKey = (\n schema: WithContext<SupportedSchemaType>,\n index: number\n ): string => {\n const type = (schema as { '@type': string })['@type'];\n const identifier = getSchemaIdentifier(schema as SupportedSchemaType);\n return `${type}-${identifier}-${index}`;\n };\n\n return (\n <Head>\n <title>{`${title} - ${metaTitleSuffix}`}</title>\n <meta name=\"description\" content={description} />\n <link rel=\"icon\" href={favicon} />\n\n <meta property=\"og:url\" content={`https://${domain}`} />\n <meta property=\"og:type\" content=\"website\" />\n <meta property=\"og:title\" content={title} />\n <meta property=\"og:description\" content={description} />\n <meta property=\"og:image\" content={shareImageUrl} />\n <meta property=\"og:image:alt\" content={shareImageAlt} />\n\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta property=\"twitter:domain\" content={domain} />\n <meta property=\"twitter:url\" content={`https://${domain}`} />\n <meta name=\"twitter:title\" content={title} />\n <meta name=\"twitter:description\" content={description} />\n <meta name=\"twitter:image\" content={shareImageUrl} />\n <meta name=\"twitter:image:alt\" content={shareImageAlt} />\n\n {isValidSchema &&\n schemaArray.map((schema, index) => (\n <script\n key={getSchemaKey(schema, index)}\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(schema),\n }}\n />\n ))}\n </Head>\n );\n};\n","import StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { Box } from 'boemly';\nimport Head from 'next/head';\nimport Image from 'next/image';\nimport React, { useState } from 'react';\n\ninterface ZoomableImageProps {\n image: StrapiImage;\n zoom?: number;\n}\n\nconst ZoomableImage = ({ image, zoom = 200 }: ZoomableImageProps) => {\n // define and set default values to the states of the component\n const [isZoomed, setIsZoomed] = useState(false);\n const [backgroundPos, setBackgroundPos] = useState('50% 50%');\n\n const imageSrc = strapiMediaUrl(image.img, 'xLarge');\n\n const zoomInPosition = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n // This will handle the calculations of the area where the image needs to zoom in depending on the user interaction\n const zoomer = e.currentTarget.getBoundingClientRect();\n const x = ((e.clientX - zoomer.x) / zoomer.width) * 100;\n const y = ((e.clientY - zoomer.y) / zoomer.height) * 100;\n setBackgroundPos(`${x}% ${y}%`);\n };\n\n const toggleZoomImage = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n setIsZoomed(false);\n } else {\n // Zoom in and set the background position correctly\n setIsZoomed(true);\n zoomInPosition(e);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n toggleZoomImage(e);\n };\n\n const handleMove = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (isZoomed) {\n zoomInPosition(e);\n }\n };\n\n return (\n <>\n <Head>\n <link rel=\"prefetch\" as=\"image\" href={imageSrc} />\n </Head>\n <Box\n position=\"relative\"\n display=\"inline-block\"\n width=\"full\"\n height=\"full\"\n overflow=\"hidden\"\n flexShrink=\"0\"\n scrollSnapAlign=\"center\"\n scrollSnapStop=\"always\"\n draggable=\"false\"\n cursor={isZoomed ? 'zoom-out' : 'zoom-in'}\n backgroundImage={isZoomed ? `url( ${imageSrc} )` : 'none'}\n backgroundSize={`${zoom}%`}\n backgroundPosition={backgroundPos}\n onClick={(e) => handleClick(e)}\n onMouseMove={(e) => handleMove(e)}\n >\n <Image\n src={imageSrc}\n alt={image.alt}\n fill\n style={{\n visibility: isZoomed ? 'hidden' : 'visible',\n objectFit: 'contain',\n }}\n />\n </Box>\n </>\n );\n};\n\nexport default ZoomableImage;\n","import React, { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { BoemlyModal, Flex, IconButton } from 'boemly';\nimport { useKey, useLockBodyScroll } from 'react-use';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\nimport ZoomableImage from './ZoomableImage';\n\nexport interface FullScreenImageProps {\n images: StrapiImage[];\n isOpen: boolean;\n onClose: () => void;\n currentIndex?: number;\n setCurrentIndex?: (callback: (c: number) => number) => void;\n}\n\nexport const FullScreenImage = ({\n images,\n isOpen,\n onClose,\n currentIndex = 0,\n setCurrentIndex,\n}: FullScreenImageProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n useLockBodyScroll(isOpen);\n\n const canMoveRight = useMemo(\n () => currentIndex < images.length - 1,\n [currentIndex, images.length]\n );\n const canMoveLeft = useMemo(() => currentIndex !== 0, [currentIndex]);\n\n const onRight = useCallback(\n () => canMoveRight && setCurrentIndex && setCurrentIndex((c) => c + 1),\n [canMoveRight]\n );\n const onLeft = useCallback(\n () => canMoveLeft && setCurrentIndex && setCurrentIndex((c) => c - 1),\n [canMoveLeft]\n );\n\n useKey('ArrowRight', onRight, {}, [onRight]);\n useKey('ArrowLeft', onLeft, {}, [onLeft]);\n\n useEffect(() => {\n if (!!isOpen) {\n setTimeout(() => {\n containerRef?.current?.scrollTo({\n left: currentIndex * containerRef.current.clientWidth,\n behavior: 'instant',\n });\n }, 10);\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollTo({\n left: currentIndex * containerRef.current.clientWidth,\n behavior: 'smooth',\n });\n }\n }, [currentIndex, containerRef]);\n\n return (\n <BoemlyModal\n onClose={onClose}\n isOpen={isOpen}\n title=\"\"\n trigger=\"\"\n size=\"full\"\n content={\n <Flex\n position=\"absolute\"\n insetY=\"16\"\n insetX=\"0\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Flex\n ref={containerRef}\n flexGrow=\"1\"\n flexBasis=\"100%\"\n flexShrink=\"1\"\n gap=\"4\"\n marginX=\"24\"\n scrollSnapType=\"x mandatory\"\n overflow=\"hidden\"\n position=\"relative\"\n height=\"full\"\n width=\"full\"\n >\n {images.map((image) => (\n <ZoomableImage key={image.id} image={image} />\n ))}\n </Flex>\n\n <Flex\n position=\"absolute\"\n inset=\"6\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n pointerEvents=\"none\"\n >\n <IconButton\n visibility={canMoveLeft ? 'visible' : 'hidden'}\n onClick={onLeft}\n icon={<CaretLeft size={16} />}\n aria-label=\"Previous picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n mr=\"6\"\n />\n\n <IconButton\n visibility={canMoveRight ? 'visible' : 'hidden'}\n onClick={onRight}\n icon={<CaretRight size={16} />}\n aria-label=\"Next picture\"\n variant=\"outline\"\n pointerEvents=\"all\"\n ml=\"4\"\n />\n </Flex>\n </Flex>\n }\n />\n );\n};\n","export const BREAKPOINT_SM = `${320 - 1}px`;\nexport const BREAKPOINT_MD = `${768 - 1}px`;\nexport const BREAKPOINT_LG = `${960 - 1}px`;\nexport const BREAKPOINT_XL = `${1200 - 1}px`;\n\nexport const BREAKPOINT_SM_QUERY = `(max-width: ${BREAKPOINT_SM})`;\nexport const BREAKPOINT_MD_QUERY = `(max-width: ${BREAKPOINT_MD})`;\nexport const BREAKPOINT_LG_QUERY = `(max-width: ${BREAKPOINT_LG})`;\nexport const BREAKPOINT_XL_QUERY = `(max-width: ${BREAKPOINT_XL})`;\n","import React, { useState } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\n\ninterface FullWidthImageSlice extends StrapiDefaultHeader {\n image: StrapiImage;\n}\nexport interface FullWidthImageProps {\n slice: FullWidthImageSlice;\n}\n\nexport const FullWidthImage: React.FC<FullWidthImageProps> = ({\n slice,\n}: FullWidthImageProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', mt: ['32', null, null, '56'] }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '3xl', marginX: 'auto' }}\n />\n\n <Box position=\"relative\" mt=\"20\" height={['3xs', null, 'xl']}>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{\n objectFit: slice.image.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n borderRadius: 'var(--boemly-radii-2xl)',\n }}\n onClick={() => !isMobile && setIsOpen(true)}\n />\n\n <FullScreenImage\n images={[slice.image]}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","const openHubSpotChat = () => {\n const w = window as any;\n\n if (w.HubSpotConversations) {\n w.HubSpotConversations.widget.open();\n } else {\n w.hsConversationsOnReady = [\n () => {\n w.HubSpotConversations.widget.open();\n },\n ];\n }\n};\n\nexport default openHubSpotChat;\n","import { css } from '@emotion/react';\n\nexport const GLOBAL_STYLE = css`\n :root {\n --default-hero-height: calc(100vh - var(--boemly-space-24));\n }\n\n a {\n text-decoration: none;\n }\n`;\n","const messagesDe = {\n 'sections.comparison.backgroundShapes': 'Hintergrundformen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'components.creditsAvailableBadge.text.yes': 'Credits verfügbar',\n 'components.creditsAvailableBadge.text.some': 'Einige verbleibende Credits',\n 'components.creditsAvailableBadge.text.no': 'Keine verbleibenden Credits',\n 'components.creditsAvailableBadge.text.notYet': 'Credits bald verfügbar',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.cta.backgroundShapes': 'Dunkle Hintergrundformen',\n 'sections.cta.backgroundShapesLight': 'Helle Hintergrundformen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.customerCard.more': 'Weiterlesen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.customerQuoteCard.more': 'Weiterlesen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.eventCard.recommendedEvent': 'Empfohlene Veranstaltung',\n 'sections.eventCard.buttonShowMore': 'Mehr anzeigen',\n 'sections.eventCard.buttonShowLess': 'Weniger anzeigen',\n\n 'sections.eventCard.eventType.conference': 'Konferenz',\n 'sections.eventCard.eventType.webinar': 'Webinar',\n 'sections.eventCard.eventType.forestwalk': 'Waldspaziergang',\n 'sections.eventCard.eventType.partnerevent': 'Partnerveranstaltung',\n 'sections.eventCard.eventType.lunch&learn': 'Mittagessen & Lernen',\n 'sections.eventCard.eventType.fair': 'Messe',\n 'sections.eventCard.eventType.festival': 'Festival',\n 'sections.eventCard.eventType.roadshow': 'Roadshow',\n 'sections.eventCard.eventType.meetup': 'Meet Up',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.events.loadMore': 'Mehr laden',\n 'sections.events.noUpcomingEvents':\n 'Keine bevorstehenden Veranstaltungen gefunden',\n 'sections.events.noPastEvents': 'Keine vergangenen Veranstaltungen gefunden',\n 'sections.eventsFilter.searchPlaceholder': 'Suchen',\n 'sections.events.eventsFilter.eventType': 'Event Type',\n 'sections.events.eventsFilter.language': 'Sprache',\n 'sections.events.eventsFilter.sortBy.title': 'Sortieren nach',\n 'sections.events.eventsFilter.sortBy.newest': 'Neueste zuerst',\n 'sections.events.eventsFilter.sortBy.oldest': 'Älteste zuerst',\n};\n\nexport default messagesDe;\n","const messagesDe = {\n 'sections.glossary.copyButtonLabel':\n 'Kopiere den Link zu diesem Abschnitt in die Zwischenablage',\n 'sections.glossary.copySuccessMessage': 'Link in die Zwischenablage kopiert',\n 'sections.glossary.copyFailureMessage':\n 'Link konnte nicht in die Zwischenablage kopiert werden',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Projektdokumente',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Dokument herunterladen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.projectFacts.projectInfo.value': 'Projekt Infos',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'components.projectGridCard.certified': 'Zertifiziert, {year}',\n 'components.projectGridCard.certificationInProgress':\n 'Zertifizierung ist in Arbeit',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.projectsMap.link.text': 'Mehr Infos',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'features.projectInfo.projectInfo.value': 'Projekt Infos',\n 'features.projectInfo.properties.area': 'Projekt Fläche',\n 'features.projectInfo.properties.location': 'Standort',\n 'features.projectInfo.properties.start': 'Projekt Start Datum',\n 'features.projectInfo.properties.timeSpan': 'Projekt Zeitraum',\n 'features.projectInfo.properties.projectType': 'Projekt Typ',\n 'features.projectInfo.properties.projectDeveloper': 'Projekt Entwickler',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verifizierungsstandard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.verificationStandard.value.MfKWCH':\n 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',\n 'features.projectInfo.properties.projectVolume.toolTip':\n 'Dies ist die durchschnittliche Anzahl der Credits, die pro Jahr ausgestellt werden. Dieser Wert entspricht nicht den Verfügbarkeiten.',\n 'features.projectInfo.properties.projectVolume.label': 'Projektvolumen',\n 'features.projectInfo.properties.riskBuffer': 'Anteil Risikopuffer',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {Jahr} other {Jahre} }',\n};\n\nexport default messagesDe;\n","const messagesDe = {\n 'portfolio.smallCheckout.price.taxNotIncluded': 'ohne Steuern',\n 'portfolio.smallCheckout.price.taxIncluded':\n 'Preis inklusive Steuern: {number}',\n\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Geben Sie den Beitrag in Fr. ein',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Geben Sie den Beitrag in € ein',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'Fr.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'Der Wert muss mindestens 10 CHF betragen',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'Der Wert muss mindestens 10 Euro betragen.',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Bitte geben Sie einen Wert ein',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam',\n\n 'portfolio.smallCheckout.contributionValueTons.label': 'Beitrag in Tonnen',\n\n 'portfolio.smallCheckout.submitButton': 'Credits kaufen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.shopCheckout.intro.price': 'Preis',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Geben sie einen Betrag in € ein',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Geben sie einen Betrag in CHF ein',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Bitte geben sie einen Betrag ein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'Für größere Einkäufe kontaktieren Sie bitte unser Verkaufsteam über office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Menge',\n 'sections.shopCheckout.summary.price': 'Preis',\n 'sections.shopCheckout.summary.price.taxNotIncluded': 'ohne Steuern',\n 'sections.shopCheckout.summary.price.taxIncluded':\n 'Preis inklusive Steuern: {number}',\n\n 'sections.shopCheckout.submit': 'Kaufen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.textCarousel.moveRight': 'Nach rechts bewegen',\n 'sections.textCarousel.moveLeft': 'Nach links bewegen',\n};\nexport default messagesDe;\n","const messagesDe = {\n 'sections.timeline.backgroundShapes': 'Hintergrundformen',\n 'sections.timeline.showMoreButton': 'Drei weitere Meilensteine anzeigen',\n};\nexport default messagesDe;\n","const unitMessagesDe = {\n 'unit.formatter.tonsCo2': '{number} /tCO₂',\n 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/Jahr',\n};\nexport default unitMessagesDe;\n","import comparisonMessagesDe from './slices/Comparison/messages.de';\nimport creditsAvailableBadgeMessagesDe from './components/CreditsAvailableBadge/messages.de';\nimport ctaMessagesDe from './slices/Cta/messages.de';\nimport customerCardMessagesDe from './components/CustomerCard/messages.de';\nimport customerQuoteCardMessagesDe from './components/CustomerQuoteCard/messages.de';\nimport eventCardMessagesDe from './components/EventCard/messages.de';\nimport eventsMessagesDe from './slices/Events/messages.de';\nimport glossaryMessagesDe from './slices/Glossary/messages.de';\nimport portfolioDocumentsDownloadListMessagesDe from './components/portfolio/DocumentsDownloadList/messages.de';\nimport projectFactsMessagesDe from './slices/ProjectFacts/messages.de';\nimport projectGridCardMessagesDe from './components/ProjectGridCard/messages.de';\nimport projectsMapMessagesDe from './slices/ProjectsMap/messages.de';\nimport portfolioProjectInfoMessagesDe from './components/portfolio/ProjectInfo/messages.de';\nimport portfolioSmallCheckoutMessagesDe from './components/portfolio/SmallCheckout/messages.de';\nimport shopCheckoutMessagesDe from './slices/ShopCheckout/messages.de';\nimport textCarouselMessagesDe from './slices/TextCarousel/messages.de';\nimport timelineMessagesDe from './slices/Timeline/messages.de';\n\nimport unitMessagesDe from './unit.messages.de';\n\nconst rootMessagesDe = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesDe,\n ...eventCardMessagesDe,\n ...portfolioDocumentsDownloadListMessagesDe,\n ...portfolioProjectInfoMessagesDe,\n ...portfolioSmallCheckoutMessagesDe,\n ...projectGridCardMessagesDe,\n\n //\n // Slices\n //\n ...comparisonMessagesDe,\n ...ctaMessagesDe,\n ...customerCardMessagesDe,\n ...customerQuoteCardMessagesDe,\n ...eventsMessagesDe,\n ...glossaryMessagesDe,\n ...projectFactsMessagesDe,\n ...projectsMapMessagesDe,\n ...shopCheckoutMessagesDe,\n ...textCarouselMessagesDe,\n ...timelineMessagesDe,\n\n //\n // Units\n //\n ...unitMessagesDe,\n};\n\nexport default rootMessagesDe;\n","const messagesEn = {\n 'sections.comparison.backgroundShapes': 'Background shapes',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'components.creditsAvailableBadge.text.yes': 'Credits available',\n 'components.creditsAvailableBadge.text.some': 'Some remaining credits',\n 'components.creditsAvailableBadge.text.no': 'No remaining credits',\n 'components.creditsAvailableBadge.text.notYet': 'Credits available soon',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.cta.backgroundShapesDark': 'Dark background shapes',\n 'sections.cta.backgroundShapesLight': 'Light background shapes',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.customerCard.more': 'Read more',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.customerQuoteCard.more': 'Read more',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.eventCard.recommendedEvent': 'Recommended Event',\n 'sections.eventCard.buttonShowMore': 'Show More',\n 'sections.eventCard.buttonShowLess': 'Show Less',\n\n 'sections.eventCard.eventType.conference': 'Conference',\n 'sections.eventCard.eventType.webinar': 'Webinar',\n 'sections.eventCard.eventType.forestwalk': 'Forest Walk',\n 'sections.eventCard.eventType.partnerevent': 'Partner Event',\n 'sections.eventCard.eventType.lunch&learn': 'Lunch & Learn',\n 'sections.eventCard.eventType.fair': 'Fair',\n 'sections.eventCard.eventType.festival': 'Festival',\n 'sections.eventCard.eventType.roadshow': 'Roadshow',\n 'sections.eventCard.eventType.meetup': 'Meet Up',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'sections.events.loadMore': 'Load more',\n 'sections.events.noUpcomingEvents': 'No upcoming events found',\n 'sections.events.noPastEvents': 'No past events found',\n 'sections.events.eventsFilter.searchPlaceholder': 'Search',\n 'sections.events.eventsFilter.eventType': 'Event Type',\n 'sections.events.eventsFilter.language': 'Language',\n 'sections.events.eventsFilter.sortBy.title': 'Sort by',\n 'sections.events.eventsFilter.sortBy.newest': 'Newest first',\n 'sections.events.eventsFilter.sortBy.oldest': 'Oldest first',\n};\n\nexport default messagesDe;\n","const messagesEn = {\n 'sections.glossary.copyButtonLabel':\n 'Copy a link to this section to your clipboard',\n 'sections.glossary.copySuccessMessage': 'Copied the link to your clipboard',\n 'sections.glossary.copyFailureMessage': 'Could not copy link to clipboard',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'features.portfolio.documentsDownloadList.projectDocuments':\n 'Project documents',\n 'features.portfolio.documentsDownloadList.downloadDocument':\n 'Download document',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.projectFacts.projectInfo.value': 'Project Infos',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'components.projectGridCard.certified': 'Certified, {year}',\n 'components.projectGridCard.certificationInProgress':\n 'Certification in progress',\n};\nexport default messagesDe;\n","const messagesEn = {\n 'sections.projectsMap.link.text': 'Show more info',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'features.projectInfo.projectInfo.value': 'Project Infos',\n 'features.projectInfo.properties.area': 'Project Area',\n 'features.projectInfo.properties.location': 'Location',\n 'features.projectInfo.properties.start': 'Project Start Date',\n 'features.projectInfo.properties.timeSpan': 'Project Time Span',\n 'features.projectInfo.properties.projectType': 'Project Type',\n 'features.projectInfo.properties.projectDeveloper': 'Project Developer',\n 'features.projectInfo.properties.verificationStandard.label':\n 'Verification Standard',\n 'features.projectInfo.properties.verificationStandard.value.SilvaconsultFCSISO14':\n 'SILVACONSULT® Forest Carbon Standard, ISO 14064-2',\n 'features.projectInfo.properties.verificationStandard.value.MfKWCH':\n 'Methodik für Klimaschutzprojekte im Wald für die Schweiz',\n 'features.projectInfo.properties.projectVolume.label': 'Project Volume',\n 'features.projectInfo.properties.projectVolume.toolTip':\n \"This is the average amount of credits that are issued per year. This value doesn't represent availabilities.\",\n 'features.projectInfo.properties.riskBuffer': 'Risk Buffer Share',\n\n 'features.projectInfo.properties.year':\n '{years} {years, plural, one {year} other {years} }',\n};\n\nexport default messagesEn;\n","const messagesEn = {\n 'portfolio.smallCheckout.price.taxNotIncluded': 'not including tax',\n 'portfolio.smallCheckout.price.taxIncluded': 'Price including tax: {number}',\n\n 'portfolio.smallCheckout.contributionValueCurrency.label.CHF':\n 'Contribution Amount in CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.label.EUR':\n 'Contribution Amount in €',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.EUR': '€',\n 'portfolio.smallCheckout.contributionValueCurrency.unit.CHF': 'CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.CHF':\n 'The value must be at least 10 CHF',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.EUR':\n 'The value must be at least 10 Euro',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.empty':\n 'Please enter a value',\n 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh':\n 'For bigger purchases please contact our sales team',\n\n 'portfolio.smallCheckout.contributionValueTons.label':\n 'Contribution Amount in Tons',\n\n 'portfolio.smallCheckout.submitButton': 'Buy credits',\n};\nexport default messagesEn;\n","const messagesEn = {\n 'sections.shopCheckout.intro.price': 'Price',\n\n 'sections.shopCheckout.contributionValue.label.EUR':\n 'Enter contribution value in €',\n 'sections.shopCheckout.contributionValue.label.CHF':\n 'Enter contribution value in CHF',\n 'sections.shopCheckout.contributionValue.unit.EUR': '€',\n 'sections.shopCheckout.contributionValue.unit.CHF': 'CHF',\n 'sections.shopCheckout.contributionValue.validation.empty':\n 'Please enter a value',\n 'sections.shopCheckout.contributionValue.validation.tooLow.EUR':\n 'Der Betrag muss mindestens 10 Euro sein',\n 'sections.shopCheckout.contributionValue.validation.tooLow.CHF':\n 'Der Betrag muss mindestens 10 CHF sein',\n 'sections.shopCheckout.contributionValue.validation.tooHigh':\n 'For bigger purchases please contact our sales team via office@tree.ly',\n\n 'sections.shopCheckout.summary.kg': 'Quantity',\n 'sections.shopCheckout.summary.price': 'Price',\n 'sections.shopCheckout.summary.price.taxNotIncluded': 'not including tax',\n 'sections.shopCheckout.summary.price.taxIncluded':\n 'Price including tax: {number}',\n\n 'sections.shopCheckout.submit': 'Checkout',\n};\nexport default messagesEn;\n","const messagesDe = {\n 'sections.textCarousel.moveRight': 'Move right',\n 'sections.textCarousel.moveLeft': 'Move left',\n};\nexport default messagesDe;\n","const messagesEn = {\n 'sections.timeline.backgroundShapes': 'Background shapes',\n 'sections.timeline.showMoreButton': 'Show three more milestones',\n};\nexport default messagesEn;\n","const unitMessagesEn = {\n 'unit.formatter.tonsCo2': '{number} /tCO₂',\n 'unit.formatter.tonsCo2PerYear': '{number} tCO₂/year',\n};\nexport default unitMessagesEn;\n","import comparisonMessagesEn from './slices/Comparison/messages.en';\nimport creditsAvailableBadgeMessagesEn from './components/CreditsAvailableBadge/messages.en';\nimport ctaMessagesEn from './slices/Cta/messages.en';\nimport customerCardMessagesEn from './components/CustomerCard/messages.en';\nimport customerQuoteCardMessagesEn from './components/CustomerQuoteCard/messages.en';\nimport eventCardMessagesEn from './components/EventCard/messages.en';\nimport eventsMessagesEn from './slices/Events/messages.en';\nimport glossaryMessagesEn from './slices/Glossary/messages.en';\nimport portfolioDocumentsDownloadListMessagesEn from './components/portfolio/DocumentsDownloadList/messages.en';\nimport projectFactsMessagesEn from './slices/ProjectFacts/messages.en';\nimport projectGridCardMessagesEn from './components/ProjectGridCard/messages.en';\nimport projectsMapMessagesEn from './slices/ProjectsMap/messages.en';\nimport portfolioProjectInfoMessagesEn from './components/portfolio/ProjectInfo/messages.en';\nimport portfolioSmallCheckoutMessagesEn from './components/portfolio/SmallCheckout/messages.en';\nimport shopCheckoutMessagesEn from './slices/ShopCheckout/messages.en';\nimport textCarouselMessagesEn from './slices/TextCarousel/messages.en';\nimport timelineMessagesEn from './slices/Timeline/messages.en';\n\nimport unitMessagesEn from './unit.messages.en';\n\nconst rootMessagesEn = {\n //\n // Components\n //\n ...creditsAvailableBadgeMessagesEn,\n ...eventCardMessagesEn,\n ...portfolioDocumentsDownloadListMessagesEn,\n ...portfolioProjectInfoMessagesEn,\n ...portfolioSmallCheckoutMessagesEn,\n ...projectGridCardMessagesEn,\n\n //\n // Slices\n //\n ...comparisonMessagesEn,\n ...ctaMessagesEn,\n ...customerCardMessagesEn,\n ...customerQuoteCardMessagesEn,\n ...eventsMessagesEn,\n ...glossaryMessagesEn,\n ...projectFactsMessagesEn,\n ...projectsMapMessagesEn,\n ...shopCheckoutMessagesEn,\n ...textCarouselMessagesEn,\n ...timelineMessagesEn,\n\n //\n // Units\n //\n ...unitMessagesEn,\n};\n\nexport default rootMessagesEn;\n","import { STRAPI_FALLBACK_LOCALE } from '../constants/strapi';\nimport rootMessagesDe from '../rootMessages.de';\nimport rootMessagesEn from '../rootMessages.en';\n\nconst messages = {\n en: rootMessagesEn,\n de: rootMessagesDe,\n};\n\nconst getMessages = (locale: string) => {\n const messagesLocale = Object.keys(messages).includes(`${locale}`)\n ? (locale as keyof typeof messages)\n : STRAPI_FALLBACK_LOCALE;\n\n return messages[messagesLocale];\n};\n\nexport default getMessages;\n","import React, { createContext } from 'react';\nimport { createIntl, createIntlCache } from 'react-intl';\nimport { Global } from '@emotion/react';\nimport { GLOBAL_STYLE } from '../../constants/globalStyle';\nimport getMessages from '../../utils/getMessages';\nimport strapiClient from '../../integrations/strapi/strapiClient';\nimport { SWRConfig } from 'swr/_internal';\n\nexport type AnalyticsFunction = ({\n type,\n props,\n}: {\n type: 'track' | 'page';\n props?: Record<string, any>;\n}) => void;\n\nexport const AnalyticsContext = createContext<AnalyticsFunction | undefined>(\n undefined\n);\n\nconst cache = createIntlCache();\n\nconst intlFactory = (locale: string) =>\n createIntl(\n {\n locale,\n messages: getMessages(locale),\n },\n cache\n );\n\nexport const IntlContext = createContext(intlFactory('en'));\n\nexport interface ContextProviderProps {\n children: React.ReactNode;\n locale: string;\n analyticsFunction?: AnalyticsFunction;\n}\n\nexport const ContextProvider: React.FC<ContextProviderProps> = ({\n children,\n locale,\n analyticsFunction,\n}: ContextProviderProps): JSX.Element => {\n const fetcher = async (resource: any, init: any) => {\n const response = await strapiClient.get(`${resource}`, {\n ...init,\n headers: {},\n });\n // Check if the response was an error:\n if (response.status < 200 || response.status >= 300) {\n let errorData = { message: '' };\n try {\n errorData = await response.data;\n } catch (error) {\n errorData = {\n message: `An unknown error occurred while fetching data.`,\n };\n }\n throw new Error(errorData.message); // Throwing the error will lead to onError being called\n }\n\n return { body: await response.data, headers: response.headers };\n };\n return (\n <>\n <SWRConfig\n value={{\n fetcher,\n }}\n >\n <Global styles={{ GLOBAL_STYLE }} />\n <IntlContext.Provider value={intlFactory(locale)}>\n <AnalyticsContext.Provider value={analyticsFunction}>\n {children}\n </AnalyticsContext.Provider>\n </IntlContext.Provider>\n </SWRConfig>\n </>\n );\n};\n","import React, { useContext } from 'react';\nimport { Button } from 'boemly';\nimport Link from 'next/link';\nimport { useDetectAdBlock } from 'adblock-detect-react';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport openHubSpotChat from '../../utils/openHubSpotChat';\nimport { AnalyticsContext } from '../ContextProvider/ContextProvider';\n\nexport interface StrapiLinkButtonProps {\n link: StrapiLink;\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n variant?: 'solid' | 'outline' | 'outlineWhite' | 'link' | 'ghost';\n colorScheme?: 'primary' | 'gray' | 'orange' | 'green' | 'white';\n rightIcon?: JSX.Element;\n leftIcon?: JSX.Element;\n mt?: any;\n mr?: any;\n mb?: any;\n ml?: any;\n mx?: any;\n my?: any;\n background?: string;\n width?: string;\n component?: string;\n}\n\nexport const StrapiLinkButton: React.FC<StrapiLinkButtonProps> = ({\n link,\n component = 'StrapiLinkButton',\n ...buttonProps\n}: StrapiLinkButtonProps) => {\n const adBlockDetected = useDetectAdBlock();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleClick = () => {\n const buttonUrl =\n link.intercomLauncher && adBlockDetected\n ? 'mailto:hello@tree.ly'\n : strapiLinkUrl(link);\n\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component,\n buttonText: link.text,\n buttonUrl,\n },\n });\n };\n\n if (link.intercomLauncher) {\n if (adBlockDetected) {\n return (\n <Button\n {...buttonProps}\n as={Link}\n href=\"mailto:hello@tree.ly\"\n onClick={handleClick}\n >\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button\n {...buttonProps}\n onClick={() => {\n handleClick();\n openHubSpotChat();\n }}\n >\n {link.text}\n </Button>\n );\n }\n\n return (\n <Button\n {...buttonProps}\n as={Link}\n href={strapiLinkUrl(link)}\n onClick={handleClick}\n >\n {link.text}\n </Button>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionHeader, Flex, Gradient, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\n\nexport interface HeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n additionalButtons: StrapiButtonWithVariant[];\n image?: StrapiImage;\n textAlign: 'left' | 'center';\n shape?: StrapiImage;\n };\n}\n\nexport const Hero = ({ slice }: HeroProps): JSX.Element => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"var(--default-hero-height)\"\n minHeight=\"2xl\"\n backgroundColor=\"gray.900\"\n overflowX=\"hidden\"\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </>\n )}\n {slice.shape && (\n <Box\n position=\"absolute\"\n bottom=\"0\"\n borderTopRightRadius=\"full\"\n width={['3xs', null, '2xs', null, 'sm']}\n height={['3xs', null, '2xs', null, 'sm']}\n right={['-16', null, '24']}\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderTopRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"56%\"\n width=\"full\"\n textAlign={slice.textAlign}\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ color: 'white' }}\n titleProps={{\n color: 'white',\n maxW: slice.textAlign === 'center' ? '4xl' : '3xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n }}\n textProps={{\n maxW: '2xl',\n mx: slice.textAlign === 'center' ? 'auto' : 'unset',\n textAlign: slice.textAlign,\n color: 'white',\n }}\n />\n\n <Flex\n gap=\"8\"\n justifyContent={slice.textAlign === 'center' ? 'center' : 'start'}\n >\n {slice.button && (\n <StrapiLinkButton\n key={slice.button.id}\n mt=\"10\"\n size=\"xl\"\n link={slice.button}\n component=\"Hero\"\n />\n )}\n {slice.additionalButtons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n mt=\"10\"\n size=\"xl\"\n variant={button.variant}\n link={button.button}\n component=\"Hero\"\n />\n ))}\n </Flex>\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\n\nexport interface IconGridProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n iconsWithTextAndButton: {\n id: number;\n title: string;\n text: string;\n icon: StrapiImage;\n button?: StrapiLink;\n }[];\n };\n}\n\nexport const IconGrid = ({ slice }: IconGridProps): JSX.Element => {\n const columns = () => {\n if (slice.iconsWithTextAndButton.length === 2) {\n return [1, null, null, 2, 2];\n }\n if (slice.iconsWithTextAndButton.length === 1) {\n return 1;\n }\n return [1, null, null, 2, 3];\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{ maxW: '3xl', textAlign: 'center' }}\n textProps={{ maxW: '3xl', textAlign: 'center' }}\n />\n </Flex>\n <Spacer h=\"20\" />\n </>\n ) : (\n <></>\n )}\n\n <SimpleGrid\n columns={columns()}\n gap={slice.iconsWithTextAndButton.length === 2 ? '14' : '16'}\n rowGap={['16', null, null, '20']}\n >\n {slice.iconsWithTextAndButton.map((iconWithTextAndButton) => (\n <Box key={iconWithTextAndButton.id}>\n <Box\n margin=\"0 auto\"\n backgroundColor=\"primary.50\"\n borderRadius=\"full\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-around\"\n width=\"6.5rem\"\n height=\"6.5rem\"\n >\n <Box position=\"absolute\" width=\"12\" height=\"12\">\n <Image\n src={strapiMediaUrl(\n iconWithTextAndButton.icon.img,\n 'xSmall'\n )}\n alt={iconWithTextAndButton.icon.alt}\n fill\n style={{\n objectFit:\n iconWithTextAndButton.icon.objectFit || 'contain',\n }}\n />\n </Box>\n </Box>\n <Heading size=\"xl\" textAlign=\"center\" mb=\"4\" mt=\"8\">\n {iconWithTextAndButton.title}\n </Heading>\n <Text size=\"mdRegularNormal\" textAlign=\"center\">\n {iconWithTextAndButton.text}\n </Text>\n {iconWithTextAndButton.button && (\n <Box textAlign=\"center\">\n <StrapiLinkButton\n key={iconWithTextAndButton.button.id}\n mt=\"8\"\n size=\"md\"\n variant=\"outline\"\n link={iconWithTextAndButton.button}\n component=\"IconGrid\"\n />\n </Box>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\n\nconst LinkedInIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_112_606)\">\n <path\n d=\"M11.9286 11.9285H9.85424V8.67998C9.85424 7.90534 9.84042 6.90813 8.77539 6.90813C7.695 6.90813 7.52969 7.75213 7.52969 8.62357V11.9283H5.45533V5.24799H7.44671V6.16093H7.47459C7.67388 5.82018 7.96186 5.53986 8.30786 5.34984C8.65386 5.15981 9.04493 5.06719 9.4394 5.08183C11.5418 5.08183 11.9295 6.46473 11.9295 8.2638L11.9286 11.9285ZM3.11477 4.33484C2.87669 4.33489 2.64393 4.26433 2.44595 4.13209C2.24796 3.99985 2.09365 3.81188 2.0025 3.59193C1.91135 3.37199 1.88746 3.12995 1.93387 2.89644C1.98027 2.66292 2.09488 2.44841 2.26321 2.28003C2.43153 2.11164 2.646 1.99696 2.8795 1.95047C3.11301 1.90398 3.35504 1.92778 3.57502 2.01884C3.795 2.10992 3.98303 2.26417 4.11533 2.46211C4.24764 2.66004 4.31829 2.89277 4.31833 3.13085C4.31836 3.28894 4.28725 3.44547 4.22678 3.59153C4.1663 3.7376 4.07767 3.87031 3.96591 3.98211C3.85415 4.09392 3.72146 4.18261 3.57541 4.24313C3.42937 4.30365 3.27286 4.33481 3.11477 4.33484ZM4.15194 11.9285H2.07544V5.24799H4.15194V11.9285ZM12.9628 0.000953808H1.03307C0.762304 -0.00210183 0.501383 0.102466 0.307673 0.291681C0.113961 0.480895 0.00330461 0.739273 0 1.01004V12.9892C0.00319151 13.2602 0.113783 13.5187 0.307487 13.7081C0.501192 13.8975 0.762169 14.0023 1.03307 13.9994H12.9628C13.2342 14.0028 13.496 13.8983 13.6904 13.7089C13.8848 13.5195 13.9962 13.2607 14 12.9892V1.00918C13.9961 0.737873 13.8846 0.479199 13.6902 0.28999C13.4958 0.10078 13.2341 -0.00348904 12.9628 8.91429e-05\"\n fill=\"#0A66C2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_112_606\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n\nexport default LinkedInIcon;\n","import React from 'react';\nimport { CaretRight, Globe } from '@phosphor-icons/react';\nimport LinkedInIcon from '../../icons/LinkedInIcon';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport StrapiLinkButton from '../StrapiLinkButton';\nimport { StrapiLinkButtonProps } from '../StrapiLinkButton/StrapiLinkButton';\n\nexport interface StrapiLinkButtonWithIconProps\n extends Omit<StrapiLinkButtonProps, 'link'> {\n link: StrapiLinkWithIcon;\n}\n\nexport const StrapiLinkButtonWithIcon: React.FC<\n StrapiLinkButtonWithIconProps\n> = ({ link, ...props }: StrapiLinkButtonWithIconProps) => {\n const getLinkIcon = (destination: string) => {\n switch (destination) {\n case 'linkedin': {\n return <LinkedInIcon />;\n }\n case 'web': {\n return <Globe />;\n }\n default: {\n return <CaretRight />;\n }\n }\n };\n\n return (\n <StrapiLinkButton\n {...props}\n link={link.link}\n rightIcon={getLinkIcon(link.destination)}\n />\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButtonWithIcon from '../../components/StrapiLinkButtonWithIcon';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLinkWithIcon from '../../models/strapi/StrapiLinkWithIcon';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface ImageGridSlice extends StrapiDefaultHeader {\n images: {\n id: number;\n title: string;\n subTitle?: string;\n image: StrapiImage;\n links: StrapiLinkWithIcon[];\n }[];\n}\nexport interface ImageGridProps {\n slice: ImageGridSlice;\n}\n\nexport const ImageGrid: React.FC<ImageGridProps> = ({\n slice,\n}: ImageGridProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n\n <SimpleGrid\n mt=\"24\"\n columns={3}\n gap=\"24\"\n rowGap=\"16\"\n minChildWidth=\"16rem\"\n >\n {slice.images.map(({ id, title, subTitle, image, links }) => (\n <Box key={id}>\n <Box position=\"relative\" height=\"sm\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img, 'medium')}\n alt={image.alt}\n fill\n style={{\n objectFit: image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Heading size=\"xl\" mt=\"4\">\n {title}\n </Heading>\n {subTitle && <Text size=\"mdRegularNormal\">{subTitle}</Text>}\n {links && links.length > 0 && (\n <Flex mt=\"3\" flexDir=\"row\" gap=\"2\" flexWrap=\"wrap\">\n {links.map((link) => (\n <StrapiLinkButtonWithIcon\n key={link.id}\n link={link}\n size=\"sm\"\n variant=\"outline\"\n component=\"ImageGrid\"\n />\n ))}\n </Flex>\n )}\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { Fragment } from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { CDN_URI } from '../../constants/api';\n\ninterface ImageTextSequenceSlice extends StrapiDefaultHeader {\n imageTextRows: {\n id: number;\n title: string;\n text: string;\n button?: StrapiLink;\n image: StrapiImage;\n }[];\n background?: boolean;\n}\nexport interface ImageTextSequenceProps {\n slice: ImageTextSequenceSlice;\n}\n\nexport const ImageTextSequence: React.FC<ImageTextSequenceProps> = ({\n slice,\n}: ImageTextSequenceProps) => {\n const [oneColumnGrid] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [primary50] = useToken('colors', ['primary.50']);\n const [gray700] = useToken('colors', ['gray.700']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n {slice.background ? (\n <>\n <Box\n position=\"absolute\"\n top=\"0\"\n right=\"24\"\n display={['none', null, null, 'unset']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/desktop-map-border.svg`}\n alt=\"Map\"\n width=\"786\"\n height=\"897\"\n />\n </Box>\n <Box\n position=\"absolute\"\n top=\"64\"\n right=\"-14\"\n display={['unset', null, null, 'none']}\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/mobile-map-border.svg`}\n alt=\"Map\"\n width=\"227\"\n height=\"452\"\n />\n </Box>\n </>\n ) : (\n <></>\n )}\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: ['left', null, null, null, 'center'] }}\n titleProps={{\n maxW: '6xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n }}\n textProps={{\n maxW: '2xl',\n marginX: ['0', null, null, null, 'auto'],\n textAlign: ['left', null, null, null, 'center'],\n color: 'black',\n }}\n />\n\n <SimpleGrid\n gap=\"16\"\n mt={['28', null, null, null, '40']}\n columns={[1, null, null, null, 2]}\n >\n {slice.imageTextRows.map(\n ({ id, title, text, button, image }, index) => {\n const imageBox = (\n <Box>\n <Box\n position=\"relative\"\n width=\"full\"\n minHeight={['2xs', null, null, 'sm']}\n >\n <Image\n src={strapiMediaUrl(image.img, 'large')}\n alt={image.alt}\n fill\n style={{\n objectFit: image.objectFit || 'contain',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n </Box>\n );\n return (\n <Fragment key={id}>\n {(oneColumnGrid || index % 2 !== 0) && imageBox}\n <Box\n display=\"flex\"\n alignItems=\"flex-start\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n >\n <Heading as=\"h2\" size=\"xl\" mb=\"4\">\n {title}\n </Heading>\n <Text size=\"mdRegularNormal\">{text}</Text>\n {button && (\n <StrapiLinkButton\n mt=\"5\"\n link={button}\n size=\"sm\"\n variant=\"outline\"\n rightIcon={<CaretRight size=\"10\" color={gray700} />}\n component=\"ImageTextSequence\"\n />\n )}\n </Box>\n {!oneColumnGrid && index % 2 === 0 && imageBox}\n </Fragment>\n );\n }\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext } from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n PortfolioCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiPortfolioCard from '../../models/strapi/StrapiPortfolioCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface LeftTextRightCardSlice extends StrapiDefaultHeader {\n checkMarkLabels?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiPortfolioCard;\n}\nexport interface LeftTextRightCardProps {\n slice: LeftTextRightCardSlice;\n}\n\nexport const LeftTextRightCard: React.FC<LeftTextRightCardProps> = ({\n slice,\n}: LeftTextRightCardProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleCardButtonClick = () => {\n if (slice.card?.button) {\n if (analyticsFunction) {\n analyticsFunction({\n type: 'track',\n props: {\n action: 'click',\n component: 'LeftTextRightCard',\n buttonText: slice.card?.button?.text,\n buttonUrl: strapiLinkUrl(slice.card?.button),\n cardTitle: slice.card?.title,\n },\n });\n }\n\n push(strapiLinkUrl(slice.card?.button));\n }\n };\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(12, 1fr)',\n ]}\n templateRows={['repeat(2, 1fr)', null, null, null, 'repeat(1, 1fr)']}\n rowGap=\"12\"\n >\n <GridItem colSpan={8} rowSpan={1} pr={['0', null, null, null, '28']}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.checkMarkLabels && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.checkMarkLabels} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n component=\"LeftTextRightCard\"\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 4]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.card && (\n <PortfolioCard\n title={slice.card.title}\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: handleCardButtonClick,\n }\n }\n facts={slice.card.facts}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n portfolioNumber={slice.card.portfolioNumber}\n />\n )}\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImageWithLink from '../../models/strapi/StrapiImageWithLink';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface LogoGridWithTextProps {\n slice: {\n title: string;\n text: string;\n button?: StrapiLink;\n logos: StrapiImageWithLink[];\n };\n}\n\nexport const LogoGridWithText: React.FC<LogoGridWithTextProps> = ({\n slice,\n}: LogoGridWithTextProps) => {\n const [primary50] = useToken('colors', ['primary.50']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <SimpleGrid columns={2} gap=\"28\" minChildWidth=\"16rem\">\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"flex-start\"\n >\n <Heading as=\"h2\" size=\"3xl\" mb=\"4\">\n {slice.title}\n </Heading>\n <RichText content={slice.text} />\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n mt=\"6\"\n rightIcon={<ArrowRight />}\n component=\"LogoGridWithText\"\n />\n )}\n </Box>\n <Flex flexDir=\"row\" flexWrap=\"wrap\" gap={['12', null, null, '28']}>\n {slice.logos.map((logo) => (\n <Flex\n key={logo.id}\n justifyContent=\"center\"\n alignItems=\"center\"\n flexGrow={1}\n flexShrink={0}\n flexBasis={slice.logos.length > 2 ? '34%' : '90%'} // 34% are just enough to not allow three in one row\n >\n <Box position=\"relative\" height=\"20\" width=\"100%\">\n {logo.link ? (\n <a href={strapiLinkUrl(logo.link)}>\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n </a>\n ) : (\n <Image\n src={strapiMediaUrl(logo.img, 'small')}\n alt={logo.alt}\n fill\n style={{ objectFit: logo.objectFit || 'contain' }}\n />\n )}\n </Box>\n </Flex>\n ))}\n </Flex>\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_LG } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const MapHeroContainer = styled(Box)`\n position: relative;\n width: 100vw;\n height: var(--default-hero-height);\n min-height: var(--boemly-sizes-3xl);\n background-color: var(--boemly-colors-primary-50);\n overflow: hidden;\n z-index: var(--boemly-zIndices-base);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n height: auto;\n }\n`;\n\nexport const MapHeroTextContainer = styled(Box)`\n position: absolute;\n width: 100vw;\n top: 56%;\n left: 0;\n transform: translateY(-50%);\n z-index: var(--boemly-zIndices-aboveBase);\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n position: relative;\n transform: unset;\n\n padding-top: var(--boemly-space-32);\n }\n`;\n\nexport const ShapeContainer = styled(Box)`\n position: absolute;\n bottom: calc(var(--boemly-space-8) * -1);\n left: 0;\n\n width: var(--boemly-sizes-sm);\n height: var(--boemly-sizes-sm);\n\n border-top-right-radius: var(--boemly-radii-full);\n\n & span,\n div {\n border-top-right-radius: var(--boemly-radii-full);\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n display: none;\n }\n`;\n\nexport const MapContainer = styled(Box)`\n position: absolute;\n\n width: 50%;\n height: 100%;\n\n right: 0;\n top: 0;\n\n & img {\n object-fit: cover !important;\n }\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n width: 100%;\n height: var(--boemly-sizes-4xl);\n position: relative;\n margin-top: calc(var(--boemly-space-72) * -1);\n background-color: var(--boemly-colors-white);\n\n & img {\n object-fit: contain !important;\n }\n }\n`;\n\nexport const MapGradient = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n background: linear-gradient(\n 90deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 10%,\n rgba(243, 246, 245, 0.6) 28%,\n rgba(243, 246, 245, 0) 40%,\n rgba(243, 246, 245, 0) 100%\n );\n\n @media screen and (max-width: ${BREAKPOINT_LG}) {\n background: linear-gradient(\n 180deg,\n var(--boemly-colors-primary-50) 0%,\n var(--boemly-colors-primary-50) 36%,\n rgba(243, 246, 245, 0.12) 46%,\n rgba(243, 246, 245, 0) 100%\n );\n }\n`;\n","import React from 'react';\nimport { DefaultSectionHeader, Flex, useMediaQuery, Wrapper } from 'boemly';\nimport Image from 'next/image';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport {\n MapHeroContainer,\n MapHeroTextContainer,\n ShapeContainer,\n MapContainer,\n MapGradient,\n} from './styles';\n\nexport interface MapHeroProps {\n slice: {\n tagline?: string;\n title: string;\n subTitle?: string;\n buttons?: StrapiLink[];\n shape?: StrapiImage;\n map: StrapiImage;\n mobileMap: StrapiImage;\n };\n}\n\nexport const MapHero: React.FC<MapHeroProps> = ({ slice }: MapHeroProps) => {\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n return (\n <MapHeroContainer maxWidth=\"full\">\n {slice.shape && (\n <ShapeContainer>\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{ objectFit: slice.shape.objectFit || 'cover' }}\n />\n </ShapeContainer>\n )}\n <MapHeroTextContainer>\n <Wrapper>\n <>\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: ['100%', null, null, null, '60%'] }}\n textProps={{ maxW: ['100%', null, null, null, '55%'] }}\n />\n {slice.buttons && slice.buttons.length > 0 && (\n <Flex mt=\"10\" flexDir=\"row\" gap=\"5\">\n <StrapiLinkButton\n link={slice.buttons[0]}\n size=\"xl\"\n component=\"MapHero\"\n />\n {slice.buttons.length === 2 && (\n <StrapiLinkButton\n link={slice.buttons[1]}\n variant=\"outline\"\n size=\"xl\"\n component=\"MapHero\"\n />\n )}\n </Flex>\n )}\n </>\n </Wrapper>\n </MapHeroTextContainer>\n <MapContainer>\n {belowBreakpoint ? (\n <Image\n src={strapiMediaUrl(slice.mobileMap.img, 'xLarge')}\n alt={slice.mobileMap.alt}\n fill\n style={{ objectFit: slice.mobileMap.objectFit || 'contain' }}\n />\n ) : (\n <Image\n src={strapiMediaUrl(slice.map.img, 'xLarge')}\n alt={slice.map.alt}\n fill\n style={{ objectFit: slice.map.objectFit || 'cover' }}\n />\n )}\n <MapGradient />\n </MapContainer>\n </MapHeroContainer>\n );\n};\n","const convertToKebabCase = (str: string) => {\n const matches =\n str &&\n str.match(\n /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g\n );\n return matches ? matches.map((x: string) => x.toLowerCase()).join('-') : '';\n};\n\nexport default convertToKebabCase;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Heading,\n HeroCard,\n SimpleGrid,\n Text,\n BoemlyAccordion,\n Wrapper,\n Flex,\n Spacer,\n} from 'boemly';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n textColor: 'white',\n accordionVariant: 'white',\n otherQuestionsBackground: 'primary.900',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n textColor: 'black',\n accordionVariant: 'black',\n otherQuestionsBackground: 'primary.700',\n },\n};\n\nexport interface QAndAProps {\n slice: {\n tagline: string;\n title: string;\n questionsAndAnswers: {\n id: number;\n key: string;\n value: string;\n }[];\n otherQuestions: string;\n button: StrapiLink;\n hero?: StrapiHeroCard;\n variant?: keyof typeof VARIANTS;\n defaultIndex: number[];\n };\n}\n\nexport const QAndA: React.FC<QAndAProps> = ({ slice }: QAndAProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleHeroButtonClick = () => {\n if (slice.hero?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'QAndA',\n buttonText: slice.hero.button.text,\n buttonUrl: strapiLinkUrl(slice.hero.button),\n section: 'hero',\n },\n });\n push(strapiLinkUrl(slice.hero.button));\n }\n };\n\n const variant = VARIANTS[slice.variant ?? 'green'];\n\n return (\n <>\n <Box\n pb={slice.hero ? 80 : 28}\n id={convertToKebabCase(slice.title)}\n backgroundColor={variant.backgroundColor}\n >\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]}>\n <Box mr=\"16\" paddingY=\"28\">\n <Text size=\"mdMonoUppercase\" color={variant.tagLineColor}>\n {slice.tagline}\n </Text>\n <Heading\n as=\"h2\"\n size=\"3xl\"\n color={variant.textColor}\n mt=\"6\"\n mb=\"16\"\n >\n {slice.title}\n </Heading>\n </Box>\n <Box\n maxHeight={['unset', null, null, 'xl']}\n paddingTop={['0', null, null, '28']}\n paddingRight={['0', null, null, '6']}\n overflowY={['unset', null, null, 'scroll']}\n >\n <Box>\n <BoemlyAccordion\n rows={slice.questionsAndAnswers}\n defaultIndex={slice.defaultIndex}\n variant={variant.accordionVariant as 'white' | 'black'}\n />\n <Flex\n padding=\"8\"\n backgroundColor={variant.otherQuestionsBackground}\n borderRadius=\"2xl\"\n mt=\"14\"\n flexDir={['column', null, null, 'row']}\n justifyContent={['flex-start', null, null, 'space-between']}\n alignItems={['flex-start', null, null, 'center']}\n >\n <Heading as=\"h6\" size=\"sm\" color=\"white\">\n {slice.otherQuestions}\n </Heading>\n <Spacer minHeight={['4', null, null, '0']} />\n <StrapiLinkButton\n size=\"lg\"\n colorScheme=\"white\"\n background=\"white\"\n rightIcon={<ArrowRight />}\n link={slice.button}\n component=\"QAndA\"\n />\n </Flex>\n </Box>\n </Box>\n </SimpleGrid>\n </Wrapper>\n </Box>\n\n {slice.hero && (\n <Box pb=\"28\" mt=\"-56\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: handleHeroButtonClick,\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n );\n};\n","import React, { useContext } from 'react';\nimport Image from 'next/image';\nimport {\n Box,\n DefaultSectionHeader,\n HeroCard,\n QuoteCard,\n Shape,\n SimpleGrid,\n Wrapper,\n} from 'boemly';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiQuoteCard from '../../models/strapi/StrapiQuoteCard';\nimport StrapiHeroCard from '../../models/strapi/StrapiHeroCard';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport convertToKebabCase from '../../utils/convertToKebabCase';\nimport { useRouter } from 'next/router';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface QuoteCardsSlice extends StrapiDefaultHeader {\n cards: StrapiQuoteCard[];\n shapes?: StrapiImage[];\n hero?: StrapiHeroCard;\n}\nexport interface QuoteCardsProps {\n slice: QuoteCardsSlice;\n}\n\nexport const QuoteCards: React.FC<QuoteCardsProps> = ({\n slice,\n}: QuoteCardsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const handleHeroCardButtonClick = () => {\n if (slice.hero?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'QuoteCards',\n buttonText: slice.hero.button.text,\n buttonUrl: strapiLinkUrl(slice.hero.button),\n section: 'hero',\n },\n });\n push(strapiLinkUrl(slice.hero.button));\n }\n };\n\n return (\n <>\n <Box\n id={convertToKebabCase(slice.title)}\n position=\"relative\"\n paddingTop=\"28\"\n paddingBottom={!!slice.hero ? '80' : '28'}\n >\n {slice.shapes && slice.shapes.length === 2 && (\n <>\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[0].img, 'small')}\n alt={slice.shapes[0].alt}\n fill\n style={{ objectFit: slice.shapes[0].objectFit || 'cover' }}\n />\n }\n top=\"0\"\n right=\"0\"\n size=\"xs\"\n radius=\"bottom-left\"\n />\n <Shape\n shape={\n <Image\n src={strapiMediaUrl(slice.shapes[1].img, 'small')}\n alt={slice.shapes[1].alt}\n fill\n style={{ objectFit: slice.shapes[1].objectFit || 'cover' }}\n />\n }\n bottom=\"0\"\n left=\"0\"\n radius=\"top-right\"\n />\n </>\n )}\n <Wrapper>\n <Box maxW=\"3xl\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <SimpleGrid\n columns={2}\n gap=\"20\"\n rowGap=\"6\"\n mt=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map((card) => (\n <Box key={card.id} width=\"full\" maxWidth=\"2xl\">\n <QuoteCard\n key={card.id}\n avatar={{\n name: card.avatar.name,\n description: card.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(card.avatar.image.img, 'small')}\n alt={card.avatar.image.alt}\n fill\n style={{\n objectFit: card.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n text={card.text}\n />\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </Box>\n {slice.hero && (\n <Box marginTop=\"-40\" paddingBottom=\"28\">\n <Wrapper>\n <HeroCard\n title={slice.hero.title}\n subTitle={slice.hero.subTitle}\n link={\n slice.hero.button && {\n text: slice.hero.button.text,\n onClick: handleHeroCardButtonClick,\n }\n }\n image={\n slice.hero.image && (\n <Image\n src={strapiMediaUrl(slice.hero.image.img, 'xLarge')}\n alt={slice.hero.image.alt}\n fill\n style={{ objectFit: slice.hero.image.objectFit || 'cover' }}\n />\n )\n }\n />\n </Wrapper>\n </Box>\n )}\n </>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n Grid,\n GridItem,\n RichText,\n Wrapper,\n} from 'boemly';\n\nexport interface RichTextSectionProps {\n slice: {\n content: string;\n };\n}\n\nexport const RichTextSection: React.FC<RichTextSectionProps> = ({\n slice,\n}: RichTextSectionProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <RichText content={slice.content} />\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, {\n createRef,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport {\n Box,\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Heading,\n RichText,\n ShapesCard,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useWindowScroll, useWindowSize } from 'react-use';\nimport { useRouter } from 'next/router';\nimport StrapiShapesCard from '../../models/strapi/StrapiShapesCard';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface StepsSlice extends StrapiDefaultHeader {\n steps: {\n id: number;\n step: number;\n title: string;\n text?: string;\n }[];\n image?: StrapiImage;\n card?: StrapiShapesCard;\n}\nexport interface StepsProps {\n slice: StepsSlice;\n}\n\nexport const Steps: React.FC<StepsProps> = ({ slice }: StepsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n\n const [gray900] = useToken('colors', ['gray.900']);\n\n const containerRef = useRef<HTMLDivElement>(null);\n\n const [stepRefs, setStepRefs] = useState(new Array(slice.steps.length));\n const [stepProgress, setStepProgress] = useState(\n new Array(slice.steps.length)\n );\n\n const { y: offsetY } = useWindowScroll();\n const { height: windowHeight } = useWindowSize();\n\n const handleShapesCardButtonClick = () => {\n if (slice.card?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'Steps',\n buttonText: slice.card.button.text,\n buttonUrl: strapiLinkUrl(slice.card.button),\n section: 'card',\n },\n });\n push(strapiLinkUrl(slice.card.button));\n }\n };\n useEffect(() => {\n setStepRefs(slice.steps.map(() => createRef()));\n }, []);\n\n useEffect(() => {\n const containerOffsetTop = containerRef.current?.offsetTop || 0;\n setStepProgress(\n stepRefs.map((ref) => {\n const currentItemOffsetTop = ref.current?.offsetTop || 0;\n return containerOffsetTop + currentItemOffsetTop <\n offsetY + windowHeight / 3\n ? 100\n : 0;\n })\n );\n }, [offsetY]);\n\n return (\n <div ref={containerRef}>\n <DefaultSectionContainer backgroundColor={gray900} title={slice.title}>\n <>\n {slice.image && (\n <Box\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n <Gradient />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <Box marginTop={['16', null, '24']}>\n {slice.steps.map(({ id, step, title, text }, index) => (\n <Flex flexDir=\"column\" alignItems=\"center\" key={id}>\n <Center\n width=\"10\"\n height=\"10\"\n borderRadius=\"full\"\n backgroundColor=\"white\"\n >\n <Text size=\"smRegularNormal\" color=\"black\">\n {step}\n </Text>\n </Center>\n <Heading size=\"lg\" color=\"white\" mt=\"4\" textAlign=\"center\">\n {title}\n </Heading>\n {text && (\n <Box maxW=\"xl\" mt=\"4\">\n <RichText\n options={{ forceBlock: true }}\n content={text}\n textProps={{\n size: 'mdRegularNormal',\n color: 'whiteAlpha.700',\n textAlign: 'center',\n }}\n />\n </Box>\n )}\n {(index + 1 < slice.steps.length || slice.card) && (\n <Box\n ref={stepRefs[index]}\n position=\"relative\"\n marginTop=\"4\"\n marginBottom=\"6\"\n height=\"12\"\n >\n <Box\n position=\"absolute\"\n height=\"full\"\n borderLeft=\"dashed 1px white\"\n opacity=\"0.5\"\n />\n <Box\n position=\"absolute\"\n height={`${stepProgress[index]}%`}\n borderRight=\"solid 1px white\"\n opacity=\"1\"\n transition=\"height ease var(--medium-transition-duration)\"\n />\n </Box>\n )}\n </Flex>\n ))}\n </Box>\n\n {slice.card && (\n <ShapesCard\n tagline={slice.card.tagline}\n title={slice.card.title}\n text={slice.card.text}\n shapes={\n slice.card.shapes &&\n slice.card.shapes?.map((shape) => (\n <Image\n key={shape.id}\n src={strapiMediaUrl(shape.img, 'small')}\n alt={shape.alt}\n fill\n style={{ objectFit: shape.objectFit || 'cover' }}\n />\n ))\n }\n button={\n slice.card.button && {\n text: slice.card.button.text,\n onClick: handleShapesCardButtonClick,\n }\n }\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n </div>\n );\n};\n","import React from 'react';\nimport { css } from '@emotion/react';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n Text,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\ninterface TextCardGridSlice extends StrapiDefaultHeader {\n variant: 'shape' | 'image';\n cards: {\n id: number;\n tagline?: string;\n title: string;\n text: string;\n image: StrapiImage;\n buttons?: StrapiLink[];\n }[];\n}\nexport interface TextCardGridProps {\n slice: TextCardGridSlice;\n}\n\nenum ShapePosition {\n topLeft = 'top-left',\n topRight = 'top-right',\n bottomLeft = 'bottom-left',\n bottomRight = 'bottom-right',\n unset = 'unset',\n}\n\nconst shapePositions: ShapePosition[] = [\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topRight,\n ShapePosition.bottomLeft,\n ShapePosition.topLeft,\n ShapePosition.bottomRight,\n];\n\nconst oppositesOfCorners = {\n [ShapePosition.bottomLeft]: ShapePosition.topRight,\n [ShapePosition.topRight]: ShapePosition.bottomLeft,\n [ShapePosition.bottomRight]: ShapePosition.topLeft,\n [ShapePosition.topLeft]: ShapePosition.bottomRight,\n [ShapePosition.unset]: ShapePosition.unset,\n};\n\ntype Variant = {\n padding: (string | null)[];\n positionIcon: (index: number) => ShapePosition;\n width: string;\n height: string;\n position: 'absolute' | 'relative';\n mb: string;\n};\n\nconst variants: { shape: Variant; image: Variant } = {\n shape: {\n padding: ['6', null, null, '8'],\n positionIcon: (index: number) =>\n shapePositions[index % shapePositions.length],\n width: '40',\n height: '40',\n position: 'absolute',\n mb: 'unset',\n },\n image: {\n padding: ['6', null, null, '8'],\n positionIcon: () => ShapePosition.unset,\n width: '24',\n height: '24',\n position: 'relative',\n mb: '10',\n },\n};\n\nexport const TextCardGrid: React.FC<TextCardGridProps> = ({\n slice,\n}: TextCardGridProps) => {\n const [primary800] = useToken('colors', ['primary.800']);\n\n return (\n <DefaultSectionContainer backgroundColor={primary800} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center', color: 'white' }}\n titleProps={{\n textAlign: 'center',\n maxW: '2xl',\n marginX: 'auto',\n color: 'white',\n }}\n textProps={{\n textAlign: 'center',\n maxW: 'xl',\n marginX: 'auto',\n color: 'whiteAlpha.800',\n }}\n />\n\n <SimpleGrid\n mt={['14', null, null, '24']}\n columns={3}\n justifyItems=\"center\"\n gap=\"20\"\n rowGap=\"16\"\n minChildWidth={['100%', null, '16rem']}\n >\n {slice.cards.map(\n ({ id, tagline, title, text, image, buttons }, index) => (\n <Box\n key={id}\n backgroundColor=\"white\"\n zIndex=\"base\"\n padding={variants[slice.variant].padding}\n boxShadow=\"lg\"\n borderRadius=\"2xl\"\n minHeight=\"2xs\"\n width=\"full\"\n maxWidth={slice.cards.length > 1 ? 'unset' : 'xl'}\n position=\"relative\"\n display=\"flex\"\n flexDir=\"column\"\n alignItems=\"flex-start\"\n justifyContent={\n slice.variant === 'shape' ? 'flex-end' : 'flex-start'\n }\n overflow=\"hidden\"\n >\n <Box\n position={variants[slice.variant].position}\n width={variants[slice.variant].width}\n height={variants[slice.variant].height}\n mb={variants[slice.variant].mb}\n top={\n variants[slice.variant].positionIcon(index).includes('top')\n ? '-4'\n : 'unset'\n }\n left={\n variants[slice.variant].positionIcon(index).includes('left')\n ? '-4'\n : 'unset'\n }\n right={\n variants[slice.variant]\n .positionIcon(index)\n .includes('right')\n ? '-4'\n : 'unset'\n }\n bottom={\n variants[slice.variant]\n .positionIcon(index)\n .includes('bottom')\n ? '-4'\n : 'unset'\n }\n borderBottomRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomRight')\n ? 'full'\n : 'unset'\n }\n borderBottomLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('bottomLeft')\n ? 'full'\n : 'unset'\n }\n borderTopRightRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topRight')\n ? 'full'\n : 'unset'\n }\n borderTopLeftRadius={\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ].includes('topLeft')\n ? 'full'\n : 'unset'\n }\n css={\n variants[slice.variant]\n .positionIcon(index)\n .includes('unset')\n ? css`\n & span,\n div,\n img {\n border-radius: var(--boemly-radii-xl);\n }\n `\n : css`\n & span,\n div,\n img {\n border-${\n oppositesOfCorners[\n variants[slice.variant].positionIcon(index)\n ]\n }-radius: var(--boemly-radii-full);\n }\n `\n }\n >\n <Image\n src={strapiMediaUrl(image.img, 'small')}\n alt={image.alt}\n fill\n style={{ objectFit: image.objectFit || 'cover' }}\n />\n </Box>\n <Box zIndex=\"aboveBase\" width=\"full\">\n {tagline && (\n <Text color=\"black\" size=\"smMonoNormal\" mb=\"2\">\n {tagline}\n </Text>\n )}\n <Heading as=\"h4\" size=\"xl\" mb=\"3\">\n {title}\n </Heading>\n <RichText\n content={text}\n listProps={{\n textColor: 'gray.500',\n textSize: 'smRegularNormal',\n }}\n textProps={{\n color: 'gray.500',\n size: 'smRegularNormal',\n }}\n />\n {buttons && !!buttons.length && (\n <Flex\n mt=\"4\"\n gap=\"3\"\n flexDir={['column', null, null, null, 'row']}\n >\n {buttons.map((button, buttonIndex) => (\n <StrapiLinkButton\n key={button.id}\n link={button}\n size=\"sm\"\n rightIcon={\n buttonIndex === 0 ? (\n <CaretRight size=\"10\" weight=\"bold\" />\n ) : undefined\n }\n variant={buttonIndex === 0 ? 'outline' : 'ghost'}\n component=\"TextCardGrid\"\n />\n ))}\n </Flex>\n )}\n </Box>\n </Box>\n )\n )}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const CarouselContainer = styled(Box)`\n margin-top: var(--boemly-space-6);\n padding: var(--boemly-space-8) 0;\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n margin-top: var(--boemly-space-4);\n width: var(--boemly-sizes-full);\n }\n\n width: var(--boemly-sizes-full);\n\n overflow-x: hidden;\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n overflow-x: scroll;\n }\n`;\n\ninterface CarouselInnerContainerProps {\n numberOfItems: number;\n}\nexport const CarouselInnerContainer = styled(\n motion.div\n)<CarouselInnerContainerProps>`\n display: flex;\n gap: var(--boemly-space-6);\n justify-content: center;\n\n width: calc(\n (var(--boemly-sizes-sm) + var(--boemly-space-6)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-6)\n );\n min-width: var(--boemly-sizes-full);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n gap: var(--boemly-space-1);\n justify-content: flex-start;\n width: calc(\n (var(--boemly-sizes-2xs) + var(--boemly-space-4)) *\n ${({ numberOfItems }: CarouselInnerContainerProps) => numberOfItems} +\n var(--boemly-space-6)\n );\n }\n`;\n\nexport const CardContainer = styled(Box)`\n width: var(--boemly-sizes-sm);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n min-width: var(--boemly-sizes-sm);\n\n margin-right: var(--boemly-space-4);\n\n &:first-of-type {\n margin-left: var(--boemly-space-6);\n }\n }\n`;\n","const shuffleElements = (slides: any[]) => {\n const slidesCopy = [...slides]; // Create a copy to avoid mutating the original array\n for (let i = slidesCopy.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [slidesCopy[i], slidesCopy[j]] = [slidesCopy[j], slidesCopy[i]];\n }\n return slidesCopy;\n};\n\nexport default shuffleElements;\n","import React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n Box,\n Center,\n DefaultSectionContainer,\n DefaultSectionHeader,\n IconButton,\n TextCardWithIcon,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport {\n CardContainer,\n CarouselContainer,\n CarouselInnerContainer,\n} from './styles';\nimport { useMeasure, useWindowSize } from 'react-use';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ArrowLeft, ArrowRight } from '@phosphor-icons/react';\nimport { IntlContext } from '../../components/ContextProvider';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport { useRouter } from 'next/router';\nimport shuffleElements from '../../utils/shuffleElements';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface TextCarouselSlice extends StrapiDefaultHeader {\n slides: StrapiTextCardWithIcon[];\n button?: StrapiLink;\n isShuffled?: boolean;\n}\nexport interface TextCarouselProps {\n slice: TextCarouselSlice;\n}\n\nconst ITEM_GAP = 24;\nconst MAX_OFFSET_RIGHT = 55;\n\nexport const TextCarousel: React.FC<TextCarouselProps> = ({\n slice,\n}: TextCarouselProps) => {\n const containerRef = useRef(null);\n const [primary50] = useToken('colors', ['primary.50']);\n const [itemRef, { width: itemWidth }] = useMeasure<HTMLDivElement>();\n const { formatMessage } = useContext(IntlContext);\n const analyticsFunction = useContext(AnalyticsContext);\n const { width: windowWidth } = useWindowSize();\n const { push } = useRouter();\n\n const [displaySlides, setDisplaySlides] = useState(slice.slides);\n const [sliderIndex, setSliderIndex] = useState(0);\n\n const numberOfItems = useMemo(\n () => slice.slides.length,\n [slice.slides.length]\n );\n\n const sliderItemsWidth = useMemo(\n () => numberOfItems * (itemWidth + ITEM_GAP) - ITEM_GAP,\n [itemWidth, numberOfItems]\n );\n\n const offsetLeft = useMemo(\n () => sliderIndex * (itemWidth + ITEM_GAP) * -1,\n [sliderIndex, itemWidth]\n );\n\n const allowScroll = useMemo(\n () => sliderItemsWidth + ITEM_GAP * 2 > windowWidth,\n\n [sliderItemsWidth, windowWidth]\n );\n\n const canMoveRight = useMemo(() => {\n const offsetRight = windowWidth - (sliderItemsWidth + offsetLeft);\n\n return offsetRight < MAX_OFFSET_RIGHT;\n }, [itemWidth, sliderIndex, sliderItemsWidth, windowWidth]);\n\n const canMoveLeft = useMemo(() => sliderIndex !== 0, [sliderIndex]);\n\n const handleSlidesButtonClick = (button?: StrapiLink) => {\n if (button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'TextCarousel',\n buttonText: button.text,\n buttonUrl: strapiLinkUrl(button),\n section: 'slides',\n },\n });\n push(strapiLinkUrl(button));\n }\n };\n\n const { slides, isShuffled = false } = slice;\n\n useEffect(() => {\n if (isShuffled) {\n setDisplaySlides(shuffleElements(slides));\n }\n }, [slides, isShuffled]);\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{ textAlign: 'center', maxW: '6xl', marginX: 'auto' }}\n textProps={{ textAlign: 'center', maxW: '2xl', marginX: 'auto' }}\n />\n </Wrapper>\n\n <CarouselContainer ref={containerRef}>\n <Box position=\"relative\" width=\"full\">\n <Wrapper>\n <CarouselInnerContainer\n numberOfItems={slice.slides.length}\n animate={{\n x: offsetLeft,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n >\n {displaySlides.map(({ id, title, text, icon, image, button }) => (\n <CardContainer key={id} ref={itemRef}>\n <TextCardWithIcon\n title={title}\n text={text}\n height=\"full\"\n icon={\n <Image\n src={strapiMediaUrl(icon.img, 'small')}\n alt={icon.alt}\n fill\n style={{ objectFit: icon.objectFit || 'contain' }}\n />\n }\n image={\n image && (\n <Image\n src={strapiMediaUrl(image?.img, 'medium')}\n alt={image?.alt}\n fill\n style={{\n objectFit: image?.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n )\n }\n button={\n button && {\n text: button.text,\n onClick: () => handleSlidesButtonClick(button),\n }\n }\n displayAs=\"column\"\n />\n </CardContainer>\n ))}\n </CarouselInnerContainer>\n </Wrapper>\n <Box\n display={['none', null, null, !!allowScroll ? 'flex' : 'none']}\n pointerEvents=\"none\"\n position=\"absolute\"\n top=\"40%\"\n left=\"0\"\n width=\"full\"\n py=\"0\"\n px=\"32\"\n justifyContent=\"space-between\"\n >\n <Box>\n <AnimatePresence>\n {canMoveLeft && (\n <IconButton\n key=\"leftButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex - 1)}\n aria-label={formatMessage({\n id: 'sections.textCarousel.moveLeft',\n })}\n icon={<ArrowLeft size={16} />}\n pointerEvents=\"auto\"\n boxShadow=\"md\"\n />\n )}\n </AnimatePresence>\n </Box>\n <Box>\n <AnimatePresence>\n {canMoveRight && (\n <IconButton\n key=\"rightButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex + 1)}\n aria-label={formatMessage({\n id: 'sections.textCarousel.moveRight',\n })}\n icon={<ArrowRight size={16} />}\n pointerEvents=\"auto\"\n boxShadow=\"md\"\n />\n )}\n </AnimatePresence>\n </Box>\n </Box>\n </Box>\n </CarouselContainer>\n\n <>\n {slice.button && (\n <Wrapper>\n <Center>\n <StrapiLinkButton\n link={slice.button}\n size=\"xl\"\n mt={['8', null, '14']}\n component=\"TextCarousel\"\n />\n </Center>\n </Wrapper>\n )}\n </>\n </DefaultSectionContainer>\n );\n};\n","import React, { useContext } from 'react';\nimport {\n Box,\n ContactArea,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n TextCardWithIcon,\n useMediaQuery,\n useToken,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useRouter } from 'next/router';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiDefaultHeader from '../../models/strapi/StrapiDefaultHeader';\nimport StrapiContactArea from '../../models/strapi/StrapiContactArea';\nimport StrapiTextCardWithIcon from '../../models/strapi/StrapiTextCardWithIcons';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { AnalyticsContext } from '../../components/ContextProvider/ContextProvider';\n\ninterface TextWithTextCardsSlice extends StrapiDefaultHeader {\n cards: StrapiTextCardWithIcon[];\n contact?: StrapiContactArea;\n shape?: StrapiImage;\n}\nexport interface TextWithTextCardsProps {\n slice: TextWithTextCardsSlice;\n}\n\nexport const TextWithTextCards: React.FC<TextWithTextCardsProps> = ({\n slice,\n}: TextWithTextCardsProps) => {\n const { push } = useRouter();\n const analyticsFunction = useContext(AnalyticsContext);\n const [white] = useToken('colors', ['white']);\n const [belowBreakpoint] = useMediaQuery(BREAKPOINT_LG_QUERY);\n\n const handleContactButtonClick = () => {\n if (slice.contact?.button) {\n analyticsFunction?.({\n type: 'track',\n props: {\n action: 'click',\n component: 'TextWithTextCards',\n buttonText: slice.contact.button.text,\n buttonUrl: strapiLinkUrl(slice.contact.button),\n section: 'contact',\n },\n });\n push(strapiLinkUrl(slice.contact.button));\n }\n };\n\n return (\n <DefaultSectionContainer backgroundColor={white} title={slice.title}>\n <>\n {slice.shape && (\n <Box\n position=\"absolute\"\n right={['-28', null, null, '-136']}\n top={['96', null, null, '-28']}\n width={['sm', null, null, '4xl']}\n height={['sm', null, null, '4xl']}\n borderBottomRightRadius=\"full\"\n >\n <Image\n src={strapiMediaUrl(slice.shape.img, 'medium')}\n alt={slice.shape.alt}\n fill\n style={{\n objectFit: slice.shape.objectFit || 'cover',\n borderBottomRightRadius: 'var(--boemly-radii-full)',\n }}\n />\n </Box>\n )}\n </>\n <Wrapper>\n <>\n <Grid\n templateColumns={[\n 'repeat(8, 1fr)',\n null,\n null,\n null,\n 'repeat(16, 1fr)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n >\n <GridItem\n colSpan={[8, null, null, null, 9]}\n rowSpan={1}\n pr={['0', null, null, null, '32']}\n >\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n textProps={{ pr: ['0', null, null, null, '10'] }}\n />\n\n {slice.contact && !belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: handleContactButtonClick,\n }}\n />\n )}\n </GridItem>\n <GridItem\n colSpan={[8, null, null, null, 7]}\n rowSpan={1}\n position=\"relative\"\n >\n {slice.cards.map((card) => (\n <TextCardWithIcon\n key={card.id}\n title={card.title}\n text={card.text}\n icon={\n <Image\n src={strapiMediaUrl(card.icon.img, 'small')}\n alt={card.icon.alt}\n fill\n style={{ objectFit: card.icon.objectFit || 'contain' }}\n />\n }\n />\n ))}\n </GridItem>\n </Grid>\n {slice.contact && belowBreakpoint && (\n <ContactArea\n title={slice.contact.title}\n text={slice.contact.text}\n avatar={{\n name: slice.contact.avatar.name,\n description: slice.contact.avatar.description,\n image: (\n <Image\n src={strapiMediaUrl(\n slice.contact.avatar.image.img,\n 'small'\n )}\n alt={slice.contact.avatar.image.alt}\n fill\n style={{\n objectFit:\n slice.contact.avatar.image.objectFit || 'cover',\n }}\n />\n ),\n }}\n link={{\n text: slice.contact.button.text,\n onClick: handleContactButtonClick,\n }}\n />\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { FormatNumberOptions } from 'react-intl';\n\nexport const FORMAT_AS_EUR_CONFIG: FormatNumberOptions = {\n style: 'currency',\n currency: 'EUR',\n};\n\nexport const FORMAT_AS_METER_CONFIG: FormatNumberOptions = {\n unit: 'meter',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_HECTARE_CONFIG: FormatNumberOptions = {\n unit: 'hectare',\n unitDisplay: 'short',\n style: 'unit',\n maximumFractionDigits: 2,\n};\n\nexport const FORMAT_AS_CUBIC_METERS_PER_HECTARE_CONFIG: FormatNumberOptions = {\n maximumFractionDigits: 0,\n};\n\nexport const FORMAT_AS_PERCENT_CONFIG: FormatNumberOptions = {\n style: 'percent',\n maximumFractionDigits: 2,\n};\n","import Issuer from './Issuer';\n\nexport enum CreditAvailability {\n CREDITS_AVAILABLE = 'credits_available',\n NO_CREDITS_AVAILABLE = 'no_credits_available',\n SOME_CREDITS_AVAILABLE = 'some_credits_available',\n SOON_CREDITS_AVAILABLE = 'soon_credits_available',\n}\n\ninterface FPMProject {\n id: string;\n title: string;\n description?: string;\n friendlyName?: string;\n\n isPublic?: boolean;\n geom?: {\n type: 'Point';\n coordinates: [number, number];\n };\n area?: number;\n location?: string;\n countryCode: string;\n start?: Date;\n end?: Date;\n projectType?: {\n title: string;\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n projectDeveloper?: {\n name: string;\n friendlyName?: string;\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n verificationStandard?: {\n id: string;\n createdAt: Date;\n updatedAt: Date;\n };\n forecastedAmountYearly?: number;\n averageSellableAmountPerYear: number;\n riskBuffer?: number;\n defaultIssuer?: Issuer;\n creditAvailability: CreditAvailability;\n certificationDate?: Date;\n\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport default FPMProject;\n","import React, { useContext } from 'react';\nimport { Flex, Tag, Text } from 'boemly';\nimport NextLink from 'next/link';\nimport { IntlContext } from '../ContextProvider';\nimport { CreditAvailability } from '../../models/fpm/FPMProject';\n\nexport interface CreditsAvailableBadgeProps {\n status: CreditAvailability;\n href?: string;\n}\n\nconst CreditsAvailableBadge = ({\n status,\n href,\n}: CreditsAvailableBadgeProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n const variants: Record<\n CreditAvailability,\n { message: string; color: string }\n > = {\n [CreditAvailability.CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.yes',\n }),\n color: 'green.600',\n },\n [CreditAvailability.NO_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.no',\n }),\n color: 'red.600',\n },\n [CreditAvailability.SOME_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.some',\n }),\n color: 'orange.500',\n },\n [CreditAvailability.SOON_CREDITS_AVAILABLE]: {\n message: formatMessage({\n id: 'components.creditsAvailableBadge.text.notYet',\n }),\n color: 'blue.500',\n },\n };\n\n const variant = variants[status];\n\n return (\n <Flex\n justifyContent=\"flex-start\"\n as={href ? NextLink : undefined}\n href={href}\n >\n <Tag backgroundColor={variant.color}>\n <Text color=\"white\" size=\"xsLowBold\">\n {variant.message}\n </Text>\n </Tag>\n </Flex>\n );\n};\n\nexport default CreditsAvailableBadge;\n","import { Box, Container, Flex, Heading, Tag, Text } from 'boemly';\nimport React, { useContext } from 'react';\nimport Image from 'next/image';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport { strapiMediaUrl } from '../..';\nimport { FORMAT_AS_HECTARE_CONFIG } from '../../constants/formatter';\nimport CreditsAvailableBadge from '../../components/CreditsAvailableBadge';\nimport { IntlContext } from '../ContextProvider';\n\nexport interface ProjectGridCardProps {\n project: PortfolioProject;\n}\n\nexport const ProjectGridCard = ({\n project,\n}: ProjectGridCardProps): JSX.Element => {\n const { formatNumber, formatMessage } = useContext(IntlContext);\n\n return (\n <Container height=\"full\">\n <Flex flexDir=\"column\" height=\"full\">\n {project.thumbnail && (\n <Box borderRadius=\"xl\" position=\"relative\" height=\"36\" mb=\"2\">\n <Image\n src={strapiMediaUrl(project.thumbnail?.img, 'medium')}\n alt={project.thumbnail?.alt}\n fill\n style={{\n objectFit: project.thumbnail?.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n )}\n <Heading my=\"4\" size=\"lg\">\n {project.friendlyName || project.title}\n </Heading>\n <Flex flexDir=\"row\" gap=\"2\" flexWrap=\"wrap\">\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatNumber(\n (project.area || 0) / 10000,\n FORMAT_AS_HECTARE_CONFIG\n )}\n </Text>\n </Tag>\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {project.location}\n </Text>\n </Tag>\n {project.certificationDate ? (\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage(\n { id: 'components.projectGridCard.certified' },\n { year: new Date(project.certificationDate).getFullYear() }\n )}\n </Text>\n </Tag>\n ) : (\n <Tag>\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage({\n id: 'components.projectGridCard.certificationInProgress',\n })}\n </Text>\n </Tag>\n )}\n <CreditsAvailableBadge status={project.creditAvailability} />\n </Flex>\n </Flex>\n </Container>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Grid,\n GridItem,\n ProjectCard,\n Spacer,\n BoemlyList,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport { ArrowRight } from '@phosphor-icons/react';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiProjectCard from '../../models/strapi/StrapiProjectCard';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { IStrapiData, PortfolioProject, StrapiProject } from '../..';\nimport ProjectGridCard from '../../components/ProjectGridCard';\n\ninterface TextWithCardSlice {\n tagline?: string;\n title: string;\n text?: string;\n listItems?: {\n id: number;\n text: string;\n }[];\n button?: StrapiLink;\n card?: StrapiProjectCard;\n project?: { data?: IStrapiData<StrapiProject> };\n cardPosition: 'left' | 'right';\n}\nexport interface TextWithCardProps {\n slice: TextWithCardSlice;\n projects: PortfolioProject[];\n}\n\nexport const TextWithCard: React.FC<TextWithCardProps> = ({\n slice,\n projects,\n}: TextWithCardProps) => {\n const portfolioProject = projects.find(\n (p) =>\n slice.project?.data?.attributes.fpmProjectId &&\n p.id === slice.project.data.attributes.fpmProjectId\n );\n\n const card = (\n <GridItem\n colSpan={[4, null, null, null, 2]}\n rowSpan={1}\n position=\"relative\"\n data-testid={`card-position-${slice.cardPosition}`}\n >\n {portfolioProject && <ProjectGridCard project={portfolioProject} />}\n {!portfolioProject && slice.card && (\n <ProjectCard\n facts={slice.card.facts}\n footerSubTitle={slice.card.footerSubTitle}\n footerTitle={slice.card.footerTitle}\n title={slice.card.title}\n image={\n <Image\n src={strapiMediaUrl(slice.card.image.img, 'medium')}\n alt={slice.card.image.alt}\n fill\n style={{ objectFit: slice.card.image.objectFit || 'cover' }}\n />\n }\n />\n )}\n </GridItem>\n );\n\n return (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <Grid\n templateColumns={[\n 'repeat(4, auto)',\n null,\n null,\n null,\n 'repeat(6, auto)',\n ]}\n templateRows={[\n 'repeat(2, auto)',\n null,\n null,\n null,\n 'repeat(1, auto)',\n ]}\n rowGap=\"12\"\n columnGap={['0', null, null, null, '28']}\n >\n {slice.cardPosition === 'left' && card}\n <GridItem colSpan={4} rowSpan={1} position=\"relative\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n {slice.listItems && (\n <>\n <Spacer height=\"10\" />\n <BoemlyList listItems={slice.listItems} />\n <Spacer height=\"10\" />\n </>\n )}\n\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n colorScheme=\"white\"\n variant=\"outline\"\n rightIcon={<ArrowRight />}\n component=\"TextWithCard\"\n />\n )}\n </GridItem>\n {slice.cardPosition === 'right' && card}\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MEDIUM_TRANSITION_DURATION = 0.2;\n","import React from 'react';\nimport Link from 'next/link';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Heading,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport strapiLinkUrl from '../../utils/strapiLinkUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\ninterface LinkCardsGridSlice {\n tagline?: string;\n title: string;\n text?: string;\n cards: {\n id: number;\n title: string;\n text?: string;\n link: StrapiLink;\n }[];\n}\nexport interface LinkCardsGridProps {\n slice: LinkCardsGridSlice;\n}\n\nexport const LinkCardsGrid: React.FC<LinkCardsGridProps> = ({\n slice,\n}: LinkCardsGridProps) => (\n <DefaultSectionContainer title={slice.title}>\n <Wrapper>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n\n <SimpleGrid mt=\"16\" columns={[1, null, null, null, 2]} gap=\"4\">\n {slice.cards.map(({ id, title, text, link }) => (\n <Box\n key={id}\n as={Link}\n href={strapiLinkUrl(link)}\n data-testid=\"link\"\n px=\"10\"\n py=\"8\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n display=\"flex\"\n flexDir=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n cursor=\"pointer\"\n transitionDuration={`${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ backgroundColor: 'gray.50' }}\n >\n <div>\n <Heading as=\"h4\" size=\"lg\">\n {title}\n </Heading>\n {text && (\n <Text mt=\"2\" size=\"smRegularNormal\">\n {text}\n </Text>\n )}\n </div>\n\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n borderStyle=\"solid\"\n borderWidth=\"thin\"\n borderColor=\"gray.200\"\n borderRadius=\"2xl\"\n height=\"12\"\n width=\"12\"\n minWidth=\"12\"\n minHeight=\"12\"\n ml=\"6\"\n backgroundColor=\"white\"\n >\n <CaretRight />\n </Box>\n </Box>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React from 'react';\nimport {\n Box,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Tag,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SmallHeroProps {\n slice: {\n tags?: {\n id: number;\n text: string;\n colorScheme: string;\n }[];\n tagline?: string;\n title: string;\n subTitle?: string;\n button?: StrapiLink;\n image?: StrapiImage;\n gradient?: boolean;\n };\n theme: 'dark' | 'light';\n}\n\nconst colors = {\n dark: {\n tagline: 'white',\n title: 'white',\n text: 'white',\n background: 'gray.900',\n },\n light: {\n tagline: 'primary.500',\n title: 'black',\n text: 'gray.500',\n background: 'primary.50',\n },\n};\n\nexport const SmallHero: React.FC<SmallHeroProps> = ({\n slice,\n theme,\n}: SmallHeroProps) => (\n <Box\n position=\"relative\"\n width=\"full\"\n height=\"xl\"\n backgroundColor={colors[theme].background}\n >\n {slice.image && (\n <>\n <Image\n src={strapiMediaUrl(slice.image.img, 'xLarge')}\n alt={slice.image.alt}\n fill\n style={{ objectFit: slice.image.objectFit || 'cover' }}\n />\n {slice.gradient && <Gradient />}\n </>\n )}\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"60%\"\n width=\"full\"\n textAlign=\"center\"\n transform=\"translateY(-50%)\"\n >\n <Wrapper>\n <>\n {slice.tags && (\n <Flex direction=\"row\" justify=\"center\" gap=\"2\" mb=\"4\" wrap=\"wrap\">\n {slice.tags.map(({ id, text, colorScheme }) => (\n <Tag\n key={id}\n colorScheme={colorScheme}\n size=\"md\"\n variant=\"subtle\"\n >\n {text}\n </Tag>\n ))}\n </Flex>\n )}\n <DefaultSectionHeader\n isHero\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n taglineProps={{\n color: colors[theme].tagline,\n textAlign: 'center',\n mx: 'auto',\n }}\n titleProps={{\n color: colors[theme].title,\n maxW: '4xl',\n textAlign: 'center',\n mx: 'auto',\n }}\n textProps={{\n maxW: '2xl',\n textAlign: 'center',\n mx: 'auto',\n color: colors[theme].text,\n }}\n />\n {slice.button && (\n <StrapiLinkButton\n link={slice.button}\n mt=\"6\"\n size=\"lg\"\n component=\"SmallHero\"\n />\n )}\n </>\n </Wrapper>\n </Box>\n </Box>\n);\n","import styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box, Link } from 'boemly';\n\nexport const BlogItemContainer = styled(Link)`\n text-decoration: none;\n\n & div img {\n transition: transform var(--default-ease) var(--medium-transition-duration);\n }\n\n &:hover {\n text-decoration: none;\n\n & > div:first-of-type img {\n transform: scale(1.03);\n }\n }\n`;\n\nexport const ImageContainer = styled(Box)`\n width: 100%;\n height: var(--boemly-sizes-xs);\n position: relative;\n border-radius: var(--boemly-radii-2xl);\n\n // Fixes the flickering of borders during animation in Safari\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n & span,\n div {\n border-radius: var(--boemly-radii-2xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: var(--boemly-sizes-3xs);\n }\n`;\n","import React, { useContext } from 'react';\nimport {\n Box,\n DatePersonPair,\n DefaultSectionContainer,\n Heading,\n SimpleGrid,\n Spacer,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport { BlogItemContainer, ImageContainer } from './styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogProps {\n slice: {\n blog_posts: IStrapiData<StrapiBlogPost>[];\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nexport const Blog: React.FC<BlogProps> = ({ slice, blogPosts }: BlogProps) => {\n const { formatDate } = useContext(IntlContext);\n const sortedBlogPosts = slice.blog_posts.sort(\n (a, b) =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime()\n );\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2]} spacingX={56} spacingY={24}>\n {sortedBlogPosts.map(({ attributes }) => {\n const blogPost: IStrapiData<StrapiBlogPost> | undefined =\n blogPosts.find((bp) => bp.attributes.slug === attributes.slug);\n if (!blogPost) {\n return null;\n }\n return (\n <BlogItemContainer\n key={blogPost.attributes.slug}\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'large')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category.data && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n <Spacer height=\"4\" />\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author.data\n ? {\n name: blogPost.attributes.author.data.attributes\n .name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes\n .img.objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, DefaultSectionContainer, SimpleGrid, Wrapper } from 'boemly';\nimport Link from 'next/link';\nimport { MEDIUM_TRANSITION_DURATION } from '../../constants/animations';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport IStrapi from '../../models/strapi/IStrapi';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiProject from '../../models/strapi/StrapiProject';\nimport ProjectGridCard from '../../components/ProjectGridCard';\n\nexport interface ProjectsGridProps {\n slice: {\n projects: IStrapi<IStrapiData<StrapiProject>[]>;\n };\n projects: PortfolioProject[];\n}\n\nconst ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: {\n condition: boolean;\n wrapper: (children: JSX.Element) => JSX.Element;\n children: JSX.Element;\n}) => (condition ? wrapper(children) : children);\n\nexport const ProjectsGrid: React.FC<ProjectsGridProps> = ({\n projects,\n slice,\n}: ProjectsGridProps) => {\n const filteredProjects = projects.filter(\n (fpmProject) =>\n fpmProject.thumbnail &&\n slice.projects.data.some(\n (strapiProject) =>\n strapiProject.attributes.fpmProjectId === fpmProject.id\n )\n );\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2, null, 3]} gap=\"16\">\n {filteredProjects.map((project) => (\n <ConditionalWrapper\n key={project.id}\n condition={!!project.slug}\n wrapper={(children: JSX.Element) => (\n <Link\n href={`${project.portfolioHost || ''}/portfolio/${\n project.slug\n }`}\n passHref\n key={project.id}\n legacyBehavior\n >\n {children}\n </Link>\n )}\n >\n <Box\n as=\"a\"\n cursor=\"pointer\"\n borderRadius=\"2xl\"\n transition={`box-shadow ease ${MEDIUM_TRANSITION_DURATION}s`}\n _hover={{ boxShadow: 'lg' }}\n >\n <ProjectGridCard project={project} />\n </Box>\n </ConditionalWrapper>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MAPBOX_TOKEN =\n 'pk.eyJ1IjoidHJlZS1seSIsImEiOiJja25rNG1heHgwNThjMnZwZTl2eThmeXUwIn0.SOrYUKfevZkbx8jZPxJesA';\n\nexport enum MapBoxStyle {\n Outdoors = 'mapbox://styles/mapbox/outdoors-v11',\n SatelliteStreets = 'mapbox://styles/mapbox/satellite-streets-v11',\n Satellite = 'mapbox://styles/mapbox/satellite-v9',\n CaliTerrain = 'mapbox://styles/tree-ly/clna54iq603ht01pbc199cszw',\n}\n\nexport const MAPBOX_TILES_URL = `${\n process.env.NEXT_PUBLIC_MAPBOX_TILES_URL || 'http://localhost:8123'\n}/vectortiles/v1/plots/{z}/{x}/{y}.mvt`;\nexport const MAPBOX_SOURCE_LAYER = 'plots';\nexport const MAPBOX_SOURCE_IDENTIFIER = 'plots';\nexport const MAPBOX_BORDER_LAYER_IDENTIFIER = 'plots-borders';\nexport const MAPBOX_FILL_LAYER_IDENTIFIER = 'plots-fill';\nexport const MAPBOX_TEXT_LAYER_IDENTIFIER = 'plots-text';\n\nexport const MAPBOX_TEXT_MIN_ZOOM = 15;\nexport const MAPBOX_SHAPES_MIN_ZOOM = 13;\n\nexport const MAPBOX_MAX_ZOOM = 19;\nexport const MAPBOX_INITIAL_ZOOM = 13;\n","import { css } from '@emotion/react';\n\nconst mapboxStyle = css`\n .mapboxgl-map {\n -webkit-tap-highlight-color: rgb(0 0 0/0);\n font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;\n overflow: hidden;\n position: relative;\n }\n .mapboxgl-canvas {\n left: 0;\n position: absolute;\n top: 0;\n }\n .mapboxgl-map:-webkit-full-screen {\n height: 100%;\n width: 100%;\n }\n .mapboxgl-canary {\n background-color: salmon;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {\n cursor: grab;\n -webkit-user-select: none;\n user-select: none;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {\n cursor: pointer;\n }\n .mapboxgl-canvas-container.mapboxgl-interactive:active,\n .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {\n cursor: grabbing;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {\n touch-action: pinch-zoom;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,\n .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan\n .mapboxgl-canvas {\n touch-action: none;\n }\n .mapboxgl-ctrl-bottom-left,\n .mapboxgl-ctrl-bottom-right,\n .mapboxgl-ctrl-top-left,\n .mapboxgl-ctrl-top-right {\n pointer-events: none;\n position: absolute;\n z-index: 2;\n }\n .mapboxgl-ctrl-top-left {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-right {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left {\n bottom: 0;\n left: 0;\n }\n .mapboxgl-ctrl-bottom-right {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl {\n clear: both;\n pointer-events: auto;\n transform: translate(0);\n }\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl {\n float: left;\n margin: 10px 0 0 10px;\n }\n .mapboxgl-ctrl-top-right .mapboxgl-ctrl {\n float: right;\n margin: 10px 10px 0 0;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl {\n float: left;\n margin: 0 0 10px 10px;\n }\n .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl {\n float: right;\n margin: 0 10px 10px 0;\n }\n .mapboxgl-ctrl-group {\n background: #fff;\n border-radius: 4px;\n }\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-group:not(:empty) {\n box-shadow: 0 0 0 2px ButtonText;\n }\n }\n .mapboxgl-ctrl-group button {\n background-color: transparent;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 29px;\n outline: none;\n overflow: hidden;\n padding: 0;\n width: 29px;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid #ddd;\n }\n .mapboxgl-ctrl button .mapboxgl-ctrl-icon {\n background-position: 50%;\n background-repeat: no-repeat;\n display: block;\n height: 100%;\n width: 100%;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl-icon {\n background-color: transparent;\n }\n .mapboxgl-ctrl-group button + button {\n border-top: 1px solid ButtonText;\n }\n }\n .mapboxgl-ctrl-attrib-button:focus,\n .mapboxgl-ctrl-group button:focus {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl button:disabled {\n cursor: not-allowed;\n }\n .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {\n opacity: 0.25;\n }\n .mapboxgl-ctrl-group button:first-of-type {\n border-radius: 4px 4px 0 0;\n }\n .mapboxgl-ctrl-group button:last-of-type {\n border-radius: 0 0 4px 4px;\n }\n .mapboxgl-ctrl-group button:only-of-type {\n border-radius: inherit;\n }\n .mapboxgl-ctrl button:not(:disabled):hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-group button:focus:focus-visible {\n box-shadow: 0 0 2px 2px #0096ff;\n }\n .mapboxgl-ctrl-group button:focus:not(:focus-visible) {\n box-shadow: none;\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 29 29'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting\n .mapboxgl-ctrl-icon {\n animation: mapboxgl-spin 2s linear infinite;\n }\n @media (-ms-high-contrast: active) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl\n button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error\n .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E%3C/svg%3E\");\n }\n .mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle id='dot' cx='10' cy='10' r='2'/%3E%3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='%23f00'/%3E%3C/svg%3E\");\n }\n }\n @keyframes mapboxgl-spin {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n }\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='0.9' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n cursor: pointer;\n display: block;\n height: 23px;\n margin: 0 0 -4px -4px;\n overflow: hidden;\n width: 88px;\n }\n a.mapboxgl-ctrl-logo.mapboxgl-compact {\n width: 23px;\n }\n @media (-ms-high-contrast: active) {\n a.mapboxgl-ctrl-logo {\n background-color: transparent;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23fff'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n @media (-ms-high-contrast: black-on-white) {\n a.mapboxgl-ctrl-logo {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='clip'%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/mask%3E%3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E%3C/g%3E%3Cg id='fill' opacity='1' fill='%23000'%3E%3Cuse xlink:href='%23logo'/%3E%3Cuse xlink:href='%23text'/%3E%3C/g%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl.mapboxgl-ctrl-attrib {\n background-color: hsla(0, 0%, 100%, 0.5);\n margin: 0;\n padding: 0 5px;\n }\n @media screen {\n .mapboxgl-ctrl-attrib.mapboxgl-compact {\n background-color: #fff;\n border-radius: 12px;\n margin: 10px;\n min-height: 20px;\n padding: 2px 24px 2px 0;\n position: relative;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n padding: 2px 28px 2px 8px;\n visibility: visible;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show,\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact-show {\n border-radius: 12px;\n padding: 2px 8px 2px 28px;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner {\n display: none;\n }\n .mapboxgl-ctrl-attrib-button {\n background-color: hsla(0, 0%, 100%, 0.5);\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n border: 0;\n border-radius: 12px;\n box-sizing: border-box;\n cursor: pointer;\n display: none;\n height: 24px;\n outline: none;\n position: absolute;\n right: 0;\n top: 0;\n width: 24px;\n }\n .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button {\n left: 0;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner {\n display: block;\n }\n .mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n right: 0;\n }\n .mapboxgl-ctrl-top-right > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n right: 0;\n top: 0;\n }\n .mapboxgl-ctrl-top-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n left: 0;\n top: 0;\n }\n .mapboxgl-ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n bottom: 0;\n left: 0;\n }\n }\n @media screen and (-ms-high-contrast: active) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n @media screen and (-ms-high-contrast: black-on-white) {\n .mapboxgl-ctrl-attrib.mapboxgl-compact:after {\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E\");\n }\n }\n .mapboxgl-ctrl-attrib a {\n color: rgba(0, 0, 0, 0.75);\n text-decoration: none;\n }\n .mapboxgl-ctrl-attrib a:hover {\n color: inherit;\n text-decoration: underline;\n }\n .mapboxgl-ctrl-attrib .mapbox-improve-map {\n font-weight: 700;\n margin-left: 2px;\n }\n .mapboxgl-attrib-empty {\n display: none;\n }\n .mapboxgl-ctrl-scale {\n background-color: hsla(0, 0%, 100%, 0.75);\n border: 2px solid #333;\n border-top: #333;\n box-sizing: border-box;\n color: #333;\n font-size: 10px;\n padding: 0 5px;\n white-space: nowrap;\n }\n .mapboxgl-popup {\n display: flex;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n will-change: transform;\n }\n .mapboxgl-popup-anchor-top,\n .mapboxgl-popup-anchor-top-left,\n .mapboxgl-popup-anchor-top-right {\n flex-direction: column;\n }\n .mapboxgl-popup-anchor-bottom,\n .mapboxgl-popup-anchor-bottom-left,\n .mapboxgl-popup-anchor-bottom-right {\n flex-direction: column-reverse;\n }\n .mapboxgl-popup-anchor-left {\n flex-direction: row;\n }\n .mapboxgl-popup-anchor-right {\n flex-direction: row-reverse;\n }\n .mapboxgl-popup-tip {\n border: 10px solid transparent;\n height: 0;\n width: 0;\n z-index: 1;\n }\n .mapboxgl-popup-anchor-top .mapboxgl-popup-tip {\n align-self: center;\n border-bottom-color: #fff;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom-color: #fff;\n border-left: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom-color: #fff;\n border-right: none;\n border-top: none;\n }\n .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n align-self: center;\n border-bottom: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip {\n align-self: flex-start;\n border-bottom: none;\n border-left: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip {\n align-self: flex-end;\n border-bottom: none;\n border-right: none;\n border-top-color: #fff;\n }\n .mapboxgl-popup-anchor-left .mapboxgl-popup-tip {\n align-self: center;\n border-left: none;\n border-right-color: #fff;\n }\n .mapboxgl-popup-anchor-right .mapboxgl-popup-tip {\n align-self: center;\n border-left-color: #fff;\n border-right: none;\n }\n .mapboxgl-popup-close-button {\n background-color: transparent;\n border: 0;\n border-radius: 0 3px 0 0;\n cursor: pointer;\n position: absolute;\n right: 0;\n top: 0;\n }\n .mapboxgl-popup-close-button:hover {\n background-color: rgb(0 0 0/5%);\n }\n .mapboxgl-popup-content {\n background: #fff;\n border-radius: 3px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n padding: 10px 10px 15px;\n pointer-events: auto;\n position: relative;\n }\n .mapboxgl-popup-anchor-top-left .mapboxgl-popup-content {\n border-top-left-radius: 0;\n }\n .mapboxgl-popup-anchor-top-right .mapboxgl-popup-content {\n border-top-right-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content {\n border-bottom-left-radius: 0;\n }\n .mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content {\n border-bottom-right-radius: 0;\n }\n .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-popup-track-pointer * {\n pointer-events: none;\n user-select: none;\n }\n .mapboxgl-map:hover .mapboxgl-popup-track-pointer {\n display: flex;\n }\n .mapboxgl-map:active .mapboxgl-popup-track-pointer {\n display: none;\n }\n .mapboxgl-marker {\n left: 0;\n opacity: 1;\n position: absolute;\n top: 0;\n transition: opacity 0.2s;\n will-change: transform;\n }\n .mapboxgl-user-location-dot,\n .mapboxgl-user-location-dot:before {\n background-color: #1da1f2;\n border-radius: 50%;\n height: 15px;\n width: 15px;\n }\n .mapboxgl-user-location-dot:before {\n animation: mapboxgl-user-location-dot-pulse 2s infinite;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-dot:after {\n border: 2px solid #fff;\n border-radius: 50%;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.35);\n box-sizing: border-box;\n content: '';\n height: 19px;\n left: -2px;\n position: absolute;\n top: -2px;\n width: 19px;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading {\n height: 0;\n width: 0;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-bottom: 7.5px solid #4aa1eb;\n content: '';\n position: absolute;\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before {\n border-left: 7.5px solid transparent;\n transform: translateY(-28px) skewY(-20deg);\n }\n .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after {\n border-right: 7.5px solid transparent;\n transform: translate(7.5px, -28px) skewY(20deg);\n }\n @keyframes mapboxgl-user-location-dot-pulse {\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n 70% {\n opacity: 0;\n transform: scale(3);\n }\n to {\n opacity: 0;\n transform: scale(1);\n }\n }\n .mapboxgl-user-location-dot-stale {\n background-color: #aaa;\n }\n .mapboxgl-user-location-dot-stale:after {\n display: none;\n }\n .mapboxgl-user-location-accuracy-circle {\n background-color: #1da1f233;\n border-radius: 100%;\n height: 1px;\n width: 1px;\n }\n .mapboxgl-crosshair,\n .mapboxgl-crosshair .mapboxgl-interactive,\n .mapboxgl-crosshair .mapboxgl-interactive:active {\n cursor: crosshair;\n }\n .mapboxgl-boxzoom {\n background: #fff;\n border: 2px dotted #202020;\n height: 0;\n left: 0;\n opacity: 0.5;\n position: absolute;\n top: 0;\n width: 0;\n }\n @media print {\n .mapbox-improve-map {\n display: none;\n }\n }\n .mapboxgl-scroll-zoom-blocker,\n .mapboxgl-touch-pan-blocker {\n align-items: center;\n background: rgba(0, 0, 0, 0.7);\n color: #fff;\n display: flex;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif;\n height: 100%;\n justify-content: center;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n text-align: center;\n top: 0;\n transition: opacity 0.75s ease-in-out;\n transition-delay: 1s;\n width: 100%;\n }\n .mapboxgl-scroll-zoom-blocker-show,\n .mapboxgl-touch-pan-blocker-show {\n opacity: 1;\n transition: opacity 0.1s ease-in-out;\n }\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,\n .mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page\n .mapboxgl-canvas {\n touch-action: pan-x pan-y;\n }\n`;\n\nexport default mapboxStyle;\n","import { FeatureCollection } from 'geojson';\nimport fpmClient from '../fpmClient';\n\nconst getFpmProjectsByBbox = async (\n bbox: string,\n preview: boolean = false\n): Promise<FeatureCollection> => {\n const [west, south, east, north] = bbox.split(',').map(Number);\n const cache = preview ? false : undefined;\n\n const fpmResponse = await fpmClient.get<FeatureCollection>(\n '/public/projects',\n {\n params: {\n bbox: `${west},${south},${east},${north}`,\n },\n cache,\n }\n );\n\n return fpmResponse.data;\n};\n\nexport default getFpmProjectsByBbox;\n","import { FeatureCollection } from 'geojson';\nimport { IStrapiData, StrapiProject } from '..';\n\nconst mergeProjectData = (\n featureCollection: FeatureCollection,\n strapiProjects: Map<string, IStrapiData<StrapiProject>>\n): FeatureCollection => {\n // Add slug and portfolioHost to each feature's properties if we have Strapi data\n const mergedFeatureCollection = {\n ...featureCollection,\n features: featureCollection.features.map((feature) => {\n const fpmProjectId = feature.properties?.id;\n const strapiProject = fpmProjectId\n ? strapiProjects.get(fpmProjectId)\n : null;\n\n if (strapiProject) {\n feature.properties = {\n ...feature.properties,\n slug: strapiProject.attributes.slug || undefined,\n portfolioHost:\n strapiProject.attributes.portfolio?.data?.attributes.host ||\n undefined,\n };\n }\n\n return feature;\n }),\n };\n\n return mergedFeatureCollection;\n};\n\nexport default mergeProjectData;\n","import React, {\n useRef,\n useEffect,\n useState,\n useCallback,\n useContext,\n} from 'react';\nimport mapboxgl from 'mapbox-gl';\nimport {\n Box,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n} from 'boemly';\nimport { MAPBOX_MAX_ZOOM, MAPBOX_TOKEN } from '../../constants/mapbox';\nimport { IntlContext } from '../../components/ContextProvider';\nimport mapboxStyle from './mapboxStyle';\nimport { FeatureCollection } from 'geojson';\nimport debounce from 'lodash/debounce';\nimport getFpmProjectsByBbox from '../../integrations/strapi/getFpmProjectsByBbox';\nimport getStrapiProjects from '../../integrations/strapi/getStrapiProjects';\nimport mergeProjectData from '../../utils/mergeProjectData';\nimport { CreditAvailability } from '../../models/fpm/FPMProject';\nimport { IStrapiData, StrapiProject } from '../..';\n\nconst projectPinImage =\n 'https://cdn.jsdelivr.net/npm/@phosphor-icons/core@2.0.2/assets/fill/map-pin-fill.svg';\n\nmapboxgl.accessToken = MAPBOX_TOKEN;\n\nexport interface ProjectsMapProps {\n slice: {\n tagline?: string;\n title?: string;\n text?: string;\n defaultCenterCoordinates?: { latitude: number; longitude: number };\n defaultZoomLevel?: number;\n };\n}\n\nconst FALLBACK_BBOX =\n '-1.9950830850086163,44.4464186384987,21.995083085002875,54.12644342419196';\n\nexport const ProjectsMap: React.FC<ProjectsMapProps> = ({\n slice,\n}: ProjectsMapProps) => {\n const { locale, formatMessage } = useContext(IntlContext);\n const mapContainer = useRef<HTMLDivElement>(null);\n const map = useRef<mapboxgl.Map | null>(null);\n const animationIntervalRef = useRef<NodeJS.Timeout | null>(null);\n const [featureCollection, setFeatureCollection] =\n useState<FeatureCollection | null>(null);\n const [isLoading, setIsLoading] = useState(false);\n const initialBboxRef = useRef<string | null>(null);\n const [isMapReady, setIsMapReady] = useState(false);\n const [strapiProjects, setStrapiProjects] = useState<Map<\n string,\n IStrapiData<StrapiProject>\n > | null>(null);\n\n const isBboxContained = useCallback(\n (innerBbox: string, outerBbox: string): boolean => {\n const [innerWest, innerSouth, innerEast, innerNorth] = innerBbox\n .split(',')\n .map(Number);\n const [outerWest, outerSouth, outerEast, outerNorth] = outerBbox\n .split(',')\n .map(Number);\n return (\n innerWest >= outerWest &&\n innerEast <= outerEast &&\n innerSouth >= outerSouth &&\n innerNorth <= outerNorth\n );\n },\n []\n );\n\n const fetchStrapiData = useCallback(async () => {\n if (strapiProjects) return; // If we already have Strapi data, don't fetch it again\n\n try {\n const data = await getStrapiProjects(locale, '2'); // pLevel = Population depth which is a param in the API request. 2 is enough to get the slug and the portfolioHost\n setStrapiProjects(data);\n } catch (error) {\n console.error('❌ Error fetching Strapi projects:', error);\n }\n }, [locale, strapiProjects]);\n\n const fetchProjectsData = useCallback(\n async (bbox: string) => {\n setIsLoading(true);\n try {\n const fpmData = await getFpmProjectsByBbox(bbox);\n\n // If we have Strapi data, merge it, otherwise show FPM data immediately\n const mergedData = strapiProjects\n ? mergeProjectData(fpmData, strapiProjects)\n : fpmData;\n\n setFeatureCollection(mergedData);\n } catch (error) {\n console.error('Error fetching projects:', error);\n } finally {\n setIsLoading(false);\n }\n },\n [strapiProjects]\n );\n\n const debouncedUpdateBbox = useCallback(\n debounce(() => {\n if (!map.current || !initialBboxRef.current) return;\n const bounds = map.current.getBounds();\n const newBbox = `${bounds.getWest()},${bounds.getSouth()},${bounds.getEast()},${bounds.getNorth()}`;\n if (!isBboxContained(newBbox, initialBboxRef.current)) {\n fetchProjectsData(newBbox);\n initialBboxRef.current = newBbox;\n }\n }, 500),\n [fetchProjectsData, isBboxContained]\n );\n\n const addProjectsLayer = useCallback(() => {\n if (!map.current || !featureCollection || !map.current.isStyleLoaded()) {\n return;\n }\n\n const filteredFeatureCollection = {\n ...featureCollection,\n features: featureCollection.features.filter(\n (feature) => feature.properties?.isPublic !== false\n ),\n };\n\n const source = map.current.getSource('projects') as mapboxgl.GeoJSONSource;\n\n if (!source) {\n map.current.addSource('projects', {\n type: 'geojson',\n data: filteredFeatureCollection,\n cluster: true,\n clusterMaxZoom: 14,\n clusterRadius: 50,\n });\n\n map.current.addLayer({\n id: 'clusters',\n type: 'circle',\n source: 'projects',\n filter: ['has', 'point_count'],\n paint: {\n 'circle-color': [\n 'step',\n ['get', 'point_count'],\n '#51bbd6',\n 2,\n '#2A3FBA',\n ],\n 'circle-radius': ['step', ['get', 'point_count'], 20, 10, 30, 30, 40],\n 'circle-radius-transition': { duration: 300 },\n 'circle-stroke-width': 5,\n 'circle-stroke-color': '#2A3FBA',\n 'circle-stroke-opacity': 0.4,\n },\n });\n\n if (animationIntervalRef.current) {\n clearInterval(animationIntervalRef.current);\n }\n animationIntervalRef.current = setInterval(() => {\n if (!map.current) return;\n const now = Date.now() / 1000;\n const pulseFactor = 1 + 0.05 * Math.sin((now * 2 * Math.PI) / 2.8);\n const expression = [\n 'step',\n ['get', 'point_count'],\n 20 * pulseFactor,\n 10,\n 30 * pulseFactor,\n 30,\n 40 * pulseFactor,\n ] as mapboxgl.ExpressionSpecification;\n map.current.setPaintProperty('clusters', 'circle-radius', expression);\n }, 50);\n\n map.current.addLayer({\n id: 'cluster-count',\n type: 'symbol',\n source: 'projects',\n filter: ['has', 'point_count'],\n layout: {\n 'text-field': '{point_count_abbreviated}',\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\n 'text-size': 12,\n },\n paint: {\n 'text-color': '#fff',\n },\n });\n\n // Load SVG as PNG\n fetch(projectPinImage)\n .then((response) => response.text())\n .then((svgText) => {\n // Modify SVG color\n const modifiedSvg = svgText.replace(/fill=\"[^\"]*\"/, `fill=\"#2A3FBA\"`);\n const img = new Image();\n img.src = `data:image/svg+xml;base64,${btoa(modifiedSvg)}`;\n return new Promise<HTMLImageElement>((resolve, reject) => {\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n })\n .then((img) => {\n if (!map.current) return;\n const canvas = document.createElement('canvas');\n canvas.width = 80;\n canvas.height = 80;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.drawImage(img, 10, 10, 60, 60);\n const pngImg = new Image();\n pngImg.src = canvas.toDataURL('image/png');\n pngImg.onload = () => {\n map.current?.addImage('project-pin', pngImg, { pixelRatio: 2 });\n map.current?.addLayer({\n id: 'unclustered-point',\n type: 'symbol',\n source: 'projects',\n filter: ['!', ['has', 'point_count']],\n layout: {\n 'icon-image': 'project-pin',\n },\n });\n };\n })\n .catch((error) => {\n console.error('Error loading project pin image:', error);\n });\n\n const popup = new mapboxgl.Popup({\n closeButton: true,\n closeOnClick: false,\n className: 'custom-popup',\n offset: [0, -20],\n });\n\n const style = document.createElement('style');\n style.textContent = `\n .custom-popup .mapboxgl-popup-content {\n border-radius: 8px;\n padding: 12px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.2);\n background: white;\n color: #333;\n }\n .mapboxgl-popup {\n max-width: 300px !important;\n }\n .mapboxgl-popup-close-button {\n padding: 4px 8px;\n font-size: 16px;\n color: #666;\n }\n .mapboxgl-popup-close-button:hover {\n background: #f0f0f0;\n color: #333;\n }\n `;\n document.head.appendChild(style);\n\n map.current.on('click', 'unclustered-point', (e) => {\n if (!e.features || !e.features[0].properties) return;\n map.current!.getCanvas().style.cursor = 'pointer';\n\n const coordinates = (e.features[0].geometry as any).coordinates.slice();\n const {\n title,\n projectDeveloper,\n slug,\n portfolioHost,\n creditAvailability,\n } = e.features[0].properties;\n\n // Calculate if popup would go off screen at the top\n const point = map.current!.project(coordinates);\n const popupHeight = 150; // Approximate height of popup\n const offset: [number, number] =\n point.y - popupHeight - 20 < 0 ? [0, 20] : [0, -20];\n\n let developer = 'Unknown';\n try {\n const projectDeveloperRaw = projectDeveloper;\n if (projectDeveloperRaw) {\n developer =\n JSON.parse(projectDeveloperRaw as string)?.name ?? 'Unknown';\n }\n } catch {\n developer = 'Unknown';\n }\n\n const projectUrl =\n slug && portfolioHost ? `${portfolioHost}/portfolio/${slug}` : null;\n\n const getBadgeMessage = (status: string) => {\n switch (status) {\n case CreditAvailability.CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.yes',\n });\n case CreditAvailability.NO_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.no',\n });\n case CreditAvailability.SOME_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.some',\n });\n case CreditAvailability.SOON_CREDITS_AVAILABLE:\n return formatMessage({\n id: 'components.creditsAvailableBadge.text.notYet',\n });\n default:\n return '';\n }\n };\n\n const getBadgeColor = (status: string) => {\n switch (status) {\n case CreditAvailability.CREDITS_AVAILABLE:\n return '#15803d';\n case CreditAvailability.NO_CREDITS_AVAILABLE:\n return '#b91c1c';\n case CreditAvailability.SOME_CREDITS_AVAILABLE:\n return '#ea580c';\n case CreditAvailability.SOON_CREDITS_AVAILABLE:\n return '#2563eb';\n default:\n return '#e0e7ff';\n }\n };\n\n const badgeColor = getBadgeColor(creditAvailability);\n const badgeMessage = getBadgeMessage(creditAvailability);\n\n const badge = projectUrl\n ? `<a href=\"${projectUrl}\" target=\"_blank\" rel=\"noopener\" style=\"text-decoration: none;\"><span style=\"display: inline-block; background: ${badgeColor}; color: white; font-weight: 600; border-radius: 4px; padding: 2px 8px; font-size: 12px; margin-bottom: 6px; cursor: pointer;\">${badgeMessage}</span></a>`\n : `<span style=\"display: inline-block; background: ${badgeColor}; color: white; font-weight: 600; border-radius: 4px; padding: 2px 8px; font-size: 12px; margin-bottom: 6px;\">${badgeMessage}</span>`;\n\n const button = projectUrl\n ? `<a href=\"${projectUrl}\" target=\"_blank\" rel=\"noopener\" style=\"display: inline-block; margin-top: 12px; padding: 4px 8px; border: 1px solid #e2e8f0; border-radius: 4px; background: #fff; font-size: 14px; font-weight: 700; text-decoration: none;\">Show more info</a>`\n : '';\n\n const description = `\n <div style=\"padding: 2px; padding-right: 16px; min-width: 180px; max-width: 260px;\">\n ${badge}\n <h3 style=\"font-size: 15px; font-weight: bold;\">${title}</h3>\n <p style=\"font-size: 15px; color: #64748b;\">${developer}</p>\n ${button}\n </div>\n `;\n\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\n }\n\n popup\n .setOffset(offset)\n .setLngLat(coordinates)\n .setHTML(description)\n .addTo(map.current!);\n });\n\n map.current.on('click', 'clusters', (e) => {\n const features = map.current?.queryRenderedFeatures(e.point, {\n layers: ['clusters'],\n });\n if (!features || !features[0].properties) return;\n\n const clusterId = features[0].properties.cluster_id;\n const projectSource = map.current?.getSource(\n 'projects'\n ) as mapboxgl.GeoJSONSource;\n\n projectSource.getClusterExpansionZoom(clusterId, (err, zoom) => {\n if (err || !map.current) return;\n const coordinates = (features[0].geometry as any).coordinates;\n map.current.easeTo({ center: coordinates, zoom });\n });\n });\n\n map.current.on('mouseenter', 'clusters', () => {\n if (map.current) map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'clusters', () => {\n if (map.current) map.current.getCanvas().style.cursor = '';\n });\n\n map.current.on('mouseenter', 'unclustered-point', () => {\n if (map.current) map.current.getCanvas().style.cursor = 'pointer';\n });\n map.current.on('mouseleave', 'unclustered-point', () => {\n if (map.current) map.current.getCanvas().style.cursor = '';\n });\n } else {\n source.setData(filteredFeatureCollection);\n }\n }, [featureCollection, locale, formatMessage]);\n\n useEffect(() => {\n if (map.current || !mapContainer.current) return;\n\n let initialCenter: [number, number];\n let initialZoom: number;\n\n if (slice.defaultCenterCoordinates && slice.defaultZoomLevel) {\n initialCenter = [\n slice.defaultCenterCoordinates.longitude,\n slice.defaultCenterCoordinates.latitude,\n ];\n initialZoom = slice.defaultZoomLevel;\n } else {\n // Always start with fallback view - don't wait for user location\n const bbox = initialBboxRef.current || FALLBACK_BBOX;\n const [west, south, east, north] = bbox.split(',').map(Number);\n const bounds = new mapboxgl.LngLatBounds([west, south], [east, north]);\n const center = bounds.getCenter();\n initialCenter = [center.lng, center.lat];\n initialZoom = 6;\n }\n\n map.current = new mapboxgl.Map({\n container: mapContainer.current,\n style: 'mapbox://styles/mapbox/streets-v12',\n center: initialCenter,\n zoom: initialZoom,\n maxZoom: MAPBOX_MAX_ZOOM,\n });\n\n map.current.addControl(new mapboxgl.NavigationControl(), 'top-right');\n\n map.current.on('load', () => {\n setIsMapReady(true);\n if (!(slice.defaultCenterCoordinates && slice.defaultZoomLevel)) {\n const bbox = initialBboxRef.current || FALLBACK_BBOX;\n const [west, south, east, north] = bbox.split(',').map(Number);\n const bounds = new mapboxgl.LngLatBounds([west, south], [east, north]);\n map.current?.fitBounds(bounds, { padding: 20 });\n }\n });\n\n map.current.on('moveend', () => {\n if (initialBboxRef.current) {\n debouncedUpdateBbox();\n }\n });\n\n return () => {\n debouncedUpdateBbox.cancel();\n if (animationIntervalRef.current) {\n clearInterval(animationIntervalRef.current);\n }\n map.current?.remove();\n map.current = null;\n };\n }, [\n slice.defaultCenterCoordinates,\n slice.defaultZoomLevel,\n debouncedUpdateBbox,\n ]);\n\n // Fetch Strapi data once on component mount\n useEffect(() => {\n fetchStrapiData();\n }, [fetchStrapiData]);\n\n // Handle re-merging data when Strapi data becomes available\n useEffect(() => {\n if (strapiProjects && featureCollection) {\n const mergedData = mergeProjectData(featureCollection, strapiProjects);\n setFeatureCollection(mergedData);\n }\n }, [strapiProjects]);\n\n // Request user location (non-blocking)\n useEffect(() => {\n if (slice.defaultCenterCoordinates && slice.defaultZoomLevel) {\n // Use provided default coordinates\n const { latitude, longitude } = slice.defaultCenterCoordinates;\n const buffer = 10;\n const bbox = `${longitude - buffer},${latitude - buffer},${\n longitude + buffer\n },${latitude + buffer}`;\n initialBboxRef.current = bbox;\n fetchProjectsData(bbox);\n } else if (navigator.geolocation) {\n // Set fallback immediately (non-blocking)\n initialBboxRef.current = FALLBACK_BBOX;\n fetchProjectsData(FALLBACK_BBOX);\n\n // Request user location asynchronously\n navigator.geolocation.getCurrentPosition(\n (position) => {\n const userLoc = {\n lat: position.coords.latitude,\n lon: position.coords.longitude,\n };\n if (map.current) {\n map.current.easeTo({\n center: [userLoc.lon, userLoc.lat],\n zoom: 10,\n duration: 1500,\n });\n\n // Update bbox for this location\n const buffer = 1;\n const bbox = `${userLoc.lon - buffer},${userLoc.lat - buffer},${\n userLoc.lon + buffer\n },${userLoc.lat + buffer}`;\n initialBboxRef.current = bbox;\n fetchProjectsData(bbox);\n }\n },\n () => {\n // Permission denied or error - already have fallback data loaded\n // No need to re-fetch since we already loaded FALLBACK_BBOX data\n }\n );\n } else {\n // Geolocation not supported - use fallback\n initialBboxRef.current = FALLBACK_BBOX;\n fetchProjectsData(FALLBACK_BBOX);\n }\n }, [\n slice.defaultCenterCoordinates,\n slice.defaultZoomLevel,\n fetchProjectsData,\n ]);\n\n useEffect(() => {\n if (isMapReady && featureCollection && map.current?.isStyleLoaded()) {\n addProjectsLayer();\n }\n }, [isMapReady, featureCollection, addProjectsLayer]);\n\n return (\n <DefaultSectionContainer>\n <Box css={mapboxStyle}>\n <Wrapper>\n {slice.title ? (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n taglineProps={{ textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Box height=\"16\" />\n </>\n ) : (\n <></>\n )}\n <Box\n height=\"xl\"\n ref={mapContainer}\n borderRadius=\"xl\"\n overflow=\"hidden\"\n boxShadow={['md', null, null, 'none']}\n />\n <>{isLoading && <Box>Loading projects...</Box>}</>\n </Wrapper>\n </Box>\n </DefaultSectionContainer>\n );\n};\n\nexport default ProjectsMap;\n","import React from 'react';\nimport { Box, DefaultSectionContainer, Wrapper } from 'boemly';\nimport { useMeasure } from 'react-use';\n\ninterface VideoSlice {\n youTubeID: string;\n title: string;\n}\n\nexport interface VideoProps {\n slice: VideoSlice;\n}\n\nexport const Video: React.FC<VideoProps> = ({ slice }: VideoProps) => {\n const [ref, { width }] = useMeasure<HTMLDivElement>();\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Box ref={ref} borderRadius=\"xl\">\n <iframe\n data-testid=\"video-iframe\"\n width={width}\n height={(width / 16) * 9}\n src={`https://www.youtube.com/embed/${slice.youTubeID}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n title={slice.title}\n style={{ borderRadius: 'var(--boemly-radii-xl)' }}\n />\n </Box>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport Image from 'next/image';\nimport {\n DefaultSectionContainer,\n Wrapper,\n AvatarWithName,\n Text,\n Box,\n} from 'boemly';\nimport StrapiAvatarWithName from '../../models/strapi/StrapiAvatarWithName';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface FullWidthHighlightQuoteProps {\n slice: {\n tagline?: string;\n quote: string;\n avatarWithName: StrapiAvatarWithName;\n };\n}\n\nexport const FullWidthHighlightQuote: React.FC<\n FullWidthHighlightQuoteProps\n> = ({ slice }: FullWidthHighlightQuoteProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Box maxWidth=\"5xl\" marginX=\"auto\" mb=\"8\">\n {slice.tagline && (\n <Text\n color=\"primary.700\"\n size=\"mdMonoUppercase\"\n textAlign=\"center\"\n mb=\"3\"\n >\n {slice.tagline}\n </Text>\n )}\n <Text color=\"black\" size=\"xlRegularNormalBold\" textAlign=\"center\">\n {slice.quote}\n </Text>\n </Box>\n <AvatarWithName\n name={slice.avatarWithName.name}\n description={slice.avatarWithName.description}\n image={\n <Image\n src={strapiMediaUrl(slice.avatarWithName.image.img, 'small')}\n alt={slice.avatarWithName.image.alt}\n fill\n style={{\n objectFit: slice.avatarWithName.image.objectFit || 'cover',\n }}\n />\n }\n orientation=\"vertical\"\n />\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\nimport { Box } from 'boemly';\n\nexport const SliderContainer = styled(Box)`\n --mobile-image-width: calc(100vw - var(--boemly-space-24));\n --desktop-image-width: var(--boemly-sizes-md);\n\n width: var(--boemly-size-full);\n\n overflow-x: hidden;\n\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-6))\n );\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n overflow-x: scroll;\n padding-left: max(\n var(--boemly-space-8),\n calc(50vw - var(--boemly-sizes-7xl) / 2 + var(--boemly-space-8))\n );\n }\n`;\n\ninterface SliderInnerContainerProps {\n imageCount: number;\n}\nexport const SliderInnerContainer = styled(\n motion.div\n)<SliderInnerContainerProps>`\n display: flex;\n gap: var(--boemly-space-6);\n\n width: fit-content;\n`;\n\nexport const ItemContainer = styled(Box)`\n width: var(--desktop-image-width);\n\n :last-of-type {\n margin-right: var(--boemly-space-8);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: var(--mobile-image-width);\n }\n`;\n\ninterface ImageContainerProps {\n aspectRatio: number;\n}\nexport const ImageContainer = styled(Box)<ImageContainerProps>`\n position: relative;\n\n max-height: var(--boemly-sizes-xl);\n height: calc(\n var(--desktop-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--desktop-image-width);\n\n border-radius: var(--boemly-radii-xl);\n\n & img {\n border-radius: var(--boemly-radii-xl);\n }\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n height: calc(\n var(--mobile-image-width) /\n ${({ aspectRatio }: ImageContainerProps) => aspectRatio}\n );\n width: var(--mobile-image-width);\n }\n`;\n","const ALLOWED_RATIOS = [2 / 3, 1 / 1, 3 / 2, 2 / 1, 3 / 1, 4 / 1, 5 / 1]; // width / height\n\nexport const getClosestRatio = (width: number, height: number): number => {\n const ratio = width / height;\n\n let minDiff = Math.abs(ratio - ALLOWED_RATIOS[0]);\n let posMinDiff = 0;\n\n ALLOWED_RATIOS.forEach((allowedRatio, index) => {\n if (Math.abs(ratio - allowedRatio) < minDiff) {\n minDiff = Math.abs(ratio - allowedRatio);\n posMinDiff = index;\n }\n });\n\n return ALLOWED_RATIOS[posMinDiff];\n};\n","import React, { useMemo, useRef, useState } from 'react';\nimport {\n Box,\n IconButton,\n DefaultSectionContainer,\n Flex,\n Text,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport { useMeasure, useWindowSize } from 'react-use';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ArrowLeft, ArrowRight } from '@phosphor-icons/react';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport FullScreenImage from '../../components/FullScreenImage';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport {\n ItemContainer,\n SliderContainer,\n SliderInnerContainer,\n ImageContainer,\n} from './styles';\nimport { getClosestRatio } from '../../utils/getClosestRatio';\n\nexport interface FullWidthImageSliderProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\n\nconst ITEM_GAP = 24;\nconst MAX_OFFSET_RIGHT = 162;\n\nexport const FullWidthImageSlider: React.FC<FullWidthImageSliderProps> = ({\n slice,\n}: FullWidthImageSliderProps) => {\n const containerRef = useRef(null);\n const [imageRef, { width: imageWidth }] = useMeasure<HTMLDivElement>();\n const { width: windowWidth } = useWindowSize();\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n const [sliderIndex, setSliderIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n\n const numberOfItems = useMemo(\n () => slice.images.length,\n [slice.images.length]\n );\n\n const sliderItemsWidth = useMemo(\n () => numberOfItems * (imageWidth + ITEM_GAP) - ITEM_GAP,\n [imageWidth, numberOfItems]\n );\n\n const offsetLeft = useMemo(\n () => sliderIndex * (imageWidth + ITEM_GAP) * -1,\n [sliderIndex, imageWidth]\n );\n\n const allowScroll = useMemo(\n () => sliderItemsWidth + ITEM_GAP * 3 > windowWidth,\n\n [sliderItemsWidth, windowWidth]\n );\n\n const canMoveRight = useMemo(() => {\n const offsetRight = windowWidth - (sliderItemsWidth + offsetLeft);\n\n return offsetRight < MAX_OFFSET_RIGHT;\n }, [imageWidth, sliderIndex, sliderItemsWidth, windowWidth]);\n\n const canMoveLeft = useMemo(() => sliderIndex !== 0, [sliderIndex]);\n\n return (\n <DefaultSectionContainer>\n <SliderContainer ref={containerRef}>\n <SliderInnerContainer\n animate={{\n x: imageWidth * -sliderIndex,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n imageCount={slice.images.length}\n >\n {slice.images.map((image, index) => (\n <ItemContainer key={image.id} ref={imageRef}>\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"end\"\n flexDirection=\"column\"\n gap=\"2\"\n >\n <ImageContainer\n aspectRatio={getClosestRatio(\n image.img.img.data.attributes.width,\n image.img.img.data.attributes.height\n )}\n >\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n cursor: isMobile ? 'unset' : 'pointer',\n }}\n onClick={() => {\n setSliderIndex(index);\n if (!isMobile) setIsOpen(true);\n }}\n />\n </ImageContainer>\n\n <Text noOfLines={3} height=\"72px\" fontSize=\"md\">\n {image.caption}\n </Text>\n </Flex>\n </ItemContainer>\n ))}\n </SliderInnerContainer>\n </SliderContainer>\n\n <Box\n display={['none', null, null, !!allowScroll ? 'flex' : 'none']}\n pointerEvents=\"none\"\n position=\"absolute\"\n top=\"calc(50% - var(--boemly-sizes-12))\"\n left=\"0\"\n width=\"full\"\n py=\"0\"\n px=\"32\"\n justifyContent=\"space-between\"\n >\n <Box>\n <AnimatePresence>\n {canMoveLeft && (\n <IconButton\n key=\"leftButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex - 1)}\n aria-label=\"Move left\"\n icon={<ArrowLeft size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n <Box>\n <AnimatePresence>\n {canMoveRight && (\n <IconButton\n key=\"rightButton\"\n as={motion.button}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n size=\"lg\"\n variant=\"outline\"\n onClick={() => setSliderIndex(sliderIndex + 1)}\n aria-label=\"Move right\"\n icon={<ArrowRight size={16} />}\n pointerEvents=\"auto\"\n />\n )}\n </AnimatePresence>\n </Box>\n </Box>\n\n <FullScreenImage\n images={slice.images.map((image) => image.img)}\n currentIndex={sliderIndex}\n setCurrentIndex={setSliderIndex}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n Box,\n DefaultSectionContainer,\n Grid,\n GridItem,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\n\nexport interface SideBySideImagesProps {\n slice: {\n images: {\n id: number;\n caption: string;\n img: StrapiImage;\n }[];\n };\n}\nexport const SideBySideImages: React.FC<SideBySideImagesProps> = ({\n slice,\n}: SideBySideImagesProps) => (\n <DefaultSectionContainer>\n <Wrapper>\n <Grid templateColumns=\"repeat(12, 1fr)\" gap=\"4\">\n <GridItem colSpan={[12, null, null, 7]}>\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap={['12', null, null, '6']}\n >\n {slice.images.map((image) => (\n <Box key={image.id}>\n <Box height=\"md\" position=\"relative\" borderRadius=\"xl\">\n <Image\n src={strapiMediaUrl(image.img.img, 'large')}\n alt={image.img.alt}\n fill\n style={{\n objectFit: image.img.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n <Text mt=\"3\" size=\"xsLowNormal\">\n {image.caption}\n </Text>\n </Box>\n ))}\n </SimpleGrid>\n </GridItem>\n </Grid>\n </Wrapper>\n </DefaultSectionContainer>\n);\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Gradient,\n Spacer,\n Wrapper,\n} from 'boemly';\nimport StrapiButtonWithVariant from '../../models/strapi/StrapiButtonWithVariant';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport Image from 'next/image';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\ntype Variant = 'gray' | 'green' | 'white';\n\nenum CtaCardType {\n Left = 'left',\n CenterWithoutImage = 'centerWithoutImage',\n CenterWithImage = 'centerWithImage',\n Right = 'right',\n}\n\nexport interface CtaProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n variant: Variant;\n ctaCards: CtaCard[];\n };\n}\n\nexport interface CtaCard {\n id: number;\n tagline?: string;\n title: string;\n subTitle?: string;\n image?: StrapiImage;\n buttons?: StrapiButtonWithVariant[];\n variant: Variant;\n backgroundShape: boolean;\n textAlign: 'left' | 'right' | 'center';\n}\n\nconst STATES: Record<CtaCardType, Record<string, any>> = {\n left: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'space-between',\n buttonJustifyContent: 'start',\n textMarginLeft: ['0', null, null, null, '14'],\n textMarginRight: '0',\n },\n centerWithoutImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n textMarginRight: '0',\n },\n centerWithImage: {\n textAlign: 'center',\n paddingTagline: '28',\n paddingTitle: '20',\n justifyContent: 'center',\n buttonJustifyContent: 'center',\n textMarginLeft: '0',\n textMarginRight: '0',\n },\n right: {\n textAlign: 'left',\n paddingTagline: '0',\n paddingTitle: '0',\n justifyContent: 'start',\n buttonJustifyContent: 'start',\n textMarginLeft: '0',\n textMarginRight: ['0', null, null, null, '10'],\n },\n};\n\nconst VARIANTS: Record<Variant, Record<string, Record<CtaCardType, string>>> = {\n gray: {\n backgroundColor: {\n left: 'primary.50',\n centerWithoutImage: 'primary.50',\n centerWithImage: 'primary.50',\n right: 'primary.50',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n green: {\n backgroundColor: {\n left: 'primary.800',\n centerWithoutImage: 'primary.800',\n centerWithImage: 'primary.800',\n right: 'primary.800',\n },\n taglineColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n titleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n subTitleColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'white',\n right: 'white',\n },\n },\n white: {\n backgroundColor: {\n left: 'white',\n centerWithoutImage: 'white',\n centerWithImage: 'primary.800',\n right: 'white',\n },\n taglineColor: {\n left: 'primary.500',\n centerWithoutImage: 'primary.500',\n centerWithImage: 'white',\n right: 'primary.500',\n },\n titleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n subTitleColor: {\n left: 'black',\n centerWithoutImage: 'black',\n centerWithImage: 'white',\n right: 'black',\n },\n },\n};\n\nconst getTypeOfCard = (ctaCard: CtaCard): CtaCardType => {\n if (ctaCard.textAlign === 'center') {\n if (ctaCard.image) {\n return CtaCardType.CenterWithImage;\n }\n return CtaCardType.CenterWithoutImage;\n }\n if (ctaCard.textAlign === 'left') {\n return CtaCardType.Left;\n }\n return CtaCardType.Right;\n};\n\nexport const Cta: React.FC<CtaProps> = ({ slice }: CtaProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor.left}\n title={slice.title}\n >\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n taglineProps={{\n color: VARIANTS[slice.variant].taglineColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n title={slice.title}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor.left,\n textAlign: 'center',\n width: 'full',\n maxWidth: '3xl',\n }}\n text={slice.subTitle}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor.left,\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n />\n </Flex>\n <Spacer height={['16', null, null, null, '20']} />\n </>\n ) : (\n <></>\n )}\n <Flex gap=\"4\" flexDirection=\"column\">\n {slice.ctaCards.map((ctaCard) => {\n const ctaCardType = getTypeOfCard(ctaCard);\n\n return (\n <Container\n backgroundColor={\n VARIANTS[ctaCard.variant].backgroundColor[ctaCardType]\n }\n key={ctaCard.id}\n position=\"relative\"\n elevation=\"none\"\n >\n {ctaCard.image &&\n ctaCardType === CtaCardType.CenterWithImage ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'large')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n <Gradient />\n </Box>\n ) : (\n <></>\n )}\n {ctaCard.backgroundShape ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n >\n <Image\n src={\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? `${CDN_URI}/assets/v3/strapi-slices/shapes-dark.svg`\n : `${CDN_URI}/assets/v3/strapi-slices/shapes-light.svg`\n }\n alt={formatMessage({\n id: `sections.cta.backgroundShapes${\n ctaCardType === CtaCardType.CenterWithImage ||\n ctaCard.variant === 'green'\n ? 'Dark'\n : 'Light'\n }`,\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Flex\n flexDir={['column', null, null, null, 'row']}\n flexGrow=\"1\"\n gap={['8', null, null, null, '16']}\n justifyContent={STATES[ctaCardType].justifyContent}\n >\n {ctaCard.image && ctaCardType === CtaCardType.Right ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'xLarge')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Box\n zIndex=\"base\"\n marginLeft={STATES[ctaCardType].textMarginLeft}\n marginRight={STATES[ctaCardType].textMarginRight}\n maxWidth=\"3xl\"\n >\n <Spacer height={['0', null, null, null, '20']} />\n\n <DefaultSectionHeader\n tagline={ctaCard.tagline}\n taglineProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].taglineColor[ctaCardType],\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTagline,\n ],\n }}\n title={ctaCard.title}\n titleProps={{\n fontFamily: 'heading',\n fontSize: '4xl',\n fontWeight: '600',\n lineHeight: '9',\n textAlign: STATES[ctaCardType].textAlign,\n paddingX: [\n '0',\n null,\n null,\n null,\n STATES[ctaCardType].paddingTitle,\n ],\n color:\n VARIANTS[ctaCard.variant].titleColor[ctaCardType],\n }}\n text={ctaCard.subTitle}\n textProps={{\n textAlign: STATES[ctaCardType].textAlign,\n color:\n VARIANTS[ctaCard.variant].subTitleColor[ctaCardType],\n }}\n />\n {ctaCard.buttons && ctaCard.buttons.length > 0 ? (\n <>\n <Spacer height=\"8\" />\n <Flex\n gap=\"2\"\n justifyContent={\n STATES[ctaCardType].buttonJustifyContent\n }\n >\n {ctaCard.buttons &&\n ctaCard.buttons.map((button) => (\n <StrapiLinkButton\n key={button.button.id}\n link={button.button}\n size=\"md\"\n variant={button.variant}\n component=\"Cta\"\n />\n ))}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <Spacer height={['1', null, null, null, '20']} />\n </Box>\n {ctaCard.image && ctaCardType === CtaCardType.Left ? (\n <Box\n position=\"relative\"\n height={['3xs', null, null, null, 'auto']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(ctaCard.image.img, 'xLarge')}\n alt={ctaCard.image.alt}\n fill\n style={{\n objectFit: ctaCard.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n );\n })}\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Box, Wrapper } from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface CtaOnlyProps {\n slice: {\n button: StrapiLink;\n };\n}\n\nexport const CtaOnly: React.FC<CtaOnlyProps> = ({ slice }: CtaOnlyProps) => (\n <Wrapper>\n <Box position=\"absolute\" top=\"-28\" transform=\"translateY(50%)\">\n <StrapiLinkButton size=\"md\" link={slice.button} component=\"CtaOnly\" />\n </Box>\n </Wrapper>\n);\n","import React, { useContext, useState } from 'react';\nimport {\n DefaultSectionContainer,\n Divider,\n Flex,\n GridItem,\n Heading,\n IconButton,\n SimpleGrid,\n Text,\n Wrapper,\n} from 'boemly';\nimport { Check, Link as LinkIcon } from '@phosphor-icons/react';\nimport { useCopyToClipboard } from 'react-use';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiGlossaryItem from '../../models/strapi/StrapiGlossaryItem';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface GlossaryProps {\n slice: {\n glossary_items: IStrapiData<StrapiGlossaryItem>[];\n };\n}\n\nexport const Glossary: React.FC<GlossaryProps> = ({ slice }: GlossaryProps) => {\n const [, copyToClipboard] = useCopyToClipboard();\n const { formatMessage } = useContext(IntlContext);\n const grouped: Record<string, StrapiGlossaryItem[]> = {};\n const [copiedItem, setCopiedItem] = useState<string>();\n\n slice.glossary_items\n .sort((a, b) => a.attributes.title.localeCompare(b.attributes.title))\n .forEach((curr) => {\n const index = curr.attributes.title.at(0)?.toUpperCase() || 'A';\n if (!grouped[index]) {\n grouped[index] = [];\n }\n grouped[index].push(curr.attributes);\n }, {});\n\n const handleAnchorClick = async (slug: string) => {\n if (window?.location) {\n const currentUrl = window.location.href.split('#')[0];\n copyToClipboard(`${currentUrl}#${slug}`);\n setCopiedItem(slug);\n\n setTimeout(() => {\n setCopiedItem(undefined);\n }, 1200);\n }\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid>\n {Object.entries(grouped).map(([letter, items], index) => (\n <GridItem maxW=\"xl\" placeSelf=\"center\" key={letter}>\n <Heading size=\"3xl\" mb=\"8\">\n {letter}\n </Heading>\n\n <SimpleGrid spacing=\"6\">\n {items.map((item) => (\n <GridItem key={item.slug}>\n <Flex mb=\"2\" gap=\"1.5\" alignItems=\"center\">\n <Heading\n wordBreak=\"break-word\"\n size=\"xl\"\n id={item.slug}\n scrollMarginTop=\"calc(var(--header-height) + var(--boemly-sizes-10))\"\n >\n {item.title}\n </Heading>\n <IconButton\n variant=\"ghost\"\n size=\"xs\"\n icon={\n copiedItem === item.slug ? (\n <Check size=\"16\" data-testid=\"check-icon\" />\n ) : (\n <LinkIcon size=\"16\" />\n )\n }\n title={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n aria-label={formatMessage({\n id: 'sections.glossary.copyButtonLabel',\n })}\n onClick={async () => handleAnchorClick(item.slug)}\n />\n </Flex>\n <Text color=\"black\" wordBreak=\"break-word\">\n {item.text}\n </Text>\n </GridItem>\n ))}\n </SimpleGrid>\n\n {index !== Object.keys(grouped).length - 1 && (\n <Divider maxW=\"xl\" placeSelf=\"center\" mb=\"10\" mt=\"10\" />\n )}\n </GridItem>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","export const MINIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10;\n\nexport const MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY = 10_000;\n","import React, { useContext, useCallback } from 'react';\nimport {\n Badge,\n BoemlyFormControl,\n Box,\n Button,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Divider,\n Flex,\n InputRightAddon,\n LabelNumberPair,\n RichText,\n SimpleGrid,\n Spacer,\n useToken,\n Wrapper,\n} from 'boemly';\nimport { Field, FieldProps, Form, Formik, FormikProps } from 'formik';\nimport { FPM_API_URI } from '../../constants/api';\nimport CheckoutForm from '../../models/forms/CheckoutForm';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../constants/domain';\nimport { IntlContext } from '../../components/ContextProvider';\nimport { useRouter } from 'next/router';\n\nexport interface ShopCheckoutProps {\n slice: {\n tagline?: string;\n title: string;\n text?: string;\n badge?: string;\n batchId: string;\n pricePerKg: number;\n couponId?: string;\n initialContributionValue: number;\n checkoutText: string;\n currency: 'EUR' | 'CHF';\n taxInPercent?: number;\n };\n}\n\nexport const ShopCheckout = ({ slice }: ShopCheckoutProps): JSX.Element => {\n const [primary50] = useToken('colors', ['primary.50']);\n const { formatMessage, formatNumber, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: CheckoutForm) => {\n const errors: Partial<{ contributionValue: string }> = {};\n\n if (!values.contributionValue) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.empty',\n });\n } else if (\n values.contributionValue < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: `sections.shopCheckout.contributionValue.validation.tooLow.${slice.currency}`,\n });\n } else if (\n values.contributionValue > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY\n ) {\n errors.contributionValue = formatMessage({\n id: 'sections.shopCheckout.contributionValue.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [locale]\n );\n\n const onSubmit = ({ contributionValue }: CheckoutForm) => {\n const checkoutURL = new URL(`${FPM_API_URI}/v1/webhooks/shop/checkout`);\n const currentURL = new URL(window.location.href);\n\n checkoutURL.searchParams.append('batchId', slice.batchId);\n\n checkoutURL.searchParams.append(\n 'quantity',\n Math.floor(contributionValue / slice.pricePerKg).toString()\n );\n\n checkoutURL.searchParams.append('cancelPath', currentURL.pathname);\n\n if (slice.couponId)\n checkoutURL.searchParams.append('couponId', slice.couponId);\n\n push(checkoutURL.toString());\n };\n\n return (\n <DefaultSectionContainer backgroundColor={primary50} title={slice.title}>\n <Wrapper>\n <Flex\n flexDir={['column', null, null, null, 'row']}\n justifyContent=\"space-between\"\n alignItems={['left', null, null, null, 'center']}\n >\n <Box marginRight={['0', null, null, null, '36']} flexShrink={2}>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n </Box>\n <Container maxWidth=\"md\" padding=\"lg\" shadow=\"lg\">\n {slice.badge ? (\n <>\n <Badge\n colorScheme=\"green\"\n textTransform=\"none\"\n whiteSpace=\"unset\"\n >\n {slice.badge}\n </Badge>\n <Spacer height=\"3\" />\n </>\n ) : (\n <></>\n )}\n\n <RichText\n content={slice.checkoutText}\n textProps={{ color: 'gray.500' }}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <LabelNumberPair\n label={formatMessage({ id: 'sections.shopCheckout.intro.price' })}\n number={`${formatNumber(slice.pricePerKg * 100, {\n style: 'currency',\n currency: slice.currency,\n })}/${formatNumber(100, {\n style: 'unit',\n unit: 'kilogram',\n })} CO₂`}\n caption={formatMessage({\n id: 'sections.shopCheckout.summary.price.taxNotIncluded',\n })}\n />\n\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n\n <Formik\n initialValues={{\n contributionValue: slice.initialContributionValue,\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n values,\n }: FormikProps<CheckoutForm>) => {\n const summaryPrice =\n Math.floor(values.contributionValue / slice.pricePerKg) *\n slice.pricePerKg;\n\n return (\n <Form onSubmit={handleSubmit}>\n <Box width=\"full\">\n <Field name=\"contributionValue\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValue\"\n size=\"md\"\n inputProps={{ type: 'number', ...field }}\n label={formatMessage({\n id: `sections.shopCheckout.contributionValue.label.${slice.currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"1\">\n {formatMessage({\n id: `sections.shopCheckout.contributionValue.unit.${slice.currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValue &&\n touched.contributionValue\n }\n errorMessage={errors.contributionValue}\n />\n )}\n </Field>\n </Box>\n\n <Spacer height=\"6\" />\n\n <SimpleGrid columns={2} gap=\"4\">\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.kg',\n })}\n number={`${formatNumber(\n Math.floor(\n values.contributionValue / slice.pricePerKg\n ),\n {\n style: 'unit',\n unit: 'kilogram',\n maximumFractionDigits: 0,\n }\n )} CO₂`}\n />\n <LabelNumberPair\n label={formatMessage({\n id: 'sections.shopCheckout.summary.price',\n })}\n number={formatNumber(summaryPrice, {\n style: 'currency',\n currency: slice.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}\n caption={\n slice.taxInPercent &&\n slice.taxInPercent > 0 &&\n summaryPrice > 0\n ? formatMessage(\n {\n id: 'sections.shopCheckout.summary.price.taxIncluded',\n },\n {\n number: formatNumber(\n summaryPrice +\n summaryPrice * (slice.taxInPercent / 100),\n {\n style: 'currency',\n currency: slice.currency,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }\n ),\n }\n )\n : ''\n }\n />\n </SimpleGrid>\n\n <Spacer height=\"6\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'sections.shopCheckout.submit' })}\n </Button>\n </Form>\n );\n }}\n </Formik>\n </Container>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport {\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n Spacer,\n Text,\n} from 'boemly';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiLink from '../../models/strapi/StrapiLink';\n\nexport interface FactsProps {\n slice: {\n tagline?: string;\n title?: string;\n subTitle?: string;\n button?: StrapiLink;\n variant: 'gray' | 'green' | 'white';\n facts: { key: string; value: string }[];\n };\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n green: {\n backgroundColor: 'primary.800',\n tagLineColor: 'white',\n titleColor: 'white',\n subTitleColor: 'white',\n factKeyColor: 'whiteAlpha.900',\n factValueColor: 'white',\n },\n white: {\n backgroundColor: 'white',\n tagLineColor: 'primary.500',\n titleColor: 'black',\n subTitleColor: 'black',\n factKeyColor: 'gray.700',\n factValueColor: 'gray.700',\n },\n};\n\nexport const Facts: React.FC<FactsProps> = ({ slice }: FactsProps) => (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n flexDir=\"column\"\n textAlign=\"center\"\n justifyContent=\"space-between\"\n paddingX={['6', null, '8']}\n title={slice.title}\n >\n <>\n {slice.title && (\n <>\n <DefaultSectionHeader\n tagline={slice.tagline}\n text={slice.subTitle}\n title={slice.title}\n taglineProps={{\n color: VARIANTS[slice.variant].tagLineColor,\n textAlign: 'center',\n }}\n titleProps={{\n color: VARIANTS[slice.variant].titleColor,\n textAlign: 'center',\n maxW: '6xl',\n marginX: 'auto',\n }}\n textProps={{\n color: VARIANTS[slice.variant].subTitleColor,\n textAlign: 'center',\n maxW: '3xl',\n marginX: 'auto',\n }}\n />\n <Spacer height={['0', null, '12']} />\n </>\n )}\n <Flex\n justifyContent={slice.facts.length < 3 ? 'center' : 'flex-start'}\n alignItems=\"center\"\n flexWrap=\"wrap\"\n mx={[null, null, null, '22', '28']}\n flexDir={['column', null, null, 'row']}\n gap={[null, null, null, '12']}\n >\n {slice.facts.map((fact) => (\n <Flex\n key={fact.key}\n flexDir=\"column\"\n width={[\n 'var(--boemly-sizes-full)',\n null,\n null,\n 'calc((var(--boemly-sizes-full) - var(--boemly-space-24))/ 3 )',\n ]}\n mt={['8', '8', '8', slice.facts.length > 3 ? '16' : '0']}\n >\n <Heading\n fontSize=\"6xl\"\n fontFamily=\"display\"\n lineHeight=\"10\"\n fontWeight=\"700\"\n color={VARIANTS[slice.variant].factValueColor}\n mb=\"2\"\n as=\"p\"\n >\n {fact.value}\n </Heading>\n\n <Text\n size=\"mdLowNormal\"\n color={VARIANTS[slice.variant].factKeyColor}\n >\n {fact.key}\n </Text>\n </Flex>\n ))}\n </Flex>\n\n {slice.button && (\n <>\n <Spacer height={['0', null, '20']} />\n <StrapiLinkButton\n link={slice.button}\n size=\"md\"\n variant={slice.variant === 'green' ? 'outline' : 'solid'}\n component=\"Facts\"\n />\n </>\n )}\n </>\n </DefaultSectionContainer>\n);\n","import React, { useContext, useMemo } from 'react';\nimport {\n Text,\n Heading,\n Spacer,\n DatePersonPair,\n DefaultSectionHeader,\n DefaultSectionContainer,\n Wrapper,\n SimpleGrid,\n Box,\n Flex,\n useMediaQuery,\n useToken,\n} from 'boemly';\nimport Image from 'next/image';\nimport Link from 'next/link';\nimport { CaretRight } from '@phosphor-icons/react';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiCategory from '../../models/strapi/StrapiCategory';\nimport IStrapi from '../../models/strapi/IStrapi';\nimport { BREAKPOINT_LG_QUERY } from '../../constants/breakpoints';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { BlogItemContainer, ImageContainer } from '../Blog/styles';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface BlogCardsProps {\n slice: {\n tagline: string;\n title: string;\n subTitle: string;\n button?: StrapiLink;\n variant: 'white' | 'gray';\n blogPostCategory: IStrapi<IStrapiData<StrapiCategory> | null>;\n };\n blogPosts: IStrapiData<StrapiBlogPost>[];\n}\n\nconst VARIANTS = {\n white: {\n backgroundColor: 'white',\n },\n gray: {\n backgroundColor: 'primary.50',\n },\n};\n\nconst sortByCreatedAt = (\n a: IStrapiData<StrapiBlogPost>,\n b: IStrapiData<StrapiBlogPost>\n): number =>\n new Date(b.attributes.createdAt).getTime() -\n new Date(a.attributes.createdAt).getTime();\n\nexport const BlogCards: React.FC<BlogCardsProps> = ({\n slice,\n blogPosts,\n}: BlogCardsProps) => {\n const { formatDate } = useContext(IntlContext);\n const [mobile] = useMediaQuery(BREAKPOINT_LG_QUERY);\n const [gray700] = useToken('colors', ['gray.700']);\n\n const sortedBlogPosts = useMemo(\n () => blogPosts.sort(sortByCreatedAt),\n [blogPosts]\n );\n\n const blogPostsToDisplay = useMemo(\n () =>\n slice.blogPostCategory?.data?.attributes.name\n ? sortedBlogPosts\n .filter(\n (blogPost) =>\n blogPost.attributes.category.data?.attributes.name ===\n slice.blogPostCategory?.data?.attributes.name\n )\n .slice(0, 3)\n : sortedBlogPosts.slice(0, 3),\n [sortedBlogPosts, slice]\n );\n\n return (\n <DefaultSectionContainer\n backgroundColor={VARIANTS[slice.variant].backgroundColor}\n title={slice.title}\n >\n <Wrapper>\n {mobile || !slice.button ? (\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n titleProps={{ maxW: '2xl' }}\n textProps={{ maxW: '2xl' }}\n />\n ) : (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap=\"60\">\n <Box>\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n />\n </Box>\n <Box minWidth=\"40\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n component=\"BlogCards\"\n />\n </Box>\n </Flex>\n )}\n <Spacer height=\"14\" />\n <SimpleGrid\n columns={[1, null, null, 3]}\n spacingX={4}\n spacingY={24}\n flexShrink=\"0\"\n >\n {blogPostsToDisplay.map((blogPost) => (\n <BlogItemContainer\n as={Link}\n href={`/blog/${blogPost.attributes.slug}`}\n data-testid=\"blog-item\"\n key={blogPost.attributes.slug}\n >\n <ImageContainer>\n <Image\n src={strapiMediaUrl(blogPost.attributes.img.img, 'medium')}\n alt={blogPost.attributes.img.alt}\n fill\n style={{\n objectFit: blogPost.attributes.img.objectFit || 'cover',\n }}\n />\n </ImageContainer>\n <Box px=\"2\" py=\"8\">\n {blogPost.attributes.category && (\n <Text size=\"smMonoUppercase\" color=\"primary.800\" mb=\"2\">\n {blogPost.attributes.category.data?.attributes.name}\n </Text>\n )}\n <Heading size=\"lg\">{blogPost.attributes.title}</Heading>\n {blogPost.attributes.teaser && (\n <Text size=\"mdRegularNormal\" mt=\"2\">\n {blogPost.attributes.teaser}\n </Text>\n )}\n\n <Spacer height=\"4\" />\n\n <DatePersonPair\n date={formatDate(blogPost.attributes.createdAt)}\n person={\n blogPost.attributes.author.data\n ? {\n name: blogPost.attributes.author.data.attributes.name,\n image: (\n <Image\n src={strapiMediaUrl(\n blogPost.attributes.author.data.attributes.img\n .img,\n 'thumbnail'\n )}\n alt={\n blogPost.attributes.author.data.attributes.img\n .alt\n }\n fill\n style={{\n objectFit:\n blogPost.attributes.author.data.attributes.img\n .objectFit || 'cover',\n }}\n />\n ),\n }\n : undefined\n }\n />\n </Box>\n </BlogItemContainer>\n ))}\n </SimpleGrid>\n <>\n {mobile && slice.button && (\n <>\n <Box minWidth=\"40\" mt=\"6\">\n <StrapiLinkButton\n link={slice.button}\n size=\"lg\"\n variant=\"outline\"\n rightIcon={<CaretRight color={gray700} />}\n component=\"BlogCards\"\n />\n </Box>\n </>\n )}\n </>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React, { useCallback, useContext } from 'react';\nimport {\n BoemlyFormControl,\n Box,\n Button,\n Divider,\n Flex,\n InputRightAddon,\n Spacer,\n Text,\n} from 'boemly';\nimport {\n Field,\n FieldProps,\n Form,\n Formik,\n FormikErrors,\n FormikProps,\n} from 'formik';\nimport { useRouter } from 'next/router';\nimport Image from 'next/image';\nimport { StrapiLink } from '../../..';\nimport { IntlContext } from '../../ContextProvider';\nimport {\n MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n MINIMUM_CONTRIBUTION_VALUE_IN_MONEY,\n} from '../../../constants/domain';\nimport { CDN_URI, FPM_API_URI } from '../../../constants/api';\nimport StrapiLinkButton from '../../StrapiLinkButton';\nimport SmallCheckoutForm from '../../../models/forms/SmallCheckoutForm';\n\nconst calculateTaxIncludedValue = (\n values: SmallCheckoutForm,\n taxInPercent: number\n) => {\n const value = parseInt(values.contributionValueCurrency);\n\n if (isNaN(value)) return 0;\n\n return value + value * (taxInPercent / 100);\n};\n\nexport interface SmallCheckoutProps {\n batchId: string;\n pricePerKg: number;\n initialContributionValue: number;\n taxInPercent?: number;\n checkoutText?: string;\n currency: 'EUR' | 'CHF';\n\n title?: string;\n subtitle?: string;\n button?: StrapiLink;\n}\n\nconst SmallCheckout = ({\n pricePerKg,\n currency,\n batchId,\n initialContributionValue,\n taxInPercent,\n checkoutText,\n title,\n subtitle,\n button,\n}: SmallCheckoutProps) => {\n const { formatNumber, formatMessage, locale } = useContext(IntlContext);\n const { push } = useRouter();\n\n const validateForm = useCallback(\n (values: SmallCheckoutForm) => {\n const errors: FormikErrors<SmallCheckoutForm> = {};\n const value = parseInt(values.contributionValueCurrency);\n if (!values.contributionValueCurrency || isNaN(value)) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.empty',\n });\n } else if (value < MINIMUM_CONTRIBUTION_VALUE_IN_MONEY) {\n errors.contributionValueCurrency = formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.validation.tooLow.${currency}`,\n });\n } else if (value > MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY) {\n errors.contributionValueCurrency = formatMessage({\n id: 'portfolio.smallCheckout.contributionValueCurrency.validation.tooHigh',\n });\n }\n\n return errors;\n },\n [currency, locale]\n );\n\n const onSubmit = async ({ contributionValueCurrency }: SmallCheckoutForm) => {\n const checkoutURL = new URL(`${FPM_API_URI}/v1/webhooks/shop/checkout`);\n const currentURL = new URL(window.location.href);\n\n checkoutURL.searchParams.append('batchId', batchId);\n\n checkoutURL.searchParams.append(\n 'quantity',\n Math.floor(parseInt(contributionValueCurrency) / pricePerKg).toString()\n );\n\n checkoutURL.searchParams.append('cancelPath', currentURL.pathname);\n\n push(checkoutURL.toString());\n };\n\n return (\n <Flex\n width=\"full\"\n height=\"full\"\n borderRadius=\"xl\"\n background=\"primary.100\"\n padding=\"6\"\n direction=\"column\"\n >\n <Flex gap=\"2\" alignItems=\"end\" mb=\"6\">\n <Text color=\"black\" lineHeight=\"0\">\n {formatMessage(\n { id: 'unit.formatter.tonsCo2' },\n {\n number: (\n <Text as=\"span\" size=\"lgLowBold\" color=\"black\">\n {formatNumber(pricePerKg * 1000, {\n style: 'currency',\n currency,\n maximumFractionDigits: 0,\n })}\n </Text>\n ),\n }\n )}\n </Text>\n <Text size=\"smLowNormal\">\n {formatMessage({\n id: 'portfolio.smallCheckout.price.taxNotIncluded',\n })}\n </Text>\n </Flex>\n\n <Formik\n initialValues={{\n contributionValueCurrency: initialContributionValue.toString(),\n contributionValueTons: (\n initialContributionValue /\n pricePerKg /\n 1000\n ).toString(),\n }}\n validate={validateForm}\n onSubmit={onSubmit}\n >\n {({\n errors,\n touched,\n handleSubmit,\n setValues,\n values,\n }: FormikProps<SmallCheckoutForm>) => (\n <Form onSubmit={handleSubmit}>\n <Flex gap=\"4\">\n <Box width=\"full\">\n <Field name=\"contributionValueCurrency\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueCurrency\"\n size=\"md\"\n inputProps={{\n type: 'number',\n value: field.value || '',\n onChange: (e) => {\n const value = e.target.valueAsNumber;\n\n setValues({\n contributionValueCurrency: value.toString(),\n contributionValueTons: (\n value /\n pricePerKg /\n 1000\n ).toString(),\n });\n },\n }}\n label={formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.label.${currency}`,\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"currencyUnit\">\n {formatMessage({\n id: `portfolio.smallCheckout.contributionValueCurrency.unit.${currency}`,\n })}\n </InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueCurrency &&\n touched.contributionValueCurrency\n }\n errorMessage={errors.contributionValueCurrency}\n />\n )}\n </Field>\n </Box>\n\n <Box width=\"full\">\n <Field name=\"contributionValueTons\">\n {({ field }: FieldProps) => (\n <BoemlyFormControl\n id=\"contributionValueTons\"\n size=\"md\"\n inputProps={{\n type: 'number',\n value: field.value || '',\n onChange: (e) => {\n const value = e.target.valueAsNumber;\n setValues({\n contributionValueCurrency: (\n value *\n pricePerKg *\n 1000\n ).toString(),\n contributionValueTons: value.toString(),\n });\n },\n }}\n label={formatMessage({\n id: 'portfolio.smallCheckout.contributionValueTons.label',\n })}\n rightAddonsOrElements={[\n <InputRightAddon key=\"tCO₂\">tCO₂</InputRightAddon>,\n ]}\n isInvalid={\n !!errors.contributionValueTons &&\n touched.contributionValueTons\n }\n errorMessage={errors.contributionValueTons}\n />\n )}\n </Field>\n </Box>\n </Flex>\n {values.contributionValueCurrency &&\n taxInPercent &&\n taxInPercent > 0 && (\n <Text size=\"smLowNormal\" mt=\"2\">\n {formatMessage(\n { id: 'portfolio.smallCheckout.price.taxIncluded' },\n {\n number: formatNumber(\n calculateTaxIncludedValue(values, taxInPercent),\n {\n style: 'currency',\n currency,\n maximumFractionDigits: 2,\n }\n ),\n }\n )}\n </Text>\n )}\n\n <Spacer height=\"4\" />\n\n <Button type=\"submit\" width=\"full\">\n {formatMessage({ id: 'portfolio.smallCheckout.submitButton' })}\n </Button>\n </Form>\n )}\n </Formik>\n\n <Flex\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n mt=\"6\"\n gap=\"2\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/globe-love-icon.svg`}\n alt=\"Icon\"\n width={20}\n height={20}\n />\n <Text size=\"smLowNormal\">{checkoutText}</Text>\n </Flex>\n\n <Divider my=\"6\" />\n\n <Flex width=\"full\" alignItems=\"center\" direction=\"column\">\n {title && (\n <Text size=\"smLowBold\" textAlign=\"center\" color=\"black\" mb=\"2\">\n {title}\n </Text>\n )}\n {subtitle && (\n <Text size=\"smRegularNormal\" textAlign=\"center\" mb=\"3\">\n {subtitle}\n </Text>\n )}\n {button && (\n <StrapiLinkButton\n link={{\n intercomLauncher: true,\n ...button,\n }}\n variant=\"outline\"\n component=\"SmallCheckout\"\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport default SmallCheckout;\n","const convertAreaM2ToHa = (areaInM2: string): number =>\n parseInt(areaInM2, 10) / 10000;\n\nexport default convertAreaM2ToHa;\n","const convertCo2AmountKgToTons = (amount: string): number =>\n parseInt(amount, 10) / 1000;\n\nexport default convertCo2AmountKgToTons;\n","const getTimeSpanInYears = (start: Date, end: Date) => {\n const monthsDifference = end.getMonth() - start.getMonth();\n const yearsDifference = end.getFullYear() - start.getFullYear();\n\n if (monthsDifference > 4) {\n return yearsDifference + 1;\n }\n if (monthsDifference < -4) {\n return yearsDifference - 1;\n }\n return yearsDifference;\n};\n\nexport default getTimeSpanInYears;\n","import React, { useContext } from 'react';\nimport {\n Box,\n Container,\n Divider,\n Flex,\n Heading,\n LabelTextPair,\n SimpleGrid,\n Spacer,\n Tooltip,\n} from 'boemly';\nimport Image from 'next/image';\nimport convertAreaM2ToHa from '../../../utils/convertAreaM2ToHa';\nimport convertCo2AmountKgToTons from '../../../utils/convertCo2AmountKgToTons';\nimport CreditsAvailableBadge from '../../../components/CreditsAvailableBadge';\nimport PortfolioProject from '../../../models/PortfolioProject';\nimport {\n FORMAT_AS_HECTARE_CONFIG,\n FORMAT_AS_PERCENT_CONFIG,\n} from '../../../constants/formatter';\nimport getTimeSpanInYears from '../../../utils/getTimeSpanInYears';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface ProjectInfoProps {\n project: PortfolioProject;\n subtitles: {\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n averageSellableAmountPerYearSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n };\n}\n\nexport const ProjectInfo: React.FC<ProjectInfoProps> = ({\n project,\n subtitles,\n}: ProjectInfoProps) => {\n const { formatMessage, formatNumber, formatDate } = useContext(IntlContext);\n return (\n <Container p=\"2\" width=\"full\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({ id: 'features.projectInfo.projectInfo.value' })}\n </Heading>\n\n <Spacer height=\"8\" />\n\n <SimpleGrid\n columns={[1, null, null, 2]}\n gap=\"8\"\n spacingX=\"10\"\n spacingY=\"8\"\n >\n {project.area && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.area',\n })}\n text={formatNumber(\n convertAreaM2ToHa(project.area.toString()),\n FORMAT_AS_HECTARE_CONFIG\n )}\n caption={subtitles.areaSubtitle}\n />\n </Box>\n )}\n\n {project.location && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.location',\n })}\n text={project.location}\n caption={subtitles.locationSubtitle}\n />\n </Box>\n )}\n\n {project.start && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.start',\n })}\n text={formatDate(project.start, {\n year: 'numeric',\n month: 'long',\n })}\n caption={subtitles.startSubtitle}\n />\n </Box>\n )}\n\n {project.start && project.end && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.timeSpan',\n })}\n text={formatMessage(\n {\n id: 'features.projectInfo.properties.year',\n },\n {\n years: getTimeSpanInYears(\n new Date(project.start),\n new Date(project.end)\n ),\n }\n )}\n caption={subtitles.timeSpanSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.projectType ||\n project.projectDeveloper ||\n project.verificationStandard ? (\n <>\n <Spacer height=\"6\" />\n <Divider />\n <Spacer height=\"6\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n {project.projectType && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectType',\n })}\n text={project.projectType.title}\n caption={subtitles.projectTypeSubtitle}\n />\n </Box>\n )}\n {project.projectDeveloper && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectDeveloper',\n })}\n text={project.projectDeveloper.name}\n caption={subtitles.projectDeveloperSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.verificationStandard ? (\n <>\n {project.projectType || project.projectDeveloper ? (\n <Spacer height=\"6\" />\n ) : (\n <></>\n )}\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.verificationStandard.label',\n })}\n text={formatMessage({\n id: `features.projectInfo.properties.verificationStandard.value.${project.verificationStandard.id}`,\n defaultMessage: project.verificationStandard.id,\n })}\n caption={subtitles.verificationStandardSubtitle}\n />\n </Box>\n\n {project.defaultIssuer && (\n <Box position=\"relative\" width=\"14\" height=\"8\">\n <Image\n src={project.defaultIssuer.logoUrl}\n alt={`${project.defaultIssuer.name} logo`}\n fill\n style={{ objectFit: 'contain' }}\n />\n </Box>\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n\n {(project.averageSellableAmountPerYear &&\n project.averageSellableAmountPerYear > 0) ||\n project.riskBuffer ? (\n <>\n <Spacer height=\"8\" />\n <Divider />\n <Spacer height=\"8\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid columns={[1, null, null, 2]} spacingX=\"10\" spacingY=\"8\">\n {project.averageSellableAmountPerYear > 0 ? (\n <Tooltip\n label={formatMessage({\n id: 'features.projectInfo.properties.projectVolume.toolTip',\n })}\n >\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.projectVolume.label',\n })}\n text={formatMessage(\n {\n id: 'unit.formatter.tonsCo2PerYear',\n },\n {\n number: formatNumber(\n convertCo2AmountKgToTons(\n project.averageSellableAmountPerYear.toString()\n ),\n { maximumFractionDigits: 0 }\n ),\n }\n )}\n caption={subtitles.averageSellableAmountPerYearSubtitle}\n />\n </Box>\n </Tooltip>\n ) : (\n <Box>\n <CreditsAvailableBadge status={project.creditAvailability} />\n </Box>\n )}\n\n {project.riskBuffer && (\n <Box>\n <LabelTextPair\n label={formatMessage({\n id: 'features.projectInfo.properties.riskBuffer',\n })}\n text={formatNumber(\n project.riskBuffer / 100,\n FORMAT_AS_PERCENT_CONFIG\n )}\n caption={subtitles.riskBufferSubtitle}\n />\n </Box>\n )}\n </SimpleGrid>\n\n {project.averageSellableAmountPerYear > 0 ? (\n <Box mt=\"2\">\n <CreditsAvailableBadge status={project.creditAvailability} />\n </Box>\n ) : (\n <></>\n )}\n </Container>\n );\n};\n","import React, { useContext } from 'react';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport {\n Center,\n Container,\n Flex,\n Heading,\n IconButton,\n Spacer,\n Text,\n} from 'boemly';\nimport { DownloadSimple, FilePdf } from '@phosphor-icons/react';\nimport Link from 'next/link';\nimport { IntlContext } from '../../ContextProvider';\n\nexport interface DocumentsDownloadListProps {\n documentUrls: StrapiLink[];\n}\n\nexport const DocumentsDownloadList: React.FC<DocumentsDownloadListProps> = ({\n documentUrls,\n}: DocumentsDownloadListProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container p=\"2\">\n <Heading size=\"xl\" textAlign=\"left\">\n {formatMessage({\n id: 'features.portfolio.documentsDownloadList.projectDocuments',\n })}\n </Heading>\n\n <Flex flexDir=\"column\">\n {documentUrls.map((documentUrl) => (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"center\"\n mt=\"6\"\n key={documentUrl.text}\n >\n <Flex alignItems=\"center\">\n <Center\n w=\"8\"\n h=\"8\"\n borderRadius=\"full\"\n borderWidth=\"1px\"\n borderColor=\"grey.200\"\n >\n <FilePdf />\n </Center>\n\n <Spacer width=\"4\" />\n\n <Flex flexDir=\"column\">\n <Text size=\"smMonoNormal\">PDF</Text>\n <Text size=\"mdLowBold\" color=\"black\" textAlign=\"left\">\n {documentUrl.text}\n </Text>\n </Flex>\n </Flex>\n\n <Spacer width=\"32\" />\n\n <IconButton\n variant=\"outline\"\n aria-label={formatMessage({\n id: 'features.portfolio.documentsDownloadList.downloadDocument',\n })}\n icon={<DownloadSimple />}\n as={Link}\n href={documentUrl.url}\n size=\"sm\"\n />\n </Flex>\n ))}\n </Flex>\n </Container>\n );\n};\n","import React from 'react';\nimport StrapiImage from '../../../models/strapi/StrapiImage';\nimport StrapiLink from '../../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../../utils/strapiMediaUrl';\nimport { Text, Heading, Flex, Box, Container } from 'boemly';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../../../components/StrapiLinkButton';\n\nexport interface ContactProps {\n avatar?: StrapiImage;\n title?: string;\n text?: string;\n button?: StrapiLink;\n}\n\nexport const Contact: React.FC<ContactProps> = ({\n avatar,\n title,\n text,\n button,\n}: ContactProps) => (\n <Container backgroundColor=\"primary.100\" border=\"none\" p=\"8\" height=\"full\">\n <Flex\n flexDir=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height=\"full\"\n >\n {avatar ? (\n <Box\n position=\"relative\"\n width=\"20\"\n height=\"20\"\n borderRadius=\"full\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(avatar.img, 'small')}\n alt={avatar.alt}\n fill\n objectFit={avatar.objectFit}\n />\n </Box>\n ) : (\n <></>\n )}\n {title ? (\n <Heading\n mt=\"6\"\n size=\"md\"\n fontWeight=\"500\"\n textAlign=\"center\"\n color=\"black\"\n >\n {title}\n </Heading>\n ) : (\n <></>\n )}\n {text ? (\n <Text mt=\"2\" size=\"smRegularNormal\" textAlign=\"center\">\n {text}\n </Text>\n ) : (\n <></>\n )}\n {button ? (\n <StrapiLinkButton\n mt=\"6\"\n link={button}\n size=\"md\"\n variant=\"outline\"\n component=\"Contact\"\n />\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n);\n","import FPMProject from '../../models/fpm/FPMProject';\nimport fpmClient from '../fpmClient';\n\nconst getFpmProjectById = async (projectId: string): Promise<FPMProject> => {\n const fpmResponse = await fpmClient.get<FPMProject>(\n `/public/projects/${projectId}`\n );\n\n return fpmResponse.data;\n};\n\nexport default getFpmProjectById;\n","import React, { useEffect, useState } from 'react';\nimport { DefaultSectionContainer, Flex, Wrapper } from 'boemly';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport SmallCheckout from '../../components/portfolio/SmallCheckout';\nimport ProjectInfo from '../../components/portfolio/ProjectInfo';\nimport DocumentsDownloadList from '../../components/portfolio/DocumentsDownloadList';\nimport Contact from '../../components/portfolio/Contact';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport getFpmProjectById from '../../integrations/strapi/getFpmProjectById';\n\nexport interface ProjectFactsProps {\n project?: PortfolioProject;\n slice: {\n projectId: string;\n\n batchId?: string;\n currency?: 'EUR' | 'CHF';\n pricePerKg?: number;\n taxInPercent?: number;\n initialContributionValue?: number;\n checkoutText?: string;\n\n customTitle?: string;\n customSubtitle?: string;\n customButton?: StrapiLink;\n documentUrls?: StrapiLink[];\n\n areaSubtitle?: string;\n locationSubtitle?: string;\n startSubtitle?: string;\n timeSpanSubtitle?: string;\n projectTypeSubtitle?: string;\n projectDeveloperSubtitle?: string;\n verificationStandardSubtitle?: string;\n averageSellableAmountPerYearSubtitle?: string;\n riskBufferSubtitle?: string;\n buyCreditsSubtitle?: string;\n\n contactTitle?: string;\n contactText?: string;\n contactButton?: StrapiLink;\n contactAvatar?: StrapiImage;\n };\n}\n\nexport const ProjectFacts: React.FC<ProjectFactsProps> = ({\n slice,\n project,\n}: ProjectFactsProps) => {\n const [enhancedProject, setEnhancedProject] = useState<\n PortfolioProject | undefined\n >(project);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n const fetchCompleteProjectData = async () => {\n if (project && project.id) {\n setIsLoading(true);\n try {\n const completeFpmProject = await getFpmProjectById(project.id);\n\n // Merge the complete FPM data with existing project data (preserving Strapi fields like slug, portfolioHost, thumbnail)\n const mergedProject: PortfolioProject = {\n ...completeFpmProject,\n slug: project.slug,\n portfolioHost: project.portfolioHost,\n thumbnail: project.thumbnail,\n };\n\n setEnhancedProject(mergedProject);\n } catch (error) {\n console.error('Error fetching complete project data:', error);\n // Fallback to original project data if fetch fails\n setEnhancedProject(project);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n fetchCompleteProjectData();\n }, [project]);\n\n if (!enhancedProject) {\n return (\n <>Invalid configuration, check if a project this id exists in the FPM</>\n );\n }\n\n if (isLoading) {\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <div>Loading project data...</div>\n </Wrapper>\n </DefaultSectionContainer>\n );\n }\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Flex flexDir={['column', null, null, 'row']} gap=\"4\" width=\"full\">\n <ProjectInfo project={enhancedProject} subtitles={slice} />\n <Flex flexDir=\"column\" gap=\"4\" width=\"full\">\n {slice.documentUrls && slice.documentUrls.length > 0 && (\n <DocumentsDownloadList documentUrls={slice.documentUrls} />\n )}\n {slice.batchId &&\n slice.pricePerKg &&\n slice.currency &&\n slice.initialContributionValue ? (\n <SmallCheckout\n batchId={slice.batchId}\n checkoutText={slice.checkoutText}\n currency={slice.currency}\n initialContributionValue={slice.initialContributionValue}\n pricePerKg={slice.pricePerKg}\n title={slice.customTitle}\n subtitle={slice.customSubtitle}\n button={slice.customButton}\n taxInPercent={slice.taxInPercent}\n />\n ) : (\n (slice.contactTitle ||\n slice.contactText ||\n slice.contactButton ||\n slice.contactAvatar) && (\n <Contact\n title={slice.contactTitle}\n text={slice.contactText}\n button={slice.contactButton}\n avatar={slice.contactAvatar}\n />\n )\n )}\n </Flex>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import { Container, Center, Heading, Button, Box, Text, Flex } from 'boemly';\nimport React, { useContext } from 'react';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport { IntlContext } from '../../components/ContextProvider';\nimport Link from 'next/link';\n\nexport interface CustomerCardProps {\n customerStory: StrapiCustomerStory;\n}\nexport const CustomerCard = ({\n customerStory,\n}: CustomerCardProps): JSX.Element => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container padding=\"none\" height=\"full\">\n <Flex flexDir=\"column\" height=\"full\">\n <Center height=\"24\" backgroundColor=\"primary.50\" borderTopRadius=\"xl\">\n {customerStory.cardImage && (\n <Box position=\"relative\" height=\"12\" width=\"12\">\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Box>\n )}\n </Center>\n <Box px=\"6\" pt=\"8\" pb=\"6\" mb=\"auto\">\n {customerStory.customerCardCustomerIndustry && (\n <Text size=\"xsMonoUppercase\" color=\"gray.500\" mb=\"2\">\n {customerStory.customerCardCustomerIndustry}\n </Text>\n )}\n {customerStory.title && (\n <Heading size=\"md\" fontWeight=\"500\">\n {customerStory.title}\n </Heading>\n )}\n </Box>\n <Box px=\"6\" pt=\"8\" pb=\"6\">\n <Button\n as={Link}\n href={`/customer-stories/${customerStory.slug}`}\n variant=\"outline\"\n size=\"sm\"\n >\n {formatMessage({ id: 'sections.customerCard.more' })}\n </Button>\n </Box>\n </Flex>\n </Container>\n );\n};\n","import { Container, Heading, Button, Box, Text } from 'boemly';\nimport React, { useContext } from 'react';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport { IntlContext } from '../../components/ContextProvider';\nimport Link from 'next/link';\n\nexport interface CustomerQuoteCardProps {\n customerStory: StrapiCustomerStory;\n}\n\nexport const CustomerQuoteCard = ({\n customerStory,\n}: CustomerQuoteCardProps): JSX.Element => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <Container p=\"1\" backgroundColor=\"primary.100\" height=\"full\">\n {customerStory.cardImage ? (\n <Box\n position=\"relative\"\n height=\"12\"\n width=\"12\"\n borderRadius=\"full\"\n overflow=\"hidden\"\n >\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n <Box>\n <Box my=\"8\">\n <Heading size=\"md\" fontWeight=\"500\">\n {customerStory.customerName}\n </Heading>\n <Text size=\"xs\">{customerStory.quoteCardCustomerTitle}</Text>\n </Box>\n <Text size=\"xs\" color=\"black\">\n {customerStory.quoteCardQuote}\n </Text>\n <Button\n href={`/customer-stories/${customerStory.slug}`}\n as={Link}\n variant=\"outline\"\n size=\"sm\"\n mt=\"8\"\n >\n {formatMessage({ id: 'sections.customerQuoteCard.more' })}\n </Button>\n </Box>\n </Container>\n );\n};\n","import { Box, Container, Flex } from 'boemly';\nimport { StrapiCustomerStory, strapiMediaUrl } from '../..';\nimport Image from 'next/image';\nimport React from 'react';\nimport Link from 'next/link';\n\nexport interface LogoCardProps {\n customerStory: StrapiCustomerStory;\n}\nexport const LogoCard = ({ customerStory }: LogoCardProps) => {\n if (customerStory.cardImage) {\n return (\n <Container height=\"full\" backgroundColor=\"primary.50\">\n <Flex justifyContent=\"center\" height=\"full\" padding=\"4\">\n <Box position=\"relative\" height=\"12\" width=\"36\" marginY=\"auto\">\n <Link href={`/customer-stories/${customerStory.slug}`}>\n <Image\n src={strapiMediaUrl(customerStory.cardImage.img, 'medium')}\n alt={customerStory.cardImage.alt}\n fill\n style={{\n objectFit: customerStory.cardImage.objectFit,\n }}\n />\n </Link>\n </Box>\n </Flex>\n </Container>\n );\n }\n return <></>;\n};\n","import React from 'react';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport { Box, DefaultSectionContainer, SimpleGrid, Wrapper } from 'boemly';\nimport CustomerCard from '../../components/CustomerCard';\nimport CustomerQuoteCard from '../../components/CustomerQuoteCard';\nimport LogoCard from '../../components/LogoCard';\n\nexport interface CustomerStoriesProps {\n slice: {\n customer_stories: IStrapiData<StrapiCustomerStory>[];\n };\n customerStories: IStrapiData<StrapiCustomerStory>[];\n}\n\nexport const CustomerStories = ({\n slice,\n customerStories,\n}: CustomerStoriesProps): JSX.Element => {\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <SimpleGrid columns={[1, null, null, 2, 3]} spacingX={6} spacingY={6}>\n {slice.customer_stories.map(({ attributes }) => {\n const customerStory: IStrapiData<StrapiCustomerStory> | undefined =\n customerStories.find(\n (cs) => cs.attributes.slug === attributes.slug\n );\n if (!customerStory) {\n return null;\n }\n return (\n <Box key={customerStory.id}>\n {attributes.variant === 'customerCard' && (\n <CustomerCard customerStory={customerStory.attributes} />\n )}\n {attributes.variant === 'quoteCard' && (\n <CustomerQuoteCard customerStory={customerStory.attributes} />\n )}\n {attributes.variant === 'logoCard' && (\n <LogoCard customerStory={customerStory.attributes} />\n )}\n </Box>\n );\n })}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport { Check, X } from '@phosphor-icons/react';\nimport { Box } from 'boemly';\n\nexport interface IconProps {\n variant: 'gray' | 'green' | 'white';\n icon: string;\n}\n\nconst BULLET_POINT_VARIANTS = {\n gray: { bulletPointColor: 'black' },\n green: { bulletPointColor: 'white' },\n white: { bulletPointColor: 'black' },\n};\n\nexport const Icon = ({ variant, icon }: IconProps): JSX.Element => {\n switch (icon) {\n case 'check':\n return <Check size={20} color=\"var(--boemly-colors-primary-500)\" />;\n case 'cross':\n return <X size={20} color=\"var(--boemly-colors-red-500)\" />;\n default:\n return (\n <Box\n data-testid=\"bullet-point-box\"\n borderRadius=\"full\"\n backgroundColor={BULLET_POINT_VARIANTS[variant].bulletPointColor}\n width=\"2\"\n height=\"2\"\n margin=\"1.5\"\n />\n );\n }\n};\nexport default Icon;\n","import React, { useContext } from 'react';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport {\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Wrapper,\n Text,\n Flex,\n Box,\n Spacer,\n Divider,\n Heading,\n Badge,\n SimpleGrid,\n} from 'boemly';\nimport Image from 'next/image';\nimport { CaretRight } from '@phosphor-icons/react';\nimport { Icon } from './Icon';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from '../../components/ContextProvider';\n\nexport interface ComparisonProps {\n slice: {\n title?: string;\n subTitle?: string;\n tagline?: string;\n\n comparisonCards: ComparisonCard[];\n };\n}\n\nexport interface ComparisonCard {\n id: number;\n title: string;\n subTitle: string;\n badge?: string;\n variant: 'gray' | 'green' | 'white';\n image?: StrapiImage;\n button?: StrapiLink;\n factTitle?: string;\n factSubtitle?: string;\n lists: {\n id: string;\n title: string;\n items: { id: string; text: string; icon: 'bullet' | 'check' | 'cross' }[];\n }[];\n}\n\nconst VARIANTS = {\n gray: {\n backgroundColor: 'primary.50',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n green: {\n backgroundColor: 'primary.800',\n textColor: 'white',\n subTitleColor: 'whiteAlpha.900',\n factColor: 'white',\n dividerColor: 'whiteAlpha.200',\n },\n white: {\n backgroundColor: 'white',\n textColor: 'black',\n subTitleColor: 'gray.500',\n factColor: 'primary.800',\n dividerColor: 'gray.200',\n },\n};\n\nexport const Comparison: React.FC<ComparisonProps> = ({\n slice,\n}: ComparisonProps) => {\n const { formatMessage } = useContext(IntlContext);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.subTitle}\n textProps={{ maxW: '2xl', textAlign: 'center' }}\n titleProps={{\n textAlign: 'center',\n maxWidth: '3xl',\n }}\n taglineProps={{ textAlign: 'center', maxWidth: '3xl' }}\n />\n </Flex>\n <Spacer height=\"12\" />\n </>\n ) : (\n <></>\n )}\n <SimpleGrid\n columns={[1, null, null, null, slice.comparisonCards.length]}\n spacing=\"4\"\n >\n {slice.comparisonCards.map((comparisonCard) => (\n <Container\n boxShadow={comparisonCard.variant === 'green' ? 'xl' : 'base'}\n border={\n comparisonCard.variant === 'green' ? 'primary.800' : undefined\n }\n zIndex=\"base\"\n key={comparisonCard.id}\n position=\"relative\"\n elevation=\"none\"\n p=\"3\"\n backgroundColor={VARIANTS[comparisonCard.variant].backgroundColor}\n >\n {comparisonCard.variant === 'green' ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n zIndex=\"-1\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/shapes-comparison.svg`}\n alt={formatMessage({\n id: 'sections.comparison.backgroundShapes',\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n <Flex flexDir=\"column\" gap=\"4\">\n {comparisonCard.image && (\n <Box position=\"relative\" height=\"7\" width=\"100%\">\n <Image\n src={strapiMediaUrl(comparisonCard.image.img, 'small')}\n alt={comparisonCard.image.alt}\n fill\n style={{\n objectFit: comparisonCard.image.objectFit,\n }}\n />\n </Box>\n )}\n <Flex gap=\"2\" alignItems=\"center\" flexWrap=\"wrap\">\n <Heading\n size=\"xl\"\n color={VARIANTS[comparisonCard.variant].textColor}\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.title}\n </Heading>\n {comparisonCard.badge && (\n <Badge\n backgroundColor=\"green.100\"\n borderRadius=\"md\"\n whiteSpace=\"pre-line\"\n >\n {comparisonCard.badge}\n </Badge>\n )}\n </Flex>\n </Flex>\n <Spacer height=\"4\" />\n <Text\n size=\"smRegularNormal\"\n color={VARIANTS[comparisonCard.variant].subTitleColor}\n >\n {comparisonCard.subTitle}\n </Text>\n\n {comparisonCard.factTitle ||\n comparisonCard.factSubtitle ||\n comparisonCard.button ? (\n <>\n <Spacer height=\"6\" />\n <Flex flexDir=\"column\">\n {comparisonCard.factTitle && (\n <>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"lgMonoNormal\"\n >\n {comparisonCard.factTitle}\n </Text>\n <Text\n color={VARIANTS[comparisonCard.variant].factColor}\n size=\"smLowNormal\"\n >\n {comparisonCard.factSubtitle}\n </Text>\n </>\n )}\n {comparisonCard.button && (\n <StrapiLinkButton\n mt=\"6\"\n link={comparisonCard.button}\n size=\"md\"\n variant=\"outline\"\n rightIcon={<CaretRight size={16} weight=\"bold\" />}\n component=\"Comparison\"\n />\n )}\n </Flex>\n </>\n ) : (\n <></>\n )}\n <>\n {comparisonCard.lists.map((list) => (\n <Box key={list.id}>\n <Divider\n my=\"8\"\n color={VARIANTS[comparisonCard.variant].dividerColor}\n />\n <Text\n size=\"smLowBold\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {list.title}\n </Text>\n <>\n {list.items.map((item) => (\n <Box key={item.id}>\n <Spacer height=\"4\" />\n <Flex gap=\"4\" alignItems=\"center\">\n <Box>\n <Icon\n variant={comparisonCard.variant}\n icon={item.icon}\n />\n </Box>\n <Text\n size=\"smLowNormal\"\n color={VARIANTS[comparisonCard.variant].textColor}\n >\n {item.text}\n </Text>\n </Flex>\n </Box>\n ))}\n </>\n </Box>\n ))}\n </>\n </Container>\n ))}\n </SimpleGrid>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\nexport default Comparison;\n","import { motion } from 'framer-motion';\nimport styled from '@emotion/styled';\nimport { BREAKPOINT_MD } from '../../constants/breakpoints';\n\ninterface CarouselInnerContainerProps {\n logoCount: number;\n}\n\nexport const CarouselInnerContainer = styled(\n motion.div\n)<CarouselInnerContainerProps>`\n display: flex;\n justify-content: ${(props) =>\n props.logoCount < 5 ? 'center' : 'flex-start'};\n gap: var(--boemly-space-24);\n padding-right: var(--boemly-space-24);\n padding-left: var(--boemly-space-24);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n width: calc(\n ${(props) => props.logoCount} *\n (var(--boemly-sizes-16) + var(--boemly-space-6))\n );\n justify-content: ${(props) =>\n props.logoCount < 5 ? 'center' : 'flex-start'};\n }\n`;\n\nexport const LogoGrid = styled(motion.div)`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: var(--boemly-space-24);\n\n @media screen and (max-width: ${BREAKPOINT_MD}) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--boemly-space-6);\n }\n`;\n","import React, { useEffect, useState } from 'react';\nimport {\n DefaultSectionContainer,\n Flex,\n Heading,\n Spacer,\n Box,\n useMediaQuery,\n useToken,\n} from 'boemly';\nimport Image from 'next/image';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport { useWindowSize } from 'react-use';\n\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport AutoScroll from 'embla-carousel-auto-scroll';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport { getClosestRatio } from '../../utils/getClosestRatio';\nimport { CarouselInnerContainer, LogoGrid } from './styles';\n\nexport interface CarouselMarqueeBannerProps {\n slice: {\n title?: string;\n logos: StrapiImage[];\n };\n}\n\n// Separate component containing the actual logic\nconst CarouselMarqueeBannerContent: React.FC<CarouselMarqueeBannerProps> = ({\n slice,\n}) => {\n const [primary50] = useToken('colors', ['primary.50']);\n const { width: windowWidth } = useWindowSize();\n const hasEnoughLogosForLoop = slice.logos.length >= 5;\n const LOOP_ARRAY_LENGTH = windowWidth > 2000 ? 5 : 4;\n\n // Duplicate Logos to create a full loop\n const logosToRender = hasEnoughLogosForLoop\n ? Array.from({ length: LOOP_ARRAY_LENGTH }, () => slice.logos).flat()\n : slice.logos;\n\n const [isMobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n // Carousel setup\n const [emblaRef] = useEmblaCarousel(\n {\n loop: hasEnoughLogosForLoop,\n align: 'start',\n containScroll: 'trimSnaps',\n dragFree: true,\n },\n hasEnoughLogosForLoop\n ? [\n AutoScroll({\n playOnInit: true,\n speed: isMobile ? 0.5 : 1,\n stopOnInteraction: false,\n stopOnMouseEnter: false,\n stopOnFocusIn: false,\n }),\n ]\n : []\n );\n\n const renderLogos = (): React.ReactNode => {\n if (!hasEnoughLogosForLoop) {\n return (\n <LogoGrid>\n {slice.logos.map((logo, index) => (\n <Box\n key={`${logo.id}-${index}`}\n flexShrink={0}\n transform=\"translate3d(0, 0, 0)\"\n >\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Box\n position=\"relative\"\n height={isMobile ? '16' : '36'}\n width={`calc(var(--boemly-sizes-10)\n * ${getClosestRatio(\n logo.img.data.attributes.width,\n logo.img.data.attributes.height\n )})`}\n >\n <Image\n src={strapiMediaUrl(logo.img, 'large')}\n alt={logo.alt}\n fill\n style={{\n objectFit: logo.objectFit || 'contain',\n filter: 'grayscale(100%)',\n }}\n />\n </Box>\n </Flex>\n </Box>\n ))}\n </LogoGrid>\n );\n }\n\n return (\n <Box width=\"full\" overflow=\"hidden\" ref={emblaRef} cursor=\"pointer\">\n <CarouselInnerContainer logoCount={slice.logos.length}>\n {logosToRender.map((logo, index) => (\n <Box\n key={`${logo.id}-${index}`}\n flexShrink={0}\n transform=\"translate3d(0, 0, 0)\"\n >\n <Flex\n height=\"full\"\n width=\"full\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Box\n position=\"relative\"\n height={isMobile ? '16' : '36'}\n width={`calc(var(--boemly-sizes-10) * ${getClosestRatio(\n logo.img.data.attributes.width,\n logo.img.data.attributes.height\n )})`}\n >\n <Image\n src={strapiMediaUrl(logo.img, 'large')}\n alt={logo.alt}\n fill\n style={{\n objectFit: logo.objectFit || 'contain',\n filter: 'grayscale(100%)',\n }}\n />\n </Box>\n </Flex>\n </Box>\n ))}\n </CarouselInnerContainer>\n </Box>\n );\n };\n\n return (\n <DefaultSectionContainer backgroundColor={primary50}>\n <>\n {slice.title ? (\n <>\n <Flex alignItems=\"center\" flexDirection=\"column\">\n <Heading size=\"md\" fontWeight=\"500\">\n {slice.title}\n </Heading>\n </Flex>\n <Spacer height=\"12\" minHeight=\"12\" />\n </>\n ) : null}\n\n {renderLogos()}\n </>\n </DefaultSectionContainer>\n );\n};\n\n// Lazy-rendering the child component after client-side hydration\nexport const CarouselMarqueeBanner: React.FC<CarouselMarqueeBannerProps> = ({\n slice,\n}: CarouselMarqueeBannerProps) => {\n const [showChild, setShowChild] = useState(false);\n\n useEffect(() => {\n setShowChild(true); // Hydrate the component after the client-side is ready\n }, []);\n\n if (!showChild) {\n return <div />;\n }\n\n return <CarouselMarqueeBannerContent slice={slice} />;\n};\n\nexport default CarouselMarqueeBanner;\n","import React, { useContext } from 'react';\nimport {\n Button,\n Box,\n Container,\n DefaultSectionContainer,\n DefaultSectionHeader,\n Flex,\n Heading,\n RichText,\n SimpleGrid,\n Spacer,\n Tag,\n Text,\n Wrapper,\n useMediaQuery,\n} from 'boemly';\nimport Image from 'next/image';\nimport StrapiImage from '../../models/strapi/StrapiImage';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport StrapiLink from '../../models/strapi/StrapiLink';\nimport StrapiLinkButton from '../../components/StrapiLinkButton';\nimport { CDN_URI } from '../../constants/api';\nimport { IntlContext } from 'react-intl';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport { useState } from 'react';\nimport FullScreenImage from '../../components/FullScreenImage';\n\nexport interface TimelineProps {\n slice: {\n title: string;\n text?: string;\n tagline?: string;\n\n timelineItems: TimelineItem[];\n };\n}\n\nexport interface TimelineItem {\n id: number;\n tagline?: string;\n title: string;\n text?: string;\n badge?: { text: string; variant: 'orange' | 'green' | 'red' | 'gray' };\n logo?: StrapiImage;\n icon?: StrapiImage;\n image?: StrapiImage;\n button?: StrapiLink;\n backgroundShapes?: boolean;\n}\n\nexport const Timeline: React.FC<TimelineProps> = ({ slice }: TimelineProps) => {\n const { formatMessage } = useContext(IntlContext);\n const [visibleItems, setVisibleItems] = useState(3);\n const [mobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n const [isOpen, setIsOpen] = useState(false);\n\n const showMoreItems = () => {\n setVisibleItems((prevVisibleItems) => prevVisibleItems + 3);\n };\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n <Flex flexDir={['column', null, null, 'row']}>\n <Box\n width={['full', null, null, '50%']}\n position={[null, null, null, 'sticky']}\n top={['16', null, null, '32']}\n height=\"full\"\n paddingRight={[null, null, null, '28']}\n >\n <DefaultSectionHeader\n tagline={slice.tagline}\n title={slice.title}\n text={slice.text}\n />\n {mobile && (\n <>\n <Spacer h=\"10\" />\n <Flex justifyContent=\"center\">\n <Box\n borderRadius=\"full\"\n width=\"3\"\n height=\"3\"\n margin=\"1.5\"\n backgroundColor=\"gray\"\n />\n </Flex>\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"20\"\n />\n </>\n )}\n </Box>\n <Box\n overflow=\"visible\"\n maxWidth={['full', null, null, '50%']}\n borderLeft={[\n null,\n null,\n null,\n 'dashed 1px var(--boemly-colors-gray-200)',\n ]}\n position=\"relative\"\n width=\"full\"\n >\n <Flex\n flexDir=\"column\"\n overflow=\"visible\"\n gap={[null, null, null, '8']}\n >\n {slice.timelineItems.slice(0, visibleItems).map((item, index) => (\n <SimpleGrid\n gap={['none', null, null, '4']}\n key={item.id}\n columns={[1, null, null, 2]}\n alignContent=\"center\"\n gridTemplateColumns={[null, null, null, '1fr 16fr']}\n position=\"relative\"\n >\n <Flex\n alignItems=\"center\"\n justifyContent={['center', null, null, 'flex-start']}\n >\n <Box\n position=\"absolute\"\n transform={[null, null, null, 'translateX(-50%)']}\n backgroundColor=\"white\"\n >\n {item.icon ? (\n <Box padding=\"2\">\n <Image\n src={strapiMediaUrl(item.icon.img, 'xSmall')}\n alt={item.icon.alt}\n width=\"21\"\n height=\"21\"\n />\n </Box>\n ) : (\n <Box padding=\"2\">\n <Box\n borderRadius=\"full\"\n backgroundColor=\"primary.800\"\n width=\"2\"\n height=\"2\"\n />\n </Box>\n )}\n {mobile && (\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"10\"\n />\n )}\n </Box>\n </Flex>\n <Container\n p={[null, null, null, '3']}\n zIndex=\"base\"\n position=\"relative\"\n elevation=\"none\"\n >\n {item.backgroundShapes ? (\n <Box\n position=\"absolute\"\n left=\"0\"\n top=\"0\"\n width=\"full\"\n height=\"full\"\n zIndex=\"-1\"\n >\n <Image\n src={`${CDN_URI}/assets/v3/strapi-slices/timeline-shapes.svg`}\n alt={formatMessage({\n id: 'sections.timeline.backgroundShapes',\n })}\n fill\n style={{\n objectFit: 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n />\n </Box>\n ) : (\n <></>\n )}\n\n <Flex flexDir=\"column\">\n <Flex\n alignItems=\"flex-start\"\n justifyContent=\"space-between\"\n >\n <Box>\n {item.tagline && (\n <>\n <Text color=\"primary.800\" size=\"smMonoUppercase\">\n {item.tagline}\n </Text>\n <Spacer h=\"2\" />\n </>\n )}\n </Box>\n <Flex>\n {item.badge && (\n <Tag\n colorScheme={item.badge.variant}\n borderRadius=\"md\"\n >\n {item.badge.text}\n </Tag>\n )}\n {item.logo && (\n <Box position=\"relative\" height=\"8\" width=\"16\">\n <Image\n src={strapiMediaUrl(item.logo.img, 'small')}\n alt={item.logo.alt}\n fill\n style={{\n objectFit: item.logo.objectFit,\n }}\n />\n </Box>\n )}\n </Flex>\n </Flex>\n <Heading\n size=\"lg\"\n mt={['6', null, null, '3']}\n maxWidth=\"xs\"\n >\n {item.title}\n </Heading>\n {item.text && (\n <Box mt=\"3\">\n <RichText content={item.text} />\n </Box>\n )}\n {item.button && (\n <Box textAlign=\"left\">\n <Spacer h=\"4\" />\n <StrapiLinkButton\n link={item.button}\n size=\"sm\"\n variant=\"outline\"\n component=\"Timeline\"\n />\n </Box>\n )}\n {item.image ? (\n <>\n <Box\n position=\"relative\"\n mt=\"4\"\n height={['2xs', null, null, null, '48']}\n minWidth={[null, null, null, null, '50%']}\n >\n <Image\n src={strapiMediaUrl(item.image.img, 'xLarge')}\n alt={item.image.alt}\n fill\n style={{\n cursor: mobile ? 'unset' : 'pointer',\n objectFit: item.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-xl)',\n }}\n onClick={() => !mobile && setIsOpen(true)}\n />\n <FullScreenImage\n images={[item.image]}\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n />\n </Box>\n </>\n ) : (\n <></>\n )}\n </Flex>\n </Container>\n {mobile && index + 1 < slice.timelineItems.length && (\n <Box\n overflow=\"visible\"\n borderRight=\"dashed 1px var(--boemly-colors-gray-200)\"\n transform=\"translateX(-50%)\"\n position=\"relative\"\n height=\"20\"\n />\n )}\n </SimpleGrid>\n ))}\n </Flex>\n {visibleItems < slice.timelineItems.length && (\n <>\n <Box\n width=\"full\"\n height={['36', null, null, '64']}\n position=\"absolute\"\n bottom=\"0\"\n zIndex=\"1\"\n background=\"linear-gradient(180deg, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.98) 76.54%, #FFF 100%)\"\n />\n <Box\n bottom=\"0\"\n textAlign=\"center\"\n zIndex=\"overlay\"\n position=\"relative\"\n >\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={showMoreItems}\n m={[null, null, null, '8']}\n >\n {formatMessage({ id: 'sections.timeline.showMoreButton' })}\n </Button>\n </Box>\n </>\n )}\n </Box>\n </Flex>\n </Wrapper>\n </DefaultSectionContainer>\n );\n};\n","const getCountryFlag = (countryCode: string): string => {\n return countryCode\n .toUpperCase()\n .replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397));\n};\nexport default getCountryFlag;\n","import Locale from '../Locale';\nimport StrapiImage from './StrapiImage';\nimport StrapiLink from './StrapiLink';\nimport StrapiLocalization from './StrapiLocalization';\nimport StrapiTopBanner from './StrapiTopBanner';\n\nexport enum EventType {\n CONFERENCE = 'Conference',\n MEET_UP = 'Meet Up',\n WEBINAR = 'Webinar',\n FOREST_WALK = 'Forest Walk',\n LUNCH_AND_LEARN = 'Lunch & Learn',\n FESTIVAL = 'Festival',\n ROADSHOW = 'RoadShow',\n PARTNER_EVENT = 'Partner Event',\n FAIR = 'Fair',\n}\n\ninterface StrapiEvent {\n title: string;\n description: string;\n button?: StrapiLink;\n buttonVariant?: 'outline' | 'ghost' | 'link' | 'solid' | 'outlineWhite';\n recommended?: boolean;\n speakers?: {\n id: number;\n name: string;\n image: StrapiImage;\n }[];\n image: StrapiImage;\n logo: StrapiImage;\n eventTypes: {\n id: number;\n eventType: EventType;\n }[];\n languages: {\n id: number;\n language: string;\n countryCode: string;\n }[];\n location?: string;\n locale: Locale;\n online?: boolean;\n start: Date;\n end?: Date;\n allDay?: boolean;\n slices: any[];\n localizations: StrapiLocalization[];\n topBanner?: StrapiTopBanner;\n}\n\nexport default StrapiEvent;\n","const isSameDate = (date1: Date, date2: Date): boolean => {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n};\n\nexport default isSameDate;\n","import React, { useContext, useState } from 'react';\nimport {\n Text,\n Box,\n Flex,\n Heading,\n Tooltip,\n Tag,\n useMediaQuery,\n Button,\n} from 'boemly';\nimport { css } from '@emotion/react';\nimport Image from 'next/image';\nimport StrapiLinkButton from '../StrapiLinkButton';\nimport {\n BowlFood,\n CalendarBlank,\n CaretDown,\n CaretRight,\n CaretUp,\n ChalkboardTeacher,\n Confetti,\n Handshake,\n Headset,\n Info,\n Laptop,\n MapPinLine,\n PersonSimpleWalk,\n ProjectorScreenChart,\n Star,\n UsersThree,\n Webcam,\n} from '@phosphor-icons/react';\nimport getCountryFlag from '../../utils/getCountryFlag';\nimport { BREAKPOINT_MD_QUERY } from '../../constants/breakpoints';\nimport StrapiEvent, { EventType } from '../../models/strapi/StrapiEvent';\nimport { IntlContext } from '../ContextProvider';\nimport strapiMediaUrl from '../../utils/strapiMediaUrl';\nimport isSameDate from '../../utils/isSameDate';\n\nexport interface EventCardProps {\n event: StrapiEvent;\n}\n\nconst MAX_LENGTH = 120;\nconst LOCATION_MAX_LENGTH = 28;\n\nconst getEventIcon = (eventType: string): JSX.Element => {\n switch (eventType) {\n case EventType.WEBINAR:\n return <Webcam size={12} />;\n case EventType.CONFERENCE:\n return <Headset size={12} />;\n case EventType.MEET_UP:\n return <UsersThree size={12} />;\n case EventType.FOREST_WALK:\n return <PersonSimpleWalk size={12} />;\n case EventType.PARTNER_EVENT:\n return <Handshake size={12} />;\n case EventType.LUNCH_AND_LEARN:\n return <BowlFood size={12} />;\n case EventType.FAIR:\n return <ChalkboardTeacher size={12} />;\n case EventType.FESTIVAL:\n return <Confetti size={12} />;\n case EventType.ROADSHOW:\n return <ProjectorScreenChart size={12} />;\n default:\n return <Info size={12} weight=\"fill\" />;\n }\n};\n\nexport const EventCard = ({ event }: EventCardProps): JSX.Element => {\n const { formatDate, formatNumber, formatMessage } = useContext(IntlContext);\n const [isExpanded, setIsExpanded] = useState(false);\n const [mobile] = useMediaQuery(BREAKPOINT_MD_QUERY);\n\n const toggleText = () => {\n setIsExpanded(!isExpanded);\n };\n\n const isLocationTooLong =\n (event.location?.length ?? 0) >= LOCATION_MAX_LENGTH;\n\n return (\n <Box\n borderRadius={['xl', null, null, '2xl']}\n height=\"full\"\n width=\"full\"\n border=\"1px solid var(--boemly-colors-gray-200)\"\n background=\"white\"\n >\n <Box\n position=\"relative\"\n width=\"full\"\n height={['32', null, null, '44']}\n borderTopRadius={['xl', null, null, '2xl']}\n css={css`\n & span,\n div,\n img {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n }\n `}\n >\n <Image\n src={strapiMediaUrl(event.image?.img, 'medium')}\n alt={event.image?.alt}\n fill\n style={{\n objectFit: event.image?.objectFit || 'cover',\n }}\n />\n\n <Box\n position=\"absolute\"\n top={['6', null, null, '8']}\n right={['6', null, null, '8']}\n zIndex=\"1\"\n width={['12', null, null, '16']}\n height={['12', null, null, '16']}\n >\n <Image\n src={strapiMediaUrl(event.logo.img, 'medium')}\n alt={event.logo.alt}\n fill\n style={{\n objectFit: event.logo.objectFit || 'contain',\n borderRadius: 'var(--boemly-radii-md)',\n border:\n '1px solid, var(--whiteAlpha-700, rgba(255, 255, 255, 0.64))',\n }}\n />\n </Box>\n </Box>\n <Flex\n flexDir=\"column\"\n p={['6', null, null, '8']}\n h=\"calc(var(--boemly-sizes-full) - var(--boemly-sizes-44))\"\n >\n <Flex flexDir=\"row\" mb=\"4\" gap=\"2\" flexWrap=\"wrap\">\n {event.recommended ? (\n <Flex mb={['2', null, null, '0']}>\n <Tag backgroundColor=\"green.600\">\n <Star size={12} weight=\"fill\" color=\"white\" />\n &nbsp;\n <Text size=\"xsLowBold\" color=\"white\">\n {formatMessage({\n id: 'sections.eventCard.recommendedEvent',\n })}\n </Text>\n </Tag>\n </Flex>\n ) : (\n <></>\n )}\n <Flex flexWrap=\"wrap\" gap=\"2\">\n {event.eventTypes.map((e) => (\n <Tag key={e.id}>\n {getEventIcon(e.eventType)}&nbsp;\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {formatMessage({\n id: `sections.eventCard.eventType.${e.eventType\n .toLowerCase()\n .replace(/\\s+/g, '')}`,\n })}\n </Text>\n </Tag>\n ))}\n {event.languages.map(({ id, language, countryCode }) => (\n <Tag key={id}>\n {getCountryFlag(countryCode)}&nbsp;\n <Text size=\"xsLowBold\" color=\"gray.800\">\n {language}\n </Text>\n </Tag>\n ))}\n </Flex>\n </Flex>\n <Heading>{event.title}</Heading>\n <Flex\n gap={isLocationTooLong ? '2' : ['2', null, null, '6']}\n alignItems={mobile || isLocationTooLong ? 'flex-start' : 'center'}\n my=\"4\"\n flexDir={mobile || isLocationTooLong ? 'column' : 'row'}\n >\n {event.online && (\n <Flex gap=\"2\" alignItems=\"center\">\n <Laptop size={20} color={'var(--boemly-colors-primary-700)'} />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>Online</Text>\n </Flex>\n )}\n {event.location && (\n <Flex gap=\"2\" alignItems=\"center\">\n <MapPinLine\n size={20}\n color={'var(--boemly-colors-primary-700)'}\n weight=\"fill\"\n />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>\n {event.location}\n </Text>\n </Flex>\n )}\n <Flex alignItems=\"center\" gap=\"2\">\n <CalendarBlank\n size={20}\n color={'var(--boemly-colors-primary-700)'}\n />\n <Text size={['xsLowBold', null, null, 'smLowBold']}>\n {formatDate(event.start, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })}\n\n {!event.allDay &&\n ` | ${formatNumber(new Date(event.start).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.start).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n\n {event.end &&\n !isSameDate(new Date(event.start), new Date(event.end)) && (\n <>\n {' - '}\n {formatDate(event.end, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n })}\n\n {!event.allDay &&\n ` | ${formatNumber(new Date(event.end).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.end).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n </>\n )}\n\n {event.end &&\n !event.allDay &&\n isSameDate(new Date(event.start), new Date(event.end)) &&\n ` - ${formatNumber(new Date(event.end).getUTCHours(), {\n minimumIntegerDigits: 2,\n })}:${formatNumber(new Date(event.end).getUTCMinutes(), {\n minimumIntegerDigits: 2,\n })}`}\n </Text>\n </Flex>\n </Flex>\n <Text\n mb={mobile ? '0' : '7'}\n size={['xsRegularNormal', null, null, 'smRegularNormal']}\n >\n {isExpanded || !mobile\n ? event.description\n : `${event.description.substring(0, MAX_LENGTH)}...`}\n </Text>\n {event.description.length > MAX_LENGTH && mobile && (\n <Flex justifyContent=\"flex-start\">\n <Button\n mt=\"2\"\n onClick={toggleText}\n variant=\"link\"\n rightIcon={\n isExpanded ? <CaretUp size=\"12\" /> : <CaretDown size=\"12\" />\n }\n >\n {formatMessage(\n isExpanded\n ? {\n id: 'sections.eventCard.buttonShowLess',\n }\n : { id: 'sections.eventCard.buttonShowMore' }\n )}\n </Button>\n </Flex>\n )}\n <Flex\n mt={mobile ? '7' : 'auto'}\n justifyContent={mobile ? undefined : 'space-between'}\n flexDir={mobile ? 'column-reverse' : 'row'}\n gap={mobile ? '4' : '0'}\n >\n {event.button && (\n <Flex width={mobile ? 'full' : 'auto'}>\n <StrapiLinkButton\n key={event.button.id}\n size=\"md\"\n variant={event.buttonVariant}\n link={event.button}\n rightIcon={<CaretRight size=\"10\" />}\n width=\"full\"\n component=\"EventCard\"\n />\n </Flex>\n )}\n {event.speakers && event.speakers.length > 0 && (\n <Flex flexDir=\"row\" gap=\"2\">\n {event.speakers.map((speaker) => (\n <Box key={speaker.id}>\n <Box\n width={['10', null, null, '12']}\n height={['10', null, null, '12']}\n position=\"relative\"\n borderRadius=\"2xl\"\n >\n <Tooltip label={speaker.name}>\n <Image\n src={strapiMediaUrl(speaker.image.img, 'medium')}\n alt={speaker.image.alt}\n fill\n style={{\n objectFit: speaker.image.objectFit || 'cover',\n borderRadius: 'var(--boemly-radii-md)',\n border:\n '1px solid, var(--whiteAlpha-700, rgba(255, 255, 255, 0.64))',\n }}\n />\n </Tooltip>\n </Box>\n </Box>\n ))}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Box>\n );\n};\n","import useSWRInfinite, { SWRInfiniteKeyLoader } from 'swr/infinite';\nimport { useCallback, useMemo } from 'react';\nimport UseInfiniteDataHookProps from './UseInfiniteDataHookProps';\nimport SWRData from '../SWRData';\nimport IStrapiResponse from '../../models/strapi/IStrapiResponse';\nimport StrapiEvent from '../strapi/StrapiEvent';\n\nconst useEvents = ({\n getKey,\n batchSize,\n}: {\n getKey: SWRInfiniteKeyLoader;\n batchSize: number;\n}): UseInfiniteDataHookProps<IStrapiResponse<StrapiEvent[]>[]> => {\n const { data, isLoading, setSize, size, mutate } = useSWRInfinite<\n SWRData<IStrapiResponse<StrapiEvent[]>>\n >(getKey, { revalidateFirstPage: false, revalidateAll: false });\n\n const count: number | undefined = useMemo(() => {\n return data?.[0]?.body?.meta?.pagination?.total || 0;\n }, [data]);\n\n const isLoadingMore = useMemo(\n () => !!(size > 0 && data && typeof data[size - 1] === 'undefined'),\n [size, data]\n );\n\n const loadMore = useCallback(() => setSize(size + 1), [setSize, size]);\n\n const canLoadMore = useMemo(\n () => count !== undefined && size * batchSize < count,\n [count, size, batchSize]\n );\n\n return {\n data: data as any,\n isLoading,\n isLoadingMore,\n canLoadMore,\n refetch: mutate,\n loadMore,\n count,\n };\n};\n\nexport default useEvents;\n","import {\n DefaultSectionContainer,\n Wrapper,\n Spacer,\n DefaultSectionHeader,\n SimpleGrid,\n Box,\n Button,\n Flex,\n Center,\n Text,\n BoemlyTag,\n Select,\n} from 'boemly';\n\nimport React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport EventCard from '../../components/EventCard';\nimport { SWRInfiniteKeyLoader } from 'swr/infinite';\nimport useEvents from '../../models/hooks/useEvents';\nimport {\n STRAPI_DEFAULT_POPULATE_DEPTH,\n STRAPI_URI,\n} from '../../constants/strapi';\nimport { IntlContext } from '../../components/ContextProvider';\nimport { mutate } from 'swr/_internal';\nimport { EventType } from '@testing-library/react';\nimport StrapiEvent from '../../models/strapi/StrapiEvent';\nimport IStrapiData from '../../models/strapi/IStrapiData';\n\nconst UPCOMING_BATCH_SIZE = 6;\nconst PAST_BATCH_SIZE = 2;\n\ninterface FiltersProps {\n eventTypes: EventType[];\n languages: {\n id: number;\n language: string;\n countryCode: string;\n }[];\n}\n\nexport interface EventsProps {\n slice: {\n upcomingTitle?: string;\n upcomingDescription?: string;\n pastTitle: string;\n pastDescription?: string;\n filterSearch?: boolean;\n };\n}\n\nconst enum Sort {\n NEWEST_FIRST = 'newest',\n OLDEST_FIRST = 'oldest',\n}\n\ninterface EventOption {\n value: string;\n label: string;\n}\n\nexport const Events: React.FC<EventsProps> = ({ slice }: EventsProps) => {\n const { formatMessage, locale } = useContext(IntlContext);\n const [eventTypeFilter, setEventTypeFilter] = useState([] as string[]);\n const [languageFilter, setLanguageFilter] = useState([] as string[]);\n const [sort, setSort] = useState([Sort.NEWEST_FIRST] as string[]);\n\n const [allEventTypeOptions, setAllEventTypeOptions] = useState<EventOption[]>(\n []\n );\n const [allLanguageOptions, setAllLanguageOptions] = useState<EventOption[]>(\n []\n );\n\n const now = new Date().toISOString();\n\n const buildEventsUrl = (\n index: any,\n batchSize: number,\n startFilter: string\n ) => {\n const url = new URL(`/treely-events`, STRAPI_URI);\n url.searchParams.append(\n 'pagination[start]',\n (index * batchSize).toString()\n );\n url.searchParams.append('pagination[limit]', batchSize.toString());\n url.searchParams.append(startFilter, now);\n url.searchParams.append('locale', locale);\n url.searchParams.append('pLevel', STRAPI_DEFAULT_POPULATE_DEPTH);\n\n if (sort[0] === Sort.OLDEST_FIRST) {\n url.searchParams.append('sort', 'start:asc');\n } else {\n url.searchParams.append('sort', 'start:desc');\n }\n\n if (eventTypeFilter.length) {\n eventTypeFilter.forEach((filter, i) => {\n url.searchParams.append(\n `filters[$or][${i}][eventTypes][eventType]`,\n filter\n );\n });\n }\n\n if (languageFilter.length) {\n languageFilter.forEach((filter, i) => {\n url.searchParams.append(\n `filters[$or][${eventTypeFilter.length + i}][languages][language]`,\n filter\n );\n });\n }\n return `/treely-events` + url.search;\n };\n\n const getUpcomingKey: SWRInfiniteKeyLoader = useCallback(\n (index) =>\n buildEventsUrl(index, UPCOMING_BATCH_SIZE, 'filters[start][$gte]'),\n [eventTypeFilter, languageFilter, sort]\n );\n\n const getPastKey: SWRInfiniteKeyLoader = useCallback(\n (index) => buildEventsUrl(index, PAST_BATCH_SIZE, 'filters[start][$lt]'),\n [eventTypeFilter, languageFilter, sort]\n );\n\n const {\n data: upcomingData,\n isLoading: isLoadingUpcoming,\n isLoadingMore: isLoadingMoreUpcoming,\n canLoadMore: canLoadMoreUpcoming,\n loadMore: loadMoreUpcoming,\n } = useEvents({ getKey: getUpcomingKey, batchSize: UPCOMING_BATCH_SIZE });\n\n const {\n data: pastData,\n isLoading: isLoadingPast,\n isLoadingMore: isLoadingMorePast,\n canLoadMore: canLoadMorePast,\n loadMore: loadMorePast,\n } = useEvents({ getKey: getPastKey, batchSize: PAST_BATCH_SIZE });\n\n const processEvents = (data: any) => {\n return (\n data?.flatMap((d: any) => d?.body?.data)?.filter((t: any) => !!t) || []\n );\n };\n\n // Process upcoming events\n const upcomingEvents = useMemo(() => {\n return processEvents(upcomingData);\n }, [upcomingData]);\n\n // Process past events\n const pastEvents = useMemo(() => {\n return processEvents(pastData);\n }, [pastData]);\n\n // Function to fetch all possible options\n const fetchAllOptions = useCallback(async () => {\n const url = new URL(`/treely-events`, STRAPI_URI);\n url.searchParams.append('locale', locale);\n url.searchParams.append('pLevel', STRAPI_DEFAULT_POPULATE_DEPTH);\n\n const response = await fetch(\n `${STRAPI_URI}/api/treely-events${url.search}`,\n {\n headers: {\n 'Strapi-Response-Format': 'v4',\n },\n }\n );\n const data = await response.json();\n\n const events = data?.data || [];\n\n // Extract all event types\n const allEventTypes = new Set<string>();\n events.forEach((event: any) => {\n if (event?.attributes?.eventTypes) {\n event.attributes.eventTypes.forEach((item: any) => {\n allEventTypes.add(item.eventType);\n });\n }\n });\n\n // Extract all languages\n const allLanguages = new Set<string>();\n events.forEach((event: any) => {\n if (event?.attributes?.languages) {\n event.attributes.languages.forEach((item: any) => {\n allLanguages.add(item.language);\n });\n }\n });\n\n // Update state with all options\n setAllEventTypeOptions(\n Array.from(allEventTypes).map((value) => ({ value, label: value }))\n );\n\n setAllLanguageOptions(\n Array.from(allLanguages).map((value) => ({ value, label: value }))\n );\n }, [locale]);\n\n // Fetch all options when component mounts\n useEffect(() => {\n fetchAllOptions();\n }, [fetchAllOptions]);\n\n const removeFilter = (\n filterType: keyof FiltersProps,\n valueToRemove: string\n ) => {\n if (filterType === 'eventTypes') {\n setEventTypeFilter((prev) =>\n prev.filter((item) => item !== valueToRemove)\n );\n } else if (filterType === 'languages') {\n setLanguageFilter((prev) =>\n prev.filter((item) => item !== valueToRemove)\n );\n }\n };\n\n useEffect(() => {\n mutate(getUpcomingKey);\n }, [eventTypeFilter, languageFilter, sort]);\n\n return (\n <DefaultSectionContainer>\n <Wrapper>\n {slice.upcomingTitle ? (\n <>\n <DefaultSectionHeader\n title={slice.upcomingTitle}\n text={slice.upcomingDescription}\n titleProps={{ maxW: '3xl' }}\n textProps={{ maxW: '3xl' }}\n />\n <Spacer h=\"10\" />\n </>\n ) : (\n <></>\n )}\n {slice.filterSearch && (upcomingEvents || pastEvents) ? (\n <>\n <Flex\n justifyContent=\"space-between\"\n direction={['column-reverse', null, null, 'row']}\n alignItems=\"baseline\"\n gap=\"4\"\n >\n <Flex\n direction=\"column\"\n width=\"full\"\n justifyContent=\"start\"\n gap=\"4\"\n >\n {/* Filter section */}\n <Flex\n direction={['column', null, null, 'row']}\n gap=\"4\"\n justifyContent=\"start\"\n >\n <Box position=\"relative\" width={['full', null, null, '56']}>\n <Select\n isMultiple={true}\n isSearchable={true}\n id=\"eventTypeFilter\"\n size=\"md\"\n placeholder={formatMessage({\n id: 'sections.events.eventsFilter.eventType',\n })}\n searchPlaceholder={formatMessage({\n id: 'sections.events.eventsFilter.searchPlaceholder',\n })}\n options={allEventTypeOptions}\n value={eventTypeFilter ?? []}\n onChange={(selected: string[]) => {\n setEventTypeFilter(selected);\n }}\n />\n </Box>\n <Box position=\"relative\" width={['full', null, null, '56']}>\n <Select\n isMultiple={true}\n isSearchable={true}\n id=\"languageFilter\"\n size=\"md\"\n placeholder={formatMessage({\n id: 'sections.events.eventsFilter.language',\n })}\n searchPlaceholder={formatMessage({\n id: 'sections.events.eventsFilter.searchPlaceholder',\n })}\n options={allLanguageOptions}\n value={languageFilter ?? []}\n onChange={(selected: string[]) => {\n setLanguageFilter(selected);\n }}\n />\n </Box>\n </Flex>\n\n {/* Filter Tags */}\n <Box display=\"flex\" flexWrap=\"wrap\" minHeight=\"6\" gap=\"2\">\n {eventTypeFilter.map((eventType) => {\n const event = allEventTypeOptions.find(\n (option) => option.value === eventType\n );\n return (\n <BoemlyTag\n key={eventType}\n isClosable={true}\n onClose={() => removeFilter('eventTypes', eventType)}\n >\n {event?.label}\n </BoemlyTag>\n );\n })}\n\n {languageFilter.map((singleLanguage) => {\n const language = allLanguageOptions.find(\n (option) => option.value === singleLanguage\n );\n return (\n <BoemlyTag\n key={singleLanguage}\n isClosable={true}\n onClose={() =>\n removeFilter('languages', singleLanguage)\n }\n >\n {language?.label}\n </BoemlyTag>\n );\n })}\n </Box>\n </Flex>\n {/* Sort Section */}\n <Box display=\"flex\" gap=\"1px\" width=\"52\" alignItems=\"center\">\n <Text size=\"smLowNormal\" color=\"black\" width=\"20\">\n Sort by:\n </Text>\n <Select\n isMultiple={false}\n borderColor=\"white\"\n value={[sort[0]]}\n placeholder={sort[0]}\n onChange={(selected: string[]) => setSort(selected)}\n options={[\n {\n label: formatMessage({\n id: `sections.events.eventsFilter.sortBy.${Sort.NEWEST_FIRST}`,\n }),\n value: Sort.NEWEST_FIRST,\n },\n {\n label: formatMessage({\n id: `sections.events.eventsFilter.sortBy.${Sort.OLDEST_FIRST}`,\n }),\n value: Sort.OLDEST_FIRST,\n },\n ]}\n />\n </Box>\n </Flex>\n\n <Spacer h={['8', null, null, '16']} />\n </>\n ) : (\n <></>\n )}\n\n {(!upcomingEvents || upcomingEvents.length === 0) &&\n !isLoadingUpcoming ? (\n <Center>\n {formatMessage({ id: 'sections.events.noUpcomingEvents' })}\n </Center>\n ) : (\n // List of upcoming events\n <SimpleGrid\n columns={[1, null, null, null, null, 2]}\n spacingX=\"6\"\n gap=\"6\"\n flexShrink=\"0\"\n mb={['10', null, null, '20']}\n placeItems=\"center\"\n >\n {upcomingEvents.map((event: IStrapiData<StrapiEvent>) => (\n <Box key={event.id} width=\"full\" height=\"full\">\n <EventCard event={event.attributes} />\n </Box>\n ))}\n </SimpleGrid>\n )}\n <Flex justifyContent=\"center\">\n {!isLoadingUpcoming && canLoadMoreUpcoming && (\n <Button\n onClick={() => {\n loadMoreUpcoming();\n }}\n variant=\"solid\"\n isLoading={isLoadingMoreUpcoming}\n >\n {formatMessage({ id: 'sections.events.loadMore' })}\n </Button>\n )}\n </Flex>\n </Wrapper>\n\n <Spacer h={['10', null, null, '28']} />\n\n <Box background=\"primary.50\" pt={['8', null, null, '24']}>\n <Wrapper>\n <DefaultSectionHeader\n title={slice.pastTitle}\n text={slice.pastDescription}\n titleProps={{ maxW: '3xl' }}\n textProps={{ maxW: '3xl' }}\n />\n\n <Spacer h=\"10\" />\n\n {(!pastEvents || pastEvents.length === 0) && !isLoadingPast ? (\n <>\n <Center>\n {formatMessage({ id: 'sections.events.noPastEvents' })}\n </Center>\n <Spacer h=\"24\" />\n </>\n ) : (\n // List of past events\n <SimpleGrid\n columns={[1, null, null, null, null, 2]}\n spacingX=\"6\"\n gap=\"6\"\n flexShrink=\"0\"\n placeItems=\"center\"\n mb={['10', null, null, '20']}\n >\n {pastEvents.map((event: IStrapiData<StrapiEvent>) => (\n <Box key={event.id} height=\"full\" width=\"full\">\n <EventCard event={event.attributes} />\n </Box>\n ))}\n </SimpleGrid>\n )}\n <Flex justifyContent=\"center\">\n {!isLoadingPast && canLoadMorePast && (\n <Button\n mb=\"20\"\n onClick={() => {\n loadMorePast();\n }}\n variant=\"solid\"\n isLoading={isLoadingMorePast}\n >\n {formatMessage({ id: 'sections.events.loadMore' })}\n </Button>\n )}\n </Flex>\n </Wrapper>\n </Box>\n </DefaultSectionContainer>\n );\n};\n","import React from 'react';\nimport FullWidthImage from '../../slices/FullWidthImage';\nimport Hero from '../../slices/Hero';\nimport IconGrid from '../../slices/IconGrid';\nimport ImageGrid from '../../slices/ImageGrid';\nimport ImageTextSequence from '../../slices/ImageTextSequence';\nimport LeftTextRightCard from '../../slices/LeftTextRightCard';\nimport LogoGridWithText from '../../slices/LogoGridWithText';\nimport MapHero from '../../slices/MapHero';\nimport QAndA from '../../slices/QAndA';\nimport QuoteCards from '../../slices/QuoteCards';\nimport RichTextSection from '../../slices/RichTextSection';\nimport Steps from '../../slices/Steps';\nimport TextCardGrid from '../../slices/TextCardGrid';\nimport TextCarousel from '../../slices/TextCarousel';\nimport TextWithTextCards from '../../slices/TextWithTextCards';\nimport TextWithCard from '../../slices/TextWithCard';\nimport LinkCardsGrid from '../../slices/LinkCardsGrid';\nimport SmallHero from '../../slices/SmallHero';\nimport Blog from '../../slices/Blog';\nimport StrapiBlogPost from '../../models/strapi/StrapiBlogPost';\nimport ProjectsGrid from '../../slices/ProjectsGrid';\nimport ProjectsMap from '../../slices/ProjectsMap';\nimport Video from '../../slices/Video';\nimport FullWidthHighlightQuote from '../../slices/FullWidthHighlightQuote';\nimport FullWidthImageSlider from '../../slices/FullWidthImageSlider';\nimport SideBySideImages from '../../slices/SideBySideImages';\nimport IStrapiData from '../../models/strapi/IStrapiData';\nimport Cta from '../../slices/Cta';\nimport CtaOnly from '../../slices/CtaOnly';\nimport Glossary from '../../slices/Glossary';\nimport ShopCheckout from '../../slices/ShopCheckout';\nimport Facts from '../../slices/Facts';\nimport BlogCards from '../../slices/BlogCards';\nimport PortfolioProject from '../../models/PortfolioProject';\nimport ProjectFacts from '../../slices/ProjectFacts';\nimport CustomerStories from '../../slices/CustomerStories';\nimport StrapiCustomerStory from '../../models/strapi/StrapiCustomerStory';\nimport Comparison from '../../slices/Comparison';\nimport CarouselMarqueeBanner from '../../slices/CarouselMarqueeBanner';\nimport Locale from '../../models/Locale';\nimport { ContextProvider } from '../ContextProvider';\nimport Timeline from '../../slices/Timeline';\nimport Events from '../../slices/Events';\nimport { AnalyticsFunction } from '../ContextProvider/ContextProvider';\n\nexport interface CustomSliceProps {\n slice: any;\n id: string;\n}\n\nexport interface SliceRendererProps {\n slices: any;\n blogPosts: IStrapiData<StrapiBlogPost>[];\n projects: PortfolioProject[];\n customerStories: IStrapiData<StrapiCustomerStory>[];\n locale?: Locale;\n CustomSlice?: ({ slice, id }: CustomSliceProps) => JSX.Element;\n analyticsFunction?: AnalyticsFunction;\n}\n\nexport const SliceRenderer = ({\n slices,\n blogPosts,\n projects,\n customerStories,\n locale = 'en',\n CustomSlice,\n analyticsFunction,\n}: SliceRendererProps): JSX.Element => (\n <ContextProvider locale={locale} analyticsFunction={analyticsFunction}>\n {slices.map((slice: any) => {\n switch (slice.__component) {\n case 'sections.hero':\n return (\n <Hero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.map-hero':\n return (\n <MapHero key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.rich-text':\n return (\n <RichTextSection\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.left-text-right-card':\n return (\n <LeftTextRightCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-card':\n return (\n <TextWithCard\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n projects={projects}\n />\n );\n case 'sections.logo-grid-with-text':\n return (\n <LogoGridWithText\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.quote-cards':\n return (\n <QuoteCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.q-and-a':\n return (\n <QAndA key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-grid':\n return (\n <ImageGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-image':\n return (\n <FullWidthImage\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-with-text-cards':\n return (\n <TextWithTextCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.text-card-grid':\n return (\n <TextCardGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.icon-grid':\n return (\n <IconGrid key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.image-text-sequence':\n return (\n <ImageTextSequence\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.steps':\n return (\n <Steps key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.text-carousel':\n return (\n <TextCarousel\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.link-cards-grid':\n return (\n <LinkCardsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.small-hero':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"dark\"\n />\n );\n case 'sections.small-hero-light':\n return (\n <SmallHero\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n theme=\"light\"\n />\n );\n case 'sections.project-facts':\n return (\n <ProjectFacts\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n project={projects.find((p) => p.id === slice.projectId)}\n />\n );\n case 'sections.projects-grid':\n return (\n <ProjectsGrid\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n projects={projects}\n />\n );\n case 'sections.projects-map':\n return (\n <ProjectsMap\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.video':\n return (\n <Video key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.full-width-highlight-quote':\n return (\n <FullWidthHighlightQuote\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.full-width-image-slider':\n return (\n <FullWidthImageSlider\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.side-by-side-images':\n return (\n <SideBySideImages\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.cta-only':\n return (\n <CtaOnly key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.cta':\n return <Cta key={`${slice.__component}-${slice.id}`} slice={slice} />;\n case 'sections.shop-checkout':\n return (\n <ShopCheckout\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.facts':\n return (\n <Facts key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.blog-cards':\n return (\n <BlogCards\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n blogPosts={blogPosts}\n />\n );\n case 'sections.blog':\n return (\n <Blog\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n blog_posts: slice.blog_posts.data,\n }}\n blogPosts={blogPosts}\n />\n );\n case 'sections.glossary':\n return (\n <Glossary\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n glossary_items: slice.glossary_items.data,\n }}\n />\n );\n case 'sections.customer-stories':\n return (\n <CustomerStories\n key={`${slice.__component}-${slice.id}`}\n slice={{\n ...slice,\n customer_stories: slice.customer_stories.data,\n }}\n customerStories={customerStories}\n />\n );\n case 'sections.comparison':\n return (\n <Comparison\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.timeline':\n return (\n <Timeline key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n case 'sections.carousel-marquee-banner':\n return (\n <CarouselMarqueeBanner\n key={`${slice.__component}-${slice.id}`}\n slice={slice}\n />\n );\n case 'sections.events':\n return (\n <Events key={`${slice.__component}-${slice.id}`} slice={slice} />\n );\n default:\n if (CustomSlice) {\n return (\n <CustomSlice\n key={`${slice.__component}-${slice.id}`}\n id={slice.__component}\n slice={slice}\n />\n );\n }\n\n return (\n <div key={`${slice.__component}-${slice.id}`}>\n Slice component not supported\n </div>\n );\n }\n })}\n </ContextProvider>\n);\n"],"names":["STRAPI_URI","process","env","NEXT_PUBLIC_STRAPI_URI","STRAPI_DEFAULT_PAGE_SIZE","STRAPI_DEFAULT_POPULATE_DEPTH","STRAPI_FALLBACK_LOCALE","strapiClient","setupCache","axios","create","baseURL","headers","paramsSerializer","p","qs","stringify","encodeValuesOnly","timeout","ttl","includes","getAllSlugsFromStrapi","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","locales","_temp","_ref2","_ref2$filters","filters","slugPromises","slugResults","allSlugs","missingLocales","wrap","_callee$","_context","prev","next","map","locale","get","params","then","response","data","page","slug","attributes","error","_error$response","status","Promise","all","sent","flat","flatMap","filter","fallbackSlug","some","_extends","abrupt","concat","stop","_x","_x2","_x3","apply","arguments","NEXT_PUBLIC_API_URI","FPM_API_URI","NEXT_PUBLIC_FPM_API_URI","CDN_URI","fpmClient","FALLBACK_LOCALE","getStrapiProjects","pLevel","preview","cache","strapiParams","strapiProjects","_yield$Promise$all","strapiProjectsLocalized","strapiProjectsEnglish","_i","_arr","project","undefined","Map","length","fpmProjectId","set","t0","console","warn","getPortfolioProjects","fpmProjects","fpmProject","_strapiProject$attrib","strapiProject","id","toReturn","thumbnail","portfolio","host","portfolioHost","getStrapiCollectionType","key","_ref$locale","_ref$preview","_ref$filters","sharedParams","requestedLocaleData","fallbackLocaleData","results","_error$response2","fallbackLocaleDataEntry","requestedLocale","find","localized","getStrapiSingleType","isAxiosError","strapiMediaUrl","media","preferredSize","url","ext","_media$data$attribute","formats","indexOf","DEFAULT_SHARE_IMAGE","DEFAULT_SHARE_ALT","EXTENDABLE_HEADER_SECTIONS","DARK_THEME_HEADER_SECTIONS","SLICES_WITH_BLOG_POSTS","SLICES_WITH_CUSTOMER_STORIES","SLICES_WITH_PROJECTS","mergeGlobalAndStrapiBlogPostData","context","global","post","blog","projects","_post$attributes$meta","_post$attributes$meta2","_post$attributes$meta3","_global$attributes$me","_post$attributes$meta4","_post$attributes$meta5","_global$attributes$me2","_post$attributes","_post$attributes$meta6","_post$attributes$meta7","_post$attributes$meta8","_post$attributes$meta9","_post$attributes$meta10","_post$attributes$meta11","_global$attributes$me3","metaShareImageUrl","metadata","shareImage","schemaMarkupTypes","returnBlog","slices","slice","__component","returnProjects","headerType","extendable","theme","headerNavMenus","navbar","navMenus","headerButtons","buttons","footerLinks","footer","links","title","description","alt","metaTitleSuffix","favicon","blogPosts","banner","topBanner","customerStories","isFallbackLocale","mergeGlobalAndStrapiCustomerStoryData","customerStory","_customerStory$attrib","_customerStory$attrib2","_customerStory$attrib3","_customerStory$attrib4","_customerStory$attrib5","_customerStory$attrib6","_customerStory$attrib7","_customerStory$attrib8","_customerStory$attrib9","_customerStory$attrib10","_customerStory$attrib11","_customerStory$attrib12","returnCustomerStories","mergeGlobalAndStrapiPageData","_page$attributes$meta","_page$attributes$meta2","_page$attributes$meta3","_page$attributes$meta4","_page$attributes$meta5","_page$attributes$meta6","_page$attributes","_page$attributes$slic","_page$attributes$slic2","_page$attributes$meta7","_page$attributes$meta8","_page$attributes$meta9","_page$attributes$meta10","_page$attributes$meta11","_page$attributes$meta12","returnBlogPosts","mergeGlobalAndStrapiProject","_project$attributes$m","_project$attributes$m2","_project$attributes$m3","_project$attributes$m4","_project$attributes$m5","_project$attributes","_project$attributes$s","_project$attributes$s2","_project$attributes$m6","_project$attributes$m7","_project$attributes$m8","_project$attributes$m9","_project$attributes$m10","_project$attributes$m11","strapiLinkUrl","strapiLink","_strapiLink","_strapiLink2","PreviewAlert","React","createElement","Box","position","top","left","BoemlyAlert","text","getTextValue","value","getSchemaProperty","schema","property","getSchemaIdentifier","_offer$price","type","offer","price","validateSchema","Array","isArray","every","item","SEOTags","_shareImage$url","_shareImage$alt","_ref$metaTitleSuffix","_ref$favicon","_ref$domain","domain","schemaMarkup","shareImageUrl","shareImageAlt","schemas","isValidSchema","schemaArray","getSchemaKey","index","identifier","Head","name","content","rel","href","dangerouslySetInnerHTML","__html","JSON","ZoomableImage","image","_ref$zoom","zoom","_useState","useState","isZoomed","setIsZoomed","_useState2","backgroundPos","setBackgroundPos","imageSrc","img","zoomInPosition","e","zoomer","currentTarget","getBoundingClientRect","x","clientX","width","y","clientY","height","toggleZoomImage","handleClick","handleMove","Fragment","as","display","overflow","flexShrink","scrollSnapAlign","scrollSnapStop","draggable","cursor","backgroundImage","backgroundSize","backgroundPosition","onClick","onMouseMove","Image","src","fill","style","visibility","objectFit","FullScreenImage","images","isOpen","onClose","_ref$currentIndex","currentIndex","setCurrentIndex","containerRef","useRef","useLockBodyScroll","canMoveRight","useMemo","canMoveLeft","onRight","useCallback","c","onLeft","useKey","useEffect","setTimeout","_containerRef$current","current","scrollTo","clientWidth","behavior","BoemlyModal","trigger","size","Flex","insetY","insetX","alignItems","justifyContent","ref","flexGrow","flexBasis","gap","marginX","scrollSnapType","inset","pointerEvents","IconButton","icon","CaretLeft","variant","mr","CaretRight","ml","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_MD_QUERY","BREAKPOINT_LG_QUERY","FullWidthImage","setIsOpen","_useMediaQuery","useMediaQuery","isMobile","DefaultSectionContainer","Wrapper","DefaultSectionHeader","isHero","tagline","taglineProps","textAlign","mt","titleProps","maxW","textProps","borderRadius","openHubSpotChat","w","window","HubSpotConversations","widget","open","hsConversationsOnReady","GLOBAL_STYLE","css","_templateObject","_taggedTemplateLiteralLoose","messagesDe","unitMessagesDe","rootMessagesDe","creditsAvailableBadgeMessagesDe","eventCardMessagesDe","portfolioDocumentsDownloadListMessagesDe","portfolioProjectInfoMessagesDe","portfolioSmallCheckoutMessagesDe","projectGridCardMessagesDe","comparisonMessagesDe","ctaMessagesDe","customerCardMessagesDe","customerQuoteCardMessagesDe","eventsMessagesDe","glossaryMessagesDe","projectFactsMessagesDe","projectsMapMessagesDe","shopCheckoutMessagesDe","textCarouselMessagesDe","timelineMessagesDe","messagesEn","unitMessagesEn","rootMessagesEn","creditsAvailableBadgeMessagesEn","eventCardMessagesEn","portfolioDocumentsDownloadListMessagesEn","portfolioProjectInfoMessagesEn","portfolioSmallCheckoutMessagesEn","projectGridCardMessagesEn","comparisonMessagesEn","ctaMessagesEn","customerCardMessagesEn","customerQuoteCardMessagesEn","eventsMessagesEn","glossaryMessagesEn","projectFactsMessagesEn","projectsMapMessagesEn","shopCheckoutMessagesEn","textCarouselMessagesEn","timelineMessagesEn","messages","en","de","getMessages","messagesLocale","Object","keys","AnalyticsContext","createContext","createIntlCache","intlFactory","createIntl","IntlContext","ContextProvider","children","analyticsFunction","fetcher","resource","init","errorData","message","Error","t1","t2","body","SWRConfig","Global","styles","Provider","StrapiLinkButton","link","_ref$component","component","buttonProps","_objectWithoutPropertiesLoose","_excluded","adBlockDetected","useDetectAdBlock","useContext","buttonUrl","intercomLauncher","props","action","buttonText","Button","Link","Hero","minHeight","backgroundColor","overflowX","Gradient","shape","bottom","borderTopRightRadius","right","transform","subTitle","color","mx","button","additionalButtons","IconGrid","columns","iconsWithTextAndButton","flexDirection","Spacer","h","SimpleGrid","rowGap","iconWithTextAndButton","margin","Heading","mb","Text","LinkedInIcon","viewBox","xmlns","clipPath","d","StrapiLinkButtonWithIcon","getLinkIcon","destination","Globe","rightIcon","ImageGrid","_useToken","useToken","primary50","minChildWidth","flexDir","flexWrap","ImageTextSequence","oneColumnGrid","_useToken2","gray700","background","imageTextRows","imageBox","LeftTextRightCard","_useRouter","useRouter","push","handleCardButtonClick","_slice$card","card","_slice$card5","_slice$card2","_slice$card3","_slice$card4","cardTitle","Grid","templateColumns","templateRows","GridItem","colSpan","rowSpan","pr","checkMarkLabels","BoemlyList","listItems","colorScheme","ArrowRight","PortfolioCard","facts","portfolioNumber","LogoGridWithText","RichText","logos","logo","MapHeroContainer","styled","MapHeroTextContainer","_templateObject2","ShapeContainer","_templateObject3","MapContainer","_templateObject4","MapGradient","_templateObject5","MapHero","belowBreakpoint","maxWidth","mobileMap","convertToKebabCase","str","matches","match","toLowerCase","join","VARIANTS","gray","tagLineColor","textColor","accordionVariant","otherQuestionsBackground","green","white","QAndA","_slice$variant","handleHeroButtonClick","_slice$hero","hero","section","pb","paddingY","maxHeight","paddingTop","paddingRight","overflowY","BoemlyAccordion","rows","questionsAndAnswers","defaultIndex","padding","otherQuestions","HeroCard","QuoteCards","handleHeroCardButtonClick","paddingBottom","shapes","Shape","radius","cards","QuoteCard","avatar","marginTop","RichTextSection","Steps","_slice$card$shapes","gray900","steps","stepRefs","setStepRefs","stepProgress","setStepProgress","_useWindowScroll","useWindowScroll","offsetY","_useWindowSize","useWindowSize","windowHeight","handleShapesCardButtonClick","createRef","containerOffsetTop","offsetTop","_ref$current","currentItemOffsetTop","step","Center","options","forceBlock","marginBottom","borderLeft","opacity","borderRight","transition","ShapesCard","ShapePosition","shapePositions","topLeft","bottomRight","topRight","bottomLeft","oppositesOfCorners","_oppositesOfCorners","unset","variants","positionIcon","TextCardGrid","primary800","justifyItems","zIndex","boxShadow","borderBottomRightRadius","borderBottomLeftRadius","borderTopLeftRadius","listProps","textSize","buttonIndex","weight","CarouselContainer","CarouselInnerContainer","motion","div","numberOfItems","CardContainer","shuffleElements","slides","slidesCopy","i","j","Math","floor","random","ITEM_GAP","MAX_OFFSET_RIGHT","TextCarousel","_useMeasure","useMeasure","itemRef","itemWidth","_useContext","formatMessage","windowWidth","displaySlides","setDisplaySlides","sliderIndex","setSliderIndex","sliderItemsWidth","offsetLeft","allowScroll","offsetRight","handleSlidesButtonClick","_slice$isShuffled","isShuffled","animate","duration","ease","TextCardWithIcon","displayAs","py","px","AnimatePresence","initial","exit","ArrowLeft","TextWithTextCards","handleContactButtonClick","_slice$contact","contact","ContactArea","FORMAT_AS_HECTARE_CONFIG","unit","unitDisplay","maximumFractionDigits","FORMAT_AS_PERCENT_CONFIG","CreditAvailability","CreditsAvailableBadge","_variants","CREDITS_AVAILABLE","NO_CREDITS_AVAILABLE","SOME_CREDITS_AVAILABLE","SOON_CREDITS_AVAILABLE","NextLink","Tag","ProjectGridCard","_project$thumbnail","_project$thumbnail2","_project$thumbnail3","formatNumber","Container","my","friendlyName","area","location","certificationDate","year","Date","getFullYear","creditAvailability","TextWithCard","portfolioProject","_slice$project","cardPosition","ProjectCard","footerSubTitle","footerTitle","columnGap","MEDIUM_TRANSITION_DURATION","LinkCardsGrid","borderStyle","borderWidth","borderColor","transitionDuration","_hover","minWidth","colors","dark","light","SmallHero","gradient","tags","direction","justify","BlogItemContainer","ImageContainer","Blog","formatDate","sortedBlogPosts","blog_posts","sort","a","b","createdAt","getTime","spacingX","spacingY","blogPost","bp","category","teaser","DatePersonPair","date","person","author","ConditionalWrapper","condition","wrapper","ProjectsGrid","filteredProjects","passHref","legacyBehavior","MAPBOX_TOKEN","MapBoxStyle","NEXT_PUBLIC_MAPBOX_TILES_URL","MAPBOX_MAX_ZOOM","mapboxStyle","getFpmProjectsByBbox","bbox","_bbox$split$map","west","south","east","north","fpmResponse","split","Number","mergeProjectData","featureCollection","mergedFeatureCollection","features","feature","_feature$properties","properties","projectPinImage","mapboxgl","accessToken","FALLBACK_BBOX","ProjectsMap","mapContainer","animationIntervalRef","setFeatureCollection","isLoading","setIsLoading","initialBboxRef","_useState3","isMapReady","setIsMapReady","_useState4","setStrapiProjects","isBboxContained","innerBbox","outerBbox","_innerBbox$split$map","innerWest","innerSouth","innerEast","innerNorth","_outerBbox$split$map","outerWest","outerSouth","outerEast","outerNorth","fetchStrapiData","fetchProjectsData","_ref3","_callee2","fpmData","mergedData","_callee2$","_context2","finish","debouncedUpdateBbox","debounce","bounds","getBounds","newBbox","getWest","getSouth","getEast","getNorth","addProjectsLayer","isStyleLoaded","filteredFeatureCollection","isPublic","source","getSource","addSource","cluster","clusterMaxZoom","clusterRadius","addLayer","paint","clearInterval","setInterval","now","pulseFactor","sin","PI","expression","setPaintProperty","layout","fetch","svgText","modifiedSvg","replace","btoa","resolve","reject","onload","onerror","canvas","document","ctx","getContext","drawImage","pngImg","toDataURL","_map$current","_map$current2","addImage","pixelRatio","popup","Popup","closeButton","closeOnClick","className","offset","textContent","head","appendChild","on","getCanvas","coordinates","geometry","_e$features$0$propert","projectDeveloper","point","popupHeight","developer","projectDeveloperRaw","_JSON$parse$name","_JSON$parse","parse","_unused","projectUrl","getBadgeMessage","getBadgeColor","badgeColor","badgeMessage","badge","abs","lngLat","lng","setOffset","setLngLat","setHTML","addTo","_map$current3","_map$current4","queryRenderedFeatures","layers","clusterId","cluster_id","projectSource","getClusterExpansionZoom","err","easeTo","center","setData","initialCenter","initialZoom","defaultCenterCoordinates","defaultZoomLevel","longitude","latitude","LngLatBounds","getCenter","lat","container","maxZoom","addControl","NavigationControl","_map$current5","_bbox$split$map2","fitBounds","_map$current6","cancel","remove","_slice$defaultCenterC","buffer","navigator","geolocation","getCurrentPosition","userLoc","coords","lon","_map$current7","Video","youTubeID","frameBorder","allow","allowFullScreen","FullWidthHighlightQuote","quote","AvatarWithName","avatarWithName","orientation","SliderContainer","SliderInnerContainer","ItemContainer","aspectRatio","ALLOWED_RATIOS","getClosestRatio","ratio","minDiff","posMinDiff","forEach","allowedRatio","FullWidthImageSlider","imageRef","imageWidth","imageCount","noOfLines","fontSize","caption","SideBySideImages","CtaCardType","STATES","paddingTagline","paddingTitle","buttonJustifyContent","textMarginLeft","textMarginRight","centerWithoutImage","centerWithImage","taglineColor","titleColor","subTitleColor","getTypeOfCard","ctaCard","CenterWithImage","CenterWithoutImage","Left","Right","Cta","ctaCards","ctaCardType","elevation","backgroundShape","marginLeft","marginRight","paddingX","fontFamily","fontWeight","lineHeight","CtaOnly","Glossary","_useCopyToClipboard","useCopyToClipboard","copyToClipboard","grouped","copiedItem","setCopiedItem","glossary_items","localeCompare","curr","_curr$attributes$titl","at","toUpperCase","handleAnchorClick","_window","currentUrl","entries","letter","items","placeSelf","spacing","wordBreak","scrollMarginTop","Check","LinkIcon","_onClick","Divider","MINIMUM_CONTRIBUTION_VALUE_IN_MONEY","MAXIMUM_CONTRIBUTION_VALUE_IN_MONEY","ShopCheckout","validateForm","values","errors","contributionValue","currency","onSubmit","checkoutURL","URL","currentURL","searchParams","append","batchId","pricePerKg","toString","pathname","couponId","shadow","Badge","textTransform","whiteSpace","checkoutText","LabelNumberPair","label","number","Formik","initialValues","initialContributionValue","validate","touched","handleSubmit","summaryPrice","Form","Field","_ref4","field","BoemlyFormControl","inputProps","rightAddonsOrElements","InputRightAddon","isInvalid","errorMessage","minimumFractionDigits","taxInPercent","factKeyColor","factValueColor","Facts","fact","sortByCreatedAt","BlogCards","mobile","blogPostsToDisplay","_slice$blogPostCatego","blogPostCategory","_blogPost$attributes$","_slice$blogPostCatego2","_blogPost$attributes$2","calculateTaxIncludedValue","parseInt","contributionValueCurrency","isNaN","SmallCheckout","subtitle","contributionValueTons","setValues","_ref5","onChange","target","valueAsNumber","_ref6","convertAreaM2ToHa","areaInM2","convertCo2AmountKgToTons","amount","getTimeSpanInYears","start","end","monthsDifference","getMonth","yearsDifference","ProjectInfo","subtitles","LabelTextPair","areaSubtitle","locationSubtitle","month","startSubtitle","years","timeSpanSubtitle","projectType","verificationStandard","projectTypeSubtitle","projectDeveloperSubtitle","defaultMessage","verificationStandardSubtitle","defaultIssuer","logoUrl","averageSellableAmountPerYear","riskBuffer","Tooltip","averageSellableAmountPerYearSubtitle","riskBufferSubtitle","DocumentsDownloadList","documentUrls","documentUrl","FilePdf","DownloadSimple","Contact","border","getFpmProjectById","projectId","ProjectFacts","enhancedProject","setEnhancedProject","fetchCompleteProjectData","completeFpmProject","mergedProject","customTitle","customSubtitle","customButton","contactTitle","contactText","contactButton","contactAvatar","CustomerCard","borderTopRadius","cardImage","pt","customerCardCustomerIndustry","CustomerQuoteCard","customerName","quoteCardCustomerTitle","quoteCardQuote","LogoCard","marginY","CustomerStories","customer_stories","cs","BULLET_POINT_VARIANTS","bulletPointColor","Icon","X","factColor","dividerColor","Comparison","comparisonCards","comparisonCard","factTitle","factSubtitle","lists","list","logoCount","LogoGrid","CarouselMarqueeBannerContent","hasEnoughLogosForLoop","LOOP_ARRAY_LENGTH","logosToRender","from","_useEmblaCarousel","useEmblaCarousel","loop","align","containScroll","dragFree","AutoScroll","playOnInit","speed","stopOnInteraction","stopOnMouseEnter","stopOnFocusIn","emblaRef","renderLogos","CarouselMarqueeBanner","showChild","setShowChild","Timeline","visibleItems","setVisibleItems","showMoreItems","prevVisibleItems","timelineItems","alignContent","gridTemplateColumns","backgroundShapes","m","getCountryFlag","countryCode","char","String","fromCodePoint","charCodeAt","EventType","isSameDate","date1","date2","getDate","MAX_LENGTH","LOCATION_MAX_LENGTH","getEventIcon","eventType","WEBINAR","Webcam","CONFERENCE","Headset","MEET_UP","UsersThree","FOREST_WALK","PersonSimpleWalk","PARTNER_EVENT","Handshake","LUNCH_AND_LEARN","BowlFood","FAIR","ChalkboardTeacher","FESTIVAL","Confetti","ROADSHOW","ProjectorScreenChart","Info","EventCard","_event$location$lengt","_event$location","_event$image","_event$image2","_event$image3","event","isExpanded","setIsExpanded","toggleText","isLocationTooLong","recommended","Star","eventTypes","languages","language","online","Laptop","MapPinLine","CalendarBlank","day","allDay","getUTCHours","minimumIntegerDigits","getUTCMinutes","substring","CaretUp","CaretDown","buttonVariant","speakers","speaker","useEvents","getKey","batchSize","_useSWRInfinite","useSWRInfinite","revalidateFirstPage","revalidateAll","setSize","mutate","count","_data$","meta","pagination","total","isLoadingMore","loadMore","canLoadMore","refetch","UPCOMING_BATCH_SIZE","PAST_BATCH_SIZE","Sort","Events","eventTypeFilter","setEventTypeFilter","languageFilter","setLanguageFilter","NEWEST_FIRST","setSort","allEventTypeOptions","setAllEventTypeOptions","_useState5","allLanguageOptions","setAllLanguageOptions","toISOString","buildEventsUrl","startFilter","OLDEST_FIRST","search","getUpcomingKey","getPastKey","_useEvents","upcomingData","isLoadingUpcoming","isLoadingMoreUpcoming","canLoadMoreUpcoming","loadMoreUpcoming","_useEvents2","pastData","isLoadingPast","isLoadingMorePast","canLoadMorePast","loadMorePast","processEvents","_data$flatMap","_d$body","t","upcomingEvents","pastEvents","fetchAllOptions","events","allEventTypes","allLanguages","json","Set","_event$attributes","add","_event$attributes2","removeFilter","filterType","valueToRemove","upcomingTitle","upcomingDescription","filterSearch","Select","isMultiple","isSearchable","placeholder","searchPlaceholder","selected","option","BoemlyTag","isClosable","singleLanguage","placeItems","pastTitle","pastDescription","SliceRenderer","CustomSlice"],"mappings":"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"}