{"version":3,"file":"LessonProgress.CPXFfIai.mjs","names":["useState","useRef","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/oHUSTrqX38kEUt9yIMTz/QjNiwQXaKPisU3uokbvH/LessonProgress.js"],"sourcesContent":["//@ts-ignore\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";//@ts-ignore\nimport{addPropertyControls,ControlType}from\"framer\";const CONFIG_DEFAULTS={markButtonCompleteVariant:\"Finished\",markButtonCompleteLabel:\"Completed\",markButtonIncompleteLabel:\"Mark as Complete\",indicatorCompleteVariant:\"Complete\"};let globalConfig={...CONFIG_DEFAULTS};const FALLBACK_STRINGS={markButtonCompleteVariant:CONFIG_DEFAULTS.markButtonCompleteVariant??\"Finished\",markButtonCompleteLabel:CONFIG_DEFAULTS.markButtonCompleteLabel??\"Completed\",markButtonIncompleteLabel:CONFIG_DEFAULTS.markButtonIncompleteLabel??\"Mark as Complete\",indicatorCompleteVariant:CONFIG_DEFAULTS.indicatorCompleteVariant??\"Complete\"};let configVersion=0;const lessonStates=new Map;const lessonListeners=new Map;const OUTSETA_DOMAIN=\"almeidaracingacademy.outseta.com\";const OUTSETA_CUSTOM_ACTIVITY_URL=`https://${OUTSETA_DOMAIN}/api/v1/activities/customactivity`;const OUTSETA_ENTITY_TYPE_ACCOUNT=1;const OUTSETA_ACTIVITY_TITLES={lessonCompleted:\"Lesson Completed\",lessonMedal:\"Lesson Medal\"};let userState={user:null,isReady:false,isLoading:false,error:null};let userInitialized=false;const userListeners=new Set;// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Config Helpers\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nfunction sanitizeConfig(config){const next={};Object.entries(config).forEach(([key,value])=>{if(typeof value===\"string\"){const trimmed=value.trim();if(trimmed.length>0){next[key]=trimmed;}else{next[key]=undefined;}}else if(value!==undefined){next[key]=value;}});return next;}function updateGlobalConfig(partial){const cleaned=sanitizeConfig(partial);globalConfig={...globalConfig,...cleaned};configVersion+=1;notifyAllLessons();}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Outseta User Store\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nfunction ensureOutsetaUserLoaded(){if(typeof window===\"undefined\"||userInitialized)return;userInitialized=true;// Try to use the Outseta.tsx module's user state first (instant!)\nconst outsetaModule=window.__outsetaFramerModule;if(outsetaModule){// Use the existing Outseta module\nconst existingUser=outsetaModule.getUser();userState={user:existingUser,isReady:true,isLoading:false,error:null};// Subscribe to updates from the Outseta module\noutsetaModule.subscribe(newUser=>{userState={user:newUser,isReady:true,isLoading:false,error:null};notifyUserListeners();});notifyUserListeners();// Set up video completion listener\nsetupVideoCompletionListener();return;}// Fallback: bootstrap our own if Outseta module isn't available\nconst bootstrap=()=>{const outseta=window?.Outseta;if(!outseta){window.setTimeout(bootstrap,100)// Reduced from 500ms to 100ms\n;return;}const refetchEvents=[\"accessToken.set\",\"profile.update\",\"account.update\"];refetchEvents.forEach(event=>outseta.on(event,()=>loadUser(outseta,event)));outseta.on(\"logout\",()=>clearUser(\"logout\"));loadUser(outseta,\"initial\");// Set up video completion listener\nsetupVideoCompletionListener();};bootstrap();}// Listen for video completion events from VideoPlayer component\nfunction setupVideoCompletionListener(){if(typeof window===\"undefined\")return;const handleVideoComplete=event=>{const{lessonId}=event.detail;if(!lessonId)return;// Mark the lesson as complete (no toggle - video should only mark, never unmark)\nmarkLessonComplete(lessonId,false,\"video\");};window.addEventListener(\"markLessonComplete\",handleVideoComplete);}async function loadUser(outseta,reason){userState={...userState,isLoading:true,error:null};notifyUserListeners();try{const result=await outseta.getUser();userState={user:result??null,isReady:true,isLoading:false,error:null};}catch(error){const message=error instanceof Error?error.message:\"Failed to load user profile\";userState={user:null,isReady:true,isLoading:false,error:message};}notifyUserListeners();}function clearUser(reason){userState={user:null,isReady:true,isLoading:false,error:null};notifyUserListeners();}function subscribeUser(listener){userListeners.add(listener);return()=>userListeners.delete(listener);}function notifyUserListeners(){userListeners.forEach(listener=>listener());notifyAllLessons();}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Lesson Store Helpers\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nfunction ensureLessonEntry(lessonId){if(!lessonStates.has(lessonId)){lessonStates.set(lessonId,{isSaving:false,error:null});}if(!lessonListeners.has(lessonId)){lessonListeners.set(lessonId,new Set);}return lessonStates.get(lessonId);}function subscribeLesson(lessonId,listener){ensureLessonEntry(lessonId);const set=lessonListeners.get(lessonId);set.add(listener);return()=>set.delete(listener);}function notifyLesson(lessonId){const listeners=lessonListeners.get(lessonId);if(listeners){listeners.forEach(listener=>listener());}}function notifyAllLessons(){lessonListeners.forEach(listeners=>{listeners.forEach(listener=>listener());});}function updateLessonState(lessonId,partial){const state=ensureLessonEntry(lessonId);Object.assign(state,partial);notifyLesson(lessonId);}function parseCompletedLessons(raw){if(!raw)return[];if(Array.isArray(raw)){return raw.filter(item=>typeof item===\"string\");}if(typeof raw===\"string\"){try{const parsed=JSON.parse(raw);if(Array.isArray(parsed)){return parsed.filter(item=>typeof item===\"string\");}}catch(error){}}return[];}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Outseta Custom Activity Helpers\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nasync function recordLessonCompletionActivity(lessonId,source){if(typeof window===\"undefined\")return;if(typeof lessonId!==\"string\"||lessonId.trim().length===0)return;const trimmedLessonId=lessonId.trim();await postOutsetaActivity({lessonId:trimmedLessonId,title:OUTSETA_ACTIVITY_TITLES.lessonCompleted,description:`Lesson \"${trimmedLessonId}\" marked complete via ${source}`,activityData:{type:\"lesson-complete\",lessonId:trimmedLessonId,source}});}function queueLessonCompletionActivity(lessonId,source){recordLessonCompletionActivity(lessonId,source).catch(error=>{console.warn(\"[LessonProgress] Activity logging error\",error);});}async function recordLessonMedalActivity(lessonId,medal){if(typeof window===\"undefined\")return;if(typeof lessonId!==\"string\"||lessonId.trim().length===0)return;const trimmedLessonId=lessonId.trim();const label=medal.charAt(0).toUpperCase()+medal.slice(1);await postOutsetaActivity({lessonId:trimmedLessonId,title:`${OUTSETA_ACTIVITY_TITLES.lessonMedal} – ${label}`,description:`Awarded ${label} medal for lesson \"${trimmedLessonId}\"`,activityData:{type:\"lesson-medal\",lessonId:trimmedLessonId,medal}});}function queueLessonMedalActivity(lessonId,medal){recordLessonMedalActivity(lessonId,medal).catch(error=>{console.warn(\"[LessonProgress] Medal activity logging error\",error);});}async function postOutsetaActivity(payload){const user=userState.user;if(!user)return;const accountUid=extractAccountUid(user);if(!accountUid){return;}const accessToken=await getOutsetaAccessTokenForActivities();if(!accessToken){return;}try{const response=await fetch(OUTSETA_CUSTOM_ACTIVITY_URL,{method:\"POST\",headers:{Authorization:`Bearer ${accessToken}`,\"Content-Type\":\"application/json\"},body:JSON.stringify({Title:payload.title,Description:payload.description,ActivityData:JSON.stringify({...payload.activityData,recordedAt:new Date().toISOString()}),EntityType:OUTSETA_ENTITY_TYPE_ACCOUNT,EntityUid:accountUid})});if(!response.ok){throw new Error(`Outseta activity failed with status ${response.status}`);}}catch(error){console.warn(\"[LessonProgress] Failed to record Outseta activity\",error);}}function extractAccountUid(user){if(!user)return null;const candidates=[user.Account?.Uid,user.AccountUid,user[\"Account.Uid\"],user.PrimaryAccount?.Uid];if(Array.isArray(user.PersonAccount)){user.PersonAccount.forEach(membership=>{candidates.push(membership?.Account?.Uid);});}if(Array.isArray(user[\"PersonAccount\"])){user[\"PersonAccount\"].forEach(membership=>{candidates.push(membership?.Account?.Uid);});}for(const candidate of candidates){if(typeof candidate===\"string\"){const trimmed=candidate.trim();if(trimmed.length>0){return trimmed;}}}return null;}async function getOutsetaAccessTokenForActivities(){if(typeof window===\"undefined\"){return null;}const module=window.__outsetaFramerModule;if(module?.getAccessTokenAsync){try{const tokenResult=await module.getAccessTokenAsync(\"lessonProgress:activity\");if(typeof tokenResult===\"string\"&&tokenResult.trim().length>0){return tokenResult;}if(tokenResult&&typeof tokenResult===\"object\"&&typeof tokenResult.access_token===\"string\"){return tokenResult.access_token;}}catch(error){console.warn(\"[LessonProgress] Unable to fetch Outseta token via module\",error);}}const directToken=window.Outseta?.accessToken?.access_token;if(typeof directToken===\"string\"&&directToken.trim().length>0){return directToken;}return null;}function parseLessonMedals(raw){if(!raw)return{};if(typeof raw===\"object\"&&!Array.isArray(raw)){const result={};Object.entries(raw).forEach(([key,value])=>{if(typeof key===\"string\"&&(value===\"bronze\"||value===\"silver\"||value===\"gold\")){result[key]=value;}});return result;}if(typeof raw===\"string\"){try{const parsed=JSON.parse(raw);if(typeof parsed===\"object\"&&!Array.isArray(parsed)){const result={};Object.entries(parsed).forEach(([key,value])=>{if(typeof key===\"string\"&&(value===\"bronze\"||value===\"silver\"||value===\"gold\")){result[key]=value;}});return result;}}catch(error){}}return{};}function getLessonMedal(lessonId){const medals=parseLessonMedals(userState.user?.LessonMedals);return medals[lessonId]??null;}async function setLessonMedal(lessonId,medal){const user=userState.user;const lessonState=ensureLessonEntry(lessonId);if(!user){updateLessonState(lessonId,{error:\"Sign in to save progress\"});return;}if(lessonState.isSaving){return;}const currentMedals=parseLessonMedals(user.LessonMedals);const currentMedal=currentMedals[lessonId]??null;// Toggle: if clicking the same medal, remove it\nconst newMedal=currentMedal===medal?null:medal;// Update medals object\nconst updatedMedals={...currentMedals};if(newMedal===null){delete updatedMedals[lessonId];}else{updatedMedals[lessonId]=newMedal;}// Determine completion updates based on medal presence\nconst shouldBeComplete=newMedal!==null;const completedLessons=parseCompletedLessons(user.CompletedLessons);const isCurrentlyComplete=completedLessons.includes(lessonId);let updatedCompletedLessons=completedLessons;if(shouldBeComplete&&!isCurrentlyComplete){updatedCompletedLessons=[...completedLessons,lessonId];}else if(!shouldBeComplete&&isCurrentlyComplete){updatedCompletedLessons=completedLessons.filter(id=>id!==lessonId);}const shouldUpdateCompletedLessons=shouldBeComplete!==isCurrentlyComplete;const becameCompleteViaMedal=shouldBeComplete&&!isCurrentlyComplete;// OPTIMISTIC UPDATE\nconst previousMedalsValue=user.LessonMedals;const previousCompletedValue=user.CompletedLessons;user.LessonMedals=JSON.stringify(updatedMedals);if(shouldUpdateCompletedLessons){user.CompletedLessons=JSON.stringify(updatedCompletedLessons);}updateLessonState(lessonId,{isSaving:true,error:null});notifyUserListeners();// Sync with Outseta\ntry{if(typeof user.update!==\"function\"){throw new Error(\"Outseta user object is missing update()\");}const updatePayload={LessonMedals:JSON.stringify(updatedMedals)};if(shouldUpdateCompletedLessons){updatePayload.CompletedLessons=JSON.stringify(updatedCompletedLessons);}await user.update(updatePayload);updateLessonState(lessonId,{isSaving:false,error:null});if(becameCompleteViaMedal){queueLessonCompletionActivity(lessonId,\"medal\");}if(newMedal!==null){queueLessonMedalActivity(lessonId,newMedal);}}catch(error){// Rollback on failure\nuser.LessonMedals=previousMedalsValue;user.CompletedLessons=previousCompletedValue;updateLessonState(lessonId,{isSaving:false,error:\"Failed to save medal\"});notifyUserListeners();}}function getLessonSnapshot(lessonId){const lessonState=ensureLessonEntry(lessonId);const{user,isReady,isLoading,error:userError}=userState;const completedLessons=parseCompletedLessons(user?.CompletedLessons);const isComplete=completedLessons.includes(lessonId);return{lessonId,isComplete,isSaving:lessonState.isSaving,error:lessonState.error??userError,isReady,isLoading,hasUser:!!user};}async function markLessonComplete(lessonId,allowToggle=true,source=\"manual\"){const user=userState.user;const lessonState=ensureLessonEntry(lessonId);if(!user){updateLessonState(lessonId,{error:\"Sign in to save progress\"});return;}if(lessonState.isSaving){return;}const completedLessons=parseCompletedLessons(user.CompletedLessons);const isCurrentlyComplete=completedLessons.includes(lessonId);const becameComplete=!isCurrentlyComplete;// If already complete and toggling is disabled, do nothing\nif(isCurrentlyComplete&&!allowToggle){return;}// Toggle: add if not complete, remove if complete (only if allowToggle is true)\nconst updatedLessons=isCurrentlyComplete&&allowToggle?completedLessons.filter(id=>id!==lessonId):[...completedLessons,lessonId];const action=isCurrentlyComplete?\"unmarked\":\"marked\";// OPTIMISTIC UPDATE: Update UI immediately!\nconst previousValue=user.CompletedLessons;user.CompletedLessons=JSON.stringify(updatedLessons);updateLessonState(lessonId,{isSaving:true,error:null});notifyUserListeners()// UI updates instantly ⚡\n;// Now sync with Outseta in the background\ntry{if(typeof user.update!==\"function\"){throw new Error(\"Outseta user object is missing update()\");}await user.update({CompletedLessons:JSON.stringify(updatedLessons)});updateLessonState(lessonId,{isSaving:false,error:null});if(becameComplete){queueLessonCompletionActivity(lessonId,source);}}catch(error){// Rollback on failure\nuser.CompletedLessons=previousValue;updateLessonState(lessonId,{isSaving:false,error:\"Failed to save progress\"});notifyUserListeners();}}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Lesson ID Resolution\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nfunction extractLessonIdFromHref(element){if(!element)return null;// 1. Check parent container for data-lesson-id\nconst container=element.closest(\"[data-lesson-id]\");if(container?.dataset.lessonId){return container.dataset.lessonId;}// 2. Look for a link - search up the tree to find the nearest container with a link\nlet currentParent=element.parentElement;let attempts=0;while(currentParent&&attempts<10){const link=currentParent.querySelector(\"a[href]\");if(link?.href){try{const url=new URL(link.href);const pathSegments=url.pathname.split(\"/\").filter(Boolean);const slug=pathSegments[pathSegments.length-1];if(slug&&slug!==\"_preview\"&&!slug.startsWith(\"#\")){return slug;}}catch(e){// Invalid URL, continue searching\n}}currentParent=currentParent.parentElement;attempts++;}return null;}function resolveLessonId(explicitId){if(explicitId&&explicitId.trim().length>0){return explicitId.trim();}if(globalConfig.lessonId&&globalConfig.lessonId.trim().length>0){return globalConfig.lessonId.trim();}if(typeof window!==\"undefined\"){const globalSlug=window.__lessonId||window.__lessonSlug||window.__lessonProgress?.lessonId;if(typeof globalSlug===\"string\"&&globalSlug.trim().length>0){return globalSlug.trim();}const dataNode=document.querySelector(\"[data-lesson-id]\");if(dataNode?.textContent?.trim()){return dataNode.textContent.trim();}const pathSegments=window.location.pathname.split(\"/\").map(segment=>segment.trim()).filter(Boolean);if(pathSegments.length>0){let candidate=pathSegments[pathSegments.length-1];if(candidate===\"_preview\"&&pathSegments.length>1){candidate=pathSegments[pathSegments.length-2];}if(candidate&&candidate!==\"_preview\"){return candidate;}}}return\"lesson-1\";}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Public Hooks\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nexport function useLessonProgress(lessonIdOverride){// Use simpler state management to avoid hook ordering issues\nconst[,forceUpdate]=useState(0);useEffect(()=>{ensureOutsetaUserLoaded();},[]);const resolvedLessonId=useMemo(()=>resolveLessonId(lessonIdOverride),[lessonIdOverride]);// Subscribe to updates\nuseEffect(()=>{const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(resolvedLessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[resolvedLessonId]);// Get current state directly from global stores\nconst snapshot=getLessonSnapshot(resolvedLessonId);const markCompleteCallback=useCallback(()=>{return markLessonComplete(resolvedLessonId,true)// Allow toggle for hook usage\n;},[resolvedLessonId]);return useMemo(()=>({...snapshot,lessonId:resolvedLessonId,markComplete:markCompleteCallback}),[snapshot,resolvedLessonId,markCompleteCallback]);}export function useIsLessonComplete(lessonId){const{isComplete}=useLessonProgress(lessonId);return isComplete;}export function LessonProgressConfig(props){useEffect(()=>{updateGlobalConfig(props);},[props.lessonId,props.markButtonCompleteVariant,props.markButtonIncompleteVariant,props.markButtonCompleteLabel,props.markButtonIncompleteLabel,props.indicatorCompleteVariant,props.indicatorIncompleteVariant]);return null;}addPropertyControls(LessonProgressConfig,{lessonId:{type:ControlType.String,title:\"Lesson ID\",placeholder:\"auto from slug\"},markButtonCompleteVariant:{type:ControlType.String,title:\"Button: Complete\",placeholder:FALLBACK_STRINGS.markButtonCompleteVariant},markButtonIncompleteVariant:{type:ControlType.String,title:\"Button: Incomplete\",placeholder:\"auto (initial variant)\"},markButtonCompleteLabel:{type:ControlType.String,title:\"Label: Complete\",placeholder:FALLBACK_STRINGS.markButtonCompleteLabel},markButtonIncompleteLabel:{type:ControlType.String,title:\"Label: Incomplete\",placeholder:FALLBACK_STRINGS.markButtonIncompleteLabel},indicatorCompleteVariant:{type:ControlType.String,title:\"Indicator: Complete\",placeholder:FALLBACK_STRINGS.indicatorCompleteVariant},indicatorIncompleteVariant:{type:ControlType.String,title:\"Indicator: Incomplete\",placeholder:\"auto (initial variant)\"}});// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Overrides – attach these to Framer layers\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nexport function LessonProgressMarkButton(props){// Use simpler state management to avoid hook ordering issues\nconst[,forceUpdate]=useState(0);const initialText=useRef(undefined);const initialVariant=useRef(undefined);// Initialize Outseta\nuseEffect(()=>{ensureOutsetaUserLoaded();},[]);// Subscribe to updates\nuseEffect(()=>{const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const lessonId=resolveLessonId();const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[]);// Get current state directly from global stores\nconst lessonId=resolveLessonId();const snapshot=getLessonSnapshot(lessonId);const{isComplete,isSaving,hasUser,isReady}=snapshot;// Initialize refs\nif(initialText.current===undefined&&typeof props.text===\"string\"){initialText.current=props.text;}if(initialVariant.current===undefined&&typeof props.variant===\"string\"){initialVariant.current=props.variant;}const completeVariant=globalConfig.markButtonCompleteVariant||FALLBACK_STRINGS.markButtonCompleteVariant;const incompleteVariant=globalConfig.markButtonIncompleteVariant||initialVariant.current;const completeLabel=globalConfig.markButtonCompleteLabel||FALLBACK_STRINGS.markButtonCompleteLabel;const incompleteLabel=globalConfig.markButtonIncompleteLabel||initialText.current||FALLBACK_STRINGS.markButtonIncompleteLabel;const disabled=isSaving||!hasUser&&isReady;const tooltip=!hasUser&&isReady?\"Sign in to save progress\":props.tooltip??props.title;return{variant:isComplete?completeVariant:incompleteVariant||props.variant,text:isComplete?completeLabel:incompleteLabel,disabled,tooltip,onTap:async()=>{if(isSaving)return;// Allow clicking when complete for toggle\nif(!hasUser){updateLessonState(lessonId,{error:\"Sign in to save progress\"});return;}await markLessonComplete(lessonId,true)// Allow toggle for manual button\n;}};}export function LessonProgressVariant(props){// Use simpler state management to avoid hook ordering issues\nconst[,forceUpdate]=useState(0);const initialVariant=useRef(undefined);// Initialize Outseta\nuseEffect(()=>{ensureOutsetaUserLoaded();},[]);// Get lesson ID\nconst lessonId=resolveLessonId();// Subscribe to updates\nuseEffect(()=>{const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current state directly from global stores\nconst snapshot=getLessonSnapshot(lessonId);const{isComplete}=snapshot;if(initialVariant.current===undefined&&typeof props.variant===\"string\"){initialVariant.current=props.variant;}const completeVariant=globalConfig.indicatorCompleteVariant||FALLBACK_STRINGS.indicatorCompleteVariant;const incompleteVariant=globalConfig.indicatorIncompleteVariant||initialVariant.current;return{variant:isComplete?completeVariant:incompleteVariant||props.variant};}export function LessonProgressShowWhenComplete(props){// Use simpler state management to avoid hook ordering issues\nconst[,forceUpdate]=useState(0);const[lessonId,setLessonId]=useState(\"\");const elementRef=useRef(null);const initialVariant=useRef(undefined);// Initialize Outseta\nuseEffect(()=>{ensureOutsetaUserLoaded();},[]);// Try to find lesson ID from various sources\nuseEffect(()=>{// 1. Check props\nconst propId=props?.lessonId||props?.lesson_id||props?.slug;if(propId){setLessonId(propId);return;}// 2. Check parent container for data-lesson-id\nconst element=elementRef.current;if(element){const container=element.closest(\"[data-lesson-id]\");if(container?.dataset.lessonId){setLessonId(container.dataset.lessonId);return;}// 3. Look for a link - search up the tree to find the nearest container with a link\nlet currentParent=element.parentElement;let attempts=0;while(currentParent&&attempts<10){// Look for any link in this container\nconst link=currentParent.querySelector(\"a[href]\");if(link?.href){// Extract slug from href (last segment of path)\ntry{const url=new URL(link.href);const pathSegments=url.pathname.split(\"/\").filter(Boolean);const slug=pathSegments[pathSegments.length-1];if(slug&&slug!==\"_preview\"&&!slug.startsWith(\"#\")){setLessonId(slug);return;}}catch(e){// Invalid URL, continue searching\n}}currentParent=currentParent.parentElement;attempts++;}}// 4. No lesson ID found - don't show checkmark\nsetLessonId(\"\");},[props]);// Subscribe to updates\nuseEffect(()=>{if(!lessonId)return;const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current state directly from global stores\nconst snapshot=lessonId?getLessonSnapshot(lessonId):{isComplete:false,isReady:false,isLoading:true};const{isComplete,isReady,isLoading}=snapshot;const currentMedal=lessonId?getLessonMedal(lessonId):null;if(initialVariant.current===undefined&&typeof props?.variant===\"string\"){initialVariant.current=props.variant;}const completeVariant=currentMedal?currentMedal.charAt(0).toUpperCase()+currentMedal.slice(1):globalConfig.indicatorCompleteVariant||initialVariant.current||props?.variant;const visible=isComplete&&(isReady||!isLoading);const baseStyle=props?.style??{};const displayValue=visible?baseStyle?.display??undefined:\"none\";return{ref:elementRef,visible,variant:visible?completeVariant:props?.variant,style:{...baseStyle,display:displayValue}};}export function LessonProgressMedal(props){const[,forceUpdate]=useState(0);const[lessonId,setLessonId]=useState(\"\");const elementRef=useRef(null);const initialVariant=useRef(undefined);useEffect(()=>{ensureOutsetaUserLoaded();},[]);useEffect(()=>{const propId=props?.lessonId||props?.lesson_id||props?.slug;if(propId){setLessonId(propId);return;}const element=elementRef.current;if(element){const container=element.closest(\"[data-lesson-id]\");if(container?.dataset.lessonId){setLessonId(container.dataset.lessonId);return;}let currentParent=element.parentElement;let attempts=0;while(currentParent&&attempts<10){const link=currentParent.querySelector(\"a[href]\");if(link?.href){try{const url=new URL(link.href);const pathSegments=url.pathname.split(\"/\").filter(Boolean);const slug=pathSegments[pathSegments.length-1];if(slug&&slug!==\"_preview\"&&!slug.startsWith(\"#\")){setLessonId(slug);return;}}catch(e){// ignore invalid url\n}}currentParent=currentParent.parentElement;attempts++;}}setLessonId(\"\");},[props]);useEffect(()=>{if(!lessonId)return;const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);const snapshot=lessonId?getLessonSnapshot(lessonId):{isComplete:false,isReady:false,isLoading:true};const{isComplete}=snapshot;const currentMedal=lessonId?getLessonMedal(lessonId):null;if(initialVariant.current===undefined&&typeof props?.variant===\"string\"){initialVariant.current=props.variant;}const medalVariant=currentMedal?currentMedal.charAt(0).toUpperCase()+currentMedal.slice(1):globalConfig.indicatorCompleteVariant||initialVariant.current||props?.variant;const fallbackVariant=initialVariant.current||props?.variant;const variant=isComplete?medalVariant:fallbackVariant;return{ref:elementRef,variant,style:props?.style};}export function LessonProgressShowWhenIncomplete(props){// Use simpler state management to avoid hook ordering issues\nconst[,forceUpdate]=useState(0);const[lessonId,setLessonId]=useState(\"\");const elementRef=useRef(null);// Initialize Outseta\nuseEffect(()=>{ensureOutsetaUserLoaded();},[]);// Try to find lesson ID from various sources\nuseEffect(()=>{// 1. Check props\nconst propId=props?.lessonId||props?.lesson_id||props?.slug;if(propId){setLessonId(propId);return;}// 2. Check parent container for data-lesson-id\nconst element=elementRef.current;if(element){const container=element.closest(\"[data-lesson-id]\");if(container?.dataset.lessonId){setLessonId(container.dataset.lessonId);return;}// 3. Look for a link - search up the tree to find the nearest container with a link\nlet currentParent=element.parentElement;let attempts=0;while(currentParent&&attempts<10){// Look for any link in this container\nconst link=currentParent.querySelector(\"a[href]\");if(link?.href){// Extract slug from href (last segment of path)\ntry{const url=new URL(link.href);const pathSegments=url.pathname.split(\"/\").filter(Boolean);const slug=pathSegments[pathSegments.length-1];if(slug&&slug!==\"_preview\"&&!slug.startsWith(\"#\")){setLessonId(slug);return;}}catch(e){// Invalid URL, continue searching\n}}currentParent=currentParent.parentElement;attempts++;}}// 4. No lesson ID found - don't show checkmark\nsetLessonId(\"\");},[props]);// Subscribe to updates\nuseEffect(()=>{if(!lessonId)return;const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current state directly from global stores\nconst snapshot=lessonId?getLessonSnapshot(lessonId):{isComplete:false,isReady:false,isLoading:true};const{isComplete,isReady,isLoading}=snapshot;const visible=!isComplete&&(isReady||!isLoading);const baseStyle=props?.style??{};const displayValue=visible?baseStyle?.display??undefined:\"none\";return{ref:elementRef,visible,style:{...baseStyle,display:displayValue}};}function normalizeLessonPath(value){if(!value)return undefined;const trimmed=value.trim();if(!trimmed)return undefined;if(/^[a-z]+:/i.test(trimmed))return trimmed;if(trimmed.startsWith(\"/\"))return trimmed;return`/${trimmed}`;}function extractSlugFromPath(path){if(!path)return undefined;const clean=path.split(\"#\")[0].split(\"?\")[0];const segments=clean.split(\"/\").filter(Boolean);const slug=segments[segments.length-1]||\"\";return slug||undefined;}function coerceLessonMeta(user,prefix){if(!user)return null;const rawSlug=typeof user?.[`${prefix}Slug`]===\"string\"?user[`${prefix}Slug`].trim():\"\";const rawPath=typeof user?.[`${prefix}Path`]===\"string\"?user[`${prefix}Path`].trim():\"\";const rawTitle=typeof user?.[`${prefix}Title`]===\"string\"?user[`${prefix}Title`].trim():\"\";const normalizedPath=normalizeLessonPath(rawPath||rawSlug);const derivedSlug=rawSlug||extractSlugFromPath(normalizedPath);if(!normalizedPath&&!rawTitle&&!derivedSlug){return null;}return{path:normalizedPath||undefined,title:rawTitle||undefined,slug:derivedSlug||undefined};}function getLastLessonMeta(){return coerceLessonMeta(userState.user,\"LastLesson\");}function getLastLockedLessonMeta(){return coerceLessonMeta(userState.user,\"LastLockedLesson\");}function useLessonMeta(getter){const[,forceUpdate]=useState(0);useEffect(()=>{ensureOutsetaUserLoaded();const unsub=subscribeUser(()=>forceUpdate(n=>n+1));return()=>{unsub();};},[]);return getter();}export function LastLessonLink(props){const meta=useLessonMeta(getLastLessonMeta);const href=normalizeLessonPath(meta?.path||meta?.slug);const visible=Boolean(href);return{href:href??props.href,visible,style:{...props.style??{},display:visible?props.style?.display??undefined:\"none\"}};}export function LastLessonTitle(props){const meta=useLessonMeta(getLastLessonMeta);const text=meta?.title||meta?.slug||props.text||\"\";const visible=Boolean(meta&&(meta.title||meta.slug));return{text,visible,style:{...props.style??{},display:visible?props.style?.display??undefined:\"none\"}};}export function LastLockedLessonLink(props){const meta=useLessonMeta(getLastLockedLessonMeta);const href=normalizeLessonPath(meta?.path||meta?.slug);const visible=Boolean(href);return{href:href??props.href,visible,style:{...props.style??{},display:visible?props.style?.display??undefined:\"none\"}};}export function LastLockedLessonTitle(props){const meta=useLessonMeta(getLastLockedLessonMeta);const text=meta?.title||meta?.slug||props.text||\"\";const visible=Boolean(meta&&(meta.title||meta.slug));return{text,visible,style:{...props.style??{},display:visible?props.style?.display??undefined:\"none\"}};}export function ShowWithLastLesson(props){const meta=useLessonMeta(getLastLessonMeta);const visible=Boolean(meta&&(meta.path||meta.slug||meta.title));return{visible,style:{...props?.style??{},display:visible?props?.style?.display??undefined:\"none\"}};}export function ShowWithLastLockedLesson(props){const meta=useLessonMeta(getLastLockedLessonMeta);const visible=Boolean(meta&&(meta.path||meta.slug||meta.title));return{visible,style:{...props?.style??{},display:visible?props?.style?.display??undefined:\"none\"}};}export function useLastLessonMeta(){const[,forceUpdate]=useState(0);useEffect(()=>{ensureOutsetaUserLoaded();const unsub=subscribeUser(()=>forceUpdate(n=>n+1));return()=>{unsub();};},[]);return{lastLesson:getLastLessonMeta(),lastLockedLesson:getLastLockedLessonMeta()};}export function LessonProgressErrorText(props){// Use simpler state management\nconst[,forceUpdate]=useState(0);const initialText=useRef(undefined);useEffect(()=>{ensureOutsetaUserLoaded();},[]);const lessonId=resolveLessonId();// Subscribe to updates\nuseEffect(()=>{const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current state\nconst snapshot=getLessonSnapshot(lessonId);if(initialText.current===undefined&&typeof props.text===\"string\"){initialText.current=props.text;}return{text:snapshot.error??initialText.current??\"\",visible:Boolean(snapshot.error),style:{display:snapshot.error?undefined:\"none\"}};}// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Medal System Overrides\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n// Container override - sets variant based on active medal\nexport function MedalSelector(props){const[,forceUpdate]=useState(0);const[lessonId,setLessonId]=useState(\"\");const elementRef=useRef(null);const initialVariant=useRef(undefined);useEffect(()=>{ensureOutsetaUserLoaded();},[]);// Try to find lesson ID from props or href\nuseEffect(()=>{// 1. Check props (for explicit lesson page usage)\nconst propId=props?.lessonId||props?.lesson_id||props?.slug;if(propId){setLessonId(propId);return;}// 2. Try to resolve from page context\nconst resolvedId=resolveLessonId();if(resolvedId&&resolvedId!==\"lesson-1\"){setLessonId(resolvedId);return;}// 3. Try to extract from href (for lesson list usage)\nconst extractedId=extractLessonIdFromHref(elementRef.current);if(extractedId){setLessonId(extractedId);return;}// Fallback to resolved ID even if it's the default\nsetLessonId(resolvedId);},[props]);// Subscribe to updates\nuseEffect(()=>{if(!lessonId)return;const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current medal\nconst currentMedal=lessonId?getLessonMedal(lessonId):null;// Store initial variant\nif(initialVariant.current===undefined&&typeof props.variant===\"string\"){initialVariant.current=props.variant;}// Determine variant based on current medal: \"Bronze\", \"Silver\", \"Gold\", or default\nconst variant=currentMedal?currentMedal.charAt(0).toUpperCase()+currentMedal.slice(1)// \"bronze\" -> \"Bronze\"\n:initialVariant.current||props.variant;return{ref:elementRef,variant};}// Shared medal button logic - just handles clicking\nfunction useMedalButton(medalType,props){const[,forceUpdate]=useState(0);const[lessonId,setLessonId]=useState(\"\");const elementRef=useRef(null);useEffect(()=>{ensureOutsetaUserLoaded();},[]);// Try to find lesson ID from props or href\nuseEffect(()=>{// 1. Check props (for explicit lesson page usage)\nconst propId=props?.lessonId||props?.lesson_id||props?.slug;if(propId){setLessonId(propId);return;}// 2. Try to resolve from page context\nconst resolvedId=resolveLessonId();if(resolvedId&&resolvedId!==\"lesson-1\"){setLessonId(resolvedId);return;}// 3. Try to extract from href (for lesson list usage)\nconst extractedId=extractLessonIdFromHref(elementRef.current);if(extractedId){setLessonId(extractedId);return;}// Fallback to resolved ID even if it's the default\nsetLessonId(resolvedId);},[props]);// Subscribe to updates\nuseEffect(()=>{if(!lessonId)return;const unsubUser=subscribeUser(()=>forceUpdate(n=>n+1));const unsubLesson=subscribeLesson(lessonId,()=>forceUpdate(n=>n+1));return()=>{unsubUser();unsubLesson();};},[lessonId]);// Get current state\nconst snapshot=lessonId?getLessonSnapshot(lessonId):{isSaving:false,hasUser:false,isReady:false};const{isSaving,hasUser,isReady}=snapshot;const disabled=isSaving||!hasUser&&isReady;const handleTap=async()=>{if(isSaving||!lessonId)return;if(!hasUser){updateLessonState(lessonId,{error:\"Sign in to save progress\"});return;}await setLessonMedal(lessonId,medalType);};return{elementRef,disabled,handleTap};}export function MedalButtonBronze(props){const{elementRef,disabled,handleTap}=useMedalButton(\"bronze\",props);return{ref:elementRef,disabled,onTap:handleTap};}export function MedalButtonSilver(props){const{elementRef,disabled,handleTap}=useMedalButton(\"silver\",props);return{ref:elementRef,disabled,onTap:handleTap};}export function MedalButtonGold(props){const{elementRef,disabled,handleTap}=useMedalButton(\"gold\",props);return{ref:elementRef,disabled,onTap:handleTap};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withLessonProgressMarkButton(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressMarkButton(props)});};}withLessonProgressMarkButton.displayName=\"LessonProgressMarkButton\";export function withLessonProgressVariant(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressVariant(props)});};}withLessonProgressVariant.displayName=\"LessonProgressVariant\";export function withLessonProgressShowWhenComplete(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressShowWhenComplete(props)});};}withLessonProgressShowWhenComplete.displayName=\"LessonProgressShowWhenComplete\";export function withLessonProgressMedal(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressMedal(props)});};}withLessonProgressMedal.displayName=\"LessonProgressMedal\";export function withLessonProgressShowWhenIncomplete(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressShowWhenIncomplete(props)});};}withLessonProgressShowWhenIncomplete.displayName=\"LessonProgressShowWhenIncomplete\";export function withLastLessonLink(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LastLessonLink(props)});};}withLastLessonLink.displayName=\"LastLessonLink\";export function withLastLessonTitle(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LastLessonTitle(props)});};}withLastLessonTitle.displayName=\"LastLessonTitle\";export function withLastLockedLessonLink(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LastLockedLessonLink(props)});};}withLastLockedLessonLink.displayName=\"LastLockedLessonLink\";export function withLastLockedLessonTitle(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LastLockedLessonTitle(props)});};}withLastLockedLessonTitle.displayName=\"LastLockedLessonTitle\";export function withShowWithLastLesson(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ShowWithLastLesson(props)});};}withShowWithLastLesson.displayName=\"ShowWithLastLesson\";export function withShowWithLastLockedLesson(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...ShowWithLastLockedLesson(props)});};}withShowWithLastLockedLesson.displayName=\"ShowWithLastLockedLesson\";export function withLessonProgressErrorText(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...LessonProgressErrorText(props)});};}withLessonProgressErrorText.displayName=\"LessonProgressErrorText\";export function withMedalSelector(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MedalSelector(props)});};}withMedalSelector.displayName=\"MedalSelector\";export function withMedalButtonBronze(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MedalButtonBronze(props)});};}withMedalButtonBronze.displayName=\"MedalButtonBronze\";export function withMedalButtonSilver(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MedalButtonSilver(props)});};}withMedalButtonSilver.displayName=\"MedalButtonSilver\";export function withMedalButtonGold(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MedalButtonGold(props)});};}withMedalButtonGold.displayName=\"MedalButtonGold\";\nexport const __FramerMetadata__ = {\"exports\":{\"useIsLessonComplete\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLastLockedLessonLink\":{\"type\":\"reactHoc\",\"name\":\"withLastLockedLessonLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useLessonProgress\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMedalButtonBronze\":{\"type\":\"reactHoc\",\"name\":\"withMedalButtonBronze\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MedalButtonBronze\":{\"type\":\"override\",\"name\":\"MedalButtonBronze\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MedalSelector\":{\"type\":\"override\",\"name\":\"MedalSelector\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressShowWhenIncomplete\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressShowWhenIncomplete\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LastLockedLessonLink\":{\"type\":\"override\",\"name\":\"LastLockedLessonLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressErrorText\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressErrorText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressShowWhenComplete\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressShowWhenComplete\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MedalButtonSilver\":{\"type\":\"override\",\"name\":\"MedalButtonSilver\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressMedal\":{\"type\":\"override\",\"name\":\"LessonProgressMedal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressShowWhenIncomplete\":{\"type\":\"override\",\"name\":\"LessonProgressShowWhenIncomplete\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressErrorText\":{\"type\":\"override\",\"name\":\"LessonProgressErrorText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressMarkButton\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressMarkButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMedalButtonGold\":{\"type\":\"reactHoc\",\"name\":\"withMedalButtonGold\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLastLessonLink\":{\"type\":\"reactHoc\",\"name\":\"withLastLessonLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressMarkButton\":{\"type\":\"override\",\"name\":\"LessonProgressMarkButton\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressVariant\":{\"type\":\"override\",\"name\":\"LessonProgressVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LastLessonLink\":{\"type\":\"override\",\"name\":\"LastLessonLink\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressVariant\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withShowWithLastLockedLesson\":{\"type\":\"reactHoc\",\"name\":\"withShowWithLastLockedLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MedalButtonGold\":{\"type\":\"override\",\"name\":\"MedalButtonGold\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMedalSelector\":{\"type\":\"reactHoc\",\"name\":\"withMedalSelector\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LastLessonTitle\":{\"type\":\"override\",\"name\":\"LastLessonTitle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShowWithLastLockedLesson\":{\"type\":\"override\",\"name\":\"ShowWithLastLockedLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LessonProgressShowWhenComplete\":{\"type\":\"override\",\"name\":\"LessonProgressShowWhenComplete\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useLastLessonMeta\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShowWithLastLesson\":{\"type\":\"override\",\"name\":\"ShowWithLastLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withShowWithLastLesson\":{\"type\":\"reactHoc\",\"name\":\"withShowWithLastLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLessonProgressMedal\":{\"type\":\"reactHoc\",\"name\":\"withLessonProgressMedal\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLastLockedLessonTitle\":{\"type\":\"reactHoc\",\"name\":\"withLastLockedLessonTitle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLastLessonTitle\":{\"type\":\"reactHoc\",\"name\":\"withLastLessonTitle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LastLockedLessonTitle\":{\"type\":\"override\",\"name\":\"LastLockedLessonTitle\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMedalButtonSilver\":{\"type\":\"reactHoc\",\"name\":\"withMedalButtonSilver\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LessonProgress.map"],"mappings":"qNAKA,SAAS,EAAe,EAAO,CAAC,IAAM,EAAK,EAAE,CAAyN,OAAxN,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,EAAI,KAAS,CAAC,GAAG,OAAO,GAAQ,SAAS,CAAC,IAAM,EAAQ,EAAM,MAAM,CAAI,EAAQ,OAAO,EAAG,EAAK,GAAK,EAAc,EAAK,GAAK,IAAA,QAAoB,IAAQ,IAAA,KAAW,EAAK,GAAK,IAAS,CAAQ,EAAM,SAAS,EAAmB,EAAQ,CAAC,IAAM,EAAQ,EAAe,EAAQ,CAAC,EAAa,CAAC,GAAG,EAAa,GAAG,EAAQ,CAAC,IAAe,EAAE,GAAkB,CAG3a,SAAS,GAAyB,CAAC,GAAU,IAAS,QAAa,EAAgB,OAAO,EAAgB,GAC1G,IAAM,EAAc,EAAO,sBAAsB,GAAG,EAAc,CACvB,EAAU,CAAC,KAAnC,EAAc,SAAS,CAA8B,QAAQ,GAAK,UAAU,GAAM,MAAM,KAAK,CAChH,EAAc,UAAU,GAAS,CAAC,EAAU,CAAC,KAAK,EAAQ,QAAQ,GAAK,UAAU,GAAM,MAAM,KAAK,CAAC,GAAqB,EAAG,CAAC,GAAqB,CACjJ,GAA8B,CAAC,OAC/B,IAAM,MAAc,CAAC,IAAM,EAAQ,GAAQ,QAAQ,GAAG,CAAC,EAAQ,CAAC,EAAO,WAAW,EAAU,IAAI,CAC/F,OAA4B,CAAC,kBAAkB,iBAAiB,iBAAiB,CAAe,QAAQ,GAAO,EAAQ,GAAG,MAAU,EAAS,EAAQ,EAAM,CAAC,CAAC,CAAC,EAAQ,GAAG,aAAa,GAAU,SAAS,CAAC,CAAC,EAAS,EAAQ,UAAU,CACvO,GAA8B,EAAG,GAAW,CAC5C,SAAS,GAA8B,CAAW,IAAS,QACd,EAAO,iBAAiB,qBADmC,GAAO,CAAC,GAAK,CAAC,YAAU,EAAM,OAAW,GACjJ,EAAmB,EAAS,GAAM,QAAQ,EAAoE,CAAE,eAAe,EAAS,EAAQ,EAAO,CAAC,EAAU,CAAC,GAAG,EAAU,UAAU,GAAK,MAAM,KAAK,CAAC,GAAqB,CAAC,GAAG,CAAsC,EAAU,CAAC,KAAnC,MAAM,EAAQ,SAAS,EAAyB,KAAK,QAAQ,GAAK,UAAU,GAAM,MAAM,KAAK,OAAQ,EAAM,CAAkF,EAAU,CAAC,KAAK,KAAK,QAAQ,GAAK,UAAU,GAAM,MAArH,aAAiB,MAAM,EAAM,QAAQ,8BAA8F,CAAE,GAAqB,CAAE,SAAS,GAAU,EAAO,CAAC,EAAU,CAAC,KAAK,KAAK,QAAQ,GAAK,UAAU,GAAM,MAAM,KAAK,CAAC,GAAqB,CAAE,SAAS,EAAc,EAAS,CAA6B,OAA5B,EAAc,IAAI,EAAS,KAAW,EAAc,OAAO,EAAS,CAAE,SAAS,GAAqB,CAAC,EAAc,QAAQ,GAAU,GAAU,CAAC,CAAC,GAAkB,CAG5zB,SAAS,EAAkB,EAAS,CAAmK,OAA9J,EAAa,IAAI,EAAS,EAAE,EAAa,IAAI,EAAS,CAAC,SAAS,GAAM,MAAM,KAAK,CAAC,CAAM,EAAgB,IAAI,EAAS,EAAE,EAAgB,IAAI,EAAS,IAAI,IAAI,CAAS,EAAa,IAAI,EAAS,CAAE,SAAS,EAAgB,EAAS,EAAS,CAAC,EAAkB,EAAS,CAAC,IAAM,EAAI,EAAgB,IAAI,EAAS,CAAmB,OAAlB,EAAI,IAAI,EAAS,KAAW,EAAI,OAAO,EAAS,CAAE,SAAS,GAAa,EAAS,CAAC,IAAM,EAAU,EAAgB,IAAI,EAAS,CAAI,GAAW,EAAU,QAAQ,GAAU,GAAU,CAAC,CAAG,SAAS,GAAkB,CAAC,EAAgB,QAAQ,GAAW,CAAC,EAAU,QAAQ,GAAU,GAAU,CAAC,EAAG,CAAE,SAAS,EAAkB,EAAS,EAAQ,CAAC,IAAM,EAAM,EAAkB,EAAS,CAAC,OAAO,OAAO,EAAM,EAAQ,CAAC,GAAa,EAAS,CAAE,SAAS,EAAsB,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,EAAE,CAAC,GAAG,MAAM,QAAQ,EAAI,CAAE,OAAO,EAAI,OAAO,GAAM,OAAO,GAAO,SAAS,CAAE,GAAG,OAAO,GAAM,SAAU,GAAG,CAAC,IAAM,EAAO,KAAK,MAAM,EAAI,CAAC,GAAG,MAAM,QAAQ,EAAO,CAAE,OAAO,EAAO,OAAO,GAAM,OAAO,GAAO,SAAS,MAAe,EAAG,MAAM,EAAE,CAGtiC,eAAe,GAA+B,EAAS,EAAO,CAAuC,GAA5B,IAAS,QAAsB,OAAO,GAAW,UAAU,EAAS,MAAM,CAAC,SAAS,EAAE,OAAO,IAAM,EAAgB,EAAS,MAAM,CAAC,MAAM,GAAoB,CAAC,SAAS,EAAgB,MAAM,EAAwB,gBAAgB,YAAY,WAAW,EAAgB,wBAAwB,IAAS,aAAa,CAAC,KAAK,kBAAkB,SAAS,EAAgB,SAAO,CAAC,CAAC,CAAE,SAAS,GAA8B,EAAS,EAAO,CAAC,GAA+B,EAAS,EAAO,CAAC,MAAM,GAAO,CAAC,QAAQ,KAAK,0CAA0C,EAAM,EAAG,CAAE,eAAe,GAA0B,EAAS,EAAM,CAAuC,GAA5B,IAAS,QAAsB,OAAO,GAAW,UAAU,EAAS,MAAM,CAAC,SAAS,EAAE,OAAO,IAAM,EAAgB,EAAS,MAAM,CAAO,EAAM,EAAM,OAAO,EAAE,CAAC,aAAa,CAAC,EAAM,MAAM,EAAE,CAAC,MAAM,GAAoB,CAAC,SAAS,EAAgB,MAAM,GAAG,EAAwB,YAAY,KAAK,IAAQ,YAAY,WAAW,EAAM,qBAAqB,EAAgB,GAAG,aAAa,CAAC,KAAK,eAAe,SAAS,EAAgB,QAAM,CAAC,CAAC,CAAE,SAAS,GAAyB,EAAS,EAAM,CAAC,GAA0B,EAAS,EAAM,CAAC,MAAM,GAAO,CAAC,QAAQ,KAAK,gDAAgD,EAAM,EAAG,CAAE,eAAe,GAAoB,EAAQ,CAAC,IAAM,EAAK,EAAU,KAAK,GAAG,CAAC,EAAK,OAAO,IAAM,EAAW,GAAkB,EAAK,CAAC,GAAG,CAAC,EAAY,OAAQ,IAAM,EAAY,MAAM,IAAoC,CAAK,KAAqB,GAAG,CAAC,IAAM,EAAS,MAAM,MAAM,GAA4B,CAAC,OAAO,OAAO,QAAQ,CAAC,cAAc,UAAU,IAAc,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,MAAM,EAAQ,MAAM,YAAY,EAAQ,YAAY,aAAa,KAAK,UAAU,CAAC,GAAG,EAAQ,aAAa,WAAW,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,GAA4B,UAAU,EAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAS,GAAI,MAAU,MAAM,uCAAuC,EAAS,SAAS,OAAS,EAAM,CAAC,QAAQ,KAAK,qDAAqD,EAAM,EAAG,SAAS,GAAkB,EAAK,CAAC,GAAG,CAAC,EAAK,OAAO,KAAK,IAAM,EAAW,CAAC,EAAK,SAAS,IAAI,EAAK,WAAW,EAAK,eAAe,EAAK,gBAAgB,IAAI,CAAI,MAAM,QAAQ,EAAK,cAAc,EAAE,EAAK,cAAc,QAAQ,GAAY,CAAC,EAAW,KAAK,GAAY,SAAS,IAAI,EAAG,CAAK,MAAM,QAAQ,EAAK,cAAiB,EAAE,EAAK,cAAiB,QAAQ,GAAY,CAAC,EAAW,KAAK,GAAY,SAAS,IAAI,EAAG,CAAE,IAAI,IAAM,KAAa,EAAY,GAAG,OAAO,GAAY,SAAS,CAAC,IAAM,EAAQ,EAAU,MAAM,CAAC,GAAG,EAAQ,OAAO,EAAG,OAAO,EAAW,OAAO,KAAM,eAAe,IAAoC,CAAC,GAAU,IAAS,OAAa,OAAO,KAAM,IAAM,EAAO,EAAO,sBAAsB,GAAG,GAAQ,oBAAqB,GAAG,CAAC,IAAM,EAAY,MAAM,EAAO,oBAAoB,0BAA0B,CAAC,GAAG,OAAO,GAAc,UAAU,EAAY,MAAM,CAAC,OAAO,EAAG,OAAO,EAAa,GAAG,GAAa,OAAO,GAAc,UAAU,OAAO,EAAY,cAAe,SAAU,OAAO,EAAY,mBAAqB,EAAM,CAAC,QAAQ,KAAK,4DAA4D,EAAM,CAAG,IAAM,EAAY,EAAO,SAAS,aAAa,aAAgG,OAAhF,OAAO,GAAc,UAAU,EAAY,MAAM,CAAC,OAAO,EAAU,EAAoB,KAAM,SAAS,EAAkB,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,EAAE,CAAC,GAAG,OAAO,GAAM,UAAU,CAAC,MAAM,QAAQ,EAAI,CAAC,CAAC,IAAM,EAAO,EAAE,CAAmJ,OAAlJ,OAAO,QAAQ,EAAI,CAAC,SAAS,CAAC,EAAI,KAAS,CAAI,OAAO,GAAM,WAAW,IAAQ,UAAU,IAAQ,UAAU,IAAQ,UAAS,EAAO,GAAK,IAAS,CAAQ,EAAQ,GAAG,OAAO,GAAM,SAAU,GAAG,CAAC,IAAM,EAAO,KAAK,MAAM,EAAI,CAAC,GAAG,OAAO,GAAS,UAAU,CAAC,MAAM,QAAQ,EAAO,CAAC,CAAC,IAAM,EAAO,EAAE,CAAsJ,OAArJ,OAAO,QAAQ,EAAO,CAAC,SAAS,CAAC,EAAI,KAAS,CAAI,OAAO,GAAM,WAAW,IAAQ,UAAU,IAAQ,UAAU,IAAQ,UAAS,EAAO,GAAK,IAAS,CAAQ,QAAqB,EAAG,MAAM,EAAE,CAAE,SAAS,EAAe,EAAS,CAA8D,OAAhD,EAAkB,EAAU,MAAM,aAAa,CAAe,IAAW,KAAM,eAAe,GAAe,EAAS,EAAM,CAAC,IAAM,EAAK,EAAU,KAAW,EAAY,EAAkB,EAAS,CAAC,GAAG,CAAC,EAAK,CAAC,EAAkB,EAAS,CAAC,MAAM,2BAA2B,CAAC,CAAC,OAAQ,GAAG,EAAY,SAAU,OAAQ,IAAM,EAAc,EAAkB,EAAK,aAAa,CAC7xI,GADizI,EAAc,IAAW,QAClzI,EAAM,KAAK,EACnC,EAAc,CAAC,GAAG,EAAc,CAAI,IAAW,KAAM,OAAO,EAAc,GAAgB,EAAc,GAAU,EACxH,IAAM,EAAiB,IAAW,KAAW,EAAiB,EAAsB,EAAK,iBAAiB,CAAO,EAAoB,EAAiB,SAAS,EAAS,CAAK,EAAwB,EAAoB,GAAkB,CAAC,EAAqB,EAAwB,CAAC,GAAG,EAAiB,EAAS,CAAU,CAAC,GAAkB,IAAqB,EAAwB,EAAiB,OAAO,GAAI,IAAK,EAAS,EAAE,IAAM,EAA6B,IAAmB,EAA0B,EAAuB,GAAkB,CAAC,EACjiB,EAAoB,EAAK,aAAmB,EAAuB,EAAK,iBAAiB,EAAK,aAAa,KAAK,UAAU,EAAc,CAAI,IAA8B,EAAK,iBAAiB,KAAK,UAAU,EAAwB,EAAE,EAAkB,EAAS,CAAC,SAAS,GAAK,MAAM,KAAK,CAAC,CAAC,GAAqB,CAC3T,GAAG,CAAC,GAAG,OAAO,EAAK,QAAS,WAAY,MAAU,MAAM,0CAA0C,CAAE,IAAM,EAAc,CAAC,aAAa,KAAK,UAAU,EAAc,CAAC,CAAI,IAA8B,EAAc,iBAAiB,KAAK,UAAU,EAAwB,EAAE,MAAM,EAAK,OAAO,EAAc,CAAC,EAAkB,EAAS,CAAC,SAAS,GAAM,MAAM,KAAK,CAAC,CAAI,GAAwB,GAA8B,EAAS,QAAQ,CAAK,IAAW,MAAM,GAAyB,EAAS,EAAS,MAAe,CACjgB,EAAK,aAAa,EAAoB,EAAK,iBAAiB,EAAuB,EAAkB,EAAS,CAAC,SAAS,GAAM,MAAM,uBAAuB,CAAC,CAAC,GAAqB,EAAG,SAAS,EAAkB,EAAS,CAAC,IAAM,EAAY,EAAkB,EAAS,CAAM,CAAC,OAAK,UAAQ,YAAU,MAAM,GAAW,EAAoI,MAAM,CAAC,WAAS,WAAnH,EAAsB,GAAM,iBAAiB,CAAmC,SAAS,EAAS,CAA4B,SAAS,EAAY,SAAS,MAAM,EAAY,OAAO,EAAU,UAAQ,YAAU,QAAQ,CAAC,CAAC,EAAK,CAAE,eAAe,EAAmB,EAAS,EAAY,GAAK,EAAO,SAAS,CAAC,IAAM,EAAK,EAAU,KAAW,EAAY,EAAkB,EAAS,CAAC,GAAG,CAAC,EAAK,CAAC,EAAkB,EAAS,CAAC,MAAM,2BAA2B,CAAC,CAAC,OAAQ,GAAG,EAAY,SAAU,OAAQ,IAAM,EAAiB,EAAsB,EAAK,iBAAiB,CAAO,EAAoB,EAAiB,SAAS,EAAS,CAAO,EAAe,CAAC,EACx9B,GAAG,GAAqB,CAAC,EAAa,OACtC,IAAM,EAAe,GAAqB,EAAY,EAAiB,OAAO,GAAI,IAAK,EAAS,CAAC,CAAC,GAAG,EAAiB,EAAS,CACzH,EAAc,EAAK,iBAAiB,EAAK,iBAAiB,KAAK,UAAU,EAAe,CAAC,EAAkB,EAAS,CAAC,SAAS,GAAK,MAAM,KAAK,CAAC,CAAC,GAAqB,CAE3K,GAAG,CAAC,GAAG,OAAO,EAAK,QAAS,WAAY,MAAU,MAAM,0CAA0C,CAAE,MAAM,EAAK,OAAO,CAAC,iBAAiB,KAAK,UAAU,EAAe,CAAC,CAAC,CAAC,EAAkB,EAAS,CAAC,SAAS,GAAM,MAAM,KAAK,CAAC,CAAI,GAAgB,GAA8B,EAAS,EAAO,MAAe,CACjT,EAAK,iBAAiB,EAAc,EAAkB,EAAS,CAAC,SAAS,GAAM,MAAM,0BAA0B,CAAC,CAAC,GAAqB,EAGtI,SAAS,EAAwB,EAAQ,CAAC,GAAG,CAAC,EAAQ,OAAO,KAC7D,IAAM,EAAU,EAAQ,QAAQ,mBAAmB,CAAC,GAAG,GAAW,QAAQ,SAAU,OAAO,EAAU,QAAQ,SAC7G,IAAI,EAAc,EAAQ,cAAkB,EAAS,EAAE,KAAM,GAAe,EAAS,IAAG,CAAC,IAAM,EAAK,EAAc,cAAc,UAAU,CAAC,GAAG,GAAM,KAAM,GAAG,CAA8B,IAAM,EAAzB,IAAI,IAAI,EAAK,KAAK,CAAwB,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAO,EAAK,EAAa,EAAa,OAAO,GAAG,GAAG,GAAM,IAAO,YAAY,CAAC,EAAK,WAAW,IAAI,CAAE,OAAO,OAAe,EAC5W,EAAc,EAAc,cAAc,IAAY,OAAO,KAAM,SAAS,EAAgB,EAAW,CAAC,GAAG,GAAY,EAAW,MAAM,CAAC,OAAO,EAAG,OAAO,EAAW,MAAM,CAAE,GAAG,EAAa,UAAU,EAAa,SAAS,MAAM,CAAC,OAAO,EAAG,OAAO,EAAa,SAAS,MAAM,CAAE,GAAU,IAAS,OAAY,CAAC,IAAM,EAAW,EAAO,YAAY,EAAO,cAAc,EAAO,kBAAkB,SAAS,GAAG,OAAO,GAAa,UAAU,EAAW,MAAM,CAAC,OAAO,EAAG,OAAO,EAAW,MAAM,CAAE,IAAM,EAAS,SAAS,cAAc,mBAAmB,CAAC,GAAG,GAAU,aAAa,MAAM,CAAE,OAAO,EAAS,YAAY,MAAM,CAAE,IAAM,EAAa,EAAO,SAAS,SAAS,MAAM,IAAI,CAAC,IAAI,GAAS,EAAQ,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,GAAG,EAAa,OAAO,EAAE,CAAC,IAAI,EAAU,EAAa,EAAa,OAAO,GAAoG,GAA9F,IAAY,YAAY,EAAa,OAAO,IAAG,EAAU,EAAa,EAAa,OAAO,IAAO,GAAW,IAAY,WAAY,OAAO,GAAa,MAAM,WAOhqB,SAAgB,GAAqB,EAAM,CAA8P,OAA7P,MAAc,CAAC,EAAmB,EAAM,EAAG,CAAC,EAAM,SAAS,EAAM,0BAA0B,EAAM,4BAA4B,EAAM,wBAAwB,EAAM,0BAA0B,EAAM,yBAAyB,EAAM,2BAA2B,CAAC,CAAQ,KAGxkB,SAAgB,GAAyB,EAAM,CAC/C,GAAK,EAAE,GAAaA,EAAS,EAAE,CAAO,EAAYC,EAAO,IAAA,GAAU,CAAO,EAAeA,EAAO,IAAA,GAAU,CAC1G,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAC9C,MAAc,CAAC,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAwC,EAAY,EAApC,GAAiB,KAAgD,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,EAAE,CAAC,CACvN,IAAM,EAAS,GAAiB,CAAiD,CAAC,aAAW,WAAS,UAAQ,WAA9D,EAAkB,EAAS,CACxE,EAAY,UAAU,IAAA,IAAW,OAAO,EAAM,MAAO,WAAU,EAAY,QAAQ,EAAM,MAAS,EAAe,UAAU,IAAA,IAAW,OAAO,EAAM,SAAU,WAAU,EAAe,QAAQ,EAAM,SAAS,IAAM,EAAgB,EAAa,2BAA2B,EAAiB,0BAAgC,EAAkB,EAAa,6BAA6B,EAAe,QAAc,EAAc,EAAa,yBAAyB,EAAiB,wBAA8B,EAAgB,EAAa,2BAA2B,EAAY,SAAS,EAAiB,0BAAgC,EAAS,GAAU,CAAC,GAAS,EAAc,EAAQ,CAAC,GAAS,EAAQ,2BAA2B,EAAM,SAAS,EAAM,MAAM,MAAM,CAAC,QAAQ,EAAW,EAAgB,GAAmB,EAAM,QAAQ,KAAK,EAAW,EAAc,EAAgB,WAAS,UAAQ,MAAM,SAAS,CAAI,MACj5B,IAAG,CAAC,EAAQ,CAAC,EAAkB,EAAS,CAAC,MAAM,2BAA2B,CAAC,CAAC,OAAQ,MAAM,EAAmB,EAAS,GAAK,GACxH,CAAE,SAAgB,GAAsB,EAAM,CACjD,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAO,EAAeC,EAAO,IAAA,GAAU,CACtE,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAC9C,IAAM,EAAS,GAAiB,CAChC,MAAc,CAAC,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CACnJ,GAAK,CAAC,cAAlC,EAAkB,EAAS,CAA+B,EAAe,UAAU,IAAA,IAAW,OAAO,EAAM,SAAU,WAAU,EAAe,QAAQ,EAAM,SAAS,IAAM,EAAgB,EAAa,0BAA0B,EAAiB,yBAA+B,EAAkB,EAAa,4BAA4B,EAAe,QAAQ,MAAM,CAAC,QAAQ,EAAW,EAAgB,GAAmB,EAAM,QAAQ,CAAE,SAAgB,GAA+B,EAAM,CACrf,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAG,CAAO,EAAWC,EAAO,KAAK,CAAO,EAAeA,EAAO,IAAA,GAAU,CAC7I,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAC9C,MAAc,CACd,IAAM,EAAO,GAAO,UAAU,GAAO,WAAW,GAAO,KAAK,GAAG,EAAO,CAAC,EAAY,EAAO,CAAC,OAC3F,IAAM,EAAQ,EAAW,QAAQ,GAAG,EAAQ,CAAC,IAAM,EAAU,EAAQ,QAAQ,mBAAmB,CAAC,GAAG,GAAW,QAAQ,SAAS,CAAC,EAAY,EAAU,QAAQ,SAAS,CAAC,OACzK,IAAI,EAAc,EAAQ,cAAkB,EAAS,EAAE,KAAM,GAAe,EAAS,IAAG,CACxF,IAAM,EAAK,EAAc,cAAc,UAAU,CAAC,GAAG,GAAM,KAC3D,GAAG,CAA8B,IAAM,EAAzB,IAAI,IAAI,EAAK,KAAK,CAAwB,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAO,EAAK,EAAa,EAAa,OAAO,GAAG,GAAG,GAAM,IAAO,YAAY,CAAC,EAAK,WAAW,IAAI,CAAC,CAAC,EAAY,EAAK,CAAC,aAAiB,EAC/N,EAAc,EAAc,cAAc,KAC5C,EAAY,GAAG,EAAG,CAAC,EAAM,CAAC,CAC1B,MAAc,CAAC,GAAG,CAAC,EAAS,OAAO,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CAC9G,GAAK,CAAC,aAAW,UAAQ,aAA9G,EAAS,EAAkB,EAAS,CAAC,CAAC,WAAW,GAAM,QAAQ,GAAM,UAAU,GAAK,CAAoD,EAAa,EAAS,EAAe,EAAS,CAAC,KAAQ,EAAe,UAAU,IAAA,IAAW,OAAO,GAAO,SAAU,WAAU,EAAe,QAAQ,EAAM,SAAS,IAAM,EAAgB,EAAa,EAAa,OAAO,EAAE,CAAC,aAAa,CAAC,EAAa,MAAM,EAAE,CAAC,EAAa,0BAA0B,EAAe,SAAS,GAAO,QAAc,EAAQ,IAAa,GAAS,CAAC,GAAiB,EAAU,GAAO,OAAO,EAAE,CAAO,EAAa,EAAQ,GAAW,SAAS,IAAA,GAAU,OAAO,MAAM,CAAC,IAAI,EAAW,UAAQ,QAAQ,EAAQ,EAAgB,GAAO,QAAQ,MAAM,CAAC,GAAG,EAAU,QAAQ,EAAa,CAAC,CAAE,SAAgB,GAAoB,EAAM,CAAC,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAG,CAAO,EAAWC,EAAO,KAAK,CAAO,EAAeA,EAAO,IAAA,GAAU,CAAC,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAAC,MAAc,CAAC,IAAM,EAAO,GAAO,UAAU,GAAO,WAAW,GAAO,KAAK,GAAG,EAAO,CAAC,EAAY,EAAO,CAAC,OAAQ,IAAM,EAAQ,EAAW,QAAQ,GAAG,EAAQ,CAAC,IAAM,EAAU,EAAQ,QAAQ,mBAAmB,CAAC,GAAG,GAAW,QAAQ,SAAS,CAAC,EAAY,EAAU,QAAQ,SAAS,CAAC,OAAQ,IAAI,EAAc,EAAQ,cAAkB,EAAS,EAAE,KAAM,GAAe,EAAS,IAAG,CAAC,IAAM,EAAK,EAAc,cAAc,UAAU,CAAC,GAAG,GAAM,KAAM,GAAG,CAA8B,IAAM,EAAzB,IAAI,IAAI,EAAK,KAAK,CAAwB,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAO,EAAK,EAAa,EAAa,OAAO,GAAG,GAAG,GAAM,IAAO,YAAY,CAAC,EAAK,WAAW,IAAI,CAAC,CAAC,EAAY,EAAK,CAAC,aAAiB,EACpnD,EAAc,EAAc,cAAc,KAAa,EAAY,GAAG,EAAG,CAAC,EAAM,CAAC,CAAC,MAAc,CAAC,GAAG,CAAC,EAAS,OAAO,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CAAqG,GAAK,CAAC,cAA3F,EAAS,EAAkB,EAAS,CAAC,CAAC,WAAW,GAAM,QAAQ,GAAM,UAAU,GAAK,CAAkC,EAAa,EAAS,EAAe,EAAS,CAAC,KAAQ,EAAe,UAAU,IAAA,IAAW,OAAO,GAAO,SAAU,WAAU,EAAe,QAAQ,EAAM,SAAS,IAAM,EAAa,EAAa,EAAa,OAAO,EAAE,CAAC,aAAa,CAAC,EAAa,MAAM,EAAE,CAAC,EAAa,0BAA0B,EAAe,SAAS,GAAO,QAAc,EAAgB,EAAe,SAAS,GAAO,QAA8D,MAAM,CAAC,IAAI,EAAW,QAA9D,EAAW,EAAa,EAA8C,MAAM,GAAO,MAAM,CAAE,SAAgB,GAAiC,EAAM,CACr9B,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAG,CAAO,EAAWC,EAAO,KAAK,CACtG,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAC9C,MAAc,CACd,IAAM,EAAO,GAAO,UAAU,GAAO,WAAW,GAAO,KAAK,GAAG,EAAO,CAAC,EAAY,EAAO,CAAC,OAC3F,IAAM,EAAQ,EAAW,QAAQ,GAAG,EAAQ,CAAC,IAAM,EAAU,EAAQ,QAAQ,mBAAmB,CAAC,GAAG,GAAW,QAAQ,SAAS,CAAC,EAAY,EAAU,QAAQ,SAAS,CAAC,OACzK,IAAI,EAAc,EAAQ,cAAkB,EAAS,EAAE,KAAM,GAAe,EAAS,IAAG,CACxF,IAAM,EAAK,EAAc,cAAc,UAAU,CAAC,GAAG,GAAM,KAC3D,GAAG,CAA8B,IAAM,EAAzB,IAAI,IAAI,EAAK,KAAK,CAAwB,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,CAAO,EAAK,EAAa,EAAa,OAAO,GAAG,GAAG,GAAM,IAAO,YAAY,CAAC,EAAK,WAAW,IAAI,CAAC,CAAC,EAAY,EAAK,CAAC,aAAiB,EAC/N,EAAc,EAAc,cAAc,KAC5C,EAAY,GAAG,EAAG,CAAC,EAAM,CAAC,CAC1B,MAAc,CAAC,GAAG,CAAC,EAAS,OAAO,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CAC9G,GAAK,CAAC,aAAW,UAAQ,aAA9G,EAAS,EAAkB,EAAS,CAAC,CAAC,WAAW,GAAM,QAAQ,GAAM,UAAU,GAAK,CAAoD,EAAQ,CAAC,IAAa,GAAS,CAAC,GAAiB,EAAU,GAAO,OAAO,EAAE,CAAO,EAAa,EAAQ,GAAW,SAAS,IAAA,GAAU,OAAO,MAAM,CAAC,IAAI,EAAW,UAAQ,MAAM,CAAC,GAAG,EAAU,QAAQ,EAAa,CAAC,CAAE,SAAS,EAAoB,EAAM,CAAC,GAAG,CAAC,EAAM,OAAiB,IAAM,EAAQ,EAAM,MAAM,CAAK,KAA+G,MAAnF,YAAY,KAAK,EAAQ,EAAmB,EAAQ,WAAW,IAAI,CAAQ,EAAc,IAAI,IAAW,SAAS,GAAoB,EAAK,CAAC,GAAG,CAAC,EAAK,OAA8D,IAAM,EAAvC,EAAK,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,GAAwB,MAAM,IAAI,CAAC,OAAO,QAAQ,CAA4C,OAAhC,EAAS,EAAS,OAAO,IAAoB,IAAA,GAAW,SAAS,EAAiB,EAAK,EAAO,CAAC,GAAG,CAAC,EAAK,OAAO,KAAK,IAAM,EAAQ,OAAO,IAAO,GAAG,EAAO,QAAS,SAAS,EAAK,GAAG,EAAO,OAAO,MAAM,CAAC,GAAS,EAAQ,OAAO,IAAO,GAAG,EAAO,QAAS,SAAS,EAAK,GAAG,EAAO,OAAO,MAAM,CAAC,GAAS,EAAS,OAAO,IAAO,GAAG,EAAO,SAAU,SAAS,EAAK,GAAG,EAAO,QAAQ,MAAM,CAAC,GAAS,EAAe,EAAoB,GAAS,EAAQ,CAAO,EAAY,GAAS,GAAoB,EAAe,CAA2D,MAAvD,CAAC,GAAgB,CAAC,GAAU,CAAC,EAAoB,KAAY,CAAC,KAAK,GAAgB,IAAA,GAAU,MAAM,GAAU,IAAA,GAAU,KAAK,GAAa,IAAA,GAAU,CAAE,SAAS,GAAmB,CAAC,OAAO,EAAiB,EAAU,KAAK,aAAa,CAAE,SAAS,GAAyB,CAAC,OAAO,EAAiB,EAAU,KAAK,mBAAmB,CAAE,SAAS,EAAc,EAAO,CAAC,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAwH,OAAvH,MAAc,CAAC,GAAyB,CAAC,IAAM,EAAM,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAO,GAAK,EAAE,CAAC,CAAQ,GAAQ,CAAE,SAAgB,GAAe,EAAM,CAAC,IAAM,EAAK,EAAc,EAAkB,CAAO,EAAK,EAAoB,GAAM,MAAM,GAAM,KAAK,CAAO,EAAQ,EAAQ,EAAM,MAAM,CAAC,KAAK,GAAM,EAAM,KAAK,UAAQ,MAAM,CAAC,GAAG,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAQ,EAAM,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAE,SAAgB,GAAgB,EAAM,CAAC,IAAM,EAAK,EAAc,EAAkB,CAAO,EAAK,GAAM,OAAO,GAAM,MAAM,EAAM,MAAM,GAAS,EAAQ,GAAQ,IAAO,EAAK,OAAO,EAAK,OAAO,MAAM,CAAC,OAAK,UAAQ,MAAM,CAAC,GAAG,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAQ,EAAM,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAE,SAAgB,GAAqB,EAAM,CAAC,IAAM,EAAK,EAAc,EAAwB,CAAO,EAAK,EAAoB,GAAM,MAAM,GAAM,KAAK,CAAO,EAAQ,EAAQ,EAAM,MAAM,CAAC,KAAK,GAAM,EAAM,KAAK,UAAQ,MAAM,CAAC,GAAG,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAQ,EAAM,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAE,SAAgB,GAAsB,EAAM,CAAC,IAAM,EAAK,EAAc,EAAwB,CAAO,EAAK,GAAM,OAAO,GAAM,MAAM,EAAM,MAAM,GAAS,EAAQ,GAAQ,IAAO,EAAK,OAAO,EAAK,OAAO,MAAM,CAAC,OAAK,UAAQ,MAAM,CAAC,GAAG,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAQ,EAAM,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAE,SAAgB,GAAmB,EAAM,CAAC,IAAM,EAAK,EAAc,EAAkB,CAAO,EAAQ,GAAQ,IAAO,EAAK,MAAM,EAAK,MAAM,EAAK,QAAQ,MAAM,CAAC,UAAQ,MAAM,CAAC,GAAG,GAAO,OAAO,EAAE,CAAC,QAAQ,EAAQ,GAAO,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAE,SAAgB,GAAyB,EAAM,CAAC,IAAM,EAAK,EAAc,EAAwB,CAAO,EAAQ,GAAQ,IAAO,EAAK,MAAM,EAAK,MAAM,EAAK,QAAQ,MAAM,CAAC,UAAQ,MAAM,CAAC,GAAG,GAAO,OAAO,EAAE,CAAC,QAAQ,EAAQ,GAAO,OAAO,SAAS,IAAA,GAAU,OAAO,CAAC,CAAgR,SAAgB,GAAwB,EAAM,CACttH,GAAK,EAAE,GAAaA,EAAS,EAAE,CAAO,EAAYC,EAAO,IAAA,GAAU,CAAC,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAAC,IAAM,EAAS,GAAiB,CACnJ,MAAc,CAAC,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CAC9L,IAAM,EAAS,EAAkB,EAAS,CAAmG,OAA/F,EAAY,UAAU,IAAA,IAAW,OAAO,EAAM,MAAO,WAAU,EAAY,QAAQ,EAAM,MAAY,CAAC,KAAK,EAAS,OAAO,EAAY,SAAS,GAAG,QAAQ,EAAQ,EAAS,MAAO,MAAM,CAAC,QAAQ,EAAS,MAAM,IAAA,GAAU,OAAO,CAAC,CAIjR,SAAgB,GAAc,EAAM,CAAC,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAG,CAAO,EAAWC,EAAO,KAAK,CAAO,EAAeA,EAAO,IAAA,GAAU,CAAC,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CACjO,MAAc,CACd,IAAM,EAAO,GAAO,UAAU,GAAO,WAAW,GAAO,KAAK,GAAG,EAAO,CAAC,EAAY,EAAO,CAAC,OAC3F,IAAM,EAAW,GAAiB,CAAC,GAAG,GAAY,IAAa,WAAW,CAAC,EAAY,EAAW,CAAC,OACnG,IAAM,EAAY,EAAwB,EAAW,QAAQ,CAAC,GAAG,EAAY,CAAC,EAAY,EAAY,CAAC,OACvG,EAAY,EAAW,EAAG,CAAC,EAAM,CAAC,CAClC,MAAc,CAAC,GAAG,CAAC,EAAS,OAAO,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CAClN,IAAM,EAAa,EAAS,EAAe,EAAS,CAAC,KAGd,OAFpC,EAAe,UAAU,IAAA,IAAW,OAAO,EAAM,SAAU,WAAU,EAAe,QAAQ,EAAM,SAExD,CAAC,IAAI,EAAW,QAD/C,EAAa,EAAa,OAAO,EAAE,CAAC,aAAa,CAAC,EAAa,MAAM,EAAE,CACpF,EAAe,SAAS,EAAM,QAAsC,CACrE,SAAS,EAAe,EAAU,EAAM,CAAC,GAAK,EAAE,GAAaD,EAAS,EAAE,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAG,CAAO,EAAWC,EAAO,KAAK,CAAC,MAAc,CAAC,GAAyB,EAAG,EAAE,CAAC,CAC9L,MAAc,CACd,IAAM,EAAO,GAAO,UAAU,GAAO,WAAW,GAAO,KAAK,GAAG,EAAO,CAAC,EAAY,EAAO,CAAC,OAC3F,IAAM,EAAW,GAAiB,CAAC,GAAG,GAAY,IAAa,WAAW,CAAC,EAAY,EAAW,CAAC,OACnG,IAAM,EAAY,EAAwB,EAAW,QAAQ,CAAC,GAAG,EAAY,CAAC,EAAY,EAAY,CAAC,OACvG,EAAY,EAAW,EAAG,CAAC,EAAM,CAAC,CAClC,MAAc,CAAC,GAAG,CAAC,EAAS,OAAO,IAAM,EAAU,MAAkB,EAAY,GAAG,EAAE,EAAE,CAAC,CAAO,EAAY,EAAgB,MAAa,EAAY,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAW,CAAC,GAAa,GAAK,CAAC,EAAS,CAAC,CACjH,GAAK,CAAC,WAAS,UAAQ,WAAzG,EAAS,EAAkB,EAAS,CAAC,CAAC,SAAS,GAAM,QAAQ,GAAM,QAAQ,GAAM,CAA4Q,MAAM,CAAC,aAAW,SAArO,GAAU,CAAC,GAAS,EAA0N,UAAlM,SAAS,CAAI,QAAU,CAAC,GAAgB,IAAG,CAAC,EAAQ,CAAC,EAAkB,EAAS,CAAC,MAAM,2BAA2B,CAAC,CAAC,OAAQ,MAAM,GAAe,EAAS,EAAU,GAAwC,CAAE,SAAgB,GAAkB,EAAM,CAAC,GAAK,CAAC,aAAW,WAAS,aAAW,EAAe,SAAS,EAAM,CAAC,MAAM,CAAC,IAAI,EAAW,WAAS,MAAM,EAAU,CAAE,SAAgB,GAAkB,EAAM,CAAC,GAAK,CAAC,aAAW,WAAS,aAAW,EAAe,SAAS,EAAM,CAAC,MAAM,CAAC,IAAI,EAAW,WAAS,MAAM,EAAU,CAAE,SAAgB,GAAgB,EAAM,CAAC,GAAK,CAAC,aAAW,WAAS,aAAW,EAAe,OAAO,EAAM,CAAC,MAAM,CAAC,IAAI,EAAW,WAAS,MAAM,EAAU,CAAqJ,SAAgB,EAA6B,EAAE,CAAC,MAAO,KAAQ,EAA+BC,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAyB,EAAM,CAAC,CAAC,EAAwE,SAAgB,GAA0B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAsB,EAAM,CAAC,CAAC,EAAkE,SAAgB,EAAmC,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAA+B,EAAM,CAAC,CAAC,EAAoF,SAAgB,EAAwB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAoB,EAAM,CAAC,CAAC,EAA8D,SAAgB,GAAqC,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAiC,EAAM,CAAC,CAAC,EAAwF,SAAgB,EAAmB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAe,EAAM,CAAC,CAAC,EAAoD,SAAgB,EAAoB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAgB,EAAM,CAAC,CAAC,EAAsD,SAAgB,GAAyB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAqB,EAAM,CAAC,CAAC,EAAgE,SAAgB,EAA0B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAsB,EAAM,CAAC,CAAC,EAAkE,SAAgB,EAAuB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAmB,EAAM,CAAC,CAAC,EAA4D,SAAgB,GAA6B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAyB,EAAM,CAAC,CAAC,EAAwE,SAAgB,GAA4B,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAwB,EAAM,CAAC,CAAC,EAAsE,SAAgB,GAAkB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAc,EAAM,CAAC,CAAC,EAAkD,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAsB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAkB,EAAM,CAAC,CAAC,EAA0D,SAAgB,GAAoB,EAAE,CAAC,MAAO,KAAQ,EAA+BD,EAAwC,CAAQC,EAAK,EAAE,CAAC,GAAG,EAAM,GAAG,GAAgB,EAAM,CAAC,CAAC,mDAhHv1J,IAAiE,IACxD,CAAM,EAAgB,CAAC,0BAA0B,WAAW,wBAAwB,YAAY,0BAA0B,mBAAmB,yBAAyB,WAAW,CAAK,EAAa,CAAC,GAAG,EAAgB,CAAO,EAAiB,CAAC,0BAA0B,EAAgB,2BAA2B,WAAW,wBAAwB,EAAgB,yBAAyB,YAAY,0BAA0B,EAAgB,2BAA2B,mBAAmB,yBAAyB,EAAgB,0BAA0B,WAAW,CAAK,GAAc,EAAQ,EAAa,IAAI,IAAU,EAAgB,IAAI,IAAkE,GAA4B,4EAAmE,GAA4B,EAAQ,EAAwB,CAAC,gBAAgB,mBAAmB,YAAY,eAAe,CAAK,EAAU,CAAC,KAAK,KAAK,QAAQ,GAAM,UAAU,GAAM,MAAM,KAAK,CAAK,EAAgB,GAAY,EAAc,IAAI,IA8Crf,EAAoB,GAAqB,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,YAAY,iBAAiB,CAAC,0BAA0B,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,YAAY,EAAiB,0BAA0B,CAAC,4BAA4B,CAAC,KAAK,EAAY,OAAO,MAAM,qBAAqB,YAAY,yBAAyB,CAAC,wBAAwB,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,YAAY,EAAiB,wBAAwB,CAAC,0BAA0B,CAAC,KAAK,EAAY,OAAO,MAAM,oBAAoB,YAAY,EAAiB,0BAA0B,CAAC,yBAAyB,CAAC,KAAK,EAAY,OAAO,MAAM,sBAAsB,YAAY,EAAiB,yBAAyB,CAAC,2BAA2B,CAAC,KAAK,EAAY,OAAO,MAAM,wBAAwB,YAAY,yBAAyB,CAAC,CAAC,CAiEnQ,EAA6B,YAAY,2BAA4N,GAA0B,YAAY,wBAA2O,EAAmC,YAAY,iCAA8N,EAAwB,YAAY,sBAA6O,GAAqC,YAAY,mCAAsN,EAAmB,YAAY,iBAAsM,EAAoB,YAAY,kBAAiN,GAAyB,YAAY,uBAAwN,EAA0B,YAAY,wBAAmN,EAAuB,YAAY,qBAA4N,GAA6B,YAAY,2BAAgO,GAA4B,YAAY,0BAA2M,GAAkB,YAAY,gBAAyM,GAAsB,YAAY,oBAA6M,GAAsB,YAAY,oBAAyM,GAAoB,YAAY"}