{"version":3,"file":"Wavebutton.4Wd7X_Pr.mjs","names":["_Fragment","useState","PhosphorIcons","PhosphorIcons.ArrowRight","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/ffXlgkUvcsNKVHHPyokK/jL5ogOJS5BjBqwC25xsL/Wavebutton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// @ts-ignore — useRouter is an internal but stable Framer routing hook\nimport{useRouter}from\"framer\";import{useCallback,useEffect,useRef,useState}from\"react\";// Phosphor icons via esm.sh. external=react -> shares Framer's React (no dual-React hook errors).\nimport*as PhosphorIcons from\"https://esm.sh/@phosphor-icons/react@2?external=react\";// Pure path builder. Returns the wave's filled region (for clip-path)\n// and its top edge (for the surface glow stroke).\nfunction buildWavePaths(w,h,o){const N=32;const sigma=Math.max(.05,o.spread);const TWO_PI=Math.PI*2;const pts=[];for(let i=0;i<=N;i++){const x=i/N*w;const nx=i/N;const d=(x-o.cursorX)/w;const g=Math.exp(-(d*d)/(2*sigma*sigma));const crest=o.waveHeight*h*o.progress*g;const ripple=o.rippleAmount*h*o.progress*Math.sin(nx*o.rippleFrequency*TWO_PI+o.phase);let fillH=o.progress*h+crest+ripple;if(fillH<0)fillH=0;if(fillH>h)fillH=h;let y=h-fillH;if(y<0)y=0;if(y>h)y=h;pts.push({x,y});}// Catmull-Rom -> cubic bezier for a smooth top edge\nlet seg=\"\";for(let i=0;i<pts.length-1;i++){const p0=pts[i-1]||pts[i];const p1=pts[i];const p2=pts[i+1];const p3=pts[i+2]||pts[i+1];const c1x=p1.x+(p2.x-p0.x)/6;const c1y=p1.y+(p2.y-p0.y)/6;const c2x=p2.x-(p3.x-p1.x)/6;const c2y=p2.y-(p3.y-p1.y)/6;seg+=` C ${c1x.toFixed(2)} ${c1y.toFixed(2)} ${c2x.toFixed(2)} ${c2y.toFixed(2)} ${p2.x.toFixed(2)} ${p2.y.toFixed(2)}`;}const y0=pts[0].y.toFixed(2);const edge=`M ${pts[0].x.toFixed(2)} ${y0}${seg}`;const region=`M 0 ${h.toFixed(2)} L 0 ${y0}${seg} L ${w.toFixed(2)} ${h.toFixed(2)} Z`;return{edge,region};}function isExternalLink(s){return/^(https?:)?\\/\\//i.test(s)||/^(mailto:|tel:)/i.test(s);}// normalise a link/route path so \"/was\", \"was\", \"./was\", \"/was/\" all match\nfunction normalizePath(p){if(!p)return\"/\";let s=p.split(\"#\")[0].split(\"?\")[0].trim();s=s.replace(/^\\.?\\//,\"/\");if(!s.startsWith(\"/\"))s=\"/\"+s;if(s.length>1)s=s.replace(/\\/+$/,\"\");return s||\"/\";}// File downloads: Framer serves uploads from its CDN under a hashed filename\n// and sends no Content-Disposition header, so a plain link saves e.g.\n// \"LpqoJ...Jiw.pdf\". The file is fetched as a Blob and saved under a readable\n// name instead. Framer code files cannot import from each other, so these\n// helpers are copied from SmartDownload.tsx — keep the two in sync.\nconst MAX_INLINE_BYTES=50*1024*1024;const TRANSLITERATIONS={ä:\"ae\",ö:\"oe\",ü:\"ue\",Ä:\"Ae\",Ö:\"Oe\",Ü:\"Ue\",ß:\"ss\"};// Umlauts are spelled out before the diacritics are stripped, otherwise\n// \"ü\" would collapse to \"u\" instead of \"ue\".\nfunction slugify(input){return input.replace(/[äöüÄÖÜß]/g,char=>TRANSLITERATIONS[char]??char).normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\").replace(/[^A-Za-z0-9]+/g,\"-\").replace(/^-+|-+$/g,\"\");}function fileExtension(url){if(!url)return\"\";const path=url.split(/[?#]/)[0];const segment=path.slice(path.lastIndexOf(\"/\")+1);const dot=segment.lastIndexOf(\".\");if(dot<=0)return\"\";const extension=segment.slice(dot+1).toLowerCase();return/^[a-z0-9]{1,8}$/.test(extension)?extension:\"\";}// \"ElasmOcean-Flyer.pdf\" typed with its extension must not become \"...-pdf.pdf\".\nfunction buildFileName(url,fileName,label){const extension=fileExtension(url);let raw=fileName.trim();if(extension&&raw.toLowerCase().endsWith(`.${extension}`)){raw=raw.slice(0,-(extension.length+1));}const base=slugify(raw)||slugify(label)||\"download\";return extension?`${base}.${extension}`:base;}function saveBlob(blob,name){const objectUrl=URL.createObjectURL(blob);const anchor=document.createElement(\"a\");anchor.href=objectUrl;anchor.download=name;anchor.rel=\"noopener\";anchor.style.display=\"none\";document.body.appendChild(anchor);anchor.click();document.body.removeChild(anchor);window.setTimeout(()=>URL.revokeObjectURL(objectUrl),6e4);}// accept custom icon names in any case (\"paypal-logo\", \"arrow line right\",\n// \"arrowLineRight\") and turn them into Phosphor's PascalCase export name.\nfunction toPascalIconName(s){return s.trim().split(/[-_\\s]+/).filter(Boolean).map(w=>w.charAt(0).toUpperCase()+w.slice(1)).join(\"\");}function Content({color,label,font,Icon,showIcon,iconWeight,iconSize,iconPosition,alignment,gap,padding}){// strip color from the font control so it can't override currentColor (inversion)\nconst{color:_ignore,...typo}=font||{};const iconEl=showIcon&&Icon?/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",flexShrink:0,color:\"currentColor\"},children:/*#__PURE__*/_jsx(Icon,{size:iconSize,weight:iconWeight,color:\"currentColor\"})}):null;const labelEl=label?/*#__PURE__*/_jsx(\"span\",{style:{...typo,color:\"currentColor\",whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",minWidth:0,textTransform:\"uppercase\"},children:label}):null;return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",color,display:\"flex\",alignItems:\"center\",justifyContent:alignment,gap,padding,boxSizing:\"border-box\"},children:iconPosition===\"leading\"?/*#__PURE__*/_jsxs(_Fragment,{children:[iconEl,labelEl]}):/*#__PURE__*/_jsxs(_Fragment,{children:[labelEl,iconEl]})});}/**\n * Wave Button — smooth underwater wave-fill on hover.\n * The wave bulges toward the cursor; a lighter wave rises over the deep base.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 280\n * @framerIntrinsicHeight 56\n */export default function WaveButton(props){const{linkType=\"link\",link=\"\",file=\"\",fileName=\"\",newTab=false,label=\"MEER ANZEIGEN\",font}=props;const isFile=linkType===\"file\";const href=isFile?file:link;const downloadName=isFile?buildFileName(file,fileName,label):\"\";const{showIcon=true,iconName=\"ArrowRight\",customIconName=\"\",iconWeight=\"regular\",iconSize=18,iconPosition=\"trailing\"}=props.icon||{};const{padding=\"16px 32px 16px 32px\",alignment=\"center\",gap=16,radius=100,borderWidth=0,borderColor=\"#0F5682\"}=props.layout||{};const{baseBackground=\"#0F5682\",baseForeground=\"#FFFFFF\",fillBackground=\"#2487AF\",fillForeground=\"#FFFFFF\"}=props.colors||{};const{riseDurationMs=700,waveHeight=.4,ripple=.5,showGlow=true,glowColor=\"rgba(255,255,255,0.6)\",disableOnTouch=true}=props.effect||{};// one \"Ripple\" knob -> sensible internal amplitude + speed (frequency fixed)\nconst rippleAmount=.06*ripple;const rippleSpeed=1.2*ripple;const rippleFrequency=2.5;const spread=.3// cursor-bulge width (fixed; good default)\n;const cursorEaseMs=180// cursor-follow smoothing (fixed)\n;// Framer client-side router — internal page links navigate without reload,\n// which keeps page transitions and fixes the preview 404.\nconst router=useRouter();const navigate=router?.navigate;const routes=router?.routes;const isStatic=useIsStaticRenderer();const[isDownloading,setIsDownloading]=useState(false);const customResolved=customIconName?toPascalIconName(customIconName):\"\";const Icon=customResolved&&PhosphorIcons[customResolved]||PhosphorIcons[iconName]||PhosphorIcons.ArrowRight;const containerRef=useRef(null);const fillRef=useRef(null);const crestPathRef=useRef(null);const sizeRef=useRef({w:0,h:0});const[size,setSize]=useState({w:0,h:0});// Disable the hover effect on touch / no-hover devices (no cursor to follow).\nconst[noHover,setNoHover]=useState(false);const effectDisabled=disableOnTouch&&noHover;// animation state in refs (no re-renders)\nconst progress=useRef(0);const targetProgress=useRef(0);const cursorX=useRef(0);const targetCursorX=useRef(0);const cursorInit=useRef(false);const phase=useRef(0);const lastT=useRef(null);const raf=useRef(null);const running=useRef(false);const reduceMotion=useRef(false);// latest params for the loop (avoids re-subscribing the rAF)\nconst paramsRef=useRef({});paramsRef.current={riseDurationMs,cursorEaseMs,waveHeight,spread,rippleAmount,rippleFrequency,rippleSpeed};// per-frame step. Returns false when idle so the loop can stop.\nconst tickRef=useRef();tickRef.current=t=>{const{w,h}=sizeRef.current;if(w===0||h===0)return true;if(lastT.current==null)lastT.current=t;let dt=(t-lastT.current)/1e3;lastT.current=t;if(dt>.05)dt=.05;const P=paramsRef.current;const kP=3/Math.max(.05,P.riseDurationMs/1e3);progress.current+=(targetProgress.current-progress.current)*(1-Math.exp(-kP*dt));const kC=3/Math.max(.02,P.cursorEaseMs/1e3);cursorX.current+=(targetCursorX.current-cursorX.current)*(1-Math.exp(-kC*dt));if(!reduceMotion.current&&P.rippleSpeed>0)phase.current+=dt*P.rippleSpeed*Math.PI;const{edge,region}=buildWavePaths(w,h,{cursorX:cursorX.current,progress:progress.current,phase:phase.current,waveHeight:P.waveHeight,spread:P.spread,rippleAmount:reduceMotion.current?0:P.rippleAmount,rippleFrequency:P.rippleFrequency});if(fillRef.current)fillRef.current.style.clipPath=`path(\"${region}\")`;if(crestPathRef.current)crestPathRef.current.setAttribute(\"d\",edge);const idle=targetProgress.current===0&&progress.current<.002;if(idle){progress.current=0;if(fillRef.current)fillRef.current.style.clipPath='path(\"M 0 0 L 0 0 L 0 0 Z\")';return false;}return true;};const frame=useCallback(t=>{const cont=tickRef.current?tickRef.current(t):false;if(cont){raf.current=requestAnimationFrame(frame);}else{running.current=false;raf.current=null;}},[]);const startLoop=useCallback(()=>{if(running.current)return;running.current=true;lastT.current=null;raf.current=requestAnimationFrame(frame);},[frame]);// measure\nuseEffect(()=>{const el=containerRef.current;if(!el)return;const ro=new ResizeObserver(entries=>{const r=entries[0].contentRect;sizeRef.current={w:r.width,h:r.height};setSize({w:r.width,h:r.height});if(!cursorInit.current){targetCursorX.current=r.width/2;cursorX.current=r.width/2;cursorInit.current=true;}});ro.observe(el);return()=>ro.disconnect();},[]);useEffect(()=>{reduceMotion.current=typeof window!==\"undefined\"&&!!window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;},[]);useEffect(()=>{const mq=window.matchMedia?.(\"(hover: none)\");if(!mq)return;const update=()=>setNoHover(mq.matches);update();mq.addEventListener?.(\"change\",update);return()=>mq.removeEventListener?.(\"change\",update);},[]);useEffect(()=>{return()=>{if(raf.current)cancelAnimationFrame(raf.current);running.current=false;};},[]);const onMove=e=>{if(effectDisabled)return;const el=containerRef.current;if(!el)return;const rect=el.getBoundingClientRect();targetCursorX.current=e.clientX-rect.left-borderWidth;startLoop();};const onEnter=()=>{if(effectDisabled)return;targetProgress.current=1;startLoop();};const onLeave=()=>{if(effectDisabled)return;targetProgress.current=0;startLoop();};const onDown=()=>{if(effectDisabled)return;targetProgress.current=1;startLoop();};// Internal page links go through Framer's router (no reload, keeps transitions).\n// External URLs, new tab, modifier-clicks and #section anchors fall back to the <a>.\nconst onClickLink=e=>{if(!link||e.defaultPrevented)return;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;if(newTab||isExternalLink(link)||link.startsWith(\"#\"))return;if(!navigate||!routes)return;const target=normalizePath(link);let routeId=null;for(const[id,route]of Object.entries(routes)){if(normalizePath(route?.path)===target){routeId=id;break;}}if(routeId==null)return;// unknown route -> let the <a> handle it\ne.preventDefault();navigate(routeId,\"\");};// File mode: fetch the upload and save it under the readable name. Any\n// failure falls back to opening the file itself, so the download never breaks.\nconst onClickFile=async e=>{if(!file||isStatic||e.defaultPrevented)return;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;if(typeof window===\"undefined\"||typeof fetch!==\"function\")return;if(typeof URL===\"undefined\"||!URL.createObjectURL)return;e.preventDefault();if(isDownloading)return;setIsDownloading(true);try{const response=await fetch(file,{mode:\"cors\",credentials:\"omit\"});if(!response.ok){throw new Error(`Request failed with ${response.status}`);}const declaredSize=Number(response.headers.get(\"content-length\"));if(Number.isFinite(declaredSize)&&declaredSize>MAX_INLINE_BYTES){throw new Error(\"File too large to rename in the browser\");}saveBlob(await response.blob(),downloadName);}catch{const opened=window.open(file,\"_blank\",\"noopener,noreferrer\");if(!opened)window.location.href=file;}finally{setIsDownloading(false);}};const Wrapper=href?\"a\":\"div\";const wrapperProps=!href?{}:isFile?{href,download:downloadName,\"aria-busy\":isDownloading||undefined}:{href,target:newTab?\"_blank\":undefined,rel:newTab?\"noopener noreferrer\":undefined};const layerBase={position:\"absolute\",inset:0,pointerEvents:\"none\"};const contentProps={label,font,Icon,showIcon,iconWeight,iconSize,iconPosition,alignment,gap,padding};return /*#__PURE__*/_jsxs(Wrapper,{ref:containerRef,...wrapperProps,onClick:isFile?onClickFile:onClickLink,onPointerMove:onMove,onPointerEnter:onEnter,onPointerLeave:onLeave,onPointerDown:onDown,style:{position:\"relative\",display:\"block\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,border:borderWidth>0?`${borderWidth}px solid ${borderColor}`:\"none\",background:baseBackground,cursor:isDownloading?\"progress\":\"pointer\",userSelect:\"none\",textDecoration:\"none\",boxSizing:\"border-box\",WebkitTapHighlightColor:\"transparent\"},children:[/*#__PURE__*/_jsx(Content,{color:baseForeground,...contentProps}),!effectDisabled&&/*#__PURE__*/_jsx(\"div\",{ref:fillRef,style:{...layerBase,background:fillBackground,clipPath:'path(\"M 0 0 L 0 0 L 0 0 Z\")',willChange:\"clip-path\"},children:/*#__PURE__*/_jsx(Content,{color:fillForeground,...contentProps})}),!effectDisabled&&showGlow&&size.w>0&&size.h>0&&/*#__PURE__*/_jsx(\"svg\",{viewBox:`0 0 ${size.w} ${size.h}`,preserveAspectRatio:\"none\",style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\",overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"path\",{ref:crestPathRef,d:\"\",fill:\"none\",stroke:glowColor,strokeWidth:1.5,strokeLinecap:\"round\",style:{filter:\"blur(0.4px)\"}})})]});}WaveButton.displayName=\"Wave Button\";addPropertyControls(WaveButton,{linkType:{type:ControlType.Enum,title:\"Ziel\",options:[\"link\",\"file\"],optionTitles:[\"Link\",\"Datei\"],defaultValue:\"link\",displaySegmentedControl:true},link:{type:ControlType.Link,title:\"Link\",description:\"Page in this site, a section, or external URL.\",hidden:p=>p.linkType===\"file\"},file:{type:ControlType.File,title:\"Datei\",allowedFileTypes:[\"pdf\",\"doc\",\"docx\",\"xls\",\"xlsx\",\"zip\",\"jpg\",\"jpeg\",\"png\"],description:\"Upload. Klick l\\xe4dt die Datei herunter.\",hidden:p=>p.linkType!==\"file\"},fileName:{type:ControlType.String,title:\"Dateiname\",defaultValue:\"\",placeholder:\"z. B. ElasmOcean-Flyer-2026-01\",description:\"Name beim Speichern, ohne Endung. Leer = Button-Text.\",hidden:p=>p.linkType!==\"file\"},newTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false,hidden:p=>p.linkType===\"file\"||!p.link},label:{type:ControlType.String,title:\"Label\",defaultValue:\"MEER ANZEIGEN\",description:\"Button text. Bindable (CMS / component prop).\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontSize:16,defaultValue:{fontFamily:\"Montserrat\",fontWeight:500,fontSize:16,letterSpacing:\"0.1em\",lineHeight:\"1\"}},icon:{type:ControlType.Object,title:\"Icon\",controls:{showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},iconName:{type:ControlType.Enum,title:\"Icon\",options:[\"ArrowRight\",\"ArrowUpRight\",\"ArrowLineRight\",\"CaretRight\",\"DownloadSimple\",\"Download\",\"ArrowLineDown\",\"ArrowDown\",\"ArrowCircleDown\",\"ArrowSquareDown\",\"FileArrowDown\",\"CloudArrowDown\",\"FloppyDisk\",\"Export\",\"ArrowFatLineDown\",\"ArrowFatDown\",\"Play\",\"Heart\",\"Plus\",\"Check\",\"Tray\",\"Archive\",\"Waves\"],optionTitles:[\"Arrow Right\",\"Arrow Up Right\",\"Arrow Line Right\",\"Caret Right\",\"Download Simple\",\"Download\",\"Arrow Line Down\",\"Arrow Down\",\"Arrow Circle Down\",\"Arrow Square Down\",\"File Arrow Down\",\"Cloud Arrow Down\",\"Floppy Disk\",\"Export\",\"Arrow Fat Line Down\",\"Arrow Fat Down\",\"Play\",\"Heart\",\"Plus\",\"Check\",\"Tray\",\"Archive\",\"Waves\"],defaultValue:\"ArrowRight\",hidden:p=>!p.showIcon},customIconName:{type:ControlType.String,title:\"Custom\",placeholder:\"e.g. PaypalLogo or paypal-logo\",defaultValue:\"\",description:\"Any Phosphor name (any case). Overrides the dropdown.\",hidden:p=>!p.showIcon},iconWeight:{type:ControlType.Enum,title:\"Weight\",options:[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"],optionTitles:[\"Thin\",\"Light\",\"Regular\",\"Bold\",\"Fill\",\"Duotone\"],defaultValue:\"regular\",hidden:p=>!p.showIcon},iconSize:{type:ControlType.Number,title:\"Size\",min:8,max:80,step:1,defaultValue:18,hidden:p=>!p.showIcon},iconPosition:{type:ControlType.Enum,title:\"Position\",options:[\"leading\",\"trailing\"],optionTitles:[\"Leading\",\"Trailing\"],defaultValue:\"trailing\",description:\"Icon before or after the label.\",hidden:p=>!p.showIcon}}},layout:{type:ControlType.Object,title:\"Layout\",controls:{padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"16px 32px 16px 32px\"},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\"],optionTitles:[\"Left\",\"Center\",\"Right\",\"Space Between\"],defaultValue:\"center\",description:\"Where label and icon sit.\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:80,step:1,unit:\"px\",defaultValue:16,description:\"Min. space between label and icon.\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,defaultValue:100},borderWidth:{type:ControlType.Number,title:\"Border\",min:0,max:8,step:1,defaultValue:0},borderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"#0F5682\",hidden:p=>!p.borderWidth}}},colors:{type:ControlType.Object,title:\"Colors\",controls:{baseBackground:{type:ControlType.Color,title:\"Background\",defaultValue:\"#0F5682\"},baseForeground:{type:ControlType.Color,title:\"Text & Icon\",defaultValue:\"#FFFFFF\"},fillBackground:{type:ControlType.Color,title:\"Wave BG\",defaultValue:\"#2487AF\",description:\"Background of the rising wave.\"},fillForeground:{type:ControlType.Color,title:\"Wave Text\",defaultValue:\"#FFFFFF\"}}},effect:{type:ControlType.Object,title:\"Effect\",controls:{riseDurationMs:{type:ControlType.Number,title:\"Speed\",min:150,max:2e3,step:10,unit:\"ms\",defaultValue:700,description:\"How fast the wave fills on hover.\"},waveHeight:{type:ControlType.Number,title:\"Wave Height\",min:0,max:1,step:.05,defaultValue:.4,description:\"How much it bulges toward the cursor.\"},ripple:{type:ControlType.Number,title:\"Ripple\",min:0,max:1,step:.05,defaultValue:.5,description:\"Surface movement. 0 = flat, 1 = lively.\"},showGlow:{type:ControlType.Boolean,title:\"Surface Glow\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Thin highlight along the wave edge.\"},glowColor:{type:ControlType.Color,title:\"Glow Color\",defaultValue:\"rgba(255,255,255,0.6)\",hidden:p=>!p.showGlow},disableOnTouch:{type:ControlType.Boolean,title:\"Disable on Touch\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Turn the hover effect off on touch devices.\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WaveButton\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"280\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"56\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Wavebutton.map"],"mappings":"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"}