var En=Object.defineProperty;var Cn=(e,t,r)=>t in e?En(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var oe=(e,t,r)=>(Cn(e,typeof t!="symbol"?t+"":t,r),r);import{r as a,R as V,j as p,a as Gt}from"./vendor-3ee1a481.js";var Sn=Object.defineProperty,gr=(e,t)=>{for(var r in t)Sn(e,r,{get:t[r],enumerable:!0,configurable:!0,set:n=>t[r]=()=>n})};if(typeof a.createContext!="function"){const e=['Remotion requires React.createContext, but it is "undefined".','If you are in a React Server Component, turn it into a client component by adding "use client" at the top of the file.',"","Before:",'  import {useCurrentFrame} from "remotion";',"","After:",'  "use client";','  import {useCurrentFrame} from "remotion";'];throw new Error(e.join("\n"))}var Ze=a.createContext({setClipRegion:()=>{throw new Error("NativeLayers not set")},clipRegion:null}),vr=({children:e})=>{const[t,r]=a.useState(null),n=a.useMemo(()=>({setClipRegion:r,clipRegion:t}),[t,r]);return typeof window<"u"&&a.useLayoutEffect(()=>{window.remotion_getClipRegion=()=>t},[t,r]),p.jsx(Ze.Provider,{value:n,children:e})};function qt(){return["NOD","E_EN","V"].join("")}var Zt=()=>["e","nv"].join(""),W=()=>{const e=typeof window<"u"&&window.remotion_isPlayer,t=typeof window<"u"&&typeof window.process<"u"&&typeof window.process.env<"u"&&(window.process[Zt()][qt()]==="test"||window.process[Zt()][qt()]==="production"&&typeof window<"u"&&typeof window.remotion_puppeteerTimeout<"u");return{isStudio:typeof window<"u"&&window.remotion_isStudio,isRendering:t,isPlayer:e}},Tn=V.createElement,yr=[],br=()=>{if(!W().isStudio)return;const e=new Proxy(Tn,{apply(t,r,n){if(yr.includes(n[0])){const[o,s,...c]=n,i={...s!=null?s:{},stack:new Error().stack};return Reflect.apply(t,r,[o,i,...c])}return Reflect.apply(t,r,n)}});V.createElement=e},Te=e=>{yr.push(e),br()},xr=a.createContext(!1),$n=({children:e})=>p.jsx(xr.Provider,{value:!0,children:e}),kt=()=>a.useContext(xr);function Mt(e){return!!e}var _e="4.0.223",Fn=()=>{if(typeof globalThis>"u")return;const e=globalThis.remotion_imported||typeof window<"u"&&window.remotion_imported;if(e){if(e===_e)return;throw new TypeError("🚨 Multiple versions of Remotion detected: ".concat([_e,typeof e=="string"?e:"an older version"].filter(Mt).join(" and "),". This will cause things to break in an unexpected way.\nCheck that all your Remotion packages are on the same version. If your dependencies depend on Remotion, make them peer dependencies. You can also run `npx remotion versions` from your terminal to see which versions are mismatching."))}globalThis.remotion_imported=_e,typeof window<"u"&&(window.remotion_imported=_e)},kn=(e,t)=>{const{style:r,...n}=e,o=a.useMemo(()=>({position:"absolute",top:0,left:0,right:0,bottom:0,width:"100%",height:"100%",display:"flex",flexDirection:"column",...r}),[r]);return p.jsx("div",{ref:t,style:o,...n})},Z=a.forwardRef(kn),H=a.createContext(null),fe=V.createContext({registerSequence:()=>{throw new Error("SequenceManagerContext not initialized")},unregisterSequence:()=>{throw new Error("SequenceManagerContext not initialized")},sequences:[]}),$e=V.createContext({hidden:{},setHidden:()=>{throw new Error("SequenceVisibilityToggle not initialized")}}),Mn=({children:e})=>{const[t,r]=a.useState([]),[n,o]=a.useState({}),s=a.useCallback(l=>{r(d=>[...d,l])},[]),c=a.useCallback(l=>{r(d=>d.filter(f=>f.id!==l))},[]),i=a.useMemo(()=>({registerSequence:s,sequences:t,unregisterSequence:c}),[s,t,c]),u=a.useMemo(()=>({hidden:n,setHidden:o}),[n]);return p.jsx(fe.Provider,{value:i,children:p.jsx($e.Provider,{value:u,children:e})})},he=a.createContext({getNonce:()=>0,fastRefreshes:0}),Rt=()=>{const e=a.useContext(he),[t,r]=a.useState(()=>e.getNonce()),n=a.useRef(e);return a.useEffect(()=>{n.current!==e&&(n.current=e,r(e.getNonce))},[e]),t},Er={};gr(Er,{useTimelineSetFrame:()=>Ar,useTimelinePosition:()=>pe,usePlayingState:()=>At,persistCurrentFrame:()=>Ir,getInitialFrameState:()=>Nr,getFrameForComposition:()=>_r,TimelineContext:()=>K,SetTimelineContext:()=>me});var ne=a.createContext({compositions:[],registerComposition:()=>{},unregisterComposition:()=>{},registerFolder:()=>{},unregisterFolder:()=>{},setCurrentCompositionMetadata:()=>{},updateCompositionDefaultProps:()=>{},folders:[],currentCompositionMetadata:null,canvasContent:null,setCanvasContent:()=>{}}),Ke=a.createContext({props:{},updateProps:()=>{throw new Error("Not implemented")},resetUnsaved:()=>{throw new Error("Not implemented")}}),Cr=V.createRef(),Sr=({children:e})=>{const[t,r]=V.useState({}),n=a.useCallback(({defaultProps:c,id:i,newProps:u})=>{r(l=>{var d;return{...l,[i]:typeof u=="function"?u((d=l[i])!=null?d:c):u}})},[]),o=a.useCallback(()=>{r({})},[]);a.useImperativeHandle(Cr,()=>({getProps:()=>t,setProps:r}),[t]);const s=a.useMemo(()=>({props:t,updateProps:n,resetUnsaved:o}),[t,o,n]);return p.jsx(Ke.Provider,{value:s,children:e})},Rn={"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";"},Kt={},In=e=>{Kt[e]||(console.warn(e),Kt[e]=!0)},Nn=e=>{for(const t of Object.keys(Rn))if(e.includes(t))return{containsHex:!0,hexCode:t};return{containsHex:!1}},pt=e=>e.startsWith("/")?pt(e.substring(1)):e,_n=e=>{if(typeof window<"u"&&window.remotion_staticBase){if(e.startsWith(window.remotion_staticBase))throw new Error('The value "'.concat(e,'" is already prefixed with the static base ').concat(window.remotion_staticBase,". You don't need to call staticFile() on it."));return"".concat(window.remotion_staticBase,"/").concat(pt(e))}return"/".concat(pt(e))},An=e=>e.split("/").map(o=>encodeURIComponent(o)).join("/"),Pn=e=>{if(e===null)throw new TypeError("null was passed to staticFile()");if(typeof e>"u")throw new TypeError("undefined was passed to staticFile()");if(e.startsWith("http://")||e.startsWith("https://"))throw new TypeError('staticFile() does not support remote URLs - got "'.concat(e,'". Instead, pass the URL without wrapping it in staticFile(). See: https://remotion.dev/docs/staticfile-remote-urls'));if(e.startsWith("..")||e.startsWith("./"))throw new TypeError('staticFile() does not support relative paths - got "'.concat(e,'". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths'));if(e.startsWith("/Users")||e.startsWith("/home")||e.startsWith("/tmp")||e.startsWith("/etc")||e.startsWith("/opt")||e.startsWith("/var")||e.startsWith("C:")||e.startsWith("D:")||e.startsWith("E:"))throw new TypeError('staticFile() does not support absolute paths - got "'.concat(e,'". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths'));if(e.startsWith("public/"))throw new TypeError('Do not include the public/ prefix when using staticFile() - got "'.concat(e,'". See: https://remotion.dev/docs/staticfile-relative-paths'));const t=Nn(e);t.containsHex&&In("WARNING: You seem to pass an already encoded path (path contains ".concat(t.hexCode,"). Since Remotion 4.0, the encoding is done by staticFile() itself. You may want to remove a encodeURIComponent() wrapping."));const r=An(e),n=_n(r);return n.startsWith("/")?n:"/".concat(n)},wt="remotion-date:",gt="remotion-file:",Vn=({data:e,indent:t,staticBase:r})=>{let n=!1,o=!1,s=!1,c=!1;try{return{serializedString:JSON.stringify(e,function(u,l){const d=this[u];return d instanceof Date?(n=!0,"".concat(wt).concat(d.toISOString())):d instanceof Map?(s=!0,l):d instanceof Set?(c=!0,l):typeof d=="string"&&r!==null&&d.startsWith(r)?(o=!0,"".concat(gt).concat(d.replace(r+"/",""))):l},t),customDateUsed:n,customFileUsed:o,mapUsed:s,setUsed:c}}catch(i){throw new Error("Could not serialize the passed input props to JSON: "+i.message)}},Tr=e=>JSON.parse(e,(t,r)=>typeof r=="string"&&r.startsWith(wt)?new Date(r.replace(wt,"")):typeof r=="string"&&r.startsWith(gt)?Pn(r.replace(gt,"")):r),ie=e=>W().isStudio?Tr(Vn({data:e,indent:2,staticBase:window.remotion_staticBase}).serializedString):e,Jt=!1,jn=()=>{Jt||(Jt=!0,console.warn("Called `getInputProps()` on the server. This function is not available server-side and has returned an empty object."),console.warn("To hide this warning, don't call this function on the server:"),console.warn("  typeof window === 'undefined' ? {} : getInputProps()"))},$r=()=>{if(typeof window>"u")return jn(),{};if(W().isPlayer)throw new Error("You cannot call `getInputProps()` from a <Player>. Instead, the props are available as React props from component that you passed as `component` prop.");const e=window.remotion_inputProps;return e?Tr(e):{}},Qt=["h264","h265","vp8","vp9","mp3","aac","wav","prores","h264-mkv","h264-ts","gif"];function Ln(e,t){if(!(typeof e>"u")){if(typeof e!="string")throw new TypeError('The "defaultCodec" prop '.concat(t," must be a string, but you passed a value of type ").concat(typeof e,"."));if(!Qt.includes(e))throw new Error('The "defaultCodec" prop '.concat(t," must be one of ").concat(Qt.join(", "),", but you passed ").concat(e,"."))}}function Be(e,t,r){if(typeof e!="number")throw new Error('The "'.concat(t,'" prop ').concat(r," must be a number, but you passed a value of type ").concat(typeof e));if(isNaN(e))throw new TypeError('The "'.concat(t,'" prop ').concat(r," must not be NaN, but is NaN."));if(!Number.isFinite(e))throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be finite, but is ").concat(e,"."));if(e%1!==0)throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be an integer, but is ").concat(e,"."));if(e<=0)throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be positive, but got ").concat(e,"."))}function It(e,t){const{allowFloats:r,component:n}=t;if(typeof e>"u")throw new Error('The "durationInFrames" prop '.concat(n," is missing."));if(typeof e!="number")throw new Error('The "durationInFrames" prop '.concat(n," must be a number, but you passed a value of type ").concat(typeof e));if(e<=0)throw new TypeError('The "durationInFrames" prop '.concat(n," must be positive, but got ").concat(e,"."));if(!r&&e%1!==0)throw new TypeError('The "durationInFrames" prop '.concat(n," must be an integer, but got ").concat(e,"."));if(!Number.isFinite(e))throw new TypeError('The "durationInFrames" prop '.concat(n," must be finite, but got ").concat(e,"."))}function Je(e,t,r){if(typeof e!="number")throw new Error('"fps" must be a number, but you passed a value of type '.concat(typeof e," ").concat(t));if(!Number.isFinite(e))throw new Error('"fps" must be a finite, but you passed '.concat(e," ").concat(t));if(isNaN(e))throw new Error('"fps" must not be NaN, but got '.concat(e," ").concat(t));if(e<=0)throw new TypeError('"fps" must be positive, but got '.concat(e," ").concat(t));if(r&&e>50)throw new TypeError("The FPS for a GIF cannot be higher than 50. Use the --every-nth-frame option to lower the FPS: https://remotion.dev/docs/render-as-gif")}var Xt=({calculated:e,compositionId:t,compositionFps:r,compositionHeight:n,compositionWidth:o,compositionDurationInFrames:s})=>{var m,w,E,b,x,g,T,S;const c='calculated by calculateMetadata() for the composition "'.concat(t,'"'),i='of the "<Composition />" component with the id "'.concat(t,'"'),u=(w=(m=e==null?void 0:e.width)!=null?m:o)!=null?w:void 0;Be(u,"width",e!=null&&e.width?c:i);const l=(b=(E=e==null?void 0:e.height)!=null?E:n)!=null?b:void 0;Be(l,"height",e!=null&&e.height?c:i);const d=(g=(x=e==null?void 0:e.fps)!=null?x:r)!=null?g:null;Je(d,e!=null&&e.fps?c:i,!1);const f=(S=(T=e==null?void 0:e.durationInFrames)!=null?T:s)!=null?S:null;It(f,{allowFloats:!1,component:'of the "<Composition />" component with the id "'.concat(t,'"')});const h=e==null?void 0:e.defaultCodec;return Ln(h,c),{width:u,height:l,fps:d,durationInFrames:f,defaultCodec:h}},Fr=({calculateMetadata:e,signal:t,defaultProps:r,originalProps:n,compositionId:o,compositionDurationInFrames:s,compositionFps:c,compositionHeight:i,compositionWidth:u})=>{var f,h;const l=e?e({defaultProps:r,props:n,abortSignal:t,compositionId:o}):null;if(l!==null&&typeof l=="object"&&"then"in l)return l.then(m=>{var T;const{height:w,width:E,durationInFrames:b,fps:x,defaultCodec:g}=Xt({calculated:m,compositionDurationInFrames:s,compositionFps:c,compositionHeight:i,compositionWidth:u,compositionId:o});return{width:E,height:w,fps:x,durationInFrames:b,id:o,defaultProps:ie(r),props:ie((T=m.props)!=null?T:n),defaultCodec:g!=null?g:null}});const d=Xt({calculated:l,compositionDurationInFrames:s,compositionFps:c,compositionHeight:i,compositionWidth:u,compositionId:o});return l===null?{...d,id:o,defaultProps:ie(r!=null?r:{}),props:ie(n),defaultCodec:null}:{...d,id:o,defaultProps:ie(r!=null?r:{}),props:ie((f=l.props)!=null?f:n),defaultCodec:(h=l.defaultCodec)!=null?h:null}},Dn=e=>{try{return{type:"success",result:Fr(e)}}catch(t){return{type:"error",error:t}}},Qe=a.createContext(null),kr=a.createRef(),Mr=e=>!!e.calculateMetadata,Un="remotion.propsUpdatedExternally",Rr=({children:e})=>{const[t,r]=a.useState(null),{compositions:n,canvasContent:o,currentCompositionMetadata:s}=a.useContext(ne),{fastRefreshes:c}=a.useContext(he),i=a.useMemo(()=>n.find(y=>o&&o.type==="composition"&&o.compositionId===y.id),[o,n]),u=n.find(y=>y.id===t),{props:l}=a.useContext(Ke),d=a.useMemo(()=>{var y;return typeof window>"u"||W().isPlayer?{}:(y=$r())!=null?y:{}},[]),[f,h]=a.useState({}),m=a.useMemo(()=>{var y;return i?(y=l[i.id])!=null?y:{}:{}},[l,i]),w=a.useMemo(()=>{var y;return u?(y=l[u.id])!=null?y:{}:{}},[l,u]),E=!!s,b=a.useCallback(({calculateMetadata:y,combinedProps:F,compositionDurationInFrames:C,compositionFps:M,compositionHeight:I,compositionId:R,compositionWidth:P,defaultProps:L})=>{const N=new AbortController;if(E)return N;const{signal:B}=N,_=Dn({compositionId:R,calculateMetadata:y,originalProps:F,signal:B,defaultProps:L,compositionDurationInFrames:C,compositionFps:M,compositionHeight:I,compositionWidth:P});if(_.type==="error")return h(A=>({...A,[R]:{type:"error",error:_.error}})),N;const O=_.result;return typeof O=="object"&&"then"in O?(h(A=>{const U=A[R];return(U==null?void 0:U.type)==="success"||(U==null?void 0:U.type)==="success-and-refreshing"?{...A,[R]:{type:"success-and-refreshing",result:U.result}}:{...A,[R]:{type:"loading"}}}),O.then(A=>{N.signal.aborted||h(U=>({...U,[R]:{type:"success",result:A}}))}).catch(A=>{N.signal.aborted||h(U=>({...U,[R]:{type:"error",error:A}}))})):h(A=>({...A,[R]:{type:"success",result:O}})),N},[E]),x=(o==null?void 0:o.type)==="composition"?o.compositionId:null;a.useImperativeHandle(kr,()=>({setCurrentRenderModalComposition:y=>{r(y)},reloadCurrentlySelectedComposition:()=>{var I,R,P,L,N,B;if(!x)return;const y=n.find(_=>_.id===x);if(!y)throw new Error("Could not find composition with id ".concat(x));const F=(I=l[x])!=null?I:{},C={...(R=y.defaultProps)!=null?R:{},...F!=null?F:{}},M={...C,...d!=null?d:{}};b({defaultProps:C,calculateMetadata:y.calculateMetadata,combinedProps:M,compositionDurationInFrames:(P=y.durationInFrames)!=null?P:null,compositionFps:(L=y.fps)!=null?L:null,compositionHeight:(N=y.height)!=null?N:null,compositionWidth:(B=y.width)!=null?B:null,compositionId:y.id})}}),[l,n,x,b,d]);const g=(i==null?void 0:i.id)===(u==null?void 0:u.id),T=a.useMemo(()=>{var y;return{...(y=i==null?void 0:i.defaultProps)!=null?y:{},...m!=null?m:{}}},[i==null?void 0:i.defaultProps,m]),S=a.useMemo(()=>({...T,...d!=null?d:{}}),[T,d]),v=i&&Mr(i),k=typeof window<"u"&&window.remotion_ignoreFastRefreshUpdate&&c<=window.remotion_ignoreFastRefreshUpdate;a.useEffect(()=>{var y,F,C,M;if(!k&&v){const I=b({calculateMetadata:i.calculateMetadata,combinedProps:S,compositionDurationInFrames:(y=i.durationInFrames)!=null?y:null,compositionFps:(F=i.fps)!=null?F:null,compositionHeight:(C=i.height)!=null?C:null,compositionWidth:(M=i.width)!=null?M:null,defaultProps:T,compositionId:i.id});return()=>{I.abort()}}},[v,T,b,S,i==null?void 0:i.calculateMetadata,i==null?void 0:i.durationInFrames,i==null?void 0:i.fps,i==null?void 0:i.height,i==null?void 0:i.id,i==null?void 0:i.width,k]),a.useEffect(()=>{k||window.dispatchEvent(new CustomEvent("remotion.propsUpdatedExternally"))},[c]),a.useEffect(()=>{var y,F,C,M,I;if(u&&!g){const R={...(y=u.defaultProps)!=null?y:{},...w!=null?w:{},...d!=null?d:{}},P=b({calculateMetadata:u.calculateMetadata,compositionDurationInFrames:(F=u.durationInFrames)!=null?F:null,compositionFps:(C=u.fps)!=null?C:null,compositionHeight:(M=u.height)!=null?M:null,compositionId:u.id,compositionWidth:(I=u.width)!=null?I:null,defaultProps:T,combinedProps:R});return()=>{P.abort()}}},[T,b,d,g,u,w]);const $=a.useMemo(()=>{const y=n.filter(F=>F.calculateMetadata===null);return{...f,...y.reduce((F,C)=>{var M;return{...F,[C.id]:{type:"success",result:{...C,defaultProps:(M=C.defaultProps)!=null?M:{}}}}},{})}},[n,f]);return p.jsx(Qe.Provider,{value:$,children:e})},Nt=e=>{const t=a.useContext(Qe),{props:r}=a.useContext(Ke),{compositions:n,canvasContent:o,currentCompositionMetadata:s}=a.useContext(ne),c=(o==null?void 0:o.type)==="composition"?o.compositionId:null,i=e!=null?e:c,u=n.find(d=>d.id===i),l=a.useMemo(()=>{var d;return u?(d=r[u.id])!=null?d:{}:{}},[r,u]);return a.useMemo(()=>{var d,f,h,m;return u?s?{type:"success",result:{...s,id:u.id,props:s.props,defaultProps:(d=u.defaultProps)!=null?d:{},defaultCodec:s.defaultCodec}}:Mr(u)?t[u.id]?t[u.id]:null:(It(u.durationInFrames,{allowFloats:!1,component:'in <Composition id="'.concat(u.id,'">')}),Je(u.fps,'in <Composition id="'.concat(u.id,'">'),!1),Be(u.width,"width",'in <Composition id="'.concat(u.id,'">')),Be(u.height,"height",'in <Composition id="'.concat(u.id,'">')),{type:"success",result:{width:u.width,height:u.height,fps:u.fps,id:u.id,durationInFrames:u.durationInFrames,defaultProps:(f=u.defaultProps)!=null?f:{},props:{...(h=u.defaultProps)!=null?h:{},...l!=null?l:{},...typeof window>"u"||W().isPlayer?{}:(m=$r())!=null?m:{}},defaultCodec:null}}):null},[u,t,s,l])},Xe=()=>{var s;const{canvasContent:e,compositions:t,currentCompositionMetadata:r}=a.useContext(ne),n=t.find(c=>(e==null?void 0:e.type)==="composition"&&c.id===e.compositionId),o=Nt((s=n==null?void 0:n.id)!=null?s:null);return a.useMemo(()=>{var c;return!o||o.type==="error"||o.type==="loading"||!n?null:{...o.result,defaultProps:(c=n.defaultProps)!=null?c:{},id:n.id,...r!=null?r:{},component:n.component}},[r,o,n])},K=a.createContext({frame:{},playing:!1,playbackRate:1,rootId:"",imperativePlaying:{current:!1},setPlaybackRate:()=>{throw new Error("default")},audioAndVideoTags:{current:[]}}),me=a.createContext({setFrame:()=>{throw new Error("default")},setPlaying:()=>{throw new Error("default")}}),_t=()=>"remotion.time-all",Ir=e=>{localStorage.setItem(_t(),JSON.stringify(e))},Nr=()=>{var r;const e=(r=localStorage.getItem(_t()))!=null?r:"{}";return JSON.parse(e)},_r=e=>{var n,o;const t=(n=localStorage.getItem(_t()))!=null?n:"{}",r=JSON.parse(t);return r[e]!==void 0?Number(r[e]):typeof window>"u"?0:(o=window.remotion_initialFrame)!=null?o:0},pe=()=>{var n,o;const e=Xe(),t=a.useContext(K);if(!e)return typeof window>"u"?0:(n=window.remotion_initialFrame)!=null?n:0;const r=(o=t.frame[e.id])!=null?o:W().isPlayer?0:_r(e.id);return Math.min(e.durationInFrames-1,r)},Ar=()=>{const{setFrame:e}=a.useContext(me);return e},At=()=>{const{playing:e,imperativePlaying:t}=a.useContext(K),{setPlaying:r}=a.useContext(me);return a.useMemo(()=>[e,r,t],[t,e,r])},ce=a.createContext(!1),vt=({children:e})=>p.jsx(ce.Provider,{value:!0,children:e}),Pt=()=>{var s,c,i;const e=a.useContext(H),t=(s=e==null?void 0:e.width)!=null?s:null,r=(c=e==null?void 0:e.height)!=null?c:null,n=(i=e==null?void 0:e.durationInFrames)!=null?i:null,o=Xe();return a.useMemo(()=>{if(!o)return null;const{id:u,durationInFrames:l,fps:d,height:f,width:h,defaultProps:m,props:w,defaultCodec:E}=o;return{id:u,width:t!=null?t:h,height:r!=null?r:f,fps:d,durationInFrames:n!=null?n:l,defaultProps:m,props:w,defaultCodec:E}},[n,r,t,o])},ee=()=>{const e=Pt(),t=a.useContext(ce),r=kt();if(!e)throw typeof window<"u"&&window.remotion_isPlayer||r?new Error(["No video config found. Likely reasons:","- You are probably calling useVideoConfig() from outside the component passed to <Player />. See https://www.remotion.dev/docs/player/examples for how to set up the Player correctly.","- You have multiple versions of Remotion installed which causes the React context to get lost."].join("-")):new Error("No video config found. You are probably calling useVideoConfig() from a component which has not been registered as a <Composition />. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions for more information.");if(!t)throw new Error("Called useVideoConfig() outside a Remotion composition.");return e},te=()=>{if(!a.useContext(ce))throw W().isPlayer?new Error("useCurrentFrame can only be called inside a component that was passed to <Player>. See: https://www.remotion.dev/docs/player/examples"):new Error("useCurrentFrame() can only be called inside a component that was registered as a composition. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions");const t=pe(),r=a.useContext(H),n=r?r.cumulatedFrom+r.relativeFrom:0;return t-n},Bn=({frame:e,children:t,active:r=!0})=>{var d;const n=te(),o=ee();if(typeof e>"u")throw new Error("The <Freeze /> component requires a 'frame' prop, but none was passed.");if(typeof e!="number")throw new Error("The 'frame' prop of <Freeze /> must be a number, but is of type ".concat(typeof e));if(Number.isNaN(e))throw new Error("The 'frame' prop of <Freeze /> must be a real number, but it is NaN.");if(!Number.isFinite(e))throw new Error("The 'frame' prop of <Freeze /> must be a finite number, but it is ".concat(e,"."));const s=a.useMemo(()=>{if(typeof r=="boolean")return r;if(typeof r=="function")return r(n)},[r,n]),c=a.useContext(K),i=a.useContext(H),u=(d=i==null?void 0:i.relativeFrom)!=null?d:0,l=a.useMemo(()=>s?{...c,playing:!1,imperativePlaying:{current:!1},frame:{[o.id]:e+u}}:c,[s,c,o.id,e,u]);return p.jsx(K.Provider,{value:l,children:t})},On=({from:e=0,durationInFrames:t=1/0,children:r,name:n,height:o,width:s,showInTimeline:c=!0,_remotionInternalLoopDisplay:i,_remotionInternalStack:u,_remotionInternalPremountDisplay:l,...d},f)=>{var B;const{layout:h="absolute-fill"}=d,[m]=a.useState(()=>String(Math.random())),w=a.useContext(H),{rootId:E}=a.useContext(K),b=w?w.cumulatedFrom+w.relativeFrom:0,x=Rt();if(h!=="absolute-fill"&&h!=="none")throw new TypeError('The layout prop of <Sequence /> expects either "absolute-fill" or "none", but you passed: '.concat(h));if(h==="none"&&typeof d.style<"u")throw new TypeError('If layout="none", you may not pass a style.');if(typeof t!="number")throw new TypeError("You passed to durationInFrames an argument of type ".concat(typeof t,", but it must be a number."));if(t<=0)throw new TypeError("durationInFrames must be positive, but got ".concat(t));if(typeof e!="number")throw new TypeError('You passed to the "from" props of your <Sequence> an argument of type '.concat(typeof e,", but it must be a number."));if(!Number.isFinite(e))throw new TypeError('The "from" prop of a sequence must be finite, but got '.concat(e,"."));const g=pe(),T=ee(),S=w?Math.min(w.durationInFrames-e,t):t,v=Math.max(0,Math.min(T.durationInFrames-e,S)),{registerSequence:k,unregisterSequence:$}=a.useContext(fe),{hidden:y}=a.useContext($e),F=a.useMemo(()=>{var _;return(_=w==null?void 0:w.premounting)!=null?_:!!d._remotionInternalIsPremounting},[d._remotionInternalIsPremounting,w==null?void 0:w.premounting]),C=a.useMemo(()=>{var _,O,A;return{cumulatedFrom:b,relativeFrom:e,durationInFrames:v,parentFrom:(_=w==null?void 0:w.relativeFrom)!=null?_:0,id:m,height:(O=o!=null?o:w==null?void 0:w.height)!=null?O:null,width:(A=s!=null?s:w==null?void 0:w.width)!=null?A:null,premounting:F}},[b,e,v,w,m,o,s,F]),M=a.useMemo(()=>n!=null?n:"",[n]);a.useEffect(()=>{var _;if(W().isStudio)return k({from:e,duration:v,id:m,displayName:M,parent:(_=w==null?void 0:w.id)!=null?_:null,type:"sequence",rootId:E,showInTimeline:c,nonce:x,loopDisplay:i,stack:u!=null?u:null,premountDisplay:l!=null?l:null}),()=>{$(m)}},[t,m,n,k,M,$,w==null?void 0:w.id,v,E,e,c,x,i,u,l]);const I=Math.ceil(b+e+t-1),R=g<b+e||g>I?null:r,P=d.layout==="none"?void 0:d.style,L=a.useMemo(()=>({flexDirection:void 0,...s?{width:s}:{},...o?{height:o}:{},...P!=null?P:{}}),[o,P,s]);if(f!==null&&h==="none")throw new TypeError('It is not supported to pass both a `ref` and `layout="none"` to <Sequence />.');return((B=y[m])!=null?B:!1)?null:p.jsx(H.Provider,{value:C,children:R===null?null:d.layout==="none"?R:p.jsx(Z,{ref:f,style:L,className:d.className,children:R})})},Wn=a.forwardRef(On),zn=(e,t)=>{const r=te();if(e.layout==="none")throw new Error('`<Sequence>` with `premountFor` prop does not support layout="none"');const{style:n,from:o=0,premountFor:s=0,...c}=e,i=r<o&&r>=o-s,u=a.useMemo(()=>{var l;return{...n,opacity:i?0:1,pointerEvents:i?"none":(l=n==null?void 0:n.pointerEvents)!=null?l:void 0}},[i,n]);return p.jsx(Bn,{frame:o,active:i,children:p.jsx(Q,{ref:t,from:o,style:u,_remotionInternalPremountDisplay:s,_remotionInternalIsPremounting:i,...c})})},Hn=a.forwardRef(zn),Yn=(e,t)=>e.layout!=="none"&&e.premountFor&&!W().isRendering?p.jsx(Hn,{...e,ref:t}):p.jsx(Wn,{...e,ref:t}),Q=a.forwardRef(Yn),Gn=e=>{if(typeof e!="string")throw new TypeError('The "filename" must be a string, but you passed a value of type '.concat(typeof e));if(e.trim()==="")throw new Error("The `filename` must not be empty");if(!e.match(/^([0-9a-zA-Z-!_.*'()/:&$@=;+,?]+)/g))throw new Error('The `filename` must match "/^([0-9a-zA-Z-!_.*\'()/:&$@=;+,?]+)/g". Use forward slashes only, even on Windows.')},qn=e=>{if(typeof e!="string"&&!(e instanceof Uint8Array))throw new TypeError('The "content" must be a string or Uint8Array, but you passed a value of type '.concat(typeof e));if(typeof e=="string"&&e.trim()==="")throw new Error("The `content` must not be empty")},Pr=e=>{e.type==="artifact"&&(Gn(e.filename),qn(e.content))},we=a.createContext({registerRenderAsset:()=>{},unregisterRenderAsset:()=>{},renderAssets:[]}),Zn=({children:e})=>{const[t,r]=a.useState([]),n=a.useCallback(c=>{Pr(c),r(i=>[...i,c])},[]),o=a.useCallback(c=>{r(i=>i.filter(u=>u.id!==c))},[]);a.useLayoutEffect(()=>{typeof window<"u"&&(window.remotion_collectAssets=()=>(r([]),t))},[t]);const s=a.useMemo(()=>({registerRenderAsset:n,unregisterRenderAsset:o,renderAssets:t}),[t,n,o]);return p.jsx(we.Provider,{value:s,children:e})},ae=e=>typeof window>"u"?e:new URL(e,window.origin).href,Vr=({endAt:e,mediaDuration:t,playbackRate:r,startFrom:n})=>{let o=t;typeof e<"u"&&(o=e),typeof n<"u"&&(o-=n);const s=o/r;return Math.floor(s)};function Vt(e){let t;throw Kn(e)?(t=e,t.stack||(t.stack=new Error(t.message).stack)):typeof e=="string"?t=Error(e):t=Error("Rendering was cancelled"),window.remotion_cancelledError=t.stack,t}var Kn=e=>e instanceof Error?!0:!(e===null||typeof e!="object"||!("stack"in e)||typeof e.stack!="string"||!("message"in e)||typeof e.message!="string"),jr=a.createContext(null),Jn=()=>V.useContext(jr),et=({durationInFrames:e,times:t=1/0,children:r,name:n,...o})=>{const s=te(),{durationInFrames:c}=ee();if(It(e,{component:"of the <Loop /> component",allowFloats:!0}),typeof t!="number")throw new TypeError('You passed to "times" an argument of type '.concat(typeof t,", but it must be a number."));if(t!==1/0&&t%1!==0)throw new TypeError('The "times" prop of a loop must be an integer, but got '.concat(t,"."));if(t<0)throw new TypeError('The "times" prop of a loop must be at least 0, but got '.concat(t));const i=Math.ceil(c/e),u=Math.min(i,t),l=o.layout==="none"?void 0:o.style,d=e*(u-1),h=Math.floor(s/e)*e,m=Math.min(h,d),w=a.useMemo(()=>({numberOfTimes:u,startOffset:-m,durationInFrames:e}),[u,e,m]),E=a.useMemo(()=>({iteration:Math.floor(s/e),durationInFrames:e}),[s,e]);return p.jsx(jr.Provider,{value:E,children:p.jsx(Q,{durationInFrames:e,from:m,name:n!=null?n:"<Loop>",_remotionInternalLoopDisplay:w,layout:o.layout,style:l,children:r})})};et.useLoop=Jn;var tt=a.createContext({}),Oe={},De=[],er=e=>{Oe=e(Oe),De.forEach(t=>t())},Lr=({children:e})=>{const[t,r]=a.useState(()=>Oe);return a.useEffect(()=>{const n=()=>{r(Oe)};return De.push(n),()=>{De=De.filter(o=>o!==n)}},[]),p.jsx(tt.Provider,{value:t,children:e})},ge=e=>{var r;return(r=a.useContext(tt)[e])!=null?r:e},Qn=function(e){const t=new FileReader;return new Promise((r,n)=>{t.onload=function(){const o=t.result;r(o)},t.onerror=o=>n(o),t.readAsDataURL(e)})},Xn=async({reader:e,contentType:t,contentLength:r,onProgress:n})=>{let o=0;const s=[];for(;;){const{done:u,value:l}=await e.read();if(u)break;s.push(l),o+=l.length,n&&n({loadedBytes:o,totalBytes:r})}const c=new Uint8Array(o);let i=0;for(const u of s)c.set(u,i),i+=u.length;return new Blob([c],{type:t!=null?t:void 0})},Ks=(e,t)=>{var d;const r=(d=t==null?void 0:t.method)!=null?d:"blob-url";if(W().isRendering)return{free:()=>{},waitUntilDone:()=>Promise.resolve(e)};let n=!1,o=null,s=()=>{},c=()=>{};const i=new Promise((f,h)=>{s=f,c=h}),u=new AbortController;let l=!0;return fetch(e,{signal:u.signal}).then(f=>{var b,x,g;if(l=!1,n)return null;if(!f.ok)throw new Error("HTTP error, status = ".concat(f.status));const h=f.headers.get("Content-Type"),m=(b=t==null?void 0:t.contentType)!=null?b:h;if(m&&(m.startsWith("video/")||m.startsWith("audio/")||m.startsWith("image/"))||console.warn("Called prefetch() on ".concat(e,' which returned a "Content-Type" of ').concat(h,". Prefetched content should have a proper content type (video/... or audio/...) or a contentType passed the options of prefetch(). Otherwise, prefetching will not work properly in all browsers.")),!f.body)throw new Error("HTTP response of ".concat(e," has no body"));const E=f.body.getReader();return Xn({reader:E,contentType:(g=(x=t==null?void 0:t.contentType)!=null?x:h)!=null?g:null,contentLength:f.headers.get("Content-Length")?parseInt(f.headers.get("Content-Length"),10):null,onProgress:t==null?void 0:t.onProgress})}).then(f=>{if(!f)return;const h=t!=null&&t.contentType?new Blob([f],{type:t.contentType}):f;return r==="base64"?Qn(h):URL.createObjectURL(h)}).then(f=>{n||(o=f,er(h=>({...h,[e]:o})),s(o))}).catch(f=>{c(f)}),{free:()=>{if(o)r==="blob-url"&&URL.revokeObjectURL(o),er(f=>{const h={...f};return delete h[e],h});else if(n=!0,l)try{u.abort(new Error("free() called"))}catch(f){}},waitUntilDone:()=>i}},Dr=(e,t)=>{if(typeof e.volume!="number"&&typeof e.volume!="function"&&typeof e.volume<"u")throw new TypeError("You have passed a volume of type ".concat(typeof e.volume," to your <").concat(t," /> component. Volume must be a number or a function with the signature '(frame: number) => number' undefined."));if(typeof e.volume=="number"&&e.volume<0)throw new TypeError("You have passed a volume below 0 to your <".concat(t," /> component. Volume must be between 0 and 1"));if(typeof e.playbackRate!="number"&&typeof e.playbackRate<"u")throw new TypeError("You have passed a playbackRate of type ".concat(typeof e.playbackRate," to your <").concat(t," /> component. Playback rate must a real number or undefined."));if(typeof e.playbackRate=="number"&&(isNaN(e.playbackRate)||!Number.isFinite(e.playbackRate)||e.playbackRate<=0))throw new TypeError("You have passed a playbackRate of ".concat(e.playbackRate," to your <").concat(t," /> component. Playback rate must be a real number above 0."))},Ur=(e,t)=>{if(typeof e<"u"){if(typeof e!="number")throw new TypeError("type of startFrom prop must be a number, instead got type ".concat(typeof e,"."));if(isNaN(e)||e===1/0)throw new TypeError("startFrom prop can not be NaN or Infinity.");if(e<0)throw new TypeError("startFrom must be greater than equal to 0 instead got ".concat(e,"."))}if(typeof t<"u"){if(typeof t!="number")throw new TypeError("type of endAt prop must be a number, instead got type ".concat(typeof t,"."));if(isNaN(t))throw new TypeError("endAt prop can not be NaN.");if(t<=0)throw new TypeError("endAt must be a positive number, instead got ".concat(t,"."))}if(t<e)throw new TypeError("endAt prop must be greater than startFrom prop.")},eo=(e,t)=>{switch(t.type){case"got-duration":{const r=ae(t.src);return e[r]===t.durationInSeconds?e:{...e,[r]:t.durationInSeconds}}default:return e}},jt=a.createContext({durations:{},setDurations:()=>{throw new Error("context missing")}}),Br=({children:e})=>{const[t,r]=a.useReducer(eo,{}),n=a.useMemo(()=>({durations:t,setDurations:r}),[t]);return p.jsx(jt.Provider,{value:n,children:e})};function tr(e){let t=e+1831565813;return t=Math.imul(t^t>>>15,t|1),t^=t+Math.imul(t^t>>>7,t|61),((t^t>>>14)>>>0)/4294967296}function to(e){let t=0,r=0,n=0;for(t=0;t<e.length;t++)r=e.charCodeAt(t),n=(n<<5)-n+r,n|=0;return n}var Fe=(e,t)=>{if(t!==void 0)throw new TypeError("random() takes only one argument");if(e===null)return Math.random();if(typeof e=="string")return tr(to(e));if(typeof e=="number")return tr(e*1e10);throw new Error("random() argument must be a number or a string")},ke=()=>{var r;const e=a.useContext(H);return Math.min(0,(r=e==null?void 0:e.relativeFrom)!=null?r:0)},rt=e=>{const t=et.useLoop(),r=te(),n=ke();return e==="repeat"||t===null?r+n:r+n+t.durationInFrames*t.iteration},ro=e=>{if(/data:|blob:/.test(e.substring(0,5)))return"Data URL";const t=e.split("/").map(r=>r.split("\\")).flat(1);return t[t.length-1]},We=(e,t,r)=>{const{current:n}=e;if(!n)return;const o=n.play();o.catch&&o.catch(s=>{if(n&&!s.message.includes("request was interrupted by a call to pause")&&!s.message.includes("The operation was aborted.")&&!s.message.includes("The fetching process for the media resource was aborted by the user agent")&&!s.message.includes("request was interrupted by a new load request")&&!s.message.includes("because the media was removed from the document")&&(console.log("Could not play ".concat(t," due to following error: "),s),!n.muted)){if(r){r();return}console.log("The video will be muted and we'll retry playing it."),t==="video"&&W().isPlayer&&console.log("Use onAutoPlayError() to handle this error yourself."),n.muted=!0,n.play()}})},Me=({frame:e,volume:t,mediaVolume:r=1,allowAmplificationDuringRender:n})=>{const o=n?1/0:1;if(typeof t=="number")return Math.min(o,t*r);if(typeof t>"u")return Number(r);const s=t(e)*r;if(typeof s!="number")throw new TypeError("You passed in a a function to the volume prop but it did not return a number but a value of type ".concat(typeof s," for frame ").concat(e));if(Number.isNaN(s))throw new TypeError("You passed in a function to the volume prop but it returned NaN for frame ".concat(e,"."));if(!Number.isFinite(s))throw new TypeError("You passed in a function to the volume prop but it returned a non-finite number for frame ".concat(e,"."));return Math.max(0,Math.min(o,s))},rr={},no=e=>{rr[e]||(console.warn(e),rr[e]=!0)},Or=({volume:e,mediaVolume:t,mediaRef:r,src:n,mediaType:o,playbackRate:s,displayName:c,id:i,stack:u,showInTimeline:l,premountDisplay:d,onAutoPlayError:f})=>{const h=ee(),{rootId:m,audioAndVideoTags:w}=a.useContext(K),E=a.useContext(H),b=E?E.relativeFrom+E.cumulatedFrom:0,[x]=At(),g=ke(),{registerSequence:T,unregisterSequence:S}=a.useContext(fe),[v]=a.useState(()=>e),k=Rt(),$=E?Math.min(E.durationInFrames,h.durationInFrames):h.durationInFrames,y=typeof e=="function",F=a.useMemo(()=>typeof e=="number"?e:new Array(Math.floor(Math.max(0,$+g))).fill(!0).map((C,M)=>Me({frame:M+g,volume:e,mediaVolume:t,allowAmplificationDuringRender:!1})).join(","),[$,g,e,t]);a.useEffect(()=>{typeof e=="number"&&e!==v&&no("Remotion: The ".concat(o," with src ").concat(n," has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/using-audio/#controlling-volume"))},[v,o,n,e]),a.useEffect(()=>{var C,M,I;if(r.current){if(!n)throw new Error("No src passed");if(!(!W().isStudio&&((M=(C=window.process)==null?void 0:C.env)==null?void 0:M.NODE_ENV)!=="test")&&l)return T({type:o,src:n,id:i,duration:$,from:0,parent:(I=E==null?void 0:E.id)!=null?I:null,displayName:c!=null?c:ro(n),rootId:m,volume:F,showInTimeline:!0,nonce:k,startMediaFrom:0-g,doesVolumeChange:y,loopDisplay:void 0,playbackRate:s,stack:u,premountDisplay:d}),()=>{S(i)}}},[b,$,i,E,n,T,m,S,h,F,y,k,r,o,g,s,c,u,l,d]),a.useEffect(()=>{const C={id:i,play:()=>{if(x)return We(r,o,f)}};return w.current.push(C),()=>{w.current=w.current.filter(M=>M.id!==i)}},[w,i,r,o,f,x])},oo=()=>{const[e,t]=a.useState([]),[r,n]=a.useState([]),[o,s]=a.useState([]),c=a.useRef(!1),i=a.useCallback(d=>(t(f=>[...f,d]),{unblock:()=>{t(f=>{const h=f.filter(m=>m!==d);return h.length===f.length?f:h})}}),[]),u=a.useCallback(d=>(n(f=>[...f,d]),{remove:()=>{n(f=>f.filter(h=>h!==d))}}),[]),l=a.useCallback(d=>(s(f=>[...f,d]),{remove:()=>{s(f=>f.filter(h=>h!==d))}}),[]);return a.useEffect(()=>{e.length>0&&r.forEach(d=>d())},[e]),a.useEffect(()=>{e.length===0&&o.forEach(d=>d())},[e]),a.useMemo(()=>({addBlock:i,listenForBuffering:u,listenForResume:l,buffering:c}),[i,c,u,l])},ve=V.createContext(null),Wr=({children:e})=>{const t=oo();return p.jsx(ve.Provider,{value:t,children:e})},io=e=>{const[t,r]=a.useState(e.buffering.current);return a.useEffect(()=>{const n=()=>{r(!0)},o=()=>{r(!1)};return e.listenForBuffering(n),e.listenForResume(o),()=>{e.listenForBuffering(()=>{}),e.listenForResume(()=>{})}},[e]),t},Lt=()=>{const e=a.useContext(ve),t=e?e.addBlock:null;return a.useMemo(()=>({delayPlayback:()=>{if(!t)throw new Error("Tried to enable the buffering state, but a Remotion context was not found. This API can only be called in a component that was passed to the Remotion Player or a <Composition>. Or you might have experienced a version mismatch - run `npx remotion versions` and ensure all packages have the same version. This error is thrown by the buffer state https://remotion.dev/docs/player/buffer-state");const{unblock:r}=t({id:String(Math.random())});return{unblock:r}}}),[t])},so=({mediaRef:e,mediaType:t,onVariableFpsVideoDetected:r,pauseWhenBuffering:n})=>{const o=a.useRef(!1),{delayPlayback:s}=Lt(),c=a.useCallback(i=>{if(t!=="video"||!n)return;const u=e.current;if(!u||!u.requestVideoFrameCallback)return;o.current=!0;const l=s(),d=()=>{l.unblock(),u.removeEventListener("ended",d,{once:!0}),u.removeEventListener("pause",d,{once:!0}),o.current=!1},f=()=>{d()};u.requestVideoFrameCallback((h,m)=>{Math.abs(m.mediaTime-i)>.5&&r(),d()}),u.addEventListener("ended",f,{once:!0}),u.addEventListener("pause",f,{once:!0}),u.addEventListener("canplay",f,{once:!0})},[s,e,t,r,n]);return a.useMemo(()=>({isBuffering:()=>o.current,bufferUntilFirstFrame:c}),[c])},ao=({element:e,shouldBuffer:t,isPremounting:r})=>{const n=Lt(),[o,s]=a.useState(!1);return a.useEffect(()=>{let c=[];const{current:i}=e;if(!i||!t||r)return;const u=()=>{c.forEach(f=>f()),c=[],s(!1)},l=()=>{s(!0);const{unblock:f}=n.delayPlayback(),h=()=>{u(),d()},m=()=>{u(),d()};i.addEventListener("canplay",h,{once:!0}),c.push(()=>{i.removeEventListener("canplay",h)}),i.addEventListener("error",m,{once:!0}),c.push(()=>{i.removeEventListener("error",m)}),c.push(()=>{f()})},d=()=>{i.readyState<i.HAVE_FUTURE_DATA?(l(),navigator.userAgent.includes("Firefox/")||i.load()):(i.addEventListener("waiting",l),c.push(()=>{i.removeEventListener("waiting",l)}))};return d(),()=>{u()}},[n,e,r,t]),o},uo=({mediaRef:e,mediaType:t,lastSeek:r,onVariableFpsVideoDetected:n})=>{const o=a.useRef(null);return a.useEffect(()=>{const{current:s}=e;if(s)o.current=s.currentTime;else{o.current=null;return}if(t!=="video"){o.current=null;return}const c=s;if(!c.requestVideoFrameCallback)return;let i=()=>{};const u=()=>{if(!c)return;const l=c.requestVideoFrameCallback((d,f)=>{if(o.current!==null){const h=Math.abs(o.current-f.mediaTime),m=Math.abs(r.current===null?1/0:f.mediaTime-r.current);h>.5&&m>.5&&f.mediaTime>o.current&&n()}o.current=f.mediaTime,u()});i=()=>{c.cancelVideoFrameCallback(l),i=()=>{}}};return u(),()=>{i()}},[r,e,t,n]),o};function co(e,t,r,n){const{extrapolateLeft:o,extrapolateRight:s,easing:c}=n;let i=e;const[u,l]=t,[d,f]=r;if(i<u){if(o==="identity")return i;if(o==="clamp")i=u;else if(o==="wrap"){const h=l-u;i=((i-u)%h+h)%h+u}}if(i>l){if(s==="identity")return i;if(s==="clamp")i=l;else if(s==="wrap"){const h=l-u;i=((i-u)%h+h)%h+u}}return d===f?d:(i=(i-u)/(l-u),i=c(i),i=i*(f-d)+d,i)}function lo(e,t){let r;for(r=1;r<t.length-1&&!(t[r]>=e);++r);return r-1}function fo(e){for(let t=1;t<e.length;++t)if(!(e[t]>e[t-1]))throw new Error("inputRange must be strictly monotonically increasing but got [".concat(e.join(","),"]"))}function nr(e,t){if(t.length<2)throw new Error(e+" must have at least 2 elements");for(const r of t){if(typeof r!="number")throw new Error("".concat(e," must contain only numbers"));if(!Number.isFinite(r))throw new Error("".concat(e," must contain only finite numbers, but got [").concat(t.join(","),"]"))}}function ze(e,t,r,n){var u;if(typeof e>"u")throw new Error("input can not be undefined");if(typeof t>"u")throw new Error("inputRange can not be undefined");if(typeof r>"u")throw new Error("outputRange can not be undefined");if(t.length!==r.length)throw new Error("inputRange ("+t.length+") and outputRange ("+r.length+") must have the same length");nr("inputRange",t),nr("outputRange",r),fo(t);const o=(u=n==null?void 0:n.easing)!=null?u:l=>l;let s="extend";(n==null?void 0:n.extrapolateLeft)!==void 0&&(s=n.extrapolateLeft);let c="extend";if((n==null?void 0:n.extrapolateRight)!==void 0&&(c=n.extrapolateRight),typeof e!="number")throw new TypeError("Cannot interpolate an input which is not a number");const i=lo(e,t);return co(e,[t[i],t[i+1]],[r[i],r[i+1]],{easing:o,extrapolateLeft:s,extrapolateRight:c})}var ho=({frame:e,playbackRate:t,startFrom:r})=>ze(e,[-1,r,r+1],[-1,r,r+t]),zr=({fps:e,frame:t,playbackRate:r,startFrom:n})=>{const o=ho({frame:t,playbackRate:r,startFrom:n}),s=1e3/e;return o*s/1e3},Hr=(e,t)=>Math.round(e/t*100)/100,nt=()=>{if(typeof window>"u")return!1;const e=/iP(ad|od|hone)/i.test(window.navigator.userAgent),t=/AppleWebKit/.test(window.navigator.userAgent);return e&&t},mo=e=>nt()&&e.startsWith("blob:"),yt=({actualFrom:e,fps:t})=>Hr(Math.max(0,-e),t),bt=({duration:e,fps:t})=>Hr(e,t),po=({actualSrc:e,actualFrom:t,duration:r,fps:n})=>{var c;if(mo(e)||e.startsWith("data:")||!!new URL(e,(c=typeof window>"u"?null:window.location.href)!=null?c:"http://localhost:3000").hash||!Number.isFinite(t))return e;const s="".concat(e,"#t=").concat(yt({actualFrom:t,fps:n}));return Number.isFinite(r)?"".concat(s,",").concat(bt({duration:r,fps:n})):s},wo=({prevStartFrom:e,newStartFrom:t,prevDuration:r,newDuration:n,fps:o})=>{const s=yt({actualFrom:e,fps:o}),c=yt({actualFrom:t,fps:o}),i=bt({duration:r,fps:o}),u=bt({duration:n,fps:o});return!(c<s||u>i)},go=({actualSrc:e,actualFrom:t,duration:r,fps:n})=>{const o=a.useRef(t),s=a.useRef(r),c=a.useRef(e);return(!wo({prevStartFrom:o.current,newStartFrom:t,prevDuration:s.current,newDuration:r,fps:n})||e!==c.current)&&(o.current=t,s.current=r,c.current=e),po({actualSrc:c.current,actualFrom:o.current,duration:s.current,fps:n})},or={},vo=(e,t)=>{if(e===null||e.seekable.length===0||e.seekable.length>1||or[e.src])return;const r={start:e.seekable.start(0),end:e.seekable.end(0)};if(r.start===0&&r.end===0){const n=["The media ".concat(e.src," cannot be seeked. This could be one of few reasons:"),"1) The media resource was replaced while the video is playing but it was not loaded yet.","2) The media does not support seeking.","3) The media was loaded with security headers prventing it from being included.","Please see https://remotion.dev/docs/non-seekable-media for assistance."].join("\n");if(t==="console-error")console.error(n);else if(t==="console-warning")console.warn("The media ".concat(e.src," does not support seeking. The video will render fine, but may not play correctly in the Remotion Studio and in the <Player>. See https://remotion.dev/docs/non-seekable-media for an explanation."));else throw new Error(n);or[e.src]=!0}},Dt=.45,at=(e,t)=>{if(!e.current)return;const r=nt()?Number(t.toFixed(1)):t;e.current.currentTime=r},Yr=({mediaRef:e,src:t,mediaType:r,playbackRate:n,onlyWarnForMediaSeekingError:o,acceptableTimeshift:s,pauseWhenBuffering:c,isPremounting:i,debugSeeking:u,onAutoPlayError:l})=>{const{playbackRate:d}=a.useContext(K),f=te(),h=pe(),[m]=At(),w=a.useContext(ve),{fps:E}=ee(),b=ke(),x=a.useRef(null),g=a.useRef(null);if(!w)throw new Error("useMediaPlayback must be used inside a <BufferingContext>");const T=a.useRef({}),S=a.useCallback(()=>{t&&(u&&console.log("Detected ".concat(t," as a variable FPS video. Disabling buffering while seeking.")),T.current[t]=!0)},[u,t]),v=uo({mediaRef:e,mediaType:r,lastSeek:g,onVariableFpsVideoDetected:S}),k=zr({frame:f,playbackRate:n,startFrom:-b,fps:E}),$=ao({element:e,shouldBuffer:c,isPremounting:i}),{bufferUntilFirstFrame:y,isBuffering:F}=so({mediaRef:e,mediaType:r,onVariableFpsVideoDetected:S,pauseWhenBuffering:c}),C=n*d,M=(()=>{var R;return(R=e.current)!=null&&R.duration?Math.min(e.current.duration,s!=null?s:Dt):s})(),I=io(w);a.useEffect(()=>{var P,L;if(!m){(P=e.current)==null||P.pause();return}const R=$||F();I&&!R&&((L=e.current)==null||L.pause())},[F,$,I,e,m]),a.useEffect(()=>{var ye;const R=r==="audio"?"<Audio>":"<Video>";if(!e.current)throw new Error("No ".concat(r," ref found"));if(!t)throw new Error("No 'src' attribute was passed to the ".concat(R," element."));const P=Math.max(0,C);e.current.playbackRate!==P&&(e.current.playbackRate=P);const{duration:L}=e.current,N=!Number.isNaN(L)&&Number.isFinite(L)?Math.min(L,k):k,B=e.current.currentTime,_=(ye=v.current)!=null?ye:null,O=T.current[t],A=Math.abs(N-B),U=_?Math.abs(N-_):null,z=U&&!O?U:A;if(u&&console.log({mediaTagTime:B,rvcTime:_,shouldBeTime:N,state:e.current.readyState,playing:!e.current.paused,isVariableFpsVideo:O}),z>M&&x.current!==N){u&&console.log("Seeking",{shouldBeTime:N,isTime:B,rvcTime:_,timeShift:z,isVariableFpsVideo:O}),at(e,N),g.current=N,x.current=N,m&&!O&&(C>0&&y(N),e.current.paused&&We(e,r,l)),o||vo(e.current,o?"console-warning":"console-error");return}const re=m?.15:1e-5,Re=Math.abs(e.current.currentTime-N)>re,Ie=$||F(),Ne=w.buffering.current&&!Ie;if(!m||Ne){Re&&(at(e,N),g.current=N);return}(e.current.paused&&!e.current.ended||h===0)&&(Re&&(at(e,N),g.current=N),We(e,r,l),O||C>0&&y(N))},[h,M,y,w.buffering,v,u,k,F,$,e,r,o,C,m,t,l])},Gr=e=>{const[t,r]=a.useState(1);return a.useEffect(()=>{const n=e.current;if(!n)return;const o=()=>{r(n.volume)};return n.addEventListener("volumechange",o),()=>n.removeEventListener("volumechange",o)},[e]),a.useEffect(()=>{const n=e.current;n&&n.volume!==t&&r(n.volume)},[t,e]),t},yo=1e-5,qr=(e,t)=>Math.abs(e-t)<yo,Zr=({volumePropFrame:e,actualVolume:t,volume:r,mediaVolume:n,mediaRef:o})=>{a.useEffect(()=>{const s=Me({frame:e,volume:r,mediaVolume:n,allowAmplificationDuringRender:!1});!qr(s,t)&&o.current&&(o.current.volume=s)},[t,e,o,r,n])},Ut=a.createContext({mediaMuted:!1,mediaVolume:1}),Bt=a.createContext({setMediaMuted:()=>{throw new Error("default")},setMediaVolume:()=>{throw new Error("default")}}),Ot=()=>{const{mediaVolume:e}=a.useContext(Ut),{setMediaVolume:t}=a.useContext(Bt);return a.useMemo(()=>[e,t],[e,t])},Wt=()=>{const{mediaMuted:e}=a.useContext(Ut),{setMediaMuted:t}=a.useContext(Bt);return a.useMemo(()=>[e,t],[e,t])},ir="data:audio/mp3;base64,/+MYxAAJcAV8AAgAABn//////+/gQ5BAMA+D4Pg+BAQBAEAwD4Pg+D4EBAEAQDAPg++hYBH///hUFQVBUFREDQNHmf///////+MYxBUGkAGIMAAAAP/29Xt6lUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDUAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",bo=(e,t)=>{const r=Object.keys(e).sort(),n=Object.keys(t).sort();if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++)if(r[o]!==n[o]||e[r[o]]!==t[n[o]])return!1;return!0},xo=(e,t,r)=>e==="src"&&!r.startsWith("data:")&&!t.startsWith("data:")?new URL(r,window.origin).toString()!==new URL(t,window.origin).toString():r!==t,ot=a.createContext(null),Kr=({children:e,numberOfAudioTags:t,component:r})=>{const n=a.useRef([]),[o]=a.useState(t);if(t!==o)throw new Error("The number of shared audio tags has changed dynamically. Once you have set this property, you cannot change it afterwards.");const s=a.useMemo(()=>new Array(t).fill(!0).map(()=>({id:Math.random(),ref:a.createRef()})),[t]),c=a.useRef(new Array(t).fill(!1)),i=a.useCallback(()=>{s.forEach(({ref:w,id:E})=>{var g;const b=(g=n.current)==null?void 0:g.find(T=>T.id===E),{current:x}=w;if(x){if(b===void 0){x.src=ir;return}if(!b)throw new TypeError("Expected audio data to be there");Object.keys(b.props).forEach(T=>{xo(T,b.props[T],x[T])&&(x[T]=b.props[T])})}})},[s]),u=a.useCallback((w,E)=>{var k,$;const b=(k=n.current)==null?void 0:k.find(y=>y.audioId===E);if(b)return b;const x=c.current.findIndex(y=>y===!1);if(x===-1)throw new Error("Tried to simultaneously mount ".concat(t+1," <Audio /> tags at the same time. With the current settings, the maximum amount of <Audio /> tags is limited to ").concat(t," at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#use-the-numberofsharedaudiotags-property for more information on how to increase this limit."));const{id:g,ref:T}=s[x],S=[...c.current];S[x]=g,c.current=S;const v={props:w,id:g,el:T,audioId:E};return($=n.current)==null||$.push(v),i(),v},[t,s,i]),l=a.useCallback(w=>{var x;const E=[...c.current],b=s.findIndex(g=>g.id===w);if(b===-1)throw new TypeError("Error occured in ");E[b]=!1,c.current=E,n.current=(x=n.current)==null?void 0:x.filter(g=>g.id!==w),i()},[s,i]),d=a.useCallback(({aud:w,audioId:E,id:b})=>{var g;let x=!1;n.current=(g=n.current)==null?void 0:g.map(T=>T.id===b?bo(w,T.props)?T:(x=!0,{...T,props:w,audioId:E}):T),x&&i()},[i]),f=a.useCallback(()=>{s.forEach(w=>{We(w.ref,"audio",null)})},[s]),h=a.useMemo(()=>({registerAudio:u,unregisterAudio:l,updateAudio:d,playAllAudios:f,numberOfAudioTags:t}),[t,f,u,l,d]),m=a.useCallback(()=>{c.current=new Array(t).fill(!1),n.current=[],i()},[t,i]);return a.useEffect(()=>()=>{m()},[r,m]),p.jsxs(ot.Provider,{value:h,children:[s.map(({id:w,ref:E})=>p.jsx("audio",{ref:E,preload:"metadata",src:ir},w)),e]})},Eo=(e,t)=>{var s;const r=a.useContext(ot),[n]=a.useState(()=>r&&r.numberOfAudioTags>0?r.registerAudio(e,t):{el:V.createRef(),id:Math.random(),props:e,audioId:t}),o=(s=V.useInsertionEffect)!=null?s:V.useLayoutEffect;return typeof document<"u"&&(o(()=>{r&&r.numberOfAudioTags>0&&r.updateAudio({id:n.id,aud:e,audioId:t})},[e,r,n.id,t]),o(()=>()=>{r&&r.numberOfAudioTags>0&&r.unregisterAudio(n.id)},[r,n.id])),n},Co=(e,t)=>{var O;const[r]=a.useState(e.shouldPreMountAudioTags);if(e.shouldPreMountAudioTags!==r)throw new Error("Cannot change the behavior for pre-mounting audio tags dynamically.");const{volume:n,muted:o,playbackRate:s,shouldPreMountAudioTags:c,src:i,onDuration:u,acceptableTimeShiftInSeconds:l,_remotionInternalNeedsDurationCalculation:d,_remotionInternalNativeLoopPassed:f,_remotionInternalStack:h,_remotionDebugSeeking:m,allowAmplificationDuringRender:w,name:E,pauseWhenBuffering:b,showInTimeline:x,loopVolumeCurveBehavior:g,stack:T,...S}=e,[v]=Ot(),[k]=Wt(),$=rt(g!=null?g:"repeat"),{hidden:y}=a.useContext($e);if(!i)throw new TypeError("No 'src' was passed to <Audio>.");const F=ge(i),C=a.useContext(H),[M]=a.useState(()=>String(Math.random())),I=(O=y[M])!=null?O:!1,R=Me({frame:$,volume:n,mediaVolume:v,allowAmplificationDuringRender:!1}),P=a.useMemo(()=>({muted:o||k||I||R<=0,src:F,loop:f,...S}),[f,I,k,o,S,F,R]),L=a.useMemo(()=>"audio-".concat(Fe(i!=null?i:""),"-").concat(C==null?void 0:C.relativeFrom,"-").concat(C==null?void 0:C.cumulatedFrom,"-").concat(C==null?void 0:C.durationInFrames,"-muted:").concat(e.muted,"-loop:").concat(e.loop),[i,C==null?void 0:C.relativeFrom,C==null?void 0:C.cumulatedFrom,C==null?void 0:C.durationInFrames,e.muted,e.loop]),N=Eo(P,L).el,B=Gr(N);Zr({volumePropFrame:$,actualVolume:B,volume:n,mediaVolume:v,mediaRef:N}),Or({volume:n,mediaVolume:v,mediaRef:N,src:i,mediaType:"audio",playbackRate:s!=null?s:1,displayName:E!=null?E:null,id:M,stack:h,showInTimeline:x,premountDisplay:null,onAutoPlayError:null}),Yr({mediaRef:N,src:i,mediaType:"audio",playbackRate:s!=null?s:1,onlyWarnForMediaSeekingError:!1,acceptableTimeshift:l!=null?l:Dt,isPremounting:!!(C!=null&&C.premounting),pauseWhenBuffering:b,debugSeeking:m,onAutoPlayError:null}),a.useImperativeHandle(t,()=>N.current,[N]);const _=a.useRef();return _.current=u,a.useEffect(()=>{var z;const{current:A}=N;if(!A)return;if(A.duration){(z=_.current)==null||z.call(_,A.src,A.duration);return}const U=()=>{var re;(re=_.current)==null||re.call(_,A.src,A.duration)};return A.addEventListener("loadedmetadata",U),()=>{A.removeEventListener("loadedmetadata",U)}},[N,i]),r?null:p.jsx("audio",{ref:N,preload:"metadata",...P})},So=a.forwardRef(Co);typeof window<"u"&&(window.remotion_renderReady=!1);var Ue=[];typeof window<"u"&&(window.remotion_delayRenderTimeouts={});var To="The delayRender was called:",$o="Retries left: ",Fo="- Rendering the frame will be retried.",sr=3e4,J=(e,t)=>{var o,s,c,i,u;if(typeof e!="string"&&typeof e<"u")throw new Error("The label parameter of delayRender() must be a string or undefined, got: "+JSON.stringify(e));const r=Math.random();Ue.push(r);const n=(s=(o=Error().stack)==null?void 0:o.replace(/^Error/g,""))!=null?s:"";if(W().isRendering){const l=((i=t==null?void 0:t.timeoutInMilliseconds)!=null?i:typeof window>"u"?sr:(c=window.remotion_puppeteerTimeout)!=null?c:sr)-2e3;if(typeof window<"u"){const d=((u=t==null?void 0:t.retries)!=null?u:0)-(window.remotion_attempt-1);window.remotion_delayRenderTimeouts[r]={label:e!=null?e:null,timeout:setTimeout(()=>{const f=["A delayRender()",e?'"'.concat(e,'"'):null,"was called but not cleared after ".concat(l,"ms. See https://remotion.dev/docs/timeout for help."),d>0?$o+d:null,d>0?Fo:null,To,n].filter(Mt).join(" ");Vt(Error(f))},l)}}}return typeof window<"u"&&(window.remotion_renderReady=!1),r},j=e=>{if(typeof e>"u")throw new TypeError("The continueRender() method must be called with a parameter that is the return value of delayRender(). No value was passed.");if(typeof e!="number")throw new TypeError("The parameter passed into continueRender() must be the return value of delayRender() which is a number. Got: "+JSON.stringify(e));Ue=Ue.filter(t=>t===e?(W().isRendering&&(clearTimeout(window.remotion_delayRenderTimeouts[e].timeout),delete window.remotion_delayRenderTimeouts[e]),!1):!0),Ue.length===0&&typeof window<"u"&&(window.remotion_renderReady=!0)},ko=(e,t)=>{const r=a.useRef(null),{volume:n,playbackRate:o,allowAmplificationDuringRender:s,onDuration:c,toneFrequency:i,_remotionInternalNeedsDurationCalculation:u,_remotionInternalNativeLoopPassed:l,acceptableTimeShiftInSeconds:d,name:f,onError:h,delayRenderRetries:m,delayRenderTimeoutInMilliseconds:w,loopVolumeCurveBehavior:E,pauseWhenBuffering:b,...x}=e,g=pe(),T=rt(E!=null?E:"repeat"),S=te(),v=a.useContext(H),{registerRenderAsset:k,unregisterRenderAsset:$}=a.useContext(we),y=a.useMemo(()=>{var I;return"audio-".concat(Fe((I=e.src)!=null?I:""),"-").concat(v==null?void 0:v.relativeFrom,"-").concat(v==null?void 0:v.cumulatedFrom,"-").concat(v==null?void 0:v.durationInFrames)},[e.src,v==null?void 0:v.relativeFrom,v==null?void 0:v.cumulatedFrom,v==null?void 0:v.durationInFrames]),F=Me({volume:n,frame:T,mediaVolume:1,allowAmplificationDuringRender:s!=null?s:!1});a.useImperativeHandle(t,()=>r.current,[]),a.useEffect(()=>{var I,R;if(!e.src)throw new Error("No src passed");if(window.remotion_audioEnabled&&!e.muted&&!(F<=0))return k({type:"audio",src:ae(e.src),id:y,frame:g,volume:F,mediaFrame:S,playbackRate:(I=e.playbackRate)!=null?I:1,allowAmplificationDuringRender:s!=null?s:!1,toneFrequency:i!=null?i:null,audioStartFrame:Math.max(0,-((R=v==null?void 0:v.relativeFrom)!=null?R:0))}),()=>$(y)},[e.muted,e.src,k,g,y,$,F,T,S,o,e.playbackRate,s,i,v==null?void 0:v.relativeFrom]);const{src:C}=e,M=t||u;return a.useLayoutEffect(()=>{var L,N;if(((N=(L=window.process)==null?void 0:L.env)==null?void 0:N.NODE_ENV)==="test"||!M)return;const I=J("Loading <Audio> duration with src="+C,{retries:m!=null?m:void 0,timeoutInMilliseconds:w!=null?w:void 0}),{current:R}=r,P=()=>{R!=null&&R.duration&&c(R.src,R.duration),j(I)};return R!=null&&R.duration?(c(R.src,R.duration),j(I)):R==null||R.addEventListener("loadedmetadata",P,{once:!0}),()=>{R==null||R.removeEventListener("loadedmetadata",P),j(I)}},[C,c,M,m,w]),M?p.jsx("audio",{ref:r,...x}):null},Mo=a.forwardRef(ko),Ro=(e,t)=>{var v,k,$;const r=a.useContext(ot),{startFrom:n,endAt:o,name:s,stack:c,pauseWhenBuffering:i,showInTimeline:u,_remotionDebugSeeking:l,...d}=e,{loop:f,...h}=e,{fps:m}=ee(),w=W(),{durations:E,setDurations:b}=a.useContext(jt);if(typeof e.src!="string")throw new TypeError("The `<Audio>` tag requires a string for `src`, but got ".concat(JSON.stringify(e.src)," instead."));const x=ge(e.src),g=a.useCallback(y=>{console.log(y.currentTarget.error);const F="Could not play audio with src ".concat(x,": ").concat(y.currentTarget.error,". See https://remotion.dev/docs/media-playback-error for help.");f?Vt(new Error(F)):console.warn(F)},[f,x]),T=a.useCallback((y,F)=>{b({type:"got-duration",durationInSeconds:F,src:y})},[b]),S=(v=E[ae(x)])!=null?v:E[ae(e.src)];if(f&&S!==void 0){const y=S*m;return p.jsx(et,{layout:"none",durationInFrames:Vr({endAt:o,mediaDuration:y,playbackRate:(k=e.playbackRate)!=null?k:1,startFrom:n}),children:p.jsx(xt,{...h,ref:t,_remotionInternalNativeLoopPassed:!0})})}if(typeof n<"u"||typeof o<"u"){Ur(n,o);const y=n!=null?n:0,F=o!=null?o:1/0;return p.jsx(Q,{layout:"none",from:0-y,showInTimeline:!1,durationInFrames:F,name:s,children:p.jsx(xt,{_remotionInternalNeedsDurationCalculation:!!f,pauseWhenBuffering:i!=null?i:!1,...d,ref:t})})}return Dr(e,"Audio"),w.isRendering?p.jsx(Mo,{onDuration:T,...e,ref:t,onError:g,_remotionInternalNeedsDurationCalculation:!!f}):p.jsx(So,{_remotionInternalNativeLoopPassed:($=e._remotionInternalNativeLoopPassed)!=null?$:!1,_remotionDebugSeeking:l!=null?l:!1,_remotionInternalStack:c!=null?c:null,shouldPreMountAudioTags:r!==null&&r.numberOfAudioTags>0,...e,ref:t,onError:g,onDuration:T,pauseWhenBuffering:i!=null?i:!1,_remotionInternalNeedsDurationCalculation:!!f,showInTimeline:u!=null?u:!0})},xt=a.forwardRef(Ro);Te(xt);var Io=a.createContext({folderName:null,parentName:null}),No={transform:"rotate(90deg)"},ar=40,_o={color:"white",fontSize:14,fontFamily:"sans-serif"},Ao={justifyContent:"center",alignItems:"center"},Po=()=>p.jsxs(Z,{style:Ao,id:"remotion-comp-loading",children:[p.jsx("style",{type:"text/css",children:"\n				@keyframes anim {\n					from {\n						opacity: 0\n					}\n					to {\n						opacity: 1\n					}\n				}\n				#remotion-comp-loading {\n					animation: anim 2s;\n					animation-fill-mode: forwards;\n				}\n			"}),p.jsx("svg",{width:ar,height:ar,viewBox:"-100 -100 400 400",style:No,children:p.jsx("path",{fill:"#555",stroke:"#555",strokeWidth:"100",strokeLinejoin:"round",d:"M 2 172 a 196 100 0 0 0 195 5 A 196 240 0 0 0 100 2.259 A 196 240 0 0 0 2 172 z"})}),p.jsxs("p",{style:_o,children:["Resolving ","<Suspense>","..."]})]}),Y=null,Et=()=>{if(!Y){if(typeof document>"u")throw new Error("Tried to call an API that only works in the browser from outside the browser");Y=document.createElement("div"),Y.style.position="absolute",Y.style.top="0px",Y.style.left="0px",Y.style.right="0px",Y.style.bottom="0px",Y.style.width="100%",Y.style.height="100%",Y.style.display="flex",Y.style.flexDirection="column";const e=document.createElement("div");e.style.position="fixed",e.style.top="-999999px",e.appendChild(Y),document.body.appendChild(e)}return Y},Jr=e=>a.useMemo(()=>{if("lazyComponent"in e&&typeof e.lazyComponent<"u")return V.lazy(e.lazyComponent);if("component"in e)return typeof document>"u"?e.component:V.lazy(()=>Promise.resolve({default:e.component}));throw new Error("You must pass either 'component' or 'lazyComponent'")},[e.component,e.lazyComponent]),Qr=()=>/^([a-zA-Z0-9-\u4E00-\u9FFF])+$/g,Xr=e=>e.match(Qr()),Vo=e=>{if(!Xr(e))throw new Error("Composition id can only contain a-z, A-Z, 0-9, CJK characters and -. You passed ".concat(e))},jo="Composition ID must match ".concat(String(Qr())),Lo=(e,t,r)=>{if(e){if(typeof e!="object")throw new Error('"'.concat(t,'" must be an object, but you passed a value of type ').concat(typeof e));if(Array.isArray(e))throw new Error('"'.concat(t,'" must be an object, an array was passed ').concat(r?'for composition "'.concat(r,'"'):""))}},en=({children:e})=>{const{clipRegion:t}=a.useContext(Ze),r=a.useMemo(()=>({display:"flex",flexDirection:"row",opacity:t==="hide"?0:1,clipPath:t&&t!=="hide"?"polygon(".concat(t.x,"px ").concat(t.y,"px, ").concat(t.x,"px ").concat(t.height+t.y,"px, ").concat(t.width+t.x,"px ").concat(t.height+t.y,"px, ").concat(t.width+t.x,"px ").concat(t.y,"px)"):void 0}),[t]);return p.jsx(Z,{style:r,children:e})},Do=()=>(a.useEffect(()=>{const e=J("Waiting for Root component to unsuspend");return()=>j(e)},[]),null),Js=({width:e,height:t,fps:r,durationInFrames:n,id:o,defaultProps:s,schema:c,...i})=>{var T,S;const{registerComposition:u,unregisterComposition:l}=a.useContext(ne),d=Xe(),f=Jr(i),h=Rt(),m=kt(),w=W();if(a.useContext(ce))throw m?new Error("<Composition> was mounted inside the `component` that was passed to the <Player>. See https://remotion.dev/docs/wrong-composition-mount for help."):new Error("<Composition> mounted inside another composition. See https://remotion.dev/docs/wrong-composition-mount for help.");const{folderName:b,parentName:x}=a.useContext(Io);a.useEffect(()=>{var v;if(!o)throw new Error("No id for composition passed.");return Vo(o),Lo(s,"defaultProps",o),u({durationInFrames:n!=null?n:void 0,fps:r!=null?r:void 0,height:t!=null?t:void 0,width:e!=null?e:void 0,id:o,folderName:b,component:f,defaultProps:ie(s!=null?s:{}),nonce:h,parentFolderName:x,schema:c!=null?c:null,calculateMetadata:(v=i.calculateMetadata)!=null?v:null}),()=>{l(o)}},[n,r,t,f,o,b,s,u,l,e,h,x,c,i.calculateMetadata]);const g=Nt(o);if(w.isStudio&&d&&d.component===f){const v=f;return g===null||g.type!=="success"?null:Gt.createPortal(p.jsx(en,{children:p.jsx(vt,{children:p.jsx(a.Suspense,{fallback:p.jsx(Po,{}),children:p.jsx(v,{...(T=g.result.props)!=null?T:{}})})})}),Et())}if(w.isRendering&&d&&d.component===f){const v=f;return g===null||g.type!=="success"?null:Gt.createPortal(p.jsx(vt,{children:p.jsx(a.Suspense,{fallback:p.jsx(Do,{}),children:p.jsx(v,{...(S=g.result.props)!=null?S:{}})})}),Et())}return null},tn=V.createRef(),Uo=({children:e,numberOfAudioTags:t})=>{var T;const[r,n]=a.useState([]),o=a.useRef(r),[s,c]=a.useState([]),[i,u]=a.useState(null),[l,d]=a.useState(null),f=a.useCallback(S=>{n(v=>{const k=S(v);return o.current=k,k})},[]),h=a.useCallback(S=>{f(v=>{if(v.find($=>$.id===S.id))throw new Error("Multiple composition with id ".concat(S.id," are registered."));return[...v,S].slice().sort(($,y)=>$.nonce-y.nonce)})},[f]),m=a.useCallback(S=>{n(v=>v.filter(k=>k.id!==S))},[]),w=a.useCallback((S,v)=>{c(k=>[...k,{name:S,parent:v}])},[]),E=a.useCallback((S,v)=>{c(k=>k.filter($=>!($.name===S&&$.parent===v)))},[]);a.useImperativeHandle(tn,()=>({getCompositions:()=>o.current}),[]);const b=r.find(S=>(i==null?void 0:i.type)==="composition"?S.id===i.compositionId:null),x=a.useCallback((S,v)=>{n(k=>k.map(y=>y.id===S?{...y,defaultProps:v}:y))},[]),g=a.useMemo(()=>({compositions:r,registerComposition:h,unregisterComposition:m,folders:s,registerFolder:w,unregisterFolder:E,currentCompositionMetadata:l,setCurrentCompositionMetadata:d,canvasContent:i,setCanvasContent:u,updateCompositionDefaultProps:x}),[r,h,m,s,w,E,l,i,x]);return p.jsx(ne.Provider,{value:g,children:p.jsx(Mn,{children:p.jsx(Zn,{children:p.jsx(Rr,{children:p.jsx(Kr,{numberOfAudioTags:t,component:(T=b==null?void 0:b.component)!=null?T:null,children:e})})})})})};function rn(e,t){return 1-3*t+3*e}function nn(e,t){return 3*t-6*e}function on(e){return 3*e}function He(e,t,r){return((rn(t,r)*e+nn(t,r))*e+on(t))*e}function sn(e,t,r){return 3*rn(t,r)*e*e+2*nn(t,r)*e+on(t)}function Bo({aX:e,_aA:t,_aB:r,mX1:n,mX2:o}){let s,c,i=0,u=t,l=r;do c=u+(l-u)/2,s=He(c,n,o)-e,s>0?l=c:u=c;while(Math.abs(s)>Yo&&++i<Go);return c}function Oo(e,t,r,n){let o=t;for(let s=0;s<zo;++s){const c=sn(o,r,n);if(c===0)return o;const i=He(o,r,n)-e;o-=i/c}return o}function Wo(e,t,r,n){if(!(e>=0&&e<=1&&r>=0&&r<=1))throw new Error("bezier x values must be in [0, 1] range");const o=qo?new Float32Array(Ee):new Array(Ee);if(e!==t||r!==n)for(let c=0;c<Ee;++c)o[c]=He(c*Ae,e,r);function s(c){let i=0,u=1;const l=Ee-1;for(;u!==l&&o[u]<=c;++u)i+=Ae;--u;const d=(c-o[u])/(o[u+1]-o[u]),f=i+d*Ae,h=sn(f,e,r);return h>=Ho?Oo(c,f,e,r):h===0?f:Bo({aX:c,_aA:i,_aB:i+Ae,mX1:e,mX2:r})}return function(c){return e===t&&r===n?c:c===0?0:c===1?1:He(s(c),t,n)}}var zo=4,Ho=.001,Yo=1e-7,Go=10,Ee=11,Ae=1/(Ee-1),qo=typeof Float32Array=="function";class an{static step0(t){return t>0?1:0}static step1(t){return t>=1?1:0}static linear(t){return t}static ease(t){return an.bezier(.42,0,1,1)(t)}static quad(t){return t*t}static cubic(t){return t*t*t}static poly(t){return r=>r**t}static sin(t){return 1-Math.cos(t*Math.PI/2)}static circle(t){return 1-Math.sqrt(1-t*t)}static exp(t){return 2**(10*(t-1))}static elastic(t=1){const r=t*Math.PI;return n=>1-Math.cos(n*Math.PI/2)**3*Math.cos(n*r)}static back(t=1.70158){return r=>r*r*((t+1)*r-t)}static bounce(t){if(t<1/2.75)return 7.5625*t*t;if(t<2/2.75){const n=t-.5454545454545454;return 7.5625*n*n+.75}if(t<2.5/2.75){const n=t-.8181818181818182;return 7.5625*n*n+.9375}const r=t-2.625/2.75;return 7.5625*r*r+.984375}static bezier(t,r,n,o){return Wo(t,r,n,o)}static in(t){return t}static out(t){return r=>1-t(1-r)}static inOut(t){return r=>r<.5?t(r*2)/2:1-t((1-r)*2)/2}}var Zo=({onLoad:e,onError:t,delayRenderRetries:r,delayRenderTimeoutInMilliseconds:n,...o},s)=>{const[c]=a.useState(()=>J("Loading <IFrame> with source ".concat(o.src),{retries:r!=null?r:void 0,timeoutInMilliseconds:n!=null?n:void 0})),i=a.useCallback(l=>{j(c),e==null||e(l)},[c,e]),u=a.useCallback(l=>{j(c),t?t(l):console.error("Error loading iframe:",l,"Handle the event using the onError() prop to make this message disappear.")},[c,t]);return p.jsx("iframe",{...o,ref:s,onError:u,onLoad:i})};a.forwardRef(Zo);function Ko(e){return 1e3*2**(e-1)}var Jo=({onError:e,maxRetries:t=2,src:r,pauseWhenLoading:n,delayRenderRetries:o,delayRenderTimeoutInMilliseconds:s,onImageFrame:c,...i},u)=>{const l=a.useRef(null),d=a.useRef({}),{delayPlayback:f}=Lt(),h=a.useContext(H);if(!r)throw new Error('No "src" prop was passed to <Img>.');a.useImperativeHandle(u,()=>l.current,[]);const m=ge(r),w=a.useCallback(b=>{if(!l.current)return;const x=l.current.src;setTimeout(()=>{var T;if(!l.current)return;const g=(T=l.current)==null?void 0:T.src;g===x&&(l.current.removeAttribute("src"),l.current.setAttribute("src",g))},b)},[]),E=a.useCallback(b=>{var x,g,T,S,v,k,$,y,F,C,M;if(d.current){if(d.current[(x=l.current)==null?void 0:x.src]=((T=d.current[(g=l.current)==null?void 0:g.src])!=null?T:0)+1,e&&((v=d.current[(S=l.current)==null?void 0:S.src])!=null?v:0)>t){e(b);return}if((($=d.current[(k=l.current)==null?void 0:k.src])!=null?$:0)<=t){const I=Ko((F=d.current[(y=l.current)==null?void 0:y.src])!=null?F:0);console.warn("Could not load image with source ".concat((C=l.current)==null?void 0:C.src,", retrying again in ").concat(I,"ms")),w(I);return}Vt("Error loading image with src: "+((M=l.current)==null?void 0:M.src))}},[t,e,w]);if(typeof window<"u"){const b=!!(h!=null&&h.premounting);a.useLayoutEffect(()=>{var $,y;if(((y=($=window.process)==null?void 0:$.env)==null?void 0:y.NODE_ENV)==="test"){l.current&&(l.current.src=m);return}const x=J("Loading <Img> with src="+m,{retries:o!=null?o:void 0,timeoutInMilliseconds:s!=null?s:void 0}),g=n&&!b?f().unblock:()=>{},{current:T}=l;let S=!1;const v=()=>{var F,C,M,I;S||(((C=d.current[(F=l.current)==null?void 0:F.src])!=null?C:0)>0&&(delete d.current[(M=l.current)==null?void 0:M.src],console.info("Retry successful - ".concat((I=l.current)==null?void 0:I.src," is now loaded"))),T&&(T.src=m,c==null||c(T)),g(),j(x))},k=new Image;return k.src=m,k.decode().then(v).catch(F=>{console.warn(F),k.complete?v():k.addEventListener("load",v)}),()=>{S=!0,k.removeEventListener("load",v),g(),j(x)}},[m,f,o,s,n,b,c])}return p.jsx("img",{...i,ref:l,onError:E})},Qs=a.forwardRef(Jo),un={};gr(un,{makeDefaultPreviewCSS:()=>Xo,injectCSS:()=>Qo,OFFTHREAD_VIDEO_CLASS_NAME:()=>Ct});var ur={},Qo=e=>{if(typeof document>"u"||ur[e])return;const t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.appendChild(document.createTextNode(e)),t.prepend(r),ur[e]=!0},Ct="__remotion_offthreadvideo",Xo=(e,t)=>e?"\n    ".concat(e," * {\n      box-sizing: border-box;\n    }\n    ").concat(e," *:-webkit-full-screen {\n      width: 100%;\n      height: 100%;\n    }\n    ").concat(e," .").concat(Ct," {\n      object-fit: contain;\n    }\n  "):"\n    * {\n      box-sizing: border-box;\n    }\n    body {\n      margin: 0;\n	    background-color: ".concat(t,";\n    }\n    .").concat(Ct," {\n      object-fit: contain;\n    }\n    "),cn="__remotion-studio-container",ei=()=>document.getElementById(cn),ti=null,ut=[],ri=()=>ti,ni=e=>(ut.push(e),()=>{ut=ut.filter(t=>t!==e)}),oi=({children:e,numberOfAudioTags:t})=>{const[r]=a.useState(()=>String(Fe(null))),[n,o]=a.useState(()=>Nr()),[s,c]=a.useState(!1),i=a.useRef(!1),[u,l]=a.useState(0),[d,f]=a.useState(1),h=a.useRef([]);typeof window<"u"&&a.useLayoutEffect(()=>{window.remotion_setFrame=(b,x,g)=>{window.remotion_attempt=g;const T=J("Setting the current frame to ".concat(b));let S=!0;o(v=>{var $;return(($=v[x])!=null?$:window.remotion_initialFrame)===b?(S=!1,v):{...v,[x]:b}}),S?requestAnimationFrame(()=>j(T)):j(T)},window.remotion_isPlayer=!1},[]);const m=a.useMemo(()=>({frame:n,playing:s,imperativePlaying:i,rootId:r,playbackRate:d,setPlaybackRate:f,audioAndVideoTags:h}),[n,d,s,r]),w=a.useMemo(()=>({setFrame:o,setPlaying:c}),[]),E=a.useMemo(()=>{let b=0;return{getNonce:()=>b++,fastRefreshes:u}},[u]);return a.useEffect(()=>{typeof __webpack_module__<"u"&&__webpack_module__.hot&&__webpack_module__.hot.addStatusHandler(b=>{b==="idle"&&l(x=>x+1)})},[]),p.jsx(he.Provider,{value:E,children:p.jsx(K.Provider,{value:m,children:p.jsx(me.Provider,{value:w,children:p.jsx(Sr,{children:p.jsx(Lr,{children:p.jsx(vr,{children:p.jsx(Uo,{numberOfAudioTags:t,children:p.jsx(Br,{children:p.jsx(Wr,{children:e})})})})})})})})})},ii=()=>{if(W().isRendering){const e=window.remotion_envVariables;return e?{...JSON.parse(e),NODE_ENV:"production"}:{}}return{NODE_ENV:"production"}},si=()=>{const e=ii();window.process||(window.process={}),window.process.env||(window.process.env={}),Object.keys(e).forEach(t=>{window.process.env[t]=e[t]})},ai=V.createContext(null),ui=a.createContext({setSize:()=>{},size:{size:"auto",translation:{x:0,y:0}}}),ci=({canvasSize:e,compositionHeight:t,compositionWidth:r,previewSize:n})=>{const o=e.height/t,s=e.width/r,c=Math.min(o,s);return n==="auto"?c:Number(n)},li="remotion_staticFilesChanged";function di(){const e=V.useContext(ne),t=V.useContext(K),r=V.useContext(me),n=V.useContext(H),o=V.useContext(he),s=V.useContext(ce),c=V.useContext(Ze),i=V.useContext(tt),u=V.useContext(Qe),l=V.useContext(we),d=V.useContext(fe),f=V.useContext(ve);return a.useMemo(()=>({compositionManagerCtx:e,timelineContext:t,setTimelineContext:r,sequenceContext:n,nonceContext:o,canUseRemotionHooksContext:s,nativeLayersContext:c,preloadContext:i,resolveCompositionContext:u,renderAssetManagerContext:l,sequenceManagerContext:d,bufferManagerContext:f}),[e,o,n,r,t,s,c,i,u,l,d,f])}var fi=e=>{const{children:t,contexts:r}=e;return p.jsx(ce.Provider,{value:r.canUseRemotionHooksContext,children:p.jsx(he.Provider,{value:r.nonceContext,children:p.jsx(Ze.Provider,{value:r.nativeLayersContext,children:p.jsx(tt.Provider,{value:r.preloadContext,children:p.jsx(ne.Provider,{value:r.compositionManagerCtx,children:p.jsx(fe.Provider,{value:r.sequenceManagerContext,children:p.jsx(we.Provider,{value:r.renderAssetManagerContext,children:p.jsx(Qe.Provider,{value:r.resolveCompositionContext,children:p.jsx(K.Provider,{value:r.timelineContext,children:p.jsx(me.Provider,{value:r.setTimelineContext,children:p.jsx(H.Provider,{value:r.sequenceContext,children:p.jsx(ve.Provider,{value:r.bufferManagerContext,children:t})})})})})})})})})})})})},ln={useUnsafeVideoConfig:Pt,Timeline:Er,CompositionManager:ne,SequenceManager:fe,SequenceVisibilityToggleContext:$e,RemotionRoot:oi,useVideo:Xe,getRoot:ri,useMediaVolumeState:Ot,useMediaMutedState:Wt,useLazyComponent:Jr,truthy:Mt,SequenceContext:H,useRemotionContexts:di,RemotionContextProvider:fi,CSSUtils:un,setupEnvVariables:si,MediaVolumeContext:Ut,SetMediaVolumeContext:Bt,getRemotionEnvironment:W,SharedAudioContext:ot,SharedAudioContextProvider:Kr,invalidCompositionErrorMessage:jo,isCompositionIdValid:Xr,getPreviewDomElement:ei,compositionsRef:tn,portalNode:Et,waitForRoot:ni,CanUseRemotionHooksProvider:vt,CanUseRemotionHooks:ce,PrefetchProvider:Lr,DurationsContextProvider:Br,IsPlayerContextProvider:$n,useIsPlayer:kt,EditorPropsProvider:Sr,EditorPropsContext:Ke,usePreload:ge,NonceContext:he,resolveVideoConfig:Fr,useResolvedVideoConfig:Nt,resolveCompositionsRef:kr,ResolveCompositionConfig:Rr,REMOTION_STUDIO_CONTAINER_ELEMENT:cn,RenderAssetManager:we,persistCurrentFrame:Ir,useTimelineSetFrame:Ar,NativeLayersProvider:vr,ClipComposition:en,isIosSafari:nt,WATCH_REMOTION_STATIC_FILES:li,addSequenceStackTraces:Te,useMediaStartsAt:ke,BufferingProvider:Wr,BufferingContextReact:ve,enableSequenceStackTraces:br,CurrentScaleContext:ai,PreviewSizeContext:ui,calculateScale:ci,editorPropsProviderRef:Cr,PROPS_UPDATED_EXTERNALLY:Un,validateRenderAsset:Pr},hi=({allowFloats:e,durationInFrames:t,frame:r})=>{if(typeof r>"u")throw new TypeError('Argument missing for parameter "frame"');if(typeof r!="number")throw new TypeError('Argument passed for "frame" is not a number: '.concat(r));if(!Number.isFinite(r))throw new RangeError("Frame ".concat(r," is not finite"));if(r%1!==0&&!e)throw new RangeError("Argument for frame must be an integer, but got ".concat(r));if(r<0&&r<-t)throw new RangeError("Cannot use frame ".concat(r,": Duration of composition is ").concat(t,", therefore the lowest frame that can be rendered is ").concat(-t));if(r>t-1)throw new RangeError("Cannot use frame ".concat(r,": Duration of composition is ").concat(t,", therefore the highest frame that can be rendered is ").concat(t-1))},dn=a.createContext(!1),mi=({children:e})=>p.jsx(dn.Provider,{value:!1,children:e}),pi=()=>{if(!V.useContext(dn))throw new Error("This component must be inside a <Series /> component.")},wi=({children:e},t)=>(pi(),p.jsx(mi,{children:e})),gi=a.forwardRef(wi);Te(gi);var vi=e=>{if(!(typeof e>"u")){if(typeof e!="number")throw new TypeError('A "duration" of a spring must be a "number" but is "'.concat(typeof e,'"'));if(Number.isNaN(e))throw new TypeError('A "duration" of a spring is NaN, which it must not be');if(!Number.isFinite(e))throw new TypeError('A "duration" of a spring must be finite, but is '+e);if(e<=0)throw new TypeError('A "duration" of a spring must be positive, but is '+e)}};function yi({animation:e,now:t,config:r}){const{toValue:n,lastTimestamp:o,current:s,velocity:c}=e,i=Math.min(t-o,64);if(r.damping<=0)throw new Error("Spring damping must be greater than 0, otherwise the spring() animation will never end, causing an infinite loop.");const u=r.damping,l=r.mass,d=r.stiffness,f=[n,o,s,c,u,l,d,t].join("-");if(ct[f])return ct[f];const h=-c,m=n-s,w=u/(2*Math.sqrt(d*l)),E=Math.sqrt(d/l),b=E*Math.sqrt(1-w**2),x=i/1e3,g=Math.sin(b*x),T=Math.cos(b*x),S=Math.exp(-w*E*x),v=S*(g*((h+w*E*m)/b)+m*T),k=n-v,$=w*E*v-S*(T*(h+w*E*m)-b*m*g),y=Math.exp(-E*x),F=n-y*(m+(h+E*m)*x),C=y*(h*(x*E-1)+x*m*E*E),M={toValue:n,prevPosition:s,lastTimestamp:t,current:w<1?k:F,velocity:w<1?$:C};return ct[f]=M,M}function fn({frame:e,fps:t,config:r={}}){const s=[e,t,r.damping,r.mass,r.overshootClamping,r.stiffness].join("-");if(lt[s])return lt[s];let c={lastTimestamp:0,current:0,toValue:1,velocity:0,prevPosition:0};const i=Math.max(0,e),u=i%1;for(let l=0;l<=Math.floor(i);l++){l===Math.floor(i)&&(l+=u);const d=l/t*1e3;c=yi({animation:c,now:d,config:{...bi,...r}})}return lt[s]=c,c}var bi={damping:10,mass:1,stiffness:100,overshootClamping:!1},ct={},lt={};function hn({fps:e,config:t={},threshold:r=.005}){if(typeof r!="number")throw new TypeError("threshold must be a number, got ".concat(r," of type ").concat(typeof r));if(r===0)return 1/0;if(r===1)return 0;if(isNaN(r))throw new TypeError("Threshold is NaN");if(!Number.isFinite(r))throw new TypeError("Threshold is not finite");if(r<0)throw new TypeError("Threshold is below 0");const n=[e,t.damping,t.mass,t.overshootClamping,t.stiffness,r].join("-");if(dt.has(n))return dt.get(n);Je(e,"to the measureSpring() function",!1);let o=0,s=0;const c=()=>fn({fps:e,frame:o,config:t});let i=c();const u=()=>Math.abs(i.current-i.toValue);let l=u();for(;l>=r;)o++,i=c(),l=u();s=o;for(let d=0;d<20;d++)o++,i=c(),l=u(),l>=r&&(d=0,s=o+1);return dt.set(n,s),s}var dt=new Map;function xi({frame:e,fps:t,config:r={},from:n=0,to:o=1,durationInFrames:s,durationRestThreshold:c,delay:i=0,reverse:u=!1}){vi(s),hi({frame:e,durationInFrames:1/0,allowFloats:!0}),Je(t,"to spring()",!1);const l=u||typeof s<"u",d=l?hn({fps:t,config:r,threshold:c}):void 0,f=l?{get:()=>d}:{get:()=>{throw new Error("did not calculate natural duration, this is an error with Remotion. Please report")}},m=(u?(s!=null?s:f.get())-e:e)+(u?i:-i),w=s===void 0?m:m/(s/f.get());if(s&&m>s)return o;const E=fn({fps:t,frame:w,config:r}),b=r.overshootClamping?o>=n?Math.min(E.current,o):Math.max(E.current,o):E.current;return n===0&&o===1?b:ze(b,[0,1],[n,o])}var Ei=({ref:e,onVideoFrame:t})=>{a.useEffect(()=>{const{current:r}=e;if(!r||!t)return;let n=0;const o=()=>{e.current&&(t(e.current),n=e.current.requestVideoFrameCallback(o))};return o(),()=>{r.cancelVideoFrameCallback(n)}},[t,e])},Ci=(e,t)=>{var Ie,Ne,ye;const r=a.useRef(null),{volume:n,muted:o,playbackRate:s,onlyWarnForMediaSeekingError:c,src:i,onDuration:u,acceptableTimeShift:l,acceptableTimeShiftInSeconds:d,toneFrequency:f,name:h,_remotionInternalNativeLoopPassed:m,_remotionInternalStack:w,_remotionDebugSeeking:E,style:b,pauseWhenBuffering:x,showInTimeline:g,loopVolumeCurveBehavior:T,onError:S,onAutoPlayError:v,onVideoFrame:k,crossOrigin:$,...y}=e,F=rt(T!=null?T:"repeat"),{fps:C,durationInFrames:M}=ee(),I=a.useContext(H),{hidden:R}=a.useContext($e),[P]=a.useState(()=>String(Math.random())),L=(Ie=R[P])!=null?Ie:!1;if(typeof l<"u")throw new Error("acceptableTimeShift has been removed. Use acceptableTimeShiftInSeconds instead.");const N=Gr(r),[B]=Ot(),[_]=Wt();Or({mediaRef:r,volume:n,mediaVolume:B,mediaType:"video",src:i,playbackRate:(Ne=e.playbackRate)!=null?Ne:1,displayName:h!=null?h:null,id:P,stack:w,showInTimeline:g,premountDisplay:null,onAutoPlayError:v!=null?v:null}),Zr({volumePropFrame:F,actualVolume:N,volume:n,mediaVolume:B,mediaRef:r}),Yr({mediaRef:r,src:i,mediaType:"video",playbackRate:(ye=e.playbackRate)!=null?ye:1,onlyWarnForMediaSeekingError:c,acceptableTimeshift:d!=null?d:Dt,isPremounting:!!(I!=null&&I.premounting),pauseWhenBuffering:x,debugSeeking:E,onAutoPlayError:v!=null?v:null});const O=I?I.relativeFrom:0,A=I?Math.min(I.durationInFrames,M):M,U=go({actualSrc:ge(i),actualFrom:O,duration:A,fps:C});a.useImperativeHandle(t,()=>r.current,[]),a.useEffect(()=>{const{current:D}=r;if(!D)return;const be=()=>{var xe;if(D.error){if(console.error("Error occurred in video",D==null?void 0:D.error),S){const le=new Error("Code ".concat(D.error.code,": ").concat(D.error.message));S(le);return}throw new Error("The browser threw an error while playing the video ".concat(i,": Code ").concat(D.error.code," - ").concat((xe=D==null?void 0:D.error)==null?void 0:xe.message,". See https://remotion.dev/docs/media-playback-error for help. Pass an onError() prop to handle the error."))}else{if(S){const le=new Error("The browser threw an error while playing the video ".concat(i));S(le);return}throw new Error("The browser threw an error while playing the video")}};return D.addEventListener("error",be,{once:!0}),()=>{D.removeEventListener("error",be)}},[S,i]);const z=a.useRef();z.current=u,Ei({ref:r,onVideoFrame:k}),a.useEffect(()=>{var xe;const{current:D}=r;if(!D)return;if(D.duration){(xe=z.current)==null||xe.call(z,i,D.duration);return}const be=()=>{var le;(le=z.current)==null||le.call(z,i,D.duration)};return D.addEventListener("loadedmetadata",be),()=>{D.removeEventListener("loadedmetadata",be)}},[i]),a.useEffect(()=>{const{current:D}=r;D&&(nt()?D.preload="metadata":D.preload="auto")},[]);const re=a.useMemo(()=>{var D;return{...b,opacity:L?0:(D=b==null?void 0:b.opacity)!=null?D:1}},[L,b]),Re=$!=null?$:k?"anonymous":void 0;return p.jsx("video",{ref:r,muted:o||_,playsInline:!0,src:U,loop:m,style:re,disableRemotePlayback:!0,crossOrigin:Re,...y})},Si=a.forwardRef(Ci),cr=e=>Math.round(e*1e5)/1e5,ft=(e,t)=>{e.currentTime=t;let r,n=null;const o=new Promise(c=>{r=e.requestVideoFrameCallback((i,u)=>{const l=u.expectedDisplayTime-i;if(l<=0){c(u.mediaTime);return}setTimeout(()=>{c(u.mediaTime)},l+150)})}),s=new Promise(c=>{const i=()=>{c()};e.addEventListener("seeked",i,{once:!0}),n=()=>{e.removeEventListener("seeked",i)}});return{wait:Promise.all([o,s]).then(([c])=>c),cancel:()=>{n==null||n(),e.cancelVideoFrameCallback(r)}}},Ti=(e,t,r)=>{const n=1/r/2;let o=()=>{};return Number.isFinite(e.duration)&&e.currentTime>=e.duration&&t>=e.duration?{prom:Promise.resolve(),cancel:()=>{}}:{prom:new Promise((c,i)=>{const u=ft(e,t+n);u.wait.then(l=>{if(Math.abs(t-l)<=n)return c();const f=t>l?1:-1,h=ft(e,l+n*f);o=h.cancel,h.wait.then(m=>{const w=Math.abs(t-m);if(cr(w)<=cr(n))return c();const E=ft(e,t+n);return o=E.cancel,E.wait.then(()=>{c()}).catch(b=>{i(b)})}).catch(m=>{i(m)})}),o=u.cancel}),cancel:()=>{o()}}},$i=({onError:e,volume:t,allowAmplificationDuringRender:r,playbackRate:n,onDuration:o,toneFrequency:s,name:c,acceptableTimeShiftInSeconds:i,delayRenderRetries:u,delayRenderTimeoutInMilliseconds:l,loopVolumeCurveBehavior:d,...f},h)=>{const m=pe(),w=te(),E=rt(d!=null?d:"repeat"),b=Pt(),x=a.useRef(null),g=a.useContext(H),T=ke(),S=W(),{registerRenderAsset:v,unregisterRenderAsset:k}=a.useContext(we),$=a.useMemo(()=>{var C;return"video-".concat(Fe((C=f.src)!=null?C:""),"-").concat(g==null?void 0:g.cumulatedFrom,"-").concat(g==null?void 0:g.relativeFrom,"-").concat(g==null?void 0:g.durationInFrames)},[f.src,g==null?void 0:g.cumulatedFrom,g==null?void 0:g.relativeFrom,g==null?void 0:g.durationInFrames]);if(!b)throw new Error("No video config found");const y=Me({volume:t,frame:E,mediaVolume:1,allowAmplificationDuringRender:r!=null?r:!1});a.useEffect(()=>{var C;if(!f.src)throw new Error("No src passed");if(!f.muted&&!(y<=0)&&window.remotion_audioEnabled)return v({type:"video",src:ae(f.src),id:$,frame:m,volume:y,mediaFrame:w,playbackRate:n!=null?n:1,allowAmplificationDuringRender:r!=null?r:!1,toneFrequency:s!=null?s:null,audioStartFrame:Math.max(0,-((C=g==null?void 0:g.relativeFrom)!=null?C:0))}),()=>k($)},[f.muted,f.src,v,$,k,y,w,m,n,r,s,g==null?void 0:g.relativeFrom]),a.useImperativeHandle(h,()=>x.current,[]),a.useEffect(()=>{var N,B;if(!window.remotion_videoEnabled)return;const{current:C}=x;if(!C)return;const M=zr({frame:w,playbackRate:n||1,startFrom:-T,fps:b.fps}),I=J('Rendering <Video /> with src="'.concat(f.src,'"'),{retries:u!=null?u:void 0,timeoutInMilliseconds:l!=null?l:void 0});if(((B=(N=window.process)==null?void 0:N.env)==null?void 0:B.NODE_ENV)==="test"){j(I);return}if(qr(C.currentTime,M)){if(C.readyState>=2){j(I);return}const _=()=>{j(I)};return C.addEventListener("loadeddata",_,{once:!0}),()=>{C.removeEventListener("loadeddata",_)}}const R=()=>{j(I)},P=Ti(C,M,b.fps);P.prom.then(()=>{j(I)}),C.addEventListener("ended",R,{once:!0});const L=()=>{var _;if(C!=null&&C.error){if(console.error("Error occurred in video",C==null?void 0:C.error),e)return;throw new Error("The browser threw an error while playing the video ".concat(f.src,": Code ").concat(C.error.code," - ").concat((_=C==null?void 0:C.error)==null?void 0:_.message,". See https://remotion.dev/docs/media-playback-error for help. Pass an onError() prop to handle the error."))}else throw new Error("The browser threw an error")};return C.addEventListener("error",L,{once:!0}),()=>{P.cancel(),C.removeEventListener("ended",R),C.removeEventListener("error",L),j(I)}},[E,f.src,n,b.fps,w,T,e,u,l]);const{src:F}=f;return S.isRendering&&a.useLayoutEffect(()=>{var R,P;if(((P=(R=window.process)==null?void 0:R.env)==null?void 0:P.NODE_ENV)==="test")return;const C=J("Loading <Video> duration with src="+F,{retries:u!=null?u:void 0,timeoutInMilliseconds:l!=null?l:void 0}),{current:M}=x,I=()=>{M!=null&&M.duration&&o(F,M.duration),j(C)};return M!=null&&M.duration?(o(F,M.duration),j(C)):M==null||M.addEventListener("loadedmetadata",I,{once:!0}),()=>{M==null||M.removeEventListener("loadedmetadata",I),j(C)}},[F,o,u,l]),p.jsx("video",{ref:x,disableRemotePlayback:!0,...f})},Fi=a.forwardRef($i),ki=(e,t)=>{var k,$;const{startFrom:r,endAt:n,name:o,pauseWhenBuffering:s,stack:c,_remotionInternalNativeLoopPassed:i,showInTimeline:u,onAutoPlayError:l,...d}=e,{loop:f,_remotionDebugSeeking:h,...m}=e,{fps:w}=ee(),E=W(),{durations:b,setDurations:x}=a.useContext(jt);if(typeof t=="string")throw new Error("string refs are not supported");if(typeof e.src!="string")throw new TypeError("The `<Video>` tag requires a string for `src`, but got ".concat(JSON.stringify(e.src)," instead."));const g=ge(e.src),T=a.useCallback((y,F)=>{x({type:"got-duration",durationInSeconds:F,src:y})},[x]),S=a.useCallback(()=>{},[]),v=(k=b[ae(g)])!=null?k:b[ae(e.src)];if(f&&v!==void 0){const y=v*w;return p.jsx(et,{durationInFrames:Vr({endAt:n,mediaDuration:y,playbackRate:($=e.playbackRate)!=null?$:1,startFrom:r}),layout:"none",name:o,children:p.jsx(St,{...m,ref:t,_remotionInternalNativeLoopPassed:!0})})}if(typeof r<"u"||typeof n<"u"){Ur(r,n);const y=r!=null?r:0,F=n!=null?n:1/0;return p.jsx(Q,{layout:"none",from:0-y,showInTimeline:!1,durationInFrames:F,name:o,children:p.jsx(St,{pauseWhenBuffering:s!=null?s:!1,...d,ref:t})})}return Dr(e,"Video"),E.isRendering?p.jsx(Fi,{onDuration:T,onVideoFrame:S!=null?S:null,...d,ref:t}):p.jsx(Si,{onlyWarnForMediaSeekingError:!1,...d,ref:t,onVideoFrame:null,pauseWhenBuffering:s!=null?s:!1,onDuration:T,_remotionInternalStack:c!=null?c:null,_remotionInternalNativeLoopPassed:i!=null?i:!1,_remotionDebugSeeking:h!=null?h:!1,showInTimeline:u!=null?u:!0,onAutoPlayError:l!=null?l:void 0})},St=a.forwardRef(ki);Te(St);Fn();var Mi={},Ri=new Proxy(Mi,{get(e,t){return t==="Bundling"||t==="Rendering"||t==="Log"||t==="Puppeteer"||t==="Output"?Ri:()=>{console.warn("⚠️  The CLI configuration has been extracted from Remotion Core."),console.warn("Update the import from the config file:"),console.warn(),console.warn("- Delete:"),console.warn('import {Config} from "remotion";'),console.warn("+ Replace:"),console.warn('import {Config} from "@remotion/cli/config";'),console.warn(),console.warn("For more information, see https://www.remotion.dev/docs/4-0-migration."),process.exit(1)}}});Te(Q);function Ii(e,t,r,n){const{extrapolateLeft:o,extrapolateRight:s,easing:c}=n;let i=e;const[u,l]=t,[d,f]=r;if(i<u){if(o==="identity")return i;if(o==="clamp")i=u;else if(o==="wrap"){const h=l-u;i=((i-u)%h+h)%h+u}}if(i>l){if(s==="identity")return i;if(s==="clamp")i=l;else if(s==="wrap"){const h=l-u;i=((i-u)%h+h)%h+u}}return d===f?d:(i=(i-u)/(l-u),i=c(i),i=i*(f-d)+d,i)}function Ni(e,t){let r;for(r=1;r<t.length-1&&!(t[r]>=e);++r);return r-1}function _i(e){for(let t=1;t<e.length;++t)if(!(e[t]>e[t-1]))throw new Error("inputRange must be strictly monotonically increasing but got [".concat(e.join(","),"]"))}function lr(e,t){if(t.length<2)throw new Error(e+" must have at least 2 elements");for(const r of t){if(typeof r!="number")throw new Error("".concat(e," must contain only numbers"));if(!Number.isFinite(r))throw new Error("".concat(e," must contain only finite numbers, but got [").concat(t.join(","),"]"))}}function Ai(e,t,r,n){var u;if(typeof e>"u")throw new Error("input can not be undefined");if(typeof t>"u")throw new Error("inputRange can not be undefined");if(typeof r>"u")throw new Error("outputRange can not be undefined");if(t.length!==r.length)throw new Error("inputRange ("+t.length+") and outputRange ("+r.length+") must have the same length");lr("inputRange",t),lr("outputRange",r),_i(t);const o=(u=n==null?void 0:n.easing)!=null?u:l=>l;let s="extend";(n==null?void 0:n.extrapolateLeft)!==void 0&&(s=n.extrapolateLeft);let c="extend";if((n==null?void 0:n.extrapolateRight)!==void 0&&(c=n.extrapolateRight),typeof e!="number")throw new TypeError("Cannot interpolate an input which is not a number");const i=Ni(e,t);return Ii(e,[t[i],t[i+1]],[r[i],r[i+1]],{easing:o,extrapolateLeft:s,extrapolateRight:c})}function Pi(e){return!!e}typeof window<"u"&&(window.remotion_renderReady=!1);typeof window<"u"&&(window.remotion_delayRenderTimeouts={});var Vi="The delayRender was called:",ji="Retries left: ",Li="- Rendering the frame will be retried.",Di={"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";"},dr={},Ui=e=>{dr[e]||(console.warn(e),dr[e]=!0)},Bi=e=>{for(const t of Object.keys(Di))if(e.includes(t))return{containsHex:!0,hexCode:t};return{containsHex:!1}},Tt=e=>e.startsWith("/")?Tt(e.substring(1)):e,Oi=e=>{if(typeof window<"u"&&window.remotion_staticBase){if(e.startsWith(window.remotion_staticBase))throw new Error('The value "'.concat(e,'" is already prefixed with the static base ').concat(window.remotion_staticBase,". You don't need to call staticFile() on it."));return"".concat(window.remotion_staticBase,"/").concat(Tt(e))}return"/".concat(Tt(e))},Wi=e=>e.split("/").map(o=>encodeURIComponent(o)).join("/"),zi=e=>{if(e===null)throw new TypeError("null was passed to staticFile()");if(typeof e>"u")throw new TypeError("undefined was passed to staticFile()");if(e.startsWith("http://")||e.startsWith("https://"))throw new TypeError('staticFile() does not support remote URLs - got "'.concat(e,'". Instead, pass the URL without wrapping it in staticFile(). See: https://remotion.dev/docs/staticfile-remote-urls'));if(e.startsWith("..")||e.startsWith("./"))throw new TypeError('staticFile() does not support relative paths - got "'.concat(e,'". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths'));if(e.startsWith("/Users")||e.startsWith("/home")||e.startsWith("/tmp")||e.startsWith("/etc")||e.startsWith("/opt")||e.startsWith("/var")||e.startsWith("C:")||e.startsWith("D:")||e.startsWith("E:"))throw new TypeError('staticFile() does not support absolute paths - got "'.concat(e,'". Instead, pass the name of a file that is inside the public/ folder. See: https://remotion.dev/docs/staticfile-relative-paths'));if(e.startsWith("public/"))throw new TypeError('Do not include the public/ prefix when using staticFile() - got "'.concat(e,'". See: https://remotion.dev/docs/staticfile-relative-paths'));const t=Bi(e);t.containsHex&&Ui("WARNING: You seem to pass an already encoded path (path contains ".concat(t.hexCode,"). Since Remotion 4.0, the encoding is done by staticFile() itself. You may want to remove a encodeURIComponent() wrapping."));const r=Wi(e),n=Oi(r);return n.startsWith("/")?n:"/".concat(n)},Ye="remotion-date:",Ge="remotion-file:",Hi=({data:e,indent:t,staticBase:r})=>{let n=!1,o=!1,s=!1,c=!1;try{return{serializedString:JSON.stringify(e,function(u,l){const d=this[u];return d instanceof Date?(n=!0,"".concat(Ye).concat(d.toISOString())):d instanceof Map?(s=!0,l):d instanceof Set?(c=!0,l):typeof d=="string"&&r!==null&&d.startsWith(r)?(o=!0,"".concat(Ge).concat(d.replace(r+"/",""))):l},t),customDateUsed:n,customFileUsed:o,mapUsed:s,setUsed:c}}catch(i){throw new Error("Could not serialize the passed input props to JSON: "+i.message)}},Yi=e=>JSON.parse(e,(t,r)=>typeof r=="string"&&r.startsWith(Ye)?new Date(r.replace(Ye,"")):typeof r=="string"&&r.startsWith(Ge)?zi(r.replace(Ge,"")):r);function Pe(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}function Gi(){const e={rgb:void 0,rgba:void 0,hsl:void 0,hsla:void 0,hex3:void 0,hex4:void 0,hex5:void 0,hex6:void 0,hex8:void 0};return e.rgb===void 0&&(e.rgb=new RegExp("rgb"+Pe(q,q,q)),e.rgba=new RegExp("rgba"+Pe(q,q,q,q)),e.hsl=new RegExp("hsl"+Pe(q,je,je)),e.hsla=new RegExp("hsla"+Pe(q,je,je,q)),e.hex3=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,e.hex4=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,e.hex6=/^#([0-9a-fA-F]{6})$/,e.hex8=/^#([0-9a-fA-F]{8})$/),e}function ht(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function fr(e,t,r){const n=r<.5?r*(1+t):r+t-r*t,o=2*r-n,s=ht(o,n,e+1/3),c=ht(o,n,e),i=ht(o,n,e-1/3);return Math.round(s*255)<<24|Math.round(c*255)<<16|Math.round(i*255)<<8}function de(e){const t=Number.parseInt(e,10);return t<0?0:t>255?255:t}function hr(e){return(Number.parseFloat(e)%360+360)%360/360}function mr(e){const t=Number.parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function Ve(e){const t=Number.parseFloat(e);return t<0?0:t>100?1:t/100}function qi(e){const t=Gi();let r;if(t.hex6&&(r=t.hex6.exec(e)))return Number.parseInt(r[1]+"ff",16)>>>0;if($t[e]!==void 0)return $t[e];if(t.rgb&&(r=t.rgb.exec(e)))return(de(r[1])<<24|de(r[2])<<16|de(r[3])<<8|255)>>>0;if(t.rgba&&(r=t.rgba.exec(e)))return(de(r[1])<<24|de(r[2])<<16|de(r[3])<<8|mr(r[4]))>>>0;if(t.hex3&&(r=t.hex3.exec(e)))return Number.parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+"ff",16)>>>0;if(t.hex8&&(r=t.hex8.exec(e)))return Number.parseInt(r[1],16)>>>0;if(t.hex4&&(r=t.hex4.exec(e)))return Number.parseInt(r[1]+r[1]+r[2]+r[2]+r[3]+r[3]+r[4]+r[4],16)>>>0;if(t.hsl&&(r=t.hsl.exec(e)))return(fr(hr(r[1]),Ve(r[2]),Ve(r[3]))|255)>>>0;if(t.hsla&&(r=t.hsla.exec(e)))return(fr(hr(r[1]),Ve(r[2]),Ve(r[3]))|mr(r[4]))>>>0;throw new Error("invalid color string ".concat(e," provided"))}function Zi(e){const t=qi(e);return(t<<24|t>>>8)>>>0}var q="[-+]?\\d*\\.?\\d+",je=q+"%",$t={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},Ki=!1,Ji=({allowFloats:e,durationInFrames:t,frame:r})=>{if(typeof r>"u")throw new TypeError('Argument missing for parameter "frame"');if(typeof r!="number")throw new TypeError('Argument passed for "frame" is not a number: '.concat(r));if(!Number.isFinite(r))throw new RangeError("Frame ".concat(r," is not finite"));if(r%1!==0&&!e)throw new RangeError("Argument for frame must be an integer, but got ".concat(r));if(r<0&&r<-t)throw new RangeError("Cannot use frame ".concat(r,": Duration of composition is ").concat(t,", therefore the lowest frame that can be rendered is ").concat(-t));if(r>t-1)throw new RangeError("Cannot use frame ".concat(r,": Duration of composition is ").concat(t,", therefore the highest frame that can be rendered is ").concat(t-1))},Qi=(e,t,r)=>{if(e){if(typeof e!="object")throw new Error('"'.concat(t,'" must be an object, but you passed a value of type ').concat(typeof e));if(Array.isArray(e))throw new Error('"'.concat(t,'" must be an object, an array was passed ').concat(r?'for composition "'.concat(r,'"'):""))}};function Xi(e,t,r){if(typeof e!="number")throw new Error('The "'.concat(t,'" prop ').concat(r," must be a number, but you passed a value of type ").concat(typeof e));if(isNaN(e))throw new TypeError('The "'.concat(t,'" prop ').concat(r," must not be NaN, but is NaN."));if(!Number.isFinite(e))throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be finite, but is ").concat(e,"."));if(e%1!==0)throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be an integer, but is ").concat(e,"."));if(e<=0)throw new TypeError('The "'.concat(t,'" prop ').concat(r," must be positive, but got ").concat(e,"."))}function es(e,t){const{allowFloats:r,component:n}=t;if(typeof e>"u")throw new Error('The "durationInFrames" prop '.concat(n," is missing."));if(typeof e!="number")throw new Error('The "durationInFrames" prop '.concat(n," must be a number, but you passed a value of type ").concat(typeof e));if(e<=0)throw new TypeError('The "durationInFrames" prop '.concat(n," must be positive, but got ").concat(e,"."));if(!r&&e%1!==0)throw new TypeError('The "durationInFrames" prop '.concat(n," must be an integer, but got ").concat(e,"."));if(!Number.isFinite(e))throw new TypeError('The "durationInFrames" prop '.concat(n," must be finite, but got ").concat(e,"."))}function ts(e,t,r){if(typeof e!="number")throw new Error('"fps" must be a number, but you passed a value of type '.concat(typeof e," ").concat(t));if(!Number.isFinite(e))throw new Error('"fps" must be a finite, but you passed '.concat(e," ").concat(t));if(isNaN(e))throw new Error('"fps" must not be NaN, but got '.concat(e," ").concat(t));if(e<=0)throw new TypeError('"fps" must be positive, but got '.concat(e," ").concat(t));if(r&&e>50)throw new TypeError("The FPS for a GIF cannot be higher than 50. Use the --every-nth-frame option to lower the FPS: https://remotion.dev/docs/render-as-gif")}var rs=({frame:e,playbackRate:t,startFrom:r})=>Ai(e,[-1,r,r+1],[-1,r,r+t]),ns=e=>typeof window>"u"?e:new URL(e,window.origin).href,os=({src:e,transparent:t,currentTime:r,toneMapped:n})=>"http://localhost:".concat(window.remotion_proxyPort,"/proxy?src=").concat(encodeURIComponent(ns(e)),"&time=").concat(encodeURIComponent(r),"&transparent=").concat(String(t),"&toneMapped=").concat(String(n)),is={processColor:Zi,truthy:Pi,validateFps:ts,validateDimension:Xi,validateDurationInFrames:es,validateDefaultAndInputProps:Qi,validateFrame:Ji,serializeJSONWithDate:Hi,bundleName:"bundle.js",bundleMapName:"bundle.js.map",deserializeJSONWithCustomFields:Yi,DELAY_RENDER_CALLSTACK_TOKEN:Vi,DELAY_RENDER_RETRY_TOKEN:Li,DELAY_RENDER_ATTEMPT_TOKEN:ji,getOffthreadVideoSource:os,getExpectedMediaFrameUncorrected:rs,ENABLE_V5_BREAKING_CHANGES:Ki,MIN_NODE_VERSION:16,MIN_BUN_VERSION:"1.0.3",colorNames:$t,DATE_TOKEN:Ye,FILE_TOKEN:Ge},ss=.01,as=({children:e,presentationProgress:t,presentationDirection:r,passedProps:{direction:n="from-left",enterStyle:o,exitStyle:s}})=>{const c=a.useMemo(()=>{const u=t===1?t*100:t*100-ss;if(r==="exiting")switch(n){case"from-left":return{transform:"translateX(".concat(u,"%)")};case"from-right":return{transform:"translateX(".concat(-t*100,"%)")};case"from-top":return{transform:"translateY(".concat(u,"%)")};case"from-bottom":return{transform:"translateY(".concat(-t*100,"%)")};default:throw new Error("Invalid direction: ".concat(n))}switch(n){case"from-left":return{transform:"translateX(".concat(-100+t*100,"%)")};case"from-right":return{transform:"translateX(".concat(100-u,"%)")};case"from-top":return{transform:"translateY(".concat(-100+t*100,"%)")};case"from-bottom":return{transform:"translateY(".concat(100-u,"%)")};default:throw new Error("Invalid direction: ".concat(n))}},[r,t,n]),i=a.useMemo(()=>({width:"100%",height:"100%",justifyContent:"center",alignItems:"center",...c,...r==="entering"?o:s}),[c,o,s,r]);return p.jsx(Z,{style:i,children:e})},Le=e=>({component:as,props:e!=null?e:{}}),Xs=(e={})=>({getDurationInFrames:({fps:t})=>e.durationInFrames?e.durationInFrames:hn({config:e.config,threshold:e.durationRestThreshold,fps:t}),getProgress:({fps:t,frame:r})=>{const n=e.reverse?0:1,o=e.reverse?1:0;return xi({fps:t,frame:r,to:n,from:o,config:e.config,durationInFrames:e.durationInFrames,durationRestThreshold:e.durationRestThreshold,reverse:e.reverse})}}),us=V.createContext(null),cs=V.createContext(null),pr=({presentationProgress:e,children:t})=>{const r=a.useMemo(()=>({enteringProgress:e}),[e]);return p.jsx(us.Provider,{value:r,children:t})},wr=({presentationProgress:e,children:t})=>{const r=a.useMemo(()=>({exitingProgress:e}),[e]);return p.jsx(cs.Provider,{value:r,children:t})},mn=e=>V.Children.toArray(e).reduce((r,n)=>n.type===V.Fragment?r.concat(mn(n.props.children)):(r.push(n),r),[]),ls=is.validateDurationInFrames,Ce=function(e){return null},zt=({children:e})=>p.jsx(p.Fragment,{children:e}),ds=({children:e})=>{const{fps:t}=ee(),r=te(),n=a.useMemo(()=>{let o=0,s=0;const c=mn(e);return a.Children.map(c,(i,u)=>{var M,I,R,P,L,N,B,_,O;const l=i;if(typeof l=="string"){if(l.trim()==="")return null;throw new TypeError('The <TransitionSeries /> component only accepts a list of <TransitionSeries.Sequence /> components as its children, but you passed a string "'.concat(l,'"'))}const d=c[u-1],f=c[u+1],h=typeof d=="string"||typeof d>"u"?null:d.type===Ce?d:null,m=typeof f=="string"||typeof f>"u"?null:f.type===Ce?f:null,w=typeof d=="string"||typeof d>"u"?!1:d.type===Ce;if(l.type===Ce){if(w)throw new TypeError("A <TransitionSeries.Transition /> component must not be followed by another <TransitionSeries.Transition /> component (nth children = ".concat(u-1," and ").concat(u,")"));return null}if(l.type!==zt)throw new TypeError("The <TransitionSeries /> component only accepts a list of <TransitionSeries.Sequence /> and <TransitionSeries.Transition /> components as its children, but got ".concat(l," instead"));const E=l,b="index = ".concat(u,", duration = ").concat(E.props.durationInFrames);if(!(E!=null&&E.props.children))throw new TypeError("A <TransitionSeries.Sequence /> component (".concat(b,") was detected to not have any children. Delete it to fix this error."));const x=E.props.durationInFrames,{durationInFrames:g,children:T,...S}=E.props;ls(x,{component:"of a <TransitionSeries.Sequence /> component",allowFloats:!0});const v=(M=E.props.offset)!=null?M:0;if(Number.isNaN(v))throw new TypeError('The "offset" property of a <TransitionSeries.Sequence /> must not be NaN, but got NaN ('.concat(b,")."));if(!Number.isFinite(v))throw new TypeError('The "offset" property of a <TransitionSeries.Sequence /> must be finite, but got '.concat(v," (").concat(b,")."));if(v%1!==0)throw new TypeError('The "offset" property of a <TransitionSeries.Sequence /> must be finite, but got '.concat(v," (").concat(b,")."));const k=s+v;let $=0;h&&($=h.props.timing.getDurationInFrames({fps:t}),o-=$);let y=k+o;s+=x+v,y<0&&(s-=y,y=0);const F=m?m.props.timing.getProgress({frame:r-y-g+m.props.timing.getDurationInFrames({fps:t}),fps:t}):null,C=h?h.props.timing.getProgress({frame:r-y,fps:t}):null;if(m&&x<m.props.timing.getDurationInFrames({fps:t}))throw new Error("The duration of a <TransitionSeries.Sequence /> must not be shorter than the duration of the next <TransitionSeries.Transition />. The transition is ".concat(m.props.timing.getDurationInFrames({fps:t})," frames long, but the sequence is only ").concat(x," frames long (").concat(b,")"));if(h&&x<h.props.timing.getDurationInFrames({fps:t}))throw new Error("The duration of a <TransitionSeries.Sequence /> must not be shorter than the duration of the previous <TransitionSeries.Transition />. The transition is ".concat(h.props.timing.getDurationInFrames({fps:t})," frames long, but the sequence is only ").concat(x," frames long (").concat(b,")"));if(m&&h&&F!==null&&C!==null){const A=(I=m.props.presentation)!=null?I:Le(),U=(R=h.props.presentation)!=null?R:Le(),z=A.component,re=U.component;return p.jsx(Q,{from:Math.floor(y),durationInFrames:x,...S,name:S.name||"<TS.Sequence>",children:p.jsx(z,{passedProps:(P=A.props)!=null?P:{},presentationDirection:"exiting",presentationProgress:F,presentationDurationInFrames:m.props.timing.getDurationInFrames({fps:t}),children:p.jsx(wr,{presentationProgress:F,children:p.jsx(re,{passedProps:(L=U.props)!=null?L:{},presentationDirection:"entering",presentationProgress:C,presentationDurationInFrames:h.props.timing.getDurationInFrames({fps:t}),children:p.jsx(pr,{presentationProgress:C,children:i})})})})},u)}if(C!==null&&h){const A=(N=h.props.presentation)!=null?N:Le(),U=A.component;return p.jsx(Q,{from:Math.floor(y),durationInFrames:x,...S,name:S.name||"<TS.Sequence>",children:p.jsx(U,{passedProps:(B=A.props)!=null?B:{},presentationDirection:"entering",presentationProgress:C,presentationDurationInFrames:h.props.timing.getDurationInFrames({fps:t}),children:p.jsx(pr,{presentationProgress:C,children:i})})},u)}if(F!==null&&m){const A=(_=m.props.presentation)!=null?_:Le(),U=A.component;return p.jsx(Q,{from:Math.floor(y),durationInFrames:x,...S,name:S.name||"<TS.Sequence>",children:p.jsx(U,{passedProps:(O=A.props)!=null?O:{},presentationDirection:"exiting",presentationProgress:F,presentationDurationInFrames:m.props.timing.getDurationInFrames({fps:t}),children:p.jsx(wr,{presentationProgress:F,children:i})})},u)}return p.jsx(Q,{from:Math.floor(y),durationInFrames:x,...S,name:S.name||"<TS.Sequence>",children:i},u)})},[e,t,r]);return p.jsx(p.Fragment,{children:n})},Ht=({children:e,name:t,layout:r,...n})=>{const o=t!=null?t:"<TransitionSeries>",s=r!=null?r:"absolute-fill";return p.jsx(Q,{name:o,layout:s,...n,children:p.jsx(ds,{children:e})})};Ht.Sequence=zt;Ht.Transition=Ce;ln.addSequenceStackTraces(Ht);ln.addSequenceStackTraces(zt);var fs=({children:e,presentationDirection:t,presentationProgress:r,passedProps:n})=>{const o=t==="entering",s=a.useMemo(()=>({opacity:o?r:n.shouldFadeOutExitingScene?1-r:1,...t==="entering"?n.enterStyle:n.exitStyle}),[o,n.enterStyle,n.exitStyle,n.shouldFadeOutExitingScene,t,r]);return p.jsx(Z,{style:s,children:e})},ea=e=>({component:fs,props:e!=null?e:{}}),hs=({children:e,presentationDirection:t,presentationProgress:r,passedProps:{direction:n="from-left",perspective:o=1e3,innerEnterStyle:s,innerExitStyle:c,outerEnterStyle:i,outerExitStyle:u}})=>{const l=a.useMemo(()=>{const m=t==="entering"?ze(r,[0,1],[n==="from-right"||n==="from-top"?180:-180,0]):ze(r,[0,1],[0,n==="from-right"||n==="from-top"?-180:180]),w=n==="from-top"||n==="from-bottom"?"rotateX":"rotateY";return{width:"100%",height:"100%",transform:"".concat(w,"(").concat(m,"deg)"),backfaceVisibility:"hidden",WebkitBackfaceVisibility:"hidden",...t==="entering"?s:c}},[n,s,c,t,r]),d=a.useMemo(()=>({perspective:o,transformStyle:"preserve-3d",...t==="entering"?i:u}),[i,u,o,t]);return p.jsx(Z,{style:d,children:p.jsx(Z,{style:l,children:e})})},ta=e=>({component:hs,props:e!=null?e:{}}),ms=.01,ps=({children:e,presentationProgress:t,presentationDirection:r,passedProps:{direction:n="from-left",enterStyle:o,exitStyle:s}})=>{const c=a.useMemo(()=>{const u=t===1?t*100:t*100-ms;if(r==="exiting")switch(n){case"from-left":return{transform:"translateX(".concat(u,"%)")};case"from-right":return{transform:"translateX(".concat(-t*100,"%)")};case"from-top":return{transform:"translateY(".concat(u,"%)")};case"from-bottom":return{transform:"translateY(".concat(-t*100,"%)")};default:throw new Error("Invalid direction: ".concat(n))}switch(n){case"from-left":return{transform:"translateX(".concat(-100+t*100,"%)")};case"from-right":return{transform:"translateX(".concat(100-u,"%)")};case"from-top":return{transform:"translateY(".concat(-100+t*100,"%)")};case"from-bottom":return{transform:"translateY(".concat(100-u,"%)")};default:throw new Error("Invalid direction: ".concat(n))}},[r,t,n]),i=a.useMemo(()=>({width:"100%",height:"100%",justifyContent:"center",alignItems:"center",...c,...r==="entering"?o:s}),[c,o,s,r]);return p.jsx(Z,{style:i,children:e})},ra=e=>({component:ps,props:e!=null?e:{}}),ws=(e,t)=>{switch(t){case"from-left":return"\nM 0 0\nL ".concat(e," 0\nL ").concat(e," 1\nL 0 1\nZ");case"from-top-left":return"\nM 0 0\nL ".concat(e*2," 0\nL 0 ").concat(e*2,"\nZ");case"from-top":return"\nM 0 0\nL 1 0\nL 1 ".concat(e,"\nL 0 ").concat(e,"\nZ");case"from-top-right":return"\nM 1 0\nL ".concat(1-e*2," 0\nL 1 ").concat(e*2,"\nZ");case"from-right":return"\nM 1 0\nL 1 1\nL ".concat(1-e," 1\nL ").concat(1-e," 0\nZ");case"from-bottom-right":return"\nM 1 1\nL ".concat(1-e*2," 1\nL 1 ").concat(1-e*2,"\nZ");case"from-bottom":return"\nM 0 1\nL 1 1\nL 1 ".concat(1-e,"\nL 0 ").concat(1-e,"\nZ");case"from-bottom-left":return"\nM 0 1\nL 0 ".concat(1-e*2,"\nL ").concat(e*2," 1\nZ");default:throw new Error("Unknown direction ".concat(JSON.stringify(t)))}},gs=(e,t)=>{switch(t){case"from-left":return"\nM 1 1\nL ".concat(1-e," 1\nL ").concat(1-e," 0\nL 1 0\nZ");case"from-top-left":return"\nM 1 1\nL ".concat(1-2*e," 1\nL 1 ").concat(1-2*e,"\nZ");case"from-top":return"\nM 1 1\nL 0 1\nL 0 ".concat(1-e,"\nL 1 ").concat(1-e,"\nZ");case"from-top-right":return"\nM 0 1\nL ".concat(e*2," 1\nL 0 ").concat(1-e*2,"\nZ");case"from-right":return"\nM 0 0\nL ".concat(e," 0\nL ").concat(e," 1\nL 0 1\nZ");case"from-bottom-right":return"\nM 0 0\nL ".concat(e*2," 0\nL 0 ").concat(e*2,"\nZ");case"from-bottom":return"\nM 1 0\nL 0 0\nL 0 ".concat(e,"\nL 1 ").concat(e,"\nZ");case"from-bottom-left":return"\nM 1 0\nL ".concat(1-e*2," 0\nL 1 ").concat(e*2,"\nZ");default:throw new Error("Unknown direction ".concat(JSON.stringify(t)))}},vs=({children:e,presentationProgress:t,presentationDirection:r,passedProps:{direction:n="from-left",innerEnterStyle:o,innerExitStyle:s,outerEnterStyle:c,outerExitStyle:i}})=>{const[u]=a.useState(()=>String(Fe(null))),l=r==="entering"?t:1-t,d=r==="entering"?ws(l,n):gs(l,n),f=a.useMemo(()=>({width:"100%",height:"100%",justifyContent:"center",alignItems:"center",clipPath:"url(#".concat(u,")"),...r==="entering"?o:s}),[u,o,s,r]),h=a.useMemo(()=>r==="entering"?c:i,[c,i,r]),m=a.useMemo(()=>({width:"100%",height:"100%",pointerEvents:"none"}),[]);return p.jsxs(Z,{style:h,children:[p.jsx(Z,{style:f,children:e}),p.jsx(Z,{children:p.jsx("svg",{viewBox:"0 0 1 1",style:m,children:p.jsx("defs",{children:p.jsx("clipPath",{id:u,clipPathUnits:"objectBoundingBox",children:p.jsx("path",{d,fill:"black"})})})})})]})},na=e=>({component:vs,props:e!=null?e:{}});class ys{constructor(t){oe(this,"maxAge");oe(this,"maxSize");oe(this,"onEviction");oe(this,"_size");oe(this,"cache");oe(this,"oldCache");if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof t.maxAge=="number"&&t.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if(typeof this.onEviction=="function")for(const[r,n]of t)this.onEviction(r,n.value)}_deleteIfExpired(t,r){return r===void 0?!0:typeof r.expiry=="number"&&r.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(t,r.value),this.delete(t)):!1}_getOrDeleteIfExpired(t,r){if(this._deleteIfExpired(t,r)===!1)return r.value}_getItemValue(t,r){if(r!==void 0)return r.expiry?this._getOrDeleteIfExpired(t,r):r.value}_peek(t,r){const n=r.get(t);return this._getItemValue(t,n)}_set(t,r){this.cache.set(t,r),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,r){this.oldCache.delete(t),this._set(t,r)}*_entriesAscending(){for(const t of this.oldCache){const[r,n]=t;this.cache.has(r)||this._deleteIfExpired(r,n)===!1&&(yield t)}for(const t of this.cache){const[r,n]=t;this._deleteIfExpired(r,n)===!1&&(yield t)}}get(t){if(this.cache.has(t)){const r=this.cache.get(t);return this._getItemValue(t,r)}if(this.oldCache.has(t)){const r=this.oldCache.get(t);if(this._deleteIfExpired(t,r)===!1)return this._moveToRecent(t,r),r.value}}set(t,r,{maxAge:n=this.maxAge}={}){const o=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;this.cache.has(t)?this.cache.set(t,{value:r,expiry:o}):this._set(t,{value:r,expiry:o})}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):this.oldCache.has(t)?!this._deleteIfExpired(t,this.oldCache.get(t)):!1}peek(t){if(this.cache.has(t))return this._peek(t,this.cache);if(this.oldCache.has(t))return this._peek(t,this.oldCache)}delete(t){const r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");const r=[...this._entriesAscending()],n=r.length-t;n<0?(this.cache=new Map(r),this.oldCache=new Map,this._size=r.length):(n>0&&this._emitEvictions(r.slice(0,n)),this.oldCache=new Map(r.slice(n)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache){const[r,n]=t;this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}for(const t of this.oldCache){const[r,n]=t;this.cache.has(r)||this._deleteIfExpired(r,n)===!1&&(yield[r,n.value])}}*entriesDescending(){let t=[...this.cache];for(let r=t.length-1;r>=0;--r){const n=t[r],[o,s]=n;this._deleteIfExpired(o,s)===!1&&(yield[o,s.value])}t=[...this.oldCache];for(let r=t.length-1;r>=0;--r){const n=t[r],[o,s]=n;this.cache.has(o)||this._deleteIfExpired(o,s)===!1&&(yield[o,s.value])}}*entriesAscending(){for(const[t,r]of this._entriesAscending())yield[t,r.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(const r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}}var qe=new ys({maxSize:30}),bs=new Map,Se=(e,t,r={},n=r)=>{if(Array.isArray(t))t.forEach(o=>Se(e,o,r,n));else if(typeof t=="function")t(e,r,n,Se);else{const o=Object.keys(t)[0];Array.isArray(t[o])?(n[o]={},Se(e,t[o],r,n[o])):n[o]=t[o](e,r,n,Se)}return r},xs=(e,t)=>function(r,n,o,s){const c=[];let i=r.pos;for(;t(r,n,o);){const u={};if(s(r,e,n,u),r.pos===i)break;i=r.pos,c.push(u)}return c},ue=(e,t)=>(r,n,o,s)=>{t(r,n,o)&&s(r,e,n,o)},Es=e=>({data:e,pos:0}),G=()=>e=>e.data[e.pos++],pn=(e=0)=>t=>t.data[t.pos+e],X=e=>t=>t.data.subarray(t.pos,t.pos+=e),it=e=>t=>t.data.subarray(t.pos,t.pos+e),Ft=e=>t=>Array.from(X(e)(t)).map(r=>String.fromCharCode(r)).join(""),se=e=>t=>{const r=X(2)(t);return e?(r[1]<<8)+r[0]:(r[0]<<8)+r[1]},wn=(e,t)=>(r,n,o)=>{const s=typeof t=="function"?t(r,n,o):t,c=X(e),i=new Array(s);for(let u=0;u<s;u++)i[u]=c(r);return i},Cs=(e,t,r)=>{let n=0;for(let o=0;o<r;o++)n+=Number(e[t+o]&&2**(r-o-1));return n},Yt=e=>t=>{const r=G()(t),n=new Array(8);for(let o=0;o<8;o++)n[7-o]=!!(r&1<<o);return Object.keys(e).reduce((o,s)=>{const c=e[s];return c.length?o[s]=Cs(n,c.index,c.length):o[s]=n[c.index],o},{})},st={blocks:e=>{const r=[],n=e.data.length;let o=0;for(let i=G()(e);i!==0&&i;i=G()(e)){if(e.pos+i>=n){const u=n-e.pos;r.push(X(u)(e)),o+=u;break}r.push(X(i)(e)),o+=i}const s=new Uint8Array(o);let c=0;for(let i=0;i<r.length;i++)s.set(r[i],c),c+=r[i].length;return s}},Ss=ue({gce:[{codes:X(2)},{byteSize:G()},{extras:Yt({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:se(!0)},{transparentColorIndex:G()},{terminator:G()}]},e=>{const t=it(2)(e);return t[0]===33&&t[1]===249}),Ts=ue({image:[{code:G()},{descriptor:[{left:se(!0)},{top:se(!0)},{width:se(!0)},{height:se(!0)},{lct:Yt({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},ue({lct:wn(3,(e,t,r)=>2**(r.descriptor.lct.size+1))},(e,t,r)=>r.descriptor.lct.exists),{data:[{minCodeSize:G()},st]}]},e=>pn()(e)===44),$s=ue({text:[{codes:X(2)},{blockSize:G()},{preData:(e,t,r)=>X(r.text.blockSize)(e)},st]},e=>{const t=it(2)(e);return t[0]===33&&t[1]===1}),Fs=ue({application:[{codes:X(2)},{blockSize:G()},{id:(e,t,r)=>Ft(r.blockSize)(e)},st]},e=>{const t=it(2)(e);return t[0]===33&&t[1]===255}),ks=ue({comment:[{codes:X(2)},st]},e=>{const t=it(2)(e);return t[0]===33&&t[1]===254}),Ms=[{header:[{signature:Ft(3)},{version:Ft(3)}]},{lsd:[{width:se(!0)},{height:se(!0)},{gct:Yt({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:G()},{pixelAspectRatio:G()}]},ue({gct:wn(3,(e,t)=>2**(t.lsd.gct.size+1))},(e,t)=>t.lsd.gct.exists),{frames:xs([Ss,Fs,ks,Ts,$s],e=>{const t=pn()(e);return t===33||t===44})}],Rs=(e,t)=>{const r=new Array(e.length),n=e.length/t,o=function(u,l){const d=e.slice(l*t,(l+1)*t);r.splice(...[u*t,t].concat(d))},s=[0,4,2,1],c=[8,8,4,2];let i=0;for(let u=0;u<4;u++)for(let l=s[u];l<n;l+=c[u])o(l,i),i++;return r},Is=(e,t,r)=>{const s=r;let c,i,u,l,d;var v;let f,h;var S,k,$,F,y;const m=new Array(r),w=new Array(4096),E=new Array(4096),b=new Array(4096+1),x=e,g=1<<x,T=g+1;for(c=g+2,d=-1,u=x+1,i=(1<<u)-1,f=0;f<g;f++)w[f]=0,E[f]=f;var S,v,k,$,y,F;for(S=v=k=$=y=F=0,h=0;h<s;){if($===0){if(v<u){S+=t[F]<<v,v+=8,F++;continue}if(f=S&i,S>>=u,v-=u,f>c||f===T)break;if(f===g){u=x+1,i=(1<<u)-1,c=g+2,d=-1;continue}if(d===-1){b[$++]=E[f],d=f,k=f;continue}for(l=f,f===c&&(b[$++]=k,f=d);f>g;)b[$++]=E[f],f=w[f];k=E[f]&255,b[$++]=k,c<4096&&(w[c]=d,E[c]=k,c++,!(c&i)&&c<4096&&(u++,i+=c)),d=l}$--,m[y++]=b[$],h++}for(h=y;h<s;h++)m[h]=0;return m},Ns=e=>{const t=new Uint8Array(e);return Se(Es(t),Ms)},_s=(e,t)=>{var c,i,u,l;if(!e.image)return console.warn("gif frame does not have associated image."),null;const{image:r}=e,n=r.descriptor.width*r.descriptor.height;let o=Is(r.data.minCodeSize,r.data.blocks,n);return(c=r.descriptor.lct)!=null&&c.interlaced&&(o=Rs(o,r.descriptor.width)),{pixels:o,dims:{top:e.image.descriptor.top,left:e.image.descriptor.left,width:e.image.descriptor.width,height:e.image.descriptor.height},colorTable:(i=r.descriptor.lct)!=null&&i.exists?r.lct:t,delay:((l=(u=e.gce)==null?void 0:u.delay)!=null?l:10)*10,disposalType:e.gce?e.gce.extras.disposal:1,transparentIndex:e.gce&&e.gce.extras.transparentColorGiven?e.gce.transparentColorIndex:-1}},As=e=>e.frames.filter(t=>"image"in t).map(t=>_s(t,e.gct)).filter(Boolean).map(t=>t),Ps=e=>{let t=null;for(const r of e.frames)t=r.gce?r.gce:t,"image"in r&&!("gce"in r)&&t!==null&&(r.gce=t)},Vs=({typedArray:e,dx:t,dy:r,width:n,height:o,gifWidth:s})=>{const c=r*s+t;for(let i=0;i<o;i++)for(let u=0;u<n;u++){const l=c+i*s+u;e[l*4]=0,e[l*4+1]=0,e[l*4+2]=0,e[l*4+3]=0}},js=(e,t,r)=>{const{width:n,height:o,top:s,left:c}=t.dims,i=s*r.width+c;for(let u=0;u<o;u++)for(let l=0;l<n;l++){const d=u*n+l,f=t.pixels[d];if(f!==t.transparentIndex){const h=i+u*r.width+l,m=t.colorTable[f];e[h*4]=m[0],e[h*4+1]=m[1],e[h*4+2]=m[2],e[h*4+3]=f===t.transparentIndex?0:255}}},Ls=(e,{signal:t})=>fetch(e,{signal:t}).then(r=>{var n;if(!((n=r.headers.get("Content-Type"))!=null&&n.includes("image/gif")))throw Error('Wrong content type: "'.concat(r.headers.get("Content-Type"),'"'));return r.arrayBuffer()}).then(r=>Ns(r)).then(r=>(Ps(r),r)).then(r=>Promise.all([As(r),{width:r.lsd.width,height:r.lsd.height}])).then(([r,n])=>{const o=[],s=n.width*n.height*4;let c=new Uint8ClampedArray(s);for(let i=0;i<r.length;++i){const u=r[i],l=r[i].disposalType===3?c.slice():null;if(js(c,u,n),o.push(c.slice()),r[i].disposalType===2)Vs({typedArray:c,dx:u.dims.left,dy:u.dims.top,width:u.dims.width,height:u.dims.height,gifWidth:n.width});else if(r[i].disposalType===3){if(!l)throw Error("Disposal type 3 without previous frame");c=l}else c=o[i].slice()}return{...n,loaded:!0,delays:r.map(i=>i.delay),frames:o}}),gn=e=>({...e,frames:e.frames.map(t=>{const r=new ImageData(e.width,e.height);return r.data.set(new Uint8ClampedArray(t)),r})}),Ds='"use strict";(()=>{var P=(t,r,e={},n=e)=>{if(Array.isArray(r))r.forEach(o=>P(t,o,e,n));else if(typeof r=="function")r(t,e,n,P);else{let o=Object.keys(r)[0];Array.isArray(r[o])?(n[o]={},P(t,r[o],e,n[o])):n[o]=r[o](t,e,n,P)}return e},M=(t,r)=>function(e,n,o,c){let i=[],a=e.pos;for(;r(e,n,o);){let s={};if(c(e,t,n,s),e.pos===a)break;a=e.pos,i.push(s)}return i},g=(t,r)=>(e,n,o,c)=>{r(e,n,o)&&c(e,t,n,o)};var W=t=>({data:t,pos:0}),m=()=>t=>t.data[t.pos++],U=(t=0)=>r=>r.data[r.pos+t],f=t=>r=>r.data.subarray(r.pos,r.pos+=t),k=t=>r=>r.data.subarray(r.pos,r.pos+t),v=t=>r=>Array.from(f(t)(r)).map(e=>String.fromCharCode(e)).join(""),b=t=>r=>{let e=f(2)(r);return t?(e[1]<<8)+e[0]:(e[0]<<8)+e[1]},E=(t,r)=>(e,n,o)=>{let c=typeof r=="function"?r(e,n,o):r,i=f(t),a=new Array(c);for(let s=0;s<c;s++)a[s]=i(e);return a},$=(t,r,e)=>{let n=0;for(let o=0;o<e;o++)n+=Number(t[r+o]&&2**(e-o-1));return n},I=t=>r=>{let e=m()(r),n=new Array(8);for(let o=0;o<8;o++)n[7-o]=!!(e&1<<o);return Object.keys(t).reduce((o,c)=>{let i=t[c];return i.length?o[c]=$(n,i.index,i.length):o[c]=n[i.index],o},{})};var z={blocks:t=>{let e=[],n=t.data.length,o=0;for(let a=m()(t);a!==0&&a;a=m()(t)){if(t.pos+a>=n){let s=n-t.pos;e.push(f(s)(t)),o+=s;break}e.push(f(a)(t)),o+=a}let c=new Uint8Array(o),i=0;for(let a=0;a<e.length;a++)c.set(e[a],i),i+=e[a].length;return c}},q=g({gce:[{codes:f(2)},{byteSize:m()},{extras:I({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:b(!0)},{transparentColorIndex:m()},{terminator:m()}]},t=>{let r=k(2)(t);return r[0]===33&&r[1]===249}),H=g({image:[{code:m()},{descriptor:[{left:b(!0)},{top:b(!0)},{width:b(!0)},{height:b(!0)},{lct:I({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},g({lct:E(3,(t,r,e)=>2**(e.descriptor.lct.size+1))},(t,r,e)=>e.descriptor.lct.exists),{data:[{minCodeSize:m()},z]}]},t=>U()(t)===44),J=g({text:[{codes:f(2)},{blockSize:m()},{preData:(t,r,e)=>f(e.text.blockSize)(t)},z]},t=>{let r=k(2)(t);return r[0]===33&&r[1]===1}),Q=g({application:[{codes:f(2)},{blockSize:m()},{id:(t,r,e)=>v(e.blockSize)(t)},z]},t=>{let r=k(2)(t);return r[0]===33&&r[1]===255}),V=g({comment:[{codes:f(2)},z]},t=>{let r=k(2)(t);return r[0]===33&&r[1]===254}),K=[{header:[{signature:v(3)},{version:v(3)}]},{lsd:[{width:b(!0)},{height:b(!0)},{gct:I({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:m()},{pixelAspectRatio:m()}]},g({gct:E(3,(t,r)=>2**(r.lsd.gct.size+1))},(t,r)=>r.lsd.gct.exists),{frames:M([q,Q,V,H,J],t=>{let r=U()(t);return r===33||r===44})}];var X=(t,r)=>{let e=new Array(t.length),n=t.length/r,o=function(s,l){let u=t.slice(l*r,(l+1)*r);e.splice(...[s*r,r].concat(u))},c=[0,4,2,1],i=[8,8,4,2],a=0;for(let s=0;s<4;s++)for(let l=c[s];l<n;l+=i[s])o(l,a),a++;return e};var Z=(t,r,e)=>{let c=e,i,a,s,l,u;var w;let d,p;var C,y,h,_,G;let x=new Array(e),B=new Array(4096),T=new Array(4096),F=new Array(4096+1),R=t,S=1<<R,O=S+1;for(i=S+2,u=-1,s=R+1,a=(1<<s)-1,d=0;d<S;d++)B[d]=0,T[d]=d;var C,w,y,h,G,_;for(C=w=y=h=G=_=0,p=0;p<c;){if(h===0){if(w<s){C+=r[_]<<w,w+=8,_++;continue}if(d=C&a,C>>=s,w-=s,d>i||d===O)break;if(d===S){s=R+1,a=(1<<s)-1,i=S+2,u=-1;continue}if(u===-1){F[h++]=T[d],u=d,y=d;continue}for(l=d,d===i&&(F[h++]=y,d=u);d>S;)F[h++]=T[d],d=B[d];y=T[d]&255,F[h++]=y,i<4096&&(B[i]=u,T[i]=y,i++,!(i&a)&&i<4096&&(s++,a+=i)),u=l}h--,x[G++]=F[h],p++}for(p=G;p<c;p++)x[p]=0;return x};var j=t=>{let r=new Uint8Array(t);return P(W(r),K)},D=(t,r)=>{var i,a,s,l;if(!t.image)return console.warn("gif frame does not have associated image."),null;let{image:e}=t,n=e.descriptor.width*e.descriptor.height,o=Z(e.data.minCodeSize,e.data.blocks,n);return(i=e.descriptor.lct)!=null&&i.interlaced&&(o=X(o,e.descriptor.width)),{pixels:o,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height},colorTable:(a=e.descriptor.lct)!=null&&a.exists?e.lct:r,delay:((l=(s=t.gce)==null?void 0:s.delay)!=null?l:10)*10,disposalType:t.gce?t.gce.extras.disposal:1,transparentIndex:t.gce&&t.gce.extras.transparentColorGiven?t.gce.transparentColorIndex:-1}};var L=t=>t.frames.filter(r=>"image"in r).map(r=>D(r,t.gct)).filter(Boolean).map(r=>r);var Y=t=>{let r=null;for(let e of t.frames)r=e.gce?e.gce:r,"image"in e&&!("gce"in e)&&r!==null&&(e.gce=r)},ee=({typedArray:t,dx:r,dy:e,width:n,height:o,gifWidth:c})=>{let i=e*c+r;for(let a=0;a<o;a++)for(let s=0;s<n;s++){let l=i+a*c+s;t[l*4]=0,t[l*4+1]=0,t[l*4+2]=0,t[l*4+3]=0}},te=(t,r,e)=>{let{width:n,height:o,top:c,left:i}=r.dims,a=c*e.width+i;for(let s=0;s<o;s++)for(let l=0;l<n;l++){let u=s*n+l,d=r.pixels[u];if(d!==r.transparentIndex){let p=a+s*e.width+l,x=r.colorTable[d];t[p*4]=x[0],t[p*4+1]=x[1],t[p*4+2]=x[2],t[p*4+3]=d===r.transparentIndex?0:255}}},N=(t,{signal:r})=>fetch(t,{signal:r}).then(e=>{var n;if(!((n=e.headers.get("Content-Type"))!=null&&n.includes("image/gif")))throw Error(`Wrong content type: "${e.headers.get("Content-Type")}"`);return e.arrayBuffer()}).then(e=>j(e)).then(e=>(Y(e),e)).then(e=>Promise.all([L(e),{width:e.lsd.width,height:e.lsd.height}])).then(([e,n])=>{let o=[],c=n.width*n.height*4,i=new Uint8ClampedArray(c);for(let a=0;a<e.length;++a){let s=e[a],l=e[a].disposalType===3?i.slice():null;if(te(i,s,n),o.push(i.slice()),e[a].disposalType===2)ee({typedArray:i,dx:s.dims.left,dy:s.dims.top,width:s.dims.width,height:s.dims.height,gifWidth:n.width});else if(e[a].disposalType===3){if(!l)throw Error("Disposal type 3 without previous frame");i=l}else i=o[a].slice()}return{...n,loaded:!0,delays:e.map(a=>a.delay),frames:o}});var A=new Map;self.addEventListener("message",t=>{let{type:r,src:e}=t.data||t;switch(r){case"parse":{if(!A.has(e)){let n=new AbortController,o={signal:n.signal};A.set(e,n),N(e,o).then(c=>{self.postMessage(Object.assign(c,{src:e}),c.frames.map(i=>i.buffer))}).catch(c=>{self.postMessage({src:e,error:c,loaded:!0})}).finally(()=>{A.delete(e)})}break}case"cancel":{A.has(e)&&(A.get(e).abort(),A.delete(e));break}default:break}});})();\n',Us=()=>{const e=new Blob([Ds],{type:"application/javascript"}),t=URL.createObjectURL(e),r=new Worker(t);return URL.revokeObjectURL(t),r},Bs=async({src:e,controller:t})=>{const r=await Ls(e,{signal:t.signal});return gn(r)},Os=e=>{const t=Us();let r=null;return{prom:new Promise((o,s)=>{r=c=>{const i=c.data||c;if(i.src===e)if(i.error)s(new Error(i.error));else{const u=i.error?i:gn(i);o(u),t.terminate()}},t.addEventListener("message",r),t.postMessage({src:e,type:"parse"})}),cancel:()=>{t.postMessage({src:e,type:"cancel"}),t.removeEventListener("message",r),t.terminate()}}},mt=[],Ws=e=>{const[t,r]=a.useState(null),n=a.useMemo(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(s=>{const{contentRect:c}=s[0],i=s[0].target.getClientRects();if(!(i!=null&&i[0])){r(null);return}const u=i[0].width/c.width,l=i[0].width*(1/u),d=i[0].height*(1/u);r({width:l,height:d})}),[]),o=a.useCallback(()=>{if(!e.current)return;const s=e.current.getClientRects();if(!s[0]){r(null);return}r({width:s[0].width,height:s[0].height})},[e]);return a.useEffect(()=>{if(!n)return;o();const{current:s}=e;return e.current&&n.observe(e.current),()=>{s&&n.unobserve(s)}},[n,e,o]),a.useEffect(()=>(mt.push(o),()=>{mt=mt.filter(s=>s!==o)}),[o]),t},zs=(e,t,r)=>{switch(e){case"fill":return[0,0,t.width,t.height,0,0,r.width,r.height];case"contain":{const n=Math.min(r.width/t.width,r.height/t.height),o=(r.width-t.width*n)/2,s=(r.height-t.height*n)/2;return[0,0,t.width,t.height,o,s,t.width*n,t.height*n]}case"cover":{const n=Math.max(r.width/t.width,r.height/t.height),o=(r.width-t.width*n)/2,s=(r.height-t.height*n)/2;return[0,0,t.width,t.height,o,s,t.width*n,t.height*n]}default:throw new Error("Unknown fit: "+e)}},Hs=()=>{if(typeof document>"u")return null;const e=document.createElement("canvas"),t=e.getContext("2d");return e.width=0,e.height=0,t},vn=a.forwardRef(({index:e,frames:t,width:r,height:n,fit:o,className:s,style:c},i)=>{const u=a.useRef(null),[l]=a.useState(()=>Hs()),d=Ws(u);return a.useImperativeHandle(i,()=>u.current,[]),a.useEffect(()=>{var m;if(!d)return;const f=t[e],h=(m=u.current)==null?void 0:m.getContext("2d");f&&l&&h&&((l.canvas.width<f.width||l.canvas.height<f.height)&&(l.canvas.width=f.width,l.canvas.height=f.height),d.width>0&&d.height>0&&(h.clearRect(0,0,d.width,d.height),l.clearRect(0,0,l.canvas.width,l.canvas.height)),l.putImageData(f,0,0),h.drawImage(l.canvas,...zs(o,f,{width:d.width,height:d.height})))},[e,t,o,l,d]),p.jsx("canvas",{ref:u,className:s,style:c,width:r!=null?r:d==null?void 0:d.width,height:n!=null?n:d==null?void 0:d.height})}),yn=e=>e.message.includes("Failed to fetch")||e.message.includes("Load failed")||e.message.includes("NetworkError when attempting to fetch resource"),bn=e=>new URL(e,typeof window>"u"?void 0:window.origin).href;function xn({delays:e,loopBehavior:t,playbackRate:r}){const n=te(),o=ee(),s=a.useMemo(()=>e.length!==0?e.reduce((l,d)=>l+(d!=null?d:0),0):1,[e]);if(e.length===0)return 0;const i=n/(1/r)/o.fps*1e3;if(t==="pause-after-finish"&&i>=s)return e.length-1;if(t==="unmount-after-finish"&&i>=s)return-1;let u=i%s;for(let l=0;l<e.length;l++){const d=e[l];if(u<d)return l;u-=d}return 0}var Ys=a.forwardRef(({src:e,width:t,height:r,onError:n,loopBehavior:o="loop",playbackRate:s=1,onLoad:c,fit:i="fill",...u},l)=>{const d=bn(e),[f,h]=a.useState(()=>{var S;const T=(S=qe.get(d))!=null?S:bs.get(d);return T===void 0?{delays:[],frames:[],width:0,height:0}:T}),[m,w]=a.useState(null),[E]=a.useState(()=>J('Rendering <Gif/> with src="'.concat(d,'"'))),b=a.useRef(c),x=a.useRef(n);if(b.current=c,x.current=n,a.useEffect(()=>{let T=!1,S=!1;const{prom:v,cancel:k}=Os(d),$=J("Loading <Gif /> with src="+d);return v.then(y=>{var F;(F=b.current)==null||F.call(b,y),h(y),qe.set(d,y),T=!0,j($),j(E)}).catch(y=>{if(S){j($);return}x.current?x.current(y):w(y)}),()=>{T||(S=!0,k()),j($)}},[E,d]),m)throw console.error(m.stack),yn(m)?new Error("Failed to render GIF with source ".concat(e,': "').concat(m.message,'". You must enable CORS for this URL. Open the Developer Tools to see exactly why this fetch failed.')):new Error("Failed to render GIF with source ".concat(e,': "').concat(m.message,'".'));const g=xn({delays:f.delays,loopBehavior:o,playbackRate:s});return g===-1?null:p.jsx(vn,{fit:i,index:g,frames:f.frames,width:t,height:r,...u,ref:l})}),Gs=a.forwardRef(({src:e,width:t,height:r,onLoad:n,onError:o,loopBehavior:s="loop",playbackRate:c=1,fit:i="fill",...u},l)=>{const d=bn(e),[f,h]=a.useState(()=>{const T=qe.get(d);return T===void 0?{delays:[],frames:[],width:0,height:0}:T}),[m,w]=a.useState(null),[E]=a.useState(()=>J('Rendering <Gif/> with src="'.concat(d,'"')));a.useEffect(()=>()=>{j(E)},[E]);const b=xn({delays:f.delays,loopBehavior:s,playbackRate:c}),x=a.useRef(n),g=a.useRef(o);if(x.current=n,g.current=o,a.useEffect(()=>{const T=new AbortController;let S=!1,v=!1;const k=J("Loading <Gif /> with src="+d);return Bs({controller:T,src:d}).then($=>{var y;(y=x.current)==null||y.call(x,$),h($),qe.set(d,$),S=!0,j(k),j(E)}).catch($=>{if(v){j(k);return}g.current?g.current($):w($)}),()=>{S||(v=!0,T.abort()),j(k)}},[E,d]),m)throw console.error(m.stack),yn(m)?new Error("Failed to render GIF with source ".concat(e,': "').concat(m.message,'". You must enable CORS for this URL.')):new Error("Failed to render GIF with source ".concat(e,': "').concat(m.message,'". Render with --log=verbose to see the full stack.'));return b===-1?null:p.jsx(vn,{fit:i,index:b,frames:f.frames,width:t,height:r,...u,ref:l})}),oa=a.forwardRef((e,t)=>W().isRendering?p.jsx(Gs,{...e,ref:t}):p.jsx(Ys,{...e,ref:t}));export{Z as A,Js as C,an as E,oa as G,ln as I,is as N,Ht as T,St as V,Qs as a,te as b,Xs as c,ra as d,xt as e,ea as f,ta as g,ze as i,Ks as p,Fe as r,Pn as s,ee as u,na as w};
