{"version":3,"file":"Slider.DXe2CotX.mjs","names":["useRef","useState","useCallback","c"],"sources":["https:/framerusercontent.com/modules/SRYBL032ybSIOLzDP3wI/EYxD0lkza9s4SZMcTiI3/Slider.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useRef,useState}from\"react\";// @ts-ignore — useIsStaticRenderer isn't in Framer's public type defs.\nimport{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const DEFAULTS={logos:[],direction:\"left\",speed:80,pauseOnHover:true,appear:true,hoverEffect:true,logoHeight:48,gap:48,paddingX:0,paddingY:0,backgroundColor:\"rgba(0, 0, 0, 0)\",fadeEnabled:true,fadeWidth:80,fadeIntensity:1,grayscale:false,blur:0,opacity:1};const SYSTEM_FONT='-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif';const clamp=(v,min,max)=>Math.max(min,Math.min(max,v));/* ------------------------------------------------------------------ *\n * Injected CSS — keyframes + hover rules, added to <head> once at\n * runtime (same pattern as our other approved components). Everything\n * animates transform/opacity/filter so it runs on the compositor; the\n * scroll distance arrives via the --lmq-shift custom property in px.\n * ------------------------------------------------------------------ */const STYLE_ID=\"lmq-styles-v1\";const GLOBAL_CSS=`\n@keyframes lmq-scroll {\n  from { transform: translate3d(0, 0, 0) }\n  to   { transform: translate3d(calc(-1 * var(--lmq-shift, 0px)), 0, 0) }\n}\n@keyframes lmq-appear {\n  from { opacity: 0; transform: translateY(14px); filter: blur(8px) }\n}\n.lmq-pause:hover .lmq-track { animation-play-state: paused }\n.lmq-hover .lmq-img { transition: transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1) }\n.lmq-hover .lmq-img:hover { transform: translateY(-2px) scale(1.1); z-index: 2 }\n`;function injectStyles(){if(typeof document===\"undefined\")return;if(document.getElementById(STYLE_ID))return;const el=document.createElement(\"style\");el.id=STYLE_ID;el.textContent=GLOBAL_CSS;document.head.appendChild(el);}// A soft, eased edge feather for the mask. A smoothstep ramp (rather than a\n// straight linear one) lets logos melt into the edges instead of clipping on a\n// hard line — the premium look. Built as a handful of gradient stops because\n// CSS gradients can't take an easing keyword directly.\nfunction buildEdgeFade(fadeWidthPx,intensity){const edgeAlpha=clamp(1-intensity,0,1);const fw=Math.max(0,fadeWidthPx);const steps=6;const smoothstep=t=>t*t*(3-2*t);const alphaAt=t=>+(edgeAlpha+(1-edgeAlpha)*smoothstep(t)).toFixed(3);const stops=[];// Left feather: faded edge -> solid, across [0, fw].\nfor(let i=0;i<=steps;i++){const t=i/steps;stops.push(`rgba(0,0,0,${alphaAt(t)}) ${+(t*fw).toFixed(2)}px`);}// Right feather: solid -> faded edge, across [100% - fw, 100%].\nfor(let i=0;i<=steps;i++){const frac=i/steps// 0 at the inner edge, 1 at the outer edge\n;const pos=+((1-frac)*fw).toFixed(2);stops.push(`rgba(0,0,0,${alphaAt(1-frac)}) calc(100% - ${pos}px)`);}return`linear-gradient(to right, ${stops.join(\", \")})`;}/* ------------------------------------------------------------------ *\n * Component  (annotations MUST sit directly above the declaration)\n * ------------------------------------------------------------------ */export default function LogoMarquee(props){const{logos=DEFAULTS.logos,direction=DEFAULTS.direction,speed=DEFAULTS.speed,pauseOnHover=DEFAULTS.pauseOnHover,appear=DEFAULTS.appear,hoverEffect=DEFAULTS.hoverEffect,logoHeight=DEFAULTS.logoHeight,gap=DEFAULTS.gap,paddingX=DEFAULTS.paddingX,paddingY=DEFAULTS.paddingY,backgroundColor=DEFAULTS.backgroundColor,fadeEnabled=DEFAULTS.fadeEnabled,fadeWidth=DEFAULTS.fadeWidth,fadeIntensity=DEFAULTS.fadeIntensity,grayscale=DEFAULTS.grayscale,blur=DEFAULTS.blur,opacity=DEFAULTS.opacity,style}=props;const isStatic=typeof useIsStaticRenderer===\"function\"?useIsStaticRenderer():false;// Normalise to { image, factor }, dropping rows without an image. factor is\n// the per-logo size multiplier (1 = the base Logo Height).\nconst sources=(Array.isArray(logos)?logos:[]).filter(item=>item&&item.image).map(item=>({image:item.image,factor:Math.max(.05,(item.size??100)/100)}));// Per-logo size changes the group's width, so it must trigger re-measure.\nconst sizeKey=sources.map(s=>s.factor).join(\"|\");// Shared keyframes/hover rules — idempotent, SSR-safe.\ninjectStyles();const viewportRef=useRef(null);const groupRef=useRef(null);const[viewportWidth,setViewportWidth]=useState(0);const[groupWidth,setGroupWidth]=useState(0);// Honour prefers-reduced-motion: stop the auto-scroll and skip the\n// entrance for users who asked the OS for less motion.\nconst[reducedMotion,setReducedMotion]=useState(false);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>setReducedMotion(mq.matches);update();mq.addEventListener?.(\"change\",update);return()=>mq.removeEventListener?.(\"change\",update);},[]);// Measure a single logo group's width — the exact distance the track travels\n// per loop (offsetWidth includes the trailing gap, so the reset is\n// seamless). Logos are auto-width, so this is only final once images load;\n// a ResizeObserver plus each image's onLoad keep it correct.\nconst measure=useCallback(()=>{const viewport=viewportRef.current;const group=groupRef.current;if(!viewport||!group)return;setViewportWidth(viewport.clientWidth);setGroupWidth(group.offsetWidth);},[]);useEffect(()=>{measure();if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(()=>measure());const v=viewportRef.current;const g=groupRef.current;if(v)ro.observe(v);if(g)ro.observe(g);return()=>ro.disconnect();},[measure,sizeKey,logoHeight,gap]);// The scroll loop is pure CSS (lmq-scroll above): the track's transform\n// animates by exactly one group width on the compositor thread — no\n// per-frame JavaScript. Pause-on-hover is the CSS animation-play-state\n// rule on the root, which freezes position exactly where it is.\nconst scrollActive=!isStatic&&!reducedMotion&&groupWidth>0&&speed>0;const scrollDuration=scrollActive?groupWidth/speed:0;// Enough copies to cover the viewport plus one spare, so there is never a\n// visible gap as the row scrolls. Capped to keep the DOM sane.\nconst copies=groupWidth>0&&viewportWidth>0?clamp(Math.ceil(viewportWidth/groupWidth)+1,2,50):2;// Edge fade via a soft, eased mask gradient. Intensity controls how far the\n// edges fade toward transparent (1 = fully invisible, 0 = no fade); width\n// controls how wide the feather is.\nconst fade=fadeEnabled?buildEdgeFade(fadeWidth,fadeIntensity):undefined;const filterParts=[];if(grayscale)filterParts.push(\"grayscale(1)\");if(blur>0)filterParts.push(`blur(${blur}px)`);const filter=filterParts.length?filterParts.join(\" \"):undefined;const padX=Math.max(0,paddingX);const padY=Math.max(0,paddingY);// The tallest logo (largest per-logo size) sets the band's natural height.\nconst maxFactor=sources.reduce((m,s)=>Math.max(m,s.factor),1);// A guaranteed height floor so the strip can never collapse to 0 inside a\n// frame whose height resolves to \"auto\", and so the largest logo always\n// fits. The inner fill uses absolute insets (below), which honour this\n// min-height — a percentage-height chain wouldn't.\nconst rowHeight=Math.max(1,logoHeight)*maxFactor+padY*2;const rootStyle={position:\"relative\",width:\"100%\",height:\"100%\",minHeight:rowHeight,boxSizing:\"border-box\",background:backgroundColor,overflow:\"hidden\",...style};// Empty state — a quiet hint while editing; renders nothing meaningful once\n// logos are added. (All hooks above run unconditionally first.)\nif(sources.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{...rootStyle,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"div\",{style:{textAlign:\"center\",color:\"rgba(120,120,130,0.7)\",fontFamily:SYSTEM_FONT,fontSize:14,fontWeight:500},children:\"Add logos in the properties panel\"})});}// The clipping \"stage\" fills the root via absolute insets (so its height\n// resolves from the root's used height — min-height included — rather than a\n// percentage chain that breaks inside auto-height frames). Padding becomes\n// the inset. Carries the edge-fade mask and the entrance animation.\nconst stageStyle={position:\"absolute\",top:padY,bottom:padY,left:padX,right:padX,overflow:\"hidden\",WebkitMaskImage:fade,maskImage:fade,WebkitMaskRepeat:\"no-repeat\",maskRepeat:\"no-repeat\",WebkitMaskSize:\"100% 100%\",maskSize:\"100% 100%\"};const trackStyle={position:\"absolute\",top:0,bottom:0,left:0,display:\"flex\",alignItems:\"center\",width:\"max-content\",willChange:scrollActive?\"transform\":undefined,filter,opacity:clamp(opacity,0,1)};if(scrollActive){// Direction rides inside the shorthand so React never sees separate\n// (conflicting) animation longhands across renders.\nObject.assign(trackStyle,{\"--lmq-shift\":`${groupWidth}px`,animation:`lmq-scroll ${+scrollDuration.toFixed(4)}s linear infinite${direction===\"right\"?\" reverse\":\"\"}`});}// Each item owns its right-hand gap (gap between items + a trailing\n// paddingRight). That makes spacing uniform across the loop seam.\nconst groupStyle={display:\"inline-flex\",flexShrink:0,alignItems:\"center\",gap:`${Math.max(0,gap)}px`,paddingRight:`${Math.max(0,gap)}px`};// Per-logo hover needs the images to receive pointer events. Off on the\n// static renderer (no hover there) and when the effect is disabled, which\n// keeps the previous click-through behaviour.\nconst hoverEnabled=hoverEffect&&!isStatic;// Logos are sized by HEIGHT with auto width, so each box hugs its actual\n// artwork — the gap between logos stays even regardless of aspect ratio or\n// per-logo size. Height is applied per-logo below.\nconst imgBaseStyle={width:\"auto\",flexShrink:0,display:\"block\",userSelect:\"none\",pointerEvents:hoverEnabled?\"auto\":\"none\"};const shouldAppear=appear&&!isStatic&&!reducedMotion;if(shouldAppear){// One-shot reveal. The \"to\" state is the implicit base style and fill\n// is \"both\", so it finishes clean — no leftover filter/transform kept\n// composited around the perpetually-moving track.\nstageStyle.animation=\"lmq-appear 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.08s both\";}const rootClass=[pauseOnHover&&!isStatic?\"lmq-pause\":\"\",hoverEnabled?\"lmq-hover\":\"\"].filter(Boolean).join(\" \")||undefined;return /*#__PURE__*/_jsx(\"div\",{style:rootStyle,className:rootClass,children:/*#__PURE__*/_jsx(\"div\",{ref:viewportRef,style:stageStyle,children:/*#__PURE__*/_jsx(\"div\",{className:\"lmq-track\",style:trackStyle,children:Array.from({length:copies}).map((_,c)=>/*#__PURE__*/_jsx(\"div\",{ref:c===0?groupRef:undefined,style:groupStyle,\"aria-hidden\":c>0?true:undefined,children:sources.map((item,i)=>/*#__PURE__*/_jsx(\"img\",{className:\"lmq-img\",src:item.image,alt:\"\",draggable:false,decoding:\"async\",onLoad:measure,style:{...imgBaseStyle,height:Math.max(1,logoHeight)*item.factor}},i))},c))})})});}/* ------------------------------------------------------------------ *\n * Property controls\n * ------------------------------------------------------------------ */addPropertyControls(LogoMarquee,{logos:{type:ControlType.Array,title:\"Logos\",control:{type:ControlType.Object,title:\"Logo\",controls:{image:{type:ControlType.Image,title:\"Image\"},size:{type:ControlType.Number,title:\"Size\",min:25,max:300,step:1,unit:\"%\",displayStepper:true,defaultValue:100}}},defaultValue:DEFAULTS.logos},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,defaultValue:DEFAULTS.direction},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:600,step:1,unit:\"px/s\",displayStepper:true,defaultValue:DEFAULTS.speed},pauseOnHover:{type:ControlType.Boolean,title:\"Pause on Hover\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:DEFAULTS.pauseOnHover},appear:{type:ControlType.Boolean,title:\"Entrance\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:DEFAULTS.appear},hoverEffect:{type:ControlType.Boolean,title:\"Hover Effect\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:DEFAULTS.hoverEffect},logoHeight:{type:ControlType.Number,title:\"Logo Height\",min:8,max:800,step:1,unit:\"px\",defaultValue:DEFAULTS.logoHeight},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:400,step:1,unit:\"px\",defaultValue:DEFAULTS.gap},paddingX:{type:ControlType.Number,title:\"Padding X\",min:0,max:400,step:1,unit:\"px\",defaultValue:DEFAULTS.paddingX},paddingY:{type:ControlType.Number,title:\"Padding Y\",min:0,max:400,step:1,unit:\"px\",defaultValue:DEFAULTS.paddingY},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:DEFAULTS.backgroundColor},fadeEnabled:{type:ControlType.Boolean,title:\"Edge Fade\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:DEFAULTS.fadeEnabled},fadeWidth:{type:ControlType.Number,title:\"Fade Width\",min:0,max:400,step:1,unit:\"px\",defaultValue:DEFAULTS.fadeWidth,hidden:p=>!p.fadeEnabled},fadeIntensity:{type:ControlType.Number,title:\"Fade Intensity\",min:0,max:1,step:.05,defaultValue:DEFAULTS.fadeIntensity,hidden:p=>!p.fadeEnabled},grayscale:{type:ControlType.Boolean,title:\"Grayscale\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:DEFAULTS.grayscale},blur:{type:ControlType.Number,title:\"Blur\",min:0,max:20,step:.5,unit:\"px\",defaultValue:DEFAULTS.blur},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.05,defaultValue:DEFAULTS.opacity}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LogoMarquee\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Slider.map"],"mappings":"2MAiBE,SAAS,GAAc,CAAyC,GAArC,OAAO,SAAW,KAAsB,SAAS,eAAe,CAAQ,EAAE,OAAO,IAAM,EAAG,SAAS,cAAc,OAAO,EAAE,EAAG,GAAG,EAAS,EAAG,YAAY,EAAW,SAAS,KAAK,YAAY,CAAE,CAAE,CAI9N,SAAS,EAAc,EAAY,EAAU,CAAC,IAAM,EAAU,EAAM,EAAE,EAAU,EAAE,CAAC,EAAQ,EAAG,KAAK,IAAI,EAAE,CAAW,EAAsB,EAAW,GAAG,EAAE,GAAG,EAAE,EAAE,GAAS,EAAQ,GAAG,EAAE,GAAW,EAAE,GAAW,EAAW,CAAC,EAAA,CAAG,QAAQ,CAAC,EAAQ,EAAM,CAAC,EACtP,IAAI,IAAI,EAAE,EAAE,GAAG,EAAM,IAAI,CAAC,IAAM,EAAE,EAAE,EAAM,EAAM,KAAK,cAAc,EAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,EAAA,CAAI,QAAQ,CAAC,EAAE,GAAG,CAAE,CAC1G,IAAI,IAAI,EAAE,EAAE,GAAG,EAAM,IAAI,CAAC,IAAM,EAAK,EAAE,EAChC,EAAI,GAAG,EAAE,GAAM,EAAA,CAAI,QAAQ,CAAC,EAAE,EAAM,KAAK,cAAc,EAAQ,EAAE,CAAI,EAAE,gBAAgB,EAAI,IAAI,CAAE,CAAC,MAAM,6BAA6B,EAAM,KAAK,IAAI,EAAE,EAAG,CAExF,SAAwB,EAAY,EAAM,CAAC,GAAK,CAAC,QAAM,EAAS,MAAM,YAAU,EAAS,UAAU,QAAM,EAAS,MAAM,eAAa,EAAS,aAAa,SAAO,EAAS,OAAO,cAAY,EAAS,YAAY,aAAW,EAAS,WAAW,MAAI,EAAS,IAAI,WAAS,EAAS,SAAS,WAAS,EAAS,SAAS,kBAAgB,EAAS,gBAAgB,cAAY,EAAS,YAAY,YAAU,EAAS,UAAU,gBAAc,EAAS,cAAc,YAAU,EAAS,UAAU,OAAK,EAAS,KAAK,UAAQ,EAAS,QAAQ,UAAO,EAAY,EAAS,OAAO,GAAsB,YAAW,EAAoB,EAExqB,GAAS,MAAM,QAAQ,CAAK,EAAE,EAAM,CAAC,EAAA,CAAG,OAAO,GAAM,GAAM,EAAK,KAAK,CAAC,CAAC,IAAI,IAAO,CAAC,MAAM,EAAK,MAAM,OAAO,KAAK,IAAI,KAAK,EAAK,MAAM,KAAK,GAAG,CAAC,EAAE,EAC/I,EAAQ,EAAQ,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,GAAG,EAC/C,EAAa,EAAE,IAAM,EAAYA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAO,CAAC,EAAc,GAAkBC,EAAS,CAAC,EAAO,CAAC,EAAW,IAAeA,EAAS,CAAC,EAEjK,CAAC,EAAc,GAAkBA,EAAS,EAAK,EAAE,MAAc,CAAC,GAAU,IAAS,QAAa,CAAC,EAAO,WAAW,OAAO,IAAM,EAAG,EAAO,WAAW,kCAAkC,EAAQ,MAAW,EAAiB,EAAG,OAAO,EAAkD,OAAhD,EAAO,EAAE,EAAG,mBAAmB,SAAS,CAAM,MAAY,EAAG,sBAAsB,SAAS,CAAM,CAAE,EAAE,CAAC,CAAC,EAIpV,IAAM,EAAQC,MAAgB,CAAC,IAAM,EAAS,EAAY,QAAc,EAAM,EAAS,QAAW,CAAC,GAAU,CAAC,IAAa,EAAiB,EAAS,WAAW,EAAE,GAAc,EAAM,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,MAAc,CAAW,GAAV,EAAQ,EAAK,OAAO,eAAiB,IAAY,OAAO,IAAM,EAAG,IAAI,mBAAmB,EAAQ,CAAC,EAAQ,EAAE,EAAY,QAAc,EAAE,EAAS,QAA8C,OAAnC,GAAE,EAAG,QAAQ,CAAC,EAAK,GAAE,EAAG,QAAQ,CAAC,MAAY,EAAG,WAAW,CAAE,EAAE,CAAC,EAAQ,EAAQ,EAAW,CAAG,CAAC,EAIld,IAAM,EAAa,CAAC,GAAU,CAAC,GAAe,EAAW,GAAG,EAAM,EAAQ,EAAe,EAAa,EAAW,EAAM,EAEjH,EAAO,EAAW,GAAG,EAAc,EAAE,EAAM,KAAK,KAAK,EAAc,CAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAGvF,EAAK,EAAY,EAAc,EAAU,CAAa,EAAE,IAAA,GAAgB,EAAY,CAAC,EAAK,GAAU,EAAY,KAAK,cAAc,EAAK,EAAK,GAAE,EAAY,KAAK,QAAQ,EAAK,IAAI,EAAE,IAAM,EAAO,EAAY,OAAO,EAAY,KAAK,GAAG,EAAE,IAAA,GAAgB,EAAK,KAAK,IAAI,EAAE,CAAQ,EAAQ,EAAK,KAAK,IAAI,EAAE,CAAQ,EACjT,EAAU,EAAQ,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAIE,EAAU,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,UAAxG,KAAK,IAAI,EAAE,CAAU,EAAE,EAAU,EAAK,EAAsF,UAAU,aAAa,WAAW,EAAgB,SAAS,SAAS,GAAG,EAAK,EAExN,GAAG,EAAQ,SAAS,EAAG,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAU,QAAQ,OAAO,WAAW,SAAS,eAAe,QAAQ,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,MAAM,wBAAwB,WAAW,EAAY,SAAS,GAAG,WAAW,GAAG,EAAE,SAAS,mCAAmC,CAAC,CAAC,CAAC,EAInU,IAAM,EAAW,CAAC,SAAS,WAAW,IAAI,EAAK,OAAO,EAAK,KAAK,EAAK,MAAM,EAAK,SAAS,SAAS,gBAAgB,EAAK,UAAU,EAAK,iBAAiB,YAAY,WAAW,YAAY,eAAe,YAAY,SAAS,WAAW,EAAQ,EAAW,CAAC,SAAS,WAAW,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,OAAO,WAAW,SAAS,MAAM,cAAc,WAAW,EAAa,YAAY,IAAA,GAAU,SAAO,QAAQ,EAAM,EAAQ,EAAE,CAAC,CAAC,EAAK,GAElb,OAAO,OAAO,EAAW,CAAC,cAAc,GAAG,EAAW,IAAI,UAAU,cAAc,CAAC,EAAe,QAAQ,CAAC,EAAE,mBAAmB,IAAY,QAAQ,WAAW,IAAI,CAAC,EAEpK,IAAM,GAAW,CAAC,QAAQ,cAAc,WAAW,EAAE,WAAW,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAG,EAAE,IAAI,aAAa,GAAG,KAAK,IAAI,EAAE,CAAG,EAAE,GAAG,EAGjI,EAAa,GAAa,CAAC,EAG3B,GAAa,CAAC,MAAM,OAAO,WAAW,EAAE,QAAQ,QAAQ,WAAW,OAAO,cAAc,EAAa,OAAO,MAAM,EAGmF,OAH9D,GAAQ,CAAC,GAAU,CAAC,IAGjK,EAAW,UAAU,4DAA0M,EAAK,MAAM,CAAC,MAAM,EAAU,UAA1J,CAAC,GAAc,CAAC,EAAS,YAAY,GAAG,EAAa,YAAY,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,IAAA,GAA8E,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAY,MAAM,EAAW,SAAsB,EAAK,MAAM,CAAC,UAAU,YAAY,MAAM,EAAW,SAAS,MAAM,KAAK,CAAC,OAAO,CAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAiB,EAAK,MAAM,CAAC,IAAIC,IAAI,EAAE,EAAS,IAAA,GAAU,MAAM,GAAW,cAAcA,EAAE,GAAO,IAAA,GAAU,SAAS,EAAQ,KAAK,EAAK,IAAiB,EAAK,MAAM,CAAC,UAAU,UAAU,IAAI,EAAK,MAAM,IAAI,GAAG,UAAU,GAAM,SAAS,QAAQ,OAAO,EAAQ,MAAM,CAAC,GAAG,GAAa,OAAO,KAAK,IAAI,EAAE,CAAU,EAAE,EAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,+BArE7uB,IAAyD,IAC5B,EAAO,EAAS,CAAC,MAAM,CAAC,EAAE,UAAU,OAAO,MAAM,GAAG,aAAa,GAAK,OAAO,GAAK,YAAY,GAAK,WAAW,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,gBAAgB,mBAAmB,YAAY,GAAK,UAAU,GAAG,cAAc,EAAE,UAAU,GAAM,KAAK,EAAE,QAAQ,CAAC,EAAQ,EAAY,sFAA4F,GAAO,EAAE,EAAI,IAAM,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,CAAC,CAAC,EAKvZ,EAAS,gBAAsB,EAAW;;;;;;;;;;;EAiEhD,EAAoB,EAAY,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,eAAe,GAAK,aAAa,GAAG,CAAC,CAAC,EAAE,aAAa,EAAS,KAAK,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,OAAO,OAAO,EAAE,aAAa,CAAC,OAAO,OAAO,EAAE,wBAAwB,GAAK,aAAa,EAAS,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,OAAO,eAAe,GAAK,aAAa,EAAS,KAAK,EAAE,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,MAAM,cAAc,KAAK,aAAa,EAAS,YAAY,EAAE,OAAO,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,KAAK,cAAc,MAAM,aAAa,EAAS,MAAM,EAAE,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,KAAK,cAAc,MAAM,aAAa,EAAS,WAAW,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,EAAS,UAAU,EAAE,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,EAAS,GAAG,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,EAAS,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,EAAS,QAAQ,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,EAAS,eAAe,EAAE,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,KAAK,cAAc,MAAM,aAAa,EAAS,WAAW,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,aAAa,EAAS,UAAU,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,EAAS,cAAc,OAAO,GAAG,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,KAAK,cAAc,MAAM,aAAa,EAAS,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,KAAK,aAAa,EAAS,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,aAAa,EAAS,OAAO,CAAC,CAAC"}