{"version":3,"file":"Line_Draw_SVG.l8krTkTy.mjs","names":["useRef","useMemo","useCallback","__esmMin","pe","init_npm_react_18_3_1","window","ce","ne","de","init_ssg_sandbox_shims","useMotionValue","useMotionValueEvent","useSpring","init_framer_motion_DhsWWWsN","addPropertyControls","init_framer_DcxuU94H","ControlType","useIsStaticRenderer","LineDrawSVG","props","isStaticRenderer","hostRef","drawableRef","maxProgressRef","hasAppearedRef","rawProgress","springConfig","clamped","smoothness","smoothProgress","easingFunction","t","appearEasing","springy","applyProgress","progress","value","item","drawPhase","fillPhase","clampedFillPhase","setupSvgElements","svg","scaleMode","element","node","geometry","strokeAttr","inlineStyleStroke","hasExplicitStroke","computedStyle","computedStroke","computedStrokeWidth","computedFill","attrStrokeWidth","attrWidthValue","baseStrokeWidth","length","isStrokeDrawable","canCreateSyntheticStroke","fillUsable","overrideStrokeColor","strokeWidthMultiplier","syntheticStrokeColor","svgMarkup","host","animationTrigger","appearRafId","animationStart","safeAppearDurationMs","appearDuration","animateAppearProgress","timestamp","elapsed","linearT","observer","entry","entries","getScrollTarget","cleanId","scrollSectionId","target","rafId","pending","isActive","computeProgress","rect","viewportHeight","denominator","mappedProgress","scrollSectionDuration","clampedProgress","scheduleCompute","onScrollOrResize","current","latest","effectiveProgress","reverseOnScroll","style","placeholderTextColor","placeholderFont","placeholderText","init_Line_Draw_SVG","init_jsx_runtime"],"sources":["https:/framerusercontent.com/modules/VTbnfgbFSna4agItpfMu/VEcBHWZvyI5UlaRUxyTf/Line_Draw_SVG.js"],"sourcesContent":["// User request: add appear-mode animation controls (appearDuration and appearEasing) while preserving existing section-scroll functionality and all current controls/behavior.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useMotionValue,useMotionValueEvent,useSpring}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function LineDrawSVG(props){const{svgMarkup,overrideStrokeColor,strokeWidthMultiplier,smoothness,reverseOnScroll,animationTrigger,appearDuration,appearEasing,scaleMode,scrollSectionId,scrollSectionDuration,placeholderText,placeholderTextColor,placeholderFont,style}=props;const isStaticRenderer=useIsStaticRenderer();const hostRef=useRef(null);const drawableRef=useRef([]);const maxProgressRef=useRef(0);const hasAppearedRef=useRef(false);const rawProgress=useMotionValue(0);const springConfig=useMemo(()=>{const clamped=Math.max(0,Math.min(100,smoothness));return{stiffness:700-clamped*5.5,damping:20+clamped*.35,mass:.6+clamped*.005};},[smoothness]);const smoothProgress=useSpring(rawProgress,springConfig);const easingFunction=useCallback(t=>{const clamped=Math.max(0,Math.min(1,t));if(appearEasing===\"linear\")return clamped;if(appearEasing===\"easeIn\")return clamped*clamped*clamped;if(appearEasing===\"easeOut\")return 1-Math.pow(1-clamped,3);if(appearEasing===\"easeInOut\"){return clamped<.5?4*clamped*clamped*clamped:1-Math.pow(-2*clamped+2,3)/2;}const springy=1-Math.exp(-6*clamped)*Math.cos(10*clamped);return Math.max(0,Math.min(1,springy));},[appearEasing]);const applyProgress=useCallback(value=>{const progress=Math.max(0,Math.min(1,value));for(const item of drawableRef.current){if(item.mode===\"nativeStroke\"&&item.length>0){item.element.style.strokeDashoffset=`${item.length*(1-progress)}`;item.element.style.opacity=\"1\";}else if(item.mode===\"syntheticFillStroke\"&&item.length>0){const drawPhase=Math.min(progress/.8,1);const fillPhase=progress<=.8?0:(progress-.8)/.2;const clampedFillPhase=Math.max(0,Math.min(1,fillPhase));item.element.style.strokeDashoffset=`${item.length*(1-drawPhase)}`;item.element.style.fillOpacity=`${clampedFillPhase}`;item.element.style.strokeOpacity=`${1-clampedFillPhase}`;item.element.style.opacity=\"1\";}else{item.element.style.opacity=`${progress}`;}}},[]);const setupSvgElements=useCallback(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(!hostRef.current)return;const svg=hostRef.current.querySelector(\"svg\");drawableRef.current=[];maxProgressRef.current=0;if(!svg)return;svg.setAttribute(\"width\",\"100%\");svg.setAttribute(\"height\",\"100%\");svg.setAttribute(\"preserveAspectRatio\",scaleMode===\"fill\"?\"none\":\"xMidYMid meet\");const drawableNodes=svg.querySelectorAll(\"path, line, polyline, polygon, circle, ellipse, rect\");drawableNodes.forEach(node=>{const element=node;const geometry=node;const strokeAttr=element.getAttribute(\"stroke\");const inlineStyleStroke=element.style.stroke;const hasExplicitStroke=strokeAttr!==null&&strokeAttr!==\"\"||inlineStyleStroke!==undefined&&inlineStyleStroke!==\"\";const computedStyle=window.getComputedStyle(element);const computedStroke=computedStyle.stroke;const computedStrokeWidth=Number.parseFloat(computedStyle.strokeWidth);const computedFill=computedStyle.fill;const attrStrokeWidth=element.getAttribute(\"stroke-width\");const attrWidthValue=attrStrokeWidth!==null?Number.parseFloat(attrStrokeWidth):NaN;const baseStrokeWidth=Number.isFinite(attrWidthValue)&&attrWidthValue>0?attrWidthValue:Number.isFinite(computedStrokeWidth)&&computedStrokeWidth>0?computedStrokeWidth:3;let length=0;if(typeof geometry.getTotalLength===\"function\"){try{length=geometry.getTotalLength();}catch{length=0;}}const isStrokeDrawable=length>0&&computedStroke!==\"none\"&&computedStrokeWidth>0&&Number.isFinite(computedStrokeWidth);const canCreateSyntheticStroke=length>0&&!isStrokeDrawable;const fillUsable=computedFill!==\"none\"&&computedFill!==\"transparent\"&&computedFill!==\"rgba(0, 0, 0, 0)\";if(isStrokeDrawable){if(overrideStrokeColor&&!hasExplicitStroke){element.style.stroke=overrideStrokeColor;}element.style.strokeWidth=`${baseStrokeWidth*strokeWidthMultiplier}`;element.style.strokeDasharray=`${length}`;element.style.strokeDashoffset=`${length}`;element.style.willChange=\"stroke-dashoffset\";element.style.opacity=\"1\";drawableRef.current.push({element,length,mode:\"nativeStroke\"});}else if(canCreateSyntheticStroke&&fillUsable){const syntheticStrokeColor=overrideStrokeColor||computedFill;element.style.fill=computedFill;element.style.fillOpacity=\"0\";element.style.stroke=syntheticStrokeColor;element.style.strokeWidth=`${baseStrokeWidth*strokeWidthMultiplier}`;element.style.strokeLinecap=\"round\";element.style.strokeLinejoin=\"round\";element.style.strokeOpacity=\"1\";element.style.strokeDasharray=`${length}`;element.style.strokeDashoffset=`${length}`;element.style.willChange=\"stroke-dashoffset, fill-opacity, stroke-opacity\";element.style.opacity=\"1\";drawableRef.current.push({element,length,mode:\"syntheticFillStroke\",fillColor:computedFill});}else{element.style.opacity=\"0\";element.style.willChange=\"opacity\";drawableRef.current.push({element,length,mode:\"fallbackOpacity\"});}});applyProgress(isStaticRenderer?1:0);},[applyProgress,isStaticRenderer,overrideStrokeColor,scaleMode,strokeWidthMultiplier]);useEffect(()=>{setupSvgElements();},[setupSvgElements,svgMarkup]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(!hostRef.current)return;if(isStaticRenderer)return;const host=hostRef.current;if(animationTrigger===\"appear\"){rawProgress.set(hasAppearedRef.current?1:0);let appearRafId=0;let animationStart=0;const safeAppearDurationMs=Math.max(100,Math.min(1e4,appearDuration*1e3));const animateAppearProgress=timestamp=>{if(!animationStart){animationStart=timestamp;}const elapsed=timestamp-animationStart;const linearT=Math.max(0,Math.min(1,elapsed/safeAppearDurationMs));rawProgress.set(easingFunction(linearT));if(linearT<1){appearRafId=window.requestAnimationFrame(animateAppearProgress);}else{rawProgress.set(1);}};const observer=new window.IntersectionObserver(entries=>{const entry=entries[0];if(!entry||hasAppearedRef.current)return;if(!entry.isIntersecting)return;hasAppearedRef.current=true;animationStart=0;if(appearRafId){window.cancelAnimationFrame(appearRafId);}appearRafId=window.requestAnimationFrame(animateAppearProgress);observer.disconnect();},{root:null,threshold:0});observer.observe(host);return()=>{observer.disconnect();if(appearRafId){window.cancelAnimationFrame(appearRafId);}};}const getScrollTarget=()=>{const cleanId=scrollSectionId.trim();if(cleanId.length>0){const target=document.getElementById(cleanId);if(target)return target;}return host;};let rafId=0;let pending=false;let isActive=false;const computeProgress=()=>{pending=false;if(!host)return;const target=getScrollTarget();const rect=target.getBoundingClientRect();const viewportHeight=window.innerHeight||document.documentElement.clientHeight||1;const denominator=Math.max(1,viewportHeight+Math.max(1,rect.height));const baseProgress=(viewportHeight-rect.top)/denominator;const safeDuration=Math.max(.01,Math.min(1,scrollSectionDuration));const mappedProgress=baseProgress/safeDuration;const clampedProgress=Math.max(0,Math.min(1,mappedProgress));rawProgress.set(clampedProgress);};const scheduleCompute=()=>{if(!isActive||pending)return;pending=true;rafId=window.requestAnimationFrame(computeProgress);};const onScrollOrResize=()=>{scheduleCompute();};const observer=new window.IntersectionObserver(entries=>{const entry=entries[0];if(!entry)return;isActive=entry.isIntersecting;if(isActive){scheduleCompute();}},{root:null,rootMargin:\"20% 0px 20% 0px\",threshold:0});observer.observe(getScrollTarget());window.addEventListener(\"scroll\",onScrollOrResize,{passive:true});window.addEventListener(\"resize\",onScrollOrResize);isActive=true;scheduleCompute();return()=>{isActive=false;window.removeEventListener(\"scroll\",onScrollOrResize);window.removeEventListener(\"resize\",onScrollOrResize);observer.disconnect();if(rafId){window.cancelAnimationFrame(rafId);}};},[animationTrigger,appearDuration,appearEasing,easingFunction,isStaticRenderer,rawProgress,scrollSectionDuration,scrollSectionId,svgMarkup]);useMotionValueEvent(smoothProgress,\"change\",latest=>{if(isStaticRenderer)return;const current=Math.max(0,Math.min(1,latest));const effectiveProgress=reverseOnScroll?current:Math.max(maxProgressRef.current,current);if(!reverseOnScroll){maxProgressRef.current=effectiveProgress;}applyProgress(effectiveProgress);});const hasSvg=useMemo(()=>svgMarkup.trim().length>0,[svgMarkup]);if(!hasSvg){return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\",color:placeholderTextColor,fontFamily:placeholderFont.fontFamily,fontSize:placeholderFont.fontSize,fontWeight:placeholderFont.fontWeight,fontStyle:placeholderFont.fontStyle,lineHeight:placeholderFont.lineHeight,letterSpacing:placeholderFont.letterSpacing,textAlign:placeholderFont.textAlign,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"span\",{style:{width:\"max-content\",maxWidth:\"100%\"},children:placeholderText})});}return /*#__PURE__*/_jsx(\"div\",{ref:hostRef,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},\"aria-label\":\"Scroll reactive line drawing SVG\",children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\"},dangerouslySetInnerHTML:{__html:svgMarkup}})});}addPropertyControls(LineDrawSVG,{svgMarkup:{type:ControlType.String,title:\"SVG Markup\",displayTextArea:true,defaultValue:\"\",placeholder:\"<svg viewBox='0 0 100 100'>...</svg>\"},overrideStrokeColor:{type:ControlType.Color,title:\"Override Stroke\",optional:true,defaultValue:\"#000000\"},strokeWidthMultiplier:{type:ControlType.Number,title:\"Stroke Width \\xd7\",defaultValue:1,min:.1,max:12,step:.1},smoothness:{type:ControlType.Number,title:\"Smoothness\",defaultValue:50,min:0,max:100,step:1},reverseOnScroll:{type:ControlType.Boolean,title:\"Reverse\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},animationTrigger:{type:ControlType.Enum,title:\"Animation Trigger\",options:[\"section\",\"appear\"],optionTitles:[\"Section Scroll\",\"On Appear\"],defaultValue:\"section\",displaySegmentedControl:true},appearDuration:{type:ControlType.Number,title:\"Appear Duration\",min:.1,max:10,defaultValue:1.2,step:.1,hidden:props=>props.animationTrigger!==\"appear\"},appearEasing:{type:ControlType.Enum,title:\"Appear Easing\",options:[\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\",\"spring\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In Out\",\"Spring\"],defaultValue:\"easeOut\",hidden:props=>props.animationTrigger!==\"appear\"},scaleMode:{type:ControlType.Enum,title:\"Scale Mode\",options:[\"contain\",\"fill\"],optionTitles:[\"Contain\",\"Fill\"],defaultValue:\"contain\",displaySegmentedControl:true},scrollSectionId:{type:ControlType.String,title:\"Section ID\",defaultValue:\"\",placeholder:\"about-section\",hidden:props=>props.animationTrigger!==\"section\"},scrollSectionDuration:{type:ControlType.Number,title:\"Section Duration\",min:.01,max:1,defaultValue:1,step:.01,displayStepper:false,hidden:props=>props.animationTrigger!==\"section\"},placeholderText:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Paste SVG markup to animate line drawing on scroll.\"},placeholderTextColor:{type:ControlType.Color,title:\"Placeholder Color\",defaultValue:\"#000000\"},placeholderFont:{type:ControlType.Font,title:\"Placeholder Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LineDrawSVG\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Line_Draw_SVG.map"],"mappings":"A,0QAIG,SAAwBmB,EAAY,EAAM,CAAC,GAAK,CAAC,YAAU,sBAAoB,wBAAsB,aAAW,kBAAgB,mBAAiB,iBAAe,eAAa,YAAU,kBAAgB,wBAAsB,kBAAgB,uBAAqB,kBAAgB,SAAOC,EAAYC,EAAiBH,EAAoB,EAAQI,EAAQtB,EAAO,IAAI,EAAQuB,EAAYvB,EAAO,CAAC,CAAC,EAAQwB,EAAexB,EAAO,CAAC,EAAQyB,EAAezB,EAAO,EAAK,EAAQ0B,EAAYf,EAAe,CAAC,EAAQgB,EAAa1B,MAAY,CAAC,IAAM2B,EAAQ,KAAK,IAAI,EAAE,KAAK,IAAI,IAAIC,CAAU,CAAC,EAAE,MAAM,CAAC,UAAU,IAAID,EAAQ,IAAI,QAAQ,GAAGA,EAAQ,IAAI,KAAK,GAAGA,EAAQ,IAAI,CAAE,EAAE,CAACC,CAAU,CAAC,EAAQC,EAAejB,EAAUa,EAAYC,CAAY,EAAQI,EAAe7B,EAAY,GAAG,CAAC,IAAM0B,EAAQ,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEI,CAAC,CAAC,EAAE,GAAGC,IAAe,SAAS,OAAOL,EAAQ,GAAGK,IAAe,SAAS,OAAOL,EAAQA,EAAQA,EAAQ,GAAGK,IAAe,UAAU,MAAO,IAAW,EAAEL,IAAQ,EAAG,GAAGK,IAAe,YAAa,OAAOL,EAAQ,GAAG,EAAEA,EAAQA,EAAQA,EAAQ,GAAW,GAAGA,EAAQ,IAAE,EAAG,EAAG,IAAMM,EAAQ,EAAE,KAAK,IAAI,GAAGN,CAAO,EAAE,KAAK,IAAI,GAAGA,CAAO,EAAE,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEM,CAAO,CAAC,CAAE,EAAE,CAACD,CAAY,CAAC,EAAQE,EAAcjC,EAAY,GAAO,CAAC,IAAMkC,EAAS,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEC,CAAK,CAAC,EAAE,IAAI,IAAMC,KAAQf,EAAY,QAAS,GAAGe,EAAK,OAAO,gBAAgBA,EAAK,OAAO,EAAG,EAAK,QAAQ,MAAM,iBAAiB,GAAGA,EAAK,QAAQ,EAAEF,KAAY,EAAK,QAAQ,MAAM,QAAQ,SAAU,GAAGE,EAAK,OAAO,uBAAuBA,EAAK,OAAO,EAAE,CAAC,IAAMC,EAAU,KAAK,IAAIH,EAAS,GAAG,CAAC,EAAQI,EAAUJ,GAAU,GAAG,GAAGA,EAAS,IAAI,GAASK,EAAiB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAED,CAAS,CAAC,EAAE,EAAK,QAAQ,MAAM,iBAAiB,GAAGF,EAAK,QAAQ,EAAEC,KAAa,EAAK,QAAQ,MAAM,YAAY,GAAGE,IAAmB,EAAK,QAAQ,MAAM,cAAc,GAAG,EAAEA,IAAmB,EAAK,QAAQ,MAAM,QAAQ,GAAI,KAAM,GAAK,QAAQ,MAAM,QAAQ,GAAGL,GAAa,EAAE,CAAC,CAAC,EAAQM,EAAiBxC,MAAgB,CAAsE,GAA3DI,IAAS,QAAa,OAAO,SAAW,KAAsB,CAACgB,EAAQ,QAAQ,OAAO,IAAMqB,EAAIrB,EAAQ,QAAQ,cAAc,KAAK,EAAE,EAAY,QAAQ,CAAC,EAAE,EAAe,QAAQ,EAAMqB,IAAWA,EAAI,aAAa,QAAQ,MAAM,EAAEA,EAAI,aAAa,SAAS,MAAM,EAAEA,EAAI,aAAa,sBAAsBC,IAAY,OAAO,OAAO,eAAe,EAAmGD,EAAzE,iBAAiB,sDAAoE,CAAC,CAAC,QAAQ,GAAM,CAAC,IAAME,EAAQC,EAAWC,EAASD,EAAWE,EAAWH,EAAQ,aAAa,QAAQ,EAAQI,EAAkBJ,EAAQ,MAAM,OAAaK,EAAkBF,IAAa,MAAMA,IAAa,IAAIC,IAAoB,IAAA,IAAWA,IAAoB,GAASE,EAAc7C,EAAO,iBAAiBuC,CAAO,EAAQO,EAAeD,EAAc,OAAaE,EAAoB,OAAO,WAAWF,EAAc,WAAW,EAAQG,EAAaH,EAAc,KAAWI,EAAgBV,EAAQ,aAAa,cAAc,EAAQW,EAAeD,IAAkB,KAAwC,IAAnC,OAAO,WAAWA,CAAe,EAAYE,EAAgB,OAAO,SAASD,CAAc,GAAGA,EAAe,EAAEA,EAAe,OAAO,SAASH,CAAmB,GAAGA,EAAoB,EAAEA,EAAoB,EAAMK,EAAO,EAAE,GAAG,OAAOX,EAAS,gBAAiB,WAAY,GAAG,CAAC,EAAOA,EAAS,eAAe,CAAE,MAAM,CAAC,EAAO,CAAE,CAAE,IAAMY,EAAiBD,EAAO,GAAGN,IAAiB,QAAQC,EAAoB,GAAG,OAAO,SAASA,CAAmB,EAAQO,EAAyBF,EAAO,GAAG,CAACC,EAAuBE,EAAWP,IAAe,QAAQA,IAAe,eAAeA,IAAe,mBAAmB,GAAGK,EAAqBG,GAAqB,CAACZ,IAAmB,EAAQ,MAAM,OAAOY,GAAqB,EAAQ,MAAM,YAAY,GAAGL,EAAgBM,IAAwB,EAAQ,MAAM,gBAAgB,GAAGL,IAAS,EAAQ,MAAM,iBAAiB,GAAGA,IAAS,EAAQ,MAAM,WAAW,oBAAoB,EAAQ,MAAM,QAAQ,IAAInC,EAAY,QAAQ,KAAK,CAAC,UAAQ,SAAO,KAAK,cAAc,CAAC,OAAQ,GAAGqC,GAA0BC,EAAW,CAAC,IAAMG,EAAqBF,GAAqBR,EAAa,EAAQ,MAAM,KAAKA,EAAa,EAAQ,MAAM,YAAY,IAAI,EAAQ,MAAM,OAAOU,EAAqB,EAAQ,MAAM,YAAY,GAAGP,EAAgBM,IAAwB,EAAQ,MAAM,cAAc,QAAQ,EAAQ,MAAM,eAAe,QAAQ,EAAQ,MAAM,cAAc,IAAI,EAAQ,MAAM,gBAAgB,GAAGL,IAAS,EAAQ,MAAM,iBAAiB,GAAGA,IAAS,EAAQ,MAAM,WAAW,kDAAkD,EAAQ,MAAM,QAAQ,IAAInC,EAAY,QAAQ,KAAK,CAAC,UAAQ,SAAO,KAAK,sBAAsB,UAAU+B,CAAY,CAAC,CAAE,KAAM,GAAQ,MAAM,QAAQ,IAAI,EAAQ,MAAM,WAAW,UAAU/B,EAAY,QAAQ,KAAK,CAAC,UAAQ,SAAO,KAAK,iBAAiB,CAAC,CAAG,CAAC,EAAEY,EAAc,IAAoB,EAAE,EAAE,CAACA,EAAcd,EAAiByC,EAAoBlB,EAAUmB,CAAqB,CAAC,EAA80H,OAA50HxD,MAAc,CAACmC,EAAiB,CAAE,EAAE,CAACA,EAAiBuB,CAAS,CAAC,EAAE1D,MAAc,CAAiG,GAAtFD,IAAS,QAAa,OAAO,SAAW,KAAsB,CAACgB,EAAQ,SAAkBD,EAAiB,OAAO,IAAM6C,EAAK5C,EAAQ,QAAQ,GAAG6C,IAAmB,SAAS,CAACzC,EAAY,IAAI,KAAe,OAAW,EAAE,IAAI0C,EAAY,EAAMC,EAAe,EAAQC,EAAqB,KAAK,IAAI,IAAI,KAAK,IAAI,IAAIC,EAAe,GAAG,CAAC,EAAQC,EAAsB,GAAW,CAAC,AAAoBH,IAAeI,EAAW,IAAMC,EAAQD,EAAUJ,EAAqBM,EAAQ,KAAK,IAAI,EAAE,KAAK,IAAI,EAAED,EAAQJ,CAAoB,CAAC,EAAE5C,EAAY,IAAIK,EAAe4C,CAAO,CAAC,EAAKA,EAAQ,EAAG,EAAYrE,EAAO,sBAAsBkE,CAAqB,EAAQ9C,EAAY,IAAI,CAAC,CAAG,EAAQkD,EAAS,IAAItE,EAAO,qBAAqB,GAAS,CAAC,IAAMuE,EAAMC,EAAQ,GAAOD,GAAO,GAAe,SAAmBA,EAAM,iBAAsB,EAAe,QAAQ,GAAK,EAAe,EAAKT,GAAa9D,EAAO,qBAAqB8D,CAAW,EAAG,EAAY9D,EAAO,sBAAsBkE,CAAqB,EAAEI,EAAS,WAAW,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,EAAyB,OAAvBA,EAAS,QAAQV,CAAI,MAAY,CAACU,EAAS,WAAW,EAAKR,GAAa9D,EAAO,qBAAqB8D,CAAW,CAAG,CAAE,CAAC,IAAMW,MAAoB,CAAC,IAAMC,EAAQC,EAAgB,KAAK,EAAE,GAAGD,EAAQ,OAAO,EAAE,CAAC,IAAME,EAAO,SAAS,eAAeF,CAAO,EAAE,GAAGE,EAAO,OAAOA,CAAO,CAAC,OAAOhB,CAAK,EAAMiB,EAAM,EAAMC,EAAQ,GAAUC,EAAS,GAAYC,MAAoB,CAAe,GAAd,EAAQ,GAAS,CAACpB,EAAK,OAAsC,IAAMqB,EAAxBR,EAAkC,CAAC,CAAC,sBAAsB,EAAQS,EAAelF,EAAO,aAAa,SAAS,gBAAgB,cAAc,EAAQmF,EAAY,KAAK,IAAI,EAAED,EAAe,KAAK,IAAI,EAAED,EAAK,MAAM,CAAC,EAAoIG,GAA9GF,EAAeD,EAAK,KAAKE,EAA+B,KAAK,IAAI,IAAI,KAAK,IAAI,EAAEE,CAAqB,CAAgD,EAAQC,EAAgB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEF,CAAc,CAAC,EAAEhE,EAAY,IAAIkE,CAAe,CAAE,EAAQC,MAAoB,CAAKR,GAAU,KAAe,EAAQ,GAAK,EAAM/E,EAAO,sBAAsBgF,CAAe,EAAE,EAAQQ,MAAqB,CAACD,EAAgB,CAAE,EAAQjB,EAAS,IAAItE,EAAO,qBAAqB,GAAS,CAAC,IAAMuE,EAAMC,EAAQ,GAAOD,IAAa,EAASA,EAAM,eAAkBQ,GAAUQ,EAAgB,EAAG,EAAE,CAAC,KAAK,KAAK,WAAW,kBAAkB,UAAU,CAAC,CAAC,EAA2L,OAAzLjB,EAAS,QAAQG,EAAgB,CAAC,EAAEzE,EAAO,iBAAiB,SAASwF,EAAiB,CAAC,QAAQ,EAAI,CAAC,EAAExF,EAAO,iBAAiB,SAASwF,CAAgB,EAAE,EAAS,GAAKD,EAAgB,MAAY,CAAC,EAAS,GAAMvF,EAAO,oBAAoB,SAASwF,CAAgB,EAAExF,EAAO,oBAAoB,SAASwF,CAAgB,EAAElB,EAAS,WAAW,EAAKO,GAAO7E,EAAO,qBAAqB6E,CAAK,CAAG,CAAE,EAAE,CAAChB,EAAiBI,EAAetC,EAAaF,EAAeV,EAAiBK,EAAYiE,EAAsBV,EAAgBhB,CAAS,CAAC,EAAErD,EAAoBkB,EAAe,SAAS,GAAQ,CAAC,GAAGT,EAAiB,OAAO,IAAM0E,EAAQ,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEC,CAAM,CAAC,EAAQC,EAAkBC,EAAgBH,EAAQ,KAAK,IAAIvE,EAAe,QAAQuE,CAAO,EAAMG,IAAiB,EAAe,QAAQD,GAAmB9D,EAAc8D,CAAiB,CAAE,CAAC,EAAehG,MAAYgE,EAAU,KAAK,CAAC,CAAC,OAAO,EAAE,CAACA,CAAS,CAAY,EAA6mB,gBAAK,MAAM,CAAC,IAAI3C,EAAQ,MAAM,CAAC,GAAG6E,EAAM,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,SAAS,QAAQ,EAAE,aAAa,mCAAmC,SAAsB,gBAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,MAAM,EAAE,wBAAwB,CAAC,OAAOlC,CAAS,CAAC,CAAC,CAAC,CAAC,EAAt3B,gBAAK,MAAM,CAAC,MAAM,CAAC,GAAGkC,EAAM,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,WAAW,cAAc,MAAMC,EAAqB,WAAWC,EAAgB,WAAW,SAASA,EAAgB,SAAS,WAAWA,EAAgB,WAAW,UAAUA,EAAgB,UAAU,WAAWA,EAAgB,WAAW,cAAcA,EAAgB,cAAc,UAAUA,EAAgB,UAAU,SAAS,QAAQ,EAAE,SAAsB,gBAAK,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,SAAS,MAAM,EAAE,SAASC,CAAe,CAAC,CAAC,CAAC,CAAyT,C,kDAACvF,EAAoBI,EAAY,CAAC,UAAU,CAAC,KAAKF,EAAY,OAAO,MAAM,aAAa,gBAAgB,GAAK,aAAa,GAAG,YAAY,sCAAsC,EAAE,oBAAoB,CAAC,KAAKA,EAAY,MAAM,MAAM,kBAAkB,SAAS,GAAK,aAAa,SAAS,EAAE,sBAAsB,CAAC,KAAKA,EAAY,OAAO,MAAM,iBAAoB,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,gBAAgB,CAAC,KAAKA,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAK,aAAa,MAAM,cAAc,IAAI,EAAE,iBAAiB,CAAC,KAAKA,EAAY,KAAK,MAAM,oBAAoB,QAAQ,CAAC,UAAU,QAAQ,EAAE,aAAa,CAAC,iBAAiB,WAAW,EAAE,aAAa,UAAU,wBAAwB,EAAI,EAAE,eAAe,CAAC,KAAKA,EAAY,OAAO,MAAM,kBAAkB,IAAI,GAAG,IAAI,GAAG,aAAa,IAAI,KAAK,GAAG,OAAO,GAAOG,EAAM,mBAAmB,QAAQ,EAAE,aAAa,CAAC,KAAKH,EAAY,KAAK,MAAM,gBAAgB,QAAQ,CAAC,SAAS,SAAS,UAAU,YAAY,QAAQ,EAAE,aAAa,CAAC,SAAS,UAAU,WAAW,cAAc,QAAQ,EAAE,aAAa,UAAU,OAAO,GAAOG,EAAM,mBAAmB,QAAQ,EAAE,UAAU,CAAC,KAAKH,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,UAAU,MAAM,EAAE,aAAa,CAAC,UAAU,MAAM,EAAE,aAAa,UAAU,wBAAwB,EAAI,EAAE,gBAAgB,CAAC,KAAKA,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,YAAY,gBAAgB,OAAO,GAAOG,EAAM,mBAAmB,SAAS,EAAE,sBAAsB,CAAC,KAAKH,EAAY,OAAO,MAAM,mBAAmB,IAAI,IAAI,IAAI,EAAE,aAAa,EAAE,KAAK,IAAI,eAAe,GAAM,OAAO,GAAOG,EAAM,mBAAmB,SAAS,EAAE,gBAAgB,CAAC,KAAKH,EAAY,OAAO,MAAM,cAAc,aAAa,qDAAqD,EAAE,qBAAqB,CAAC,KAAKA,EAAY,MAAM,MAAM,oBAAoB,aAAa,SAAS,EAAE,gBAAgB,CAAC,KAAKA,EAAY,KAAK,MAAM,mBAAmB,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,OAAO,CAAC,CAAC,CAAC,C"}