{"version":3,"file":"xOneGIHb8.DSDHwEc3.mjs","names":["useRef","React.useCallback","__esmMin","init_npm_react_18_3_1","de","ne","c","init_jsx_runtime","ce","useReducedMotion","fontStore","init_framer_B6PCHH0A","ControlType","useIsStaticRenderer","addPropertyControls","clamp","min","max","value","wrap","length","result","shortestDistance","distance","index","position","count","easeOutCubic","DNACarousel","defaultProps","props","isStatic","prefersReducedMotion","rootRef","cardsRef","positionRef","velocityRef","rafRef","visibleRef","draggingRef","pointerIdRef","startPointerXRef","startPositionRef","lastPointerXRef","lastPointerTimeRef","lastFrameTimeRef","settingsRef","validImages","images","image","renderCards","settings","centerWidth","maxVisibleDistance","card","absoluteDistance","normalizedDistance","phase","wave","depthWave","strand","x","y","z","strandY","rotateY","rotateZ","rotateX","smoothActive","scale","opacity","finalScale","blurAmount","chroma","zIndex","shadowFilter","chromaticFilter","mounted","animate","time","delta","target","difference","snapAmount","cardWidth","cardHeight","gap","imageRadius","root","observer","entries","handlePointerDown","event","handlePointerMove","now","dx","travel","lastX","lastTime","deltaX","deltaSeconds","instantVelocity","handlePointerUp","grabCursor","handleWheel","handleKeyDown","firstImage","perspective","COMPONENT_AUTHOR","element","init_DNA_Carousel","fonts","css","className","init_xOneGIHb8"],"sources":["https:/framerusercontent.com/modules/5URVAa8eyMqVMB3bvzAc/WI1U7A2mXxPVTGO0LN04/DNA_Carousel.js","https:/framerusercontent.com/modules/d0pQiKcjJeeRbuRjT4sp/AOx5m4SdL6vIIddmVrGi/xOneGIHb8.js"],"sourcesContent":["\"use client\";import{jsx as _jsx}from\"react/jsx-runtime\";const COMPONENT_AUTHOR=\"Karim Saif\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer,useReducedMotion}from\"framer\";import{useEffect,useRef}from\"react\";const defaultProps={images:[{src:\"\"}],cardWidth:220,cardHeight:300,gap:26,imageRadius:0,curveDepth:170,curveHeight:55,helixSpread:90,perspective:1100,activeScale:1,inactiveScale:.78,rotation:32,tilt:10,blur:5,chromaticAberration:5,inactiveOpacity:.42,dragSensitivity:1.35,inertia:.93,snapStrength:.18,autoPlay:false,autoSpeed:.18,shadow:true,shadowStrength:.35,background:\"#0A0A0A\",grabCursor:true};function clamp(value,min,max){return Math.max(min,Math.min(max,value));}function wrap(value,length){if(length<=0)return 0;const result=value%length;return result<0?result+length:result;}function shortestDistance(index,position,count){let distance=index-position;if(distance>count/2){distance-=count;}if(distance<-count/2){distance+=count;}return distance;}function easeOutCubic(value){const t=clamp(value,0,1);return 1-Math.pow(1-t,3);}export default function DNACarousel(props){const{images=defaultProps.images,cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength,background,grabCursor}={...defaultProps,...props};const isStatic=useIsStaticRenderer();const prefersReducedMotion=useReducedMotion();const rootRef=useRef(null);const cardsRef=useRef([]);const positionRef=useRef(0);const velocityRef=useRef(0);const rafRef=useRef(null);const visibleRef=useRef(true);const draggingRef=useRef(false);const pointerIdRef=useRef(null);const startPointerXRef=useRef(0);const startPositionRef=useRef(0);const lastPointerXRef=useRef(0);const lastPointerTimeRef=useRef(0);const lastFrameTimeRef=useRef(null);const settingsRef=useRef({cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength});const validImages=Array.isArray(images)?images.filter(image=>image&&typeof image.src===\"string\"&&image.src.length>0):[];settingsRef.current={cardWidth,cardHeight,gap,imageRadius,curveDepth,curveHeight,helixSpread,perspective,activeScale,inactiveScale,rotation,tilt,blur,chromaticAberration,inactiveOpacity,dragSensitivity,inertia,snapStrength,autoPlay,autoSpeed,shadow,shadowStrength};useEffect(()=>{cardsRef.current.length=validImages.length;},[validImages.length]);const renderCards=React.useCallback(()=>{const root=rootRef.current;if(!root)return;const settings=settingsRef.current;const count=cardsRef.current.length;if(!count)return;const position=wrap(positionRef.current,count);const centerWidth=settings.cardWidth+settings.gap;const maxVisibleDistance=Math.max(3,Math.ceil(count/2));cardsRef.current.forEach((card,index)=>{if(!card)return;const distance=shortestDistance(index,position,count);const absoluteDistance=Math.abs(distance);const normalizedDistance=clamp(absoluteDistance/maxVisibleDistance,0,1);const phase=distance*Math.PI*.48;const wave=Math.sin(phase);const depthWave=Math.cos(phase);const strand=index%2===0?1:-1;const x=distance*centerWidth*.72;const y=wave*settings.curveHeight*strand;const z=depthWave*settings.curveDepth;const strandY=strand*settings.helixSpread*Math.cos(phase*.5)*.5;const rotateY=depthWave*settings.rotation*strand;const rotateZ=wave*settings.tilt*strand;const rotateX=wave*settings.tilt*.35;const activeAmount=clamp(1-absoluteDistance,0,1);const smoothActive=easeOutCubic(activeAmount);const scale=settings.inactiveScale+(settings.activeScale-settings.inactiveScale)*smoothActive;const opacity=settings.inactiveOpacity+(1-settings.inactiveOpacity)*smoothActive;const depthNormalized=clamp((z+settings.curveDepth)/(settings.curveDepth*2),0,1);const zScale=.88+depthNormalized*.12;const finalScale=scale*zScale;const blurAmount=settings.blur*normalizedDistance*(1-smoothActive);const chroma=settings.chromaticAberration*normalizedDistance*(1-smoothActive);const zIndex=Math.round(100-absoluteDistance*10+depthWave*4);card.style.transform=`\n                        translate3d(\n                            ${x}px,\n                            ${y+strandY}px,\n                            ${z}px\n                        )\n                        rotateX(${rotateX}deg)\n                        rotateY(${rotateY}deg)\n                        rotateZ(${rotateZ}deg)\n                        scale(${finalScale})\n                    `;card.style.opacity=String(opacity);card.style.zIndex=String(zIndex);const shadowFilter=settings.shadow?`\n                                drop-shadow(\n                                    0\n                                    ${8+smoothActive*10}px\n                                    ${18+smoothActive*15}px\n                                    rgba(\n                                        0,\n                                        0,\n                                        0,\n                                        ${settings.shadowStrength}\n                                    )\n                                )\n                            `:\"\";const chromaticFilter=chroma>.01?`\n                                drop-shadow(\n                                    ${-chroma}px\n                                    0\n                                    0\n                                    rgba(\n                                        255,\n                                        0,\n                                        70,\n                                        0.42\n                                    )\n                                )\n\n                                drop-shadow(\n                                    ${chroma}px\n                                    0\n                                    0\n                                    rgba(\n                                        0,\n                                        170,\n                                        255,\n                                        0.42\n                                    )\n                                )\n                            `:\"\";card.style.filter=`\n                        blur(${blurAmount}px)\n                        ${chromaticFilter}\n                        ${shadowFilter}\n                    `;});},[]);useEffect(()=>{if(isStatic)return;if(prefersReducedMotion){renderCards();return;}let mounted=true;const animate=time=>{if(!mounted)return;if(!visibleRef.current){rafRef.current=requestAnimationFrame(animate);lastFrameTimeRef.current=time;return;}const previous=lastFrameTimeRef.current??time;let delta=(time-previous)/1e3;lastFrameTimeRef.current=time;delta=clamp(delta,0,.05);const settings=settingsRef.current;if(!draggingRef.current){if(settings.autoPlay){positionRef.current+=settings.autoSpeed*delta;}if(Math.abs(velocityRef.current)>1e-4){positionRef.current+=velocityRef.current*delta;velocityRef.current*=Math.pow(settings.inertia,delta*60);}if(!settings.autoPlay&&Math.abs(velocityRef.current)<.025){const target=Math.round(positionRef.current);const difference=target-positionRef.current;const snapAmount=1-Math.exp(-settings.snapStrength*60*delta);positionRef.current+=difference*snapAmount;if(Math.abs(difference)<5e-4){positionRef.current=target;velocityRef.current=0;}}}renderCards();rafRef.current=requestAnimationFrame(animate);};rafRef.current=requestAnimationFrame(animate);return()=>{mounted=false;if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}};},[isStatic,prefersReducedMotion,renderCards]);useEffect(()=>{renderCards();},[renderCards,validImages.length,cardWidth,cardHeight,gap,imageRadius]);useEffect(()=>{const root=rootRef.current;if(!root)return;const observer=new IntersectionObserver(entries=>{visibleRef.current=entries[0]?.isIntersecting??true;if(visibleRef.current){lastFrameTimeRef.current=performance.now();}},{threshold:0});observer.observe(root);return()=>{observer.disconnect();};},[]);useEffect(()=>{const root=rootRef.current;if(!root)return;const observer=new ResizeObserver(()=>{renderCards();});observer.observe(root);return()=>{observer.disconnect();};},[renderCards]);const handlePointerDown=event=>{if(isStatic)return;if(prefersReducedMotion)return;const root=rootRef.current;if(!root)return;draggingRef.current=true;pointerIdRef.current=event.pointerId;startPointerXRef.current=event.clientX;startPositionRef.current=positionRef.current;lastPointerXRef.current=event.clientX;lastPointerTimeRef.current=performance.now();velocityRef.current=0;root.style.cursor=\"grabbing\";try{root.setPointerCapture(event.pointerId);}catch{}event.preventDefault();};const handlePointerMove=event=>{if(!draggingRef.current)return;if(pointerIdRef.current!==null&&event.pointerId!==pointerIdRef.current){return;}const settings=settingsRef.current;const now=performance.now();const dx=event.clientX-startPointerXRef.current;const travel=Math.max(1,settings.cardWidth+settings.gap);positionRef.current=startPositionRef.current-dx/travel*settings.dragSensitivity;const lastX=lastPointerXRef.current;const lastTime=lastPointerTimeRef.current;const deltaX=event.clientX-lastX;const deltaTime=Math.max(1,now-lastTime);const deltaSeconds=deltaTime/1e3;const instantVelocity=-(deltaX/travel)/deltaSeconds*settings.dragSensitivity;velocityRef.current=velocityRef.current*.72+instantVelocity*.28;lastPointerXRef.current=event.clientX;lastPointerTimeRef.current=now;renderCards();event.preventDefault();};const handlePointerUp=event=>{if(!draggingRef.current)return;draggingRef.current=false;const root=rootRef.current;if(root){root.style.cursor=grabCursor?\"grab\":\"default\";}if(event&&pointerIdRef.current!==null){try{root?.releasePointerCapture(pointerIdRef.current);}catch{}}pointerIdRef.current=null;velocityRef.current=clamp(velocityRef.current,-2.5,2.5);};const handleWheel=event=>{if(isStatic)return;const settings=settingsRef.current;const delta=Math.abs(event.deltaX)>Math.abs(event.deltaY)?event.deltaX:event.deltaY;if(Math.abs(delta)<.01){return;}positionRef.current+=delta*.0025*settings.dragSensitivity;velocityRef.current+=delta*5e-4*settings.dragSensitivity;velocityRef.current=clamp(velocityRef.current,-1.8,1.8);renderCards();event.preventDefault();};const handleKeyDown=event=>{if(isStatic)return;if(event.key===\"ArrowRight\"||event.key===\"ArrowDown\"){positionRef.current+=1;velocityRef.current=0;renderCards();event.preventDefault();}if(event.key===\"ArrowLeft\"||event.key===\"ArrowUp\"){positionRef.current-=1;velocityRef.current=0;renderCards();event.preventDefault();}};if(isStatic){const firstImage=validImages[0];return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",perspective:`${perspective}px`},children:firstImage?.src&&/*#__PURE__*/_jsx(\"img\",{src:firstImage.src,srcSet:firstImage.srcSet,alt:firstImage.alt??\"\",style:{width:cardWidth,height:cardHeight,objectFit:\"cover\",display:\"block\",borderRadius:imageRadius}})});}if(!validImages.length){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background}});}return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,tabIndex:0,role:\"region\",\"aria-label\":\"DNA image carousel\",\"data-component-author\":COMPONENT_AUTHOR,onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:()=>handlePointerUp(),onPointerLeave:event=>{if(draggingRef.current){handlePointerMove(event);}},onWheel:handleWheel,onKeyDown:handleKeyDown,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",background,perspective:`${perspective}px`,perspectiveOrigin:\"50% 50%\",touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\",cursor:grabCursor?\"grab\":\"default\",outline:\"none\",contain:\"layout paint\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",transformStyle:\"preserve-3d\",pointerEvents:\"none\"},children:validImages.map((image,index)=>/*#__PURE__*/_jsx(\"div\",{ref:element=>{if(element){cardsRef.current[index]=element;}},style:{position:\"absolute\",left:\"50%\",top:\"50%\",width:cardWidth,height:cardHeight,marginLeft:-cardWidth/2,marginTop:-cardHeight/2,borderRadius:imageRadius,overflow:\"hidden\",transformStyle:\"preserve-3d\",backfaceVisibility:\"hidden\",WebkitBackfaceVisibility:\"hidden\",willChange:\"transform, opacity, filter\",transform:\"translate3d(0,0,0)\",opacity:0,pointerEvents:\"none\",background:\"#111\"},children:/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,alt:image.alt??\"\",draggable:false,loading:index<3?\"eager\":\"lazy\",decoding:\"async\",style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:\"cover\",objectPosition:\"center\",userSelect:\"none\",WebkitUserDrag:\"none\",pointerEvents:\"none\"}})},`${image.src}-${index}`))})});}/**\n *\n *\n * Made with 💛 by Karim Saif\n *\n */addPropertyControls(DNACarousel,{images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.ResponsiveImage},maxCount:50,defaultValue:[{src:\"\"}],description:\"Add, remove, and reorder images in the DNA carousel.\"},cardWidth:{type:ControlType.Number,title:\"Width\",min:80,max:600,step:1,unit:\"px\",description:\"Width of each image card.\"},cardHeight:{type:ControlType.Number,title:\"Height\",min:100,max:800,step:1,unit:\"px\",description:\"Height of each image card.\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:200,step:1,unit:\"px\",description:\"Spacing between image cards.\"},imageRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,unit:\"px\",description:\"Controls the corner radius of every image.\"},curveDepth:{type:ControlType.Number,title:\"Depth\",min:0,max:500,step:1,unit:\"px\",description:\"Controls how far images travel into and out of the screen.\"},curveHeight:{type:ControlType.Number,title:\"Curve\",min:0,max:250,step:1,unit:\"px\",description:\"Controls the vertical DNA curve.\"},helixSpread:{type:ControlType.Number,title:\"Spread\",min:0,max:300,step:1,unit:\"px\",description:\"Controls the separation between the two DNA strands.\"},perspective:{type:ControlType.Number,title:\"Perspective\",min:400,max:3e3,step:10,unit:\"px\",description:\"Controls the strength of the 3D perspective.\"},activeScale:{type:ControlType.Number,title:\"Active Scale\",min:.7,max:1.5,step:.01,description:\"Scale of the centered image.\"},inactiveScale:{type:ControlType.Number,title:\"Inactive Scale\",min:.3,max:1,step:.01,description:\"Scale of images away from the center.\"},rotation:{type:ControlType.Number,title:\"Rotation\",min:0,max:90,step:1,unit:\"\\xb0\",description:\"Rotation around the DNA depth axis.\"},tilt:{type:ControlType.Number,title:\"Tilt\",min:0,max:45,step:1,unit:\"\\xb0\",description:\"Additional image tilt along the helix.\"},blur:{type:ControlType.Number,title:\"Blur\",min:0,max:20,step:.5,unit:\"px\",description:\"Blur applied to images farther from the center.\"},chromaticAberration:{type:ControlType.Number,title:\"RGB Split\",min:0,max:20,step:.5,unit:\"px\",description:\"RGB color separation on inactive images.\"},inactiveOpacity:{type:ControlType.Number,title:\"Inactive Opacity\",min:.05,max:1,step:.01,description:\"Opacity of images away from the center.\"},dragSensitivity:{type:ControlType.Number,title:\"Drag\",min:.2,max:3,step:.05,description:\"Controls how strongly dragging moves the carousel.\"},inertia:{type:ControlType.Number,title:\"Inertia\",min:.75,max:.98,step:.005,description:\"Controls momentum after releasing a drag.\"},snapStrength:{type:ControlType.Number,title:\"Snap\",min:.04,max:.5,step:.01,description:\"Controls how quickly the carousel settles onto an image.\"},autoPlay:{type:ControlType.Boolean,title:\"Auto Play\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Automatically moves through the images.\"},autoSpeed:{type:ControlType.Number,title:\"Speed\",min:.01,max:1.5,step:.01,description:\"Controls the automatic movement speed.\",hidden:props=>!props.autoPlay},shadow:{type:ControlType.Boolean,title:\"Shadow\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Adds depth-enhancing shadows.\"},shadowStrength:{type:ControlType.Number,title:\"Strength\",min:0,max:1,step:.01,description:\"Controls shadow opacity.\",hidden:props=>!props.shadow},background:{type:ControlType.Color,title:\"Background\",description:\"Background color behind the carousel.\"},grabCursor:{type:ControlType.Boolean,title:\"Grab Cursor\",enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Made with 💛 by [@karimsaif](https://x.com/karimsaif0)\"}});DNACarousel.defaultProps=defaultProps;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DNACarousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DNA_Carousel.map","// Generated by Framer (5186692)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-mQylA .framer-styles-preset-7lq10y:not(.rich-text-wrapper), .framer-mQylA .framer-styles-preset-7lq10y.rich-text-wrapper a { --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-0f3e6493-aac9-43f3-8295-e95ef57ad7a9); --framer-link-text-decoration: underline; }\"];export const className=\"framer-mQylA\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"A,iPAAooB,SAASe,EAAM,EAAM,EAAI,EAAI,CAAC,OAAO,KAAK,IAAIC,EAAI,KAAK,IAAIC,EAAIC,CAAK,CAAC,CAAE,CAAC,SAASC,EAAK,EAAM,EAAO,CAAC,GAAGC,GAAQ,EAAE,MAAO,GAAE,IAAMC,EAAOH,EAAME,EAAO,OAAOC,EAAO,EAAEA,EAAOD,EAAOC,CAAO,CAAC,SAASC,GAAiB,EAAM,EAAS,EAAM,CAAC,IAAIC,EAASC,EAAMC,EAAsF,OAA1EF,EAASG,EAAM,IAAG,GAAUA,GAAUH,EAAS,CAACG,EAAM,IAAG,GAAUA,GAAcH,CAAS,CAAC,SAASI,GAAa,EAAM,CAA0B,MAAO,IAAW,EAAnCZ,EAAMG,EAAM,EAAE,CAAuB,IAAE,CAAG,CAAC,SAAwBU,EAAY,EAAM,CAAC,GAAK,CAAC,SAAOC,EAAa,OAAO,YAAU,aAAW,MAAI,cAAY,aAAW,cAAY,cAAY,cAAY,cAAY,gBAAc,WAAS,OAAK,OAAK,sBAAoB,kBAAgB,kBAAgB,UAAQ,eAAa,WAAS,YAAU,SAAO,iBAAe,aAAW,cAAY,CAAC,GAAGA,EAAa,GAAGC,CAAK,EAAQC,EAASlB,EAAoB,EAAQmB,EAAqBvB,EAAiB,EAAQwB,EAAQjC,EAAO,IAAI,EAAQkC,EAASlC,EAAO,CAAC,CAAC,EAAQmC,EAAYnC,EAAO,CAAC,EAAQoC,EAAYpC,EAAO,CAAC,EAAQqC,EAAOrC,EAAO,IAAI,EAAQsC,EAAWtC,EAAO,EAAI,EAAQuC,EAAYvC,EAAO,EAAK,EAAQwC,EAAaxC,EAAO,IAAI,EAAQyC,EAAiBzC,EAAO,CAAC,EAAQ0C,EAAiB1C,EAAO,CAAC,EAAQ2C,EAAgB3C,EAAO,CAAC,EAAQ4C,EAAmB5C,EAAO,CAAC,EAAQ6C,EAAiB7C,EAAO,IAAI,EAAQ8C,EAAY9C,EAAO,CAAC,YAAU,aAAW,MAAI,cAAY,aAAW,cAAY,cAAY,cAAY,cAAY,gBAAc,WAAS,OAAK,OAAK,sBAAoB,kBAAgB,kBAAgB,UAAQ,eAAa,WAAS,YAAU,SAAO,gBAAc,CAAC,EAAQ+C,EAAY,MAAM,QAAQC,CAAM,EAAEA,EAAO,OAAO,GAAOC,GAAO,OAAOA,EAAM,KAAM,UAAUA,EAAM,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,EAAY,QAAQ,CAAC,YAAU,aAAW,MAAI,cAAY,aAAW,cAAY,cAAY,cAAY,cAAY,gBAAc,WAAS,OAAK,OAAK,sBAAoB,kBAAgB,kBAAgB,UAAQ,eAAa,WAAS,YAAU,SAAO,gBAAc,EAAEzC,MAAc,CAAC,EAAS,QAAQ,OAAOuC,EAAY,MAAO,EAAE,CAACA,EAAY,MAAM,CAAC,EAAE,IAAMG,EAAYjD,MAAsB,CAA4B,GAAG,CAAnBgC,EAAQ,QAAiB,OAAO,IAAMkB,EAASL,EAAY,QAAcpB,EAAMQ,EAAS,QAAQ,OAAO,GAAG,CAACR,EAAM,OAAO,IAAMD,EAASN,EAAKgB,EAAY,QAAQT,CAAK,EAAQ0B,EAAYD,EAAS,UAAUA,EAAS,IAAUE,EAAmB,KAAK,IAAI,EAAE,KAAK,KAAK3B,EAAM,CAAC,CAAC,EAAEQ,EAAS,QAAQ,SAAS,EAAK,IAAQ,CAAC,GAAG,CAACoB,EAAK,OAAO,IAAM/B,EAASD,GAAiBE,EAAMC,EAASC,CAAK,EAAQ6B,EAAiB,KAAK,IAAIhC,CAAQ,EAAQiC,EAAmBzC,EAAMwC,EAAiBF,EAAmB,EAAE,CAAC,EAAQI,EAAMlC,EAAS,KAAK,GAAG,IAAUmC,EAAK,KAAK,IAAID,CAAK,EAAQE,EAAU,KAAK,IAAIF,CAAK,EAAQG,EAAOpC,EAAM,GAAI,EAAE,EAAE,GAASqC,EAAEtC,EAAS6B,EAAY,IAAUU,EAAEJ,EAAKP,EAAS,YAAYS,EAAaG,EAAEJ,EAAUR,EAAS,WAAiBa,EAAQJ,EAAOT,EAAS,YAAY,KAAK,IAAIM,EAAM,EAAE,EAAE,GAASQ,EAAQN,EAAUR,EAAS,SAASS,EAAaM,EAAQR,EAAKP,EAAS,KAAKS,EAAaO,EAAQT,EAAKP,EAAS,KAAK,IAA2DiB,EAAazC,GAAjDZ,EAAM,EAAEwC,EAAiB,EAAE,CAA8C,CAAC,EAAQc,EAAMlB,EAAS,eAAeA,EAAS,YAAYA,EAAS,eAAeiB,EAAmBE,EAAQnB,EAAS,iBAAiB,EAAEA,EAAS,iBAAiBiB,EAAyIG,EAAWF,GAAzC,IAAxEtD,GAAOgD,EAAEZ,EAAS,aAAaA,EAAS,WAAW,GAAG,EAAE,CAAkC,EAAE,KAAwCqB,EAAWrB,EAAS,KAAKK,GAAoB,EAAEY,GAAoBK,EAAOtB,EAAS,oBAAoBK,GAAoB,EAAEY,GAAoBM,EAAO,KAAK,MAAM,IAAInB,EAAiB,GAAGI,EAAU,CAAC,EAAE,EAAK,MAAM,UAAU;;8BAEhqIE,EAAE;8BACFC,EAAEE,EAAQ;8BACVD,EAAE;;kCAEEI,EAAQ;kCACRF,EAAQ;kCACRC,EAAQ;gCACVK,EAAW;sBACrB,EAAK,MAAM,QAAQ,OAAOD,CAAO,EAAE,EAAK,MAAM,OAAO,OAAOI,CAAM,EAAE,IAAMC,EAAaxB,EAAS,OAAO;;;sCAGvF,EAAEiB,EAAa,GAAG;sCAClB,GAAGA,EAAa,GAAG;;;;;0CAKfjB,EAAS,eAAe;;;8BAGpC,GAASyB,EAAgBH,EAAO,IAAI;;sCAE5B,CAACA,EAAO;;;;;;;;;;;;sCAYRA,EAAO;;;;;;;;;;8BAUf,GAAG,EAAK,MAAM,OAAO;+BACpBD,EAAW;0BAChBI,EAAgB;0BAChBD,EAAa;qBACjB,CAAC,CAAE,EAAE,CAAC,CAAC,EAAEnE,MAAc,CAAC,GAAGuB,EAAS,OAAO,GAAGC,EAAqB,CAACkB,EAAY,EAAE,MAAO,CAAC,IAAI2B,EAAQ,GAAWC,EAAQ,GAAM,CAAC,GAAG,CAACD,EAAQ,OAAO,GAAG,CAACvC,EAAW,QAAQ,CAAC,EAAO,QAAQ,sBAAsBwC,CAAO,EAAE,EAAiB,QAAQC,EAAK,MAAO,CAA+C,IAAIC,GAAOD,GAA1ClC,EAAiB,SAASkC,IAA+B,IAAI,EAAiB,QAAQA,EAAK,EAAMhE,EAAMiE,EAAM,EAAE,GAAG,EAAE,IAAM7B,EAASL,EAAY,QAAQ,GAAG,CAACP,EAAY,UAAYY,EAAS,WAAU,EAAY,SAASA,EAAS,UAAU6B,GAAU,KAAK,IAAI5C,EAAY,OAAO,EAAE,OAAM,EAAY,SAASA,EAAY,QAAQ4C,EAAM,EAAY,SAAkB7B,EAAS,UAAQ6B,EAAM,KAAQ,CAAC7B,EAAS,UAAU,KAAK,IAAIf,EAAY,OAAO,EAAE,MAAK,CAAC,IAAM6C,EAAO,KAAK,MAAM9C,EAAY,OAAO,EAAQ+C,EAAWD,EAAO9C,EAAY,QAAcgD,EAAW,EAAE,KAAK,IAAI,CAAChC,EAAS,aAAa,GAAG6B,CAAK,EAAE,EAAY,SAASE,EAAWC,EAAc,KAAK,IAAID,CAAU,EAAE,OAAM,EAAY,QAAQD,EAAO,EAAY,QAAQ,EAAG,CAAE/B,EAAY,EAAE,EAAO,QAAQ,sBAAsB4B,CAAO,CAAE,EAAgD,MAA9C,GAAO,QAAQ,sBAAsBA,CAAO,MAAY,CAAC,EAAQ,GAASzC,EAAO,UAAU,OAAM,qBAAqBA,EAAO,OAAO,EAAE,EAAO,QAAQ,KAAM,CAAE,EAAE,CAACN,EAASC,EAAqBkB,CAAW,CAAC,EAAE1C,MAAc,CAAC0C,EAAY,CAAE,EAAE,CAACA,EAAYH,EAAY,OAAOqC,EAAUC,EAAWC,EAAIC,CAAW,CAAC,EAAE/E,MAAc,CAAC,IAAMgF,EAAKvD,EAAQ,QAAQ,GAAG,CAACuD,EAAK,OAAO,IAAMC,EAAS,IAAI,qBAAqB,GAAS,CAAC,EAAW,QAAQC,EAAQ,EAAE,EAAE,gBAAgB,GAAQpD,EAAW,UAAS,EAAiB,QAAQ,YAAY,IAAI,EAAG,EAAE,CAAC,UAAU,CAAC,CAAC,EAAyB,OAAvBmD,EAAS,QAAQD,CAAI,MAAY,CAACC,EAAS,WAAW,CAAE,CAAE,EAAE,CAAC,CAAC,EAAEjF,MAAc,CAAC,IAAMgF,EAAKvD,EAAQ,QAAQ,GAAG,CAACuD,EAAK,OAAO,IAAMC,EAAS,IAAI,mBAAmB,CAACvC,EAAY,CAAE,CAAC,EAAyB,OAAvBuC,EAAS,QAAQD,CAAI,MAAY,CAACC,EAAS,WAAW,CAAE,CAAE,EAAE,CAACvC,CAAW,CAAC,EAAE,IAAMyC,GAAkB,GAAO,CAAoB,GAAhB5D,GAAmBC,EAAqB,OAAO,IAAMwD,EAAKvD,EAAQ,QAAQ,GAAIuD,EAAY,GAAY,QAAQ,GAAK,EAAa,QAAQI,EAAM,UAAU,EAAiB,QAAQA,EAAM,QAAQ,EAAiB,QAAQzD,EAAY,QAAQ,EAAgB,QAAQyD,EAAM,QAAQ,EAAmB,QAAQ,YAAY,IAAI,EAAE,EAAY,QAAQ,EAAE,EAAK,MAAM,OAAO,WAAW,GAAG,CAACJ,EAAK,kBAAkBI,EAAM,SAAS,CAAE,MAAM,CAAC,CAACA,EAAM,eAAe,CAA7U,CAA+U,EAAQC,GAAkB,GAAO,CAAgC,GAA5B,CAACtD,EAAY,SAAkBC,EAAa,UAAU,MAAMoD,EAAM,YAAYpD,EAAa,QAAS,OAAQ,IAAMW,EAASL,EAAY,QAAcgD,EAAI,YAAY,IAAI,EAAQC,EAAGH,EAAM,QAAQnD,EAAiB,QAAcuD,EAAO,KAAK,IAAI,EAAE7C,EAAS,UAAUA,EAAS,GAAG,EAAE,EAAY,QAAQT,EAAiB,QAAQqD,EAAGC,EAAO7C,EAAS,gBAAgB,IAAM8C,EAAMtD,EAAgB,QAAcuD,EAAStD,EAAmB,QAAcuD,EAAOP,EAAM,QAAQK,EAAqDG,EAA/B,KAAK,IAAI,EAAEN,EAAII,CAAqC,EAAE,IAAUG,EAAgB,EAAEF,EAAOH,GAAQI,EAAajD,EAAS,gBAAgB,EAAY,QAAQf,EAAY,QAAQ,IAAIiE,EAAgB,IAAI,EAAgB,QAAQT,EAAM,QAAQ,EAAmB,QAAQE,EAAI5C,EAAY,EAAE0C,EAAM,eAAe,CAAE,EAAQU,GAAgB,GAAO,CAAC,GAAG,CAAC/D,EAAY,QAAQ,OAAO,EAAY,QAAQ,GAAM,IAAMiD,EAAKvD,EAAQ,QAAgE,GAArDuD,IAAM,EAAK,MAAM,OAAOe,EAAW,OAAO,WAAcX,GAAOpD,EAAa,UAAU,KAAM,GAAG,CAACgD,GAAM,sBAAsBhD,EAAa,OAAO,CAAE,MAAM,CAAC,CAAE,EAAa,QAAQ,KAAK,EAAY,QAAQzB,EAAMqB,EAAY,QAAQ,KAAK,GAAG,CAAE,EAAQoE,GAAY,GAAO,CAAC,GAAGzE,EAAS,OAAO,IAAMoB,EAASL,EAAY,QAAckC,EAAM,KAAK,IAAIY,EAAM,MAAM,EAAE,KAAK,IAAIA,EAAM,MAAM,EAAEA,EAAM,OAAOA,EAAM,OAAU,KAAK,IAAIZ,CAAK,EAAE,MAAa,EAAY,SAASA,EAAM,MAAM7B,EAAS,gBAAgB,EAAY,SAAS6B,EAAM,KAAK7B,EAAS,gBAAgB,EAAY,QAAQpC,EAAMqB,EAAY,QAAQ,KAAK,GAAG,EAAEc,EAAY,EAAE0C,EAAM,eAAe,EAAE,EAAQa,GAAc,GAAO,CAAI1E,KAAmB6D,EAAM,MAAM,cAAcA,EAAM,MAAM,eAAa,EAAY,SAAS,EAAE,EAAY,QAAQ,EAAE1C,EAAY,EAAE0C,EAAM,eAAe,IAAMA,EAAM,MAAM,aAAaA,EAAM,MAAM,aAAW,IAAY,QAAW,EAAY,QAAQ,EAAE1C,EAAY,EAAE0C,EAAM,eAAe,GAAG,EAAE,GAAG7D,EAAS,CAAC,IAAM2E,EAAW3D,EAAY,GAAG,MAAoB,gBAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,aAAW,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,SAAS,SAAS,YAAY,GAAG4D,EAAY,GAAG,EAAE,SAASD,GAAY,KAAkB,gBAAK,MAAM,CAAC,IAAIA,EAAW,IAAI,OAAOA,EAAW,OAAO,IAAIA,EAAW,KAAK,GAAG,MAAM,CAAC,MAAMtB,EAAU,OAAOC,EAAW,UAAU,QAAQ,QAAQ,QAAQ,aAAaE,CAAW,CAAC,CAAC,CAAC,CAAC,CAAE,CAA0G,OAArGxC,EAAY,OAA6G,gBAAK,MAAM,CAAC,IAAId,EAAQ,SAAS,EAAE,KAAK,SAAS,aAAa,qBAAqB,wBAAwB2E,EAAiB,cAAcjB,GAAkB,cAAcE,GAAkB,YAAYS,GAAgB,oBAAoBA,GAAgB,EAAE,eAAe,GAAO,CAAI/D,EAAY,SAASsD,GAAkBD,CAAK,CAAG,EAAE,QAAQY,GAAY,UAAUC,GAAc,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,SAAS,WAAW,SAAS,SAAS,aAAW,YAAY,GAAGE,EAAY,IAAI,kBAAkB,UAAU,YAAY,OAAO,WAAW,OAAO,iBAAiB,OAAO,OAAOJ,EAAW,OAAO,UAAU,QAAQ,OAAO,QAAQ,cAAc,EAAE,SAAsB,gBAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,eAAe,cAAc,cAAc,MAAM,EAAE,SAASxD,EAAY,KAAK,EAAM,IAAqB,gBAAK,MAAM,CAAC,IAAI,GAAS,CAAI8D,IAAS,EAAS,QAAQrF,GAAOqF,EAAS,EAAE,MAAM,CAAC,SAAS,WAAW,KAAK,MAAM,IAAI,MAAM,MAAMzB,EAAU,OAAOC,EAAW,WAAW,CAACD,EAAU,EAAE,UAAU,CAACC,EAAW,EAAE,aAAaE,EAAY,SAAS,SAAS,eAAe,cAAc,mBAAmB,SAAS,yBAAyB,SAAS,WAAW,6BAA6B,UAAU,qBAAqB,QAAQ,EAAE,cAAc,OAAO,WAAW,MAAM,EAAE,SAAsB,gBAAK,MAAM,CAAC,IAAItC,EAAM,IAAI,OAAOA,EAAM,OAAO,IAAIA,EAAM,KAAK,GAAG,UAAU,GAAM,QAAQzB,EAAM,EAAE,QAAQ,OAAO,SAAS,QAAQ,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,UAAU,QAAQ,eAAe,SAAS,WAAW,OAAO,eAAe,OAAO,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE,GAAGyB,EAAM,IAAI,GAAGzB,GAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAA5tD,gBAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,YAAU,CAAC,CAAC,CAAoqD,C,kDAlDh0M,EAAiB,aAA4K,EAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,WAAW,IAAI,IAAI,GAAG,YAAY,EAAE,WAAW,IAAI,YAAY,GAAG,YAAY,GAAG,YAAY,KAAK,YAAY,EAAE,cAAc,IAAI,SAAS,GAAG,KAAK,GAAG,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,IAAI,gBAAgB,KAAK,QAAQ,IAAI,aAAa,IAAI,SAAS,GAAM,UAAU,IAAI,OAAO,GAAK,eAAe,IAAI,WAAW,UAAU,WAAW,EAAI,EAuD/nBV,EAAoBc,EAAY,CAAC,OAAO,CAAC,KAAKhB,EAAY,MAAM,MAAM,SAAS,QAAQ,CAAC,KAAKA,EAAY,eAAe,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,sDAAsD,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,2BAA2B,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,4BAA4B,EAAE,IAAI,CAAC,KAAKA,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,8BAA8B,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,4CAA4C,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,4DAA4D,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,kCAAkC,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,YAAY,sDAAsD,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,YAAY,8CAA8C,EAAE,YAAY,CAAC,KAAKA,EAAY,OAAO,MAAM,eAAe,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,YAAY,8BAA8B,EAAE,cAAc,CAAC,KAAKA,EAAY,OAAO,MAAM,iBAAiB,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,YAAY,uCAAuC,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAO,YAAY,qCAAqC,EAAE,KAAK,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,IAAO,YAAY,wCAAwC,EAAE,KAAK,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,KAAK,YAAY,iDAAiD,EAAE,oBAAoB,CAAC,KAAKA,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,KAAK,YAAY,0CAA0C,EAAE,gBAAgB,CAAC,KAAKA,EAAY,OAAO,MAAM,mBAAmB,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,YAAY,yCAAyC,EAAE,gBAAgB,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,YAAY,oDAAoD,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,YAAY,2CAA2C,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,YAAY,0DAA0D,EAAE,SAAS,CAAC,KAAKA,EAAY,QAAQ,MAAM,YAAY,aAAa,KAAK,cAAc,MAAM,YAAY,yCAAyC,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,YAAY,yCAAyC,OAAO,GAAO,CAACkB,EAAM,QAAQ,EAAE,OAAO,CAAC,KAAKlB,EAAY,QAAQ,MAAM,SAAS,aAAa,KAAK,cAAc,MAAM,YAAY,+BAA+B,EAAE,eAAe,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,YAAY,2BAA2B,OAAO,GAAO,CAACkB,EAAM,MAAM,EAAE,WAAW,CAAC,KAAKlB,EAAY,MAAM,MAAM,aAAa,YAAY,uCAAuC,EAAE,WAAW,CAAC,KAAKA,EAAY,QAAQ,MAAM,cAAc,aAAa,KAAK,cAAc,MAAM,YAAY,wDAAwD,CAAC,CAAC,EAAE,EAAY,aAAaiB,C,mDCtD79GnB,EAAU,UAAU,CAAC,CAAC,EAAe,EAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,CAAC,EAAe,EAAI,CAAC,0SAA0S,EAAe,EAAU,c"}