{"version":3,"file":"NumberCounter.B2msItcm.mjs","names":[],"sources":["https:/framerusercontent.com/modules/DVegmwn59xHBSYKAZoZI/lKkX9dWHOFvMIlw7QTP4/NumberCounter.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const NumberCounterStyles={container:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}};const useForceInlineStyles=(ref,styles)=>{useEffect(()=>{if(ref.current&&styles){// Use a small timeout to ensure it runs after Framer styling\nconst timeoutId=setTimeout(()=>{// Apply each style as an inline style with !important\nObject.entries(styles).forEach(([property,value])=>{ref.current.style.setProperty(property,value,\"important\");});},50);return()=>clearTimeout(timeoutId);}},[ref,styles]);};// Convert to a functional component that uses the hook\nconst CounterText=props=>{const spanRef=useRef(null);// Extract all style props\nconst{font,fontType,color,verticalAlign,children,...otherProps}=props;// Determine the final style values\nconst fontFamily=props.fontFamily||font&&font.fontFamily||fontType&&fontType.fontFamily||\"Inter\";const fontSize=props.fontSize||font&&font.fontSize||fontType&&fontType.fontSize||\"16px\";const fontWeight=props.fontWeight||font&&font.fontWeight||fontType&&fontType.fontWeight||400;const lineHeight=props.lineHeight||font&&font.lineHeight||fontType&&fontType.lineHeight||\"1.2\";const letterSpacing=props.letterSpacing||font&&font.letterSpacing||fontType&&fontType.letterSpacing||\"normal\";const textAlign=props.textAlign||font&&font.textAlign||fontType&&fontType.textAlign||\"left\";const fontStyle=props.fontStyle||font&&font.fontStyle||fontType&&fontType.fontStyle||\"normal\";// Create a style object for our hook\nconst styles={color:color||\"#000\",\"font-family\":fontFamily,\"font-size\":fontSize,\"font-weight\":fontWeight.toString(),\"line-height\":lineHeight,\"letter-spacing\":letterSpacing,\"text-align\":textAlign,\"font-style\":fontStyle,padding:\"0\",margin:\"0\",\"box-sizing\":\"content-box\",\"white-space\":\"nowrap\",display:\"inline-block\"};// Handle vertical alignment\nlet alignSelf=\"baseline\";switch(verticalAlign){case\"top\":alignSelf=\"flex-start\";break;case\"middle\":alignSelf=\"center\";break;case\"bottom\":alignSelf=\"flex-end\";break;default:alignSelf=\"baseline\";}styles[\"align-self\"]=alignSelf;// Use our hook to force these styles\nuseForceInlineStyles(spanRef,styles);return /*#__PURE__*/_jsx(\"span\",{ref:spanRef,...otherProps,children:children});};/**\n * @framerDisableUnlink\n */export function NumberCounter(props){const{start,end,speed,gapSize,prefixText,suffixText,prefixFont,suffixFont,prefixColor,suffixColor,prefixPosition,suffixPosition,loop,decimalSep,textSize,fontType,textColor,replayCount,loopCount,incrementType,formatType,uppercaseRoman}=props;const[count,setCount]=useState(start);const[isVisible,setIsVisible]=useState(false);const[hasStarted,setHasStarted]=useState(false);const containerRef=useRef(null);const prevVisibleRef=useRef(false);useEffect(()=>{const observer=new IntersectionObserver(entries=>{setIsVisible(entries[0].isIntersecting);});if(containerRef.current){observer.observe(containerRef.current);}return()=>{if(containerRef.current){observer.unobserve(containerRef.current);}};},[]);// Reset counter when necessary\nuseEffect(()=>{// Start counting when component becomes visible\nif(isVisible&&!hasStarted){setCount(start);setHasStarted(true);}// Reset counter for loop functionality\nif(isVisible&&!prevVisibleRef.current&&loopCount&&hasStarted){setCount(start);}prevVisibleRef.current=isVisible;},[isVisible,start,loopCount,hasStarted]);// Handle the counting logic\nuseEffect(()=>{// Only count when visible in the viewport\nconst shouldCount=isVisible&&hasStarted;if(shouldCount){const step=incrementType===\"integer\"?1:.1;const timer=setInterval(()=>{setCount(prev=>{const next=parseFloat((prev+step).toFixed(2));return next>=end?end:next;});},speed);return()=>clearInterval(timer);}},[count,end,isVisible,speed,incrementType,hasStarted]);// Handle looping\nuseEffect(()=>{if(loop&&count>=end){const loopTimer=setTimeout(()=>{setCount(start);},1e3);return()=>clearTimeout(loopTimer);}},[count,end,loop,start]);const toRoman=num=>{if(num<=0)return\"N/A\";if(num>=4e3)return num.toString();const romanNumerals=[{value:1e3,numeral:\"M\"},{value:900,numeral:\"CM\"},{value:500,numeral:\"D\"},{value:400,numeral:\"CD\"},{value:100,numeral:\"C\"},{value:90,numeral:\"XC\"},{value:50,numeral:\"L\"},{value:40,numeral:\"XL\"},{value:10,numeral:\"X\"},{value:9,numeral:\"IX\"},{value:5,numeral:\"V\"},{value:4,numeral:\"IV\"},{value:1,numeral:\"I\"}];let result=\"\";let remaining=Math.floor(num);for(const{value,numeral}of romanNumerals){while(remaining>=value){result+=numeral;remaining-=value;}}return uppercaseRoman?result:result.toLowerCase();};const formatNumber=num=>{if(formatType===\"roman\"){return toRoman(num);}else if(decimalSep===\"period\"){return num.toLocaleString(\"de-DE\",{minimumFractionDigits:incrementType===\"integer\"?0:1});}else if(decimalSep===\"comma\"){return num.toLocaleString(\"en-US\",{minimumFractionDigits:incrementType===\"integer\"?0:1});}else{return num.toFixed(incrementType===\"integer\"?0:1);}};return /*#__PURE__*/_jsxs(motion.div,{ref:containerRef,style:{...NumberCounterStyles.container,gap:`${gapSize}px`,flexDirection:\"row\",alignItems:\"center\",display:\"flex\"},children:[/*#__PURE__*/_jsx(CounterText,{font:prefixFont,fontType:prefixFont,color:prefixColor,verticalAlign:prefixPosition,children:prefixText}),/*#__PURE__*/_jsx(CounterText,{font:fontType,fontType:fontType,color:textColor,children:formatNumber(count)}),/*#__PURE__*/_jsx(CounterText,{font:suffixFont,fontType:suffixFont,color:suffixColor,verticalAlign:suffixPosition,children:suffixText})]});}NumberCounter.defaultProps={start:1,end:100,speed:100,prefixText:\"\",suffixText:\"\",prefixPosition:\"baseline\",suffixPosition:\"baseline\",loop:false,decimalSep:\"comma\",formatType:\"numeric\",uppercaseRoman:true,fontType:{fontFamily:\"Inter\",fontSize:36,fontWeight:500,lineHeight:\"1.2\",letterSpacing:\"normal\",textAlign:\"center\",fontStyle:\"normal\",systemFont:true},textColor:\"#D3D3D3\",replayCount:false,incrementType:\"integer\"};addPropertyControls(NumberCounter,{replayCount:{type:ControlType.Boolean,title:\"Viewport\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:true},loopCount:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},formatType:{type:ControlType.Enum,title:\"Format\",defaultValue:\"numeric\",options:[\"numeric\",\"roman\"],optionTitles:[\"Numeric\",\"Roman\"]},uppercaseRoman:{type:ControlType.Boolean,title:\"Uppercase Roman\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:props=>props.formatType!==\"roman\"},fontType:{title:\"Font\",type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:true,defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Inter\",fontSize:36,fontWeight:500,lineHeight:\"1.2\",letterSpacing:\"normal\",textAlign:\"center\",fontStyle:\"normal\",systemFont:true}},textColor:{type:ControlType.Color,title:\"Font Color\",defaultValue:\"#D3D3D3\"},start:{type:ControlType.Number,title:\"Start Number\",defaultValue:1,displayStepper:true},end:{type:ControlType.Number,title:\"End Number\",defaultValue:10,displayStepper:true},decimalSep:{type:ControlType.Enum,title:\"Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma\",\"Decimal\",\"None\"],hidden:props=>props.formatType===\"roman\"},incrementType:{type:ControlType.Enum,title:\"Increment\",defaultValue:\"integer\",options:[\"integer\",\"decimal\"],optionTitles:[\"Integer\",\"Decimal\"],hidden:props=>props.formatType===\"roman\"},prefixText:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},prefixFont:{title:\"Prefix Font\",type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:true,defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Inter\",fontSize:36,fontWeight:500,lineHeight:\"1.2\",letterSpacing:\"normal\",textAlign:\"center\",fontStyle:\"normal\",systemFont:true}},prefixColor:{type:ControlType.Color,title:\"Prefix Color\"},prefixPosition:{type:ControlType.Enum,title:\"Prefix Position\",defaultValue:\"baseline\",options:[\"top\",\"middle\",\"baseline\",\"bottom\"],optionTitles:[\"Top\",\"Middle\",\"Baseline\",\"Bottom\"],description:\"Vertical alignment of the prefix text\"},suffixText:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},suffixFont:{title:\"Suffix Font\",type:ControlType.Font,controls:\"extended\",displayFontSize:true,displayTextAlignment:true,defaultFontType:\"sans-serif\",defaultValue:{fontFamily:\"Inter\",fontSize:36,fontWeight:500,lineHeight:\"1.2\",letterSpacing:\"normal\",textAlign:\"center\",fontStyle:\"normal\",systemFont:true}},suffixColor:{type:ControlType.Color,title:\"Suffix Color\"},suffixPosition:{type:ControlType.Enum,title:\"Suffix Position\",defaultValue:\"baseline\",options:[\"top\",\"middle\",\"baseline\",\"bottom\"],optionTitles:[\"Top\",\"Middle\",\"Baseline\",\"Bottom\"],description:\"Vertical alignment of the suffix text\"},gapSize:{type:ControlType.Number,title:\"Gap Size\",defaultValue:4,min:0,max:100,step:1,displayStepper:true},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:100,min:0,max:1e3,step:10,displayStepper:true,description:\"Discover more Framer resources at [Pixco](https://pixcodrops.com/resources)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"NumberCounter\":{\"type\":\"reactComponent\",\"name\":\"NumberCounter\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberCounter.map"],"mappings":"yWAUG,SAAgB,EAAc,EAAM,CAAC,GAAK,CAAC,QAAM,MAAI,QAAM,UAAQ,aAAW,aAAW,aAAW,aAAW,cAAY,cAAY,iBAAe,iBAAe,OAAK,aAAW,WAAS,WAAS,YAAU,cAAY,YAAU,gBAAc,aAAW,iBAAe,CAAC,EAAW,CAAC,EAAM,EAAS,CAAC,EAAS,EAAM,CAAM,CAAC,EAAU,EAAa,CAAC,GAAS,EAAM,CAAM,CAAC,EAAW,EAAc,CAAC,GAAS,EAAM,CAAO,EAAa,EAAO,KAAK,CAAO,EAAe,GAAO,EAAM,CAM/d,AANge,EAAU,IAAI,CAAC,IAAM,EAAS,IAAI,qBAAqB,GAAS,CAAC,EAAa,EAAQ,GAAG,eAAe,AAAE,GAAmE,OAA9D,EAAa,SAAS,EAAS,QAAQ,EAAa,QAAQ,CAAQ,IAAI,CAAC,AAAG,EAAa,SAAS,EAAS,UAAU,EAAa,QAAQ,AAAG,CAAE,EAAC,CAAE,EAAC,CACluB,EAAU,IAAI,CAEiE,AAD5E,IAAY,IAAY,EAAS,EAAM,CAAC,GAAc,EAAK,EAC3D,IAAY,EAAe,SAAS,GAAW,GAAY,EAAS,EAAM,CAAE,EAAe,QAAQ,CAAW,EAAC,CAAC,EAAU,EAAM,EAAU,CAAW,EAAC,CACzJ,EAAU,IAAI,CACd,IAAM,EAAY,GAAW,EAAW,GAAG,EAAY,CAAC,IAAM,EAAK,IAAgB,UAAU,EAAE,GAAS,EAAM,YAAY,IAAI,CAAC,EAAS,GAAM,CAAC,IAAM,EAAK,WAAW,CAAC,EAAK,GAAM,QAAQ,EAAE,CAAC,CAAC,OAAO,GAAM,EAAI,EAAI,CAAM,EAAC,AAAE,EAAC,EAAM,CAAC,MAAM,IAAI,cAAc,EAAM,AAAE,CAAC,EAAC,CAAC,EAAM,EAAI,EAAU,EAAM,EAAc,CAAW,EAAC,CAC1T,EAAU,IAAI,CAAC,GAAG,GAAM,GAAO,EAAI,CAAC,IAAM,EAAU,WAAW,IAAI,CAAC,EAAS,EAAM,AAAE,EAAC,IAAI,CAAC,MAAM,IAAI,aAAa,EAAU,AAAE,CAAC,EAAC,CAAC,EAAM,EAAI,EAAK,CAAM,EAAC,CAAC,IAAM,EAAQ,GAAK,CAAC,GAAG,GAAK,EAAE,MAAM,MAAM,GAAG,GAAK,IAAI,MAAO,GAAI,UAAU,CAAC,IAAM,EAAc,CAAC,CAAC,MAAM,IAAI,QAAQ,GAAI,EAAC,CAAC,MAAM,IAAI,QAAQ,IAAK,EAAC,CAAC,MAAM,IAAI,QAAQ,GAAI,EAAC,CAAC,MAAM,IAAI,QAAQ,IAAK,EAAC,CAAC,MAAM,IAAI,QAAQ,GAAI,EAAC,CAAC,MAAM,GAAG,QAAQ,IAAK,EAAC,CAAC,MAAM,GAAG,QAAQ,GAAI,EAAC,CAAC,MAAM,GAAG,QAAQ,IAAK,EAAC,CAAC,MAAM,GAAG,QAAQ,GAAI,EAAC,CAAC,MAAM,EAAE,QAAQ,IAAK,EAAC,CAAC,MAAM,EAAE,QAAQ,GAAI,EAAC,CAAC,MAAM,EAAE,QAAQ,IAAK,EAAC,CAAC,MAAM,EAAE,QAAQ,GAAI,CAAC,EAAK,EAAO,GAAO,EAAU,KAAK,MAAM,EAAI,CAAC,IAAI,GAAK,CAAC,QAAM,UAAQ,GAAG,EAAe,KAAM,GAAW,GAAuB,AAAhB,GAAQ,EAAQ,GAAW,EAAQ,OAAO,EAAe,EAAO,EAAO,aAAa,AAAE,EAAO,EAAa,GAAS,IAAa,QAAgB,EAAQ,EAAI,CAAU,IAAa,SAAiB,EAAI,eAAe,QAAQ,CAAC,sBAAsB,IAAgB,UAAU,EAAE,CAAE,EAAC,CAAU,IAAa,QAAgB,EAAI,eAAe,QAAQ,CAAC,sBAAsB,IAAgB,UAAU,EAAE,CAAE,EAAC,CAAc,EAAI,QAAQ,IAAgB,UAAU,EAAE,EAAE,CAAI,MAAoB,GAAM,EAAO,IAAI,CAAC,IAAI,EAAa,MAAM,CAAC,GAAG,EAAoB,UAAU,OAAO,EAAQ,IAAI,cAAc,MAAM,WAAW,SAAS,QAAQ,MAAO,EAAC,SAAS,CAAc,EAAK,EAAY,CAAC,KAAK,EAAW,SAAS,EAAW,MAAM,EAAY,cAAc,EAAe,SAAS,CAAW,EAAC,CAAc,EAAK,EAAY,CAAC,KAAK,EAAkB,WAAS,MAAM,EAAU,SAAS,EAAa,EAAM,AAAC,EAAC,CAAc,EAAK,EAAY,CAAC,KAAK,EAAW,SAAS,EAAW,MAAM,EAAY,cAAc,EAAe,SAAS,CAAW,EAAC,AAAC,CAAC,EAAC,AAAE,oBAAma,AAhB5jE,GAAyD,IAA6C,IAAkC,IAAoD,CAAM,EAAoB,CAAC,UAAU,CAAC,QAAQ,OAAO,eAAe,SAAS,WAAW,QAAS,CAAC,EAAO,EAAqB,CAAC,EAAI,IAAS,CAAC,EAAU,IAAI,CAAC,GAAG,EAAI,SAAS,EAAO,CAC/W,IAAM,EAAU,WAAW,IAAI,CAC/B,OAAO,QAAQ,EAAO,CAAC,QAAQ,CAAC,CAAC,EAAS,EAAM,GAAG,CAAC,EAAI,QAAQ,MAAM,YAAY,EAAS,EAAM,YAAY,AAAE,EAAC,AAAE,EAAC,GAAG,CAAC,MAAM,IAAI,aAAa,EAAU,AAAE,CAAC,EAAC,CAAC,EAAI,CAAO,EAAC,AAAE,EACrK,EAAY,GAAO,CAAC,IAAM,EAAQ,EAAO,KAAK,CAC/C,CAAC,OAAK,WAAS,QAAM,gBAAc,WAAS,GAAG,EAAW,CAAC,EAC1D,EAAW,EAAM,YAAY,GAAM,EAAK,YAAY,GAAU,EAAS,YAAY,QAAc,EAAS,EAAM,UAAU,GAAM,EAAK,UAAU,GAAU,EAAS,UAAU,OAAa,EAAW,EAAM,YAAY,GAAM,EAAK,YAAY,GAAU,EAAS,YAAY,IAAU,EAAW,EAAM,YAAY,GAAM,EAAK,YAAY,GAAU,EAAS,YAAY,MAAY,EAAc,EAAM,eAAe,GAAM,EAAK,eAAe,GAAU,EAAS,eAAe,SAAe,EAAU,EAAM,WAAW,GAAM,EAAK,WAAW,GAAU,EAAS,WAAW,OAAa,EAAU,EAAM,WAAW,GAAM,EAAK,WAAW,GAAU,EAAS,WAAW,SAC9oB,EAAO,CAAC,MAAM,GAAO,OAAO,cAAc,EAAW,YAAY,EAAS,cAAc,EAAW,UAAU,CAAC,cAAc,EAAW,iBAAiB,EAAc,aAAa,EAAU,aAAa,EAAU,QAAQ,IAAI,OAAO,IAAI,aAAa,cAAc,cAAc,SAAS,QAAQ,cAAe,EACtT,EAAU,WAAW,OAAO,EAAP,CAAsB,IAAI,MAAM,EAAU,aAAa,MAAM,IAAI,SAAS,EAAU,SAAS,MAAM,IAAI,SAAS,EAAU,WAAW,MAAM,QAAQ,EAAU,UAAY,CAC7J,SADoK,cAAc,EACvN,EAAqB,EAAQ,EAAO,CAAqB,EAAK,OAAO,CAAC,IAAI,EAAQ,GAAG,EAAoB,UAAS,EAAC,AAAE,EAQoiD,EAAc,aAAa,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,IAAI,WAAW,GAAG,WAAW,GAAG,eAAe,WAAW,eAAe,WAAW,MAAK,EAAM,WAAW,QAAQ,WAAW,UAAU,gBAAe,EAAK,SAAS,CAAC,WAAW,QAAQ,SAAS,GAAG,WAAW,IAAI,WAAW,MAAM,cAAc,SAAS,UAAU,SAAS,UAAU,SAAS,YAAW,CAAK,EAAC,UAAU,UAAU,aAAY,EAAM,cAAc,SAAU,EAAC,EAAoB,EAAc,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,cAAa,EAAM,aAAa,KAAK,cAAc,MAAM,QAAO,CAAK,EAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,cAAa,EAAM,aAAa,MAAM,cAAc,IAAK,EAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,cAAa,EAAM,aAAa,KAAK,cAAc,KAAM,EAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,aAAa,UAAU,QAAQ,CAAC,UAAU,OAAQ,EAAC,aAAa,CAAC,UAAU,OAAQ,CAAC,EAAC,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,kBAAkB,cAAa,EAAK,aAAa,MAAM,cAAc,KAAK,OAAO,GAAO,EAAM,aAAa,OAAQ,EAAC,SAAS,CAAC,MAAM,OAAO,KAAK,EAAY,KAAK,SAAS,WAAW,iBAAgB,EAAK,sBAAqB,EAAK,gBAAgB,aAAa,aAAa,CAAC,WAAW,QAAQ,SAAS,GAAG,WAAW,IAAI,WAAW,MAAM,cAAc,SAAS,UAAU,SAAS,UAAU,SAAS,YAAW,CAAK,CAAC,EAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAU,EAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,EAAE,gBAAe,CAAK,EAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,gBAAe,CAAK,EAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,aAAa,QAAQ,QAAQ,CAAC,QAAQ,SAAS,MAAO,EAAC,aAAa,CAAC,QAAQ,UAAU,MAAO,EAAC,OAAO,GAAO,EAAM,aAAa,OAAQ,EAAC,cAAc,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,aAAa,UAAU,QAAQ,CAAC,UAAU,SAAU,EAAC,aAAa,CAAC,UAAU,SAAU,EAAC,OAAO,GAAO,EAAM,aAAa,OAAQ,EAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAG,EAAC,WAAW,CAAC,MAAM,cAAc,KAAK,EAAY,KAAK,SAAS,WAAW,iBAAgB,EAAK,sBAAqB,EAAK,gBAAgB,aAAa,aAAa,CAAC,WAAW,QAAQ,SAAS,GAAG,WAAW,IAAI,WAAW,MAAM,cAAc,SAAS,UAAU,SAAS,UAAU,SAAS,YAAW,CAAK,CAAC,EAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,cAAe,EAAC,eAAe,CAAC,KAAK,EAAY,KAAK,MAAM,kBAAkB,aAAa,WAAW,QAAQ,CAAC,MAAM,SAAS,WAAW,QAAS,EAAC,aAAa,CAAC,MAAM,SAAS,WAAW,QAAS,EAAC,YAAY,uCAAwC,EAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,EAAG,EAAC,WAAW,CAAC,MAAM,cAAc,KAAK,EAAY,KAAK,SAAS,WAAW,iBAAgB,EAAK,sBAAqB,EAAK,gBAAgB,aAAa,aAAa,CAAC,WAAW,QAAQ,SAAS,GAAG,WAAW,IAAI,WAAW,MAAM,cAAc,SAAS,UAAU,SAAS,UAAU,SAAS,YAAW,CAAK,CAAC,EAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,cAAe,EAAC,eAAe,CAAC,KAAK,EAAY,KAAK,MAAM,kBAAkB,aAAa,WAAW,QAAQ,CAAC,MAAM,SAAS,WAAW,QAAS,EAAC,aAAa,CAAC,MAAM,SAAS,WAAW,QAAS,EAAC,YAAY,uCAAwC,EAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,gBAAe,CAAK,EAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,gBAAe,EAAK,YAAY,6EAA8E,CAAC,EAAC"}