{"version":3,"file":"Navigation.C_wIVi7B.mjs","names":["useState","useRef","p"],"sources":["https:/framerusercontent.com/modules/XovhF6piSF0Od9rAbsNI/RzD48cJobrvxcQgQesfM/Navigation.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect,useLayoutEffect,useRef}from\"react\";function vibrate(duration=10){if(typeof navigator!==\"undefined\"&&navigator.vibrate){navigator.vibrate(duration);}}if(typeof window!==\"undefined\"&&!window.sharedTextSetters){window.sharedTextHidden=false;window.sharedTextSetters=new Set;}let sharedNavState=\"menu\";let sharedNavSetters=new Set;let sharedSubNav=\"filters\";let sharedSubNavSetters=new Set;let sharedHoverSubNav=null;let sharedActiveSocial=null;function setNavHoverSocial(social){if(typeof window===\"undefined\")return;if(window.sharedHoverSocial===social)return;window.sharedHoverSocial=social;window.dispatchEvent(new CustomEvent(\"navHoverChange\"));}function setNavHoverFilter(filter){if(typeof window===\"undefined\")return;if(window.sharedHoverFilter===filter)return;window.sharedHoverFilter=filter;window.dispatchEvent(new CustomEvent(\"navHoverChange\"));}function setNavHoverSubNav(subNav){if(typeof window===\"undefined\")return;if(window.sharedHoverSubNav===subNav)return;sharedHoverSubNav=subNav;window.sharedHoverSubNav=subNav;window.dispatchEvent(new CustomEvent(\"navHoverChange\"));}function isDesktopSocialHoverActive(social){if(typeof window===\"undefined\")return false;if(window.innerWidth<810)return false;return window.sharedHoverSocial===social;}function previewDesktopSocialOnHover(social){if(typeof window===\"undefined\"||window.innerWidth<810)return;setNavHoverSubNav(\"socials\");setNavHoverSocial(social);}const DEFAULT_THEME_COLOR=\"#242424\";const ROUTE_THEME_COLORS={\"/\":DEFAULT_THEME_COLOR,\"/portfolio\":DEFAULT_THEME_COLOR};let lastAppliedThemeColor=null;function isValidThemeColor(candidate){if(typeof candidate!==\"string\")return false;const value=candidate.trim();if(!value)return false;if(value.toLowerCase().startsWith(\"var(\"))return false;if(typeof window!==\"undefined\"&&typeof window.CSS!==\"undefined\"&&typeof window.CSS.supports===\"function\"){return window.CSS.supports(\"color\",value);}return/^#[0-9a-f]{3,8}$/i.test(value);}function resolveThemeColor(...candidates){for(const candidate of candidates){if(isValidThemeColor(candidate)){return candidate.trim();}}return DEFAULT_THEME_COLOR;}function getNormalizedPathname(){if(typeof window===\"undefined\")return\"/\";const normalized=(window.location.pathname||\"/\").trim().toLowerCase().replace(/\\/+$/,\"\");return normalized||\"/\";}function isDesktopPortfolioPath(){if(typeof window===\"undefined\")return false;return getNormalizedPathname()===\"/portfolio\"&&window.innerWidth>=1200;}function didNavigateViaBrowserHistory(){if(typeof window===\"undefined\"||typeof performance===\"undefined\"){return false;}const entries=performance.getEntriesByType(\"navigation\");const navType=entries[0]?.type;return navType===\"back_forward\";}function setGlobalThemeColor(color){if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const resolved=resolveThemeColor(color,DEFAULT_THEME_COLOR);const getAccessibleThemeDocuments=()=>{const docs=[document];const seen=new Set(docs);const candidates=[window.parent,window.top];candidates.forEach(candidate=>{if(!candidate||candidate===window)return;try{const doc=candidate.document;if(doc&&!seen.has(doc)){seen.add(doc);docs.push(doc);}}catch(e){// Cross-origin parent/top access is not available.\n}});return docs;};const applyThemeColorToDocument=(targetDocument,resolved)=>{const root=targetDocument.documentElement;if(root){root.style.setProperty(\"--open2-color\",resolved);root.style.backgroundColor=resolved;}if(targetDocument.body){targetDocument.body.style.backgroundColor=resolved;}const head=targetDocument.head;if(!head)return;let dynamicThemeMeta=targetDocument.querySelector('meta[name=\"theme-color\"][data-dynamic-theme=\"true\"]');if(!dynamicThemeMeta){dynamicThemeMeta=targetDocument.createElement(\"meta\");dynamicThemeMeta.setAttribute(\"name\",\"theme-color\");dynamicThemeMeta.setAttribute(\"data-dynamic-theme\",\"true\");head.appendChild(dynamicThemeMeta);}dynamicThemeMeta.removeAttribute(\"media\");dynamicThemeMeta.setAttribute(\"content\",resolved);const themeMetas=Array.from(targetDocument.querySelectorAll('meta[name=\"theme-color\"], meta[property=\"theme-color\"]'));themeMetas.forEach(meta=>{meta.removeAttribute(\"media\");meta.setAttribute(\"content\",resolved);});let navButtonMeta=targetDocument.querySelector('meta[name=\"msapplication-navbutton-color\"]');if(!navButtonMeta){navButtonMeta=targetDocument.createElement(\"meta\");navButtonMeta.setAttribute(\"name\",\"msapplication-navbutton-color\");head.appendChild(navButtonMeta);}navButtonMeta.setAttribute(\"content\",resolved);};lastAppliedThemeColor=resolved;const docs=getAccessibleThemeDocuments();docs.forEach(doc=>applyThemeColorToDocument(doc,resolved));}function getThemeColorFromRoute(){if(typeof window===\"undefined\")return null;const pathname=getNormalizedPathname();if(ROUTE_THEME_COLORS[pathname])return ROUTE_THEME_COLORS[pathname];if(pathname.startsWith(\"/portfolio/\"))return DEFAULT_THEME_COLOR;return null;}function bootstrapInitialThemeColor(){if(typeof window===\"undefined\")return;if(window.__themeColorBootstrapped)return;window.__themeColorBootstrapped=true;const sync=()=>{const routeColor=getThemeColorFromRoute();const shared=window.sharedOpen2Color;const resolved=resolveThemeColor(shared,routeColor,DEFAULT_THEME_COLOR);window.sharedOpen2Color=resolved;setGlobalThemeColor(resolved);};if(document.readyState===\"loading\"){document.addEventListener(\"DOMContentLoaded\",sync,{once:true});}else{sync();}window.addEventListener(\"pageshow\",sync);window.addEventListener(\"hashchange\",sync);}bootstrapInitialThemeColor();function isDesktopPortfolioPage(){if(typeof window===\"undefined\")return false;const path=(window.location.pathname||\"/\").trim().toLowerCase().replace(/\\/+$/,\"\")||\"/\";return path===\"/portfolio\"&&window.innerWidth>=1200;}function getDefaultSubNavForRoute(){if(typeof window===\"undefined\")return\"filters\";const path=getNormalizedPathname();return path===\"/\"?\"socials\":\"filters\";}function useHideSocialsOnDesktopPortfolio(){const[isHidden,setIsHidden]=useState(()=>isDesktopPortfolioPage());useEffect(()=>{const syncHidden=()=>setIsHidden(isDesktopPortfolioPage());if(typeof window!==\"undefined\"){syncHidden();window.addEventListener(\"resize\",syncHidden);window.addEventListener(\"locationchange\",syncHidden);window.addEventListener(\"pageshow\",syncHidden);window.addEventListener(\"popstate\",syncHidden);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"resize\",syncHidden);window.removeEventListener(\"locationchange\",syncHidden);window.removeEventListener(\"pageshow\",syncHidden);window.removeEventListener(\"popstate\",syncHidden);}};},[]);return isHidden;}function useHideOwnStack(shouldHide){const markerRef=useRef(null);const hiddenNodeRef=useRef(null);useEffect(()=>{const marker=markerRef.current;if(!marker)return;const restoreHiddenNode=()=>{if(!hiddenNodeRef.current)return;const{el}=hiddenNodeRef.current;el.style.display=hiddenNodeRef.current.prevDisplay;hiddenNodeRef.current=null;};const isLayoutParent=node=>{if(!node)return false;const display=getComputedStyle(node).display;return display.includes(\"flex\")||display.includes(\"grid\");};const findSlotElement=()=>{let current=marker.parentElement;let depth=0;// Climb through wrapper/stack chain while each parent only hosts this path.\nwhile(current?.parentElement&&current.parentElement.children.length===1&&depth<10){current=current.parentElement;depth+=1;}// Then find the first element that is an item inside a layout parent.\ndepth=0;while(current&&depth<8){const currentDisplay=getComputedStyle(current).display;const parent=current.parentElement;if(parent&&isLayoutParent(parent)&&currentDisplay!==\"contents\"){return current;}current=parent;depth+=1;}return null;};if(shouldHide){restoreHiddenNode();const slot=findSlotElement();if(!slot)return;hiddenNodeRef.current={el:slot,prevDisplay:slot.style.display};slot.style.display=\"none\";return;}restoreHiddenNode();return()=>{restoreHiddenNode();};},[shouldHide]);return markerRef;}function setSharedNavState(state){sharedNavState=state;sharedNavSetters.forEach(s=>s(state));if(typeof window!==\"undefined\"){window.sharedNavState=state;}}function resolveOpen2Color(){if(typeof window!==\"undefined\"){const shared=window.sharedOpen2Color;if(isValidThemeColor(shared))return shared.trim();}if(typeof document!==\"undefined\"){const cssVar=getComputedStyle(document.documentElement).getPropertyValue(\"--open2-color\").trim();if(isValidThemeColor(cssVar))return cssVar.trim();const themeMeta=document.querySelector('meta[name=\"theme-color\"]');const themeColor=themeMeta?.getAttribute(\"content\")?.trim();if(isValidThemeColor(themeColor))return themeColor.trim();}const routeColor=getThemeColorFromRoute();return resolveThemeColor(routeColor,DEFAULT_THEME_COLOR);}if(typeof window!==\"undefined\"){window.sharedNavState=sharedNavState;window.sharedNavSetters=sharedNavSetters;window.sharedSubNav=sharedSubNav;window.sharedSubNavSetters=sharedSubNavSetters;window.sharedActiveSocial=sharedActiveSocial;window.sharedHoverSubNav=window.sharedHoverSubNav||sharedHoverSubNav;window.sharedHoverSocial=window.sharedHoverSocial||null;window.sharedHoverFilter=window.sharedHoverFilter||null;}function ensureLocationChangeBridge(){if(typeof window===\"undefined\")return;if(window.__locationChangeBridgeInstalled)return;window.__locationChangeBridgeInstalled=true;let lastPathname=getNormalizedPathname();const scrollToPageStart=()=>{window.scrollTo({top:0,left:0,behavior:\"auto\"});requestAnimationFrame(()=>{window.scrollTo({top:0,left:0,behavior:\"auto\"});});};const maybeHardReloadOnHomeReturn=()=>{const currentPathname=getNormalizedPathname();const shouldReload=currentPathname===\"/\"&&lastPathname!==\"/\";lastPathname=currentPathname;if(!shouldReload)return false;if(window.__homeHardReloadInFlight)return true;window.__homeHardReloadInFlight=true;window.location.reload();return true;};try{if(\"scrollRestoration\"in window.history){window.history.scrollRestoration=\"manual\";}}catch(e){}const{history}=window;const originalPushState=history.pushState;const originalReplaceState=history.replaceState;history.pushState=function(...args){const result=originalPushState.apply(this,args);if(maybeHardReloadOnHomeReturn())return result;scrollToPageStart();window.dispatchEvent(new Event(\"locationchange\"));return result;};history.replaceState=function(...args){const result=originalReplaceState.apply(this,args);if(maybeHardReloadOnHomeReturn())return result;scrollToPageStart();window.dispatchEvent(new Event(\"locationchange\"));return result;};window.addEventListener(\"popstate\",()=>{if(maybeHardReloadOnHomeReturn())return;scrollToPageStart();window.dispatchEvent(new Event(\"locationchange\"));});window.addEventListener(\"hashchange\",()=>{window.dispatchEvent(new Event(\"locationchange\"));});window.addEventListener(\"pageshow\",()=>{scrollToPageStart();});}export function navigation(Component){return props=>{const[isReady,setIsReady]=useState(false);const[navState,setNavState]=useState(()=>{if(typeof window!==\"undefined\"){const isHomepage=window.location.pathname===\"/\";const isPhone=window.innerWidth<=809;if(isHomepage&&isPhone)return\"nav\";if(isDesktopPortfolioPage())return\"nav\";}return sharedNavState;});const[subNav,setSubNav]=useState(()=>{if(typeof window!==\"undefined\"){return getDefaultSubNavForRoute();}return sharedSubNav;});const[windowWidth,setWindowWidth]=useState(1920);const[,setUpdateTrigger]=useState(0);let ignoreUntil=0;useLayoutEffect(()=>{const s=st=>{setNavState(st);};const ss=st=>setSubNav(st);sharedNavSetters.add(s);sharedSubNavSetters.add(ss);if(typeof window!==\"undefined\"){ensureLocationChangeBridge();setWindowWidth(window.innerWidth);// Keep desktop portfolio stable in nav state from first paint.\nif(isDesktopPortfolioPage()&&sharedNavState!==\"nav\"){setSharedNavState(\"nav\");}setIsReady(true);setNavHoverSocial(null);setNavHoverFilter(null);setNavHoverSubNav(null);// Auto-open phone nav once per page load on homepage only.\nconst isHomepage=window.location.pathname===\"/\";if(isHomepage&&window.innerWidth<=809&&!window.__phoneNavAutoOpened){window.__phoneNavAutoOpened=true;setSharedNavState(\"nav\");sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));window.sharedSubNav=sharedSubNav;}window.sharedNavState=window.sharedNavState||sharedNavState;window.sharedNavSetters=window.sharedNavSetters||sharedNavSetters;window.sharedSubNav=window.sharedSubNav||sharedSubNav;window.sharedSubNavSetters=window.sharedSubNavSetters||sharedSubNavSetters;window.sharedActiveSocial=typeof window.sharedActiveSocial!==\"undefined\"?window.sharedActiveSocial:sharedActiveSocial;window.sharedFilters=window.sharedFilters||new Set;window.sharedFilterOrder=window.sharedFilterOrder||[];let lastRoutePathname=getNormalizedPathname();const resetNavVariantState=()=>{// Reset to a neutral nav baseline on page changes.\nsetSharedNavState(\"nav\");const defaultSubNav=getDefaultSubNavForRoute();sharedSubNav=defaultSubNav;sharedSubNavSetters.forEach(s=>s(defaultSubNav));window.sharedSubNav=sharedSubNav;sharedActiveSocial=null;window.sharedActiveSocial=null;window.sharedHoverSocial=null;window.sharedHoverFilter=null;try{window.dispatchEvent(new CustomEvent(\"socialChange\"));window.dispatchEvent(new CustomEvent(\"navHoverChange\"));}catch(e){}window.sharedFilters=new Set;window.sharedFilterOrder=[];setUpdateTrigger(p=>p+1);};const syncRouteAwareNavState=()=>{const normalizedPath=getNormalizedPathname();if(normalizedPath!==lastRoutePathname){resetNavVariantState();lastRoutePathname=normalizedPath;}const path=window.location.pathname||\"/\";const isPortfolioNow=path===\"/portfolio\"||path.startsWith(\"/portfolio/\");const isPhoneNow=window.innerWidth<=809;if(isPortfolioNow&&isPhoneNow){if(sharedNavState===\"nav\"){setSharedNavState(\"menu\");}if(sharedSubNav!==\"filters\"){sharedSubNav=\"filters\";sharedSubNavSetters.forEach(s=>s(\"filters\"));window.sharedSubNav=sharedSubNav;}if(sharedActiveSocial!==null){sharedActiveSocial=null;window.sharedActiveSocial=null;try{window.dispatchEvent(new CustomEvent(\"socialChange\"));}catch(e){}}}};const syncRouteAwareNavStateAfterNavigation=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{syncRouteAwareNavState();});});};let sawHistoryNavigation=false;const markHistoryNavigation=()=>{sawHistoryNavigation=true;};const maybeForceDesktopPortfolioBackReload=evt=>{const returnedFromHistory=sawHistoryNavigation||!!evt?.persisted||didNavigateViaBrowserHistory();if(!returnedFromHistory)return;if(!isDesktopPortfolioPath())return;if(window.__desktopPortfolioBackReloadDone)return;window.__desktopPortfolioBackReloadDone=true;window.location.reload();};syncRouteAwareNavStateAfterNavigation();const hF=()=>setUpdateTrigger(p=>p+1);const hHover=()=>setUpdateTrigger(p=>p+1);const hS=()=>{// Sync local sharedActiveSocial from the window bridge so external callers\n// (e.g., filters) can deactivate socials by updating window.sharedActiveSocial + dispatch.\nif(typeof window!==\"undefined\"){try{sharedActiveSocial=typeof window.sharedActiveSocial!==\"undefined\"?window.sharedActiveSocial:sharedActiveSocial;}catch(e){}}setUpdateTrigger(p=>p+1);};// On filter change, prevent scroll closing for a moment and\n// open the nav **only** on desktop (>= 810px). Phones should\n// not auto-open the nav when filters change.\nconst hFilter=()=>{// keep existing ignore behavior for scroll handler\nignoreUntil=performance.now()+1e3;const currentW=typeof window!==\"undefined\"?window.innerWidth:windowWidth;// Deactivate any active social when filters change\nsharedActiveSocial=null;if(typeof window!==\"undefined\"){window.sharedActiveSocial=null;try{window.dispatchEvent(new CustomEvent(\"socialChange\"));}catch(e){}}if(currentW>=810){setSharedNavState(\"nav\");sharedSubNav=\"filters\";sharedSubNavSetters.forEach(s=>s(\"filters\"));window.sharedSubNav=sharedSubNav;}// keep update trigger for local rerenders\nsetUpdateTrigger(p=>p+1);};window.addEventListener(\"filterChange\",hFilter);window.addEventListener(\"socialChange\",hS);window.addEventListener(\"navHoverChange\",hHover);window.addEventListener(\"popstate\",markHistoryNavigation);window.addEventListener(\"locationchange\",syncRouteAwareNavStateAfterNavigation);window.addEventListener(\"pageshow\",syncRouteAwareNavStateAfterNavigation);window.addEventListener(\"pageshow\",maybeForceDesktopPortfolioBackReload);return()=>{sharedNavSetters.delete(s);sharedSubNavSetters.delete(ss);window.removeEventListener(\"filterChange\",hFilter);window.removeEventListener(\"socialChange\",hS);window.removeEventListener(\"navHoverChange\",hHover);window.removeEventListener(\"popstate\",markHistoryNavigation);window.removeEventListener(\"locationchange\",syncRouteAwareNavStateAfterNavigation);window.removeEventListener(\"pageshow\",syncRouteAwareNavStateAfterNavigation);window.removeEventListener(\"pageshow\",maybeForceDesktopPortfolioBackReload);};}},[]);useEffect(()=>{if(typeof window===\"undefined\")return;const hF=()=>{ignoreUntil=performance.now()+1e3;};window.addEventListener(\"filterChange\",hF);const handleVisibility=()=>{try{if(typeof document===\"undefined\")return;if(document.visibilityState===\"visible\"){// If mail was the last active social, ensure the nav and subnav reflect that\nif(sharedActiveSocial===\"mail\"){setSharedNavState(\"nav\");sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));window.sharedSubNav=sharedSubNav;try{window.dispatchEvent(new CustomEvent(\"socialChange\"));}catch(e){}}}}catch(e){}};window.addEventListener(\"visibilitychange\",handleVisibility);window.addEventListener(\"focus\",handleVisibility);window.addEventListener(\"resize\",()=>setWindowWidth(window.innerWidth));return()=>{window.removeEventListener(\"filterChange\",hF);window.removeEventListener(\"visibilitychange\",handleVisibility);window.removeEventListener(\"focus\",handleVisibility);};},[]);const getV=()=>{const currentW=typeof window!==\"undefined\"?window.innerWidth:windowWidth;if(navState===\"menu\"){if(currentW<=809)return\"menu_phone\";return\"menu\";}// --- Phone has phone variants; tablet and desktop use same variants ---\nconst isPhone=currentW<=809;const hoverSubNav=!isPhone&&typeof window!==\"undefined\"?window.sharedHoverSubNav:null;const effectiveSubNav=hoverSubNav||subNav;if(effectiveSubNav===\"socials\"){const hoverSocial=!isPhone&&typeof window!==\"undefined\"?window.sharedHoverSocial:null;const effectiveSocial=hoverSocial||sharedActiveSocial;if(effectiveSocial===\"discord\")return isPhone?\"nav_phone_socials_discord\":\"nav_discord\";if(effectiveSocial)return isPhone?`nav_phone_socials_${effectiveSocial}`:`nav_${effectiveSocial}`;return isPhone?\"nav_phone_socials\":\"nav_socials\";}const f=window.sharedFilters||new Set;const hoverFilter=!isPhone&&typeof window!==\"undefined\"?window.sharedHoverFilter:null;const effectiveFilters=new Set(f);if(hoverFilter&&!effectiveFilters.has(hoverFilter)){const preview=new Set(effectiveFilters);preview.add(hoverFilter);if(preview.size<=2){preview.forEach(entry=>effectiveFilters.add(entry));}}if(effectiveFilters.has(\"physical\")&&effectiveFilters.has(\"games\"))return isPhone?\"nav_phone_filters_physical_games\":\"nav_physical_games\";if(effectiveFilters.has(\"digital\")&&effectiveFilters.has(\"games\"))return isPhone?\"nav_phone_filters_digital_games\":\"nav_digital_games\";if(effectiveFilters.has(\"collaborative\"))return isPhone?\"nav_phone_filters_collaborative\":\"nav_collaborative\";if(effectiveFilters.has(\"physical\"))return isPhone?\"nav_phone_filters_physical\":\"nav_physical\";if(effectiveFilters.has(\"digital\"))return isPhone?\"nav_phone_filters_digital\":\"nav_digital\";if(effectiveFilters.has(\"games\"))return isPhone?\"nav_phone_filters_games\":\"nav_games\";return isPhone?\"nav_phone_filters\":\"nav_filters\";};if(!isReady)return null;return /*#__PURE__*/_jsx(Component,{...props,variant:getV()});};}// --- EXPLICIT SOCIAL EXPORTS ---\nexport function navYoutube(C){return p=>{const isHidden=useHideSocialsOnDesktopPortfolio();const stackMarkerRef=useHideOwnStack(isHidden);const[,setTick]=useState(0);useEffect(()=>{const h=()=>setTick(t=>t+1);if(typeof window!==\"undefined\"){window.addEventListener(\"socialChange\",h);window.addEventListener(\"navHoverChange\",h);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"socialChange\",h);window.removeEventListener(\"navHoverChange\",h);}};},[]);if(isHidden){return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"}});}return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();vibrate(10);const anchor=e.target&&e.target.closest?e.target.closest(\"a\"):null;const href=anchor?anchor.getAttribute(\"href\")||\"\":\"\";const isExternalPopup=href.startsWith(\"mailto:\")||href.startsWith(\"http:\")||href.startsWith(\"https:\");const currentW=typeof window!==\"undefined\"?window.innerWidth:1920;if(sharedActiveSocial===\"youtube\"){// Second click when already active: let anchor handle navigation\n// Do NOT manually open the link\n}else{// First click: activate social, prevent link from opening\nif(anchor&&isExternalPopup&&currentW<810){try{e.preventDefault();}catch(e){}}sharedActiveSocial=\"youtube\";sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));if(currentW<810){setSharedNavState(\"nav\");}}if(typeof window!==\"undefined\"){window.sharedActiveSocial=sharedActiveSocial;window.sharedSubNav=sharedSubNav;window.sharedNavState=sharedNavState;window.dispatchEvent(new CustomEvent(\"socialChange\"));}},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}previewDesktopSocialOnHover(\"youtube\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSocial(null);setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p,variant:sharedActiveSocial===\"youtube\"||isDesktopSocialHoverActive(\"youtube\")?\"active\":\"idle\"})})});};}export function navInsta(C){return p=>{const isHidden=useHideSocialsOnDesktopPortfolio();const stackMarkerRef=useHideOwnStack(isHidden);const[,setTick]=useState(0);useEffect(()=>{const h=()=>setTick(t=>t+1);if(typeof window!==\"undefined\"){window.addEventListener(\"socialChange\",h);window.addEventListener(\"navHoverChange\",h);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"socialChange\",h);window.removeEventListener(\"navHoverChange\",h);}};},[]);if(isHidden){return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"}});}return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();vibrate(10);const anchor=e.target&&e.target.closest?e.target.closest(\"a\"):null;const href=anchor?anchor.getAttribute(\"href\")||\"\":\"\";const isExternalPopup=href.startsWith(\"mailto:\")||href.startsWith(\"http:\")||href.startsWith(\"https:\");const currentW=typeof window!==\"undefined\"?window.innerWidth:1920;if(sharedActiveSocial===\"insta\"){// Second click when already active: let anchor handle navigation\n}else{// First click: activate social, prevent link from opening\nif(anchor&&isExternalPopup&&currentW<810)try{e.preventDefault();}catch(e){}sharedActiveSocial=\"insta\";sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));if(currentW<810){setSharedNavState(\"nav\");}}if(typeof window!==\"undefined\"){window.sharedActiveSocial=sharedActiveSocial;window.sharedSubNav=sharedSubNav;window.sharedNavState=sharedNavState;window.dispatchEvent(new CustomEvent(\"socialChange\"));}},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}previewDesktopSocialOnHover(\"insta\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSocial(null);setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p,variant:sharedActiveSocial===\"insta\"||isDesktopSocialHoverActive(\"insta\")?\"active\":\"idle\"})})});};}export function navMail(C){return p=>{const isHidden=useHideSocialsOnDesktopPortfolio();const stackMarkerRef=useHideOwnStack(isHidden);const[,setTick]=useState(0);useEffect(()=>{const h=()=>setTick(t=>t+1);if(typeof window!==\"undefined\"){window.addEventListener(\"socialChange\",h);window.addEventListener(\"navHoverChange\",h);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"socialChange\",h);window.removeEventListener(\"navHoverChange\",h);}};},[]);if(isHidden){return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"}});}return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(\"div\",{onClick:e=>{vibrate(10);const anchor=e.target&&e.target.closest?e.target.closest(\"a\"):null;const href=anchor?anchor.getAttribute(\"href\")||\"\":\"\";const isExternalPopup=href.startsWith(\"mailto:\")||href.startsWith(\"http:\")||href.startsWith(\"https:\");const currentW=typeof window!==\"undefined\"?window.innerWidth:1920;if(sharedActiveSocial===\"mail\"){// Second click when already active: let anchor handle navigation naturally\n// Don't stopPropagation or preventDefault - let the mailto work\n}else{// First click: activate social, but allow mailto to proceed\ne.stopPropagation();// Only preventDefault for http/https, not mailto\nif(anchor&&currentW<810&&(href.startsWith(\"http:\")||href.startsWith(\"https:\")))try{e.preventDefault();}catch(e){}sharedActiveSocial=\"mail\";sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));if(currentW<810){setSharedNavState(\"nav\");}}if(typeof window!==\"undefined\"){window.sharedActiveSocial=sharedActiveSocial;window.sharedSubNav=sharedSubNav;window.sharedNavState=sharedNavState;window.dispatchEvent(new CustomEvent(\"socialChange\"));}},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}previewDesktopSocialOnHover(\"mail\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSocial(null);setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p,variant:sharedActiveSocial===\"mail\"||isDesktopSocialHoverActive(\"mail\")?\"active\":\"idle\"})})});};}export function navDiscord(C){return p=>{const isHidden=useHideSocialsOnDesktopPortfolio();const stackMarkerRef=useHideOwnStack(isHidden);const[,setTick]=useState(0);useEffect(()=>{const h=()=>setTick(t=>t+1);if(typeof window!==\"undefined\"){window.addEventListener(\"socialChange\",h);window.addEventListener(\"navHoverChange\",h);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"socialChange\",h);window.removeEventListener(\"navHoverChange\",h);}};},[]);if(isHidden){return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"}});}return /*#__PURE__*/_jsx(\"div\",{ref:stackMarkerRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();vibrate(10);const anchor=e.target&&e.target.closest?e.target.closest(\"a\"):null;const href=anchor?anchor.getAttribute(\"href\")||\"\":\"\";const isExternalPopup=href.startsWith(\"mailto:\")||href.startsWith(\"http:\")||href.startsWith(\"https:\");const currentW=typeof window!==\"undefined\"?window.innerWidth:1920;if(sharedActiveSocial===\"discord\"){// Second click when already active: let anchor handle navigation\n}else{// First click: activate social, prevent link from opening\nif(anchor&&isExternalPopup&&currentW<810)try{e.preventDefault();}catch(e){}sharedActiveSocial=\"discord\";sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));if(currentW<810){setSharedNavState(\"nav\");}}if(typeof window!==\"undefined\"){window.sharedActiveSocial=sharedActiveSocial;window.sharedSubNav=sharedSubNav;window.sharedNavState=sharedNavState;window.dispatchEvent(new CustomEvent(\"socialChange\"));}},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}previewDesktopSocialOnHover(\"discord\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSocial(null);setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p,variant:sharedActiveSocial===\"discord\"||isDesktopSocialHoverActive(\"discord\")?\"active\":\"idle\"})})});};}export function navToSocials(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();sharedSubNav=\"socials\";sharedSubNavSetters.forEach(s=>s(\"socials\"));},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSubNav(\"socials\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function navToFilters(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();sharedSubNav=\"filters\";sharedSubNavSetters.forEach(s=>s(\"filters\"));},onMouseEnter:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSubNav(\"filters\");},onMouseLeave:()=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}setNavHoverSubNav(null);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function navToggle(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();vibrate(10);const current=typeof window!==\"undefined\"?window.sharedNavState:sharedNavState;const n=current===\"menu\"?\"nav\":\"menu\";setSharedNavState(n);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function navClickArea(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:()=>{setSharedNavState(\"menu\");},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function navOpenTopItem(C){let forwardedHoverTarget=null;const clearForwardedHover=native=>{if(!forwardedHoverTarget||typeof window===\"undefined\")return;forwardedHoverTarget.dispatchEvent(new PointerEvent(\"pointerleave\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY,pointerType:\"mouse\"}));forwardedHoverTarget.dispatchEvent(new MouseEvent(\"mouseleave\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY}));forwardedHoverTarget.dispatchEvent(new MouseEvent(\"mouseout\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY}));forwardedHoverTarget=null;};const getUnderlyingAccordionTarget=(native,current)=>{if(typeof document===\"undefined\")return null;const hasCoords=typeof native.clientX===\"number\"&&typeof native.clientY===\"number\";if(!hasCoords)return null;const stack=document.elementsFromPoint(native.clientX,native.clientY);const target=stack.find(el=>{if(!el)return false;if(current?.contains(el))return false;return!!el.closest(\"[data-accordion-item]\");});const itemHost=target?.closest(\"[data-accordion-item]\");if(!itemHost)return null;const isDisabledByFilter=itemHost.getAttribute(\"aria-hidden\")===\"true\"||getComputedStyle(itemHost).pointerEvents===\"none\";if(isDisabledByFilter)return null;return target||null;};const forwardHoverFromNative=(native,current,targetElement)=>{if(typeof window===\"undefined\"||window.innerWidth<810){return;}const interactiveSelector='a[href], button, input, textarea, select, [role=\"button\"], [role=\"link\"], [contenteditable=\"true\"], [data-no-accordion]';const isInteractive=!!targetElement?.closest(interactiveSelector);if(isInteractive){clearForwardedHover(native);return;}const nextTarget=getUnderlyingAccordionTarget(native,current);if(!nextTarget){clearForwardedHover(native);return;}if(forwardedHoverTarget!==nextTarget){clearForwardedHover(native);nextTarget.dispatchEvent(new PointerEvent(\"pointerenter\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY,pointerType:\"mouse\"}));nextTarget.dispatchEvent(new MouseEvent(\"mouseenter\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY}));nextTarget.dispatchEvent(new MouseEvent(\"mouseover\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY}));forwardedHoverTarget=nextTarget;}nextTarget.dispatchEvent(new PointerEvent(\"pointermove\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY,pointerType:\"mouse\"}));nextTarget.dispatchEvent(new MouseEvent(\"mousemove\",{bubbles:true,cancelable:true,clientX:native.clientX,clientY:native.clientY}));};return p=>/*#__PURE__*/_jsx(\"div\",{onClick:e=>{const interactiveSelector='a[href], button, input, textarea, select, [role=\"button\"], [role=\"link\"], [contenteditable=\"true\"], [data-no-accordion]';const target=e.target;const isInteractive=!!target?.closest(interactiveSelector);if(isInteractive)return;// If a click lands on the nav overlay but points at an interactive\n    // element beneath it, trigger that element instead of changing state.\n    const native=e.nativeEvent;const hasCoords=typeof native.clientX===\"number\"&&typeof native.clientY===\"number\";if(hasCoords&&typeof document!==\"undefined\"){const stack=document.elementsFromPoint(native.clientX,native.clientY);const current=e.currentTarget;const underlyingInteractive=stack.find(el=>{if(!el)return false;if(current?.contains(el))return false;return!!el.closest(interactiveSelector);});if(underlyingInteractive){const actionable=underlyingInteractive.closest(interactiveSelector);if(actionable){const itemHost=actionable.closest(\"[data-accordion-item]\");const isFilterDisabledItem=!!itemHost&&(itemHost.getAttribute(\"aria-hidden\")===\"true\"||getComputedStyle(itemHost).pointerEvents===\"none\");if(isFilterDisabledItem){return;}actionable.click();return;}}}vibrate(10);setSharedNavState(\"menu\");if(typeof window!==\"undefined\"&&window.openTopItem)window.openTopItem(e.nativeEvent);},onMouseMove:e=>{const native=e.nativeEvent;const current=e.currentTarget;const target=e.target;forwardHoverFromNative(native,current,target);},onMouseEnter:e=>{const native=e.nativeEvent;const current=e.currentTarget;const target=e.target;forwardHoverFromNative(native,current,target);},onMouseLeave:e=>{clearForwardedHover(e.nativeEvent);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function navItemText(C){return p=>{const[h,s]=useState(typeof window!==\"undefined\"?window.sharedTextHidden:false);useEffect(()=>{const l=v=>s(v);if(typeof window!==\"undefined\")window.sharedTextSetters.add(l);return()=>{if(typeof window!==\"undefined\")window.sharedTextSetters.delete(l);};},[]);if(h)return null;return /*#__PURE__*/_jsx(C,{...p});};}export function showOnNavOpen(C){return p=>{const[isOpen,setIsOpen]=useState(sharedNavState===\"nav\");useEffect(()=>{const setter=state=>{setIsOpen(state===\"nav\");};sharedNavSetters.add(setter);setIsOpen(sharedNavState===\"nav\");return()=>{sharedNavSetters.delete(setter);};},[]);if(!isOpen)return null;return /*#__PURE__*/_jsx(C,{...p});};}export function stackOpen2Color(Component){return props=>{const[bgColor,setBgColor]=useState(resolveOpen2Color);const[scopeEnabled,setScopeEnabled]=useState(typeof window!==\"undefined\"&&window.__bottomProjectsColorScopeActive===true);const[shouldApplyColor,setShouldApplyColor]=useState(false);const isActiveOpen2InsideBottomProjects=()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return false;}const open2Variant=window.sharedOpen2Variant;const isSupportedOpen2Variant=open2Variant===\"open2\"||open2Variant===\"open2_phone\";if(!isSupportedOpen2Variant)return false;const open2ItemId=window.sharedOpen2Item;if(!open2ItemId)return false;const itemNode=document.querySelector(`[data-accordion-item=\"${open2ItemId}\"]`);if(!itemNode)return false;const scopeNode=itemNode.closest('#bottom_projects, [name=\"bottom_projects\"], [data-name=\"bottom_projects\"], [data-framer-name=\"bottom_projects\"]');return!!scopeNode;};useEffect(()=>{const syncScope=()=>{if(typeof window===\"undefined\"){setScopeEnabled(false);return false;}const enabled=window.__bottomProjectsColorScopeActive===true;setScopeEnabled(enabled);return enabled;};const applyStackColor=()=>{const inScope=syncScope();const insideBottomProjects=isActiveOpen2InsideBottomProjects();const shouldApply=inScope&&insideBottomProjects;setShouldApplyColor(shouldApply);if(!shouldApply)return;const resolved=resolveOpen2Color();if(typeof window!==\"undefined\"){window.sharedOpen2Color=resolved;}setGlobalThemeColor(resolved);setBgColor(prev=>prev===resolved?prev:resolved);};const hC=()=>applyStackColor();const syncBg=()=>applyStackColor();if(typeof window!==\"undefined\"){syncBg();window.addEventListener(\"open2ColorChange\",hC);window.addEventListener(\"accordionOpen2Change\",syncBg);window.addEventListener(\"bottomProjectsColorScopeChange\",syncBg);window.addEventListener(\"locationchange\",syncBg);window.addEventListener(\"hashchange\",syncBg);window.addEventListener(\"pageshow\",syncBg);}return()=>{if(typeof window!==\"undefined\"){window.removeEventListener(\"open2ColorChange\",hC);window.removeEventListener(\"accordionOpen2Change\",syncBg);window.removeEventListener(\"bottomProjectsColorScopeChange\",syncBg);window.removeEventListener(\"locationchange\",syncBg);window.removeEventListener(\"hashchange\",syncBg);window.removeEventListener(\"pageshow\",syncBg);}};},[]);const incomingStyle=props?.style||{};return /*#__PURE__*/_jsx(Component,{...props,style:{...incomingStyle,...scopeEnabled&&shouldApplyColor?{backgroundColor:bgColor}:null,color:incomingStyle.color,WebkitTextFillColor:incomingStyle.WebkitTextFillColor}});};}export function bottomProjectsColorScope(Component){return props=>{useEffect(()=>{if(typeof window!==\"undefined\"){window.__bottomProjectsColorScopeActive=true;window.dispatchEvent(new CustomEvent(\"bottomProjectsColorScopeChange\"));}return()=>{if(typeof window!==\"undefined\"){window.__bottomProjectsColorScopeActive=false;window.dispatchEvent(new CustomEvent(\"bottomProjectsColorScopeChange\"));}};},[]);return /*#__PURE__*/_jsx(Component,{...props});};}export function navBackground(Component){return props=>{const[bgColor,setBgColor]=useState(resolveOpen2Color);const[isOpen,setIsOpen]=useState(sharedNavState===\"nav\");useEffect(()=>{const hC=()=>{const resolved=resolveOpen2Color();if(typeof window!==\"undefined\"){window.sharedOpen2Color=resolved;}setGlobalThemeColor(resolved);setBgColor(prev=>prev===resolved?prev:resolved);};const setter=state=>setIsOpen(state===\"nav\");const syncBg=()=>{const resolved=resolveOpen2Color();if(typeof window!==\"undefined\"){window.sharedOpen2Color=resolved;}setGlobalThemeColor(resolved);setBgColor(prev=>prev===resolved?prev:resolved);};sharedNavSetters.add(setter);setIsOpen(sharedNavState===\"nav\");syncBg();window.addEventListener(\"open2ColorChange\",hC);window.addEventListener(\"locationchange\",syncBg);window.addEventListener(\"hashchange\",syncBg);window.addEventListener(\"pageshow\",syncBg);return()=>{sharedNavSetters.delete(setter);window.removeEventListener(\"open2ColorChange\",hC);window.removeEventListener(\"locationchange\",syncBg);window.removeEventListener(\"hashchange\",syncBg);window.removeEventListener(\"pageshow\",syncBg);};},[]);return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,backgroundColor:isOpen?bgColor:\"transparent\"}});};}export function hapticTap(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:()=>{vibrate(10);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}export function forceHardReloadNavigation(C){return p=>/*#__PURE__*/_jsx(\"div\",{onClick:e=>{const native=e.nativeEvent;if(native.button!==0)return;if(native.metaKey||native.ctrlKey||native.shiftKey||native.altKey){return;}const target=e.target;const anchor=target?.closest(\"a[href]\");if(!anchor)return;const href=anchor.getAttribute(\"href\")||\"\";if(!href||href.startsWith(\"javascript:\"))return;if(href.startsWith(\"mailto:\")||href.startsWith(\"tel:\"))return;try{e.preventDefault();e.stopPropagation();}catch(error){}vibrate(10);if(typeof window===\"undefined\")return;if(anchor.target===\"_blank\"){window.open(anchor.href,\"_blank\",\"noopener,noreferrer\");return;}window.location.assign(anchor.href);},style:{display:\"contents\"},children:/*#__PURE__*/_jsx(C,{...p})});}\nexport const __FramerMetadata__ = {\"exports\":{\"navToSocials\":{\"type\":\"reactHoc\",\"name\":\"navToSocials\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navBackground\":{\"type\":\"reactHoc\",\"name\":\"navBackground\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navInsta\":{\"type\":\"reactHoc\",\"name\":\"navInsta\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navClickArea\":{\"type\":\"reactHoc\",\"name\":\"navClickArea\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"forceHardReloadNavigation\":{\"type\":\"reactHoc\",\"name\":\"forceHardReloadNavigation\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showOnNavOpen\":{\"type\":\"reactHoc\",\"name\":\"showOnNavOpen\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navYoutube\":{\"type\":\"reactHoc\",\"name\":\"navYoutube\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navItemText\":{\"type\":\"reactHoc\",\"name\":\"navItemText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bottomProjectsColorScope\":{\"type\":\"reactHoc\",\"name\":\"bottomProjectsColorScope\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navigation\":{\"type\":\"reactHoc\",\"name\":\"navigation\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navOpenTopItem\":{\"type\":\"reactHoc\",\"name\":\"navOpenTopItem\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navDiscord\":{\"type\":\"reactHoc\",\"name\":\"navDiscord\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"stackOpen2Color\":{\"type\":\"reactHoc\",\"name\":\"stackOpen2Color\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navToFilters\":{\"type\":\"reactHoc\",\"name\":\"navToFilters\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hapticTap\":{\"type\":\"reactHoc\",\"name\":\"hapticTap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navToggle\":{\"type\":\"reactHoc\",\"name\":\"navToggle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"navMail\":{\"type\":\"reactHoc\",\"name\":\"navMail\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Navigation.map"],"mappings":"gJAAwG,SAAS,EAAQ,EAAS,GAAG,CAAW,IAAY,QAAa,EAAU,SAAS,EAAU,QAAQ,CAAQ,CAAG,CAAqS,SAAS,EAAkB,EAAO,CAAW,IAAS,QAAsB,EAAO,oBAAoB,IAAc,EAAO,kBAAkB,EAAO,EAAO,cAAc,IAAI,YAAY,gBAAgB,CAAC,EAAE,CAA+M,SAAS,EAAkB,EAAO,CAAW,IAAS,QAAsB,EAAO,oBAAoB,IAAc,EAAkB,EAAO,EAAO,kBAAkB,EAAO,EAAO,cAAc,IAAI,YAAY,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAA2B,EAAO,CAAmF,OAAxE,IAAS,QAA4B,EAAO,WAAW,IAAW,GAAa,EAAO,oBAAoB,CAAO,CAAC,SAAS,EAA4B,EAAO,CAAW,IAAS,QAAa,EAAO,WAAW,MAAW,EAAkB,SAAS,EAAE,EAAkB,CAAM,EAAE,CAAwJ,SAAS,EAAkB,EAAU,CAAC,GAAG,OAAO,GAAY,SAAS,MAAO,GAAM,IAAM,EAAM,EAAU,KAAK,EAAqO,MAAhO,CAAC,GAAsB,EAAM,YAAY,CAAC,CAAC,WAAW,MAAM,EAAS,GAAgB,IAAS,QAAoB,EAAO,MAAM,QAAa,OAAO,EAAO,IAAI,UAAW,WAAmB,EAAO,IAAI,SAAS,QAAQ,CAAK,EAAS,oBAAoB,KAAK,CAAK,CAAE,CAAC,SAAS,EAAkB,GAAG,EAAW,CAAC,IAAI,IAAM,KAAa,EAAY,GAAG,EAAkB,CAAS,EAAG,OAAO,EAAU,KAAK,EAAI,OAAO,CAAoB,CAAC,SAAS,GAAuB,CAAmI,OAAxH,IAAS,OAAkB,KAAsB,EAAO,SAAS,UAAU,IAAA,CAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,OAAO,EAAoB,GAAG,GAAI,CAAwY,SAAS,EAAoB,EAAM,CAAC,GAAU,IAAS,QAAa,OAAO,SAAW,IAAa,OAAQ,IAAM,EAAS,EAAkB,EAAM,CAAmB,EAAQ,MAAgC,CAAC,IAAM,EAAK,CAAC,QAAQ,EAAQ,EAAK,IAAI,IAAI,CAAI,EACx7F,MADs+F,CAA1B,EAAO,OAAO,EAAO,GAAc,CAAC,CAAC,QAAQ,GAAW,CAAI,MAAC,GAAW,IAAY,GAAc,GAAG,CAAC,IAAM,EAAI,EAAU,SAAY,GAAK,CAAC,EAAK,IAAI,CAAG,IAAG,EAAK,IAAI,CAAG,EAAE,EAAK,KAAK,CAAG,EAAG,MAAS,CAClpG,CAAC,CAAC,EAAS,CAAK,EAAQ,GAA2B,EAAe,IAAW,CAAC,IAAM,EAAK,EAAe,gBAAmB,IAAM,EAAK,MAAM,YAAY,gBAAgB,CAAQ,EAAE,EAAK,MAAM,gBAAgB,GAAa,EAAe,OAAM,EAAe,KAAK,MAAM,gBAAgB,GAAU,IAAM,EAAK,EAAe,KAAK,GAAG,CAAC,EAAK,OAAO,IAAI,EAAiB,EAAe,cAAc,qDAAqD,EAAM,IAAkB,EAAiB,EAAe,cAAc,MAAM,EAAE,EAAiB,aAAa,OAAO,aAAa,EAAE,EAAiB,aAAa,qBAAqB,MAAM,EAAE,EAAK,YAAY,CAAgB,GAAG,EAAiB,gBAAgB,OAAO,EAAE,EAAiB,aAAa,UAAU,CAAQ,EAAyH,MAAhG,KAAK,EAAe,iBAAiB,wDAAwD,CAAY,CAAC,CAAC,QAAQ,GAAM,CAAC,EAAK,gBAAgB,OAAO,EAAE,EAAK,aAAa,UAAU,CAAQ,CAAE,CAAC,EAAE,IAAI,EAAc,EAAe,cAAc,4CAA4C,EAAM,IAAe,EAAc,EAAe,cAAc,MAAM,EAAE,EAAc,aAAa,OAAO,+BAA+B,EAAE,EAAK,YAAY,CAAa,GAAG,EAAc,aAAa,UAAU,CAAQ,CAAE,EAA0E,EAAG,CAAC,CAAC,QAAQ,GAAK,EAA0B,EAAI,CAAQ,CAAC,CAAE,CAAC,SAAS,GAAwB,CAAC,GAAU,IAAS,OAAY,OAAO,KAAK,IAAM,EAAS,EAAsB,EAAuI,OAAlI,EAAmB,GAAiB,EAAmB,GAAa,EAAS,WAAW,aAAa,EAAS,EAA2B,IAAK,CAAC,SAAS,GAA4B,CAAuC,GAA5B,IAAS,QAAsB,EAAO,yBAAyB,OAAO,EAAO,yBAAyB,GAAK,IAAM,MAAS,CAAC,IAAM,EAAW,EAAuB,EAAQ,EAAO,EAAO,iBAAuB,EAAS,EAAkB,EAAO,EAAW,CAAmB,EAAE,EAAO,iBAAiB,EAAS,EAAoB,CAAQ,CAAE,EAAK,SAAS,aAAa,UAAW,SAAS,iBAAiB,mBAAmB,EAAK,CAAC,KAAK,EAAI,CAAC,EAAQ,EAAK,EAAG,EAAO,iBAAiB,WAAW,CAAI,EAAE,EAAO,iBAAiB,aAAa,CAAI,CAAE,CAA8B,SAAS,GAAwB,CAAqI,OAA1H,IAAS,UAAqC,EAAO,SAAS,UAAU,IAAA,CAAK,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,OAAO,EAAE,GAAG,OAAkB,cAAc,EAAO,YAAY,IAAK,CAA8J,SAAS,GAAkC,CAAC,GAAK,CAAC,EAAS,GAAaA,MAAa,EAAuB,CAAC,EAA0jB,OAAxjB,MAAc,CAAC,IAAM,MAAe,EAAY,EAAuB,CAAC,EAAgP,OAApO,IAAS,SAAa,EAAW,EAAE,EAAO,iBAAiB,SAAS,CAAU,EAAE,EAAO,iBAAiB,iBAAiB,CAAU,EAAE,EAAO,iBAAiB,WAAW,CAAU,EAAE,EAAO,iBAAiB,WAAW,CAAU,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,SAAS,CAAU,EAAE,EAAO,oBAAoB,iBAAiB,CAAU,EAAE,EAAO,oBAAoB,WAAW,CAAU,EAAE,EAAO,oBAAoB,WAAW,CAAU,EAAG,CAAE,EAAE,CAAC,CAAC,EAAS,CAAS,CAAC,SAAS,EAAgB,EAAW,CAAC,IAAM,EAAUC,EAAO,IAAI,EAAQ,EAAcA,EAAO,IAAI,EAEh6F,OAFk6F,MAAc,CAAC,IAAM,EAAO,EAAU,QAAQ,GAAG,CAAC,EAAO,OAAO,IAAM,MAAsB,CAAC,GAAG,CAAC,EAAc,QAAQ,OAAO,GAAK,CAAC,MAAI,EAAc,QAAQ,EAAG,MAAM,QAAQ,EAAc,QAAQ,YAAY,EAAc,QAAQ,IAAK,EAAQ,EAAe,GAAM,CAAC,GAAG,CAAC,EAAK,MAAO,GAAM,IAAM,EAAQ,iBAAiB,CAAI,CAAC,CAAC,QAAQ,OAAO,EAAQ,SAAS,MAAM,GAAG,EAAQ,SAAS,MAAM,CAAE,EAAQ,MAAoB,CAAC,IAAI,EAAQ,EAAO,cAAkB,EAAM,EACx1H,KAAM,GAAS,eAAe,EAAQ,cAAc,SAAS,SAAS,GAAG,EAAM,IAAI,EAAQ,EAAQ,cAAc,GAAO,EAChH,IAAR,EAAM,EAAQ,GAAS,EAAM,GAAE,CAAC,IAAM,EAAe,iBAAiB,CAAO,CAAC,CAAC,QAAc,EAAO,EAAQ,cAAc,GAAG,GAAQ,EAAe,CAAM,GAAG,IAAiB,WAAY,OAAO,EAAS,EAAQ,EAAO,GAAO,CAAE,CAAC,OAAO,IAAK,EAAE,GAAG,EAAW,CAAC,EAAkB,EAAE,IAAM,EAAK,EAAgB,EAAE,GAAG,CAAC,EAAK,OAAO,EAAc,QAAQ,CAAC,GAAG,EAAK,YAAY,EAAK,MAAM,OAAO,EAAE,EAAK,MAAM,QAAQ,OAAO,MAAO,CAAqB,OAApB,EAAkB,MAAY,CAAC,EAAkB,CAAE,CAAE,EAAE,CAAC,CAAU,CAAC,EAAS,CAAU,CAAC,SAAS,EAAkB,EAAM,CAAC,EAAe,EAAM,EAAiB,QAAQ,GAAG,EAAE,CAAK,CAAC,EAAY,IAAS,SAAa,EAAO,eAAe,EAAO,CAAC,SAAS,GAAmB,CAAC,GAAU,IAAS,OAAY,CAAC,IAAM,EAAO,EAAO,iBAAiB,GAAG,EAAkB,CAAM,EAAE,OAAO,EAAO,KAAK,CAAE,CAAC,GAAG,OAAO,SAAW,IAAY,CAAC,IAAM,EAAO,iBAAiB,SAAS,eAAe,CAAC,CAAC,iBAAiB,eAAe,CAAC,CAAC,KAAK,EAAE,GAAG,EAAkB,CAAM,EAAE,OAAO,EAAO,KAAK,EAAqE,IAAM,EAAzD,SAAS,cAAc,0BAAqD,CAAC,EAAE,aAAa,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAkB,CAAU,EAAE,OAAO,EAAW,KAAK,CAAE,CAA2C,OAAO,EAAhC,EAA2D,EAAE,CAAmB,CAAE,CAc3vC,SAAgB,EAAW,EAAE,CAAC,MAAO,IAAG,CAAC,IAAM,EAAS,EAAiC,EAAQ,EAAe,EAAgB,CAAQ,EAAO,EAAE,GAASD,EAAS,CAAC,EAAkZ,OAAhZ,MAAc,CAAC,IAAM,MAAM,EAAQ,GAAG,EAAE,CAAC,EAAyH,OAA7G,IAAS,SAAa,EAAO,iBAAiB,eAAe,CAAC,EAAE,EAAO,iBAAiB,iBAAiB,CAAC,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,eAAe,CAAC,EAAE,EAAO,oBAAoB,iBAAiB,CAAC,EAAG,CAAE,EAAE,CAAC,CAAC,EAAK,EAA8B,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC,EAAuB,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAQ,EAAE,EAAE,IAAM,EAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAW,EAAK,GAAO,EAAO,aAAa,MAAM,GAAM,GAAS,EAAgB,EAAK,WAAW,SAAS,GAAG,EAAK,WAAW,OAAO,GAAG,EAAK,WAAW,QAAQ,EAAQ,EAAgB,IAAS,OAA8B,KAAlB,EAAO,WAAgB,GAAG,IAAqB,UAErgC,CACL,GAAG,GAAQ,GAAiB,EAAS,IAAK,GAAG,CAAC,EAAE,eAAe,CAAE,MAAS,CAAC,CAAE,EAAmB,UAAU,EAAa,UAAU,EAAoB,QAAQ,GAAG,EAAE,SAAS,CAAC,EAAK,EAAS,KAAK,EAAkB,KAAK,CAAG,CAAW,IAAS,SAAa,EAAO,mBAAmB,EAAmB,EAAO,aAAa,EAAa,EAAO,eAAe,EAAe,EAAO,cAAc,IAAI,YAAY,cAAc,CAAC,EAAG,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,KAAa,EAA4B,SAAS,CAAE,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,MAAa,EAAkB,IAAI,EAAE,EAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGE,EAAE,QAAQ,IAAqB,WAAW,EAA2B,SAAS,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,SAAgB,EAAS,EAAE,CAAC,MAAO,IAAG,CAAC,IAAM,EAAS,EAAiC,EAAQ,EAAe,EAAgB,CAAQ,EAAO,EAAE,GAASF,EAAS,CAAC,EAAkZ,OAAhZ,MAAc,CAAC,IAAM,MAAM,EAAQ,GAAG,EAAE,CAAC,EAAyH,OAA7G,IAAS,SAAa,EAAO,iBAAiB,eAAe,CAAC,EAAE,EAAO,iBAAiB,iBAAiB,CAAC,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,eAAe,CAAC,EAAE,EAAO,oBAAoB,iBAAiB,CAAC,EAAG,CAAE,EAAE,CAAC,CAAC,EAAK,EAA8B,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC,EAAuB,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAQ,EAAE,EAAE,IAAM,EAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAW,EAAK,GAAO,EAAO,aAAa,MAAM,GAAM,GAAS,EAAgB,EAAK,WAAW,SAAS,GAAG,EAAK,WAAW,OAAO,GAAG,EAAK,WAAW,QAAQ,EAAQ,EAAgB,IAAS,OAA8B,KAAlB,EAAO,WAAgB,GAAG,IAAqB,QAC30D,CACL,GAAG,GAAQ,GAAiB,EAAS,IAAI,GAAG,CAAC,EAAE,eAAe,CAAE,MAAS,CAAC,CAAC,EAAmB,QAAQ,EAAa,UAAU,EAAoB,QAAQ,GAAG,EAAE,SAAS,CAAC,EAAK,EAAS,KAAK,EAAkB,KAAK,CAAG,CAAW,IAAS,SAAa,EAAO,mBAAmB,EAAmB,EAAO,aAAa,EAAa,EAAO,eAAe,EAAe,EAAO,cAAc,IAAI,YAAY,cAAc,CAAC,EAAG,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,KAAa,EAA4B,OAAO,CAAE,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,MAAa,EAAkB,IAAI,EAAE,EAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGE,EAAE,QAAQ,IAAqB,SAAS,EAA2B,OAAO,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,SAAgB,EAAQ,EAAE,CAAC,MAAO,IAAG,CAAC,IAAM,EAAS,EAAiC,EAAQ,EAAe,EAAgB,CAAQ,EAAO,EAAE,GAASF,EAAS,CAAC,EAAkZ,OAAhZ,MAAc,CAAC,IAAM,MAAM,EAAQ,GAAG,EAAE,CAAC,EAAyH,OAA7G,IAAS,SAAa,EAAO,iBAAiB,eAAe,CAAC,EAAE,EAAO,iBAAiB,iBAAiB,CAAC,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,eAAe,CAAC,EAAE,EAAO,oBAAoB,iBAAiB,CAAC,EAAG,CAAE,EAAE,CAAC,CAAC,EAAK,EAA8B,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC,EAAuB,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAQ,EAAE,EAAE,IAAM,EAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAW,EAAK,GAAO,EAAO,aAAa,MAAM,GAAM,GAAyB,EAAK,WAAW,SAAS,GAAG,EAAK,WAAW,OAAO,GAAG,EAAK,WAAW,QAAQ,EAAE,IAAM,EAAgB,IAAS,OAA8B,KAAlB,EAAO,WAAgB,GAAG,IAAqB,OAE5yD,CAEL,GADA,EAAE,gBAAgB,EACf,GAAQ,EAAS,MAAM,EAAK,WAAW,OAAO,GAAG,EAAK,WAAW,QAAQ,GAAG,GAAG,CAAC,EAAE,eAAe,CAAE,MAAS,CAAC,CAAC,EAAmB,OAAO,EAAa,UAAU,EAAoB,QAAQ,GAAG,EAAE,SAAS,CAAC,EAAK,EAAS,KAAK,EAAkB,KAAK,CAAG,CAAW,IAAS,SAAa,EAAO,mBAAmB,EAAmB,EAAO,aAAa,EAAa,EAAO,eAAe,EAAe,EAAO,cAAc,IAAI,YAAY,cAAc,CAAC,EAAG,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,KAAa,EAA4B,MAAM,CAAE,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,MAAa,EAAkB,IAAI,EAAE,EAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGE,EAAE,QAAQ,IAAqB,QAAQ,EAA2B,MAAM,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,SAAgB,EAAW,EAAE,CAAC,MAAO,IAAG,CAAC,IAAM,EAAS,EAAiC,EAAQ,EAAe,EAAgB,CAAQ,EAAO,EAAE,GAASF,EAAS,CAAC,EAAkZ,OAAhZ,MAAc,CAAC,IAAM,MAAM,EAAQ,GAAG,EAAE,CAAC,EAAyH,OAA7G,IAAS,SAAa,EAAO,iBAAiB,eAAe,CAAC,EAAE,EAAO,iBAAiB,iBAAiB,CAAC,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,eAAe,CAAC,EAAE,EAAO,oBAAoB,iBAAiB,CAAC,EAAG,CAAE,EAAE,CAAC,CAAC,EAAK,EAA8B,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,CAAC,CAAC,EAAuB,EAAK,MAAM,CAAC,IAAI,EAAe,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAQ,EAAE,EAAE,IAAM,EAAO,EAAE,QAAQ,EAAE,OAAO,QAAQ,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAW,EAAK,GAAO,EAAO,aAAa,MAAM,GAAM,GAAS,EAAgB,EAAK,WAAW,SAAS,GAAG,EAAK,WAAW,OAAO,GAAG,EAAK,WAAW,QAAQ,EAAQ,EAAgB,IAAS,OAA8B,KAAlB,EAAO,WAAgB,GAAG,IAAqB,UACr2D,CACL,GAAG,GAAQ,GAAiB,EAAS,IAAI,GAAG,CAAC,EAAE,eAAe,CAAE,MAAS,CAAC,CAAC,EAAmB,UAAU,EAAa,UAAU,EAAoB,QAAQ,GAAG,EAAE,SAAS,CAAC,EAAK,EAAS,KAAK,EAAkB,KAAK,CAAG,CAAW,IAAS,SAAa,EAAO,mBAAmB,EAAmB,EAAO,aAAa,EAAa,EAAO,eAAe,EAAe,EAAO,cAAc,IAAI,YAAY,cAAc,CAAC,EAAG,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,KAAa,EAA4B,SAAS,CAAE,EAAE,iBAAiB,CAAW,IAAS,QAAa,EAAO,WAAW,MAAa,EAAkB,IAAI,EAAE,EAAkB,IAAI,EAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGE,EAAE,QAAQ,IAAqB,WAAW,EAA2B,SAAS,EAAE,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,CAA+4B,SAAgB,EAAU,EAAE,CAAC,MAAO,IAAgB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,gBAAgB,EAAE,EAAQ,EAAE,EAAuH,GAAhG,IAAS,OAAkC,EAAtB,EAAO,kBAAgD,OAAO,MAAM,MAA0B,CAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAAgB,EAAa,EAAE,CAAC,MAAO,IAAgB,EAAK,MAAM,CAAC,YAAY,CAAC,EAAkB,MAAM,CAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAAgB,EAAe,EAAE,CAAC,IAAI,EAAqB,KAAW,EAAoB,GAAQ,CAAI,CAAC,GAA6B,IAAS,SAAmB,EAAqB,cAAc,IAAI,aAAa,eAAe,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,QAAQ,YAAY,OAAO,CAAC,CAAC,EAAE,EAAqB,cAAc,IAAI,WAAW,aAAa,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,OAAO,CAAC,CAAC,EAAE,EAAqB,cAAc,IAAI,WAAW,WAAW,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,OAAO,CAAC,CAAC,EAAE,EAAqB,KAAK,EAAQ,GAA8B,EAAO,IAAU,CAAiI,GAA7H,OAAO,SAAW,KAA8G,EAAtE,OAAO,EAAO,SAAU,UAAU,OAAO,EAAO,SAAU,UAAuB,OAAO,KAA2E,IAAM,EAAhE,SAAS,kBAAkB,EAAO,QAAQ,EAAO,OAA0B,CAAC,CAAC,KAAK,GAAQ,CAAC,GAAmB,GAAS,SAAS,CAAE,EAAS,GAAY,CAAC,CAAC,EAAG,QAAQ,uBAAuB,CAAG,EAAQ,EAAS,GAAQ,QAAQ,uBAAuB,EAAuL,MAAlL,CAAC,GAA8C,EAAS,aAAa,aAAa,IAAI,QAAQ,iBAAiB,CAAQ,CAAC,CAAC,gBAAgB,OAAoC,KAAY,GAAQ,IAAK,EAAQ,GAAwB,EAAO,EAAQ,IAAgB,CAAC,GAAU,IAAS,QAAa,EAAO,WAAW,IAAK,OAA8N,GAA5C,GAAe,QAAQ,yHAAmB,EAAmB,CAAC,EAAoB,CAAM,EAAE,MAAO,CAAC,IAAM,EAAW,EAA6B,EAAO,CAAO,EAAE,GAAG,CAAC,EAAW,CAAC,EAAoB,CAAM,EAAE,MAAO,CAAI,IAAuB,IAAY,EAAoB,CAAM,EAAE,EAAW,cAAc,IAAI,aAAa,eAAe,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,QAAQ,YAAY,OAAO,CAAC,CAAC,EAAE,EAAW,cAAc,IAAI,WAAW,aAAa,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,OAAO,CAAC,CAAC,EAAE,EAAW,cAAc,IAAI,WAAW,YAAY,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,OAAO,CAAC,CAAC,EAAE,EAAqB,GAAY,EAAW,cAAc,IAAI,aAAa,cAAc,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,QAAQ,YAAY,OAAO,CAAC,CAAC,EAAE,EAAW,cAAc,IAAI,WAAW,YAAY,CAAC,QAAQ,GAAK,WAAW,GAAK,QAAQ,EAAO,QAAQ,QAAQ,EAAO,OAAO,CAAC,CAAC,CAAE,EAAE,MAAO,IAAgB,EAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAM,EAAoB,0HAA2M,GAApE,EAAE,QAAqC,QAAQ,CAAmB,EAAmB,OAE3hK,IAAM,EAAO,EAAE,YAA+F,GAAnE,OAAO,EAAO,SAAU,UAAU,OAAO,EAAO,SAAU,UAAuB,OAAO,SAAW,IAAY,CAAC,IAAM,EAAM,SAAS,kBAAkB,EAAO,QAAQ,EAAO,OAAO,EAAQ,EAAQ,EAAE,cAAoB,EAAsB,EAAM,KAAK,GAAQ,CAAC,GAAmB,GAAS,SAAS,CAAE,EAAS,GAAY,CAAC,CAAC,EAAG,QAAQ,CAAmB,CAAG,EAAE,GAAG,EAAsB,CAAC,IAAM,EAAW,EAAsB,QAAQ,CAAmB,EAAE,GAAG,EAAW,CAAC,IAAM,EAAS,EAAW,QAAQ,uBAAuB,EAA4I,GAA7G,IAAW,EAAS,aAAa,aAAa,IAAI,QAAQ,iBAAiB,CAAQ,CAAC,CAAC,gBAAgB,QAAiC,OAAQ,EAAW,MAAM,EAAE,MAAO,CAAC,CAAC,CAAC,EAAQ,EAAE,EAAE,EAAkB,MAAM,EAAY,IAAS,QAAa,EAAO,aAAY,EAAO,YAAY,EAAE,WAAW,CAAE,EAAE,YAAY,GAAG,CAAC,IAAM,EAAO,EAAE,YAAkB,EAAQ,EAAE,cAAoB,EAAO,EAAE,OAAO,EAAuB,EAAO,EAAQ,CAAM,CAAE,EAAE,aAAa,GAAG,CAAC,IAAM,EAAO,EAAE,YAAkB,EAAQ,EAAE,cAAoB,EAAO,EAAE,OAAO,EAAuB,EAAO,EAAQ,CAAM,CAAE,EAAE,aAAa,GAAG,CAAC,EAAoB,EAAE,WAAW,CAAE,EAAE,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAE,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAAgB,EAAY,EAAE,CAAC,MAAO,IAAG,CAAC,GAAK,CAAC,EAAE,GAAGF,EAAgB,IAAS,QAAY,EAAO,gBAAsB,EAAsM,OAApM,MAAc,CAAC,IAAM,EAAE,GAAG,EAAE,CAAC,EAAiE,OAArD,IAAS,QAAY,EAAO,kBAAkB,IAAI,CAAC,MAAY,CAAW,IAAS,QAAY,EAAO,kBAAkB,OAAO,CAAC,CAAE,CAAE,EAAE,CAAC,CAAC,EAAK,EAAS,KAAyB,EAAK,EAAE,CAAC,GAAGE,CAAC,CAAC,CAAE,CAAE,CAAoV,SAAgB,EAAgB,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,EAAQ,GAAYF,EAAS,CAAiB,EAAO,CAAC,EAAa,GAAiBA,EAAgB,IAAS,QAAa,EAAO,mCAAmC,EAAI,EAAO,CAAC,EAAiB,GAAqBA,EAAS,EAAK,EAAQ,MAAsC,CAAC,GAAU,IAAS,QAAa,OAAO,SAAW,IAAa,MAAO,GAAO,IAAM,EAAa,EAAO,mBAAsG,GAAG,EAAxD,IAAe,SAAS,IAAe,eAA0C,MAAO,GAAM,IAAM,EAAY,EAAO,gBAAgB,GAAG,CAAC,EAAY,MAAO,GAAM,IAAM,EAAS,SAAS,cAAc,yBAAyB,EAAY,GAAG,EAAgL,OAA1K,EAAgL,CAAC,CAA3I,EAAS,QAAQ,iHAAmI,EAA1K,EAA4K,EAAE,MAAc,CAAC,IAAM,MAAc,CAAC,GAAU,IAAS,OAAoC,OAAvB,EAAgB,EAAK,EAAS,GAAO,IAAM,EAAQ,EAAO,mCAAmC,GAA8B,OAAzB,EAAgB,CAAO,EAAS,CAAQ,EAAQ,MAAoB,CAAC,IAAM,EAAQ,EAAU,EAAQ,EAAqB,EAAkC,EAAQ,EAAY,GAAS,EAAsD,GAAjC,EAAoB,CAAW,EAAK,CAAC,EAAY,OAAO,IAAM,EAAS,EAAkB,EAAY,IAAS,SAAa,EAAO,iBAAiB,GAAU,EAAoB,CAAQ,EAAE,EAAW,GAAM,IAAO,EAAS,EAAK,CAAQ,CAAE,EAAQ,MAAO,EAAgB,EAAQ,MAAW,EAAgB,EAA4V,OAAhV,IAAS,SAAa,EAAO,EAAE,EAAO,iBAAiB,mBAAmB,CAAE,EAAE,EAAO,iBAAiB,uBAAuB,CAAM,EAAE,EAAO,iBAAiB,iCAAiC,CAAM,EAAE,EAAO,iBAAiB,iBAAiB,CAAM,EAAE,EAAO,iBAAiB,aAAa,CAAM,EAAE,EAAO,iBAAiB,WAAW,CAAM,OAAa,CAAW,IAAS,SAAa,EAAO,oBAAoB,mBAAmB,CAAE,EAAE,EAAO,oBAAoB,uBAAuB,CAAM,EAAE,EAAO,oBAAoB,iCAAiC,CAAM,EAAE,EAAO,oBAAoB,iBAAiB,CAAM,EAAE,EAAO,oBAAoB,aAAa,CAAM,EAAE,EAAO,oBAAoB,WAAW,CAAM,EAAG,CAAE,EAAE,CAAC,CAAC,EAAE,IAAM,EAAc,GAAO,OAAO,CAAC,EAAE,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,MAAM,CAAC,GAAG,EAAc,GAAG,GAAc,EAAiB,CAAC,gBAAgB,CAAO,EAAE,KAAK,MAAM,EAAc,MAAM,oBAAoB,EAAc,mBAAmB,CAAC,CAAC,CAAE,CAAE,CAAqc,SAAgB,EAAc,EAAU,CAAC,MAAO,IAAO,CAAC,GAAK,CAAC,EAAQ,GAAYA,EAAS,CAAiB,EAAO,CAAC,EAAO,GAAWA,EAAS,IAAiB,KAAK,EAA+7B,OAA77B,MAAc,CAAC,IAAM,MAAO,CAAC,IAAM,EAAS,EAAkB,EAAY,IAAS,SAAa,EAAO,iBAAiB,GAAU,EAAoB,CAAQ,EAAE,EAAW,GAAM,IAAO,EAAS,EAAK,CAAQ,CAAE,EAAQ,EAAO,GAAO,EAAU,IAAQ,KAAK,EAAQ,MAAW,CAAC,IAAM,EAAS,EAAkB,EAAY,IAAS,SAAa,EAAO,iBAAiB,GAAU,EAAoB,CAAQ,EAAE,EAAW,GAAM,IAAO,EAAS,EAAK,CAAQ,CAAE,EAAkQ,OAAhQ,EAAiB,IAAI,CAAM,EAAE,EAAU,IAAiB,KAAK,EAAE,EAAO,EAAE,EAAO,iBAAiB,mBAAmB,CAAE,EAAE,EAAO,iBAAiB,iBAAiB,CAAM,EAAE,EAAO,iBAAiB,aAAa,CAAM,EAAE,EAAO,iBAAiB,WAAW,CAAM,MAAY,CAAC,EAAiB,OAAO,CAAM,EAAE,EAAO,oBAAoB,mBAAmB,CAAE,EAAE,EAAO,oBAAoB,iBAAiB,CAAM,EAAE,EAAO,oBAAoB,aAAa,CAAM,EAAE,EAAO,oBAAoB,WAAW,CAAM,CAAE,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,MAAM,CAAC,GAAG,EAAM,MAAM,gBAAgB,EAAO,EAAQ,aAAa,CAAC,CAAC,CAAE,CAAE,qCA9BvlM,IAA6D,EAA6H,IAAS,QAAa,CAAC,EAAO,oBAAmB,EAAO,iBAAiB,GAAM,EAAO,kBAAkB,IAAI,KAAS,EAAe,OAAW,EAAiB,IAAI,IAAQ,EAAa,UAAc,EAAoB,IAAI,IAAQ,EAAkB,KAAS,EAAmB,KAAw9B,EAAoB,UAAgB,EAAmB,CAAC,IAAI,EAAoB,aAAa,CAAmB,EACwpB,EAA2B,EAE9+B,IAAS,SAAa,EAAO,eAAe,EAAe,EAAO,iBAAiB,EAAiB,EAAO,aAAa,EAAa,EAAO,oBAAoB,EAAoB,EAAO,mBAAmB,EAAmB,EAAO,kBAAkB,EAAO,mBAAmB,EAAkB,EAAO,kBAAkB,EAAO,mBAAmB,KAAK,EAAO,kBAAkB,EAAO,mBAAmB"}