@coppsary/motionly 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2367,7 +2367,7 @@ ${n.trim()}`:""}`;return t.provider==="anthropic"?Nx(t,e,a):Fx(t,e,a)}async func
2367
2367
  * Copyright 2008-2026, GreenSock. All rights reserved.
2368
2368
  * Subject to the terms at https://gsap.com/standard-license
2369
2369
  * @author: Jack Doyle, jack@greensock.com
2370
- */var fp,Vn,Qr,Dd,vr,hp,Rd,q2=function(){return typeof window<"u"},Mn={},hr=180/Math.PI,ta=Math.PI/180,Vr=Math.atan2,pp=1e8,Ld=/([A-Z])/g,W2=/(left|right|width|margin|padding|x)/i,Y2=/[\s,\(]\S/,cn={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},Zu=function(e,i){return i.set(i.t,i.p,Math.round((i.s+i.c*e)*1e4)/1e4+i.u,i)},K2=function(e,i){return i.set(i.t,i.p,e===1?i.e:Math.round((i.s+i.c*e)*1e4)/1e4+i.u,i)},X2=function(e,i){return i.set(i.t,i.p,e?Math.round((i.s+i.c*e)*1e4)/1e4+i.u:i.b,i)},J2=function(e,i){return i.set(i.t,i.p,e===1?i.e:e?Math.round((i.s+i.c*e)*1e4)/1e4+i.u:i.b,i)},Z2=function(e,i){var s=i.s+i.c*e;i.set(i.t,i.p,~~(s+(s<0?-.5:.5))+i.u,i)},l_=function(e,i){return i.set(i.t,i.p,e?i.e:i.b,i)},c_=function(e,i){return i.set(i.t,i.p,e!==1?i.b:i.e,i)},Q2=function(e,i,s){return e.style[i]=s},tS=function(e,i,s){return e.style.setProperty(i,s)},eS=function(e,i,s){return e._gsap[i]=s},iS=function(e,i,s){return e._gsap.scaleX=e._gsap.scaleY=s},sS=function(e,i,s,n,a){var o=e._gsap;o.scaleX=o.scaleY=s,o.renderTransform(a,o)},nS=function(e,i,s,n,a){var o=e._gsap;o[i]=s,o.renderTransform(a,o)},ei="transform",is=ei+"Origin",rS=function t(e,i){var s=this,n=this.target,a=n.style,o=n._gsap;if(e in Mn&&a){if(this.tfm=this.tfm||{},e!=="transform")e=cn[e]||e,~e.indexOf(",")?e.split(",").forEach(function(l){return s.tfm[l]=Bn(n,l)}):this.tfm[e]=o.x?o[e]:Bn(n,e),e===is&&(this.tfm.zOrigin=o.zOrigin);else return cn.transform.split(",").forEach(function(l){return t.call(s,l,i)});if(this.props.indexOf(ei)>=0)return;o.svg&&(this.svgo=n.getAttribute("data-svg-origin"),this.props.push(is,i,"")),e=ei}(a||i)&&this.props.push(e,i,a[e])},u_=function(e){e.translate&&(e.removeProperty("translate"),e.removeProperty("scale"),e.removeProperty("rotate"))},aS=function(){var e=this.props,i=this.target,s=i.style,n=i._gsap,a,o;for(a=0;a<e.length;a+=3)e[a+1]?e[a+1]===2?i[e[a]](e[a+2]):i[e[a]]=e[a+2]:e[a+2]?s[e[a]]=e[a+2]:s.removeProperty(e[a].substr(0,2)==="--"?e[a]:e[a].replace(Ld,"-$1").toLowerCase());if(this.tfm){for(o in this.tfm)n[o]=this.tfm[o];n.svg&&(n.renderTransform(),i.setAttribute("data-svg-origin",this.svgo||"")),a=Rd(),(!a||!a.isStart)&&!s[ei]&&(u_(s),n.zOrigin&&s[is]&&(s[is]+=" "+n.zOrigin+"px",n.zOrigin=0,n.renderTransform()),n.uncache=1)}},d_=function(e,i){var s={target:e,props:[],revert:aS,save:rS};return e._gsap||ns.core.getCache(e),i&&e.style&&e.nodeType&&i.split(",").forEach(function(n){return s.save(n)}),s},f_,Qu=function(e,i){var s=Vn.createElementNS?Vn.createElementNS((i||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),e):Vn.createElement(e);return s&&s.style?s:Vn.createElement(e)},gs=function t(e,i,s){var n=getComputedStyle(e);return n[i]||n.getPropertyValue(i.replace(Ld,"-$1").toLowerCase())||n.getPropertyValue(i)||!s&&t(e,da(i)||i,1)||""},mp="O,Moz,ms,Ms,Webkit".split(","),da=function(e,i,s){var n=i||vr,a=n.style,o=5;if(e in a&&!s)return e;for(e=e.charAt(0).toUpperCase()+e.substr(1);o--&&!(mp[o]+e in a););return o<0?null:(o===3?"ms":o>=0?mp[o]:"")+e},td=function(){q2()&&window.document&&(fp=window,Vn=fp.document,Qr=Vn.documentElement,vr=Qu("div")||{style:{}},Qu("div"),ei=da(ei),is=ei+"Origin",vr.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",f_=!!da("perspective"),Rd=ns.core.reverting,Dd=1)},vp=function(e){var i=e.ownerSVGElement,s=Qu("svg",i&&i.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),n=e.cloneNode(!0),a;n.style.display="block",s.appendChild(n),Qr.appendChild(s);try{a=n.getBBox()}catch{}return s.removeChild(n),Qr.removeChild(s),a},_p=function(e,i){for(var s=i.length;s--;)if(e.hasAttribute(i[s]))return e.getAttribute(i[s])},h_=function(e){var i,s;try{i=e.getBBox()}catch{i=vp(e),s=1}return i&&(i.width||i.height)||s||(i=vp(e)),i&&!i.width&&!i.x&&!i.y?{x:+_p(e,["x","cx","x1"])||0,y:+_p(e,["y","cy","y1"])||0,width:0,height:0}:i},p_=function(e){return!!(e.getCTM&&(!e.parentNode||e.ownerSVGElement)&&h_(e))},Qn=function(e,i){if(i){var s=e.style,n;i in Mn&&i!==is&&(i=ei),s.removeProperty?(n=i.substr(0,2),(n==="ms"||i.substr(0,6)==="webkit")&&(i="-"+i),s.removeProperty(n==="--"?i:i.replace(Ld,"-$1").toLowerCase())):s.removeAttribute(i)}},jn=function(e,i,s,n,a,o){var l=new es(e._pt,i,s,0,1,o?c_:l_);return e._pt=l,l.b=n,l.e=a,e._props.push(s),l},gp={deg:1,rad:1,turn:1},oS={grid:1,flex:1},tr=function t(e,i,s,n){var a=parseFloat(s)||0,o=(s+"").trim().substr((a+"").length)||"px",l=vr.style,c=W2.test(i),u=e.tagName.toLowerCase()==="svg",d=(u?"client":"offset")+(c?"Width":"Height"),f=100,p=n==="px",v=n==="%",g,_,x,E;if(n===o||!a||gp[n]||gp[o])return a;if(o!=="px"&&!p&&(a=t(e,i,s,"px")),E=e.getCTM&&p_(e),(v||o==="%")&&(Mn[i]||~i.indexOf("adius")))return g=E?e.getBBox()[c?"width":"height"]:e[d],ui(v?a/g*f:a/100*g);if(l[c?"width":"height"]=f+(p?o:n),_=n!=="rem"&&~i.indexOf("adius")||n==="em"&&e.appendChild&&!u?e:e.parentNode,E&&(_=(e.ownerSVGElement||{}).parentNode),(!_||_===Vn||!_.appendChild)&&(_=Vn.body),x=_._gsap,x&&v&&x.width&&c&&x.time===vs.time&&!x.uncache)return ui(a/x.width*f);if(v&&(i==="height"||i==="width")){var I=e.style[i];e.style[i]=f+n,g=e[d],I?e.style[i]=I:Qn(e,i)}else(v||o==="%")&&!oS[gs(_,"display")]&&(l.position=gs(e,"position")),_===e&&(l.position="static"),_.appendChild(vr),g=vr[d],_.removeChild(vr),l.position="absolute";return c&&v&&(x=xr(_),x.time=vs.time,x.width=_[d]),ui(p?g*a/f:g&&a?f/g*a:0)},Bn=function(e,i,s,n){var a;return Dd||td(),i in cn&&i!=="transform"&&(i=cn[i],~i.indexOf(",")&&(i=i.split(",")[0])),Mn[i]&&i!=="transform"?(a=go(e,n),a=i!=="transformOrigin"?a[i]:a.svg?a.origin:Gl(gs(e,is))+" "+a.zOrigin+"px"):(a=e.style[i],(!a||a==="auto"||n||~(a+"").indexOf("calc("))&&(a=jl[i]&&jl[i](e,i,s)||gs(e,i)||Mv(e,i)||(i==="opacity"?1:0))),s&&!~(a+"").trim().indexOf(" ")?tr(e,i,a,s)+s:a},lS=function(e,i,s,n){if(!s||s==="none"){var a=da(i,e,1),o=a&&gs(e,a,1);o&&o!==s?(i=a,s=o):i==="borderColor"&&(s=gs(e,"borderTopColor"))}var l=new es(this._pt,e.style,i,0,1,r_),c=0,u=0,d,f,p,v,g,_,x,E,I,z,$,M;if(l.b=s,l.e=n,s+="",n+="",n.substring(0,6)==="var(--"&&(n=gs(e,n.substring(4,n.indexOf(")")))),n==="auto"&&(_=e.style[i],e.style[i]=n,n=gs(e,i)||n,_?e.style[i]=_:Qn(e,i)),d=[s,n],Jv(d),s=d[0],n=d[1],p=s.match(Kr)||[],M=n.match(Kr)||[],M.length){for(;f=Kr.exec(n);)x=f[0],I=n.substring(c,f.index),g?g=(g+1)%5:(I.substr(-5)==="rgba("||I.substr(-5)==="hsla(")&&(g=1),x!==(_=p[u++]||"")&&(v=parseFloat(_)||0,$=_.substr((v+"").length),x.charAt(1)==="="&&(x=Zr(v,x)+$),E=parseFloat(x),z=x.substr((E+"").length),c=Kr.lastIndex-z.length,z||(z=z||bs.units[i]||$,c===n.length&&(n+=z,l.e+=z)),$!==z&&(v=tr(e,i,_,z)||0),l._pt={_next:l._pt,p:I||u===1?I:",",s:v,c:E-v,m:g&&g<4||i==="zIndex"?Math.round:0});l.c=c<n.length?n.substring(c,n.length):""}else l.r=i==="display"&&n==="none"?c_:l_;return Uv.test(n)&&(l.e=0),this._pt=l,l},yp={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},cS=function(e){var i=e.split(" "),s=i[0],n=i[1]||"50%";return(s==="top"||s==="bottom"||n==="left"||n==="right")&&(e=s,s=n,n=e),i[0]=yp[s]||s,i[1]=yp[n]||n,i.join(" ")},uS=function(e,i){if(i.tween&&i.tween._time===i.tween._dur){var s=i.t,n=s.style,a=i.u,o=s._gsap,l,c,u;if(a==="all"||a===!0)n.cssText="",c=1;else for(a=a.split(","),u=a.length;--u>-1;)l=a[u],Mn[l]&&(c=1,l=l==="transformOrigin"?is:ei),Qn(s,l);c&&(Qn(s,ei),o&&(o.svg&&s.removeAttribute("transform"),n.scale=n.rotate=n.translate="none",go(s,1),o.uncache=1,u_(n)))}},jl={clearProps:function(e,i,s,n,a){if(a.data!=="isFromStart"){var o=e._pt=new es(e._pt,i,s,0,0,uS);return o.u=n,o.pr=-10,o.tween=a,e._props.push(s),1}}},_o=[1,0,0,1,0,0],m_={},v_=function(e){return e==="matrix(1, 0, 0, 1, 0, 0)"||e==="none"||!e},bp=function(e){var i=gs(e,ei);return v_(i)?_o:i.substr(7).match(Ev).map(ui)},Hd=function(e,i){var s=e._gsap||xr(e),n=e.style,a=bp(e),o,l,c,u;return s.svg&&e.getAttribute("transform")?(c=e.transform.baseVal.consolidate().matrix,a=[c.a,c.b,c.c,c.d,c.e,c.f],a.join(",")==="1,0,0,1,0,0"?_o:a):(a===_o&&!e.offsetParent&&e!==Qr&&!s.svg&&(c=n.display,n.display="block",o=e.parentNode,(!o||!e.offsetParent&&!e.getBoundingClientRect().width)&&(u=1,l=e.nextElementSibling,Qr.appendChild(e)),a=bp(e),c?n.display=c:Qn(e,"display"),u&&(l?o.insertBefore(e,l):o?o.appendChild(e):Qr.removeChild(e))),i&&a.length>6?[a[0],a[1],a[4],a[5],a[12],a[13]]:a)},ed=function(e,i,s,n,a,o){var l=e._gsap,c=a||Hd(e,!0),u=l.xOrigin||0,d=l.yOrigin||0,f=l.xOffset||0,p=l.yOffset||0,v=c[0],g=c[1],_=c[2],x=c[3],E=c[4],I=c[5],z=i.split(" "),$=parseFloat(z[0])||0,M=parseFloat(z[1])||0,V,N,H,T;s?c!==_o&&(N=v*x-g*_)&&(H=$*(x/N)+M*(-_/N)+(_*I-x*E)/N,T=$*(-g/N)+M*(v/N)-(v*I-g*E)/N,$=H,M=T):(V=h_(e),$=V.x+(~z[0].indexOf("%")?$/100*V.width:$),M=V.y+(~(z[1]||z[0]).indexOf("%")?M/100*V.height:M)),n||n!==!1&&l.smooth?(E=$-u,I=M-d,l.xOffset=f+(E*v+I*_)-E,l.yOffset=p+(E*g+I*x)-I):l.xOffset=l.yOffset=0,l.xOrigin=$,l.yOrigin=M,l.smooth=!!n,l.origin=i,l.originIsAbsolute=!!s,e.style[is]="0px 0px",o&&(jn(o,l,"xOrigin",u,$),jn(o,l,"yOrigin",d,M),jn(o,l,"xOffset",f,l.xOffset),jn(o,l,"yOffset",p,l.yOffset)),e.setAttribute("data-svg-origin",$+" "+M)},go=function(e,i){var s=e._gsap||new Qv(e);if("x"in s&&!i&&!s.uncache)return s;var n=e.style,a=s.scaleX<0,o="px",l="deg",c=getComputedStyle(e),u=gs(e,is)||"0",d,f,p,v,g,_,x,E,I,z,$,M,V,N,H,T,j,St,yt,ht,vt,F,C,Lt,xt,He,ii,de,re,xe,Ct,nt;return d=f=p=_=x=E=I=z=$=0,v=g=1,s.svg=!!(e.getCTM&&p_(e)),c.translate&&((c.translate!=="none"||c.scale!=="none"||c.rotate!=="none")&&(n[ei]=(c.translate!=="none"?"translate3d("+(c.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(c.rotate!=="none"?"rotate("+c.rotate+") ":"")+(c.scale!=="none"?"scale("+c.scale.split(" ").join(",")+") ":"")+(c[ei]!=="none"?c[ei]:"")),n.scale=n.rotate=n.translate="none"),N=Hd(e,s.svg),s.svg&&(s.uncache?(xt=e.getBBox(),u=s.xOrigin-xt.x+"px "+(s.yOrigin-xt.y)+"px",Lt=""):Lt=!i&&e.getAttribute("data-svg-origin"),ed(e,Lt||u,!!Lt||s.originIsAbsolute,s.smooth!==!1,N)),M=s.xOrigin||0,V=s.yOrigin||0,N!==_o&&(St=N[0],yt=N[1],ht=N[2],vt=N[3],d=F=N[4],f=C=N[5],N.length===6?(v=Math.sqrt(St*St+yt*yt),g=Math.sqrt(vt*vt+ht*ht),_=St||yt?Vr(yt,St)*hr:0,I=ht||vt?Vr(ht,vt)*hr+_:0,I&&(g*=Math.abs(Math.cos(I*ta))),s.svg&&(d-=M-(M*St+V*ht),f-=V-(M*yt+V*vt))):(nt=N[6],xe=N[7],ii=N[8],de=N[9],re=N[10],Ct=N[11],d=N[12],f=N[13],p=N[14],H=Vr(nt,re),x=H*hr,H&&(T=Math.cos(-H),j=Math.sin(-H),Lt=F*T+ii*j,xt=C*T+de*j,He=nt*T+re*j,ii=F*-j+ii*T,de=C*-j+de*T,re=nt*-j+re*T,Ct=xe*-j+Ct*T,F=Lt,C=xt,nt=He),H=Vr(-ht,re),E=H*hr,H&&(T=Math.cos(-H),j=Math.sin(-H),Lt=St*T-ii*j,xt=yt*T-de*j,He=ht*T-re*j,Ct=vt*j+Ct*T,St=Lt,yt=xt,ht=He),H=Vr(yt,St),_=H*hr,H&&(T=Math.cos(H),j=Math.sin(H),Lt=St*T+yt*j,xt=F*T+C*j,yt=yt*T-St*j,C=C*T-F*j,St=Lt,F=xt),x&&Math.abs(x)+Math.abs(_)>359.9&&(x=_=0,E=180-E),v=ui(Math.sqrt(St*St+yt*yt+ht*ht)),g=ui(Math.sqrt(C*C+nt*nt)),H=Vr(F,C),I=Math.abs(H)>2e-4?H*hr:0,$=Ct?1/(Ct<0?-Ct:Ct):0),s.svg&&(Lt=e.getAttribute("transform"),s.forceCSS=e.setAttribute("transform","")||!v_(gs(e,ei)),Lt&&e.setAttribute("transform",Lt))),Math.abs(I)>90&&Math.abs(I)<270&&(a?(v*=-1,I+=_<=0?180:-180,_+=_<=0?180:-180):(g*=-1,I+=I<=0?180:-180)),i=i||s.uncache,s.x=d-((s.xPercent=d&&(!i&&s.xPercent||(Math.round(e.offsetWidth/2)===Math.round(-d)?-50:0)))?e.offsetWidth*s.xPercent/100:0)+o,s.y=f-((s.yPercent=f&&(!i&&s.yPercent||(Math.round(e.offsetHeight/2)===Math.round(-f)?-50:0)))?e.offsetHeight*s.yPercent/100:0)+o,s.z=p+o,s.scaleX=ui(v),s.scaleY=ui(g),s.rotation=ui(_)+l,s.rotationX=ui(x)+l,s.rotationY=ui(E)+l,s.skewX=I+l,s.skewY=z+l,s.transformPerspective=$+o,(s.zOrigin=parseFloat(u.split(" ")[2])||!i&&s.zOrigin||0)&&(n[is]=Gl(u)),s.xOffset=s.yOffset=0,s.force3D=bs.force3D,s.renderTransform=s.svg?fS:f_?__:dS,s.uncache=0,s},Gl=function(e){return(e=e.split(" "))[0]+" "+e[1]},mu=function(e,i,s){var n=$i(i);return ui(parseFloat(i)+parseFloat(tr(e,"x",s+"px",n)))+n},dS=function(e,i){i.z="0px",i.rotationY=i.rotationX="0deg",i.force3D=0,__(e,i)},ur="0deg",Na="0px",dr=") ",__=function(e,i){var s=i||this,n=s.xPercent,a=s.yPercent,o=s.x,l=s.y,c=s.z,u=s.rotation,d=s.rotationY,f=s.rotationX,p=s.skewX,v=s.skewY,g=s.scaleX,_=s.scaleY,x=s.transformPerspective,E=s.force3D,I=s.target,z=s.zOrigin,$="",M=E==="auto"&&e&&e!==1||E===!0;if(z&&(f!==ur||d!==ur)){var V=parseFloat(d)*ta,N=Math.sin(V),H=Math.cos(V),T;V=parseFloat(f)*ta,T=Math.cos(V),o=mu(I,o,N*T*-z),l=mu(I,l,-Math.sin(V)*-z),c=mu(I,c,H*T*-z+z)}x!==Na&&($+="perspective("+x+dr),(n||a)&&($+="translate("+n+"%, "+a+"%) "),(M||o!==Na||l!==Na||c!==Na)&&($+=c!==Na||M?"translate3d("+o+", "+l+", "+c+") ":"translate("+o+", "+l+dr),u!==ur&&($+="rotate("+u+dr),d!==ur&&($+="rotateY("+d+dr),f!==ur&&($+="rotateX("+f+dr),(p!==ur||v!==ur)&&($+="skew("+p+", "+v+dr),(g!==1||_!==1)&&($+="scale("+g+", "+_+dr),I.style[ei]=$||"translate(0, 0)"},fS=function(e,i){var s=i||this,n=s.xPercent,a=s.yPercent,o=s.x,l=s.y,c=s.rotation,u=s.skewX,d=s.skewY,f=s.scaleX,p=s.scaleY,v=s.target,g=s.xOrigin,_=s.yOrigin,x=s.xOffset,E=s.yOffset,I=s.forceCSS,z=parseFloat(o),$=parseFloat(l),M,V,N,H,T;c=parseFloat(c),u=parseFloat(u),d=parseFloat(d),d&&(d=parseFloat(d),u+=d,c+=d),c||u?(c*=ta,u*=ta,M=Math.cos(c)*f,V=Math.sin(c)*f,N=Math.sin(c-u)*-p,H=Math.cos(c-u)*p,u&&(d*=ta,T=Math.tan(u-d),T=Math.sqrt(1+T*T),N*=T,H*=T,d&&(T=Math.tan(d),T=Math.sqrt(1+T*T),M*=T,V*=T)),M=ui(M),V=ui(V),N=ui(N),H=ui(H)):(M=f,H=p,V=N=0),(z&&!~(o+"").indexOf("px")||$&&!~(l+"").indexOf("px"))&&(z=tr(v,"x",o,"px"),$=tr(v,"y",l,"px")),(g||_||x||E)&&(z=ui(z+g-(g*M+_*N)+x),$=ui($+_-(g*V+_*H)+E)),(n||a)&&(T=v.getBBox(),z=ui(z+n/100*T.width),$=ui($+a/100*T.height)),T="matrix("+M+","+V+","+N+","+H+","+z+","+$+")",v.setAttribute("transform",T),I&&(v.style[ei]=T)},hS=function(e,i,s,n,a){var o=360,l=Bi(a),c=parseFloat(a)*(l&&~a.indexOf("rad")?hr:1),u=c-n,d=n+u+"deg",f,p;return l&&(f=a.split("_")[1],f==="short"&&(u%=o,u!==u%(o/2)&&(u+=u<0?o:-o)),f==="cw"&&u<0?u=(u+o*pp)%o-~~(u/o)*o:f==="ccw"&&u>0&&(u=(u-o*pp)%o-~~(u/o)*o)),e._pt=p=new es(e._pt,i,s,n,u,K2),p.e=d,p.u="deg",e._props.push(s),p},xp=function(e,i){for(var s in i)e[s]=i[s];return e},pS=function(e,i,s){var n=xp({},s._gsap),a="perspective,force3D,transformOrigin,svgOrigin",o=s.style,l,c,u,d,f,p,v,g;n.svg?(u=s.getAttribute("transform"),s.setAttribute("transform",""),o[ei]=i,l=go(s,1),Qn(s,ei),s.setAttribute("transform",u)):(u=getComputedStyle(s)[ei],o[ei]=i,l=go(s,1),o[ei]=u);for(c in Mn)u=n[c],d=l[c],u!==d&&a.indexOf(c)<0&&(v=$i(u),g=$i(d),f=v!==g?tr(s,c,u,g):parseFloat(u),p=parseFloat(d),e._pt=new es(e._pt,l,c,f,p-f,Zu),e._pt.u=g||0,e._props.push(c));xp(l,n)};ts("padding,margin,Width,Radius",function(t,e){var i="Top",s="Right",n="Bottom",a="Left",o=(e<3?[i,s,n,a]:[i+a,i+s,n+s,n+a]).map(function(l){return e<2?t+l:"border"+l+t});jl[e>1?"border"+t:t]=function(l,c,u,d,f){var p,v;if(arguments.length<4)return p=o.map(function(g){return Bn(l,g,u)}),v=p.join(" "),v.split(p[0]).length===5?p[0]:v;p=(d+"").split(" "),v={},o.forEach(function(g,_){return v[g]=p[_]=p[_]||p[(_-1)/2|0]}),l.init(c,v,f)}});var g_={name:"css",register:td,targetTest:function(e){return e.style&&e.nodeType},init:function(e,i,s,n,a){var o=this._props,l=e.style,c=s.vars.startAt,u,d,f,p,v,g,_,x,E,I,z,$,M,V,N,H,T;Dd||td(),this.styles=this.styles||d_(e),H=this.styles.props,this.tween=s;for(_ in i)if(_!=="autoRound"&&(d=i[_],!(ms[_]&&t_(_,i,s,n,e,a)))){if(v=typeof d,g=jl[_],v==="function"&&(d=d.call(s,n,e,a),v=typeof d),v==="string"&&~d.indexOf("random(")&&(d=po(d)),g)g(this,e,_,d,s)&&(N=1);else if(_.substr(0,2)==="--")u=(getComputedStyle(e).getPropertyValue(_)+"").trim(),d+="",Yn.lastIndex=0,Yn.test(u)||(x=$i(u),E=$i(d),E?x!==E&&(u=tr(e,_,u,E)+E):x&&(d+=x)),this.add(l,"setProperty",u,d,n,a,0,0,_),o.push(_),H.push(_,0,l[_]);else if(v!=="undefined"){if(c&&_ in c?(u=typeof c[_]=="function"?c[_].call(s,n,e,a):c[_],Bi(u)&&~u.indexOf("random(")&&(u=po(u)),$i(u+"")||u==="auto"||(u+=bs.units[_]||$i(Bn(e,_))||""),(u+"").charAt(1)==="="&&(u=Bn(e,_))):u=Bn(e,_),p=parseFloat(u),I=v==="string"&&d.charAt(1)==="="&&d.substr(0,2),I&&(d=d.substr(2)),f=parseFloat(d),_ in cn&&(_==="autoAlpha"&&(p===1&&Bn(e,"visibility")==="hidden"&&f&&(p=0),H.push("visibility",0,l.visibility),jn(this,l,"visibility",p?"inherit":"hidden",f?"inherit":"hidden",!f)),_!=="scale"&&_!=="transform"&&(_=cn[_],~_.indexOf(",")&&(_=_.split(",")[0]))),z=_ in Mn,z){if(this.styles.save(_),T=d,v==="string"&&d.substring(0,6)==="var(--"){if(d=gs(e,d.substring(4,d.indexOf(")"))),d.substring(0,5)==="calc("){var j=e.style.perspective;e.style.perspective=d,d=gs(e,"perspective"),j?e.style.perspective=j:Qn(e,"perspective")}f=parseFloat(d)}if($||(M=e._gsap,M.renderTransform&&!i.parseTransform||go(e,i.parseTransform),V=i.smoothOrigin!==!1&&M.smooth,$=this._pt=new es(this._pt,l,ei,0,1,M.renderTransform,M,0,-1),$.dep=1),_==="scale")this._pt=new es(this._pt,M,"scaleY",M.scaleY,(I?Zr(M.scaleY,I+f):f)-M.scaleY||0,Zu),this._pt.u=0,o.push("scaleY",_),_+="X";else if(_==="transformOrigin"){H.push(is,0,l[is]),d=cS(d),M.svg?ed(e,d,0,V,0,this):(E=parseFloat(d.split(" ")[2])||0,E!==M.zOrigin&&jn(this,M,"zOrigin",M.zOrigin,E),jn(this,l,_,Gl(u),Gl(d)));continue}else if(_==="svgOrigin"){ed(e,d,1,V,0,this);continue}else if(_ in m_){hS(this,M,_,p,I?Zr(p,I+d):d);continue}else if(_==="smoothOrigin"){jn(this,M,"smooth",M.smooth,d);continue}else if(_==="force3D"){M[_]=d;continue}else if(_==="transform"){pS(this,d,e);continue}}else _ in l||(_=da(_)||_);if(z||(f||f===0)&&(p||p===0)&&!Y2.test(d)&&_ in l)x=(u+"").substr((p+"").length),f||(f=0),E=$i(d)||(_ in bs.units?bs.units[_]:x),x!==E&&(p=tr(e,_,u,E)),this._pt=new es(this._pt,z?M:l,_,p,(I?Zr(p,I+f):f)-p,!z&&(E==="px"||_==="zIndex")&&i.autoRound!==!1?Z2:Zu),this._pt.u=E||0,z&&T!==d?(this._pt.b=u,this._pt.e=T,this._pt.r=J2):x!==E&&E!=="%"&&(this._pt.b=u,this._pt.r=X2);else if(_ in l)lS.call(this,e,_,u,I?I+d:d);else if(_ in e)this.add(e,_,u||e[_],I?I+d:d,n,a);else if(_!=="parseTransform"){Pd(_,d);continue}z||(_ in l?H.push(_,0,l[_]):typeof e[_]=="function"?H.push(_,2,e[_]()):H.push(_,1,u||e[_])),o.push(_)}}N&&a_(this)},render:function(e,i){if(i.tween._time||!Rd())for(var s=i._pt;s;)s.r(e,s.d),s=s._next;else i.styles.revert()},get:Bn,aliases:cn,getSetter:function(e,i,s){var n=cn[i];return n&&n.indexOf(",")<0&&(i=n),i in Mn&&i!==is&&(e._gsap.x||Bn(e,"x"))?s&&hp===s?i==="scale"?iS:eS:(hp=s||{})&&(i==="scale"?sS:nS):e.style&&!Ed(e.style[i])?Q2:~i.indexOf("-")?tS:Fd(e,i)},core:{_removeProperty:Qn,_getMatrix:Hd}};ns.utils.checkPrefix=da;ns.core.getStyleSaver=d_;(function(t,e,i,s){var n=ts(t+","+e+","+i,function(a){Mn[a]=1});ts(e,function(a){bs.units[a]="deg",m_[a]=1}),cn[n[13]]=t+","+e,ts(s,function(a){var o=a.split(":");cn[o[1]]=n[o[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");ts("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){bs.units[t]="px"});ns.registerPlugin(g_);var id=ns.registerPlugin(g_)||ns;id.core.Tween;const mS={ease:"power3.out",smooth:"power3.out","ease-out":"power3.out",easeOut:"power3.out",expo:"expo.out",expoOut:"expo.out",softSpring:"back.out(1.05)","soft-spring":"back.out(1.05)",spring:"elastic.out(0.55, 0.42)",bounceOut:"bounce.out"};function ql(t,e){const i=co(t,0,1);if(i===0||i===1)return i;const s=mS[String(e??"power3.out")]??String(e??"power3.out");if(s.startsWith("cubic-bezier("))return vS(s,i);const n=id.parseEase(s)??id.parseEase("power3.out");return co(n(i),0,1.04)}function vS(t,e){const i=t.match(/^cubic-bezier\(([^)]+)\)$/)?.[1]?.split(",").map(p=>Number(p.trim()));if(!i||i.length!==4||i.some(p=>!Number.isFinite(p)))return ql(e,"power3.out");const[s,n,a,o]=i;if(s<0||s>1||a<0||a>1)return ql(e,"power3.out");const l=(p,v,g)=>{const _=1-g;return 3*_*_*g*p+3*_*g*g*v+g*g*g},c=(p,v,g)=>3*(1-g)*(1-g)*p+6*(1-g)*g*(v-p)+3*g*g*(1-v);let u=e;for(let p=0;p<8;p+=1){const v=l(s,a,u)-e;if(Math.abs(v)<1e-7)return l(n,o,u);const g=c(s,a,u);if(Math.abs(g)<1e-7)break;const _=u-v/g;if(_<0||_>1)break;u=_}let d=0,f=1;u=e;for(let p=0;p<24;p+=1){const v=l(s,a,u);if(Math.abs(v-e)<1e-7)break;v<e?d=u:f=u,u=(d+f)/2}return l(n,o,u)}function y_(t,e,i){return i<=0?t:i>=1?e:typeof t=="number"&&typeof e=="number"?t+(e-t)*i:wp(t)&&wp(e)?_S(t,e,i):i<1?t:e}function wp(t){return typeof t=="string"&&(t.startsWith("#")||t.startsWith("rgb"))}function _S(t,e,i){const s=Sp(t),n=Sp(e);if(!s||!n)return i<1?Nl(t):Nl(e);const a=Math.round(s.r+(n.r-s.r)*i),o=Math.round(s.g+(n.g-s.g)*i),l=Math.round(s.b+(n.b-s.b)*i),c=s.a+(n.a-s.a)*i;return`rgba(${a}, ${o}, ${l}, ${c.toFixed(3)})`}function Sp(t){const e=String(t).trim();if(e.startsWith("#")){const n=e.slice(1);if(n.length===3)return{r:Number.parseInt(n[0]+n[0],16),g:Number.parseInt(n[1]+n[1],16),b:Number.parseInt(n[2]+n[2],16),a:1};if(n.length===6)return{r:Number.parseInt(n.slice(0,2),16),g:Number.parseInt(n.slice(2,4),16),b:Number.parseInt(n.slice(4,6),16),a:1}}const i=e.match(/^rgba?\(([^)]+)\)$/);if(!i)return null;const s=i[1].split(",").map(n=>Number.parseFloat(n.trim()));return{r:s[0]??0,g:s[1]??0,b:s[2]??0,a:s[3]??1}}const kp=new WeakMap,Bp=new WeakMap;function b_(t,e){const i=gS(t),s=wS(t,i,e),n=i.regularElements.filter(o=>yS(o,e)).map(o=>{let l=sd(o,i.animationsByTarget.get(o.id)??[],e);return o.asset&&(l={...l,mediaTime:Math.max(0,e)}),{...o,render:l}}),a=i.orderedClips.filter(o=>{const l=o.transitionOut==="crossfade"?o.transitionOutDuration:0;return e>=o.start&&e<o.start+o.duration+l});for(const o of a){if(!o.asset)continue;const l=i.elementsByAsset.get(o.assetName),c=l?sd(l,i.animationsByTarget.get(l.id)??[],e):{x:0,y:0,scale:1,rotation:0,opacity:1,center:!0,cover:!1,layer:"content"},u=o.start+o.duration;let d=1;o.transitionIn==="crossfade"&&o.transitionInDuration>0&&(d*=co((e-o.start)/o.transitionInDuration)),o.transitionOut==="crossfade"&&o.transitionOutDuration>0&&e>=u&&(d*=1-co((e-u)/o.transitionOutDuration));const f=Number(c.opacity??1),p={id:o.id,kind:"asset",assetName:o.assetName,asset:o.asset,properties:l?.properties??{},render:{...c,opacity:f*d,mediaTime:Math.max(0,o.trimIn+e-o.start),mediaTrimOut:o.trimOut,mediaVolume:o.volume??1,mediaMuted:(i.tracksById.get(String(o.track))?.muted??!1)||(o.mute??!1)}};n.push(p)}return n.sort((o,l)=>Ep(i,o)-Ep(i,l)),{canvas:t.canvas,camera:s,elements:n}}function gS(t){const e=kp.get(t);if(e)return e;const i=new Map;for(const o of t.animations){const l=i.get(o.target);l?l.push(o):i.set(o.target,[o])}const s=new Map(t.tracks.map(o=>[o.id,o])),n=new Map;for(const o of t.elements)o.kind==="asset"&&o.assetName&&!n.has(o.assetName)&&n.set(o.assetName,o);const a={animationsByTarget:i,clippedAssets:new Set(t.clips.map(o=>o.assetName)),clipsById:new Map(t.clips.map(o=>[o.id,o])),elementsByAsset:n,orderedClips:[],regularElements:[],tracksById:s};return a.regularElements=t.elements.filter(o=>(o.kind!=="asset"||!o.assetName||!a.clippedAssets.has(o.assetName))&&bS(a,o)),a.orderedClips=t.clips.filter(o=>{const l=a.tracksById.get(String(o.track));return l?.role!=="audio"&&!l?.hidden}).sort((o,l)=>Wl(a,o.track)-Wl(a,l.track)||o.sourceOrder-l.sourceOrder),kp.set(t,a),a}function Wl(t,e){const i=t.tracksById.get(String(e));return i?i.role==="main"?0:100+i.order:xS(e)}function yS(t,e){const i=t.properties;if(i.start===void 0||i.duration===void 0)return!0;const s=Number(i.start),n=Number(i.duration);return!Number.isFinite(s)||!Number.isFinite(n)?!0:e>=s&&e<s+Math.max(0,n)}function bS(t,e){const i=e.properties.track;if(i===void 0)return!0;const s=t.tracksById.get(String(i));return s?.role!=="audio"&&!s?.hidden}function Ep(t,e){const i=t.clipsById.get(e.id);if(i)return Wl(t,i.track);const s=e.render.track;return s!==void 0?Wl(t,String(s)):1e3}function xS(t){const e=Number(t);return Number.isFinite(e)?e:0}function wS(t,e,i){const s={id:"camera",properties:t.camera??{x:0,y:0,zoom:1,rotation:0}};return sd(s,e.animationsByTarget.get(s.id)??[],i)}function sd(t,e,i){if(e.length===0)return t.properties;let s={...t.properties};for(const n of e)s=SS(s,n,i);return s}function SS(t,e,i){const s=i-e.delay;if(s<0)return t;const n=co(s/e.duration);if(e.keyframes.length>0)return kS(t,e.keyframes,n,e.easing);if(s===0)return{...t,...e.from};const a=ql(n,e.easing),o={...t};let l=Bp.get(e);l||(l=[...new Set([...Object.keys(e.from),...Object.keys(e.to)])],Bp.set(e,l));for(const c of l){const u=e.from[c]??t[c]??0,d=e.to[c]??t[c]??0;o[c]=y_(u,d,a)}return o}function kS(t,e,i,s){if(e.length===0)return t;const n=e[0],a=e[e.length-1];if(!n||!a)return t;if(i<=n.offset)return{...t,...n.properties};if(i>=a.offset)return{...t,...a.properties};const o={...t};let l=n,c=a;for(let v=0;v<e.length-1;v+=1){const g=e[v],_=e[v+1];if(!(!g||!_)&&i>=g.offset&&i<=_.offset){l=g,c=_;break}}const u=c.offset-l.offset||1,d=c.easing??s,f=ql((i-l.offset)/u,d),p=new Set([...Object.keys(l.properties),...Object.keys(c.properties)]);for(const v of p){const g=l.properties[v]??t[v]??0,_=c.properties[v]??t[v]??0;o[v]=y_(g,_,f)}return o}const BS="modulepreload",ES=function(t){return"/"+t},Up={},Vd=function(e,i,s){let n=Promise.resolve();if(i&&i.length>0){let o=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");n=o(i.map(u=>{if(u=ES(u),u in Up)return;Up[u]=!0;const d=u.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=d?"stylesheet":BS,d||(p.as="script"),p.crossOrigin="",p.href=u,c&&p.setAttribute("nonce",c),document.head.appendChild(p),d)return new Promise((v,g)=>{p.addEventListener("load",v),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return n.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return e().catch(a)})};var bn={},vu={},xn={},Tp;function x_(){if(Tp)return xn;Tp=1,Object.defineProperty(xn,"__esModule",{value:!0}),xn.loop=xn.conditional=xn.parse=void 0;var t=function s(n,a){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(Array.isArray(a))a.forEach(function(u){return s(n,u,o,l)});else if(typeof a=="function")a(n,o,l,s);else{var c=Object.keys(a)[0];Array.isArray(a[c])?(l[c]={},s(n,a[c],o,l[c])):l[c]=a[c](n,o,l,s)}return o};xn.parse=t;var e=function(n,a){return function(o,l,c,u){a(o,l,c)&&u(o,n,l,c)}};xn.conditional=e;var i=function(n,a){return function(o,l,c,u){for(var d=[],f=o.pos;a(o,l,c);){var p={};if(u(o,n,l,p),o.pos===f)break;f=o.pos,d.push(p)}return d}};return xn.loop=i,xn}var ci={},Pp;function w_(){if(Pp)return ci;Pp=1,Object.defineProperty(ci,"__esModule",{value:!0}),ci.readBits=ci.readArray=ci.readUnsigned=ci.readString=ci.peekBytes=ci.readBytes=ci.peekByte=ci.readByte=ci.buildStream=void 0;var t=function(f){return{data:f,pos:0}};ci.buildStream=t;var e=function(){return function(f){return f.data[f.pos++]}};ci.readByte=e;var i=function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(p){return p.data[p.pos+f]}};ci.peekByte=i;var s=function(f){return function(p){return p.data.subarray(p.pos,p.pos+=f)}};ci.readBytes=s;var n=function(f){return function(p){return p.data.subarray(p.pos,p.pos+f)}};ci.peekBytes=n;var a=function(f){return function(p){return Array.from(s(f)(p)).map(function(v){return String.fromCharCode(v)}).join("")}};ci.readString=a;var o=function(f){return function(p){var v=s(2)(p);return f?(v[1]<<8)+v[0]:(v[0]<<8)+v[1]}};ci.readUnsigned=o;var l=function(f,p){return function(v,g,_){for(var x=typeof p=="function"?p(v,g,_):p,E=s(f),I=new Array(x),z=0;z<x;z++)I[z]=E(v);return I}};ci.readArray=l;var c=function(f,p,v){for(var g=0,_=0;_<v;_++)g+=f[p+_]&&Math.pow(2,v-_-1);return g},u=function(f){return function(p){for(var v=e()(p),g=new Array(8),_=0;_<8;_++)g[7-_]=!!(v&1<<_);return Object.keys(f).reduce(function(x,E){var I=f[E];return I.length?x[E]=c(g,I.index,I.length):x[E]=g[I.index],x},{})}};return ci.readBits=u,ci}var Ap;function US(){return Ap||(Ap=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e=x_(),i=w_(),s={blocks:function(p){for(var v=0,g=[],_=p.data.length,x=0,E=(0,i.readByte)()(p);E!==v&&E;E=(0,i.readByte)()(p)){if(p.pos+E>=_){var I=_-p.pos;g.push((0,i.readBytes)(I)(p)),x+=I;break}g.push((0,i.readBytes)(E)(p)),x+=E}for(var z=new Uint8Array(x),$=0,M=0;M<g.length;M++)z.set(g[M],$),$+=g[M].length;return z}},n=(0,e.conditional)({gce:[{codes:(0,i.readBytes)(2)},{byteSize:(0,i.readByte)()},{extras:(0,i.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,i.readUnsigned)(!0)},{transparentColorIndex:(0,i.readByte)()},{terminator:(0,i.readByte)()}]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===249}),a=(0,e.conditional)({image:[{code:(0,i.readByte)()},{descriptor:[{left:(0,i.readUnsigned)(!0)},{top:(0,i.readUnsigned)(!0)},{width:(0,i.readUnsigned)(!0)},{height:(0,i.readUnsigned)(!0)},{lct:(0,i.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,e.conditional)({lct:(0,i.readArray)(3,function(f,p,v){return Math.pow(2,v.descriptor.lct.size+1)})},function(f,p,v){return v.descriptor.lct.exists}),{data:[{minCodeSize:(0,i.readByte)()},s]}]},function(f){return(0,i.peekByte)()(f)===44}),o=(0,e.conditional)({text:[{codes:(0,i.readBytes)(2)},{blockSize:(0,i.readByte)()},{preData:function(p,v,g){return(0,i.readBytes)(g.text.blockSize)(p)}},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===1}),l=(0,e.conditional)({application:[{codes:(0,i.readBytes)(2)},{blockSize:(0,i.readByte)()},{id:function(p,v,g){return(0,i.readString)(g.blockSize)(p)}},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===255}),c=(0,e.conditional)({comment:[{codes:(0,i.readBytes)(2)},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===254}),u=[{header:[{signature:(0,i.readString)(3)},{version:(0,i.readString)(3)}]},{lsd:[{width:(0,i.readUnsigned)(!0)},{height:(0,i.readUnsigned)(!0)},{gct:(0,i.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,i.readByte)()},{pixelAspectRatio:(0,i.readByte)()}]},(0,e.conditional)({gct:(0,i.readArray)(3,function(f,p){return Math.pow(2,p.lsd.gct.size+1)})},function(f,p){return p.lsd.gct.exists}),{frames:(0,e.loop)([n,l,c,a,o],function(f){var p=(0,i.peekByte)()(f);return p===33||p===44})}],d=u;t.default=d})(vu)),vu}var Da={},Ip;function TS(){if(Ip)return Da;Ip=1,Object.defineProperty(Da,"__esModule",{value:!0}),Da.deinterlace=void 0;var t=function(i,s){for(var n=new Array(i.length),a=i.length/s,o=function(v,g){var _=i.slice(g*s,(g+1)*s);n.splice.apply(n,[v*s,s].concat(_))},l=[0,4,2,1],c=[8,8,4,2],u=0,d=0;d<4;d++)for(var f=l[d];f<a;f+=c[d])o(f,u),u++;return n};return Da.deinterlace=t,Da}var Ra={},Mp;function PS(){if(Mp)return Ra;Mp=1,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.lzw=void 0;var t=function(i,s,n){var a=4096,o=-1,l=n,c,u,d,f,p,v,g,N,_,x,V,E,H,T,St,j,I=new Array(n),z=new Array(a),$=new Array(a),M=new Array(a+1);for(E=i,u=1<<E,p=u+1,c=u+2,g=o,f=E+1,d=(1<<f)-1,_=0;_<u;_++)z[_]=0,$[_]=_;var V,N,H,T,j,St;for(V=N=H=T=j=St=0,x=0;x<l;){if(T===0){if(N<f){V+=s[St]<<N,N+=8,St++;continue}if(_=V&d,V>>=f,N-=f,_>c||_==p)break;if(_==u){f=E+1,d=(1<<f)-1,c=u+2,g=o;continue}if(g==o){M[T++]=$[_],g=_,H=_;continue}for(v=_,_==c&&(M[T++]=H,_=g);_>u;)M[T++]=$[_],_=z[_];H=$[_]&255,M[T++]=H,c<a&&(z[c]=g,$[c]=H,c++,(c&d)===0&&c<a&&(f++,d+=c)),g=v}T--,I[j++]=M[T],x++}for(x=j;x<l;x++)I[x]=0;return I};return Ra.lzw=t,Ra}var zp;function AS(){if(zp)return bn;zp=1,Object.defineProperty(bn,"__esModule",{value:!0}),bn.decompressFrames=bn.decompressFrame=bn.parseGIF=void 0;var t=a(US()),e=x_(),i=w_(),s=TS(),n=PS();function a(d){return d&&d.__esModule?d:{default:d}}var o=function(f){var p=new Uint8Array(f);return(0,e.parse)((0,i.buildStream)(p),t.default)};bn.parseGIF=o;var l=function(f){for(var p=f.pixels.length,v=new Uint8ClampedArray(p*4),g=0;g<p;g++){var _=g*4,x=f.pixels[g],E=f.colorTable[x]||[0,0,0];v[_]=E[0],v[_+1]=E[1],v[_+2]=E[2],v[_+3]=x!==f.transparentIndex?255:0}return v},c=function(f,p,v){if(!f.image){console.warn("gif frame does not have associated image.");return}var g=f.image,_=g.descriptor.width*g.descriptor.height,x=(0,n.lzw)(g.data.minCodeSize,g.data.blocks,_);g.descriptor.lct.interlaced&&(x=(0,s.deinterlace)(x,g.descriptor.width));var E={pixels:x,dims:{top:f.image.descriptor.top,left:f.image.descriptor.left,width:f.image.descriptor.width,height:f.image.descriptor.height}};return g.descriptor.lct&&g.descriptor.lct.exists?E.colorTable=g.lct:E.colorTable=p,f.gce&&(E.delay=(f.gce.delay||10)*10,E.disposalType=f.gce.extras.disposal,f.gce.extras.transparentColorGiven&&(E.transparentIndex=f.gce.transparentColorIndex)),v&&(E.patch=l(E)),E};bn.decompressFrame=c;var u=function(f,p){return f.frames.filter(function(v){return v.image}).map(function(v){return c(v,f.gct,p)})};return bn.decompressFrames=u,bn}var Cp=AS();function Pr(t){return t?.motionlyType==="video"}function $p(t){return t.motionlyType==="gif"||t.motionlyType==="lottie"||t.motionlyType==="svg"}function IS(t){return[...t.entries()].flatMap(([e,i])=>i.motionlyWarning?[`${e}: ${i.motionlyWarning}`]:[])}async function MS(t,e=document.baseURI,i){const s=new Map;for(const a of t.imports){const o=aa(a.path);a.path.startsWith("data:")&&o&&s.set(o,a.path)}const n=await Promise.all(t.imports.map(async a=>{try{const o=s.get(aa(a.path))??a.path;return[a.name,await zS(o,e,a.type)]}catch(o){return console.warn(`Could not load asset ${a.path}:`,o),i?.(a.name,o),null}}));return new Map(n.filter(a=>a!==null))}async function zS(t,e,i){const s=new URL(t.startsWith("/")?`/${t.slice(1)}`:t,e).href,[n,a]=await Promise.all([i==="video"?FS(s):i==="lottie"?NS(s):QS(s)?DS(s):$S(s,i==="svg"),CS(s)]);return a&&(n.motionlySize=a),n}async function CS(t){if(/^https?:/i.test(t))try{const e=await fetch(t,{method:"HEAD"}),i=Number(e.headers.get("content-length"));return e.ok&&Number.isFinite(i)&&i>0?i:void 0}catch{return}}async function $S(t,e){const i=new Image;i.motionlyType="image",i.motionlySource=t,i.decoding="async",i.src=t;const s=i.decode(),n=e?fetch(t).then(a=>{if(!a.ok)throw new Error(`Asset request failed (${a.status})`);return a.text()}):null;if(n){const a=await n,o=XS(a);if(o.animated)return OS(t,a,o);i.motionlySvg=o}return await s,i}async function OS(t,e,i){const s=document.createElement("canvas"),n=Math.min(1,2048/Math.max(1,i.width,i.height));s.width=Math.max(1,Math.round(i.width*n)),s.height=Math.max(1,Math.round(i.height*n)),s.src=t,s.motionlySource=t,s.motionlyType="svg",s.motionlyDuration=0,s.motionlySvg=i,s.motionlyWarning=/@keyframes\b|animation(?:-name)?\s*:/i.test(e)?"Animated SVG uses real-time Canvas playback. SMIL animation is rendered where supported, but CSS keyframes are not fully supported by the Canvas SVG runtime and may differ.":"Animated SVG uses real-time Canvas playback. Its internal SMIL timeline cannot be frame-seeked, so exact scrubbing and export use wall-clock playback.";const a=s.getContext("2d");if(!a)throw new Error("Could not create animated SVG render context");const{Canvg:o}=await Vd(async()=>{const{Canvg:d}=await import("./index-uMHqBndL.js");return{Canvg:d}},[]),l={enableRedraw:!0,ignoreDimensions:!0,ignoreMouse:!0,scaleWidth:s.width,scaleHeight:s.height},c=()=>o.fromString(a,e),u=c();return s.motionlyCanvg=u,await u.render(l),s.motionlyRestart=async()=>{s.motionlyCanvg?.stop(),a.clearRect(0,0,s.width,s.height);const d=c();s.motionlyCanvg=d,d.start(l)},s.motionlyResume=()=>s.motionlyCanvg?.start(l),s}async function FS(t){const e=document.createElement("video");if(e.motionlyType="video",e.motionlySource=t,e.preload="auto",e.muted=!0,e.defaultMuted=!0,e.playsInline=!0,e.src=t,e.load(),e.readyState<HTMLMediaElement.HAVE_METADATA&&await yo(e,"loadedmetadata"),e.readyState<HTMLMediaElement.HAVE_CURRENT_DATA&&await yo(e,"loadeddata"),e.width=Math.max(1,e.videoWidth),e.height=Math.max(1,e.videoHeight),e.motionlyPreviewFrame=document.createElement("canvas"),e.motionlyPreviewFrame.width=e.width,e.motionlyPreviewFrame.height=e.height,tk(t))try{const i=await fetch(t);if(!i.ok)throw new Error(`MP4 request failed (${i.status})`);const{demuxMp4:s}=await Vd(async()=>{const{demuxMp4:n}=await Promise.resolve().then(()=>PE);return{demuxMp4:n}},void 0);e.motionlyMp4=await s(await i.arrayBuffer())}catch(i){console.warn("Could not demux MP4 metadata:",i)}return e.motionlyDuration=e.motionlyMp4?.duration??await KS(e),jd(e),e}async function NS(t){const e=document.createElement("canvas");e.width=512,e.height=512,e.src=t,e.motionlySource=t,e.motionlyType="lottie",e.motionlyDuration=0;const i=await fetch(t);if(!i.ok)throw new Error(`Lottie request failed (${i.status})`);const{DotLottie:s}=await Vd(async()=>{const{DotLottie:l}=await import("./index-bTggaIHQ.js");return{DotLottie:l}},[]),n=new s({canvas:e,data:await i.arrayBuffer(),autoplay:!1,loop:!0,useFrameInterpolation:!0,renderConfig:{autoResize:!1,devicePixelRatio:1,freezeOnOffscreen:!1}});e.motionlyLottie=n;try{await new Promise((l,c)=>{const u=()=>{f(),l()},d=p=>{f(),c(p.error)},f=()=>{n.removeEventListener("load",u),n.removeEventListener("loadError",d)};n.addEventListener("load",u),n.addEventListener("loadError",d),n.isLoaded&&u()})}catch(l){throw n.destroy(),l}const a=n.animationSize(),o=Math.min(1,2048/Math.max(1,a.width,a.height));return e.width=Math.max(1,Math.round(a.width*o)),e.height=Math.max(1,Math.round(a.height*o)),e.motionlyDuration=Math.max(0,n.duration),n.resize(),n.setFrame(0),e}async function DS(t){const e=await fetch(t);if(!e.ok)throw new Error(`GIF request failed (${e.status})`);const i=Cp.parseGIF(await e.arrayBuffer()),s=Cp.decompressFrames(i,!0);if(!s.length)throw new Error("GIF contains no frames");const n=document.createElement("canvas");n.width=i.lsd.width,n.height=i.lsd.height,n.src=t,n.motionlySource=t,n.motionlyType="gif";const a=document.createElement("canvas");a.width=n.width,a.height=n.height;const o=a.getContext("2d"),l=document.createElement("canvas"),c=l.getContext("2d");if(!o||!c)throw new Error("Could not create GIF render context");const u=[];let d=0,f,p;for(const v of s){f?.disposalType===2?o.clearRect(f.dims.left,f.dims.top,f.dims.width,f.dims.height):f?.disposalType===3&&p&&o.putImageData(p,0,0),p=v.disposalType===3?o.getImageData(0,0,n.width,n.height):void 0,l.width=v.dims.width,l.height=v.dims.height;const g=c.createImageData(v.dims.width,v.dims.height);g.data.set(v.patch),c.putImageData(g,0,0),o.drawImage(l,v.dims.left,v.dims.top),d+=Math.max(.01,v.delay/1e3),u.push({endTime:d,bitmap:await createImageBitmap(a)}),f=v}return n.motionlyDuration=d,n.motionlyGif={frames:u,currentFrame:-1},k_(n,0),n}function yo(t,e){return new Promise((i,s)=>{const n=()=>{t.removeEventListener(e,a),t.removeEventListener("error",o)},a=()=>{n(),i()},o=()=>{n(),s(t.error??new Error(`Video failed during ${e}`))};t.addEventListener(e,a,{once:!0}),t.addEventListener("error",o,{once:!0})})}const Yl=new WeakMap,Gn=new WeakSet;function RS(t,e,i=0){const s=Math.max(0,e-Math.max(0,i)-.001);return Math.max(0,Math.min(s,Number.isFinite(t)?t:0))}async function S_(t,e,i){const s=new Map;for(const l of t.elements){if(!l.assetName)continue;const c=e.get(l.assetName);!c||!Op(c)||s.set(l.assetName,l.render)}const n=[],a=Yl.get(e)??new Set,o=new Set;for(const[l,c]of s){const u=e.get(l);if(!u||!Op(u))continue;o.add(u);const d=Number(c.mediaTime??0),f=Math.max(0,Number(c.mediaTrimOut??0));if(Pr(u)){const p=RS(d,u.motionlyDuration,f),v=!a.has(u),g=i.exact||v?1/1e3:.35;if(Math.abs(u.currentTime-p)>g){const _=GS(u,p,i.exact===!0);n.push(i.playing?_.then(()=>u.paused?Fp(u):void 0):_)}else i.playing&&u.paused&&n.push(Fp(u));i.playing||(u.pause(),rd(u))}else $p(u)&&u.motionlyLottie?VS(u,d):$p(u)&&u.motionlyGif?k_(u,d):dc(u)&&(i.playing?i.playing&&!a.has(u)?Gn.has(u)&&u.motionlyResume?(Gn.delete(u),u.motionlyResume()):n.push(Sl(u)):!u.motionlyCanvg&&!a.has(u)&&n.push(Sl(u)):(u.motionlyCanvg?u.motionlyCanvg.stop():a.has(u)||n.push(Sl(u)),Gn.delete(u),o.delete(u)))}for(const l of a)o.has(l)||(Pr(l)&&(l.pause(),rd(l)),l.motionlyCanvg&&(l.motionlyCanvg.stop(),Gn.delete(l)));Yl.set(e,o),await Promise.all(n)}function nd(t){for(const e of t.values())Pr(e)&&(e.pause(),rd(e)),e.motionlyCanvg&&(e.motionlyCanvg.stop(),Gn.add(e)),e.motionlyLottie?.pause();Yl.delete(t)}function _u(t){nd(t);for(const e of t.values())e.motionlyCanvg?.stop(),Gn.delete(e),e.motionlyLottie?.destroy(),e.motionlyGif?.frames.forEach(i=>i.bitmap.close())}async function LS(t){Yl.delete(t);for(const e of t.values())Gn.delete(e);await Promise.all([...t.values()].filter(dc).map(e=>Sl(e)))}function HS(t){return[...t.values()].some(dc)}function Op(t){return Pr(t)||t.motionlyType==="gif"||t.motionlyType==="lottie"||dc(t)}function dc(t){return!!t.motionlyRestart}function VS(t,e){const i=t.motionlyLottie;if(!i||!i.totalFrames||!i.duration)return;const s=((Number.isFinite(e)?e:0)%i.duration+i.duration)%i.duration;i.setFrame(Math.min(i.totalFrames-1,s/i.duration*i.totalFrames))}function jS(t,e){const i=t.at(-1)?.endTime??0;if(!i)return 0;const s=((Number.isFinite(e)?e:0)%i+i)%i,n=t.findIndex(a=>s<a.endTime);return n<0?Math.max(0,t.length-1):n}function k_(t,e){const i=t.motionlyGif;if(!i)return;const s=jS(i.frames,e);if(s===i.currentFrame)return;const n=t.getContext("2d");n&&(n.clearRect(0,0,t.width,t.height),n.drawImage(i.frames[s].bitmap,0,0),i.currentFrame=s)}async function Sl(t){if(Gn.delete(t),t.motionlyRestart)return t.motionlyRestart();if(t.motionlyType!=="image")return;const e=t.motionlySource;t.src="",t.src=e,await t.decode()}function Fp(t){if(t.motionlyPlay)return t.motionlyPlay;YS(t);const e=t.play().catch(()=>{});return t.motionlyPlay=e,e.finally(()=>{t.motionlyPlay===e&&(t.motionlyPlay=void 0)})}function GS(t,e,i){if(t.motionlySeek&&!i)return t.motionlySeek;const n=(t.motionlySeek?.catch(()=>{})??Promise.resolve()).then(()=>qS(t,e));return t.motionlySeek=n,n.finally(()=>{t.motionlySeek===n&&(t.motionlySeek=void 0)})}async function qS(t,e){if(Math.abs(t.currentTime-e)>1/1e3){const i=yo(t,"seeked");t.currentTime=e,await i,await WS(t)}jd(t)}function WS(t){return t.requestVideoFrameCallback?new Promise(e=>{let i=!1,s;const n=()=>{i||(i=!0,clearTimeout(a),e())},a=setTimeout(()=>{s!==void 0&&t.cancelVideoFrameCallback?.(s),n()},100);s=t.requestVideoFrameCallback(n)}):Promise.resolve()}function YS(t){if(t.motionlyFramePumpActive)return;t.motionlyFramePumpActive=!0;const e=()=>{t.motionlyFramePumpActive&&(jd(t),t.requestVideoFrameCallback?(t.motionlyFrameCallbackType="rvfc",t.motionlyFrameCallback=t.requestVideoFrameCallback(e)):(t.motionlyFrameCallbackType="raf",t.motionlyFrameCallback=requestAnimationFrame(e)))};e()}function rd(t){t.motionlyFramePumpActive=!1,t.motionlyFrameCallback!==void 0&&(t.motionlyFrameCallbackType==="rvfc"?t.cancelVideoFrameCallback?.(t.motionlyFrameCallback):cancelAnimationFrame(t.motionlyFrameCallback),t.motionlyFrameCallback=void 0)}function jd(t){const e=t.motionlyPreviewFrame;if(!e||t.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||t.seeking||!t.videoWidth||!t.videoHeight)return;const i=e.getContext("2d");if(i)try{i.drawImage(t,0,0,e.width,e.height)}catch{}}async function KS(t){if(Number.isFinite(t.duration)&&t.duration>0)return t.duration;const e=yo(t,"seeked");t.currentTime=Number.MAX_SAFE_INTEGER,await e;const i=t.duration,s=yo(t,"seeked");return t.currentTime=0,await s,Number.isFinite(i)&&i>0?i:0}function XS(t){const e=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,i=e.getAttribute("viewBox")?.split(/\s+/).map(Number),s=i?.[2]??Number.parseFloat(e.getAttribute("width")??"1"),n=i?.[3]??Number.parseFloat(e.getAttribute("height")??"1"),a=Array.from(e.querySelectorAll("path[d]")).map((l,c)=>{const u=ZS(l),d=l.getAttribute("stroke")??u.stroke??"none",f=l.getAttribute("fill")??u.fill??"#000000";let p=s+n;try{p=l.getTotalLength()}catch{}return{d:l.getAttribute("d")??"",fill:f.startsWith("url(")?c?"#ffffff":"#8ab4ff":f,fillOpacity:Number.parseFloat(l.getAttribute("fill-opacity")??u.fillOpacity??"1"),stroke:d.startsWith("url(")?c?"#ffffff":"#8ab4ff":d,strokeWidth:Number.parseFloat(l.getAttribute("stroke-width")??u.strokeWidth??"1"),opacity:Number.parseFloat(l.getAttribute("stroke-opacity")??u.strokeOpacity??"1"),lineCap:l.getAttribute("stroke-linecap")||"butt",lineJoin:l.getAttribute("stroke-linejoin")||"miter",length:Math.max(1,p)}}),o=JS(t,e);return{width:s,height:n,animated:o,paths:a}}function JS(t,e){return!!(e?.querySelector("animate, animateMotion, animateTransform, set")||/<(?:animate|animateMotion|animateTransform|set)\b|@keyframes\b|animation(?:-name)?\s*:/i.test(t))}function ZS(t){const e=Object.fromEntries((t.getAttribute("style")??"").split(";").map(i=>i.split(":",2).map(s=>s.trim())).filter(i=>i.length===2&&!!i[0]));return{fill:e.fill??"",fillOpacity:e["fill-opacity"]??"",stroke:e.stroke??"",strokeOpacity:e["stroke-opacity"]??"",strokeWidth:e["stroke-width"]??""}}function QS(t){return t.startsWith("data:image/gif")||/\.gif(?:[?#]|$)/i.test(t)}function tk(t){return/^data:video\/(?:mp4|quicktime)/i.test(t)||/\.(?:mp4|mov|m4v)(?:[?#]|$)/i.test(t)||/motionly-filename=[^#]*(?:mp4|mov|m4v)(?:[&#]|$)/i.test(t)}class B_{canvas;context;maskCanvas;maskContext;constructor(e){this.canvas=e;const i=e.getContext("2d",{alpha:!1});if(!i)throw new Error("Failed to get 2D rendering context");this.context=i,this.maskCanvas=e.ownerDocument.createElement("canvas");const s=this.maskCanvas.getContext("2d");if(!s)throw new Error("Failed to create mask rendering context");this.maskContext=s}resize(e,i){this.canvas.width!==e&&(this.canvas.width=e),this.canvas.height!==i&&(this.canvas.height=i),this.maskCanvas.width!==e&&(this.maskCanvas.width=e),this.maskCanvas.height!==i&&(this.maskCanvas.height=i)}render(e,i=new Map,s=1){const{canvas:n,camera:a,elements:o}=e,l=Math.max(.05,Math.min(1,Number.isFinite(s)?s:1));this.resize(Math.max(1,Math.round(n.width*l)),Math.max(1,Math.round(n.height*l)));const c=this.context;c.save(),c.setTransform(l,0,0,l,0,0),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.globalAlpha=1,c.filter="none",c.fillStyle=n.background,c.fillRect(0,0,n.width,n.height);const u=ek(o),d=E_(u),f=new Map(u.map(p=>[p.id,p]));c.save(),nk(c,n,a);for(const p of u)p.render.layer!=="effects"&&!d.has(p.id)&&Dp(c,n,p,i,f,this.maskCanvas,this.maskContext);c.restore();for(const p of u)p.render.layer==="effects"&&!d.has(p.id)&&Dp(c,n,p,i,f,this.maskCanvas,this.maskContext);c.restore()}measureText(e,i,s,n){return this.context.font=`${n} ${s}px ${i}`,this.context.measureText(e)}}function ek(t){const e=new Map,i=[];for(const s of t){const n=s.properties,a=n.textGroup;if(!a||n.textSplit!=="words"){i.push(s);continue}e.has(a)||e.set(a,[]),e.get(a).push(s)}for(const s of e.values())i.push(...ik(s));return i}function ik(t){if(t.length===0)return t;const e=sk(),i=t[0].render,s=i.textGroupX??0;e.font=`${i.weight} ${i.size}px ${i.font}`;const n=t.map(c=>{const u=c.render;return e.measureText(String(u.value)).width}),a=e.measureText(" ").width;let l=-(n.reduce((c,u)=>c+u,0)+a*(t.length-1))/2;return t.map((c,u)=>{const d=n[u],f=l+d/2;l+=d+a;const p=c.properties,v=c.render,g=p.x,_=v.x,x=typeof _=="number"&&typeof g=="number"?_-g:0;return{...c,render:{...c.render,x:s+f+x}}})}let gu;function sk(){return typeof document>"u"?Np:(gu||(gu=document.createElement("canvas")),gu.getContext("2d")??Np)}const Np={font:"",measureText(t){const e=Number.parseFloat(this.font.match(/(\d+(?:\.\d+)?)px/)?.[1]??"16");return{width:String(t).length*e*.52}}};function nk(t,e,i){const s=i,n=s.zoom??1,a=s.rotation??0,o=s.x??0,l=s.y??0;t.translate(e.width/2,e.height/2),t.scale(n,n),t.rotate(a*Math.PI/180),t.translate(-(e.width/2)-o,-(e.height/2)-l)}function E_(t){const e=new Set;for(const i of t){const s=i.render,n=String(s.mask??"");n&&n!=="none"&&s.maskVisible!==!0&&e.add(n)}return e}function Dp(t,e,i,s,n,a,o){const l=i.render,c=String(l.mask??""),u=c&&c!=="none"?n.get(c):void 0;if(!u){yu(t,e,i,s,n);return}o.save(),o.setTransform(1,0,0,1,0,0),o.clearRect(0,0,a.width,a.height),o.restore(),o.save(),o.setTransform(t.getTransform()),o.globalAlpha=1,o.filter="none",o.globalCompositeOperation="source-over",yu(o,e,i,s,n),o.globalCompositeOperation=l.maskInvert===!0?"destination-out":"destination-in",yu(o,e,u,s,n),o.restore(),t.save(),t.setTransform(1,0,0,1,0,0),t.globalAlpha=1,t.filter="none",t.drawImage(a,0,0),t.restore()}function yu(t,e,i,s,n){const a=i.render,o=a.opacity;if(o<=0)return;t.save(),t.globalAlpha=o;const l=Sk(a);l!=="none"&&(t.filter=l),i.kind==="text"?lk(t,e,a):i.kind==="overlay"?uk(t,e,a,s,n):i.kind==="effect"?mk(t,e,a):rk(t,e,i,a,s),t.restore()}function rk(t,e,i,s,n){const a=i.assetName;if(!a)return;const o=n.get(a);if(!o)return;const l=Pr(o)?o.motionlyPreviewFrame:o;if(!l?.width||!l.height)return;const c=T_(e,o,s);P_(t,s);const u=s.rotation??0,d=s.scale??1,f=er(s.originX,.5),p=er(s.originY,.5),v=-c.width*f,g=-c.height*p;t.translate(c.x+c.width*f,c.y+c.height*p),t.rotate(u*Math.PI/180),Kl(t,s),t.scale(d,d),pk(t,c.width,c.height,s,v,g);const _=s.pathProgress;if(typeof _=="number"&&o.motionlySvg?.paths.length)ak(t,o,c,_,v,g,s);else if(o.motionlySvg?.paths.length&&!o.motionlySvg.animated&&(s.fill!==void 0||s.stroke!==void 0||s.strokeWidth!==void 0))ok(t,o.motionlySvg,c,v,g,s);else try{t.drawImage(l,v,g,c.width,c.height)}catch(x){if(!Pr(o))throw x}}function ak(t,e,i,s,n,a,o){const l=e.motionlySvg;if(!l)return;const c=Math.max(0,Math.min(1,s)),u=Math.max(0,Math.min(1,(c-.72)/.28));if(u>0&&(t.save(),t.globalAlpha*=u,t.drawImage(e,n,a,i.width,i.height),t.restore()),c>=1)return;t.save(),t.translate(n,a),t.scale(i.width/l.width,i.height/l.height);const d=t.globalAlpha;for(const f of l.paths)f.stroke!=="none"&&(t.strokeStyle=String(o.stroke??f.stroke),t.globalAlpha=d*f.opacity,t.lineWidth=er(o.strokeWidth,f.strokeWidth),t.lineCap=f.lineCap,t.lineJoin=f.lineJoin,t.setLineDash([f.length,f.length]),t.lineDashOffset=f.length*(1-c),t.stroke(U_(f)));t.restore()}function ok(t,e,i,s,n,a){t.save(),t.translate(s,n),t.scale(i.width/e.width,i.height/e.height);const o=t.globalAlpha;for(const l of e.paths){const c=U_(l),u=String(a.fill??l.fill),d=String(a.stroke??l.stroke);u!=="none"&&(t.globalAlpha=o*l.fillOpacity,t.fillStyle=u,t.fill(c)),d!=="none"&&(t.globalAlpha=o*l.opacity,t.strokeStyle=d,t.lineWidth=er(a.strokeWidth,l.strokeWidth),t.lineCap=l.lineCap,t.lineJoin=l.lineJoin,t.stroke(c))}t.restore()}const Rp=new WeakMap;function U_(t){const e=Rp.get(t);if(e)return e;const i=new Path2D(t.d);return Rp.set(t,i),i}function lk(t,e,i){P_(t,i),t.fillStyle=i.color??"#fff",t.font=`${i.weight} ${i.size}px ${i.font}`,t.textBaseline="middle",t.textAlign="center";const s=i.center,n=s?e.width/2+(i.x??0):i.x??0,a=s?e.height/2+(i.y??0):i.y??0,o=i.rotation??0,l=i.scale??1,c=typeof i.countDecimals=="number"?Sw(i.value,String(i.countSeparator??""),i.countDecimals):String(i.value??""),u=i.tracking??0;t.translate(n,a),t.rotate(o*Math.PI/180),Kl(t,i),t.scale(l,l),ck(t,c,0,0,u)}function ck(t,e,i,s,n){if(!n){t.fillText(e,i,s);return}const a=Array.from(e),o=a.map(u=>t.measureText(u).width),l=o.reduce((u,d)=>u+d,0)+n*(a.length-1);let c=i-l/2;t.textAlign="left";for(let u=0;u<a.length;u+=1){const d=a[u],f=o[u];d&&f!==void 0&&(t.fillText(d,c,s),c+=f+n)}}function uk(t,e,i,s,n){const a=String(i.parent??"");if(a){dk(t,e,i,a,s,n);return}t.fillStyle=i.fill??"#000";const o=i.revealProgress;if(typeof o=="number"){const l=Math.max(0,Math.min(1,o));if(i.revealStyle==="iris"){t.beginPath(),t.arc(e.width/2,e.height/2,Math.hypot(e.width,e.height)*l/2,0,Math.PI*2),t.fill();return}const c=String(i.revealDirection??"right");c==="left"?t.fillRect(e.width*(1-l),0,e.width*l,e.height):c==="up"?t.fillRect(0,e.height*(1-l),e.width,e.height*l):c==="down"?t.fillRect(0,0,e.width,e.height*l):t.fillRect(0,0,e.width*l,e.height);return}t.fillRect(0,0,e.width,e.height)}function dk(t,e,i,s,n,a){const o=a.get(s);if(!o||o.kind!=="image"&&o.kind!=="asset")return;const l=o.render,c=Number(l.opacity??1);if(c<=0)return;const u=o.assetName,d=u?n.get(u):void 0;if(!d)return;const f=T_(e,d,l),p=d.width||f.width,v=d.height||f.height,g=Number(l.rotation??0),_=Number(l.scale??1),x=er(l.originX,.5),E=er(l.originY,.5);t.save(),t.globalAlpha*=c,t.translate(f.x+f.width*x,f.y+f.height*E),t.rotate(g*Math.PI/180),Kl(t,l),t.scale(_,_),t.translate(-f.width*x,-f.height*E),t.scale(f.width/p,f.height/v),i.clip&&(t.beginPath(),t.rect(0,0,p,v),t.clip());const I=Number(i.x??0),z=Number(i.y??0),$=Number(i.scale??1),M=Number(i.rotation??0),V=String(i.shape??"rect");t.translate(I,z),t.rotate(M*Math.PI/180),Kl(t,i),t.scale($,$),fk(t,V,i,p,v,I,z),t.restore()}function fk(t,e,i,s,n,a,o){const l=String(i.fill??"none"),c=String(i.stroke??"none"),u=Number(i.strokeWidth??4),d=Number(i.width??120),f=Number(i.height??80),p=Number(i.radius??48),v=Number(i.radiusX??p),g=Number(i.radiusY??p),_=Math.max(0,Math.min(1,Number(i.pathProgress??1)));if(t.lineWidth=u,t.lineCap="round",t.lineJoin="round",l!=="none"&&(t.fillStyle=l),c!=="none"&&(t.strokeStyle=c),e==="text"){t.fillStyle=l==="none"?String(i.color??"#fff"):l,t.font=`${Number(i.weight??700)} ${Number(i.size??48)}px ${String(i.font??"sans-serif")}`,t.textAlign="center",t.textBaseline="middle",t.fillText(String(i.value??""),0,0);return}if(e==="arrow"||e==="line"){hk(t,i,_,e==="arrow");return}if(e==="spotlight"){const E=Math.max(0,Math.min(1,Number(i.revealProgress??1))),I=new Path2D;I.rect(-a,-o,s,n),I.ellipse(0,0,v*E,g*E,0,0,Math.PI*2),t.fillStyle=l==="none"?"rgba(0, 0, 0, 0.58)":l,t.fill(I,"evenodd");return}const x=new Path2D;if(e==="circle")x.arc(0,0,p,-Math.PI/2,-Math.PI/2+Math.PI*2*_);else if(e==="ellipse")x.ellipse(0,0,v,g,0,-Math.PI/2,-Math.PI/2+Math.PI*2*_);else if(e==="path"){const E=String(i.path??"");if(!E)return;const I=new Path2D(E);l!=="none"&&t.fill(I),c!=="none"&&t.stroke(I);return}else x.rect(-d/2,-f/2,d,f);l!=="none"&&_>=1&&t.fill(x),c!=="none"&&t.stroke(x)}function hk(t,e,i,s){const n=Number(e.x2??0),a=Number(e.y2??0),o=n*i,l=a*i;if(t.beginPath(),t.moveTo(0,0),t.lineTo(o,l),t.stroke(),!s||i<.92)return;const c=Math.atan2(a,n),u=Math.max(10,Number(e.strokeWidth??4)*3.5);t.beginPath(),t.moveTo(o,l),t.lineTo(o-u*Math.cos(c-Math.PI/6),l-u*Math.sin(c-Math.PI/6)),t.moveTo(o,l),t.lineTo(o-u*Math.cos(c+Math.PI/6),l-u*Math.sin(c+Math.PI/6)),t.stroke()}function Kl(t,e){const i=Math.tan((e.skewX??0)*Math.PI/180),s=Math.tan((e.skewY??0)*Math.PI/180);(i||s)&&t.transform(1,s,i,1,0,0)}function pk(t,e,i,s,n=-e/2,a=-i/2){const o=s.revealProgress;if(typeof o!="number")return;const l=Math.max(0,Math.min(1,o)),c=String(s.revealDirection??"right");t.beginPath(),c==="left"?t.rect(n+e-e*l,a,e*l,i):c==="up"?t.rect(n,a+i-i*l,e,i*l):c==="down"?t.rect(n,a,e,i*l):t.rect(n,a,e*l,i),t.clip()}function mk(t,e,i){const s=i.effect;if(s==="noise"){xk(t,e,i);return}if(s==="grid"||s==="mesh"){gk(t,e,i);return}if(s==="rippleGrid"||s==="ripple-grid"){bk(t,e,i);return}if(s==="prism"){yk(t,e,i);return}vk(t,e,i)}function vk(t,e,i){const s=i.offset??0,n=i.effect??"gradientMotion",a=e.width*(.18+.68*s),o=e.height*(.32+.2*Math.sin(s*Math.PI*2)),l=t.createRadialGradient(a,o,0,a,o,e.width*.62),c=_k(n);l.addColorStop(0,c[0]),l.addColorStop(.42,c[1]),l.addColorStop(1,"rgba(0, 0, 0, 0)"),t.fillStyle=l,t.fillRect(0,0,e.width,e.height)}function _k(t){return t==="aurora"?["rgba(124, 247, 197, 0.32)","rgba(138, 180, 255, 0.2)"]:t==="codeGlow"?["rgba(88, 101, 242, 0.3)","rgba(124, 247, 197, 0.14)"]:t==="heroGlow"?["rgba(255, 255, 255, 0.18)","rgba(138, 180, 255, 0.18)"]:["rgba(124, 247, 197, 0.34)","rgba(138, 180, 255, 0.2)"]}function gk(t,e,i){const s=(i.offset??0)*48;t.strokeStyle="rgba(255, 255, 255, 0.055)",t.lineWidth=1;for(let n=-48+s;n<e.width+48;n+=48)t.beginPath(),t.moveTo(n,0),t.lineTo(n,e.height),t.stroke();for(let n=-48+s;n<e.height+48;n+=48)t.beginPath(),t.moveTo(0,n),t.lineTo(e.width,n),t.stroke()}function yk(t,e,i){const s=i.offset??0,n=i.intensity??1,a=e.width*(.5+Math.sin(s*Math.PI*2)*.08)+(i.x??0),o=e.height*(.54+Math.cos(s*Math.PI*2)*.04)+(i.y??0),l=e.height*.82,c=e.width*.32,u=s*Math.PI*2,d=t.createRadialGradient(a,o,0,a,o,e.width*.72);d.addColorStop(0,`rgba(138, 180, 255, ${.16*n})`),d.addColorStop(.42,`rgba(124, 247, 197, ${.08*n})`),d.addColorStop(1,"rgba(0, 0, 0, 0)"),t.fillStyle=d,t.fillRect(0,0,e.width,e.height),t.save(),t.translate(a,o),t.rotate(Math.sin(u)*.12);for(let p=0;p<7;p+=1){const v=p/6,g=-l*.42+v*l*.82,_=c*(1-Math.abs(v-.5)*1.35),x=170+Math.sin(u*1.8+p*.8)*80,E=(.17-p*.013)*n;t.beginPath(),t.moveTo(0,-l*.5),t.lineTo(-_,g),t.lineTo(0,l*.46),t.lineTo(_,g),t.closePath(),t.strokeStyle=`hsla(${x}, 92%, 72%, ${E})`,t.lineWidth=3+p*3.5,t.stroke()}const f=t.createLinearGradient(0,-l*.5,0,l*.5);f.addColorStop(0,`rgba(255, 255, 255, ${.18*n})`),f.addColorStop(.45,`rgba(138, 180, 255, ${.08*n})`),f.addColorStop(1,"rgba(124, 247, 197, 0)"),t.fillStyle=f,t.beginPath(),t.moveTo(0,-l*.48),t.lineTo(-c*.45,l*.28),t.lineTo(0,l*.48),t.lineTo(c*.45,l*.28),t.closePath(),t.fill(),t.restore()}function bk(t,e,i){const s=i.offset??0,n=i.intensity??1,a=i.gridSize??56,o=34*n,l=e.width/2,c=e.height/2,u=Math.hypot(l,c);t.lineWidth=i.gridThickness??1,t.strokeStyle=i.color??"rgba(255, 255, 255, 0.22)";for(let f=-a;f<=e.width+a;f+=a){t.beginPath();for(let p=0;p<=e.height;p+=18){const v=Math.hypot(f-l,p-c)/u,g=Math.sin(v*28-s*Math.PI*6)*o*(1-v);p===0?t.moveTo(f+g,p):t.lineTo(f+g,p)}t.stroke()}for(let f=-a;f<=e.height+a;f+=a){t.beginPath();for(let p=0;p<=e.width;p+=18){const v=Math.hypot(p-l,f-c)/u,g=Math.sin(v*28-s*Math.PI*6)*o*(1-v);p===0?t.moveTo(p,f+g):t.lineTo(p,f+g)}t.stroke()}const d=t.createRadialGradient(l,c,e.width*.18,l,c,e.width*.7);d.addColorStop(0,"rgba(0, 0, 0, 0)"),d.addColorStop(1,"rgba(0, 0, 0, 0.72)"),t.fillStyle=d,t.fillRect(0,0,e.width,e.height)}function xk(t,e,i){const n=Math.floor((i.offset??0)*60);t.fillStyle="rgba(255, 255, 255, 0.32)";for(let a=0;a<e.height;a+=6)for(let o=0;o<e.width;o+=6)wk(o,a,n)>.92&&t.fillRect(o,a,1,1)}function wk(t,e,i){const s=Math.sin(t*12.9898+e*78.233+i*37.719)*43758.5453;return s-Math.floor(s)}function T_(t,e,i){const s=e.width,n=e.height,a=i.cover,o=i.center,l=i.x??0,c=i.y??0,u=i.width,d=i.height;if(a){const _=i.overscan??1.18,x=Math.max(t.width/s,t.height/n)*_,E=s*x,I=n*x;return{x:(t.width-E)/2+l,y:(t.height-I)/2+c,width:E,height:I}}const f=u??(d?s*(d/n):s),p=d??n*(f/s),v=o?(t.width-f)/2+l:l,g=o?(t.height-p)/2+c:c;return{x:v,y:g,width:f,height:p}}function er(t,e){const i=typeof t=="number"?t:Number(t);return Number.isFinite(i)?i:e}function fr(t,e,i,s){return Math.min(s,Math.max(i,er(t,e)))}function Sk(t){const e=[],i=fr(t.blur,0,0,100),s=fr(t.brightness,1,0,10),n=fr(t.contrast,1,0,10),a=fr(t.saturation,1,0,10),o=er(t.hue,0),l=fr(t.grayscale,0,0,1),c=fr(t.sepia,0,0,1),u=fr(t.invert,0,0,1);return i!==0&&e.push(`blur(${i}px)`),s!==1&&e.push(`brightness(${s})`),n!==1&&e.push(`contrast(${n})`),a!==1&&e.push(`saturate(${a})`),o!==0&&e.push(`hue-rotate(${o}deg)`),l!==0&&e.push(`grayscale(${l})`),c!==0&&e.push(`sepia(${c})`),u!==0&&e.push(`invert(${u})`),e.length?e.join(" "):"none"}function P_(t,e){const i=e.shadow;if(!i){t.shadowBlur=0;return}t.shadowColor="rgba(0, 0, 0, 0.28)",t.shadowBlur=i,t.shadowOffsetY=i/3}var Lp=Object.defineProperty,A_=(t,e)=>{let i={};for(var s in t)Lp(i,s,{get:t[s],enumerable:!0});return Lp(i,Symbol.toStringTag,{value:"Module"}),i};const bu=Math.pow(2,32),bi=Math.pow(2,32)-1,kk=131072,Bk=1024,Ek=2048;var Fn=class I_ extends ArrayBuffer{constructor(e){super(e),this.fileStart=0,this.usedBytes=0}static fromArrayBuffer(e,i){const s=new I_(e.byteLength);return new Uint8Array(s).set(new Uint8Array(e)),s.fileStart=i,s}},Hi=class Pe{static{this.ENDIANNESS=new Int8Array(new Int16Array([1]).buffer)[0]>0?2:1}constructor(e,i,s){this._byteLength=0,this.failurePosition=0,this._dynamicSize=1,this._byteOffset=i||0,e instanceof ArrayBuffer?this.buffer=Fn.fromArrayBuffer(e,0):e instanceof DataView?(this.dataView=e,i&&(this._byteOffset+=i)):this.buffer=new Fn(e||0),this.position=0,this.endianness=s||1}getPosition(){return this.position}_realloc(e){if(!this._dynamicSize)return;const i=this._byteOffset+this.position+e;let s=this._buffer.byteLength;if(i<=s){i>this._byteLength&&(this._byteLength=i);return}for(s<1&&(s=1);i>s;)s*=2;const n=new Fn(s),a=new Uint8Array(this._buffer);new Uint8Array(n,0,a.length).set(a),this.buffer=n,this._byteLength=i}_trimAlloc(){if(this._byteLength===this._buffer.byteLength)return;const e=new Fn(this._byteLength),i=new Uint8Array(e),s=new Uint8Array(this._buffer,0,i.length);i.set(s),this.buffer=e}get byteLength(){return this._byteLength-this._byteOffset}get buffer(){return this._trimAlloc(),this._buffer}set buffer(e){this._buffer=e,this._dataView=new DataView(e,this._byteOffset),this._byteLength=e.byteLength}get byteOffset(){return this._byteOffset}set byteOffset(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}get dataView(){return this._dataView}set dataView(e){this._byteOffset=e.byteOffset,this._buffer=Fn.fromArrayBuffer(e.buffer,0),this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}seek(e){const i=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(i)||!isFinite(i)?0:i}isEof(){return this.position>=this._byteLength}#t(e){return Array.isArray(e)&&e.length===3&&e[0]==="[]"}mapUint8Array(e){this._realloc(e*1);const i=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,i}readInt32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Int32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt16Array(e,i){e=e===void 0?this.byteLength-this.position/2:e;const s=new Int16Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt8Array(e){e=e===void 0?this.byteLength-this.position:e;const i=new Int8Array(e);return Pe.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readUint32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Uint32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint16Array(e,i){e=e===void 0?this.byteLength-this.position/2:e;const s=new Uint16Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint8Array(e){e=e===void 0?this.byteLength-this.position:e;const i=new Uint8Array(e);return Pe.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readFloat64Array(e,i){e=e===void 0?this.byteLength-this.position/8:e;const s=new Float64Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readFloat32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Float32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt32(e){const i=this._dataView.getInt32(this.position,(e??this.endianness)===2);return this.position+=4,i}readInt16(e){const i=this._dataView.getInt16(this.position,(e??this.endianness)===2);return this.position+=2,i}readInt8(){const e=this._dataView.getInt8(this.position);return this.position+=1,e}readUint32(e){const i=this._dataView.getUint32(this.position,(e??this.endianness)===2);return this.position+=4,i}readUint16(e){const i=this._dataView.getUint16(this.position,(e??this.endianness)===2);return this.position+=2,i}readUint8(){const e=this._dataView.getUint8(this.position);return this.position+=1,e}readFloat32(e){const i=this._dataView.getFloat32(this.position,(e??this.endianness)===2);return this.position+=4,i}readFloat64(e){const i=this._dataView.getFloat64(this.position,(e??this.endianness)===2);return this.position+=8,i}static memcpy(e,i,s,n,a){const o=new Uint8Array(e,i,a),l=new Uint8Array(s,n,a);o.set(l)}static arrayToNative(e,i){return i===Pe.ENDIANNESS?e:this.flipArrayEndianness(e)}static nativeToEndian(e,i){return i&&Pe.ENDIANNESS===2?e:this.flipArrayEndianness(e)}static flipArrayEndianness(e){const i=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let s=0;s<e.byteLength;s+=e.BYTES_PER_ELEMENT)for(let n=s+e.BYTES_PER_ELEMENT-1,a=s;n>a;n--,a++){const o=i[a];i[a]=i[n],i[n]=o}return e}readString(e,i){return i===void 0||i==="ASCII"?Hp(this.mapUint8Array(e===void 0?this.byteLength-this.position:e)):new TextDecoder(i).decode(this.mapUint8Array(e))}readCString(e){let i=0;const s=this.byteLength-this.position,n=new Uint8Array(this._buffer,this._byteOffset+this.position),a=e!==void 0?Math.min(e,s):s;for(;i<a&&n[i]!==0;i++);const o=Hp(this.mapUint8Array(i));return e!==void 0?this.position+=a-i:i!==s&&(this.position+=1),o}readInt64(){return this.readInt32()*bu+this.readUint32()}readUint64(){return this.readUint32()*bu+this.readUint32()}readUint24(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()}save(e){const i=new Blob([this.buffer]);if(typeof window<"u"&&typeof document<"u")if(window.URL&&URL.createObjectURL){const s=window.URL.createObjectURL(i),n=document.createElement("a");document.body.appendChild(n),n.setAttribute("href",s),n.setAttribute("download",e),n.setAttribute("target","_self"),n.click(),window.URL.revokeObjectURL(s),document.body.removeChild(n)}else throw new Error("DataStream.save: Can't create object URL.");return i}get dynamicSize(){return this._dynamicSize}set dynamicSize(e){e||this._trimAlloc(),this._dynamicSize=e}shift(e){const i=new Fn(this._byteLength-e),s=new Uint8Array(i),n=new Uint8Array(this._buffer,e,s.length);s.set(n),this.buffer=i,this.position-=e}writeInt32Array(e,i){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeInt32(e[s],i)}writeInt16Array(e,i){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeInt16(e[s],i)}writeInt8Array(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(let i=0;i<e.length;i++)this.writeInt8(e[i])}writeUint32Array(e,i){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeUint32(e[s],i)}writeUint16Array(e,i){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeUint16(e[s],i)}writeUint8Array(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(let i=0;i<e.length;i++)this.writeUint8(e[i])}writeFloat64Array(e,i){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeFloat64(e[s],i)}writeFloat32Array(e,i){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeFloat32(e[s],i)}writeInt64(e,i){this._realloc(8),this._dataView.setBigInt64(this.position,BigInt(e),(i??this.endianness)===2),this.position+=8}writeInt32(e,i){this._realloc(4),this._dataView.setInt32(this.position,e,(i??this.endianness)===2),this.position+=4}writeInt16(e,i){this._realloc(2),this._dataView.setInt16(this.position,e,(i??this.endianness)===2),this.position+=2}writeInt8(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1}writeUint32(e,i){this._realloc(4),this._dataView.setUint32(this.position,e,(i??this.endianness)===2),this.position+=4}writeUint16(e,i){this._realloc(2),this._dataView.setUint16(this.position,e,(i??this.endianness)===2),this.position+=2}writeUint8(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1}writeFloat32(e,i){this._realloc(4),this._dataView.setFloat32(this.position,e,(i??this.endianness)===2),this.position+=4}writeFloat64(e,i){this._realloc(8),this._dataView.setFloat64(this.position,e,(i??this.endianness)===2),this.position+=8}writeUCS2String(e,i,s){s===void 0&&(s=e.length);let n;for(n=0;n<e.length&&n<s;n++)this.writeUint16(e.charCodeAt(n),i);for(;n<s;n++)this.writeUint16(0)}writeString(e,i,s){let n=0;if(i===void 0||i==="ASCII")if(s!==void 0){const a=Math.min(e.length,s);for(n=0;n<a;n++)this.writeUint8(e.charCodeAt(n));for(;n<s;n++)this.writeUint8(0)}else for(n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));else this.writeUint8Array(new TextEncoder(i).encode(e.substring(0,s)))}writeCString(e,i){let s=0;if(i!==void 0){const n=Math.min(e.length,i);for(s=0;s<n;s++)this.writeUint8(e.charCodeAt(s));for(;s<i;s++)this.writeUint8(0)}else{for(s=0;s<e.length;s++)this.writeUint8(e.charCodeAt(s));this.writeUint8(0)}}writeStruct(e,i){for(let s=0;s<e.length;s++){const[n,a]=e[s],o=i[n];this.writeType(a,o,i)}}writeType(e,i,s){if(typeof e=="function")return e(this,i);if(typeof e=="object"&&!(e instanceof Array))return e.set(this,i,s);let n,a="ASCII";const o=this.position;let l=e;if(typeof e=="string"&&/:/.test(e)){const c=e.split(":");l=c[0],n=parseInt(c[1])}if(typeof l=="string"&&/,/.test(l)){const c=l.split(",");l=c[0],a=c[1]}switch(l){case"uint8":this.writeUint8(i);break;case"int8":this.writeInt8(i);break;case"uint16":this.writeUint16(i,this.endianness);break;case"int16":this.writeInt16(i,this.endianness);break;case"uint32":this.writeUint32(i,this.endianness);break;case"int32":this.writeInt32(i,this.endianness);break;case"float32":this.writeFloat32(i,this.endianness);break;case"float64":this.writeFloat64(i,this.endianness);break;case"uint16be":this.writeUint16(i,1);break;case"int16be":this.writeInt16(i,1);break;case"uint32be":this.writeUint32(i,1);break;case"int32be":this.writeInt32(i,1);break;case"float32be":this.writeFloat32(i,1);break;case"float64be":this.writeFloat64(i,1);break;case"uint16le":this.writeUint16(i,2);break;case"int16le":this.writeInt16(i,2);break;case"uint32le":this.writeUint32(i,2);break;case"int32le":this.writeInt32(i,2);break;case"float32le":this.writeFloat32(i,2);break;case"float64le":this.writeFloat64(i,2);break;case"cstring":this.writeCString(i,n);break;case"string":this.writeString(i,a,n);break;case"u16string":this.writeUCS2String(i,this.endianness,n);break;case"u16stringle":this.writeUCS2String(i,2,n);break;case"u16stringbe":this.writeUCS2String(i,1,n);break;default:if(this.#t(l)){const[,c]=l;for(let u=0;u<i.length;u++)this.writeType(c,i[u]);break}else{this.writeStruct(l,i);break}}n&&(this.position=o,this._realloc(n),this.position=o+n)}writeUint64(e){const i=Math.floor(e/bu);this.writeUint32(i),this.writeUint32(e&4294967295)}writeUint24(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)}adjustUint32(e,i){const s=this.position;this.seek(e),this.writeUint32(i),this.seek(s)}readStruct(e){const i={},s=this.position;for(let n=0;n<e.length;n+=1){const a=e[n][1],o=this.readType(a,i);if(!o){this.failurePosition===0&&(this.failurePosition=this.position),this.position=s;return}i[e[n][0]]=o}return i}readUCS2String(e,i){return String.fromCharCode.apply(void 0,this.readUint16Array(e,i))}readType(e,i){if(typeof e=="function")return e(this,i);if(typeof e=="object"&&!(e instanceof Array))return e.get(this,i);if(e instanceof Array&&e.length!==3)return this.readStruct(e);let s,n,a="ASCII";const o=this.position;let l=e;if(typeof l=="string"&&/:/.test(l)){const c=l.split(":");l=c[0],n=parseInt(c[1])}if(typeof l=="string"&&/,/.test(l)){const c=l.split(",");l=c[0],a=c[1]}switch(l){case"uint8":s=this.readUint8();break;case"int8":s=this.readInt8();break;case"uint16":s=this.readUint16(this.endianness);break;case"int16":s=this.readInt16(this.endianness);break;case"uint32":s=this.readUint32(this.endianness);break;case"int32":s=this.readInt32(this.endianness);break;case"float32":s=this.readFloat32(this.endianness);break;case"float64":s=this.readFloat64(this.endianness);break;case"uint16be":s=this.readUint16(1);break;case"int16be":s=this.readInt16(1);break;case"uint32be":s=this.readUint32(1);break;case"int32be":s=this.readInt32(1);break;case"float32be":s=this.readFloat32(1);break;case"float64be":s=this.readFloat64(1);break;case"uint16le":s=this.readUint16(2);break;case"int16le":s=this.readInt16(2);break;case"uint32le":s=this.readUint32(2);break;case"int32le":s=this.readInt32(2);break;case"float32le":s=this.readFloat32(2);break;case"float64le":s=this.readFloat64(2);break;case"cstring":s=this.readCString(n);break;case"string":s=this.readString(n,a);break;case"u16string":s=this.readUCS2String(n,this.endianness);break;case"u16stringle":s=this.readUCS2String(n,2);break;case"u16stringbe":s=this.readUCS2String(n,1);break;default:if(this.#t(l)){const[,c,u]=l,d=typeof u=="function"?u(i,this,l):typeof u=="string"&&i[u]!==void 0?parseInt(i[u]):typeof u=="number"?u:u==="*"?void 0:parseInt(u);if(typeof c=="string"){const f=c.replace(/(le|be)$/,"");let p;switch(/le$/.test(c)?p=2:/be$/.test(c)&&(p=1),f){case"uint8":s=this.readUint8Array(d);break;case"uint16":s=this.readUint16Array(d,p);break;case"uint32":s=this.readUint32Array(d,p);break;case"int8":s=this.readInt8Array(d);break;case"int16":s=this.readInt16Array(d,p);break;case"int32":s=this.readInt32Array(d,p);break;case"float32":s=this.readFloat32Array(d,p);break;case"float64":s=this.readFloat64Array(d,p);break;case"cstring":case"utf16string":case"string":if(d){s=new Array(d);for(let v=0;v<d;v++)s[v]=this.readType(c,i)}else for(s=[];!this.isEof();){const v=this.readType(c,i);if(!v)break;s.push(v)}break}}else if(d){s=new Array(d);for(let f=0;f<d;f++){const p=this.readType(c,i);if(!p)return;s[f]=p}}else for(s=[];;){const f=this.position;try{const p=this.readType(c,i);if(!p){this.position=f;break}s.push(p)}catch{this.position=f;break}}break}}return n&&(this.position=o+n),s}mapInt32Array(e,i){this._realloc(e*4);const s=new Int32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}mapInt16Array(e,i){this._realloc(e*2);const s=new Int16Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*2,s}mapInt8Array(e,i){this._realloc(e*1);const s=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,s}mapUint32Array(e,i){this._realloc(e*4);const s=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}mapUint16Array(e,i){this._realloc(e*2);const s=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*2,s}mapFloat64Array(e,i){this._realloc(e*8);const s=new Float64Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*8,s}mapFloat32Array(e,i){this._realloc(e*4);const s=new Float32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}};function Hp(t){const e=[];for(let i=0;i<t.length;i++)e[i]=t[i];return String.fromCharCode.apply(void 0,e)}const cl=new Date,kl=4,Vp=3,jp=2,Gp=1;let wn=kl;const L={setLogLevel(t){t===this.debug?wn=Gp:t===this.info?wn=jp:t===this.warn?wn=Vp:(this.error,wn=kl)},debug(t,e){console.debug===void 0&&(console.debug=console.log),Gp>=wn&&console.debug("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},log(t,e){this.debug(t.msg)},info(t,e){jp>=wn&&console.info("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},warn(t,e){Vp>=wn&&console.warn("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},error(t,e,i){i?.onError?i.onError(t,e):kl>=wn&&console.error("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},getDurationString(t,e){let i;function s(c,u){const d=(""+c).split(".");for(;d[0].length<u;)d[0]="0"+d[0];return d.join(".")}t<0?(i=!0,t=-t):i=!1;let n=t/(e||1);const a=Math.floor(n/3600);n-=a*3600;const o=Math.floor(n/60);n-=o*60;let l=n*1e3;return n=Math.floor(n),l-=n*1e3,l=Math.floor(l),(i?"-":"")+a+":"+s(o,2)+":"+s(n,2)+"."+s(l,3)},printRanges(t){const e=t.length;if(e>0){let i="";for(let s=0;s<e;s++)s>0&&(i+=","),i+="["+L.getDurationString(t.start(s))+","+L.getDurationString(t.end(s))+"]";return i}else return"(empty)"}};function Uk(t,e){L.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength));const i=new Uint8Array(t.byteLength+e.byteLength);return i.set(new Uint8Array(t),0),i.set(new Uint8Array(e),t.byteLength),i.buffer}var Bl=class extends Hi{constructor(t){super(new ArrayBuffer,0),this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)}initialized(){if(this.bufferIndex>-1)return!0;if(this.buffers.length>0){const t=this.buffers[0];return t.fileStart===0?(this.buffer=t,this.bufferIndex=0,L.debug("MultiBufferStream","Stream ready for parsing"),!0):(L.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)}else return L.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1}reduceBuffer(t,e,i){const s=new Uint8Array(i);return s.set(new Uint8Array(t,e,i)),s.buffer.fileStart=t.fileStart+e,s.buffer.usedBytes=0,s.buffer}insertBuffer(t){let e=!0,i=0;for(;i<this.buffers.length;i++){const s=this.buffers[i];if(t.fileStart<=s.fileStart){if(t.fileStart===s.fileStart)if(t.byteLength>s.byteLength){this.buffers.splice(i,1),i--;continue}else L.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring");else t.fileStart+t.byteLength<=s.fileStart||(t=this.reduceBuffer(t,0,s.fileStart-t.fileStart)),L.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(i,0,t),i===0&&(this.buffer=t);e=!1;break}else if(t.fileStart<s.fileStart+s.byteLength){const n=s.fileStart+s.byteLength-t.fileStart,a=t.byteLength-n;if(a>0)t=this.reduceBuffer(t,n,a);else{e=!1;break}}}e&&(L.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),i===0&&(this.buffer=t))}logBufferLevel(t){const e=[];let i="",s,n=0,a=0;for(let l=0;l<this.buffers.length;l++){const c=this.buffers[l];l===0?(s={start:c.fileStart,end:c.fileStart+c.byteLength},e.push(s),i+="["+s.start+"-"):s.end===c.fileStart?s.end=c.fileStart+c.byteLength:(s={start:c.fileStart,end:c.fileStart+c.byteLength},i+=e[e.length-1].end-1+"], ["+s.start+"-",e.push(s)),n+=c.usedBytes,a+=c.byteLength}e.length>0&&(i+=s.end-1+"]");const o=t?L.info:L.debug;this.buffers.length===0?o("MultiBufferStream","No more buffer in memory"):o("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+n+"/"+a+" bytes), continuous ranges: "+i)}cleanBuffers(){for(let t=0;t<this.buffers.length;t++){const e=this.buffers[t];e.usedBytes===e.byteLength&&(L.debug("MultiBufferStream","Removing buffer #"+t),this.buffers.splice(t,1),t--)}}mergeNextBuffer(){if(this.bufferIndex+1<this.buffers.length){const t=this.buffers[this.bufferIndex+1];if(t.fileStart===this.buffer.fileStart+this.buffer.byteLength){const e=this.buffer.byteLength,i=this.buffer.usedBytes,s=this.buffer.fileStart;return this.buffers[this.bufferIndex]=Uk(this.buffer,t),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=i,this.buffer.fileStart=s,L.debug("ISOFile","Concatenating buffer for box parsing (length: "+e+"->"+this.buffer.byteLength+")"),!0}else return!1}else return!1}findPosition(t,e,i){let s=-1,n=t===!0?0:this.bufferIndex;for(;n<this.buffers.length;){const o=this.buffers[n];if(o&&o.fileStart<=e)s=n,i&&(o.fileStart+o.byteLength<=e?o.usedBytes=o.byteLength:o.usedBytes=e-o.fileStart,this.logBufferLevel());else break;n++}if(s===-1)return-1;const a=this.buffers[s];return a.fileStart+a.byteLength>=e?(L.debug("MultiBufferStream","Found position in existing buffer #"+s),s):-1}findEndContiguousBuf(t){const e=t!==void 0?t:this.bufferIndex;let i=this.buffers[e];if(this.buffers.length>e+1)for(let s=e+1;s<this.buffers.length;s++){const n=this.buffers[s];if(n.fileStart===i.fileStart+i.byteLength)i=n;else break}return i.fileStart+i.byteLength}getEndFilePositionAfter(t){const e=this.findPosition(!0,t,!1);return e!==-1?this.findEndContiguousBuf(e):t}addUsedBytes(t){this.buffer.usedBytes+=t,this.logBufferLevel()}setAllUsedBytes(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()}seek(t,e,i){const s=this.findPosition(e,t,i);return s!==-1?(this.buffer=this.buffers[s],this.bufferIndex=s,this.position=t-this.buffer.fileStart,L.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(L.debug("MultiBufferStream","Position "+t+" not found in buffered data"),!1)}getPosition(){return this.bufferIndex===-1||this.buffers[this.bufferIndex]===void 0?0:this.buffers[this.bufferIndex].fileStart+this.position}getLength(){return this.byteLength}getEndPosition(){return this.bufferIndex===-1||this.buffers[this.bufferIndex]===void 0?0:this.buffers[this.bufferIndex].fileStart+this.byteLength}getAbsoluteEndPosition(){if(this.buffers.length===0)return 0;const t=this.buffers[this.buffers.length-1];return t.fileStart+t.byteLength}},mt=class{static{this.registryId=Symbol.for("BoxIdentifier")}#t;get type(){return this.constructor.fourcc??this.#t}set type(t){this.#t=t}constructor(t=0){this.size=t}addBox(t){return this.boxes||(this.boxes=[]),this.boxes.push(t),this[t.type+"s"]?this[t.type+"s"].push(t):this[t.type]=t,t}set(t,e){return this[t]=e,this}addEntry(t,e){const i=e||"entries";return this[i]||(this[i]=[]),this[i].push(t),this}writeHeader(t,e){if(this.size+=8,(this.size>bi||this.original_size===1)&&(this.size+=8),this.type==="uuid"&&(this.size+=16),L.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),this.original_size===0?t.writeUint32(0):this.size>bi||this.original_size===1?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,void 0,4),this.type==="uuid"){const i=new Uint8Array(16);for(let s=0;s<16;s++)i[s]=parseInt(this.uuid.substring(s*2,s*2+2),16);t.writeUint8Array(i)}(this.size>bi||this.original_size===1)&&(this.sizePosition=t.getPosition(),t.writeUint64(this.size))}write(t){if(this.type==="mdat"){const e=this;if(e.stream){this.size=e.stream.getAbsoluteEndPosition(),this.writeHeader(t);for(const i of e.stream.buffers){const s=new Uint8Array(i);t.writeUint8Array(s)}}else e.data&&(this.size=e.data.length,this.writeHeader(t),t.writeUint8Array(e.data))}else this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data)}printHeader(t){this.size+=8,this.size>bi&&(this.size+=8),this.type==="uuid"&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)}print(t){this.printHeader(t)}parse(t){this.type!=="mdat"?this.data=t.readUint8Array(this.size-this.hdr_size):this.size===0?t.seek(t.getEndPosition()):t.seek(this.start+this.size)}parseDataAndRewind(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.seek(this.start+this.hdr_size)}parseLanguage(t){this.language=t.readUint16();const e=[];e[0]=this.language>>10&31,e[1]=this.language>>5&31,e[2]=this.language&31,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)}computeSize(t){const e=t||new Bl;this.write(e)}isEndOfBox(t){return t.getPosition()===this.start+this.size}},X=class extends mt{constructor(...t){super(...t),this.flags=0,this.version=0}writeHeader(t){this.size+=4,super.writeHeader(t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)}printHeader(t){this.size+=4,super.printHeader(t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)}parseDataAndRewind(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.seek(this.start+this.hdr_size)}parseFullHeader(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4}parse(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}},vi=class{static{this.registryId=Symbol.for("SampleGroupEntryIdentifier")}constructor(t){this.grouping_type=t}write(t){t.writeUint8Array(this.data)}parse(t){L.warn("BoxParser",`Unknown sample group type: '${this.grouping_type}'`),this.data=t.readUint8Array(this.description_length)}},Tk=class extends X{parse(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()}},Pk=class extends mt{constructor(t,e,i,s,n){super(e),this.box_name=i,this.hdr_size=s,this.start=n,this.type=t}parse(t){this.from_item_ID=t.readUint16();const e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint16()}}},Ak=class extends mt{constructor(t,e,i,s,n){super(e),this.box_name=i,this.hdr_size=s,this.start=n,this.type=t}parse(t){this.from_item_ID=t.readUint32();const e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint32()}}},Ik=class extends mt{constructor(t,e,i,s){super(e),this.hdr_size=i,this.start=s,this.type=t}parse(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)}write(t){this.size=this.track_ids.length*4,this.writeHeader(t),t.writeUint32Array(this.track_ids)}};const ad=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],Mk=["compatible_brands","matrix","opcolor","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"];function zk(t,e){if(t&&!e)return!1;let i;for(i in t)if(!ad.find(s=>s===i)){if(t[i]instanceof mt||e[i]instanceof mt)continue;if(typeof t[i]>"u"||typeof e[i]>"u")continue;if(typeof t[i]=="function"||typeof e[i]=="function")continue;if("subBoxNames"in t&&t.subBoxNames.indexOf(i.slice(0,4))>-1||"subBoxNames"in e&&e.subBoxNames.indexOf(i.slice(0,4))>-1)continue;if(i==="data"||i==="start"||i==="size"||i==="creation_time"||i==="modification_time")continue;if(Mk.find(s=>s===i))continue;if(t[i]!==e[i])return!1}return!0}function M_(t,e){if(!zk(t,e))return!1;for(let i=0;i<ad.length;i++){const s=ad[i];if(t[s]&&e[s]&&!M_(t[s],e[s]))return!1}return!0}function Gd(t){let e=t;for(;e;){if("registryId"in e)return e.registryId;e=Object.getPrototypeOf(e)}}const Ck=t=>{const e=Symbol.for("SampleGroupEntryIdentifier");return Gd(t)===e},$k=t=>{const e=Symbol.for("SampleEntryIdentifier");return Gd(t)===e},Ok=t=>{const e=Symbol.for("BoxIdentifier");return Gd(t)===e},Ji={uuid:{},sampleEntry:{},sampleGroupEntry:{},box:{}};function Fk(t){const e={uuid:{},sampleEntry:{},sampleGroupEntry:{},box:{}};for(const[i,s]of Object.entries(t)){if(Ck(s)){const n="grouping_type"in s?s.grouping_type:void 0;if(!n)throw new Error(`SampleGroupEntry class ${i} does not have a valid static grouping_type. Please ensure it is defined correctly.`);if(n in e.sampleGroupEntry)throw new Error(`SampleGroupEntry class ${i} has a grouping_type that is already registered. Please ensure it is unique.`);e.sampleGroupEntry[n]=s;continue}if($k(s)){const n="fourcc"in s?s.fourcc:void 0;if(!n)throw new Error(`SampleEntry class ${i} does not have a valid static fourcc. Please ensure it is defined correctly.`);if(n in e.sampleEntry)throw new Error(`SampleEntry class ${i} has a fourcc that is already registered. Please ensure it is unique.`);e.sampleEntry[n]=s;continue}if(Ok(s)){const n="fourcc"in s?s.fourcc:void 0,a="uuid"in s?s.uuid:void 0;if(n==="uuid"){if(!a)throw new Error(`Box class ${i} has a fourcc of 'uuid' but does not have a valid uuid. Please ensure it is defined correctly.`);if(a in e.uuid)throw new Error(`Box class ${i} has a uuid that is already registered. Please ensure it is unique.`);e.uuid[a]=s;continue}e.box[n]=s;continue}throw new Error(`Box class ${i} does not have a valid static fourcc, uuid, or grouping_type. Please ensure it is defined correctly.`)}return Ji.uuid={...e.uuid},Ji.sampleEntry={...e.sampleEntry},Ji.sampleGroupEntry={...e.sampleGroupEntry},Ji.box={...e.box},Ji}const Xl={};function Nk(t){return Object.entries(t).forEach(([e,i])=>Xl[e]=i),Xl}function Dk(t){return Ar(t)}function Ar(t){let e="";for(let i=0;i<16;i++){const s=t.readUint8().toString(16);e+=s.length===1?"0"+s:s}return e}function hn(t,e,i){let s,n;const a=t.getPosition();let o=0,l;if(t.getEndPosition()-a<8)return L.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:0};if(i&&i<8)return L.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:0};let c=t.readUint32();const u=t.readString(4);if(u.length!==4||!/^[\x20-\x7E]{4}$/.test(u))return L.error("BoxParser",`Invalid box type: '${u}'`),{code:-1,start:a,type:u};let d=u;if(L.debug("BoxParser","Found box of type '"+u+"' and size "+c+" at position "+a),o=8,u==="uuid"){if(t.getEndPosition()-t.getPosition()<16||i-o<16)return t.seek(a),L.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:0};l=Dk(t),o+=16,d=l}if(c===1){if(t.getEndPosition()-t.getPosition()<8||i&&i-o<8)return t.seek(a),L.warn("BoxParser",'Not enough data in stream to parse the extended size of the "'+u+'" box'),{code:0};n=c,c=t.readUint64(),o+=8}else if(c===0)if(i)c=i;else{if(u!=="mdat")return L.error("BoxParser","Unlimited box size not supported for type: '"+u+"'"),s=new mt(c),s.type=u,{code:1,box:s,size:s.size};c=t.getEndPosition()-a}if(c!==0&&c<o)return L.error("BoxParser","Box of type "+u+" has an invalid size "+c+" (too small to be a box)"),{code:0,type:u,size:c,hdr_size:o,start:a};if(c!==0&&i&&c>i)return L.error("BoxParser","Box of type '"+u+"' has a size "+c+" greater than its container size "+i),{code:0,type:u,size:c,hdr_size:o,start:a};if(c!==0&&a+c>t.getEndPosition())return t.seek(a),L.info("BoxParser","Not enough data in stream to parse the entire '"+u+"' box"),{code:0,type:u,size:c,hdr_size:o,start:a,original_size:n};if(e)return{code:1,type:u,size:c,hdr_size:o,start:a};u in Ji.box?s=new Ji.box[u](c):u!=="uuid"?(L.warn("BoxParser",`Unknown box type: '${u}'`),s=new mt(c),s.type=u,s.has_unparsed_data=!0):l in Ji.uuid?s=new Ji.uuid[l](c):(L.warn("BoxParser",`Unknown UUID box type: '${l}'`),s=new mt(c),s.type=u,s.uuid=l,s.has_unparsed_data=!0),s.original_size=n,s.hdr_size=o,s.start=a,s.write===mt.prototype.write&&s.type!=="mdat"&&(L.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t);const f=t.getPosition()-(s.start+s.size);return f<0?(L.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-f+" bytes), seeking forward"),t.seek(s.start+s.size)):f>0&&s.size!==0&&(L.error("BoxParser","Parsing of box '"+d+"' read "+f+" more bytes than the indicated box data size, seeking backwards"),t.seek(s.start+s.size)),{code:1,box:s,size:s.size}}var ke=class extends mt{write(t){if(this.size=0,this.writeHeader(t),this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e]&&(this.boxes[e].write(t),this.size+=this.boxes[e].size);L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}print(t){this.printHeader(t);for(let e=0;e<this.boxes.length;e++)if(this.boxes[e]){const i=t.indent;t.indent+=" ",this.boxes[e].print(t),t.indent=i}}parse(t){let e;for(;t.getPosition()<this.start+this.size;)if(e=hn(t,!1,this.size-(t.getPosition()-this.start)),e.code===1){const i=e.box;if(this.boxes||(this.boxes=[]),this.boxes.push(i),this.subBoxNames&&this.subBoxNames.indexOf(i.type)!==-1){const s=this.subBoxNames[this.subBoxNames.indexOf(i.type)]+"s";this[s]||(this[s]=[]),this[s].push(i)}else{const s=i.type!=="uuid"?i.type:i.uuid;this[s]?L.warn("ContainerBox",`Box of type ${s} already exists in container box ${this.type}.`):this[s]=i}}else return}},zn=class extends ke{static{this.registryId=Symbol.for("SampleEntryIdentifier")}constructor(t,e,i){super(t),this.hdr_size=e,this.start=i}isVideo(){return!1}isAudio(){return!1}isSubtitle(){return!1}isMetadata(){return!1}isHint(){return!1}getCodec(){return this.type.replace(".","")}getWidth(){return""}getHeight(){return""}getChannelCount(){return""}getSampleRate(){return""}getSampleSize(){return""}parseHeader(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8}parse(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}parseDataAndRewind(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.seek(this.start+this.hdr_size)}parseFooter(t){super.parse(t)}writeHeader(t){this.size=8,super.writeHeader(t),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint16(this.data_reference_index)}writeFooter(t){if(this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e].write(t),this.size+=this.boxes[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}write(t){this.writeHeader(t),t.writeUint8Array(this.data),this.size+=this.data.length,L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},qp=class extends zn{},fa=class extends zn{isMetadata(){return!0}},Ir=class extends zn{isSubtitle(){return!0}},Rk=class extends zn{},Ye=class extends zn{parse(t){this.parseHeader(t),t.readUint16(),t.readUint16(),t.readUint32Array(3),this.width=t.readUint16(),this.height=t.readUint16(),this.horizresolution=t.readUint32(),this.vertresolution=t.readUint32(),t.readUint32(),this.frame_count=t.readUint16();const e=Math.min(31,t.readUint8());this.compressorname=t.readString(e),e<31&&t.readString(31-e),this.depth=t.readUint16(),t.readUint16(),this.parseFooter(t)}isVideo(){return!0}getWidth(){return this.width}getHeight(){return this.height}write(t){this.writeHeader(t),this.size+=70,t.writeUint16(0),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.width),t.writeUint16(this.height),t.writeUint32(this.horizresolution),t.writeUint32(this.vertresolution),t.writeUint32(0),t.writeUint16(this.frame_count),t.writeUint8(Math.min(31,this.compressorname.length)),t.writeString(this.compressorname,void 0,31),t.writeUint16(this.depth),t.writeInt16(-1),this.writeFooter(t)}},rs=class extends zn{parse(t){this.parseHeader(t),this.version=t.readUint16(),t.readUint16(),t.readUint32(),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,t.isofile?.ftyp?.major_brand.includes("qt")&&(this.version===1?this.extensions=t.readUint8Array(16):this.version===2&&(this.extensions=t.readUint8Array(36))),this.parseFooter(t)}isAudio(){return!0}getChannelCount(){return this.channel_count}getSampleRate(){return this.samplerate}getSampleSize(){return this.samplesize}write(t){this.writeHeader(t),this.size+=20,t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.channel_count),t.writeUint16(this.samplesize),t.writeUint16(0),t.writeUint16(0),t.writeUint32(this.samplerate<<16),this.writeFooter(t)}},qd=class extends zn{parse(t){this.parseHeader(t),this.parseFooter(t)}write(t){this.writeHeader(t),this.writeFooter(t)}},Wp=class extends Array{toString(){let t="<table class='inner-table'>";t+="<thead><tr><th>length</th><th>nalu_data</th></tr></thead>",t+="<tbody>";for(let e=0;e<this.length;e++){const i=this[e];t+="<tr>",t+="<td>"+i.length+"</td>",t+="<td>",t+=i.data.reduce(function(s,n){return s+n.toString(16).padStart(2,"0")},"0x"),t+="</td></tr>"}return t+="</tbody></table>",t}},z_=class extends mt{constructor(...t){super(...t),this.box_name="AVCConfigurationBox"}static{this.fourcc="avcC"}parse(t){this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=t.readUint8()&3,this.nb_SPS_nalus=t.readUint8()&31;let e=this.size-this.hdr_size-6;this.SPS=new Wp;for(let i=0;i<this.nb_SPS_nalus;i++){const s=t.readUint16();this.SPS.push({length:s,data:t.readUint8Array(s)}),e-=2+s}this.nb_PPS_nalus=t.readUint8(),e--,this.PPS=new Wp;for(let i=0;i<this.nb_PPS_nalus;i++){const s=t.readUint16();this.PPS.push({length:s,data:t.readUint8Array(s)}),e-=2+s}e>0&&(this.ext=t.readUint8Array(e))}write(t){this.size=7;for(let e=0;e<this.SPS.length;e++)this.size+=2+this.SPS[e].length;for(let e=0;e<this.PPS.length;e++)this.size+=2+this.PPS[e].length;this.ext&&(this.size+=this.ext.length),this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8(this.AVCProfileIndication),t.writeUint8(this.profile_compatibility),t.writeUint8(this.AVCLevelIndication),t.writeUint8(this.lengthSizeMinusOne+252),t.writeUint8(this.SPS.length+224);for(let e=0;e<this.SPS.length;e++)t.writeUint16(this.SPS[e].length),t.writeUint8Array(this.SPS[e].data);t.writeUint8(this.PPS.length);for(let e=0;e<this.PPS.length;e++)t.writeUint16(this.PPS[e].length),t.writeUint8Array(this.PPS[e].data);this.ext&&t.writeUint8Array(this.ext)}},El=class extends mt{constructor(...t){super(...t),this.box_name="MediaDataBox"}static{this.fourcc="mdat"}},Lk=class extends mt{constructor(...t){super(...t),this.box_name="ItemDataBox"}static{this.fourcc="idat"}},Hk=class extends mt{constructor(...t){super(...t),this.box_name="FreeSpaceBox"}static{this.fourcc="free"}},Vk=class extends mt{constructor(...t){super(...t),this.box_name="FreeSpaceBox"}static{this.fourcc="skip"}},C_=class extends X{constructor(...t){super(...t),this.box_name="HintMediaHeaderBox"}static{this.fourcc="hmhd"}},Ul=class extends X{constructor(...t){super(...t),this.box_name="NullMediaHeaderBox"}static{this.fourcc="nmhd"}},jk=class extends X{constructor(...t){super(...t),this.box_name="ObjectDescriptorBox"}static{this.fourcc="iods"}},Gk=class extends X{constructor(...t){super(...t),this.box_name="XMLBox"}static{this.fourcc="xml "}},qk=class extends X{constructor(...t){super(...t),this.box_name="BinaryXMLBox"}static{this.fourcc="bxml"}},Wk=class extends X{constructor(...t){super(...t),this.box_name="ItemProtectionBox",this.sinfs=[]}static{this.fourcc="ipro"}get protections(){return this.sinfs}},Tl=class extends ke{constructor(...t){super(...t),this.box_name="MovieBox",this.traks=[],this.psshs=[],this.subBoxNames=["trak","pssh"]}static{this.fourcc="moov"}},$_=class extends ke{constructor(...t){super(...t),this.box_name="TrackBox",this.samples=[]}static{this.fourcc="trak"}},Yk=class extends ke{constructor(...t){super(...t),this.box_name="EditBox"}static{this.fourcc="edts"}},O_=class extends ke{constructor(...t){super(...t),this.box_name="MediaBox"}static{this.fourcc="mdia"}},F_=class extends ke{constructor(...t){super(...t),this.box_name="MediaInformationBox"}static{this.fourcc="minf"}},N_=class extends ke{constructor(...t){super(...t),this.box_name="DataInformationBox"}static{this.fourcc="dinf"}},D_=class extends ke{constructor(...t){super(...t),this.box_name="SampleTableBox",this.sgpds=[],this.sbgps=[],this.subBoxNames=["sgpd","sbgp"]}static{this.fourcc="stbl"}},od=class extends ke{constructor(...t){super(...t),this.box_name="MovieExtendsBox",this.trexs=[],this.subBoxNames=["trex"]}static{this.fourcc="mvex"}},R_=class extends ke{constructor(...t){super(...t),this.box_name="MovieFragmentBox",this.trafs=[],this.subBoxNames=["traf"]}static{this.fourcc="moof"}},L_=class extends ke{constructor(...t){super(...t),this.box_name="TrackFragmentBox",this.truns=[],this.sgpds=[],this.sbgps=[],this.subBoxNames=["trun","sgpd","sbgp"]}static{this.fourcc="traf"}},Kk=class extends ke{constructor(...t){super(...t),this.box_name="VTTCueBox"}static{this.fourcc="vttc"}},Xk=class extends ke{constructor(...t){super(...t),this.box_name="MovieFragmentRandomAccessBox",this.tfras=[],this.subBoxNames=["tfra"]}static{this.fourcc="mfra"}},Jk=class extends ke{constructor(...t){super(...t),this.box_name="AdditionalMetadataContainerBox"}static{this.fourcc="meco"}},Zk=class extends ke{constructor(...t){super(...t),this.box_name="trackhintinformation",this.subBoxNames=["sdp ","rtp "]}static{this.fourcc="hnti"}},Qk=class extends ke{constructor(...t){super(...t),this.box_name="hintstatisticsbox",this.maxrs=[],this.subBoxNames=["maxr"]}static{this.fourcc="hinf"}},t4=class extends ke{constructor(...t){super(...t),this.box_name="SubTrackBox"}static{this.fourcc="strk"}},e4=class extends ke{constructor(...t){super(...t),this.box_name="SubTrackDefinitionBox"}static{this.fourcc="strd"}},i4=class extends ke{constructor(...t){super(...t),this.box_name="ProtectionSchemeInfoBox"}static{this.fourcc="sinf"}},s4=class extends ke{constructor(...t){super(...t),this.box_name="RestrictedSchemeInfoBox"}static{this.fourcc="rinf"}},n4=class extends ke{constructor(...t){super(...t),this.box_name="SchemeInformationBox"}static{this.fourcc="schi"}},r4=class extends ke{constructor(...t){super(...t),this.box_name="TrackGroupBox"}static{this.fourcc="trgr"}},a4=class extends ke{constructor(...t){super(...t),this.box_name="UserDataBox",this.kinds=[],this.strks=[],this.subBoxNames=["kind","strk"]}static{this.fourcc="udta"}},o4=class extends ke{constructor(...t){super(...t),this.box_name="ItemPropertiesBox",this.ipmas=[],this.subBoxNames=["ipma"]}static{this.fourcc="iprp"}},l4=class extends ke{constructor(...t){super(...t),this.box_name="ItemPropertyContainerBox",this.hvcCs=[],this.ispes=[],this.claps=[],this.irots=[],this.subBoxNames=["hvcC","ispe","clap","irot"]}static{this.fourcc="ipco"}},c4=class extends ke{constructor(...t){super(...t),this.box_name="GroupsListBox"}static{this.fourcc="grpl"}},u4=class extends ke{constructor(...t){super(...t),this.box_name="J2KHeaderInfoBox"}static{this.fourcc="j2kH"}},d4=class extends ke{constructor(...t){super(...t),this.box_name="ExtendedTypeBox",this.tycos=[],this.subBoxNames=["tyco"]}static{this.fourcc="etyp"}},f4=class extends ke{constructor(...t){super(...t),this.box_name="ProjectedOmniVideoBox",this.subBoxNames=["prfr"]}static{this.fourcc="povd"}},H_=class extends X{constructor(...t){super(...t),this.box_name="DataReferenceBox"}static{this.fourcc="dref"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){const s=hn(t,!1,this.size-(t.getPosition()-this.start));if(s.code===1){const n=s.box;this.entries.push(n)}else return}}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},V_=class extends X{constructor(...t){super(...t),this.box_name="ExtendedLanguageBox"}static{this.fourcc="elng"}parse(t){this.parseFullHeader(t),this.extended_language=t.readString(this.size-this.hdr_size)}write(t){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(t),t.writeString(this.extended_language)}},j_=class extends mt{constructor(...t){super(...t),this.box_name="FileTypeBox"}static{this.fourcc="ftyp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32();const i=String.fromCharCode(this.minor_version>>24,this.minor_version>>16&255,this.minor_version>>8&255,this.minor_version&255);i.match("[a-zA-Z0-9]{4}")&&(this.minor_version=i),e-=8,this.compatible_brands=[];let s=0;for(;e>=4;)this.compatible_brands[s]=t.readString(4),e-=4,s++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),typeof this.minor_version=="number"?t.writeUint32(this.minor_version):t.writeString(this.minor_version,void 0,4);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},G_=class extends X{constructor(...t){super(...t),this.box_name="HandlerBox"}static{this.fourcc="hdlr"}parse(t){if(this.parseFullHeader(t),this.version===0&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),!this.isEndOfBox(t))){const e=this.start+this.size-t.getPosition();this.name=t.readCString();const i=this.start+this.size-1;t.seek(i),t.readUint8()!==0&&e>1&&(L.info("BoxParser","Warning: hdlr name is not null-terminated, possibly length-prefixed string. Trimming first byte."),this.name=this.name.slice(1))}}write(t){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(t),t.writeUint32(0),t.writeString(this.handler,void 0,4),t.writeUint32Array([0,0,0]),t.writeCString(this.name)}},q_=class extends mt{constructor(...t){super(...t),this.box_name="HEVCConfigurationBox"}static{this.fourcc="hvcC"}parse(t){this.configurationVersion=t.readUint8();let e=t.readUint8();this.general_profile_space=e>>6,this.general_tier_flag=(e&32)>>5,this.general_profile_idc=e&31,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3,this.chroma_format_idc=t.readUint8()&3,this.bit_depth_luma_minus8=t.readUint8()&7,this.bit_depth_chroma_minus8=t.readUint8()&7,this.avgFrameRate=t.readUint16(),e=t.readUint8(),this.constantFrameRate=e>>6,this.numTemporalLayers=(e&13)>>3,this.temporalIdNested=(e&4)>>2,this.lengthSizeMinusOne=e&3,this.nalu_arrays=[];const i=t.readUint8();for(let s=0;s<i;s++){const n=[];this.nalu_arrays.push(n),e=t.readUint8(),n.completeness=(e&128)>>7,n.nalu_type=e&63;const a=t.readUint16();for(let o=0;o<a;o++){const l=t.readUint16();n.push({data:t.readUint8Array(l)})}}}write(t){this.size=23;for(let e=0;e<this.nalu_arrays.length;e++){this.size+=3;for(let i=0;i<this.nalu_arrays[e].length;i++)this.size+=2+this.nalu_arrays[e][i].data.length}this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),t.writeUint32(this.general_profile_compatibility),t.writeUint8Array(this.general_constraint_indicator),t.writeUint8(this.general_level_idc),t.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),t.writeUint8(this.parallelismType+252),t.writeUint8(this.chroma_format_idc+252),t.writeUint8(this.bit_depth_luma_minus8+248),t.writeUint8(this.bit_depth_chroma_minus8+248),t.writeUint16(this.avgFrameRate),t.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),t.writeUint8(this.nalu_arrays.length);for(let e=0;e<this.nalu_arrays.length;e++){t.writeUint8((this.nalu_arrays[e].completeness<<7)+this.nalu_arrays[e].nalu_type),t.writeUint16(this.nalu_arrays[e].length);for(let i=0;i<this.nalu_arrays[e].length;i++)t.writeUint16(this.nalu_arrays[e][i].data.length),t.writeUint8Array(this.nalu_arrays[e][i].data)}}},W_=class extends X{constructor(...t){super(...t),this.box_name="MediaHeaderBox"}static{this.fourcc="mdhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.parseLanguage(t),t.readUint16()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=20,this.size+=e?12:0,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint16(this.language),t.writeUint16(0)}},Y_=class extends X{constructor(...t){super(...t),this.box_name="MovieExtendsHeaderBox"}static{this.fourcc="mehd"}parse(t){this.parseFullHeader(t),this.flags&1&&(L.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),this.version===1?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}write(t){const e=this.fragment_duration>bi||this.version===1;this.version=e?1:0,this.size=4,this.size+=e?4:0,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.fragment_duration):t.writeUint32(this.fragment_duration)}},h4=class extends X{constructor(...t){super(...t),this.box_name="ItemInfoEntry"}static{this.fourcc="infe"}parse(t){if(this.parseFullHeader(t),(this.version===0||this.version===1)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.isEndOfBox(t)||(this.content_encoding=t.readCString())),this.version===1){this.extension_type=t.readString(4),L.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=t.readUint16():this.version===3&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),this.item_type==="mime"?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):this.item_type==="uri "&&(this.item_uri_type=t.readCString()))}},p4=class extends X{constructor(...t){super(...t),this.box_name="ItemInfoBox"}static{this.fourcc="iinf"}parse(t){this.parseFullHeader(t),this.version===0?this.entry_count=t.readUint16():this.entry_count=t.readUint32(),this.item_infos=[];for(let e=0;e<this.entry_count;e++){const i=hn(t,!1,this.size-(t.getPosition()-this.start));if(i.code===1){const s=i.box;s.type==="infe"?this.item_infos[e]=s:L.error("BoxParser","Expected 'infe' box, got "+i.box.type,t.isofile)}else return}}},m4=class extends X{constructor(...t){super(...t),this.box_name="ItemLocationBox"}static{this.fourcc="iloc"}parse(t){this.parseFullHeader(t);let e;e=t.readUint8(),this.offset_size=e>>4&15,this.length_size=e&15,e=t.readUint8(),this.base_offset_size=e>>4&15,this.version===1||this.version===2?this.index_size=e&15:this.index_size=0,this.items=[];let i=0;if(this.version<2)i=t.readUint16();else if(this.version===2)i=t.readUint32();else throw new Error("version of iloc box not supported");for(let s=0;s<i;s++){let n=0,a=0,o=0;if(this.version<2)n=t.readUint16();else if(this.version===2)n=t.readUint32();else throw new Error("version of iloc box not supported");this.version===1||this.version===2?a=t.readUint16()&15:a=0;const l=t.readUint16();switch(this.base_offset_size){case 0:o=0;break;case 4:o=t.readUint32();break;case 8:o=t.readUint64();break;default:throw new Error("Error reading base offset size")}const c=[],u=t.readUint16();for(let d=0;d<u;d++){let f=0,p=0,v=0;if(this.version===1||this.version===2)switch(this.index_size){case 0:f=0;break;case 4:f=t.readUint32();break;case 8:f=t.readUint64();break;default:throw new Error("Error reading extent index")}switch(this.offset_size){case 0:p=0;break;case 4:p=t.readUint32();break;case 8:p=t.readUint64();break;default:throw new Error("Error reading extent index")}switch(this.length_size){case 0:v=0;break;case 4:v=t.readUint32();break;case 8:v=t.readUint64();break;default:throw new Error("Error reading extent index")}c.push({extent_index:f,extent_length:v,extent_offset:p})}this.items.push({base_offset:o,construction_method:a,item_ID:n,data_reference_index:l,extents:c})}}};const v4={auxl:"Auxiliary image item",base:"Pre-derived image item base",cdsc:"Item describes referenced item",dimg:"Derived image item",dpnd:"Item coding dependency",eroi:"Region",evir:"EVC slice",exbl:"Scalable image item","fdl ":"File delivery",font:"Font item",iloc:"Item data location",mask:"Region mask",mint:"Data integrity",pred:"Predictively coded item",prem:"Pre-multiplied item",tbas:"HEVC tile track base item",text:"Text item",thmb:"Thumbnail image item"};var _4=class K_ extends X{constructor(...e){super(...e),this.box_name="ItemReferenceBox",this.references=[]}static{this.fourcc="iref"}static{this.allowed_types=["auxl","base","cdsc","dimg","dpnd","eroi","evir","exbl","fdl ","font","iloc","mask","mint","pred","prem","tbas","text","thmb"]}parse(e){for(this.parseFullHeader(e),this.references=[];e.getPosition()<this.start+this.size;){const i=hn(e,!0,this.size-(e.getPosition()-this.start));if(i.code===1){let s="Unknown item reference";K_.allowed_types.includes(i.type)?s=v4[i.type]:L.warn("BoxParser",`Unknown item reference type: '${i.type}'`);const n=this.version===0?new Pk(i.type,i.size,s,i.hdr_size,i.start):new Ak(i.type,i.size,s,i.hdr_size,i.start);n.write===mt.prototype.write&&n.type!=="mdat"&&(L.warn("BoxParser",n.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),n.parseDataAndRewind(e)),n.parse(e),this.references.push(n)}else return}}},g4=class extends X{constructor(...t){super(...t),this.box_name="PrimaryItemBox"}static{this.fourcc="pitm"}parse(t){this.parseFullHeader(t),this.version===0?this.item_id=t.readUint16():this.item_id=t.readUint32()}},y4=class extends X{constructor(...t){super(...t),this.box_name="MetaBox",this.isQT=!1}static{this.fourcc="meta"}parse(t){const e=t.getPosition();if(this.size>8){switch(t.readUint32(),t.readString(4)){case"hdlr":case"mhdr":case"keys":case"ilst":case"ctry":case"lang":this.isQT=!0;break}t.seek(e)}this.isQT||this.parseFullHeader(t),ke.prototype.parse.call(this,t)}},X_=class extends X{constructor(...t){super(...t),this.box_name="MovieFragmentHeaderBox"}static{this.fourcc="mfhd"}parse(t){this.parseFullHeader(t),this.sequence_number=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.sequence_number)}},J_=class extends X{constructor(...t){super(...t),this.box_name="MovieHeaderBox"}static{this.fourcc="mvhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.rate=t.readUint32(),this.volume=t.readUint16()>>8,t.readUint16(),t.readUint32Array(2),this.matrix=t.readInt32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=96,this.size+=e?12:0,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint32(this.rate),t.writeUint16(this.volume<<8),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeInt32Array(this.matrix),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(this.next_track_id)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"timescale: "+this.timescale),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"rate: "+this.rate),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"next_track_id: "+this.next_track_id)}},b4=class extends fa{static{this.fourcc="mett"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},x4=class extends fa{static{this.fourcc="metx"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.parseFooter(t)}},w4=class extends mt{constructor(...t){super(...t),this.box_name="AV1CodecConfigurationBox"}static{this.fourcc="av1C"}parse(t){let e=t.readUint8();if((e>>7&1)!==1){L.error("BoxParser","av1C marker problem",t.isofile);return}if(this.version=e&127,this.version!==1){L.error("BoxParser","av1C version "+this.version+" not supported",t.isofile);return}if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=e&31,e=t.readUint8(),this.seq_tier_0=e>>7&1,this.high_bitdepth=e>>6&1,this.twelve_bit=e>>5&1,this.monochrome=e>>4&1,this.chroma_subsampling_x=e>>3&1,this.chroma_subsampling_y=e>>2&1,this.chroma_sample_position=e&3,e=t.readUint8(),this.reserved_1=e>>5&7,this.reserved_1!==0){L.error("BoxParser","av1C reserved_1 parsing problem",t.isofile);return}if(this.initial_presentation_delay_present=e>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=e&15;else if(this.reserved_2=e&15,this.reserved_2!==0){L.error("BoxParser","av1C reserved_2 parsing problem",t.isofile);return}const i=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(i)}},S4=class extends X{constructor(...t){super(...t),this.box_name="ElementaryStreamDescriptorBox"}static{this.fourcc="esds"}parse(t){this.parseFullHeader(t);const e=t.readUint8Array(this.size-this.hdr_size);if("MPEG4DescriptorParser"in Xl){const i=new Xl.MPEG4DescriptorParser;this.esd=i.parseOneDescriptor(new Hi(e.buffer,0))}}},k4=class extends ke{constructor(...t){super(...t),this.box_name="siDecompressionParamBox"}static{this.fourcc="wave"}},B4=class extends mt{constructor(...t){super(...t),this.box_name="LCEVCConfigurationBox"}static{this.fourcc="lvcC"}parse(t){if(this.configurationVersion=t.readUint8(),this.configurationVersion!==1){L.error("BoxParser","lvcC version "+this.configurationVersion+" not supported",t.isofile);return}this.LCEVCProfileIndication=t.readUint8(),this.LCEVCLevelIndication=t.readUint8();let e=t.readUint8();this.chroma_format_idc=e>>6&3,this.bit_depth_luma_minus8=e>>3&7,this.bit_depth_chroma_minus8=e&7,e=t.readUint8(),this.lengthSizeMinusOne=e>>6&3;let i=e&63;if(i!==63){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}if(this.pic_width_in_luma_samples=t.readUint32(),this.pic_height_in_luma_samples=t.readUint32(),e=t.readUint8(),this.sc_in_stream=e>>7&1,this.gc_in_stream=e>>6&1,this.ai_in_stream=e>>5&1,i=e&31,i!==31){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}this.nalu_arrays=[];const s=t.readUint8();for(let n=0;n<s;n++){const a=[];if(this.nalu_arrays.push(a),e=t.readUint8(),i=e>>6&3,i!==0){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}a.nalu_type=e&63;const o=t.readUint16();for(let l=0;l<o;l++){const c=t.readUint16();a.push({data:t.readUint8Array(c)})}}}},E4=class extends X{constructor(...t){super(...t),this.box_name="VPCodecConfigurationRecord"}static{this.fourcc="vpcC"}parse(t){if(this.parseFullHeader(t),this.version===1){this.profile=t.readUint8(),this.level=t.readUint8();const e=t.readUint8();this.bitDepth=e>>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=e&1,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8(),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}else{this.profile=t.readUint8(),this.level=t.readUint8();let e=t.readUint8();this.bitDepth=e>>4&15,this.colorSpace=e&15,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=e&1,this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}}},U4=class extends X{constructor(...t){super(...t),this.box_name="VvcConfigurationBox"}static{this.fourcc="vvcC"}parse(t){this.parseFullHeader(t);const e={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(a){this.held_bits=a.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(a){this.held_bits=a.readUint16(),this.num_held_bits=16},extract_bits:function(a){const o=this.held_bits>>this.num_held_bits-a&(1<<a)-1;return this.num_held_bits-=a,o}};if(e.stream_read_1_bytes(t),e.extract_bits(5),this.lengthSizeMinusOne=e.extract_bits(2),this.ptl_present_flag=e.extract_bits(1),this.ptl_present_flag){if(e.stream_read_2_bytes(t),this.ols_idx=e.extract_bits(9),this.num_sublayers=e.extract_bits(3),this.constant_frame_rate=e.extract_bits(2),this.chroma_format_idc=e.extract_bits(2),e.stream_read_1_bytes(t),this.bit_depth_minus8=e.extract_bits(3),e.extract_bits(5),e.stream_read_2_bytes(t),e.extract_bits(2),this.num_bytes_constraint_info=e.extract_bits(6),this.general_profile_idc=e.extract_bits(7),this.general_tier_flag=e.extract_bits(1),this.general_level_idc=t.readUint8(),e.stream_read_1_bytes(t),this.ptl_frame_only_constraint_flag=e.extract_bits(1),this.ptl_multilayer_enabled_flag=e.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(let a=0;a<this.num_bytes_constraint_info-1;a++){const o=e.extract_bits(6);e.stream_read_1_bytes(t);const l=e.extract_bits(2);this.general_constraint_info[a]=o<<2|l}this.general_constraint_info[this.num_bytes_constraint_info-1]=e.extract_bits(6)}else e.extract_bits(6);if(this.num_sublayers>1){e.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0;for(let a=this.num_sublayers-2;a>=0;--a){const o=e.extract_bits(1);this.ptl_sublayer_present_mask|=o<<a}for(let a=this.num_sublayers;a<=8&&this.num_sublayers>1;++a)e.extract_bits(1);this.sublayer_level_idc=[];for(let a=this.num_sublayers-2;a>=0;--a)this.ptl_sublayer_present_mask&1<<a&&(this.sublayer_level_idc[a]=t.readUint8())}if(this.ptl_num_sub_profiles=t.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(let a=0;a<this.ptl_num_sub_profiles;a++)this.general_sub_profile_idc.push(t.readUint32());this.max_picture_width=t.readUint16(),this.max_picture_height=t.readUint16(),this.avg_frame_rate=t.readUint16()}const i=12,s=13;this.nalu_arrays=[];const n=t.readUint8();for(let a=0;a<n;a++){const o=[];this.nalu_arrays.push(o),e.stream_read_1_bytes(t),o.completeness=e.extract_bits(1),e.extract_bits(2),o.nalu_type=e.extract_bits(5);let l=1;o.nalu_type!==s&&o.nalu_type!==i&&(l=t.readUint16());for(let c=0;c<l;c++){const u=t.readUint16();o.push({data:t.readUint8Array(u),length:u})}}}},T4=class extends mt{constructor(...t){super(...t),this.box_name="ColourInformationBox"}static{this.fourcc="colr"}parse(t){if(this.colour_type=t.readString(4),this.colour_type==="nclx"){this.colour_primaries=t.readUint16(),this.transfer_characteristics=t.readUint16(),this.matrix_coefficients=t.readUint16();const e=t.readUint8();this.full_range_flag=e>>7}else this.colour_type==="rICC"?this.ICC_profile=t.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=t.readUint8Array(this.size-4))}};function ea(t,e){let i=Number(t).toString(16);for(e=typeof e>"u"?2:e;i.length<e;)i="0"+i;return i}var fc=class extends Ye{getCodec(){const t=super.getCodec();return this.avcC?`${t}.${ea(this.avcC.AVCProfileIndication)}${ea(this.avcC.profile_compatibility)}${ea(this.avcC.AVCLevelIndication)}`:t}},P4=class extends fc{constructor(...t){super(...t),this.box_name="AVCSampleEntry"}static{this.fourcc="avc1"}},A4=class extends fc{constructor(...t){super(...t),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc2"}},I4=class extends fc{constructor(...t){super(...t),this.box_name="AVCSampleEntry"}static{this.fourcc="avc3"}},M4=class extends fc{constructor(...t){super(...t),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc4"}},z4=class extends Ye{constructor(...t){super(...t),this.box_name="AV1SampleEntry"}static{this.fourcc="av01"}getCodec(){const t=super.getCodec(),e=this.av1C.seq_level_idx_0,i=e<10?"0"+e:e;let s;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?s=this.av1C.twelve_bit===1?"12":"10":this.av1C.seq_profile<=2&&(s=this.av1C.high_bitdepth===1?"10":"08"),t+"."+this.av1C.seq_profile+"."+i+(this.av1C.seq_tier_0?"H":"M")+"."+s}},C4=class extends Ye{static{this.fourcc="dav1"}},hc=class extends Ye{getCodec(){let t=super.getCodec();if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C";break}t+=this.hvcC.general_profile_idc,t+=".";let e=this.hvcC.general_profile_compatibility,i=0;for(let a=0;a<32&&(i|=e&1,a!==31);a++)i<<=1,e>>=1;t+=ea(i,0),t+=".",this.hvcC.general_tier_flag===0?t+="L":t+="H",t+=this.hvcC.general_level_idc;let s=!1,n="";for(let a=5;a>=0;a--)(this.hvcC.general_constraint_indicator[a]||s)&&(n="."+ea(this.hvcC.general_constraint_indicator[a],0)+n,s=!0);t+=n}return t}},$4=class extends hc{constructor(...t){super(...t),this.box_name="HEVCSampleEntry"}static{this.fourcc="hvc1"}},O4=class extends hc{static{this.fourcc="hvc2"}},F4=class extends hc{constructor(...t){super(...t),this.box_name="HEVCSampleEntry",this.colrs=[],this.subBoxNames=["colr"]}static{this.fourcc="hev1"}},N4=class extends hc{static{this.fourcc="hev2"}},D4=class extends Ye{constructor(...t){super(...t),this.box_name="HEVCTileSampleSampleEntry"}static{this.fourcc="hvt1"}},R4=class extends Ye{constructor(...t){super(...t),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhe1"}},L4=class extends Ye{constructor(...t){super(...t),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhv1"}},H4=class extends Ye{constructor(...t){super(...t),this.box_name="LCEVCSampleEntry"}static{this.fourcc="lvc1"}getCodec(){let t=super.getCodec();return this.lvcC&&(t+=".",t+="vprf",t+=this.lvcC.LCEVCProfileIndication,t+=".",t+="vlev",t+=this.lvcC.LCEVCLevelIndication),t}},V4=class extends Ye{static{this.fourcc="dvh1"}},j4=class extends Ye{static{this.fourcc="dvhe"}},Z_=class extends Ye{getCodec(){let t=super.getCodec();if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;let e="";if(this.vvcC.general_constraint_info){const i=[];let s=0;s|=this.vvcC.ptl_frame_only_constraint_flag<<7,s|=this.vvcC.ptl_multilayer_enabled_flag<<6;let n;for(let a=0;a<this.vvcC.general_constraint_info.length;++a)s|=this.vvcC.general_constraint_info[a]>>2&63,i.push(s),s&&(n=a),s=this.vvcC.general_constraint_info[a]>>2&3;if(n===void 0)e=".CA";else{e=".C";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";let o=0,l=0;for(let c=0;c<=n;++c)for(o=o<<8|i[c],l+=8;l>=5;){const u=o>>l-5&31;e+=a[u],l-=5,o&=(1<<l)-1}l&&(o<<=5-l,e+=a[o&31])}}t+=e}return t}},G4=class extends Z_{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvc1"}},q4=class extends Z_{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvi1"}},W4=class extends Ye{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvs1"}},Y4=class extends Ye{constructor(...t){super(...t),this.box_name="VvcNonVCLSampleEntry"}static{this.fourcc="vvcN"}},Q_=class extends Ye{getCodec(){const t=super.getCodec();let e=this.vpcC.level;e===0&&(e="00");let i=this.vpcC.bitDepth;return i===8&&(i="08"),`${t}.0${this.vpcC.profile}.${e}.${i}`}},K4=class extends Q_{static{this.fourcc="vp08"}},X4=class extends Q_{static{this.fourcc="vp09"}},J4=class extends Ye{static{this.fourcc="avs3"}},Z4=class extends Ye{constructor(...t){super(...t),this.box_name="J2KSampleEntry"}static{this.fourcc="j2ki"}},Q4=class extends Ye{static{this.fourcc="mjp2"}},t3=class extends Ye{static{this.fourcc="mjpg"}},e3=class extends Ye{constructor(...t){super(...t),this.box_name="UncompressedVideoSampleEntry"}static{this.fourcc="uncv"}},i3=class extends Ye{constructor(...t){super(...t),this.box_name="MP4VisualSampleEntry"}static{this.fourcc="mp4v"}},tg=class extends rs{constructor(...t){super(...t),this.box_name="MP4AudioSampleEntry"}static{this.fourcc="mp4a"}getCodec(){const t=super.getCodec(),e=this.esds??this.wave?.esds;if(e&&e.esd){const i=e.esd.getOTI(),s=e.esd.getAudioConfig();return t+"."+ea(i)+(s?"."+s:"")}else return t}},s3=class extends rs{static{this.fourcc="m4ae"}},n3=class extends rs{static{this.fourcc="ac-3"}},r3=class extends rs{static{this.fourcc="ac-4"}},a3=class extends rs{static{this.fourcc="ec-3"}},o3=class extends rs{static{this.fourcc="Opus"}},l3=class extends rs{static{this.fourcc="mha1"}},c3=class extends rs{static{this.fourcc="mha2"}},u3=class extends rs{static{this.fourcc="mhm1"}},d3=class extends rs{static{this.fourcc="mhm2"}},f3=class extends rs{static{this.fourcc="fLaC"}},h3=class extends Ye{static{this.fourcc="encv"}},p3=class extends rs{static{this.fourcc="enca"}},m3=class extends Ir{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encu"}},v3=class extends qd{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encs"}},_3=class extends qd{static{this.fourcc="mp4s"}},g3=class extends Rk{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="enct"}},y3=class extends fa{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encm"}},b3=class extends Ye{constructor(...t){super(...t),this.box_name="RestrictedVideoSampleEntry"}static{this.fourcc="resv"}},x3=class extends Ir{static{this.fourcc="sbtt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},eg=class extends Ir{static{this.fourcc="stpp"}parse(t){this.parseHeader(t),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.auxiliary_mime_types=t.readCString(),this.parseFooter(t)}write(t){this.writeHeader(t),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,t.writeCString(this.namespace),t.writeCString(this.schema_location),t.writeCString(this.auxiliary_mime_types),this.writeFooter(t)}},w3=class extends Ir{static{this.fourcc="stxt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}getCodec(){const t=super.getCodec();return this.mime_format?t+"."+this.mime_format:t}},S3=class extends Ir{static{this.fourcc="tx3g"}parse(t){this.parseHeader(t),this.displayFlags=t.readUint32(),this.horizontal_justification=t.readInt8(),this.vertical_justification=t.readInt8(),this.bg_color_rgba=t.readUint8Array(4),this.box_record=t.readInt16Array(4),this.style_record=t.readUint8Array(12),this.parseFooter(t)}},k3=class extends fa{static{this.fourcc="wvtt"}parse(t){this.parseHeader(t),this.parseFooter(t)}},B3=class extends X{constructor(...t){super(...t),this.box_name="SampleToGroupBox"}static{this.fourcc="sbgp"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),this.version===1?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++)this.entries.push({sample_count:t.readInt32(),group_description_index:t.readInt32()})}write(t){this.grouping_type_parameter?this.version=1:this.version=0,this.flags=0,this.size=8+8*this.entries.length+(this.version===1?4:0),this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),this.version===1&&t.writeUint32(this.grouping_type_parameter),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){const i=this.entries[e];t.writeInt32(i.sample_count),t.writeInt32(i.group_description_index)}}},E3=class extends X{constructor(...t){super(...t),this.box_name="SampleDependencyTypeBox"}static{this.fourcc="sdtp"}parse(t){this.parseFullHeader(t);const e=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(let i=0;i<e;i++){const s=t.readUint8();this.is_leading[i]=s>>6,this.sample_depends_on[i]=s>>4&3,this.sample_is_depended_on[i]=s>>2&3,this.sample_has_redundancy[i]=s&3}}},U3=class extends X{constructor(...t){super(...t),this.box_name="SampleGroupDescriptionBox"}static{this.fourcc="sgpd"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),L.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){let s;this.grouping_type in Ji.sampleGroupEntry?s=new Ji.sampleGroupEntry[this.grouping_type](this.grouping_type):s=new vi(this.grouping_type),this.entries.push(s),this.version===1?this.default_length===0?s.description_length=t.readUint32():s.description_length=this.default_length:s.description_length=this.default_length,s.write===vi.prototype.write&&(L.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),s.data=t.readUint8Array(s.description_length),t.seek(t.getPosition()-s.description_length)),s.parse(t)}}write(t){this.flags=0,this.size=12;for(let e=0;e<this.entries.length;e++){const i=this.entries[e];this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=i.data.length)}this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),this.version===1&&t.writeUint32(this.default_length),this.version>=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){const i=this.entries[e];this.version===1&&this.default_length===0&&t.writeUint32(i.description_length),i.write(t)}}},T3=class extends X{constructor(...t){super(...t),this.box_name="CompressedSegmentIndexBox"}static{this.fourcc="sidx"}parse(t){this.parseFullHeader(t),this.reference_ID=t.readUint32(),this.timescale=t.readUint32(),this.version===0?(this.earliest_presentation_time=t.readUint32(),this.first_offset=t.readUint32()):(this.earliest_presentation_time=t.readUint64(),this.first_offset=t.readUint64()),t.readUint16(),this.references=[];const e=t.readUint16();for(let i=0;i<e;i++){const s=t.readUint32(),n=t.readUint32(),a=t.readUint32();this.references.push({reference_type:s>>31&1,referenced_size:s&2147483647,subsegment_duration:n,starts_with_SAP:a>>31&1,SAP_type:a>>28&7,SAP_delta_time:a&268435455})}}write(t){const e=this.earliest_presentation_time>bi||this.first_offset>bi||this.version===1;this.version=e?1:0,this.size=12+12*this.references.length,this.size+=e?16:8,this.flags=0,this.writeHeader(t),t.writeUint32(this.reference_ID),t.writeUint32(this.timescale),e?(t.writeUint64(this.earliest_presentation_time),t.writeUint64(this.first_offset)):(t.writeUint32(this.earliest_presentation_time),t.writeUint32(this.first_offset)),t.writeUint16(0),t.writeUint16(this.references.length);for(let i=0;i<this.references.length;i++){const s=this.references[i];t.writeUint32(s.reference_type<<31|s.referenced_size),t.writeUint32(s.subsegment_duration),t.writeUint32(s.starts_with_SAP<<31|s.SAP_type<<28|s.SAP_delta_time)}}},ig=class extends X{constructor(...t){super(...t),this.box_name="SoundMediaHeaderBox"}static{this.fourcc="smhd"}parse(t){this.parseFullHeader(t),this.balance=t.readUint16(),t.readUint16()}write(t){this.version=0,this.size=4,this.writeHeader(t),t.writeUint16(this.balance),t.writeUint16(0)}},sg=class extends X{constructor(...t){super(...t),this.box_name="ChunkOffsetBox"}static{this.fourcc="stco"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.chunk_offsets=[],this.version===0)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length),t.writeUint32Array(this.chunk_offsets)}unpack(t){for(let e=0;e<this.chunk_offsets.length;e++)t[e].offset=this.chunk_offsets[e]}},ng=class extends X{constructor(...t){super(...t),this.box_name="SubtitleMediaHeaderBox"}static{this.fourcc="sthd"}},rg=class extends X{constructor(...t){super(...t),this.box_name="SampleToChunkBox"}static{this.fourcc="stsc"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(let i=0;i<e;i++)this.first_chunk.push(t.readUint32()),this.samples_per_chunk.push(t.readUint32()),this.sample_description_index.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(t),t.writeUint32(this.first_chunk.length);for(let e=0;e<this.first_chunk.length;e++)t.writeUint32(this.first_chunk[e]),t.writeUint32(this.samples_per_chunk[e]),t.writeUint32(this.sample_description_index[e])}unpack(t){let e=0,i=0;for(let s=0;s<this.first_chunk.length;s++)for(let n=0;n<(s+1<this.first_chunk.length?this.first_chunk[s+1]:1/0);n++){i++;for(let a=0;a<this.samples_per_chunk[s];a++){if(t[e])t[e].description_index=this.sample_description_index[s],t[e].chunk_index=i;else return;e++}}}},ag=class extends X{constructor(...t){super(...t),this.box_name="SampleDescriptionBox"}static{this.fourcc="stsd"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=1;i<=e;i++){const s=hn(t,!0,this.size-(t.getPosition()-this.start));if(s.code===1){let n;s.type in Ji.sampleEntry?(n=new Ji.sampleEntry[s.type](s.size),n.hdr_size=s.hdr_size,n.start=s.start):(L.warn("BoxParser",`Unknown sample entry type: '${s.type}'`),n=new zn(s.size,s.hdr_size,s.start),n.type=s.type),n.write===zn.prototype.write&&(L.info("BoxParser","SampleEntry "+n.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),n.parseDataAndRewind(t)),n.parse(t),this.entries.push(n)}else return}}write(t){this.version=0,this.flags=0,this.size=0,this.writeHeader(t),t.writeUint32(this.entries.length),this.size+=4;for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},og=class extends X{constructor(...t){super(...t),this.box_name="SampleSizeBox"}static{this.fourcc="stsz"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],this.version===0){this.sample_size=t.readUint32(),this.sample_count=t.readUint32();for(let e=0;e<this.sample_count;e++)this.sample_size===0?this.sample_sizes.push(t.readUint32()):this.sample_sizes[e]=this.sample_size}}write(t){let e=!0;this.version=0,this.flags=0,this.sample_sizes.length>0&&this.sample_size===0&&(e=!1),this.size=8,e||(this.size+=4*this.sample_sizes.length),this.writeHeader(t),t.writeUint32(this.sample_size),t.writeUint32(this.sample_sizes.length),e||t.writeUint32Array(this.sample_sizes)}unpack(t){for(let e=0;e<this.sample_sizes.length;e++)t[e].size=this.sample_sizes[e]}},lg=class extends X{constructor(...t){super(...t),this.box_name="TimeToSampleBox",this.sample_counts=[],this.sample_deltas=[]}static{this.fourcc="stts"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.sample_counts.length=0,this.sample_deltas.length=0,this.version===0)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());let s=t.readInt32();s<0&&(L.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),s=1),this.sample_deltas.push(s)}}write(t){this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),t.writeUint32(this.sample_deltas[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)e===0?t[e].dts=0:t[e].dts=t[e-1].dts+this.sample_deltas[i],e++}},cg=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentBaseMediaDecodeTimeBox"}static{this.fourcc="tfdt"}parse(t){this.parseFullHeader(t),this.version===1?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}write(t){const e=this.baseMediaDecodeTime>bi||this.version===1;this.version=e?1:0,this.size=4,this.size+=e?4:0,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)}},ug=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentHeaderBox"}static{this.fourcc="tfhd"}parse(t){this.parseFullHeader(t);let e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&this.flags&1?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&this.flags&2?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&this.flags&8?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&this.flags&16?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&this.flags&32?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}write(t){this.version=0,this.size=4,this.flags&1&&(this.size+=8),this.flags&2&&(this.size+=4),this.flags&8&&(this.size+=4),this.flags&16&&(this.size+=4),this.flags&32&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),this.flags&1&&t.writeUint64(this.base_data_offset),this.flags&2&&t.writeUint32(this.default_sample_description_index),this.flags&8&&t.writeUint32(this.default_sample_duration),this.flags&16&&t.writeUint32(this.default_sample_size),this.flags&32&&t.writeUint32(this.default_sample_flags)}},dg=class extends X{constructor(...t){super(...t),this.box_name="TrackHeaderBox",this.layer=0,this.alternate_group=0}static{this.fourcc="tkhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint32()),t.readUint32Array(2),this.layer=t.readInt16(),this.alternate_group=t.readInt16(),this.volume=t.readInt16()>>8,t.readUint16(),this.matrix=t.readInt32Array(9),this.width=t.readUint32(),this.height=t.readUint32()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=80,this.size+=e?12:0,this.flags=this.flags??3,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration)),t.writeUint32Array([0,0]),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeInt16(0),t.writeInt32Array(this.matrix),t.writeUint32(this.width),t.writeUint32(this.height)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"track_id: "+this.track_id),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"layer: "+this.layer),t.log(t.indent+"alternate_group: "+this.alternate_group),t.log(t.indent+"width: "+this.width),t.log(t.indent+"height: "+this.height)}},ld=class extends X{constructor(...t){super(...t),this.box_name="TrackExtendsBox"}static{this.fourcc="trex"}parse(t){this.parseFullHeader(t),this.track_id=t.readUint32(),this.default_sample_description_index=t.readUint32(),this.default_sample_duration=t.readUint32(),this.default_sample_size=t.readUint32(),this.default_sample_flags=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=20,this.writeHeader(t),t.writeUint32(this.track_id),t.writeUint32(this.default_sample_description_index),t.writeUint32(this.default_sample_duration),t.writeUint32(this.default_sample_size),t.writeUint32(this.default_sample_flags)}},fg=class extends X{constructor(...t){super(...t),this.box_name="TrackRunBox",this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[]}static{this.fourcc="trun"}parse(t){this.parseFullHeader(t);let e=0;if(this.sample_count=t.readUint32(),e+=4,this.size-this.hdr_size>e&&this.flags&1?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&this.flags&4?(this.first_sample_flags=t.readUint32(),e+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>e)for(let i=0;i<this.sample_count;i++)this.flags&256&&(this.sample_duration[i]=t.readUint32()),this.flags&512&&(this.sample_size[i]=t.readUint32()),this.flags&1024&&(this.sample_flags[i]=t.readUint32()),this.flags&2048&&(this.version===0?this.sample_composition_time_offset[i]=t.readUint32():this.sample_composition_time_offset[i]=t.readInt32())}write(t){this.size=4,this.flags&1&&(this.size+=4),this.flags&4&&(this.size+=4),this.flags&256&&(this.size+=4*this.sample_duration.length),this.flags&512&&(this.size+=4*this.sample_size.length),this.flags&1024&&(this.size+=4*this.sample_flags.length),this.flags&2048&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),this.flags&1&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),this.flags&4&&t.writeUint32(this.first_sample_flags);for(let e=0;e<this.sample_count;e++)this.flags&256&&t.writeUint32(this.sample_duration[e]),this.flags&512&&t.writeUint32(this.sample_size[e]),this.flags&1024&&t.writeUint32(this.sample_flags[e]),this.flags&2048&&(this.version===0?t.writeUint32(this.sample_composition_time_offset[e]):t.writeInt32(this.sample_composition_time_offset[e]))}},hg=class extends X{constructor(...t){super(...t),this.box_name="DataEntryUrlBox"}static{this.fourcc="url "}parse(t){this.parseFullHeader(t),this.flags!==1&&(this.location=t.readCString())}write(t){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(t),this.location&&t.writeCString(this.location)}},pg=class extends X{constructor(...t){super(...t),this.box_name="VideoMediaHeaderBox"}static{this.fourcc="vmhd"}parse(t){this.parseFullHeader(t),this.graphicsmode=t.readUint16(),this.opcolor=t.readUint16Array(3)}write(t){this.version=0,this.size=8,this.writeHeader(t),t.writeUint16(this.graphicsmode),t.writeUint16Array(this.opcolor)}},xu=class{constructor(t,e,i){this.grouping_type=t,this.grouping_type_parameter=e,this.sbgp=i,this.last_sample_in_run=-1,this.entry_index=-1}},P3=class nn{constructor(e,i=!0){this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.moovStartSent=!1,this.readySent=!1,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.sidxSent=!1,this.items=[],this.entity_groups=[],this.itemsDataSize=0,this.lastMoofIndex=0,this.samplesDataSize=0,this.lastBoxStartPosition=0,this.nextParsePosition=0,this.discardMdatData=!0,this.discardMdatData=i,e?(this.stream=e,this.parse()):this.stream=new Bl,this.stream.isofile=this}setSegmentOptions(e,i,s){const{sizePerSegment:n=Number.MAX_SAFE_INTEGER,rapAlignement:a=!0,normalizeAudioSampleEntriesForMSE:o=!0}=s;let l=s.nbSamples??s.nbSamplesPerFragment??1e3;const c=s.nbSamplesPerFragment??l;if(l<=0||c<=0||n<=0){L.error("ISOFile",`Invalid segment options: nbSamples=${l}, nbSamplesPerFragment=${c}, sizePerSegment=${n}`);return}if(l<c&&(L.warn("ISOFile",`nbSamples (${l}) is less than nbSamplesPerFragment (${c}), setting nbSamples to nbSamplesPerFragment`),l=c),this.fragmentedTracks.some(d=>d.nb_samples!==l)){L.error("ISOFile",`Cannot set segment options for track ${e}: nbSamples (${l}) does not match existing tracks`);return}const u=this.getTrackById(e);if(u){const d={id:e,user:i,trak:u,segmentStream:void 0,nb_samples:l,nb_samples_per_fragment:c,size_per_segment:n,rapAlignement:a,normalizeAudioSampleEntriesForMSE:o,state:{lastFragmentSampleNumber:0,lastSegmentSampleNumber:0,accumulatedSize:0}};this.fragmentedTracks.push(d),u.nextSample=0}this.discardMdatData&&L.warn("ISOFile","Segmentation options set but discardMdatData is true, samples will not be segmented")}unsetSegmentOptions(e){let i=-1;for(let s=0;s<this.fragmentedTracks.length;s++)this.fragmentedTracks[s].id===e&&(i=s);i>-1&&this.fragmentedTracks.splice(i,1)}setExtractionOptions(e,i,{nbSamples:s=1e3}={}){const n=this.getTrackById(e);n&&(this.extractedTracks.push({id:e,user:i,trak:n,nb_samples:s,samples:[]}),n.nextSample=0),this.discardMdatData&&L.warn("ISOFile","Extraction options set but discardMdatData is true, samples will not be extracted")}unsetExtractionOptions(e){let i=-1;for(let s=0;s<this.extractedTracks.length;s++)this.extractedTracks[s].id===e&&(i=s);i>-1&&this.extractedTracks.splice(i,1)}parse(){if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else{this.saveParsePosition&&this.saveParsePosition();const i=hn(this.stream,!1);if(i.code===0)if(this.processIncompleteBox){if(this.processIncompleteBox(i))continue;return}else return;else if(i.code===1){const s=i.box;if(this.boxes.push(s),s.type==="uuid")this[s.uuid]!==void 0&&L.warn("ISOFile","Duplicate Box of uuid: "+s.uuid+", overriding previous occurrence"),this[s.uuid]=s;else switch(s.type){case"mdat":this.mdats.push(s),this.transferMdatData(s);break;case"moof":this.moofs.push(s);break;case"free":case"skip":break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[s.type]!==void 0?Array.isArray(this[s.type+"s"])?(L.info("ISOFile",`Found multiple boxes of type ${s.type} in ISOFile, adding to array`),this[s.type+"s"].push(s)):(L.warn("ISOFile",`Found multiple boxes of type ${s.type} but no array exists. Creating array dynamically.`),this[s.type+"s"]=[this[s.type],s]):(this[s.type]=s,Array.isArray(this[s.type+"s"])&&this[s.type+"s"].push(s));break}this.updateUsedBytes&&this.updateUsedBytes(s,i)}else if(i.code===-1){L.error("ISOFile",`Invalid data found while parsing box of type '${i.type}' at position ${i.start}. Aborting parsing.`,this);break}}}checkBuffer(e){if(!e)throw new Error("Buffer must be defined and non empty");return e.byteLength===0?(L.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(L.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(L.warn("ISOFile","Not ready to start parsing"),!1))}appendBuffer(e,i){let s;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(i),this.nextSeekPosition?(s=this.nextSeekPosition,this.nextSeekPosition=void 0):s=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(s=this.stream.getEndFilePositionAfter(s))):this.nextParsePosition?s=this.nextParsePosition:s=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(L.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+s),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),L.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),s}getFragmentDuration(){const e=this.getBox("mvex");if(!e)return;if(e.mehd)return{num:e.mehd.fragment_duration,den:this.moov.mvhd.timescale};const i=this.getBoxes("trak",!1);let s={num:0,den:1};for(const n of i){const a=n.samples_duration,o=n.mdia.mdhd.timescale;a&&o&&a/o>s.num/s.den&&(s={num:a,den:o})}return s}getInfo(){if(!this.moov)return{hasMoov:!1,mime:""};const e=new Date("1904-01-01T00:00:00Z").getTime(),i=this.getBox("mvex")!==void 0,s={hasMoov:!0,duration:this.moov.mvhd.duration,timescale:this.moov.mvhd.timescale,isFragmented:i,fragment_duration:this.getFragmentDuration(),isProgressive:this.isProgressive,hasIOD:this.moov.iods!==void 0,brands:[this.ftyp.major_brand].concat(this.ftyp.compatible_brands),created:new Date(e+this.moov.mvhd.creation_time*1e3),modified:new Date(e+this.moov.mvhd.modification_time*1e3),tracks:[],audioTracks:[],videoTracks:[],subtitleTracks:[],metadataTracks:[],hintTracks:[],otherTracks:[],mime:""};for(let n=0;n<this.moov.traks.length;n++){const a=this.moov.traks[n],o=a.mdia.minf.stbl.stsd.entries[0],l=a.samples_size,c=a.mdia.mdhd.timescale,u=a.samples_duration,d={samples_duration:u,bitrate:l*8*c/u,size:l,timescale:c,alternate_group:a.tkhd.alternate_group,codec:o.getCodec(),created:new Date(e+a.tkhd.creation_time*1e3),cts_shift:a.mdia.minf.stbl.cslg,duration:a.mdia.mdhd.duration,id:a.tkhd.track_id,kind:a.udta&&a.udta.kinds.length?a.udta.kinds[0]:{schemeURI:"",value:""},language:a.mdia.elng?a.mdia.elng.extended_language:a.mdia.mdhd.languageString,layer:a.tkhd.layer,matrix:a.tkhd.matrix,modified:new Date(e+a.tkhd.modification_time*1e3),movie_duration:a.tkhd.duration,movie_timescale:s.timescale,name:a.mdia.hdlr.name,nb_samples:a.samples.length,references:[],track_height:a.tkhd.height/65536,track_width:a.tkhd.width/65536,volume:a.tkhd.volume};if(s.tracks.push(d),a.tref)for(let f=0;f<a.tref.references.length;f++)d.references.push({type:a.tref.references[f].type,track_ids:a.tref.references[f].track_ids});a.edts!==void 0&&a.edts.elst!==void 0&&(d.edits=a.edts.elst.entries),o instanceof rs?(d.type="audio",s.audioTracks.push(d),d.audio={sample_rate:o.getSampleRate(),channel_count:o.getChannelCount(),sample_size:o.getSampleSize()}):o instanceof Ye?(d.type="video",s.videoTracks.push(d),d.video={width:o.getWidth(),height:o.getHeight()}):o instanceof Ir?(d.type="subtitles",s.subtitleTracks.push(d)):o instanceof qp?(d.type="metadata",s.hintTracks.push(d)):o instanceof fa?(d.type="metadata",s.metadataTracks.push(d)):(d.type="metadata",s.otherTracks.push(d))}s.videoTracks&&s.videoTracks.length>0?s.mime+='video/mp4; codecs="':s.audioTracks&&s.audioTracks.length>0?s.mime+='audio/mp4; codecs="':s.mime+='application/mp4; codecs="';for(let n=0;n<s.tracks.length;n++)n!==0&&(s.mime+=","),s.mime+=s.tracks[n].codec;return s.mime+='"; profiles="',s.mime+=this.ftyp.compatible_brands.join(),s.mime+='"',s}setNextSeekPositionFromSample(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)}processSamples(e){if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==void 0){const i=new Set;for(;i.size<this.fragmentedTracks.length&&this.fragmentedTracks.some(s=>s.trak.nextSample<s.trak.samples.length)&&this.sampleProcessingStarted;)for(const s of this.fragmentedTracks){const n=s.trak;if(!i.has(s.id)){const a=n.nextSample<n.samples.length?this.getSample(n,n.nextSample):void 0;if(!a){this.setNextSeekPositionFromSample(n.samples[n.nextSample]),i.add(s.id);continue}s.state.accumulatedSize+=a.size;const o=n.nextSample+1,l=o-s.state.lastFragmentSampleNumber>s.nb_samples_per_fragment,c=o-s.state.lastSegmentSampleNumber>s.nb_samples;let u=l||o%s.nb_samples_per_fragment===0,d=c||o%s.nb_samples===0,f=s.state.accumulatedSize>=s.size_per_segment;const p=!s.rapAlignement||a.is_sync,v=e||n.nextSample+1>=n.samples.length;if(v&&!p&&L.warn("ISOFile","Flushing track #"+s.id+" at sample #"+n.nextSample+" which is not a RAP, this may lead to playback issues"),u=u&&p,d=d&&p,f=f&&p,u||f||v){l?L.warn("ISOFile","Fragment on track #"+s.id+" is overdue, creating it with samples ["+s.state.lastFragmentSampleNumber+", "+n.nextSample+"]"):L.debug("ISOFile","Creating media fragment on track #"+s.id+" for samples ["+s.state.lastFragmentSampleNumber+", "+n.nextSample+"]");const g=this.createFragment(s.id,s.state.lastFragmentSampleNumber,n.nextSample,s.segmentStream);if(g)s.segmentStream=g,s.state.lastFragmentSampleNumber=n.nextSample+1;else{i.add(s.id);continue}}(d||f||v)&&(c?L.warn("ISOFile","Segment on track #"+s.id+" is overdue, sending it with samples ["+Math.max(0,n.nextSample-s.nb_samples)+", "+(n.nextSample-1)+"]"):L.info("ISOFile","Sending fragmented data on track #"+s.id+" for samples ["+Math.max(0,n.nextSample-s.nb_samples)+", "+(n.nextSample-1)+"]"),L.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(s.id,s.user,s.segmentStream.buffer,n.nextSample+1,e||n.nextSample+1>=n.samples.length),s.segmentStream=void 0,s.state.accumulatedSize=0,s.state.lastSegmentSampleNumber=n.nextSample+1),n.nextSample++}}}if(this.onSamples!==void 0)for(let i=0;i<this.extractedTracks.length;i++){const s=this.extractedTracks[i],n=s.trak;for(;n.nextSample<n.samples.length&&this.sampleProcessingStarted;){L.debug("ISOFile","Exporting on track #"+s.id+" sample #"+n.nextSample);const a=this.getSample(n,n.nextSample);if(a)n.nextSample++,s.samples.push(a);else{this.setNextSeekPositionFromSample(n.samples[n.nextSample]);break}if((n.nextSample%s.nb_samples===0||n.nextSample>=n.samples.length)&&(L.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+n.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[i]))break}}}}getBox(e){const i=this.getBoxes(e,!0);return i.length?i[0]:void 0}getBoxes(e,i){const s=[],n=a=>{a instanceof mt&&a.type&&a.type===e&&s.push(a);const o=[];a.boxes&&o.push(...a.boxes),a.entries&&o.push(...a.entries),a.item_infos&&o.push(...a.item_infos),a.references&&o.push(...a.references);for(const l of o){if(s.length&&i)return;n(l)}};return n(this),s}getTrackSamplesInfo(e){const i=this.getTrackById(e);if(i)return i.samples}getTrackSample(e,i){const s=this.getTrackById(e);return this.getSample(s,i)}releaseUsedSamples(e,i){let s=0;const n=this.getTrackById(e);n.lastValidSample||(n.lastValidSample=0);for(let a=n.lastValidSample;a<i;a++)s+=this.releaseSample(n,a);L.info("ISOFile","Track #"+e+" released samples up to "+i+" (released size: "+s+", remaining: "+this.samplesDataSize+")"),n.lastValidSample=i}start(){this.sampleProcessingStarted=!0,this.processSamples(!1)}stop(){this.sampleProcessingStarted=!1}flush(){L.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)}seekTrack(e,i,s){let n=0,a=0,o;if(s.samples.length===0)return L.info("ISOFile","No sample in track, cannot seek! Using time "+L.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(let c=0;c<s.samples.length;c++){const u=s.samples[c];if(c===0)a=0,o=u.timescale;else if(u.cts>e*u.timescale){a=c-1;break}i&&u.is_sync&&(n=c)}for(i&&(a=n),e=s.samples[a].cts,s.nextSample=a,this.resetFragmentedTrackStateAfterSeek(s,a),this.resetExtractedTrackStateAfterSeek(s);s.samples[a].alreadyRead===s.samples[a].size&&s.samples[a+1];)a++;const l=s.samples[a].offset+s.samples[a].alreadyRead;return L.info("ISOFile","Seeking to "+(i?"RAP":"")+" sample #"+s.nextSample+" on track "+s.tkhd.track_id+", time "+L.getDurationString(e,o)+" and offset: "+l),{offset:l,time:e/o}}resetFragmentedTrackStateAfterSeek(e,i){const s=this.fragmentedTracks.find(n=>n.trak===e);s&&(s.state.lastFragmentSampleNumber=i,s.state.lastSegmentSampleNumber=i,s.state.accumulatedSize=0,s.segmentStream=void 0)}resetExtractedTrackStateAfterSeek(e){const i=this.extractedTracks.find(s=>s.trak===e);i&&(i.samples=[])}getTrackDuration(e){if(!e.samples)return 1/0;const i=e.samples[e.samples.length-1];return(i.cts+i.duration)/i.timescale}seek(e,i){const s=this.moov;let n={offset:1/0,time:1/0};if(this.moov){for(let a=0;a<s.traks.length;a++){const o=s.traks[a];if(e>this.getTrackDuration(o))continue;const l=this.seekTrack(e,i,o);l.offset<n.offset&&(n.offset=l.offset),l.time<n.time&&(n.time=l.time)}return L.info("ISOFile","Seeking at time "+L.getDurationString(n.time,1)+" needs a buffer with a fileStart position of "+n.offset),n.offset===1/0?n={offset:this.nextParsePosition,time:0}:n.offset=this.stream.getEndFilePositionAfter(n.offset),L.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+n.offset),n}else throw new Error("Cannot seek: moov not received!")}equal(e){let i=0;for(;i<this.boxes.length&&i<e.boxes.length;){const s=this.boxes[i],n=e.boxes[i];if(!M_(s,n))return!1;i++}return!0}write(e){for(let i=0;i<this.boxes.length;i++)this.boxes[i].write(e)}createFragment(e,i,s,n){if(s<i)return L.warn("ISOFile",`Skipping fragment creation on track #${e}: invalid sample range [${i}, ${s}]`),n||new Hi;const a=[];for(let d=i;d<=s;d++){const f=this.getTrackById(e),p=this.getSample(f,d);if(!p){this.setNextSeekPositionFromSample(f.samples[d]);return}a.push(p)}const o=n||new Hi,l=this.createMoof(a);l.write(o),l.trafs[0].truns[0].data_offset=l.size+8,L.debug("MP4Box","Adjusting data_offset with new value "+l.trafs[0].truns[0].data_offset),o.adjustUint32(l.trafs[0].truns[0].data_offset_position,l.trafs[0].truns[0].data_offset);const c=new El;c.stream=new Bl;let u=0;for(const d of a)if(d.data){const f=Fn.fromArrayBuffer(d.data.buffer,u);c.stream.insertBuffer(f),u+=d.data.byteLength}return c.write(o),o}static writeInitializationSegment(e,i,s,n){L.debug("ISOFile","Generating initialization segment");const a=new Hi;e.write(a);const o=nn.normalizeAudioSampleEntriesForMSEFragmentedInit(i.traks,n);try{const l=i.addBox(new od);if(s){const c=l.addBox(new Y_);c.fragment_duration=s}for(let c=0;c<i.traks.length;c++){const u=l.addBox(new ld);u.track_id=i.traks[c].tkhd.track_id,u.default_sample_description_index=1,u.default_sample_duration=i.traks[c].samples[0]?.duration??0,u.default_sample_size=0,u.default_sample_flags=65536}i.write(a)}finally{for(let l=o.length-1;l>=0;l--)o[l]()}return a.buffer}save(e){const i=new Hi;return i.isofile=this,this.write(i),i.save(e)}getBuffer(){const e=new Hi;return e.isofile=this,this.write(e),e}static normalizeAudioSampleEntriesForMSEFragmentedInit(e,i){const s=[];for(const n of e)if(i?.has(n.tkhd.track_id))for(const a of n.mdia.minf.stbl.stsd?.entries??[]){if(!(a instanceof tg))continue;const o=a.wave?.esds;if(a.esds||!o)continue;const l=a.esds,c=a.wave,u=a.boxes;s.push(()=>{a.esds=l,a.wave=c,a.boxes=u});const d=Array.isArray(a.boxes)?a.boxes.filter(f=>f?.type!=="wave"&&f?.type!=="esds"):[];a.esds=o,a.boxes=[...d,o],a.wave=void 0}return s}initializeSegmentation(e){if(this.onSegment||L.warn("MP4Box","No segmentation callback set!"),e!==void 0&&e!=="combined"&&e!=="per-track")throw new Error(`Invalid segmentation mode: ${e}`);this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.resetTables());const i=[];for(const o of this.fragmentedTracks){const l=this.getTrackById(o.id);if(!l){L.warn("ISOFile",`Track with id ${o.id} not found, skipping fragmentation initialization`);continue}i.push({id:o.id,user:o.user,trak:l})}const s=this.moov?.mvex?.mehd?.fragment_duration,n=new Set(this.fragmentedTracks.filter(o=>o.normalizeAudioSampleEntriesForMSE!==!1).map(o=>o.id));if(e==="per-track")return i.map(({id:o,user:l,trak:c})=>{const u=new Tl;return u.addBox(this.moov.mvhd),u.addBox(c),{id:o,user:l,buffer:nn.writeInitializationSegment(this.ftyp,u,s,n)}});const a=new Tl;a.addBox(this.moov.mvhd);for(const o of i)a.addBox(o.trak);return{tracks:i.map(({id:o,user:l})=>({id:o,user:l})),buffer:nn.writeInitializationSegment(this.ftyp,a,s,n)}}resetTables(){this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0;for(let e=0;e<this.moov.traks.length;e++){const i=this.moov.traks[e];i.tkhd.duration=0,i.mdia.mdhd.duration=0;const s=i.mdia.minf.stbl.stco||i.mdia.minf.stbl.co64;s.chunk_offsets=[];const n=i.mdia.minf.stbl.stsc;n.first_chunk=[],n.samples_per_chunk=[],n.sample_description_index=[];const a=i.mdia.minf.stbl.stsz||i.mdia.minf.stbl.stz2;a.sample_sizes=[];const o=i.mdia.minf.stbl.stts;o.sample_counts=[],o.sample_deltas=[];const l=i.mdia.minf.stbl.ctts;l&&(l.sample_counts=[],l.sample_offsets=[]);const c=i.mdia.minf.stbl.stss,u=i.mdia.minf.stbl.boxes.indexOf(c);u!==-1&&(i.mdia.minf.stbl.boxes[u]=void 0)}}static initSampleGroups(e,i,s,n,a){i&&(i.sample_groups_info=[]),e.sample_groups_info||(e.sample_groups_info=[]);for(let o=0;o<s.length;o++){const l=s[o].grouping_type+"/"+s[o].grouping_type_parameter,c=new xu(s[o].grouping_type,s[o].grouping_type_parameter,s[o]);i&&(i.sample_groups_info[l]=c),e.sample_groups_info[l]||(e.sample_groups_info[l]=c);for(let u=0;u<n.length;u++)n[u].grouping_type===s[o].grouping_type&&(c.description=n[u],c.description.used=!0);if(a)for(let u=0;u<a.length;u++)a[u].grouping_type===s[o].grouping_type&&(c.fragment_description=a[u],c.fragment_description.used=!0,c.is_fragment=!0)}if(i){if(a){for(let o=0;o<a.length;o++)if(!a[o].used&&a[o].version>=2){const l=a[o].grouping_type+"/0",c=new xu(a[o].grouping_type,0);c.is_fragment=!0,i.sample_groups_info[l]||(i.sample_groups_info[l]=c)}}}else for(let o=0;o<n.length;o++)if(!n[o].used&&n[o].version>=2){const l=n[o].grouping_type+"/0",c=new xu(n[o].grouping_type,0);e.sample_groups_info[l]||(e.sample_groups_info[l]=c)}}static setSampleGroupProperties(e,i,s,n){i.sample_groups=[];for(const a in n)if(i.sample_groups[a]={grouping_type:n[a].grouping_type,grouping_type_parameter:n[a].grouping_type_parameter},s>=n[a].last_sample_in_run&&(n[a].last_sample_in_run<0&&(n[a].last_sample_in_run=0),n[a].entry_index++,n[a].entry_index<=n[a].sbgp.entries.length-1&&(n[a].last_sample_in_run+=n[a].sbgp.entries[n[a].entry_index].sample_count)),n[a].entry_index<=n[a].sbgp.entries.length-1?i.sample_groups[a].group_description_index=n[a].sbgp.entries[n[a].entry_index].group_description_index:i.sample_groups[a].group_description_index=-1,i.sample_groups[a].group_description_index!==0){let o;if(n[a].fragment_description?o=n[a].fragment_description:o=n[a].description,i.sample_groups[a].group_description_index>0){let l;i.sample_groups[a].group_description_index>65535?l=(i.sample_groups[a].group_description_index>>16)-1:l=i.sample_groups[a].group_description_index-1,o&&l>=0&&(i.sample_groups[a].description=o.entries[l])}else o&&o.version>=2&&o.default_group_description_index>0&&(i.sample_groups[a].description=o.entries[o.default_group_description_index-1])}}static process_sdtp(e,i,s){i&&(e?(i.is_leading=e.is_leading[s],i.depends_on=e.sample_depends_on[s],i.is_depended_on=e.sample_is_depended_on[s],i.has_redundancy=e.sample_has_redundancy[s]):(i.is_leading=0,i.depends_on=0,i.is_depended_on=0,i.has_redundancy=0))}buildSampleLists(){for(let e=0;e<this.moov.traks.length;e++)this.buildTrakSampleLists(this.moov.traks[e])}buildTrakSampleLists(e){let i,s,n,a,o,l;e.samples=[],e.samples_duration=0,e.samples_size=0;const c=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,u=e.mdia.minf.stbl.stsc,d=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,f=e.mdia.minf.stbl.stts,p=e.mdia.minf.stbl.ctts,v=e.mdia.minf.stbl.stss,g=e.mdia.minf.stbl.stsd,_=e.mdia.minf.stbl.subs,x=e.mdia.minf.stbl.stdp,E=e.mdia.minf.stbl.sbgps,I=e.mdia.minf.stbl.sgpds;let z=-1,$=-1,M=-1,V=-1,N=0,H=0,T=0;if(nn.initSampleGroups(e,void 0,E,I),!(typeof d>"u")){for(i=0;i<d.sample_sizes.length;i++){const j={number:i,track_id:e.tkhd.track_id,timescale:e.mdia.mdhd.timescale,alreadyRead:0,size:d.sample_sizes[i]};e.samples[i]=j,e.samples_size+=j.size,i===0?(n=1,s=0,j.chunk_index=n,j.chunk_run_index=s,l=u.samples_per_chunk[s],o=0,s+1<u.first_chunk.length?a=u.first_chunk[s+1]-1:a=1/0):i<l?(j.chunk_index=n,j.chunk_run_index=s):(n++,j.chunk_index=n,o=0,n<=a||(s++,s+1<u.first_chunk.length?a=u.first_chunk[s+1]-1:a=1/0),j.chunk_run_index=s,l+=u.samples_per_chunk[s]),j.description_index=u.sample_description_index[j.chunk_run_index]-1,j.description=g.entries[j.description_index],j.offset=c.chunk_offsets[j.chunk_index-1]+o,o+=j.size,i>z&&($++,z<0&&(z=0),z+=f.sample_counts[$]),i>0?(e.samples[i-1].duration=f.sample_deltas[$],e.samples_duration+=e.samples[i-1].duration,j.dts=e.samples[i-1].dts+e.samples[i-1].duration):j.dts=0,p?(i>=M&&(V++,M<0&&(M=0),M+=p.sample_counts[V]),j.cts=e.samples[i].dts+p.sample_offsets[V]):j.cts=j.dts,v?(i===v.sample_numbers[N]-1?(j.is_sync=!0,N++):(j.is_sync=!1,j.degradation_priority=0),_&&_.entries[H].sample_delta+T===i+1&&(j.subsamples=_.entries[H].subsamples,T+=_.entries[H].sample_delta,H++)):j.is_sync=!0,nn.process_sdtp(e.mdia.minf.stbl.sdtp,j,j.number),x?j.degradation_priority=x.priority[i]:j.degradation_priority=0,_&&_.entries[H].sample_delta+T===i&&(j.subsamples=_.entries[H].subsamples,T+=_.entries[H].sample_delta),(E.length>0||I.length>0)&&nn.setSampleGroupProperties(e,j,i,e.sample_groups_info)}i>0&&(e.samples[i-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[i-1].dts,0),e.samples_duration+=e.samples[i-1].duration)}}updateSampleLists(){let e,i,s,n,a;if(this.moov!==void 0)for(;this.lastMoofIndex<this.moofs.length;){const o=this.moofs[this.lastMoofIndex];if(this.lastMoofIndex++,o.type==="moof"){const l=o;for(let c=0;c<l.trafs.length;c++){const u=l.trafs[c],d=this.getTrackById(u.tfhd.track_id),f=this.getTrexById(u.tfhd.track_id);u.tfhd.flags&2?e=u.tfhd.default_sample_description_index:e=f?f.default_sample_description_index:1,u.tfhd.flags&8?i=u.tfhd.default_sample_duration:i=f?f.default_sample_duration:0,u.tfhd.flags&16?s=u.tfhd.default_sample_size:s=f?f.default_sample_size:0,u.tfhd.flags&32?n=u.tfhd.default_sample_flags:n=f?f.default_sample_flags:0,u.sample_number=0,u.sbgps.length>0&&nn.initSampleGroups(d,u,u.sbgps,d.mdia.minf.stbl.sgpds,u.sgpds);for(let p=0;p<u.truns.length;p++){const v=u.truns[p];for(let g=0;g<v.sample_count;g++){const _=e-1;let x=n;v.flags&1024?x=v.sample_flags[g]:g===0&&v.flags&4&&(x=v.first_sample_flags);let E=s;v.flags&512&&(E=v.sample_size[g]),d.samples_size+=E;let I=i;v.flags&256&&(I=v.sample_duration[g]),d.samples_duration+=I;let z;d.first_traf_merged||g>0?z=d.samples[d.samples.length-1].dts+d.samples[d.samples.length-1].duration:(u.tfdt?z=u.tfdt.baseMediaDecodeTime:z=0,d.first_traf_merged=!0);let $=z;v.flags&2048&&($=z+v.sample_composition_time_offset[g]);const M=!!(u.tfhd.flags&1),V=!!(u.tfhd.flags&131072),N=!!(v.flags&1);let H=0;M?H=u.tfhd.base_data_offset:V||p===0?H=l.start:H=a;let T;p===0&&g===0?N?T=H+v.data_offset:T=H:T=a,a=T+E;const j=u.sample_number;u.sample_number++;const St={cts:$,description_index:_,description:d.mdia.minf.stbl.stsd.entries[_],dts:z,duration:I,moof_number:this.lastMoofIndex,number_in_traf:j,number:d.samples.length,offset:T,size:E,timescale:d.mdia.mdhd.timescale,track_id:d.tkhd.track_id,is_sync:!(x>>16&1),is_leading:x>>26&3,depends_on:x>>24&3,is_depended_on:x>>22&3,has_redundancy:x>>20&3,degradation_priority:x&65535};u.first_sample_index=d.samples.length,d.samples.push(St),(u.sbgps.length>0||u.sgpds.length>0||d.mdia.minf.stbl.sbgps.length>0||d.mdia.minf.stbl.sgpds.length>0)&&nn.setSampleGroupProperties(d,St,St.number_in_traf,u.sample_groups_info)}}if(u.subs){d.has_fragment_subsamples=!0;let p=u.first_sample_index;for(let v=0;v<u.subs.entries.length;v++){p+=u.subs.entries[v].sample_delta;const g=d.samples[p-1];g.subsamples=u.subs.entries[v].subsamples}}}}}}getSample(e,i){const s=e.samples[i];if(this.moov){if(!s.data)s.data=new Uint8Array(s.size),s.alreadyRead=0,this.samplesDataSize+=s.size,L.debug("ISOFile","Allocating sample #"+i+" on track #"+e.tkhd.track_id+" of size "+s.size+" (total: "+this.samplesDataSize+")");else if(s.alreadyRead===s.size)return s;for(;;){let n=this.stream,a=n.findPosition(!0,s.offset+s.alreadyRead,!1),o,l;if(a>-1)o=n.buffers[a],l=o.fileStart;else for(const c of this.mdats){if(!c.stream){L.debug("ISOFile","mdat stream not yet fully read for #"+this.mdats.indexOf(c)+" mdat");continue}if(a=c.stream.findPosition(!0,s.offset+s.alreadyRead-c.start-c.hdr_size,!1),a>-1){n=c.stream,o=c.stream.buffers[a],l=c.start+c.hdr_size+o.fileStart;break}}if(o){const c=o.byteLength-(s.offset+s.alreadyRead-l);if(s.size-s.alreadyRead<=c)return L.debug("ISOFile","Getting sample #"+i+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-l)+" read size: "+(s.size-s.alreadyRead)+" full size: "+s.size+")"),Hi.memcpy(s.data.buffer,s.alreadyRead,o,s.offset+s.alreadyRead-l,s.size-s.alreadyRead),o.usedBytes+=s.size-s.alreadyRead,n.logBufferLevel(),s.alreadyRead=s.size,s;if(c===0)return;L.debug("ISOFile","Getting sample #"+i+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-l)+" read size: "+c+" full size: "+s.size+")"),Hi.memcpy(s.data.buffer,s.alreadyRead,o,s.offset+s.alreadyRead-l,c),s.alreadyRead+=c,o.usedBytes+=c,n.logBufferLevel()}else return}}}releaseSample(e,i){const s=e.samples[i];return s.data?(this.samplesDataSize-=s.size,s.data=void 0,s.alreadyRead=0,s.size):0}getAllocatedSampleDataSize(){return this.samplesDataSize}getCodecs(){let e="";for(let i=0;i<this.moov.traks.length;i++){const s=this.moov.traks[i];i>0&&(e+=","),e+=s.mdia.minf.stbl.stsd.entries[0].getCodec()}return e}getTrexById(e){if(!(!this.moov||!this.moov.mvex))for(let i=0;i<this.moov.mvex.trexs.length;i++){const s=this.moov.mvex.trexs[i];if(s.track_id===e)return s}}getTrackById(e){if(this.moov)for(let i=0;i<this.moov.traks.length;i++){const s=this.moov.traks[i];if(s.tkhd.track_id===e)return s}}flattenItemInfo(){const e=this.items,i=this.entity_groups,s=this.meta;if(!(!s||!s.hdlr||!s.iinf)){for(let n=0;n<s.iinf.item_infos.length;n++){const a=s.iinf.item_infos[n].item_ID;e[a]={id:a,name:s.iinf.item_infos[n].item_name,ref_to:[],content_type:s.iinf.item_infos[n].content_type,content_encoding:s.iinf.item_infos[n].content_encoding,item_uri_type:s.iinf.item_infos[n].item_uri_type,type:s.iinf.item_infos[n].item_type?s.iinf.item_infos[n].item_type:"mime",protection:s.iinf.item_infos[n].item_protection_index>0?s.ipro.protections[s.iinf.item_infos[n].item_protection_index-1]:void 0}}if(s.grpl)for(let n=0;n<s.grpl.boxes.length;n++){const a=s.grpl.boxes[n];i[a.group_id]={id:a.group_id,entity_ids:a.entity_ids,type:a.type}}if(s.iloc)for(let n=0;n<s.iloc.items.length;n++){const a=s.iloc.items[n],o=e[a.item_ID];a.data_reference_index!==0&&(L.warn("Item storage with reference to other files: not supported"),o.source=s.dinf.boxes[a.data_reference_index-1]),o.extents=[],o.size=0;for(let l=0;l<a.extents.length;l++)o.extents[l]={offset:a.extents[l].extent_offset+a.base_offset,length:a.extents[l].extent_length,alreadyRead:0},a.construction_method===1&&(o.extents[l].offset+=s.idat.start+s.idat.hdr_size),o.size+=o.extents[l].length}if(s.pitm){const n=s.pitm.item_id;e[n]?e[n].primary=!0:L.warn("ISOFile","Primary item_id #"+n+" does not exist in items")}if(s.iref)for(let n=0;n<s.iref.references.length;n++){const a=s.iref.references[n];for(let o=0;o<a.references.length;o++)e[a.from_item_ID].ref_to.push({type:a.type,id:a.references[o]})}if(s.iprp)for(let n=0;n<s.iprp.ipmas.length;n++){const a=s.iprp.ipmas[n];for(let o=0;o<a.associations.length;o++){const l=a.associations[o],c=e[l.id]??i[l.id];if(c){c.properties===void 0&&(c.properties={boxes:[]});for(let u=0;u<l.props.length;u++){const d=l.props[u];if(d.property_index>0&&d.property_index-1<s.iprp.ipco.boxes.length){const f=s.iprp.ipco.boxes[d.property_index-1];c.properties[f.type]=f,c.properties.boxes.push(f)}}}}}}}getItem(e){if(!this.meta)return;const i=this.items[e];if(!i.data&&i.size)i.data=new Uint8Array(i.size),i.alreadyRead=0,this.itemsDataSize+=i.size,L.debug("ISOFile","Allocating item #"+e+" of size "+i.size+" (total: "+this.itemsDataSize+")");else if(i.alreadyRead===i.size)return i;for(let s=0;s<i.extents.length;s++){const n=i.extents[s];if(n.alreadyRead!==n.length){const a=this.stream.findPosition(!0,n.offset+n.alreadyRead,!1);if(a>-1){const o=this.stream.buffers[a],l=o.byteLength-(n.offset+n.alreadyRead-o.fileStart);if(n.length-n.alreadyRead<=l)L.debug("ISOFile","Getting item #"+e+" extent #"+s+" data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-o.fileStart)+" read size: "+(n.length-n.alreadyRead)+" full extent size: "+n.length+" full item size: "+i.size+")"),Hi.memcpy(i.data.buffer,i.alreadyRead,o,n.offset+n.alreadyRead-o.fileStart,n.length-n.alreadyRead),(!this.parsingMdat||this.discardMdatData)&&(o.usedBytes+=n.length-n.alreadyRead),this.stream.logBufferLevel(),i.alreadyRead+=n.length-n.alreadyRead,n.alreadyRead=n.length;else{L.debug("ISOFile","Getting item #"+e+" extent #"+s+" partial data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-o.fileStart)+" read size: "+l+" full extent size: "+n.length+" full item size: "+i.size+")"),Hi.memcpy(i.data.buffer,i.alreadyRead,o,n.offset+n.alreadyRead-o.fileStart,l),n.alreadyRead+=l,i.alreadyRead+=l,(!this.parsingMdat||this.discardMdatData)&&(o.usedBytes+=l),this.stream.logBufferLevel();return}}else return}}if(i.alreadyRead===i.size)return i}releaseItem(e){const i=this.items[e];if(i.data){this.itemsDataSize-=i.size,i.data=void 0,i.alreadyRead=0;for(let s=0;s<i.extents.length;s++){const n=i.extents[s];n.alreadyRead=0}return i.size}else return 0}processItems(e){for(const i in this.items){const s=this.items[i];this.getItem(s.id),e&&!s.sent&&(e(s),s.sent=!0,s.data=void 0)}}hasItem(e){for(const i in this.items){const s=this.items[i];if(s.name===e)return s.id}return-1}getMetaHandler(){if(this.meta)return this.meta.hdlr.handler}getPrimaryItem(){if(this.meta&&this.meta.pitm)return this.getItem(this.meta.pitm.item_id)}itemToFragmentedTrackFile({itemId:e}={}){let i;if(e?i=this.getItem(e):i=this.getPrimaryItem(),!i)return;const s=new nn;s.discardMdatData=!1;const n={type:i.type,description_boxes:i.properties.boxes};i.properties.ispe&&(n.width=i.properties.ispe.image_width,n.height=i.properties.ispe.image_height);const a=s.addTrack(n);if(a)return s.addSample(a,i.data),s}processIncompleteBox(e){if(e.type==="mdat"){const i=new El(e.size);return this.parsingMdat=i,this.boxes.push(i),this.mdats.push(i),i.start=e.start,i.hdr_size=e.hdr_size,i.original_size=e.original_size,this.stream.addUsedBytes(i.hdr_size),this.lastBoxStartPosition=i.start+i.size,this.stream.seek(i.start+i.size,!1,this.discardMdatData)?(this.transferMdatData(),this.parsingMdat=void 0,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=i.start+i.size,!1)}else return e.type==="moov"&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),this.stream.mergeNextBuffer&&this.stream.mergeNextBuffer()?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1)}hasIncompleteMdat(){return this.parsingMdat!==void 0}transferMdatData(e){const i=e??this.parsingMdat;if(this.discardMdatData){L.debug("ISOFile","Discarding 'mdat' data, not transferring it to the mdat box stream");return}if(!i){L.warn("ISOFile","Cannot transfer 'mdat' data, no mdat box is being parsed");return}const s=this.stream.findPosition(!0,i.start+i.hdr_size,!1),n=this.stream.findPosition(!0,i.start+i.size,!1);if(s===-1||n===-1){L.warn("ISOFile","Cannot transfer 'mdat' data, start or end buffer not found");return}i.stream=new Bl;for(let a=s;a<=n;a++){const o=this.stream.buffers[a],l=a===s?i.start+i.hdr_size-o.fileStart:0,c=a===n?i.start+i.size-o.fileStart:o.byteLength;if(c>l){L.debug("ISOFile","Transferring 'mdat' data from buffer #"+a+" ("+l+" to "+c+")");const u=c-l,d=new Fn(u),f=i.stream.getAbsoluteEndPosition();Hi.memcpy(d,0,o,l,u),d.fileStart=f,i.stream.insertBuffer(d),o.usedBytes+=u}}}processIncompleteMdat(){const e=this.parsingMdat;return this.stream.seek(e.start+e.size,!1,this.discardMdatData)?(L.debug("ISOFile","Found 'mdat' end in buffered data"),this.transferMdatData(),this.parsingMdat=void 0,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)}restoreParsePosition(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)}saveParsePosition(){this.lastBoxStartPosition=this.stream.getPosition()}updateUsedBytes(e,i){this.stream.addUsedBytes&&(e.type==="mdat"?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))}addBox(e){return mt.prototype.addBox.call(this,e)}init(e={}){const i=this.addBox(new j_);i.major_brand=e.brands&&e.brands[0]||"iso4",i.minor_version=0,i.compatible_brands=e.brands||["iso4"];const s=this.addBox(new Tl);s.addBox(new od);const n=s.addBox(new J_);return n.timescale=e.timescale||600,n.rate=e.rate||65536,n.creation_time=0,n.modification_time=0,n.duration=e.duration||0,n.volume=e.width?0:256,n.matrix=[65536,0,0,0,65536,0,0,0,1073741824],n.next_track_id=1,this}addTrack(e={}){this.moov||this.init(e);const i=e||{};i.width=i.width||320,i.height=i.height||320,i.id=i.id||this.moov.mvhd.next_track_id,i.type=i.type||"avc1";const s=this.moov.addBox(new $_);this.moov.mvhd.next_track_id=i.id+1;const n=s.addBox(new dg);n.flags=7,n.creation_time=0,n.modification_time=0,n.track_id=i.id,n.duration=i.duration||0,n.layer=i.layer||0,n.alternate_group=0,n.volume=1,n.matrix=[65536,0,0,0,65536,0,0,0,1073741824],n.width=i.width<<16,n.height=i.height<<16;const a=s.addBox(new O_),o=a.addBox(new W_);o.creation_time=0,o.modification_time=0,o.timescale=i.timescale||1,o.duration=i.media_duration||0,o.language=i.language||"und";const l=a.addBox(new G_);l.handler=i.hdlr||"vide",l.name=i.name||"Track created with MP4Box.js";const c=a.addBox(new V_);c.extended_language=i.language||"fr-FR";const u=a.addBox(new F_),d=Ji.sampleEntry[i.type];if(!d)return;const f=new d;if(f.data_reference_index=1,f instanceof Ye){const $=f,M=u.addBox(new pg);M.graphicsmode=0,M.opcolor=[0,0,0],$.width=i.width,$.height=i.height,$.horizresolution=72<<16,$.vertresolution=72<<16,$.frame_count=1,$.compressorname=i.type+" Compressor",$.depth=24,i.avcDecoderConfigRecord?$.addBox(new z_(i.avcDecoderConfigRecord.byteLength)).parse(new Hi(i.avcDecoderConfigRecord)):i.hevcDecoderConfigRecord&&$.addBox(new q_(i.hevcDecoderConfigRecord.byteLength)).parse(new Hi(i.hevcDecoderConfigRecord))}else if(f instanceof rs){const $=f,M=u.addBox(new ig);M.balance=i.balance||0,$.channel_count=i.channel_count||2,$.samplesize=i.samplesize||16,$.samplerate=i.samplerate||65536}else f instanceof qp?u.addBox(new C_):f instanceof Ir?(u.addBox(new ng),f instanceof eg&&(f.namespace=i.namespace||"nonamespace",f.schema_location=i.schema_location||"",f.auxiliary_mime_types=i.auxiliary_mime_types||"")):f instanceof fa?u.addBox(new Ul):f instanceof qd?u.addBox(new Ul):u.addBox(new Ul);i.description&&f.addBox.call(f,i.description),i.description_boxes&&i.description_boxes.forEach(function($){f.addBox.call(f,$)});const p=u.addBox(new N_).addBox(new H_),v=new hg;v.flags=1,p.addEntry(v);const g=u.addBox(new D_);g.addBox(new ag).addEntry(f);const _=g.addBox(new lg);_.sample_counts=[],_.sample_deltas=[];const x=g.addBox(new rg);x.first_chunk=[],x.samples_per_chunk=[],x.sample_description_index=[];const E=g.addBox(new sg);E.chunk_offsets=[];const I=g.addBox(new og);I.sample_sizes=[];const z=this.moov.mvex.addBox(new ld);return z.track_id=i.id,z.default_sample_description_index=i.default_sample_description_index||1,z.default_sample_duration=i.default_sample_duration||0,z.default_sample_size=i.default_sample_size||0,z.default_sample_flags=i.default_sample_flags||0,this.buildTrakSampleLists(s),i.id}addSample(e,i,{sample_description_index:s,duration:n=1,cts:a=0,dts:o=0,is_sync:l=!1,is_leading:c=0,depends_on:u=0,is_depended_on:d=0,has_redundancy:f=0,degradation_priority:p=0,subsamples:v,offset:g=0}={}){const _=this.getTrackById(e);if(_===void 0)return;const x=s?s-1:0,E={number:_.samples.length,track_id:_.tkhd.track_id,timescale:_.mdia.mdhd.timescale,description_index:x,description:_.mdia.minf.stbl.stsd.entries[x],data:i,size:i.byteLength,alreadyRead:i.byteLength,duration:n,cts:a,dts:o,is_sync:l,is_leading:c,depends_on:u,is_depended_on:d,has_redundancy:f,degradation_priority:p,offset:g,subsamples:v};_.samples.push(E),_.samples_size+=E.size,_.samples_duration+=E.duration,_.first_dts===void 0&&(_.first_dts=o),this.processSamples();const I=this.addBox(this.createMoof([E]));I.computeSize(),I.trafs[0].truns[0].data_offset=I.size+8;const z=this.addBox(new El);return z.data=new Uint8Array(i),E}createMoof(e){if(e.length===0)return;if(e.some(d=>d.track_id!==e[0].track_id))throw new Error("Cannot create moof for samples from different tracks: "+e.map(d=>d.track_id).join(", "));const i=e[0].track_id,s=this.getTrackById(i);if(!s)throw new Error("Cannot create moof for non-existing track: "+i);const n=new R_,a=n.addBox(new X_);a.sequence_number=++this.nextMoofNumber;const o=n.addBox(new L_),l=o.addBox(new ug);l.track_id=i,l.flags=kk;const c=o.addBox(new cg);c.baseMediaDecodeTime=e[0].dts-(s.first_dts||0);const u=o.addBox(new fg);u.flags=769|Bk|Ek,u.data_offset=0,u.first_sample_flags=0,u.sample_count=e.length;for(const d of e){let f=0;d.is_sync?f=1<<25:f=65536,u.sample_duration.push(d.duration),u.sample_size.push(d.size),u.sample_flags.push(f),u.sample_composition_time_offset.push(d.cts-d.dts)}return n}print(e){e.indent="";for(let i=0;i<this.boxes.length;i++)this.boxes[i]&&this.boxes[i].print(e)}};function A3(t=!1,e){return new P3(e,!t)}var I3=class extends X{constructor(...t){super(...t),this.box_name="EventMessageBox"}static{this.fourcc="emsg"}parse(t){this.parseFullHeader(t),this.version===1?(this.timescale=t.readUint32(),this.presentation_time=t.readUint64(),this.event_duration=t.readUint32(),this.id=t.readUint32(),this.scheme_id_uri=t.readCString(),this.value=t.readCString()):(this.scheme_id_uri=t.readCString(),this.value=t.readCString(),this.timescale=t.readUint32(),this.presentation_time_delta=t.readUint32(),this.event_duration=t.readUint32(),this.id=t.readUint32());let e=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version===1&&(e-=4),this.message_data=t.readUint8Array(e)}write(t){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(t),t.writeCString(this.scheme_id_uri),t.writeCString(this.value),t.writeUint32(this.timescale),t.writeUint32(this.presentation_time_delta),t.writeUint32(this.event_duration),t.writeUint32(this.id),t.writeUint8Array(this.message_data)}},M3=class extends X{constructor(...t){super(...t),this.box_name="CompressedSubsegmentIndexBox"}static{this.fourcc="ssix"}parse(t){this.parseFullHeader(t),this.subsegments=[];const e=t.readUint32();for(let i=0;i<e;i++){const s={};this.subsegments.push(s),s.ranges=[];const n=t.readUint32();for(let a=0;a<n;a++){const o={};s.ranges.push(o),o.level=t.readUint8(),o.range_size=t.readUint24()}}}},z3=class extends mt{constructor(...t){super(...t),this.box_name="SegmentTypeBox"}static{this.fourcc="styp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];let i=0;for(;e>=4;)this.compatible_brands[i]=t.readString(4),e-=4,i++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),t.writeUint32(this.minor_version);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},C3=A_({Descriptor:()=>Cr,ES_Descriptor:()=>gg,MPEG4DescriptorParser:()=>D3});const mg=3,Jl=4,Wd=5,vg=6;var Cr=class _g{constructor(e,i){this.tag=e,this.size=i,this.descs=[]}parse(e){this.data=e.readUint8Array(this.size)}findDescriptor(e){for(let i=0;i<this.descs.length;i++)if(this.descs[i].tag===e)return this.descs[i]}parseOneDescriptor(e){let i=0;const s=e.readUint8();let n=e.readUint8();for(;n&128;)i=(i<<7)+(n&127),n=e.readUint8();i=(i<<7)+(n&127),L.debug("Descriptor","Found "+(Pl[s]||"Descriptor "+s)+", size "+i+" at position "+e.getPosition());const a=Pl[s]?new N3[Pl[s]](i):new _g(i);return a.parse(e),a}parseRemainingDescriptors(e){const i=e.getPosition();for(;e.getPosition()<i+this.size;){const s=this.parseOneDescriptor?.(e);this.descs.push(s)}}},gg=class extends Cr{constructor(t){super(mg,t)}parse(t){if(this.ES_ID=t.readUint16(),this.flags=t.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=t.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){const e=t.readUint8();this.URL=t.readString(e),this.size-=e+1}else this.URL="";this.flags&32?(this.OCR_ES_ID=t.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(t)}getOTI(){const t=this.findDescriptor(Jl);return t?t.oti:0}getAudioConfig(){const t=this.findDescriptor(Jl);if(!t)return;const e=t.findDescriptor(Wd);if(e&&e.data){let i=(e.data[0]&248)>>3;return i===31&&e.data.length>=2&&(i=32+((e.data[0]&7)<<3)+((e.data[1]&224)>>5)),i}}},$3=class extends Cr{constructor(t){super(Jl,t)}parse(t){this.oti=t.readUint8(),this.streamType=t.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=t.readUint24(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32(),this.size-=13,this.parseRemainingDescriptors(t)}},O3=class extends Cr{constructor(t){super(Wd,t)}},F3=class extends Cr{constructor(t){super(vg,t)}};const N3={Descriptor:Cr,ES_Descriptor:gg,DecoderConfigDescriptor:$3,DecoderSpecificInfo:O3,SLConfigDescriptor:F3},Pl={[mg]:"ES_Descriptor",[Jl]:"DecoderConfigDescriptor",[Wd]:"DecoderSpecificInfo",[vg]:"SLConfigDescriptor"};var D3=class{constructor(){this.parseOneDescriptor=Cr.prototype.parseOneDescriptor}getDescriptorName(t){return Pl[t]}},R3=class extends mt{constructor(...t){super(...t),this.box_name="AV1LayeredImageIndexingProperty"}static{this.fourcc="a1lx"}parse(t){const e=((t.readUint8()&1)+1)*16;this.layer_size=[];for(let i=0;i<3;i++)e===16?this.layer_size[i]=t.readUint16():this.layer_size[i]=t.readUint32()}},L3=class extends mt{constructor(...t){super(...t),this.box_name="OperatingPointSelectorProperty"}static{this.fourcc="a1op"}parse(t){this.op_index=t.readUint8()}},H3=class extends X{constructor(...t){super(...t),this.box_name="AuxiliaryTypeProperty"}static{this.fourcc="auxC"}parse(t){this.parseFullHeader(t),this.aux_type=t.readCString();const e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}},V3=class extends mt{constructor(...t){super(...t),this.box_name="BitRateBox"}static{this.fourcc="btrt"}parse(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}},j3=class extends X{constructor(...t){super(...t),this.box_name="CodingConstraintsBox"}static{this.fourcc="ccst"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.all_ref_pics_intra=(e&128)===128,this.intra_pred_used=(e&64)===64,this.max_ref_per_pic=(e&63)>>2,t.readUint24()}},G3=class extends mt{constructor(...t){super(...t),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cdef"}parse(t){this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[];for(let e=0;e<this.channel_count;e++)this.channel_indexes.push(t.readUint16()),this.channel_types.push(t.readUint16()),this.channel_associations.push(t.readUint16())}},q3=class extends mt{constructor(...t){super(...t),this.box_name="CleanApertureBox"}static{this.fourcc="clap"}parse(t){this.cleanApertureWidthN=t.readUint32(),this.cleanApertureWidthD=t.readUint32(),this.cleanApertureHeightN=t.readUint32(),this.cleanApertureHeightD=t.readUint32(),this.horizOffN=t.readUint32(),this.horizOffD=t.readUint32(),this.vertOffN=t.readUint32(),this.vertOffD=t.readUint32()}},W3=class extends mt{constructor(...t){super(...t),this.box_name="ContentLightLevelBox"}static{this.fourcc="clli"}parse(t){this.max_content_light_level=t.readUint16(),this.max_pic_average_light_level=t.readUint16()}},Y3=class extends mt{constructor(...t){super(...t),this.box_name="CameraExtrinsicMatrixProperty"}static{this.fourcc="cmex"}parse(t){this.flags&1&&(this.pos_x=t.readInt32()),this.flags&2&&(this.pos_y=t.readInt32()),this.flags&4&&(this.pos_z=t.readInt32()),this.flags&8&&(this.version===0?this.flags&16?(this.quat_x=t.readInt32(),this.quat_y=t.readInt32(),this.quat_z=t.readInt32()):(this.quat_x=t.readInt16(),this.quat_y=t.readInt16(),this.quat_z=t.readInt16()):this.version),this.flags&32&&(this.id=t.readUint32())}},K3=class extends mt{constructor(...t){super(...t),this.box_name="CameraIntrinsicMatrixProperty"}static{this.fourcc="cmin"}parse(t){this.focal_length_x=t.readInt32(),this.principal_point_x=t.readInt32(),this.principal_point_y=t.readInt32(),this.flags&1&&(this.focal_length_y=t.readInt32(),this.skew_factor=t.readInt32())}},X3=class extends X{constructor(...t){super(...t),this.box_name="CompressionConfigurationBox"}static{this.fourcc="cmpC"}parse(t){this.parseFullHeader(t),this.compression_type=t.readString(4),this.compressed_unit_type=t.readUint8()}},J3=class extends mt{constructor(...t){super(...t),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cmpd"}parse(t){this.component_count=t.readUint32(),this.component_types=[],this.component_type_urls=[];for(let e=0;e<this.component_count;e++){const i=t.readUint16();this.component_types.push(i),i>=32768&&this.component_type_urls.push(t.readCString())}}},Z3=class extends X{constructor(...t){super(...t),this.box_name="ChunkLargeOffsetBox"}static{this.fourcc="co64"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.chunk_offsets=[],this.version===0)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint64())}write(t){this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length);for(let e=0;e<this.chunk_offsets.length;e++)t.writeUint64(this.chunk_offsets[e])}},Q3=class extends X{constructor(...t){super(...t),this.box_name="ContentLightLevelBox"}static{this.fourcc="CoLL"}parse(t){this.parseFullHeader(t),this.maxCLL=t.readUint16(),this.maxFALL=t.readUint16()}},t5=class{toString(){let t="centre_azimuth: ";return t+=this.centre_azimuth,t+=" (",t+=this.centre_azimuth*2**-16,t+="°), centre_elevation: ",t+=this.centre_elevation,t+=" (",t+=this.centre_elevation*2**-16,t+="°), centre_tilt: ",t+=this.centre_tilt,t+=" (",t+=this.centre_tilt*2**-16,t+="°)",this.range_included_flag&&(t+=", azimuth_range: ",t+=this.azimuth_range,t+=" (",t+=this.azimuth_range*2**-16,t+="°), elevation_range: ",t+=this.elevation_range,t+=" (",t+=this.elevation_range*2**-16,t+="°)"),this.interpolate_included_flag&&(t+=", interpolate: ",t+=this.interpolate),t}},e5=class{toString(){let t="";return this.view_idc&&(t+="view_idc: ",t+=this.view_idc,t+=", "),t+="sphere_region: {",t+=this.sphere_region,t+="}",t}},i5=class extends X{constructor(...t){super(...t),this.box_name="CoverageInformationBox"}static{this.fourcc="covi"}parse(t){this.parseFullHeader(t),this.coverage_shape_type=t.readUint8();const e=t.readUint8(),i=t.readInt8(),s=i&128;s&&(this.default_view_idc=(i&96)>>5),this.coverage_regions=new Array;for(let n=0;n<e;n++){const a=new e5;s&&(a.view_idc=t.readUint8()>>6),a.sphere_region=this.parseSphereRegion(t,!0,!0),this.coverage_regions.push(a)}}parseSphereRegion(t,e,i){const s=new t5;return s.centre_azimuth=t.readInt32(),s.centre_elevation=t.readInt32(),s.centre_tilt=t.readInt32(),s.range_included_flag=e,e&&(s.azimuth_range=t.readUint32(),s.elevation_range=t.readUint32()),s.interpolate_included_flag=i,i&&(s.interpolate=(t.readUint8()&128)===128),s}},s5=class extends X{constructor(...t){super(...t),this.box_name="CopyrightBox"}static{this.fourcc="cprt"}parse(t){this.parseFullHeader(t),this.parseLanguage(t),this.notice=t.readCString()}},n5=class extends X{constructor(...t){super(...t),this.box_name="CompatibleSchemeTypeBox"}static{this.fourcc="csch"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),this.flags&1&&(this.scheme_uri=t.readCString())}};const La=2147483647;var r5=class extends X{constructor(...t){super(...t),this.box_name="CompositionToDecodeBox"}static{this.fourcc="cslg"}parse(t){this.parseFullHeader(t),this.version===0?(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32()):this.version===1&&(this.compositionToDTSShift=t.readInt64(),this.leastDecodeToDisplayDelta=t.readInt64(),this.greatestDecodeToDisplayDelta=t.readInt64(),this.compositionStartTime=t.readInt64(),this.compositionEndTime=t.readInt64())}write(t){this.version=0,(this.compositionToDTSShift>La||this.leastDecodeToDisplayDelta>La||this.greatestDecodeToDisplayDelta>La||this.compositionStartTime>La||this.compositionEndTime>La)&&(this.version=1),this.flags=0,this.version===0?(this.size=20,this.writeHeader(t),t.writeInt32(this.compositionToDTSShift),t.writeInt32(this.leastDecodeToDisplayDelta),t.writeInt32(this.greatestDecodeToDisplayDelta),t.writeInt32(this.compositionStartTime),t.writeInt32(this.compositionEndTime)):this.version===1&&(this.size=40,this.writeHeader(t),t.writeInt64(this.compositionToDTSShift),t.writeInt64(this.leastDecodeToDisplayDelta),t.writeInt64(this.greatestDecodeToDisplayDelta),t.writeInt64(this.compositionStartTime),t.writeInt64(this.compositionEndTime))}},a5=class extends X{constructor(...t){super(...t),this.box_name="CompositionOffsetBox"}static{this.fourcc="ctts"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.sample_counts=[],this.sample_offsets=[],this.version===0)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());const s=t.readInt32();s<0&&L.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(s)}else if(this.version===1)for(let i=0;i<e;i++)this.sample_counts.push(t.readUint32()),this.sample_offsets.push(t.readInt32())}write(t){this.version=this.sample_offsets.some(e=>e<0)?1:0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),this.version===1?t.writeInt32(this.sample_offsets[e]):t.writeUint32(this.sample_offsets[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)t[e].pts=t[e].dts+this.sample_offsets[i],e++}},o5=class extends mt{constructor(...t){super(...t),this.box_name="AC3SpecificBox"}static{this.fourcc="dac3"}parse(t){const e=t.readUint8(),i=t.readUint8(),s=t.readUint8();this.fscod=e>>6,this.bsid=e>>1&31,this.bsmod=(e&1)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=i&3|s>>5&7}},l5=class extends mt{constructor(...t){super(...t),this.box_name="EC3SpecificBox"}static{this.fourcc="dec3"}parse(t){const e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=e&7,this.ind_subs=[];for(let i=0;i<this.num_ind_sub+1;i++){const s=t.readUint8(),n=t.readUint8(),a=t.readUint8(),o={fscod:s>>6,bsid:s>>1&31,bsmod:(s&1)<<4|n>>4&15,acmod:n>>1&7,lfeon:n&1,num_dep_sub:a>>1&15};this.ind_subs.push(o),o.num_dep_sub>0&&(o.chan_loc=(a&1)<<8|t.readUint8())}}},c5=class extends X{constructor(...t){super(...t),this.box_name="FLACSpecificBox"}static{this.fourcc="dfLa"}parse(t){this.parseFullHeader(t);const e=127,i=128,s=[],n=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];let a;do{a=t.readUint8();const o=Math.min(a&e,n.length-1);o?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),s.push(n[o])}while(a&i);this.numMetadataBlocks=s.length+" ("+s.join(", ")+")"}},u5=class extends mt{constructor(...t){super(...t),this.box_name="hintimmediateBytesSent"}static{this.fourcc="dimm"}parse(t){this.bytessent=t.readUint64()}},d5=class extends mt{constructor(...t){super(...t),this.box_name="hintlongestpacket"}static{this.fourcc="dmax"}parse(t){this.time=t.readUint32()}},f5=class extends mt{constructor(...t){super(...t),this.box_name="hintmediaBytesSent"}static{this.fourcc="dmed"}parse(t){this.bytessent=t.readUint64()}},h5=class extends mt{constructor(...t){super(...t),this.box_name="OpusSpecificBox"}static{this.fourcc="dOps"}parse(t){if(this.Version=t.readUint8(),this.OutputChannelCount=t.readUint8(),this.PreSkip=t.readUint16(),this.InputSampleRate=t.readUint32(),this.OutputGain=t.readInt16(),this.ChannelMappingFamily=t.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(let e=0;e<this.OutputChannelCount;e++)this.ChannelMapping[e]=t.readUint8()}}write(t){if(this.size=11,this.ChannelMappingFamily!==0&&(this.size+=2+this.OutputChannelCount),this.writeHeader(t),t.writeUint8(this.Version),t.writeUint8(this.OutputChannelCount),t.writeUint16(this.PreSkip),t.writeUint32(this.InputSampleRate),t.writeInt16(this.OutputGain),t.writeUint8(this.ChannelMappingFamily),this.ChannelMappingFamily!==0){t.writeUint8(this.StreamCount),t.writeUint8(this.CoupledCount);for(let e=0;e<this.OutputChannelCount;e++)t.writeUint8(this.ChannelMapping[e])}}},p5=class extends mt{constructor(...t){super(...t),this.box_name="hintrepeatedBytesSent"}static{this.fourcc="drep"}parse(t){this.bytessent=t.readUint64()}},m5=class extends X{constructor(...t){super(...t),this.box_name="EditListBox"}static{this.fourcc="elst"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){const s={segment_duration:this.version===1?t.readUint64():t.readUint32(),media_time:this.version===1?t.readInt64():t.readInt32(),media_rate_integer:t.readInt16(),media_rate_fraction:t.readInt16()};this.entries.push(s)}}write(t){const e=this.entries.some(i=>i.segment_duration>bi||i.media_time>bi)||this.version===1;this.version=e?1:0,this.size=4+12*this.entries.length,this.size+=e?8*this.entries.length:0,this.writeHeader(t),t.writeUint32(this.entries.length);for(let i=0;i<this.entries.length;i++){const s=this.entries[i];e?(t.writeUint64(s.segment_duration),t.writeInt64(s.media_time)):(t.writeUint32(s.segment_duration),t.writeInt32(s.media_time)),t.writeInt16(s.media_rate_integer),t.writeInt16(s.media_rate_fraction)}}},Ai=class extends X{parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){const i=t.readUint32();this.entity_ids.push(i)}}},v5=class extends Ai{constructor(...t){super(...t),this.box_name="Auto exposure bracketing"}static{this.fourcc="aebr"}},_5=class extends Ai{constructor(...t){super(...t),this.box_name="Flash exposure information"}static{this.fourcc="afbr"}},g5=class extends Ai{constructor(...t){super(...t),this.box_name="Album collection"}static{this.fourcc="albc"}},y5=class extends Ai{constructor(...t){super(...t),this.box_name="Alternative entity"}static{this.fourcc="altr"}},b5=class extends Ai{constructor(...t){super(...t),this.box_name="Burst image"}static{this.fourcc="brst"}},x5=class extends Ai{constructor(...t){super(...t),this.box_name="Depth of field bracketing"}static{this.fourcc="dobr"}},w5=class extends Ai{constructor(...t){super(...t),this.box_name="Equivalent entity"}static{this.fourcc="eqiv"}},S5=class extends Ai{constructor(...t){super(...t),this.box_name="Favorites collection"}static{this.fourcc="favc"}},k5=class extends Ai{constructor(...t){super(...t),this.box_name="Focus bracketing"}static{this.fourcc="fobr"}},B5=class extends Ai{constructor(...t){super(...t),this.box_name="Image item with an audio track"}static{this.fourcc="iaug"}},E5=class extends Ai{constructor(...t){super(...t),this.box_name="Panorama"}static{this.fourcc="pano"}},U5=class extends Ai{constructor(...t){super(...t),this.box_name="Slideshow"}static{this.fourcc="slid"}},T5=class extends Ai{constructor(...t){super(...t),this.box_name="Stereo"}static{this.fourcc="ster"}},P5=class extends Ai{constructor(...t){super(...t),this.box_name="Time-synchronized capture"}static{this.fourcc="tsyn"}},A5=class extends Ai{constructor(...t){super(...t),this.box_name="White balance bracketing"}static{this.fourcc="wbbr"}},I5=class extends Ai{constructor(...t){super(...t),this.box_name="Progressive rendering"}static{this.fourcc="prgr"}},M5=class extends Ai{constructor(...t){super(...t),this.box_name="Image pyramid"}static{this.fourcc="pymd"}parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){const i=t.readUint32();this.entity_ids.push(i)}this.tile_size_x=t.readUint16(),this.tile_size_y=t.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[];for(let e=0;e<this.num_entities_in_group;e++)this.layer_binning[e]=t.readUint16(),this.tiles_in_layer_row_minus1[e]=t.readUint16(),this.tiles_in_layer_column_minus1[e]=t.readUint16()}},z5=class extends mt{constructor(...t){super(...t),this.box_name="FieldHandlingBox"}static{this.fourcc="fiel"}parse(t){this.fieldCount=t.readUint8(),this.fieldOrdering=t.readUint8()}},C5=class extends mt{constructor(...t){super(...t),this.box_name="OriginalFormatBox"}static{this.fourcc="frma"}parse(t){this.data_format=t.readString(4)}},$5=class extends mt{constructor(...t){super(...t),this.box_name="ImageMirror"}static{this.fourcc="imir"}parse(t){const e=t.readUint8();this.reserved=e>>7,this.axis=e&1}},O5=class extends X{constructor(...t){super(...t),this.box_name="ItemPropertyAssociationBox"}static{this.fourcc="ipma"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.associations=[];for(let i=0;i<e;i++){const s=this.version<1?t.readUint16():t.readUint32(),n=[],a=t.readUint8();for(let o=0;o<a;o++){const l=t.readUint8();n.push({essential:(l&128)>>7===1,property_index:this.flags&1?(l&127)<<8|t.readUint8():l&127})}this.associations.push({id:s,props:n})}}},F5=class extends mt{constructor(...t){super(...t),this.box_name="ImageRotation"}static{this.fourcc="irot"}parse(t){this.angle=t.readUint8()&3}},N5=class extends X{constructor(...t){super(...t),this.box_name="ImageSpatialExtentsProperty"}static{this.fourcc="ispe"}parse(t){this.parseFullHeader(t),this.image_width=t.readUint32(),this.image_height=t.readUint32()}},D5=class extends X{constructor(...t){super(...t),this.box_name="TAITimestampBox"}static{this.fourcc="itai"}parse(t){this.TAI_timestamp=t.readUint64();const e=t.readUint8();this.sychronization_state=e>>7&1,this.timestamp_generation_failure=e>>6&1,this.timestamp_is_modified=e>>5&1}},R5=class extends X{constructor(...t){super(...t),this.box_name="KindBox"}static{this.fourcc="kind"}parse(t){this.parseFullHeader(t),this.schemeURI=t.readCString(),this.isEndOfBox(t)||(this.value=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value?this.value.length+1:0),this.writeHeader(t),t.writeCString(this.schemeURI),this.value&&t.writeCString(this.value)}},L5=class extends X{constructor(...t){super(...t),this.box_name="LevelAssignmentBox"}static{this.fourcc="leva"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.levels=[];for(let i=0;i<e;i++){const s={};this.levels[i]=s,s.track_ID=t.readUint32();const n=t.readUint8();switch(s.padding_flag=n>>7,s.assignment_type=n&127,s.assignment_type){case 0:s.grouping_type=t.readString(4);break;case 1:s.grouping_type=t.readString(4),s.grouping_type_parameter=t.readUint32();break;case 2:break;case 3:break;case 4:s.sub_track_id=t.readUint32();break;default:L.warn("BoxParser",`Unknown level assignment type: ${s.assignment_type}`)}}}},H5=class extends mt{constructor(...t){super(...t),this.box_name="LHEVCConfigurationBox"}static{this.fourcc="lhvC"}parse(t){this.configurationVersion=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3;let e=t.readUint8();this.numTemporalLayers=(e&13)>>3,this.temporalIdNested=(e&4)>>2,this.lengthSizeMinusOne=e&3,this.nalu_arrays=[];const i=t.readUint8();for(let s=0;s<i;s++){const n=[];this.nalu_arrays.push(n),e=t.readUint8(),n.completeness=(e&128)>>7,n.nalu_type=e&63;const a=t.readUint16();for(let o=0;o<a;o++){const l=t.readUint16();n.push({data:t.readUint8Array(l)})}}}},V5=class extends mt{constructor(...t){super(...t),this.box_name="LayerSelectorProperty"}static{this.fourcc="lsel"}parse(t){this.layer_id=t.readUint16()}},j5=class extends mt{constructor(...t){super(...t),this.box_name="hintmaxrate"}static{this.fourcc="maxr"}parse(t){this.period=t.readUint32(),this.bytes=t.readUint32()}},ul=class{constructor(t,e){this.x=t,this.y=e}toString(){return"("+this.x+","+this.y+")"}},G5=class extends mt{constructor(...t){super(...t),this.box_name="MasteringDisplayColourVolumeBox"}static{this.fourcc="mdcv"}parse(t){this.display_primaries=[],this.display_primaries[0]=new ul(t.readUint16(),t.readUint16()),this.display_primaries[1]=new ul(t.readUint16(),t.readUint16()),this.display_primaries[2]=new ul(t.readUint16(),t.readUint16()),this.white_point=new ul(t.readUint16(),t.readUint16()),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}},q5=class extends X{constructor(...t){super(...t),this.box_name="MovieFragmentRandomAccessOffsetBox"}static{this.fourcc="mfro"}parse(t){this.parseFullHeader(t),this._size=t.readUint32()}},W5=class extends X{constructor(...t){super(...t),this.box_name="MaskConfigurationProperty"}static{this.fourcc="mskC"}parse(t){this.parseFullHeader(t),this.bits_per_pixel=t.readUint8()}},Y5=class extends mt{constructor(...t){super(...t),this.box_name="hintPacketsSent"}static{this.fourcc="npck"}parse(t){this.packetssent=t.readUint32()}},K5=class extends mt{constructor(...t){super(...t),this.box_name="hintPacketsSent"}static{this.fourcc="nump"}parse(t){this.packetssent=t.readUint64()}},X5=class{constructor(t,e){this.pad1=t,this.pad2=e}},J5=class extends X{constructor(...t){super(...t),this.box_name="PaddingBitsBox"}static{this.fourcc="padb"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.padbits=[];for(let i=0;i<Math.floor((e+1)/2);i++){const s=t.readUint8(),n=(s&112)>>4,a=s&7;this.padbits.push(new X5(n,a))}}},Z5=class extends mt{constructor(...t){super(...t),this.box_name="PixelAspectRatioBox"}static{this.fourcc="pasp"}parse(t){this.hSpacing=t.readUint32(),this.vSpacing=t.readUint32()}},Q5=class extends mt{constructor(...t){super(...t),this.box_name="CuePayloadBox"}static{this.fourcc="payl"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},tB=class extends mt{constructor(...t){super(...t),this.box_name="hintpayloadID"}static{this.fourcc="payt"}parse(t){this.payloadID=t.readUint32();const e=t.readUint8();this.rtpmap_string=t.readString(e)}},eB=class extends X{constructor(...t){super(...t),this.box_name="ProgressiveDownloadInfoBox",this.rate=[],this.initial_delay=[]}static{this.fourcc="pdin"}parse(t){this.parseFullHeader(t);const e=(this.size-this.hdr_size)/8;for(let i=0;i<e;i++)this.rate[i]=t.readUint32(),this.initial_delay[i]=t.readUint32()}},iB=class extends X{constructor(...t){super(...t),this.box_name="PixelInformationProperty"}static{this.fourcc="pixi"}parse(t){this.parseFullHeader(t),this.num_channels=t.readUint8(),this.bits_per_channels=[];for(let e=0;e<this.num_channels;e++)this.bits_per_channels[e]=t.readUint8()}},sB=class extends mt{constructor(...t){super(...t),this.box_name="hintlargestpacket"}static{this.fourcc="pmax"}parse(t){this.bytes=t.readUint32()}},nB=class extends X{constructor(...t){super(...t),this.box_name="ProgressiveDerivedImageItemInformationProperty"}static{this.fourcc="prdi"}parse(t){if(this.parseFullHeader(t),this.step_count=t.readUint16(),this.item_count=[],this.flags&2)for(let e=0;e<this.step_count;e++)this.item_count[e]=t.readUint16()}},rB=class extends X{constructor(...t){super(...t),this.box_name="ProjectionFormatBox"}static{this.fourcc="prfr"}parse(t){this.parseFullHeader(t),this.projection_type=t.readUint8()&31}},aB=class extends X{constructor(...t){super(...t),this.box_name="ProducerReferenceTimeBox"}static{this.fourcc="prft"}parse(t){this.parseFullHeader(t),this.ref_track_id=t.readUint32(),this.ntp_timestamp=t.readUint64(),this.version===0?this.media_time=t.readUint32():this.media_time=t.readUint64()}},oB=class extends X{constructor(...t){super(...t),this.box_name="ProtectionSystemSpecificHeaderBox"}static{this.fourcc="pssh"}parse(t){if(this.parseFullHeader(t),this.system_id=Ar(t),this.kid=[],this.version>0){const i=t.readUint32();for(let s=0;s<i;s++)this.kid[s]=Ar(t)}const e=t.readUint32();e>0&&(this.protection_data=t.readUint8Array(e))}},lB=class extends X{constructor(...t){super(...t),this.box_name="TrackCleanApertureDimensionsBox"}static{this.fourcc="clef"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}};function cB(t,e){if(t===Xa.Types.UTF8)return new TextDecoder("utf-8").decode(e);const i=new DataView(e.buffer);if(t===Xa.Types.BE_UNSIGNED_INT){if(e.length===1)return i.getUint8(0);if(e.length===2)return i.getUint16(0,!1);if(e.length===4)return i.getUint32(0,!1);if(e.length===8)return i.getBigUint64(0,!1);throw new Error("Unsupported ITIF_TYPE_BE_UNSIGNED_INT length "+e.length)}else if(t===Xa.Types.BE_SIGNED_INT){if(e.length===1)return i.getInt8(0);if(e.length===2)return i.getInt16(0,!1);if(e.length===4)return i.getInt32(0,!1);if(e.length===8)return i.getBigInt64(0,!1);throw new Error("Unsupported ITIF_TYPE_BE_SIGNED_INT length "+e.length)}else if(t===Xa.Types.BE_FLOAT32)return i.getFloat32(0,!1);L.warn("DataBox","Unsupported or unimplemented itif data type: "+t)}var Xa=class extends mt{constructor(...t){super(...t),this.box_name="DataBox"}static{this.fourcc="data"}static{this.Types={RESERVED:0,UTF8:1,UTF16:2,SJIS:3,UTF8_SORT:4,UTF16_SORT:5,JPEG:13,PNG:14,BE_SIGNED_INT:21,BE_UNSIGNED_INT:22,BE_FLOAT32:23,BE_FLOAT64:24,BMP:27,QT_ATOM:28,BE_SIGNED_INT8:65,BE_SIGNED_INT16:66,BE_SIGNED_INT32:67,BE_FLOAT32_POINT:70,BE_FLOAT32_DIMENSIONS:71,BE_FLOAT32_RECT:72,BE_SIGNED_INT64:74,BE_UNSIGNED_INT8:75,BE_UNSIGNED_INT16:76,BE_UNSIGNED_INT32:77,BE_UNSIGNED_INT64:78,BE_FLOAT64_AFFINE_TRANSFORM:79}}parse(t){this.valueType=t.readUint32(),this.country=t.readUint16(),this.country>255&&(t.seek(t.getPosition()-2),this.countryString=t.readString(2)),this.language=t.readUint16(),this.language>255&&(t.seek(t.getPosition()-2),this.parseLanguage(t)),this.raw=t.readUint8Array(this.size-this.hdr_size-8),this.value=cB(this.valueType,this.raw)}},uB=class extends X{constructor(...t){super(...t),this.box_name="TrackEncodedPixelsDimensionsBox"}static{this.fourcc="enof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},dB=class extends mt{constructor(...t){super(...t),this.box_name="IlstBox"}static{this.fourcc="ilst"}parse(t){this.list={};let e=this.size-this.hdr_size;for(;e>0;){const i=t.readUint32(),s=t.readUint32(),n=hn(t,!1,i-8);n.code===1&&(this.list[s]=n.box),e-=i}}},fB=class extends X{constructor(...t){super(...t),this.box_name="KeysBox"}static{this.fourcc="keys"}parse(t){this.parseFullHeader(t),this.count=t.readUint32(),this.keys={};for(let e=0;e<this.count;e++){const i=t.readUint32();this.keys[e+1]=t.readString(i-4)}}},hB=class extends X{constructor(...t){super(...t),this.box_name="TrackProductionApertureDimensionsBox"}static{this.fourcc="prof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},pB=class extends ke{constructor(...t){super(...t),this.box_name="TrackApertureModeDimensionsBox",this.clefs=[],this.profs=[],this.enofs=[],this.subBoxNames=["clef","prof","enof"]}static{this.fourcc="tapt"}},mB=class extends mt{constructor(...t){super(...t),this.box_name="rtpmoviehintinformation"}static{this.fourcc="rtp "}parse(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}},vB=class extends X{constructor(...t){super(...t),this.box_name="SampleAuxiliaryInformationOffsetsBox"}static{this.fourcc="saio"}parse(t){this.parseFullHeader(t),this.flags&1&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32()),this.entry_count=t.readUint32(),this.offset=[];for(let e=0;e<this.entry_count;e++)this.version===0?this.offset[e]=t.readUint32():this.offset[e]=t.readUint64()}},_B=class extends X{constructor(...t){super(...t),this.box_name="SampleAuxiliaryInformationSizesBox"}static{this.fourcc="saiz"}parse(t){if(this.parseFullHeader(t),this.flags&1&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32()),this.default_sample_info_size=t.readUint8(),this.sample_count=t.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(let e=0;e<this.sample_count;e++)this.sample_info_size[e]=t.readUint8()}},gB=class{constructor(t,e){this.bad_pixel_row=t,this.bad_pixel_column=e}toString(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"}},yB=class extends X{constructor(...t){super(...t),this.box_name="SensorBadPixelsMapBox"}static{this.fourcc="sbpm"}parse(t){this.parseFullHeader(t),this.component_count=t.readUint16(),this.component_index=[];for(let i=0;i<this.component_count;i++)this.component_index.push(t.readUint16());const e=t.readUint8();this.correction_applied=(e&128)===128,this.num_bad_rows=t.readUint32(),this.num_bad_cols=t.readUint32(),this.num_bad_pixels=t.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[];for(let i=0;i<this.num_bad_rows;i++)this.bad_rows.push(t.readUint32());for(let i=0;i<this.num_bad_cols;i++)this.bad_columns.push(t.readUint32());for(let i=0;i<this.num_bad_pixels;i++){const s=t.readUint32(),n=t.readUint32();this.bad_pixels.push(new gB(s,n))}}},bB=class extends X{constructor(...t){super(...t),this.box_name="SchemeTypeBox"}static{this.fourcc="schm"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),this.flags&1&&(this.scheme_uri=t.readString(this.size-this.hdr_size-8))}},xB=class extends mt{constructor(...t){super(...t),this.box_name="rtptracksdphintinformation"}static{this.fourcc="sdp "}parse(t){this.sdptext=t.readString(this.size-this.hdr_size)}},wB=class extends X{constructor(...t){super(...t),this.box_name="SampleEncryptionBox"}static{this.fourcc="senc"}},SB=class extends X{constructor(...t){super(...t),this.box_name="SMPTE2086MasteringDisplayMetadataBox"}static{this.fourcc="SmDm"}parse(t){this.parseFullHeader(t),this.primaryRChromaticity_x=t.readUint16(),this.primaryRChromaticity_y=t.readUint16(),this.primaryGChromaticity_x=t.readUint16(),this.primaryGChromaticity_y=t.readUint16(),this.primaryBChromaticity_x=t.readUint16(),this.primaryBChromaticity_y=t.readUint16(),this.whitePointChromaticity_x=t.readUint16(),this.whitePointChromaticity_y=t.readUint16(),this.luminanceMax=t.readUint32(),this.luminanceMin=t.readUint32()}},kB=class extends X{constructor(...t){super(...t),this.box_name="SamplingRateBox"}static{this.fourcc="srat"}parse(t){this.parseFullHeader(t),this.sampling_rate=t.readUint32()}},BB=class extends X{constructor(...t){super(...t),this.box_name="DegradationPriorityBox"}static{this.fourcc="stdp"}parse(t){this.parseFullHeader(t);const e=(this.size-this.hdr_size)/2;this.priority=[];for(let i=0;i<e;i++)this.priority[i]=t.readUint16()}},EB=class extends X{constructor(...t){super(...t),this.box_name="SubTrackInformationBox"}static{this.fourcc="stri"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint16(),this.alternate_group=t.readUint16(),this.sub_track_id=t.readUint32();const e=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},UB=class extends X{constructor(...t){super(...t),this.box_name="SubTrackSampleGroupBox"}static{this.fourcc="stsg"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readUint32();const e=t.readUint16();this.group_description_index=[];for(let i=0;i<e;i++)this.group_description_index[i]=t.readUint32()}},TB=class extends X{constructor(...t){super(...t),this.box_name="ShadowSyncSampleBox"}static{this.fourcc="stsh"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(let i=0;i<e;i++)this.shadowed_sample_numbers.push(t.readUint32()),this.sync_sample_numbers.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(t),t.writeUint32(this.shadowed_sample_numbers.length);for(let e=0;e<this.shadowed_sample_numbers.length;e++)t.writeUint32(this.shadowed_sample_numbers[e]),t.writeUint32(this.sync_sample_numbers[e])}},PB=class extends X{constructor(...t){super(...t),this.box_name="SyncSampleBox"}static{this.fourcc="stss"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.version===0){this.sample_numbers=[];for(let i=0;i<e;i++)this.sample_numbers.push(t.readUint32())}}write(t){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(t),t.writeUint32(this.sample_numbers.length),t.writeUint32Array(this.sample_numbers)}},AB=class extends X{constructor(...t){super(...t),this.box_name="StereoVideoBox"}static{this.fourcc="stvi"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.single_view_allowed=e&3,this.stereo_scheme=t.readUint32();const i=t.readUint32();for(this.stereo_indication_type=t.readString(i),this.boxes=[];t.getPosition()<this.start+this.size;){const s=hn(t,!1,this.size-(t.getPosition()-this.start));if(s.code===1){const n=s.box;this.boxes.push(n),this[n.type]=n}else return}}},IB=class extends X{constructor(...t){super(...t),this.box_name="CompactSampleSizeBox"}static{this.fourcc="stz2"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],this.version===0){this.reserved=t.readUint24(),this.field_size=t.readUint8();const e=t.readUint32();if(this.field_size===4)for(let i=0;i<e;i+=2){const s=t.readUint8();this.sample_sizes[i]=s>>4&15,this.sample_sizes[i+1]=s&15}else if(this.field_size===8)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint8();else if(this.field_size===16)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint16();else L.error("BoxParser","Error in length field in stz2 box",t.isofile)}}},MB=class extends X{constructor(...t){super(...t),this.box_name="SubSampleInformationBox"}static{this.fourcc="subs"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.entries=[];let i;for(let s=0;s<e;s++){const n={};if(this.entries[s]=n,n.sample_delta=t.readUint32(),n.subsamples=[],i=t.readUint16(),i>0)for(let a=0;a<i;a++){const o={};n.subsamples.push(o),this.version===1?o.size=t.readUint32():o.size=t.readUint16(),o.priority=t.readUint8(),o.discardable=t.readUint8(),o.codec_specific_parameters=t.readUint32()}}}},zB=class extends X{constructor(...t){super(...t),this.box_name="TAIClockInfoBox"}static{this.fourcc="taic"}parse(t){this.time_uncertainty=t.readUint64(),this.clock_resolution=t.readUint32(),this.clock_drift_rate=t.readInt32();const e=t.readUint8();this.clock_type=(e&192)>>6}},CB=class extends X{constructor(...t){super(...t),this.box_name="TrackEncryptionBox"}static{this.fourcc="tenc"}parse(t){if(this.parseFullHeader(t),t.readUint8(),this.version===0)t.readUint8();else{const e=t.readUint8();this.default_crypt_byte_block=e>>4&15,this.default_skip_byte_block=e&15}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=Ar(t),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}},$B=class{},OB=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentRandomAccessBox"}static{this.fourcc="tfra"}parse(t){this.parseFullHeader(t),this.track_ID=t.readUint32(),t.readUint24();const e=t.readUint8();this.length_size_of_traf_num=e>>4&3,this.length_size_of_trun_num=e>>2&3,this.length_size_of_sample_num=e&3,this.entries=[];const i=t.readUint32();for(let s=0;s<i;s++){const n=new $B;this.version===1?(n.time=t.readUint64(),n.moof_offset=t.readUint64()):(n.time=t.readUint32(),n.moof_offset=t.readUint32()),n.traf_number=t["readUint"+8*(this.length_size_of_traf_num+1)](),n.trun_number=t["readUint"+8*(this.length_size_of_trun_num+1)](),n.sample_delta=t["readUint"+8*(this.length_size_of_sample_num+1)](),this.entries.push(n)}}},FB=class extends mt{constructor(...t){super(...t),this.box_name="hintmaxrelativetime"}static{this.fourcc="tmax"}parse(t){this.time=t.readUint32()}},NB=class extends mt{constructor(...t){super(...t),this.box_name="hintminrelativetime"}static{this.fourcc="tmin"}parse(t){this.time=t.readUint32()}},DB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="totl"}parse(t){this.bytessent=t.readUint32()}},RB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="tpay"}parse(t){this.bytessent=t.readUint32()}},LB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="tpyl"}parse(t){this.bytessent=t.readUint64()}},HB=class extends Tk{static{this.fourcc="msrc"}},VB=class yg extends mt{constructor(...e){super(...e),this.box_name="TrackReferenceBox",this.references=[]}static{this.fourcc="tref"}static{this.allowed_types=["hint","cdsc","font","hind","vdep","vplx","subt","thmb","auxl","cdtg","shsc","aest"]}parse(e){for(;e.getPosition()<this.start+this.size;){const i=hn(e,!0,this.size-(e.getPosition()-this.start));if(i.code===1){yg.allowed_types.includes(i.type)||L.warn("BoxParser",`Unknown track reference type: '${i.type}'`);const s=new Ik(i.type,i.size,i.hdr_size,i.start);s.write===mt.prototype.write&&s.type!=="mdat"&&(L.info("BoxParser","TrackReference "+s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(e)),s.parse(e),this.references.push(s)}else return}}},jB=class extends X{constructor(...t){super(...t),this.box_name="TrackExtensionPropertiesBox"}static{this.fourcc="trep"}parse(t){for(this.parseFullHeader(t),this.track_ID=t.readUint32(),this.boxes=[];t.getPosition()<this.start+this.size;){const e=hn(t,!1,this.size-(t.getPosition()-this.start));if(e.code===1){const i=e.box;this.boxes.push(i)}else return}}},GB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="trpy"}parse(t){this.bytessent=t.readUint64()}},qB=class extends X{constructor(...t){super(...t),this.box_name="TrackSelectionBox"}static{this.fourcc="tsel"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint32();const e=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},WB=class extends X{constructor(...t){super(...t),this.box_name="TextConfigBox"}static{this.fourcc="txtc"}parse(t){this.parseFullHeader(t),this.config=t.readCString()}},YB=class extends mt{constructor(...t){super(...t),this.box_name="TypeCombinationBox"}static{this.fourcc="tyco"}parse(t){const e=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(let i=0;i<e;i++)this.compatible_brands[i]=t.readString(4)}},KB=class extends X{constructor(...t){super(...t),this.box_name="UserDescriptionProperty"}static{this.fourcc="udes"}parse(t){this.parseFullHeader(t),this.lang=t.readCString(),this.name=t.readCString(),this.description=t.readCString(),this.tags=t.readCString()}},XB=class extends X{constructor(...t){super(...t),this.box_name="UncompressedFrameConfigBox"}static{this.fourcc="uncC"}parse(t){if(this.parseFullHeader(t),this.profile=t.readString(4),this.version!==1){if(this.version===0){this.component_count=t.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[];for(let i=0;i<this.component_count;i++)this.component_index.push(t.readUint16()),this.component_bit_depth_minus_one.push(t.readUint8()),this.component_format.push(t.readUint8()),this.component_align_size.push(t.readUint8());this.sampling_type=t.readUint8(),this.interleave_type=t.readUint8(),this.block_size=t.readUint8();const e=t.readUint8();this.component_little_endian=e>>7&1,this.block_pad_lsb=e>>6&1,this.block_little_endian=e>>5&1,this.block_reversed=e>>4&1,this.pad_unknown=e>>3&1,this.pixel_size=t.readUint32(),this.row_align_size=t.readUint32(),this.tile_align_size=t.readUint32(),this.num_tile_cols_minus_one=t.readUint32(),this.num_tile_rows_minus_one=t.readUint32()}}}},JB=class extends X{constructor(...t){super(...t),this.box_name="DataEntryUrnBox"}static{this.fourcc="urn "}parse(t){this.parseFullHeader(t),this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(t),t.writeCString(this.name),this.location&&t.writeCString(this.location)}},ZB=class extends mt{constructor(...t){super(...t),this.box_name="WebVTTConfigurationBox"}static{this.fourcc="vttC"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},QB=class extends X{constructor(...t){super(...t),this.box_name="VvcNALUConfigBox"}static{this.fourcc="vvnC"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.lengthSizeMinusOne=e&3}},tE=class extends vi{static{this.grouping_type="alst"}parse(t){const e=t.readUint16();this.first_output_sample=t.readUint16(),this.sample_offset=[];for(let s=0;s<e;s++)this.sample_offset[s]=t.readUint32();const i=this.description_length-4-4*e;this.num_output_samples=[],this.num_total_samples=[];for(let s=0;s<i/4;s++)this.num_output_samples[s]=t.readUint16(),this.num_total_samples[s]=t.readUint16()}},eE=class extends vi{static{this.grouping_type="avll"}parse(t){this.layerNumber=t.readUint8(),this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()}},iE=class extends vi{static{this.grouping_type="avss"}parse(t){this.subSequenceIdentifier=t.readUint16(),this.layerNumber=t.readUint8();const e=t.readUint8();this.durationFlag=e>>7,this.avgRateFlag=e>>6&1,this.durationFlag&&(this.duration=t.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()),this.dependency=[];const i=t.readUint8();for(let s=0;s<i;s++)this.dependency.push({subSeqDirectionFlag:t.readUint8(),layerNumber:t.readUint8(),subSequenceIdentifier:t.readUint16()})}},sE=class extends vi{static{this.grouping_type="dtrt"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},nE=class extends vi{static{this.grouping_type="mvif"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rE=class extends vi{static{this.grouping_type="prol"}parse(t){this.roll_distance=t.readInt16()}},aE=class extends vi{static{this.grouping_type="rap "}parse(t){const e=t.readUint8();this.num_leading_samples_known=e>>7,this.num_leading_samples=e&127}},oE=class extends vi{static{this.grouping_type="rash"}parse(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)L.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(let e=0;e<this.operation_point_count;e++)this.available_bitrate[e]=t.readUint32(),this.target_rate_share[e]=t.readUint16()}this.maximum_bitrate=t.readUint32(),this.minimum_bitrate=t.readUint32(),this.discard_priority=t.readUint8()}}},lE=class extends vi{static{this.grouping_type="roll"}parse(t){this.roll_distance=t.readInt16()}},cE=class extends vi{static{this.grouping_type="scif"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},uE=class extends vi{static{this.grouping_type="scnm"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},dE=class extends vi{static{this.grouping_type="seig"}parse(t){this.reserved=t.readUint8();const e=t.readUint8();this.crypt_byte_block=e>>4,this.skip_byte_block=e&15,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=Ar(t),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}},fE=class extends vi{static{this.grouping_type="stsa"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},hE=class extends vi{static{this.grouping_type="sync"}parse(t){const e=t.readUint8();this.NAL_unit_type=e&63}},pE=class extends vi{static{this.grouping_type="tele"}parse(t){const e=t.readUint8();this.level_independently_decodable=e>>7}},mE=class extends vi{static{this.grouping_type="tsas"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},vE=class extends vi{static{this.grouping_type="tscl"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},_E=class extends vi{static{this.grouping_type="vipr"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},bg=class extends mt{static{this.fourcc="uuid"}},ba=class extends X{static{this.fourcc="uuid"}},gE=class extends ba{constructor(...t){super(...t),this.box_name="LiveServerManifestBox"}static{this.uuid="a5d40b30e81411ddba2f0800200c9a66"}parse(t){this.parseFullHeader(t),this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}},yE=class extends ba{constructor(...t){super(...t),this.box_name="PiffProtectionSystemSpecificHeaderBox"}static{this.uuid="d08a4f1810f34a82b6c832d8aba183d3"}parse(t){this.parseFullHeader(t),this.system_id=Ar(t);const e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}},bE=class extends ba{constructor(...t){super(...t),this.box_name="PiffSampleEncryptionBox"}static{this.uuid="a2394f525a9b4f14a2446c427c648df4"}},xE=class extends ba{constructor(...t){super(...t),this.box_name="PiffTrackEncryptionBox"}static{this.uuid="8974dbce7be74c5184f97148f9882554"}parse(t){this.parseFullHeader(t),this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=Ar(t)}},wE=class extends ba{constructor(...t){super(...t),this.box_name="TfrfBox"}static{this.uuid="d4807ef2ca3946958e5426cb9e46a79f"}parse(t){this.parseFullHeader(t),this.fragment_count=t.readUint8(),this.entries=[];for(let e=0;e<this.fragment_count;e++){let i=0,s=0;this.version===1?(i=t.readUint64(),s=t.readUint64()):(i=t.readUint32(),s=t.readUint32()),this.entries.push({absolute_time:i,absolute_duration:s})}}},SE=class extends ba{constructor(...t){super(...t),this.box_name="TfxdBox"}static{this.uuid="6d1d9b0542d544e680e2141daff757b2"}parse(t){this.parseFullHeader(t),this.version===1?(this.absolute_time=t.readUint64(),this.duration=t.readUint64()):(this.absolute_time=t.readUint32(),this.duration=t.readUint32())}},kE=class extends bg{constructor(...t){super(...t),this.box_name="ItemContentIDProperty"}static{this.uuid="261ef3741d975bbaacbd9d2c8ea73522"}parse(t){this.content_id=t.readCString()}},BE=class extends bg{constructor(...t){super(...t),this.box_name="ItemComponentContentIDProperty"}static{this.uuid="9db9dd6e373c5a4e811021fc83a911fd"}parse(t){this.number_of_components=t.readUint32(),this.content_ids=[];for(let e=0;e<this.number_of_components;e++){const i=t.readCString();this.content_ids.push(i)}}},EE=A_({CoLLBox:()=>Q3,ItemComponentContentIDPropertyBox:()=>BE,ItemContentIDPropertyBox:()=>kE,OpusSampleEntry:()=>o3,SmDmBox:()=>SB,a1lxBox:()=>R3,a1opBox:()=>L3,ac_3SampleEntry:()=>n3,ac_4SampleEntry:()=>r3,aebrBox:()=>v5,afbrBox:()=>_5,albcBox:()=>g5,alstSampleGroupEntry:()=>tE,altrBox:()=>y5,auxCBox:()=>H3,av01SampleEntry:()=>z4,av1CBox:()=>w4,avc1SampleEntry:()=>P4,avc2SampleEntry:()=>A4,avc3SampleEntry:()=>I4,avc4SampleEntry:()=>M4,avcCBox:()=>z_,avllSampleGroupEntry:()=>eE,avs3SampleEntry:()=>J4,avssSampleGroupEntry:()=>iE,brstBox:()=>b5,btrtBox:()=>V3,bxmlBox:()=>qk,ccstBox:()=>j3,cdefBox:()=>G3,clapBox:()=>q3,clefBox:()=>lB,clliBox:()=>W3,cmexBox:()=>Y3,cminBox:()=>K3,cmpCBox:()=>X3,cmpdBox:()=>J3,co64Box:()=>Z3,colrBox:()=>T4,coviBox:()=>i5,cprtBox:()=>s5,cschBox:()=>n5,cslgBox:()=>r5,cttsBox:()=>a5,dOpsBox:()=>h5,dac3Box:()=>o5,dataBox:()=>Xa,dav1SampleEntry:()=>C4,dec3Box:()=>l5,dfLaBox:()=>c5,dimmBox:()=>u5,dinfBox:()=>N_,dmax:()=>d5,dmedBox:()=>f5,dobrBox:()=>x5,drefBox:()=>H_,drepBox:()=>p5,dtrtSampleGroupEntry:()=>sE,dvh1SampleEntry:()=>V4,dvheSampleEntry:()=>j4,ec_3SampleEntry:()=>a3,edtsBox:()=>Yk,elngBox:()=>V_,elstBox:()=>m5,emsgBox:()=>I3,encaSampleEntry:()=>p3,encmSampleEntry:()=>y3,encsSampleEntry:()=>v3,enctSampleEntry:()=>g3,encuSampleEntry:()=>m3,encvSampleEntry:()=>h3,enofBox:()=>uB,eqivBox:()=>w5,esdsBox:()=>S4,etypBox:()=>d4,fLaCSampleEntry:()=>f3,favcBox:()=>S5,fielBox:()=>z5,fobrBox:()=>k5,freeBox:()=>Hk,frmaBox:()=>C5,ftypBox:()=>j_,grplBox:()=>c4,hdlrBox:()=>G_,hev1SampleEntry:()=>F4,hev2SampleEntry:()=>N4,hinfBox:()=>Qk,hmhdBox:()=>C_,hntiBox:()=>Zk,hvc1SampleEntry:()=>$4,hvc2SampleEntry:()=>O4,hvcCBox:()=>q_,hvt1SampleEntry:()=>D4,iaugBox:()=>B5,idatBox:()=>Lk,iinfBox:()=>p4,ilocBox:()=>m4,ilstBox:()=>dB,imirBox:()=>$5,infeBox:()=>h4,iodsBox:()=>jk,ipcoBox:()=>l4,ipmaBox:()=>O5,iproBox:()=>Wk,iprpBox:()=>o4,irefBox:()=>_4,irotBox:()=>F5,ispeBox:()=>N5,itaiBox:()=>D5,j2kHBox:()=>u4,j2kiSampleEntry:()=>Z4,keysBox:()=>fB,kindBox:()=>R5,levaBox:()=>L5,lhe1SampleEntry:()=>R4,lhv1SampleEntry:()=>L4,lhvCBox:()=>H5,lselBox:()=>V5,lvc1SampleEntry:()=>H4,lvcCBox:()=>B4,m4aeSampleEntry:()=>s3,maxrBox:()=>j5,mdatBox:()=>El,mdcvBox:()=>G5,mdhdBox:()=>W_,mdiaBox:()=>O_,mecoBox:()=>Jk,mehdBox:()=>Y_,metaBox:()=>y4,mettSampleEntry:()=>b4,metxSampleEntry:()=>x4,mfhdBox:()=>X_,mfraBox:()=>Xk,mfroBox:()=>q5,mha1SampleEntry:()=>l3,mha2SampleEntry:()=>c3,mhm1SampleEntry:()=>u3,mhm2SampleEntry:()=>d3,minfBox:()=>F_,mjp2SampleEntry:()=>Q4,mjpgSampleEntry:()=>t3,moofBox:()=>R_,moovBox:()=>Tl,mp4aSampleEntry:()=>tg,mp4sSampleEntry:()=>_3,mp4vSampleEntry:()=>i3,mskCBox:()=>W5,msrcTrackGroupTypeBox:()=>HB,mvexBox:()=>od,mvhdBox:()=>J_,mvifSampleGroupEntry:()=>nE,nmhdBox:()=>Ul,npckBox:()=>Y5,numpBox:()=>K5,padbBox:()=>J5,panoBox:()=>E5,paspBox:()=>Z5,paylBox:()=>Q5,paytBox:()=>tB,pdinBox:()=>eB,piffLsmBox:()=>gE,piffPsshBox:()=>yE,piffSencBox:()=>bE,piffTencBox:()=>xE,piffTfrfBox:()=>wE,piffTfxdBox:()=>SE,pitmBox:()=>g4,pixiBox:()=>iB,pmaxBox:()=>sB,povdBox:()=>f4,prdiBox:()=>nB,prfrBox:()=>rB,prftBox:()=>aB,prgrBox:()=>I5,profBox:()=>hB,prolSampleGroupEntry:()=>rE,psshBox:()=>oB,pymdBox:()=>M5,rapSampleGroupEntry:()=>aE,rashSampleGroupEntry:()=>oE,resvSampleEntry:()=>b3,rinfBox:()=>s4,rollSampleGroupEntry:()=>lE,rtp_Box:()=>mB,saioBox:()=>vB,saizBox:()=>_B,sbgpBox:()=>B3,sbpmBox:()=>yB,sbttSampleEntry:()=>x3,schiBox:()=>n4,schmBox:()=>bB,scifSampleGroupEntry:()=>cE,scnmSampleGroupEntry:()=>uE,sdp_Box:()=>xB,sdtpBox:()=>E3,seigSampleGroupEntry:()=>dE,sencBox:()=>wB,sgpdBox:()=>U3,sidxBox:()=>T3,sinfBox:()=>i4,skipBox:()=>Vk,slidBox:()=>U5,smhdBox:()=>ig,sratBox:()=>kB,ssixBox:()=>M3,stblBox:()=>D_,stcoBox:()=>sg,stdpBox:()=>BB,sterBox:()=>T5,sthdBox:()=>ng,stppSampleEntry:()=>eg,strdBox:()=>e4,striBox:()=>EB,strkBox:()=>t4,stsaSampleGroupEntry:()=>fE,stscBox:()=>rg,stsdBox:()=>ag,stsgBox:()=>UB,stshBox:()=>TB,stssBox:()=>PB,stszBox:()=>og,sttsBox:()=>lg,stviBox:()=>AB,stxtSampleEntry:()=>w3,stypBox:()=>z3,stz2Box:()=>IB,subsBox:()=>MB,syncSampleGroupEntry:()=>hE,taicBox:()=>zB,taptBox:()=>pB,teleSampleGroupEntry:()=>pE,tencBox:()=>CB,tfdtBox:()=>cg,tfhdBox:()=>ug,tfraBox:()=>OB,tkhdBox:()=>dg,tmaxBox:()=>FB,tminBox:()=>NB,totlBox:()=>DB,tpayBox:()=>RB,tpylBox:()=>LB,trafBox:()=>L_,trakBox:()=>$_,trefBox:()=>VB,trepBox:()=>jB,trexBox:()=>ld,trgrBox:()=>r4,trpyBox:()=>GB,trunBox:()=>fg,tsasSampleGroupEntry:()=>mE,tsclSampleGroupEntry:()=>vE,tselBox:()=>qB,tsynBox:()=>P5,tx3gSampleEntry:()=>S3,txtcBox:()=>WB,tycoBox:()=>YB,udesBox:()=>KB,udtaBox:()=>a4,uncCBox:()=>XB,uncvSampleEntry:()=>e3,urlBox:()=>hg,urnBox:()=>JB,viprSampleGroupEntry:()=>_E,vmhdBox:()=>pg,vp08SampleEntry:()=>K4,vp09SampleEntry:()=>X4,vpcCBox:()=>E4,vttCBox:()=>ZB,vttcBox:()=>Kk,vvc1SampleEntry:()=>G4,vvcCBox:()=>U4,vvcNSampleEntry:()=>Y4,vvi1SampleEntry:()=>q4,vvnCBox:()=>QB,vvs1SampleEntry:()=>W4,waveBox:()=>k4,wbbrBox:()=>A5,wvttSampleEntry:()=>k3,xmlBox:()=>Gk});Fk(EE);Nk(C3);function UE(t){return new Promise((e,i)=>{const s=A3();let n=!1;const a=l=>{n||(n=!0,i(new Error(l)))};s.onError=(l,c)=>a(`${l}: ${c}`),s.onReady=l=>{const c=l.videoTracks[0];if(!c)return a("MP4 contains no video track");const u=[];s.onSamples=(d,f,p)=>{u.push(...p),!(u.length<c.nb_samples||n)&&(n=!0,e({codec:c.codec,width:c.video?.width??c.track_width,height:c.video?.height??c.track_height,duration:c.duration/c.timescale,description:TE(s,c.id),samples:u}))},s.setExtractionOptions(c.id,void 0,{nbSamples:c.nb_samples}),s.start()};const o=t.slice(0);o.fileStart=0,s.appendBuffer(o,!0),s.flush()})}function TE(t,e){const i=t.getTrackById(e).mdia.minf.stbl.stsd.entries[0],s=i.avcC??i.hvcC??i.vpcC??i.av1C;if(!s)return;const n=new Hi;return s.write(n),new Uint8Array(n.buffer.slice(8))}class pc{canvas;decoder;config;samples;frames=[];current;sampleIndex=0;lastTime=-1;decoderError;static async create(e){if(typeof VideoDecoder>"u")throw new Error("WebCodecs VideoDecoder is unavailable");const i={codec:e.codec,codedWidth:e.width,codedHeight:e.height,description:e.description},s=await VideoDecoder.isConfigSupported(i);if(!s.supported)throw new Error(`WebCodecs does not support ${e.codec}`);return new pc(e,s.config??i)}constructor(e,i){this.samples=e.samples,this.config=i,this.canvas=document.createElement("canvas"),this.canvas.width=e.width,this.canvas.height=e.height,this.decoder=new VideoDecoder({output:s=>this.frames.push(s),error:s=>this.decoderError=s}),this.decoder.configure(i)}async renderAt(e){const i=Math.max(0,e)*1e6;for((this.lastTime<0||i<this.lastTime)&&this.restartAt(i),this.lastTime=i,await this.decodeThrough(i+25e4),this.frames.sort((n,a)=>n.timestamp-a.timestamp);this.frames[0]&&this.frames[0].timestamp<=i;)this.current?.close(),this.current=this.frames.shift();if(!this.current&&this.frames[0]&&(this.current=this.frames.shift()),!this.current)throw new Error("WebCodecs produced no video frame");const s=this.canvas.getContext("2d");if(!s)throw new Error("Could not create decoded video canvas");s.drawImage(this.current,0,0,this.canvas.width,this.canvas.height)}close(){this.current?.close(),this.frames.splice(0).forEach(e=>e.close()),this.decoder.close()}restartAt(e){this.current?.close(),this.current=void 0,this.frames.splice(0).forEach(s=>s.close()),this.decoder.reset(),this.decoder.configure(this.config);const i=e/1e6;this.sampleIndex=0;for(let s=0;s<this.samples.length;s+=1){const n=this.samples[s];if(n.cts/n.timescale>i)break;n.is_sync&&(this.sampleIndex=s)}}async decodeThrough(e){let i=0;for(;this.sampleIndex<this.samples.length;){const s=this.samples[this.sampleIndex],n=s.cts/s.timescale*1e6;if(i&&n>e)break;if(!s.data)throw new Error("MP4 sample data is unavailable");this.decoder.decode(new EncodedVideoChunk({type:s.is_sync?"key":"delta",timestamp:n,duration:s.duration/s.timescale*1e6,data:s.data})),this.sampleIndex+=1,i+=1}if(i&&await this.decoder.flush(),this.decoderError)throw this.decoderError}}const PE=Object.freeze(Object.defineProperty({__proto__:null,Mp4FrameSource:pc,demuxMp4:UE},Symbol.toStringTag,{value:"Module"})),Ha="/api/exports";function AE(t){return typeof document<"u"}async function IE(t){const{scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o}=t;return ME({scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o})}async function ME(t){const{scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o}=t,l=Math.round(s*e.canvas.width/e.canvas.height),c=document.createElement("canvas");c.width=l,c.height=s;const u=new B_(c),d=DE(e,l,s),f=$E(d.canvas.duration,n),p=await NE(Ha,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({width:l,height:s,fps:n,duration:d.canvas.duration,totalFrames:f,hasAudio:!!a,audioStart:d.audioStart})}),v=await zE(i);try{const g=HS(v.assets);g&&await LS(v.assets);const _=performance.now();let x=[],E=0;for(let $=0;$<f;$+=1){g&&await OE(_,$,n);const M=b_(d,$/n);await CE(M,v.sources),await S_(M,v.assets,{playing:!1,exact:!0}),u.render(M,v.assets);const V=await FE(c);x.push(Al(`${Ha}/${p.id}/frames/${$}`,{method:"PUT",headers:{"content-type":"image/jpeg"},body:V}).then(()=>{E+=1,o?.(E/f*.8)})),x.length===4&&(await Promise.all(x),x=[]),$%4===0&&await xg(0)}if(await Promise.all(x),a){const $=await fetch(a);if(!$.ok)throw new Error(`Could not load audio (${$.status})`);await Al(`${Ha}/${p.id}/audio`,{method:"PUT",headers:{"content-type":$.headers.get("content-type")??"application/octet-stream"},body:await $.blob()})}o?.(.85);const z=await(await Al(`${Ha}/${p.id}/finish`,{method:"POST"})).blob();return o?.(1),z}catch(g){throw await fetch(`${Ha}/${p.id}`,{method:"DELETE"}).catch(()=>{}),g}finally{v.sources.forEach(g=>g.close())}}async function zE(t){const e=new Map(t),i=new Map;if(typeof VideoDecoder>"u")return{assets:e,sources:i};for(const[s,n]of t){if(!n.motionlyMp4)continue;const a=await pc.create(n.motionlyMp4),o=a.canvas;Object.assign(o,{motionlyType:"image",motionlySource:n.motionlySource}),e.set(s,o),i.set(s,a)}return{assets:e,sources:i}}async function CE(t,e){const i=new Map;for(const s of t.elements)s.assetName&&e.has(s.assetName)&&i.set(s.assetName,Number(s.render.mediaTime??0));await Promise.all([...i].flatMap(([s,n])=>{const a=e.get(s);return a?[a.renderAt(n)]:[]}))}function $E(t,e){return Math.max(1,Math.ceil(t*e))}async function OE(t,e,i){const s=t+e*1e3/i-performance.now();s>0&&await xg(s)}function FE(t){return new Promise((e,i)=>{t.toBlob(s=>{s?e(s):i(new Error("Could not capture an export frame"))},"image/jpeg",.95)})}async function Al(t,e){let i;try{i=await fetch(t,e)}catch{throw new Error("MP4 export requires the local Motionly server with ffmpeg installed")}if(!i.ok){const s=(await i.text()).trim();throw new Error(s||`MP4 export failed (${i.status})`)}return i}async function NE(t,e){return await(await Al(t,e)).json()}function DE(t,e,i){const s=e/t.canvas.width;return{...t,canvas:{...t.canvas,width:e,height:i},camera:Va(t.camera,s),elements:t.elements.map(n=>({...n,properties:Va(n.properties,s)})),animations:t.animations.map(n=>({...n,from:Va(n.from,s),to:Va(n.to,s),keyframes:n.keyframes.map(a=>({...a,properties:Va(a.properties,s)}))}))}}function Va(t,e){const i={...t};for(const s of["x","y","width","height","blur","shadow","size","tracking"]){const n=i[s];typeof n=="number"&&(i[s]=n*e)}return i}function xg(t){return new Promise(e=>setTimeout(e,t))}function Te(t){return t.body.map(RE).join(`
2370
+ */var fp,Vn,Qr,Dd,vr,hp,Rd,q2=function(){return typeof window<"u"},Mn={},hr=180/Math.PI,ta=Math.PI/180,Vr=Math.atan2,pp=1e8,Ld=/([A-Z])/g,W2=/(left|right|width|margin|padding|x)/i,Y2=/[\s,\(]\S/,cn={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},Zu=function(e,i){return i.set(i.t,i.p,Math.round((i.s+i.c*e)*1e4)/1e4+i.u,i)},K2=function(e,i){return i.set(i.t,i.p,e===1?i.e:Math.round((i.s+i.c*e)*1e4)/1e4+i.u,i)},X2=function(e,i){return i.set(i.t,i.p,e?Math.round((i.s+i.c*e)*1e4)/1e4+i.u:i.b,i)},J2=function(e,i){return i.set(i.t,i.p,e===1?i.e:e?Math.round((i.s+i.c*e)*1e4)/1e4+i.u:i.b,i)},Z2=function(e,i){var s=i.s+i.c*e;i.set(i.t,i.p,~~(s+(s<0?-.5:.5))+i.u,i)},l_=function(e,i){return i.set(i.t,i.p,e?i.e:i.b,i)},c_=function(e,i){return i.set(i.t,i.p,e!==1?i.b:i.e,i)},Q2=function(e,i,s){return e.style[i]=s},tS=function(e,i,s){return e.style.setProperty(i,s)},eS=function(e,i,s){return e._gsap[i]=s},iS=function(e,i,s){return e._gsap.scaleX=e._gsap.scaleY=s},sS=function(e,i,s,n,a){var o=e._gsap;o.scaleX=o.scaleY=s,o.renderTransform(a,o)},nS=function(e,i,s,n,a){var o=e._gsap;o[i]=s,o.renderTransform(a,o)},ei="transform",is=ei+"Origin",rS=function t(e,i){var s=this,n=this.target,a=n.style,o=n._gsap;if(e in Mn&&a){if(this.tfm=this.tfm||{},e!=="transform")e=cn[e]||e,~e.indexOf(",")?e.split(",").forEach(function(l){return s.tfm[l]=Bn(n,l)}):this.tfm[e]=o.x?o[e]:Bn(n,e),e===is&&(this.tfm.zOrigin=o.zOrigin);else return cn.transform.split(",").forEach(function(l){return t.call(s,l,i)});if(this.props.indexOf(ei)>=0)return;o.svg&&(this.svgo=n.getAttribute("data-svg-origin"),this.props.push(is,i,"")),e=ei}(a||i)&&this.props.push(e,i,a[e])},u_=function(e){e.translate&&(e.removeProperty("translate"),e.removeProperty("scale"),e.removeProperty("rotate"))},aS=function(){var e=this.props,i=this.target,s=i.style,n=i._gsap,a,o;for(a=0;a<e.length;a+=3)e[a+1]?e[a+1]===2?i[e[a]](e[a+2]):i[e[a]]=e[a+2]:e[a+2]?s[e[a]]=e[a+2]:s.removeProperty(e[a].substr(0,2)==="--"?e[a]:e[a].replace(Ld,"-$1").toLowerCase());if(this.tfm){for(o in this.tfm)n[o]=this.tfm[o];n.svg&&(n.renderTransform(),i.setAttribute("data-svg-origin",this.svgo||"")),a=Rd(),(!a||!a.isStart)&&!s[ei]&&(u_(s),n.zOrigin&&s[is]&&(s[is]+=" "+n.zOrigin+"px",n.zOrigin=0,n.renderTransform()),n.uncache=1)}},d_=function(e,i){var s={target:e,props:[],revert:aS,save:rS};return e._gsap||ns.core.getCache(e),i&&e.style&&e.nodeType&&i.split(",").forEach(function(n){return s.save(n)}),s},f_,Qu=function(e,i){var s=Vn.createElementNS?Vn.createElementNS((i||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),e):Vn.createElement(e);return s&&s.style?s:Vn.createElement(e)},gs=function t(e,i,s){var n=getComputedStyle(e);return n[i]||n.getPropertyValue(i.replace(Ld,"-$1").toLowerCase())||n.getPropertyValue(i)||!s&&t(e,da(i)||i,1)||""},mp="O,Moz,ms,Ms,Webkit".split(","),da=function(e,i,s){var n=i||vr,a=n.style,o=5;if(e in a&&!s)return e;for(e=e.charAt(0).toUpperCase()+e.substr(1);o--&&!(mp[o]+e in a););return o<0?null:(o===3?"ms":o>=0?mp[o]:"")+e},td=function(){q2()&&window.document&&(fp=window,Vn=fp.document,Qr=Vn.documentElement,vr=Qu("div")||{style:{}},Qu("div"),ei=da(ei),is=ei+"Origin",vr.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",f_=!!da("perspective"),Rd=ns.core.reverting,Dd=1)},vp=function(e){var i=e.ownerSVGElement,s=Qu("svg",i&&i.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),n=e.cloneNode(!0),a;n.style.display="block",s.appendChild(n),Qr.appendChild(s);try{a=n.getBBox()}catch{}return s.removeChild(n),Qr.removeChild(s),a},_p=function(e,i){for(var s=i.length;s--;)if(e.hasAttribute(i[s]))return e.getAttribute(i[s])},h_=function(e){var i,s;try{i=e.getBBox()}catch{i=vp(e),s=1}return i&&(i.width||i.height)||s||(i=vp(e)),i&&!i.width&&!i.x&&!i.y?{x:+_p(e,["x","cx","x1"])||0,y:+_p(e,["y","cy","y1"])||0,width:0,height:0}:i},p_=function(e){return!!(e.getCTM&&(!e.parentNode||e.ownerSVGElement)&&h_(e))},Qn=function(e,i){if(i){var s=e.style,n;i in Mn&&i!==is&&(i=ei),s.removeProperty?(n=i.substr(0,2),(n==="ms"||i.substr(0,6)==="webkit")&&(i="-"+i),s.removeProperty(n==="--"?i:i.replace(Ld,"-$1").toLowerCase())):s.removeAttribute(i)}},jn=function(e,i,s,n,a,o){var l=new es(e._pt,i,s,0,1,o?c_:l_);return e._pt=l,l.b=n,l.e=a,e._props.push(s),l},gp={deg:1,rad:1,turn:1},oS={grid:1,flex:1},tr=function t(e,i,s,n){var a=parseFloat(s)||0,o=(s+"").trim().substr((a+"").length)||"px",l=vr.style,c=W2.test(i),u=e.tagName.toLowerCase()==="svg",d=(u?"client":"offset")+(c?"Width":"Height"),f=100,p=n==="px",v=n==="%",g,_,x,E;if(n===o||!a||gp[n]||gp[o])return a;if(o!=="px"&&!p&&(a=t(e,i,s,"px")),E=e.getCTM&&p_(e),(v||o==="%")&&(Mn[i]||~i.indexOf("adius")))return g=E?e.getBBox()[c?"width":"height"]:e[d],ui(v?a/g*f:a/100*g);if(l[c?"width":"height"]=f+(p?o:n),_=n!=="rem"&&~i.indexOf("adius")||n==="em"&&e.appendChild&&!u?e:e.parentNode,E&&(_=(e.ownerSVGElement||{}).parentNode),(!_||_===Vn||!_.appendChild)&&(_=Vn.body),x=_._gsap,x&&v&&x.width&&c&&x.time===vs.time&&!x.uncache)return ui(a/x.width*f);if(v&&(i==="height"||i==="width")){var I=e.style[i];e.style[i]=f+n,g=e[d],I?e.style[i]=I:Qn(e,i)}else(v||o==="%")&&!oS[gs(_,"display")]&&(l.position=gs(e,"position")),_===e&&(l.position="static"),_.appendChild(vr),g=vr[d],_.removeChild(vr),l.position="absolute";return c&&v&&(x=xr(_),x.time=vs.time,x.width=_[d]),ui(p?g*a/f:g&&a?f/g*a:0)},Bn=function(e,i,s,n){var a;return Dd||td(),i in cn&&i!=="transform"&&(i=cn[i],~i.indexOf(",")&&(i=i.split(",")[0])),Mn[i]&&i!=="transform"?(a=go(e,n),a=i!=="transformOrigin"?a[i]:a.svg?a.origin:Gl(gs(e,is))+" "+a.zOrigin+"px"):(a=e.style[i],(!a||a==="auto"||n||~(a+"").indexOf("calc("))&&(a=jl[i]&&jl[i](e,i,s)||gs(e,i)||Mv(e,i)||(i==="opacity"?1:0))),s&&!~(a+"").trim().indexOf(" ")?tr(e,i,a,s)+s:a},lS=function(e,i,s,n){if(!s||s==="none"){var a=da(i,e,1),o=a&&gs(e,a,1);o&&o!==s?(i=a,s=o):i==="borderColor"&&(s=gs(e,"borderTopColor"))}var l=new es(this._pt,e.style,i,0,1,r_),c=0,u=0,d,f,p,v,g,_,x,E,I,z,$,M;if(l.b=s,l.e=n,s+="",n+="",n.substring(0,6)==="var(--"&&(n=gs(e,n.substring(4,n.indexOf(")")))),n==="auto"&&(_=e.style[i],e.style[i]=n,n=gs(e,i)||n,_?e.style[i]=_:Qn(e,i)),d=[s,n],Jv(d),s=d[0],n=d[1],p=s.match(Kr)||[],M=n.match(Kr)||[],M.length){for(;f=Kr.exec(n);)x=f[0],I=n.substring(c,f.index),g?g=(g+1)%5:(I.substr(-5)==="rgba("||I.substr(-5)==="hsla(")&&(g=1),x!==(_=p[u++]||"")&&(v=parseFloat(_)||0,$=_.substr((v+"").length),x.charAt(1)==="="&&(x=Zr(v,x)+$),E=parseFloat(x),z=x.substr((E+"").length),c=Kr.lastIndex-z.length,z||(z=z||bs.units[i]||$,c===n.length&&(n+=z,l.e+=z)),$!==z&&(v=tr(e,i,_,z)||0),l._pt={_next:l._pt,p:I||u===1?I:",",s:v,c:E-v,m:g&&g<4||i==="zIndex"?Math.round:0});l.c=c<n.length?n.substring(c,n.length):""}else l.r=i==="display"&&n==="none"?c_:l_;return Uv.test(n)&&(l.e=0),this._pt=l,l},yp={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},cS=function(e){var i=e.split(" "),s=i[0],n=i[1]||"50%";return(s==="top"||s==="bottom"||n==="left"||n==="right")&&(e=s,s=n,n=e),i[0]=yp[s]||s,i[1]=yp[n]||n,i.join(" ")},uS=function(e,i){if(i.tween&&i.tween._time===i.tween._dur){var s=i.t,n=s.style,a=i.u,o=s._gsap,l,c,u;if(a==="all"||a===!0)n.cssText="",c=1;else for(a=a.split(","),u=a.length;--u>-1;)l=a[u],Mn[l]&&(c=1,l=l==="transformOrigin"?is:ei),Qn(s,l);c&&(Qn(s,ei),o&&(o.svg&&s.removeAttribute("transform"),n.scale=n.rotate=n.translate="none",go(s,1),o.uncache=1,u_(n)))}},jl={clearProps:function(e,i,s,n,a){if(a.data!=="isFromStart"){var o=e._pt=new es(e._pt,i,s,0,0,uS);return o.u=n,o.pr=-10,o.tween=a,e._props.push(s),1}}},_o=[1,0,0,1,0,0],m_={},v_=function(e){return e==="matrix(1, 0, 0, 1, 0, 0)"||e==="none"||!e},bp=function(e){var i=gs(e,ei);return v_(i)?_o:i.substr(7).match(Ev).map(ui)},Hd=function(e,i){var s=e._gsap||xr(e),n=e.style,a=bp(e),o,l,c,u;return s.svg&&e.getAttribute("transform")?(c=e.transform.baseVal.consolidate().matrix,a=[c.a,c.b,c.c,c.d,c.e,c.f],a.join(",")==="1,0,0,1,0,0"?_o:a):(a===_o&&!e.offsetParent&&e!==Qr&&!s.svg&&(c=n.display,n.display="block",o=e.parentNode,(!o||!e.offsetParent&&!e.getBoundingClientRect().width)&&(u=1,l=e.nextElementSibling,Qr.appendChild(e)),a=bp(e),c?n.display=c:Qn(e,"display"),u&&(l?o.insertBefore(e,l):o?o.appendChild(e):Qr.removeChild(e))),i&&a.length>6?[a[0],a[1],a[4],a[5],a[12],a[13]]:a)},ed=function(e,i,s,n,a,o){var l=e._gsap,c=a||Hd(e,!0),u=l.xOrigin||0,d=l.yOrigin||0,f=l.xOffset||0,p=l.yOffset||0,v=c[0],g=c[1],_=c[2],x=c[3],E=c[4],I=c[5],z=i.split(" "),$=parseFloat(z[0])||0,M=parseFloat(z[1])||0,V,N,H,T;s?c!==_o&&(N=v*x-g*_)&&(H=$*(x/N)+M*(-_/N)+(_*I-x*E)/N,T=$*(-g/N)+M*(v/N)-(v*I-g*E)/N,$=H,M=T):(V=h_(e),$=V.x+(~z[0].indexOf("%")?$/100*V.width:$),M=V.y+(~(z[1]||z[0]).indexOf("%")?M/100*V.height:M)),n||n!==!1&&l.smooth?(E=$-u,I=M-d,l.xOffset=f+(E*v+I*_)-E,l.yOffset=p+(E*g+I*x)-I):l.xOffset=l.yOffset=0,l.xOrigin=$,l.yOrigin=M,l.smooth=!!n,l.origin=i,l.originIsAbsolute=!!s,e.style[is]="0px 0px",o&&(jn(o,l,"xOrigin",u,$),jn(o,l,"yOrigin",d,M),jn(o,l,"xOffset",f,l.xOffset),jn(o,l,"yOffset",p,l.yOffset)),e.setAttribute("data-svg-origin",$+" "+M)},go=function(e,i){var s=e._gsap||new Qv(e);if("x"in s&&!i&&!s.uncache)return s;var n=e.style,a=s.scaleX<0,o="px",l="deg",c=getComputedStyle(e),u=gs(e,is)||"0",d,f,p,v,g,_,x,E,I,z,$,M,V,N,H,T,j,St,yt,ht,vt,F,C,Lt,xt,He,ii,de,re,xe,Ct,nt;return d=f=p=_=x=E=I=z=$=0,v=g=1,s.svg=!!(e.getCTM&&p_(e)),c.translate&&((c.translate!=="none"||c.scale!=="none"||c.rotate!=="none")&&(n[ei]=(c.translate!=="none"?"translate3d("+(c.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+(c.rotate!=="none"?"rotate("+c.rotate+") ":"")+(c.scale!=="none"?"scale("+c.scale.split(" ").join(",")+") ":"")+(c[ei]!=="none"?c[ei]:"")),n.scale=n.rotate=n.translate="none"),N=Hd(e,s.svg),s.svg&&(s.uncache?(xt=e.getBBox(),u=s.xOrigin-xt.x+"px "+(s.yOrigin-xt.y)+"px",Lt=""):Lt=!i&&e.getAttribute("data-svg-origin"),ed(e,Lt||u,!!Lt||s.originIsAbsolute,s.smooth!==!1,N)),M=s.xOrigin||0,V=s.yOrigin||0,N!==_o&&(St=N[0],yt=N[1],ht=N[2],vt=N[3],d=F=N[4],f=C=N[5],N.length===6?(v=Math.sqrt(St*St+yt*yt),g=Math.sqrt(vt*vt+ht*ht),_=St||yt?Vr(yt,St)*hr:0,I=ht||vt?Vr(ht,vt)*hr+_:0,I&&(g*=Math.abs(Math.cos(I*ta))),s.svg&&(d-=M-(M*St+V*ht),f-=V-(M*yt+V*vt))):(nt=N[6],xe=N[7],ii=N[8],de=N[9],re=N[10],Ct=N[11],d=N[12],f=N[13],p=N[14],H=Vr(nt,re),x=H*hr,H&&(T=Math.cos(-H),j=Math.sin(-H),Lt=F*T+ii*j,xt=C*T+de*j,He=nt*T+re*j,ii=F*-j+ii*T,de=C*-j+de*T,re=nt*-j+re*T,Ct=xe*-j+Ct*T,F=Lt,C=xt,nt=He),H=Vr(-ht,re),E=H*hr,H&&(T=Math.cos(-H),j=Math.sin(-H),Lt=St*T-ii*j,xt=yt*T-de*j,He=ht*T-re*j,Ct=vt*j+Ct*T,St=Lt,yt=xt,ht=He),H=Vr(yt,St),_=H*hr,H&&(T=Math.cos(H),j=Math.sin(H),Lt=St*T+yt*j,xt=F*T+C*j,yt=yt*T-St*j,C=C*T-F*j,St=Lt,F=xt),x&&Math.abs(x)+Math.abs(_)>359.9&&(x=_=0,E=180-E),v=ui(Math.sqrt(St*St+yt*yt+ht*ht)),g=ui(Math.sqrt(C*C+nt*nt)),H=Vr(F,C),I=Math.abs(H)>2e-4?H*hr:0,$=Ct?1/(Ct<0?-Ct:Ct):0),s.svg&&(Lt=e.getAttribute("transform"),s.forceCSS=e.setAttribute("transform","")||!v_(gs(e,ei)),Lt&&e.setAttribute("transform",Lt))),Math.abs(I)>90&&Math.abs(I)<270&&(a?(v*=-1,I+=_<=0?180:-180,_+=_<=0?180:-180):(g*=-1,I+=I<=0?180:-180)),i=i||s.uncache,s.x=d-((s.xPercent=d&&(!i&&s.xPercent||(Math.round(e.offsetWidth/2)===Math.round(-d)?-50:0)))?e.offsetWidth*s.xPercent/100:0)+o,s.y=f-((s.yPercent=f&&(!i&&s.yPercent||(Math.round(e.offsetHeight/2)===Math.round(-f)?-50:0)))?e.offsetHeight*s.yPercent/100:0)+o,s.z=p+o,s.scaleX=ui(v),s.scaleY=ui(g),s.rotation=ui(_)+l,s.rotationX=ui(x)+l,s.rotationY=ui(E)+l,s.skewX=I+l,s.skewY=z+l,s.transformPerspective=$+o,(s.zOrigin=parseFloat(u.split(" ")[2])||!i&&s.zOrigin||0)&&(n[is]=Gl(u)),s.xOffset=s.yOffset=0,s.force3D=bs.force3D,s.renderTransform=s.svg?fS:f_?__:dS,s.uncache=0,s},Gl=function(e){return(e=e.split(" "))[0]+" "+e[1]},mu=function(e,i,s){var n=$i(i);return ui(parseFloat(i)+parseFloat(tr(e,"x",s+"px",n)))+n},dS=function(e,i){i.z="0px",i.rotationY=i.rotationX="0deg",i.force3D=0,__(e,i)},ur="0deg",Na="0px",dr=") ",__=function(e,i){var s=i||this,n=s.xPercent,a=s.yPercent,o=s.x,l=s.y,c=s.z,u=s.rotation,d=s.rotationY,f=s.rotationX,p=s.skewX,v=s.skewY,g=s.scaleX,_=s.scaleY,x=s.transformPerspective,E=s.force3D,I=s.target,z=s.zOrigin,$="",M=E==="auto"&&e&&e!==1||E===!0;if(z&&(f!==ur||d!==ur)){var V=parseFloat(d)*ta,N=Math.sin(V),H=Math.cos(V),T;V=parseFloat(f)*ta,T=Math.cos(V),o=mu(I,o,N*T*-z),l=mu(I,l,-Math.sin(V)*-z),c=mu(I,c,H*T*-z+z)}x!==Na&&($+="perspective("+x+dr),(n||a)&&($+="translate("+n+"%, "+a+"%) "),(M||o!==Na||l!==Na||c!==Na)&&($+=c!==Na||M?"translate3d("+o+", "+l+", "+c+") ":"translate("+o+", "+l+dr),u!==ur&&($+="rotate("+u+dr),d!==ur&&($+="rotateY("+d+dr),f!==ur&&($+="rotateX("+f+dr),(p!==ur||v!==ur)&&($+="skew("+p+", "+v+dr),(g!==1||_!==1)&&($+="scale("+g+", "+_+dr),I.style[ei]=$||"translate(0, 0)"},fS=function(e,i){var s=i||this,n=s.xPercent,a=s.yPercent,o=s.x,l=s.y,c=s.rotation,u=s.skewX,d=s.skewY,f=s.scaleX,p=s.scaleY,v=s.target,g=s.xOrigin,_=s.yOrigin,x=s.xOffset,E=s.yOffset,I=s.forceCSS,z=parseFloat(o),$=parseFloat(l),M,V,N,H,T;c=parseFloat(c),u=parseFloat(u),d=parseFloat(d),d&&(d=parseFloat(d),u+=d,c+=d),c||u?(c*=ta,u*=ta,M=Math.cos(c)*f,V=Math.sin(c)*f,N=Math.sin(c-u)*-p,H=Math.cos(c-u)*p,u&&(d*=ta,T=Math.tan(u-d),T=Math.sqrt(1+T*T),N*=T,H*=T,d&&(T=Math.tan(d),T=Math.sqrt(1+T*T),M*=T,V*=T)),M=ui(M),V=ui(V),N=ui(N),H=ui(H)):(M=f,H=p,V=N=0),(z&&!~(o+"").indexOf("px")||$&&!~(l+"").indexOf("px"))&&(z=tr(v,"x",o,"px"),$=tr(v,"y",l,"px")),(g||_||x||E)&&(z=ui(z+g-(g*M+_*N)+x),$=ui($+_-(g*V+_*H)+E)),(n||a)&&(T=v.getBBox(),z=ui(z+n/100*T.width),$=ui($+a/100*T.height)),T="matrix("+M+","+V+","+N+","+H+","+z+","+$+")",v.setAttribute("transform",T),I&&(v.style[ei]=T)},hS=function(e,i,s,n,a){var o=360,l=Bi(a),c=parseFloat(a)*(l&&~a.indexOf("rad")?hr:1),u=c-n,d=n+u+"deg",f,p;return l&&(f=a.split("_")[1],f==="short"&&(u%=o,u!==u%(o/2)&&(u+=u<0?o:-o)),f==="cw"&&u<0?u=(u+o*pp)%o-~~(u/o)*o:f==="ccw"&&u>0&&(u=(u-o*pp)%o-~~(u/o)*o)),e._pt=p=new es(e._pt,i,s,n,u,K2),p.e=d,p.u="deg",e._props.push(s),p},xp=function(e,i){for(var s in i)e[s]=i[s];return e},pS=function(e,i,s){var n=xp({},s._gsap),a="perspective,force3D,transformOrigin,svgOrigin",o=s.style,l,c,u,d,f,p,v,g;n.svg?(u=s.getAttribute("transform"),s.setAttribute("transform",""),o[ei]=i,l=go(s,1),Qn(s,ei),s.setAttribute("transform",u)):(u=getComputedStyle(s)[ei],o[ei]=i,l=go(s,1),o[ei]=u);for(c in Mn)u=n[c],d=l[c],u!==d&&a.indexOf(c)<0&&(v=$i(u),g=$i(d),f=v!==g?tr(s,c,u,g):parseFloat(u),p=parseFloat(d),e._pt=new es(e._pt,l,c,f,p-f,Zu),e._pt.u=g||0,e._props.push(c));xp(l,n)};ts("padding,margin,Width,Radius",function(t,e){var i="Top",s="Right",n="Bottom",a="Left",o=(e<3?[i,s,n,a]:[i+a,i+s,n+s,n+a]).map(function(l){return e<2?t+l:"border"+l+t});jl[e>1?"border"+t:t]=function(l,c,u,d,f){var p,v;if(arguments.length<4)return p=o.map(function(g){return Bn(l,g,u)}),v=p.join(" "),v.split(p[0]).length===5?p[0]:v;p=(d+"").split(" "),v={},o.forEach(function(g,_){return v[g]=p[_]=p[_]||p[(_-1)/2|0]}),l.init(c,v,f)}});var g_={name:"css",register:td,targetTest:function(e){return e.style&&e.nodeType},init:function(e,i,s,n,a){var o=this._props,l=e.style,c=s.vars.startAt,u,d,f,p,v,g,_,x,E,I,z,$,M,V,N,H,T;Dd||td(),this.styles=this.styles||d_(e),H=this.styles.props,this.tween=s;for(_ in i)if(_!=="autoRound"&&(d=i[_],!(ms[_]&&t_(_,i,s,n,e,a)))){if(v=typeof d,g=jl[_],v==="function"&&(d=d.call(s,n,e,a),v=typeof d),v==="string"&&~d.indexOf("random(")&&(d=po(d)),g)g(this,e,_,d,s)&&(N=1);else if(_.substr(0,2)==="--")u=(getComputedStyle(e).getPropertyValue(_)+"").trim(),d+="",Yn.lastIndex=0,Yn.test(u)||(x=$i(u),E=$i(d),E?x!==E&&(u=tr(e,_,u,E)+E):x&&(d+=x)),this.add(l,"setProperty",u,d,n,a,0,0,_),o.push(_),H.push(_,0,l[_]);else if(v!=="undefined"){if(c&&_ in c?(u=typeof c[_]=="function"?c[_].call(s,n,e,a):c[_],Bi(u)&&~u.indexOf("random(")&&(u=po(u)),$i(u+"")||u==="auto"||(u+=bs.units[_]||$i(Bn(e,_))||""),(u+"").charAt(1)==="="&&(u=Bn(e,_))):u=Bn(e,_),p=parseFloat(u),I=v==="string"&&d.charAt(1)==="="&&d.substr(0,2),I&&(d=d.substr(2)),f=parseFloat(d),_ in cn&&(_==="autoAlpha"&&(p===1&&Bn(e,"visibility")==="hidden"&&f&&(p=0),H.push("visibility",0,l.visibility),jn(this,l,"visibility",p?"inherit":"hidden",f?"inherit":"hidden",!f)),_!=="scale"&&_!=="transform"&&(_=cn[_],~_.indexOf(",")&&(_=_.split(",")[0]))),z=_ in Mn,z){if(this.styles.save(_),T=d,v==="string"&&d.substring(0,6)==="var(--"){if(d=gs(e,d.substring(4,d.indexOf(")"))),d.substring(0,5)==="calc("){var j=e.style.perspective;e.style.perspective=d,d=gs(e,"perspective"),j?e.style.perspective=j:Qn(e,"perspective")}f=parseFloat(d)}if($||(M=e._gsap,M.renderTransform&&!i.parseTransform||go(e,i.parseTransform),V=i.smoothOrigin!==!1&&M.smooth,$=this._pt=new es(this._pt,l,ei,0,1,M.renderTransform,M,0,-1),$.dep=1),_==="scale")this._pt=new es(this._pt,M,"scaleY",M.scaleY,(I?Zr(M.scaleY,I+f):f)-M.scaleY||0,Zu),this._pt.u=0,o.push("scaleY",_),_+="X";else if(_==="transformOrigin"){H.push(is,0,l[is]),d=cS(d),M.svg?ed(e,d,0,V,0,this):(E=parseFloat(d.split(" ")[2])||0,E!==M.zOrigin&&jn(this,M,"zOrigin",M.zOrigin,E),jn(this,l,_,Gl(u),Gl(d)));continue}else if(_==="svgOrigin"){ed(e,d,1,V,0,this);continue}else if(_ in m_){hS(this,M,_,p,I?Zr(p,I+d):d);continue}else if(_==="smoothOrigin"){jn(this,M,"smooth",M.smooth,d);continue}else if(_==="force3D"){M[_]=d;continue}else if(_==="transform"){pS(this,d,e);continue}}else _ in l||(_=da(_)||_);if(z||(f||f===0)&&(p||p===0)&&!Y2.test(d)&&_ in l)x=(u+"").substr((p+"").length),f||(f=0),E=$i(d)||(_ in bs.units?bs.units[_]:x),x!==E&&(p=tr(e,_,u,E)),this._pt=new es(this._pt,z?M:l,_,p,(I?Zr(p,I+f):f)-p,!z&&(E==="px"||_==="zIndex")&&i.autoRound!==!1?Z2:Zu),this._pt.u=E||0,z&&T!==d?(this._pt.b=u,this._pt.e=T,this._pt.r=J2):x!==E&&E!=="%"&&(this._pt.b=u,this._pt.r=X2);else if(_ in l)lS.call(this,e,_,u,I?I+d:d);else if(_ in e)this.add(e,_,u||e[_],I?I+d:d,n,a);else if(_!=="parseTransform"){Pd(_,d);continue}z||(_ in l?H.push(_,0,l[_]):typeof e[_]=="function"?H.push(_,2,e[_]()):H.push(_,1,u||e[_])),o.push(_)}}N&&a_(this)},render:function(e,i){if(i.tween._time||!Rd())for(var s=i._pt;s;)s.r(e,s.d),s=s._next;else i.styles.revert()},get:Bn,aliases:cn,getSetter:function(e,i,s){var n=cn[i];return n&&n.indexOf(",")<0&&(i=n),i in Mn&&i!==is&&(e._gsap.x||Bn(e,"x"))?s&&hp===s?i==="scale"?iS:eS:(hp=s||{})&&(i==="scale"?sS:nS):e.style&&!Ed(e.style[i])?Q2:~i.indexOf("-")?tS:Fd(e,i)},core:{_removeProperty:Qn,_getMatrix:Hd}};ns.utils.checkPrefix=da;ns.core.getStyleSaver=d_;(function(t,e,i,s){var n=ts(t+","+e+","+i,function(a){Mn[a]=1});ts(e,function(a){bs.units[a]="deg",m_[a]=1}),cn[n[13]]=t+","+e,ts(s,function(a){var o=a.split(":");cn[o[1]]=n[o[0]]})})("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");ts("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){bs.units[t]="px"});ns.registerPlugin(g_);var id=ns.registerPlugin(g_)||ns;id.core.Tween;const mS={ease:"power3.out",smooth:"power3.out","ease-out":"power3.out",easeOut:"power3.out",expo:"expo.out",expoOut:"expo.out",softSpring:"back.out(1.05)","soft-spring":"back.out(1.05)",spring:"elastic.out(0.55, 0.42)",bounceOut:"bounce.out"};function ql(t,e){const i=co(t,0,1);if(i===0||i===1)return i;const s=mS[String(e??"power3.out")]??String(e??"power3.out");if(s.startsWith("cubic-bezier("))return vS(s,i);const n=id.parseEase(s)??id.parseEase("power3.out");return co(n(i),0,1.04)}function vS(t,e){const i=t.match(/^cubic-bezier\(([^)]+)\)$/)?.[1]?.split(",").map(p=>Number(p.trim()));if(!i||i.length!==4||i.some(p=>!Number.isFinite(p)))return ql(e,"power3.out");const[s,n,a,o]=i;if(s<0||s>1||a<0||a>1)return ql(e,"power3.out");const l=(p,v,g)=>{const _=1-g;return 3*_*_*g*p+3*_*g*g*v+g*g*g},c=(p,v,g)=>3*(1-g)*(1-g)*p+6*(1-g)*g*(v-p)+3*g*g*(1-v);let u=e;for(let p=0;p<8;p+=1){const v=l(s,a,u)-e;if(Math.abs(v)<1e-7)return l(n,o,u);const g=c(s,a,u);if(Math.abs(g)<1e-7)break;const _=u-v/g;if(_<0||_>1)break;u=_}let d=0,f=1;u=e;for(let p=0;p<24;p+=1){const v=l(s,a,u);if(Math.abs(v-e)<1e-7)break;v<e?d=u:f=u,u=(d+f)/2}return l(n,o,u)}function y_(t,e,i){return i<=0?t:i>=1?e:typeof t=="number"&&typeof e=="number"?t+(e-t)*i:wp(t)&&wp(e)?_S(t,e,i):i<1?t:e}function wp(t){return typeof t=="string"&&(t.startsWith("#")||t.startsWith("rgb"))}function _S(t,e,i){const s=Sp(t),n=Sp(e);if(!s||!n)return i<1?Nl(t):Nl(e);const a=Math.round(s.r+(n.r-s.r)*i),o=Math.round(s.g+(n.g-s.g)*i),l=Math.round(s.b+(n.b-s.b)*i),c=s.a+(n.a-s.a)*i;return`rgba(${a}, ${o}, ${l}, ${c.toFixed(3)})`}function Sp(t){const e=String(t).trim();if(e.startsWith("#")){const n=e.slice(1);if(n.length===3)return{r:Number.parseInt(n[0]+n[0],16),g:Number.parseInt(n[1]+n[1],16),b:Number.parseInt(n[2]+n[2],16),a:1};if(n.length===6)return{r:Number.parseInt(n.slice(0,2),16),g:Number.parseInt(n.slice(2,4),16),b:Number.parseInt(n.slice(4,6),16),a:1}}const i=e.match(/^rgba?\(([^)]+)\)$/);if(!i)return null;const s=i[1].split(",").map(n=>Number.parseFloat(n.trim()));return{r:s[0]??0,g:s[1]??0,b:s[2]??0,a:s[3]??1}}const kp=new WeakMap,Bp=new WeakMap;function b_(t,e){const i=gS(t),s=wS(t,i,e),n=i.regularElements.filter(o=>yS(o,e)).map(o=>{let l=sd(o,i.animationsByTarget.get(o.id)??[],e);return o.asset&&(l={...l,mediaTime:Math.max(0,e)}),{...o,render:l}}),a=i.orderedClips.filter(o=>{const l=o.transitionOut==="crossfade"?o.transitionOutDuration:0;return e>=o.start&&e<o.start+o.duration+l});for(const o of a){if(!o.asset)continue;const l=i.elementsByAsset.get(o.assetName),c=l?sd(l,i.animationsByTarget.get(l.id)??[],e):{x:0,y:0,scale:1,rotation:0,opacity:1,center:!0,cover:!1,layer:"content"},u=o.start+o.duration;let d=1;o.transitionIn==="crossfade"&&o.transitionInDuration>0&&(d*=co((e-o.start)/o.transitionInDuration)),o.transitionOut==="crossfade"&&o.transitionOutDuration>0&&e>=u&&(d*=1-co((e-u)/o.transitionOutDuration));const f=Number(c.opacity??1),p={id:o.id,kind:"asset",assetName:o.assetName,asset:o.asset,properties:l?.properties??{},render:{...c,opacity:f*d,mediaTime:Math.max(0,o.trimIn+e-o.start),mediaTrimOut:o.trimOut,mediaVolume:o.volume??1,mediaMuted:(i.tracksById.get(String(o.track))?.muted??!1)||(o.mute??!1)}};n.push(p)}return n.sort((o,l)=>Ep(i,o)-Ep(i,l)),{canvas:t.canvas,camera:s,elements:n}}function gS(t){const e=kp.get(t);if(e)return e;const i=new Map;for(const o of t.animations){const l=i.get(o.target);l?l.push(o):i.set(o.target,[o])}const s=new Map(t.tracks.map(o=>[o.id,o])),n=new Map;for(const o of t.elements)o.kind==="asset"&&o.assetName&&!n.has(o.assetName)&&n.set(o.assetName,o);const a={animationsByTarget:i,clippedAssets:new Set(t.clips.map(o=>o.assetName)),clipsById:new Map(t.clips.map(o=>[o.id,o])),elementsByAsset:n,orderedClips:[],regularElements:[],tracksById:s};return a.regularElements=t.elements.filter(o=>(o.kind!=="asset"||!o.assetName||!a.clippedAssets.has(o.assetName))&&bS(a,o)),a.orderedClips=t.clips.filter(o=>{const l=a.tracksById.get(String(o.track));return l?.role!=="audio"&&!l?.hidden}).sort((o,l)=>Wl(a,o.track)-Wl(a,l.track)||o.sourceOrder-l.sourceOrder),kp.set(t,a),a}function Wl(t,e){const i=t.tracksById.get(String(e));return i?i.role==="main"?0:100+i.order:xS(e)}function yS(t,e){const i=t.properties;if(i.start===void 0||i.duration===void 0)return!0;const s=Number(i.start),n=Number(i.duration);return!Number.isFinite(s)||!Number.isFinite(n)?!0:e>=s&&e<s+Math.max(0,n)}function bS(t,e){const i=e.properties.track;if(i===void 0)return!0;const s=t.tracksById.get(String(i));return s?.role!=="audio"&&!s?.hidden}function Ep(t,e){const i=t.clipsById.get(e.id);if(i)return Wl(t,i.track);const s=e.render.track;return s!==void 0?Wl(t,String(s)):1e3}function xS(t){const e=Number(t);return Number.isFinite(e)?e:0}function wS(t,e,i){const s={id:"camera",properties:t.camera??{x:0,y:0,zoom:1,rotation:0}};return sd(s,e.animationsByTarget.get(s.id)??[],i)}function sd(t,e,i){if(e.length===0)return t.properties;let s={...t.properties};for(const n of e)s=SS(s,n,i);return s}function SS(t,e,i){const s=i-e.delay;if(s<0)return t;const n=co(s/e.duration);if(e.keyframes.length>0)return kS(t,e.keyframes,n,e.easing);if(s===0)return{...t,...e.from};const a=ql(n,e.easing),o={...t};let l=Bp.get(e);l||(l=[...new Set([...Object.keys(e.from),...Object.keys(e.to)])],Bp.set(e,l));for(const c of l){const u=e.from[c]??t[c]??0,d=e.to[c]??t[c]??0;o[c]=y_(u,d,a)}return o}function kS(t,e,i,s){if(e.length===0)return t;const n=e[0],a=e[e.length-1];if(!n||!a)return t;if(i<=n.offset)return{...t,...n.properties};if(i>=a.offset)return{...t,...a.properties};const o={...t};let l=n,c=a;for(let v=0;v<e.length-1;v+=1){const g=e[v],_=e[v+1];if(!(!g||!_)&&i>=g.offset&&i<=_.offset){l=g,c=_;break}}const u=c.offset-l.offset||1,d=c.easing??s,f=ql((i-l.offset)/u,d),p=new Set([...Object.keys(l.properties),...Object.keys(c.properties)]);for(const v of p){const g=l.properties[v]??t[v]??0,_=c.properties[v]??t[v]??0;o[v]=y_(g,_,f)}return o}const BS="modulepreload",ES=function(t){return"/"+t},Up={},Vd=function(e,i,s){let n=Promise.resolve();if(i&&i.length>0){let o=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");n=o(i.map(u=>{if(u=ES(u),u in Up)return;Up[u]=!0;const d=u.endsWith(".css"),f=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const p=document.createElement("link");if(p.rel=d?"stylesheet":BS,d||(p.as="script"),p.crossOrigin="",p.href=u,c&&p.setAttribute("nonce",c),document.head.appendChild(p),d)return new Promise((v,g)=>{p.addEventListener("load",v),p.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${u}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return n.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return e().catch(a)})};var bn={},vu={},xn={},Tp;function x_(){if(Tp)return xn;Tp=1,Object.defineProperty(xn,"__esModule",{value:!0}),xn.loop=xn.conditional=xn.parse=void 0;var t=function s(n,a){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(Array.isArray(a))a.forEach(function(u){return s(n,u,o,l)});else if(typeof a=="function")a(n,o,l,s);else{var c=Object.keys(a)[0];Array.isArray(a[c])?(l[c]={},s(n,a[c],o,l[c])):l[c]=a[c](n,o,l,s)}return o};xn.parse=t;var e=function(n,a){return function(o,l,c,u){a(o,l,c)&&u(o,n,l,c)}};xn.conditional=e;var i=function(n,a){return function(o,l,c,u){for(var d=[],f=o.pos;a(o,l,c);){var p={};if(u(o,n,l,p),o.pos===f)break;f=o.pos,d.push(p)}return d}};return xn.loop=i,xn}var ci={},Pp;function w_(){if(Pp)return ci;Pp=1,Object.defineProperty(ci,"__esModule",{value:!0}),ci.readBits=ci.readArray=ci.readUnsigned=ci.readString=ci.peekBytes=ci.readBytes=ci.peekByte=ci.readByte=ci.buildStream=void 0;var t=function(f){return{data:f,pos:0}};ci.buildStream=t;var e=function(){return function(f){return f.data[f.pos++]}};ci.readByte=e;var i=function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(p){return p.data[p.pos+f]}};ci.peekByte=i;var s=function(f){return function(p){return p.data.subarray(p.pos,p.pos+=f)}};ci.readBytes=s;var n=function(f){return function(p){return p.data.subarray(p.pos,p.pos+f)}};ci.peekBytes=n;var a=function(f){return function(p){return Array.from(s(f)(p)).map(function(v){return String.fromCharCode(v)}).join("")}};ci.readString=a;var o=function(f){return function(p){var v=s(2)(p);return f?(v[1]<<8)+v[0]:(v[0]<<8)+v[1]}};ci.readUnsigned=o;var l=function(f,p){return function(v,g,_){for(var x=typeof p=="function"?p(v,g,_):p,E=s(f),I=new Array(x),z=0;z<x;z++)I[z]=E(v);return I}};ci.readArray=l;var c=function(f,p,v){for(var g=0,_=0;_<v;_++)g+=f[p+_]&&Math.pow(2,v-_-1);return g},u=function(f){return function(p){for(var v=e()(p),g=new Array(8),_=0;_<8;_++)g[7-_]=!!(v&1<<_);return Object.keys(f).reduce(function(x,E){var I=f[E];return I.length?x[E]=c(g,I.index,I.length):x[E]=g[I.index],x},{})}};return ci.readBits=u,ci}var Ap;function US(){return Ap||(Ap=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e=x_(),i=w_(),s={blocks:function(p){for(var v=0,g=[],_=p.data.length,x=0,E=(0,i.readByte)()(p);E!==v&&E;E=(0,i.readByte)()(p)){if(p.pos+E>=_){var I=_-p.pos;g.push((0,i.readBytes)(I)(p)),x+=I;break}g.push((0,i.readBytes)(E)(p)),x+=E}for(var z=new Uint8Array(x),$=0,M=0;M<g.length;M++)z.set(g[M],$),$+=g[M].length;return z}},n=(0,e.conditional)({gce:[{codes:(0,i.readBytes)(2)},{byteSize:(0,i.readByte)()},{extras:(0,i.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,i.readUnsigned)(!0)},{transparentColorIndex:(0,i.readByte)()},{terminator:(0,i.readByte)()}]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===249}),a=(0,e.conditional)({image:[{code:(0,i.readByte)()},{descriptor:[{left:(0,i.readUnsigned)(!0)},{top:(0,i.readUnsigned)(!0)},{width:(0,i.readUnsigned)(!0)},{height:(0,i.readUnsigned)(!0)},{lct:(0,i.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,e.conditional)({lct:(0,i.readArray)(3,function(f,p,v){return Math.pow(2,v.descriptor.lct.size+1)})},function(f,p,v){return v.descriptor.lct.exists}),{data:[{minCodeSize:(0,i.readByte)()},s]}]},function(f){return(0,i.peekByte)()(f)===44}),o=(0,e.conditional)({text:[{codes:(0,i.readBytes)(2)},{blockSize:(0,i.readByte)()},{preData:function(p,v,g){return(0,i.readBytes)(g.text.blockSize)(p)}},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===1}),l=(0,e.conditional)({application:[{codes:(0,i.readBytes)(2)},{blockSize:(0,i.readByte)()},{id:function(p,v,g){return(0,i.readString)(g.blockSize)(p)}},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===255}),c=(0,e.conditional)({comment:[{codes:(0,i.readBytes)(2)},s]},function(f){var p=(0,i.peekBytes)(2)(f);return p[0]===33&&p[1]===254}),u=[{header:[{signature:(0,i.readString)(3)},{version:(0,i.readString)(3)}]},{lsd:[{width:(0,i.readUnsigned)(!0)},{height:(0,i.readUnsigned)(!0)},{gct:(0,i.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,i.readByte)()},{pixelAspectRatio:(0,i.readByte)()}]},(0,e.conditional)({gct:(0,i.readArray)(3,function(f,p){return Math.pow(2,p.lsd.gct.size+1)})},function(f,p){return p.lsd.gct.exists}),{frames:(0,e.loop)([n,l,c,a,o],function(f){var p=(0,i.peekByte)()(f);return p===33||p===44})}],d=u;t.default=d})(vu)),vu}var Da={},Ip;function TS(){if(Ip)return Da;Ip=1,Object.defineProperty(Da,"__esModule",{value:!0}),Da.deinterlace=void 0;var t=function(i,s){for(var n=new Array(i.length),a=i.length/s,o=function(v,g){var _=i.slice(g*s,(g+1)*s);n.splice.apply(n,[v*s,s].concat(_))},l=[0,4,2,1],c=[8,8,4,2],u=0,d=0;d<4;d++)for(var f=l[d];f<a;f+=c[d])o(f,u),u++;return n};return Da.deinterlace=t,Da}var Ra={},Mp;function PS(){if(Mp)return Ra;Mp=1,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.lzw=void 0;var t=function(i,s,n){var a=4096,o=-1,l=n,c,u,d,f,p,v,g,N,_,x,V,E,H,T,St,j,I=new Array(n),z=new Array(a),$=new Array(a),M=new Array(a+1);for(E=i,u=1<<E,p=u+1,c=u+2,g=o,f=E+1,d=(1<<f)-1,_=0;_<u;_++)z[_]=0,$[_]=_;var V,N,H,T,j,St;for(V=N=H=T=j=St=0,x=0;x<l;){if(T===0){if(N<f){V+=s[St]<<N,N+=8,St++;continue}if(_=V&d,V>>=f,N-=f,_>c||_==p)break;if(_==u){f=E+1,d=(1<<f)-1,c=u+2,g=o;continue}if(g==o){M[T++]=$[_],g=_,H=_;continue}for(v=_,_==c&&(M[T++]=H,_=g);_>u;)M[T++]=$[_],_=z[_];H=$[_]&255,M[T++]=H,c<a&&(z[c]=g,$[c]=H,c++,(c&d)===0&&c<a&&(f++,d+=c)),g=v}T--,I[j++]=M[T],x++}for(x=j;x<l;x++)I[x]=0;return I};return Ra.lzw=t,Ra}var zp;function AS(){if(zp)return bn;zp=1,Object.defineProperty(bn,"__esModule",{value:!0}),bn.decompressFrames=bn.decompressFrame=bn.parseGIF=void 0;var t=a(US()),e=x_(),i=w_(),s=TS(),n=PS();function a(d){return d&&d.__esModule?d:{default:d}}var o=function(f){var p=new Uint8Array(f);return(0,e.parse)((0,i.buildStream)(p),t.default)};bn.parseGIF=o;var l=function(f){for(var p=f.pixels.length,v=new Uint8ClampedArray(p*4),g=0;g<p;g++){var _=g*4,x=f.pixels[g],E=f.colorTable[x]||[0,0,0];v[_]=E[0],v[_+1]=E[1],v[_+2]=E[2],v[_+3]=x!==f.transparentIndex?255:0}return v},c=function(f,p,v){if(!f.image){console.warn("gif frame does not have associated image.");return}var g=f.image,_=g.descriptor.width*g.descriptor.height,x=(0,n.lzw)(g.data.minCodeSize,g.data.blocks,_);g.descriptor.lct.interlaced&&(x=(0,s.deinterlace)(x,g.descriptor.width));var E={pixels:x,dims:{top:f.image.descriptor.top,left:f.image.descriptor.left,width:f.image.descriptor.width,height:f.image.descriptor.height}};return g.descriptor.lct&&g.descriptor.lct.exists?E.colorTable=g.lct:E.colorTable=p,f.gce&&(E.delay=(f.gce.delay||10)*10,E.disposalType=f.gce.extras.disposal,f.gce.extras.transparentColorGiven&&(E.transparentIndex=f.gce.transparentColorIndex)),v&&(E.patch=l(E)),E};bn.decompressFrame=c;var u=function(f,p){return f.frames.filter(function(v){return v.image}).map(function(v){return c(v,f.gct,p)})};return bn.decompressFrames=u,bn}var Cp=AS();function Pr(t){return t?.motionlyType==="video"}function $p(t){return t.motionlyType==="gif"||t.motionlyType==="lottie"||t.motionlyType==="svg"}function IS(t){return[...t.entries()].flatMap(([e,i])=>i.motionlyWarning?[`${e}: ${i.motionlyWarning}`]:[])}async function MS(t,e=document.baseURI,i){const s=new Map;for(const a of t.imports){const o=aa(a.path);a.path.startsWith("data:")&&o&&s.set(o,a.path)}const n=await Promise.all(t.imports.map(async a=>{try{const o=s.get(aa(a.path))??a.path;return[a.name,await zS(o,e,a.type)]}catch(o){return console.warn(`Could not load asset ${a.path}:`,o),i?.(a.name,o),null}}));return new Map(n.filter(a=>a!==null))}async function zS(t,e,i){const s=new URL(t.startsWith("/")?`/${t.slice(1)}`:t,e).href,[n,a]=await Promise.all([i==="video"?FS(s):i==="lottie"?NS(s):QS(s)?DS(s):$S(s,i==="svg"),CS(s)]);return a&&(n.motionlySize=a),n}async function CS(t){if(/^https?:/i.test(t))try{const e=await fetch(t,{method:"HEAD"}),i=Number(e.headers.get("content-length"));return e.ok&&Number.isFinite(i)&&i>0?i:void 0}catch{return}}async function $S(t,e){const i=new Image;i.motionlyType="image",i.motionlySource=t,i.decoding="async",i.src=t;const s=i.decode(),n=e?fetch(t).then(a=>{if(!a.ok)throw new Error(`Asset request failed (${a.status})`);return a.text()}):null;if(n){const a=await n,o=XS(a);if(o.animated)return OS(t,a,o);i.motionlySvg=o}return await s,i}async function OS(t,e,i){const s=document.createElement("canvas"),n=Math.min(1,2048/Math.max(1,i.width,i.height));s.width=Math.max(1,Math.round(i.width*n)),s.height=Math.max(1,Math.round(i.height*n)),s.src=t,s.motionlySource=t,s.motionlyType="svg",s.motionlyDuration=0,s.motionlySvg=i,s.motionlyWarning=/@keyframes\b|animation(?:-name)?\s*:/i.test(e)?"Animated SVG uses real-time Canvas playback. SMIL animation is rendered where supported, but CSS keyframes are not fully supported by the Canvas SVG runtime and may differ.":"Animated SVG uses real-time Canvas playback. Its internal SMIL timeline cannot be frame-seeked, so exact scrubbing and export use wall-clock playback.";const a=s.getContext("2d");if(!a)throw new Error("Could not create animated SVG render context");const{Canvg:o}=await Vd(async()=>{const{Canvg:d}=await import("./index-uMHqBndL.js");return{Canvg:d}},[]),l={enableRedraw:!0,ignoreDimensions:!0,ignoreMouse:!0,scaleWidth:s.width,scaleHeight:s.height},c=()=>o.fromString(a,e),u=c();return s.motionlyCanvg=u,await u.render(l),s.motionlyRestart=async()=>{s.motionlyCanvg?.stop(),a.clearRect(0,0,s.width,s.height);const d=c();s.motionlyCanvg=d,d.start(l)},s.motionlyResume=()=>s.motionlyCanvg?.start(l),s}async function FS(t){const e=document.createElement("video");if(e.motionlyType="video",e.motionlySource=t,e.preload="auto",e.muted=!0,e.defaultMuted=!0,e.playsInline=!0,e.src=t,e.load(),e.readyState<HTMLMediaElement.HAVE_METADATA&&await yo(e,"loadedmetadata"),e.readyState<HTMLMediaElement.HAVE_CURRENT_DATA&&await yo(e,"loadeddata"),e.width=Math.max(1,e.videoWidth),e.height=Math.max(1,e.videoHeight),e.motionlyPreviewFrame=document.createElement("canvas"),e.motionlyPreviewFrame.width=e.width,e.motionlyPreviewFrame.height=e.height,tk(t))try{const i=await fetch(t);if(!i.ok)throw new Error(`MP4 request failed (${i.status})`);const{demuxMp4:s}=await Vd(async()=>{const{demuxMp4:n}=await Promise.resolve().then(()=>PE);return{demuxMp4:n}},void 0);e.motionlyMp4=await s(await i.arrayBuffer())}catch(i){console.warn("Could not demux MP4 metadata:",i)}return e.motionlyDuration=e.motionlyMp4?.duration??await KS(e),jd(e),e}async function NS(t){const e=document.createElement("canvas");e.width=512,e.height=512,e.src=t,e.motionlySource=t,e.motionlyType="lottie",e.motionlyDuration=0;const i=await fetch(t);if(!i.ok)throw new Error(`Lottie request failed (${i.status})`);const{DotLottie:s}=await Vd(async()=>{const{DotLottie:l}=await import("./index-bTggaIHQ.js");return{DotLottie:l}},[]),n=new s({canvas:e,data:await i.arrayBuffer(),autoplay:!1,loop:!0,useFrameInterpolation:!0,renderConfig:{autoResize:!1,devicePixelRatio:1,freezeOnOffscreen:!1}});e.motionlyLottie=n;try{await new Promise((l,c)=>{const u=()=>{f(),l()},d=p=>{f(),c(p.error)},f=()=>{n.removeEventListener("load",u),n.removeEventListener("loadError",d)};n.addEventListener("load",u),n.addEventListener("loadError",d),n.isLoaded&&u()})}catch(l){throw n.destroy(),l}const a=n.animationSize(),o=Math.min(1,2048/Math.max(1,a.width,a.height));return e.width=Math.max(1,Math.round(a.width*o)),e.height=Math.max(1,Math.round(a.height*o)),e.motionlyDuration=Math.max(0,n.duration),n.resize(),n.setFrame(0),e}async function DS(t){const e=await fetch(t);if(!e.ok)throw new Error(`GIF request failed (${e.status})`);const i=Cp.parseGIF(await e.arrayBuffer()),s=Cp.decompressFrames(i,!0);if(!s.length)throw new Error("GIF contains no frames");const n=document.createElement("canvas");n.width=i.lsd.width,n.height=i.lsd.height,n.src=t,n.motionlySource=t,n.motionlyType="gif";const a=document.createElement("canvas");a.width=n.width,a.height=n.height;const o=a.getContext("2d"),l=document.createElement("canvas"),c=l.getContext("2d");if(!o||!c)throw new Error("Could not create GIF render context");const u=[];let d=0,f,p;for(const v of s){f?.disposalType===2?o.clearRect(f.dims.left,f.dims.top,f.dims.width,f.dims.height):f?.disposalType===3&&p&&o.putImageData(p,0,0),p=v.disposalType===3?o.getImageData(0,0,n.width,n.height):void 0,l.width=v.dims.width,l.height=v.dims.height;const g=c.createImageData(v.dims.width,v.dims.height);g.data.set(v.patch),c.putImageData(g,0,0),o.drawImage(l,v.dims.left,v.dims.top),d+=Math.max(.01,v.delay/1e3),u.push({endTime:d,bitmap:await createImageBitmap(a)}),f=v}return n.motionlyDuration=d,n.motionlyGif={frames:u,currentFrame:-1},k_(n,0),n}function yo(t,e){return new Promise((i,s)=>{const n=()=>{t.removeEventListener(e,a),t.removeEventListener("error",o)},a=()=>{n(),i()},o=()=>{n(),s(t.error??new Error(`Video failed during ${e}`))};t.addEventListener(e,a,{once:!0}),t.addEventListener("error",o,{once:!0})})}const Yl=new WeakMap,Gn=new WeakSet;function RS(t,e,i=0){const s=Math.max(0,e-Math.max(0,i)-.001);return Math.max(0,Math.min(s,Number.isFinite(t)?t:0))}async function S_(t,e,i){const s=new Map;for(const l of t.elements){if(!l.assetName)continue;const c=e.get(l.assetName);!c||!Op(c)||s.set(l.assetName,l.render)}const n=[],a=Yl.get(e)??new Set,o=new Set;for(const[l,c]of s){const u=e.get(l);if(!u||!Op(u))continue;o.add(u);const d=Number(c.mediaTime??0),f=Math.max(0,Number(c.mediaTrimOut??0));if(Pr(u)){const p=RS(d,u.motionlyDuration,f),v=!a.has(u),g=i.exact||v?1/1e3:.35;if(Math.abs(u.currentTime-p)>g){const _=GS(u,p,i.exact===!0);n.push(i.playing?_.then(()=>u.paused?Fp(u):void 0):_)}else i.playing&&u.paused&&n.push(Fp(u));i.playing||(u.pause(),rd(u))}else $p(u)&&u.motionlyLottie?VS(u,d):$p(u)&&u.motionlyGif?k_(u,d):dc(u)&&(i.playing?i.playing&&!a.has(u)?Gn.has(u)&&u.motionlyResume?(Gn.delete(u),u.motionlyResume()):n.push(Sl(u)):!u.motionlyCanvg&&!a.has(u)&&n.push(Sl(u)):(u.motionlyCanvg?u.motionlyCanvg.stop():a.has(u)||n.push(Sl(u)),Gn.delete(u),o.delete(u)))}for(const l of a)o.has(l)||(Pr(l)&&(l.pause(),rd(l)),l.motionlyCanvg&&(l.motionlyCanvg.stop(),Gn.delete(l)));Yl.set(e,o),await Promise.all(n)}function nd(t){for(const e of t.values())Pr(e)&&(e.pause(),rd(e)),e.motionlyCanvg&&(e.motionlyCanvg.stop(),Gn.add(e)),e.motionlyLottie?.pause();Yl.delete(t)}function _u(t){nd(t);for(const e of t.values())e.motionlyCanvg?.stop(),Gn.delete(e),e.motionlyLottie?.destroy(),e.motionlyGif?.frames.forEach(i=>i.bitmap.close())}async function LS(t){Yl.delete(t);for(const e of t.values())Gn.delete(e);await Promise.all([...t.values()].filter(dc).map(e=>Sl(e)))}function HS(t){return[...t.values()].some(dc)}function Op(t){return Pr(t)||t.motionlyType==="gif"||t.motionlyType==="lottie"||dc(t)}function dc(t){return!!t.motionlyRestart}function VS(t,e){const i=t.motionlyLottie;if(!i||!i.totalFrames||!i.duration)return;const s=((Number.isFinite(e)?e:0)%i.duration+i.duration)%i.duration;i.setFrame(Math.min(i.totalFrames-1,s/i.duration*i.totalFrames))}function jS(t,e){const i=t.at(-1)?.endTime??0;if(!i)return 0;const s=((Number.isFinite(e)?e:0)%i+i)%i,n=t.findIndex(a=>s<a.endTime);return n<0?Math.max(0,t.length-1):n}function k_(t,e){const i=t.motionlyGif;if(!i)return;const s=jS(i.frames,e);if(s===i.currentFrame)return;const n=t.getContext("2d");n&&(n.clearRect(0,0,t.width,t.height),n.drawImage(i.frames[s].bitmap,0,0),i.currentFrame=s)}async function Sl(t){if(Gn.delete(t),t.motionlyRestart)return t.motionlyRestart();if(t.motionlyType!=="image")return;const e=t.motionlySource;t.src="",t.src=e,await t.decode()}function Fp(t){if(t.motionlyPlay)return t.motionlyPlay;YS(t);const e=t.play().catch(()=>{});return t.motionlyPlay=e,e.finally(()=>{t.motionlyPlay===e&&(t.motionlyPlay=void 0)})}function GS(t,e,i){if(t.motionlySeek&&!i)return t.motionlySeek;const n=(t.motionlySeek?.catch(()=>{})??Promise.resolve()).then(()=>qS(t,e));return t.motionlySeek=n,n.finally(()=>{t.motionlySeek===n&&(t.motionlySeek=void 0)})}async function qS(t,e){if(Math.abs(t.currentTime-e)>1/1e3){const i=yo(t,"seeked");t.currentTime=e,await i,await WS(t)}jd(t)}function WS(t){return t.requestVideoFrameCallback?new Promise(e=>{let i=!1,s;const n=()=>{i||(i=!0,clearTimeout(a),e())},a=setTimeout(()=>{s!==void 0&&t.cancelVideoFrameCallback?.(s),n()},100);s=t.requestVideoFrameCallback(n)}):Promise.resolve()}function YS(t){if(t.motionlyFramePumpActive)return;t.motionlyFramePumpActive=!0;const e=()=>{t.motionlyFramePumpActive&&(jd(t),t.requestVideoFrameCallback?(t.motionlyFrameCallbackType="rvfc",t.motionlyFrameCallback=t.requestVideoFrameCallback(e)):(t.motionlyFrameCallbackType="raf",t.motionlyFrameCallback=requestAnimationFrame(e)))};e()}function rd(t){t.motionlyFramePumpActive=!1,t.motionlyFrameCallback!==void 0&&(t.motionlyFrameCallbackType==="rvfc"?t.cancelVideoFrameCallback?.(t.motionlyFrameCallback):cancelAnimationFrame(t.motionlyFrameCallback),t.motionlyFrameCallback=void 0)}function jd(t){const e=t.motionlyPreviewFrame;if(!e||t.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||t.seeking||!t.videoWidth||!t.videoHeight)return;const i=e.getContext("2d");if(i)try{i.drawImage(t,0,0,e.width,e.height)}catch{}}async function KS(t){if(Number.isFinite(t.duration)&&t.duration>0)return t.duration;const e=yo(t,"seeked");t.currentTime=Number.MAX_SAFE_INTEGER,await e;const i=t.duration,s=yo(t,"seeked");return t.currentTime=0,await s,Number.isFinite(i)&&i>0?i:0}function XS(t){const e=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,i=e.getAttribute("viewBox")?.split(/\s+/).map(Number),s=i?.[2]??Number.parseFloat(e.getAttribute("width")??"1"),n=i?.[3]??Number.parseFloat(e.getAttribute("height")??"1"),a=Array.from(e.querySelectorAll("path[d]")).map((l,c)=>{const u=ZS(l),d=l.getAttribute("stroke")??u.stroke??"none",f=l.getAttribute("fill")??u.fill??"#000000";let p=s+n;try{p=l.getTotalLength()}catch{}return{d:l.getAttribute("d")??"",fill:f.startsWith("url(")?c?"#ffffff":"#8ab4ff":f,fillOpacity:Number.parseFloat(l.getAttribute("fill-opacity")??u.fillOpacity??"1"),stroke:d.startsWith("url(")?c?"#ffffff":"#8ab4ff":d,strokeWidth:Number.parseFloat(l.getAttribute("stroke-width")??u.strokeWidth??"1"),opacity:Number.parseFloat(l.getAttribute("stroke-opacity")??u.strokeOpacity??"1"),lineCap:l.getAttribute("stroke-linecap")||"butt",lineJoin:l.getAttribute("stroke-linejoin")||"miter",length:Math.max(1,p)}}),o=JS(t,e);return{width:s,height:n,animated:o,paths:a}}function JS(t,e){return!!(e?.querySelector("animate, animateMotion, animateTransform, set")||/<(?:animate|animateMotion|animateTransform|set)\b|@keyframes\b|animation(?:-name)?\s*:/i.test(t))}function ZS(t){const e=Object.fromEntries((t.getAttribute("style")??"").split(";").map(i=>i.split(":",2).map(s=>s.trim())).filter(i=>i.length===2&&!!i[0]));return{fill:e.fill??"",fillOpacity:e["fill-opacity"]??"",stroke:e.stroke??"",strokeOpacity:e["stroke-opacity"]??"",strokeWidth:e["stroke-width"]??""}}function QS(t){return t.startsWith("data:image/gif")||/\.gif(?:[?#]|$)/i.test(t)}function tk(t){return/^data:video\/(?:mp4|quicktime)/i.test(t)||/\.(?:mp4|mov|m4v)(?:[?#]|$)/i.test(t)||/motionly-filename=[^#]*(?:mp4|mov|m4v)(?:[&#]|$)/i.test(t)}class B_{canvas;context;maskCanvas;maskContext;constructor(e){this.canvas=e;const i=e.getContext("2d",{alpha:!1});if(!i)throw new Error("Failed to get 2D rendering context");this.context=i,this.maskCanvas=e.ownerDocument.createElement("canvas");const s=this.maskCanvas.getContext("2d");if(!s)throw new Error("Failed to create mask rendering context");this.maskContext=s}resize(e,i){this.canvas.width!==e&&(this.canvas.width=e),this.canvas.height!==i&&(this.canvas.height=i),this.maskCanvas.width!==e&&(this.maskCanvas.width=e),this.maskCanvas.height!==i&&(this.maskCanvas.height=i)}render(e,i=new Map,s=1){const{canvas:n,camera:a,elements:o}=e,l=Math.max(.05,Math.min(1,Number.isFinite(s)?s:1));this.resize(Math.max(1,Math.round(n.width*l)),Math.max(1,Math.round(n.height*l)));const c=this.context;c.save(),c.setTransform(l,0,0,l,0,0),c.imageSmoothingEnabled=!0,c.imageSmoothingQuality="high",c.globalAlpha=1,c.filter="none",c.fillStyle=n.background,c.fillRect(0,0,n.width,n.height);const u=ek(o),d=E_(u),f=new Map(u.map(p=>[p.id,p]));c.save(),nk(c,n,a);for(const p of u)p.render.layer!=="effects"&&!d.has(p.id)&&Dp(c,n,p,i,f,this.maskCanvas,this.maskContext);c.restore();for(const p of u)p.render.layer==="effects"&&!d.has(p.id)&&Dp(c,n,p,i,f,this.maskCanvas,this.maskContext);c.restore()}measureText(e,i,s,n){return this.context.font=`${n} ${s}px ${i}`,this.context.measureText(e)}}function ek(t){const e=new Map,i=[];for(const s of t){const n=s.properties,a=n.textGroup;if(!a||n.textSplit!=="words"){i.push(s);continue}e.has(a)||e.set(a,[]),e.get(a).push(s)}for(const s of e.values())i.push(...ik(s));return i}function ik(t){if(t.length===0)return t;const e=sk(),i=t[0].render,s=i.textGroupX??0;e.font=`${i.weight} ${i.size}px ${i.font}`;const n=t.map(c=>{const u=c.render;return e.measureText(String(u.value)).width}),a=e.measureText(" ").width;let l=-(n.reduce((c,u)=>c+u,0)+a*(t.length-1))/2;return t.map((c,u)=>{const d=n[u],f=l+d/2;l+=d+a;const p=c.properties,v=c.render,g=p.x,_=v.x,x=typeof _=="number"&&typeof g=="number"?_-g:0;return{...c,render:{...c.render,x:s+f+x}}})}let gu;function sk(){return typeof document>"u"?Np:(gu||(gu=document.createElement("canvas")),gu.getContext("2d")??Np)}const Np={font:"",measureText(t){const e=Number.parseFloat(this.font.match(/(\d+(?:\.\d+)?)px/)?.[1]??"16");return{width:String(t).length*e*.52}}};function nk(t,e,i){const s=i,n=s.zoom??1,a=s.rotation??0,o=s.x??0,l=s.y??0;t.translate(e.width/2,e.height/2),t.scale(n,n),t.rotate(a*Math.PI/180),t.translate(-(e.width/2)-o,-(e.height/2)-l)}function E_(t){const e=new Set;for(const i of t){const s=i.render,n=String(s.mask??"");n&&n!=="none"&&s.maskVisible!==!0&&e.add(n)}return e}function Dp(t,e,i,s,n,a,o){const l=i.render,c=String(l.mask??""),u=c&&c!=="none"?n.get(c):void 0;if(!u){yu(t,e,i,s,n);return}o.save(),o.setTransform(1,0,0,1,0,0),o.clearRect(0,0,a.width,a.height),o.restore(),o.save(),o.setTransform(t.getTransform()),o.globalAlpha=1,o.filter="none",o.globalCompositeOperation="source-over",yu(o,e,i,s,n),o.globalCompositeOperation=l.maskInvert===!0?"destination-out":"destination-in",yu(o,e,u,s,n),o.restore(),t.save(),t.setTransform(1,0,0,1,0,0),t.globalAlpha=1,t.filter="none",t.drawImage(a,0,0),t.restore()}function yu(t,e,i,s,n){const a=i.render,o=a.opacity;if(o<=0)return;t.save(),t.globalAlpha=o;const l=Sk(a);l!=="none"&&(t.filter=l),i.kind==="text"?lk(t,e,a):i.kind==="overlay"?uk(t,e,a,s,n):i.kind==="effect"?mk(t,e,a):rk(t,e,i,a,s),t.restore()}function rk(t,e,i,s,n){const a=i.assetName;if(!a)return;const o=n.get(a);if(!o)return;const l=Pr(o)?o.motionlyPreviewFrame:o;if(!l?.width||!l.height)return;const c=T_(e,o,s);P_(t,s);const u=s.rotation??0,d=s.scale??1,f=er(s.originX,.5),p=er(s.originY,.5),v=-c.width*f,g=-c.height*p;t.translate(c.x+c.width*f,c.y+c.height*p),t.rotate(u*Math.PI/180),Kl(t,s),t.scale(d,d),pk(t,c.width,c.height,s,v,g);const _=s.pathProgress;if(typeof _=="number"&&o.motionlySvg?.paths.length)ak(t,o,c,_,v,g,s);else if(o.motionlySvg?.paths.length&&!o.motionlySvg.animated&&(s.fill!==void 0||s.stroke!==void 0||s.strokeWidth!==void 0))ok(t,o.motionlySvg,c,v,g,s);else try{t.drawImage(l,v,g,c.width,c.height)}catch(x){if(!Pr(o))throw x}}function ak(t,e,i,s,n,a,o){const l=e.motionlySvg;if(!l)return;const c=Math.max(0,Math.min(1,s)),u=Math.max(0,Math.min(1,(c-.72)/.28));if(u>0&&(t.save(),t.globalAlpha*=u,t.drawImage(e,n,a,i.width,i.height),t.restore()),c>=1)return;t.save(),t.translate(n,a),t.scale(i.width/l.width,i.height/l.height);const d=t.globalAlpha;for(const f of l.paths)f.stroke!=="none"&&(t.strokeStyle=String(o.stroke??f.stroke),t.globalAlpha=d*f.opacity,t.lineWidth=er(o.strokeWidth,f.strokeWidth),t.lineCap=f.lineCap,t.lineJoin=f.lineJoin,t.setLineDash([f.length,f.length]),t.lineDashOffset=f.length*(1-c),t.stroke(U_(f)));t.restore()}function ok(t,e,i,s,n,a){t.save(),t.translate(s,n),t.scale(i.width/e.width,i.height/e.height);const o=t.globalAlpha;for(const l of e.paths){const c=U_(l),u=String(a.fill??l.fill),d=String(a.stroke??l.stroke);u!=="none"&&(t.globalAlpha=o*l.fillOpacity,t.fillStyle=u,t.fill(c)),d!=="none"&&(t.globalAlpha=o*l.opacity,t.strokeStyle=d,t.lineWidth=er(a.strokeWidth,l.strokeWidth),t.lineCap=l.lineCap,t.lineJoin=l.lineJoin,t.stroke(c))}t.restore()}const Rp=new WeakMap;function U_(t){const e=Rp.get(t);if(e)return e;const i=new Path2D(t.d);return Rp.set(t,i),i}function lk(t,e,i){P_(t,i),t.fillStyle=i.color??"#fff",t.font=`${i.weight} ${i.size}px ${i.font}`,t.textBaseline="middle",t.textAlign="center";const s=i.center,n=s?e.width/2+(i.x??0):i.x??0,a=s?e.height/2+(i.y??0):i.y??0,o=i.rotation??0,l=i.scale??1,c=typeof i.countDecimals=="number"?Sw(i.value,String(i.countSeparator??""),i.countDecimals):String(i.value??""),u=i.tracking??0;t.translate(n,a),t.rotate(o*Math.PI/180),Kl(t,i),t.scale(l,l),ck(t,c,0,0,u)}function ck(t,e,i,s,n){if(!n){t.fillText(e,i,s);return}const a=Array.from(e),o=a.map(u=>t.measureText(u).width),l=o.reduce((u,d)=>u+d,0)+n*(a.length-1);let c=i-l/2;t.textAlign="left";for(let u=0;u<a.length;u+=1){const d=a[u],f=o[u];d&&f!==void 0&&(t.fillText(d,c,s),c+=f+n)}}function uk(t,e,i,s,n){const a=String(i.parent??"");if(a){dk(t,e,i,a,s,n);return}t.fillStyle=i.fill??"#000";const o=i.revealProgress;if(typeof o=="number"){const l=Math.max(0,Math.min(1,o));if(i.revealStyle==="iris"){t.beginPath(),t.arc(e.width/2,e.height/2,Math.hypot(e.width,e.height)*l/2,0,Math.PI*2),t.fill();return}const c=String(i.revealDirection??"right");c==="left"?t.fillRect(e.width*(1-l),0,e.width*l,e.height):c==="up"?t.fillRect(0,e.height*(1-l),e.width,e.height*l):c==="down"?t.fillRect(0,0,e.width,e.height*l):t.fillRect(0,0,e.width*l,e.height);return}t.fillRect(0,0,e.width,e.height)}function dk(t,e,i,s,n,a){const o=a.get(s);if(!o||o.kind!=="image"&&o.kind!=="asset")return;const l=o.render,c=Number(l.opacity??1);if(c<=0)return;const u=o.assetName,d=u?n.get(u):void 0;if(!d)return;const f=T_(e,d,l),p=d.width||f.width,v=d.height||f.height,g=Number(l.rotation??0),_=Number(l.scale??1),x=er(l.originX,.5),E=er(l.originY,.5);t.save(),t.globalAlpha*=c,t.translate(f.x+f.width*x,f.y+f.height*E),t.rotate(g*Math.PI/180),Kl(t,l),t.scale(_,_),t.translate(-f.width*x,-f.height*E),t.scale(f.width/p,f.height/v),i.clip&&(t.beginPath(),t.rect(0,0,p,v),t.clip());const I=Number(i.x??0),z=Number(i.y??0),$=Number(i.scale??1),M=Number(i.rotation??0),V=String(i.shape??"rect");t.translate(I,z),t.rotate(M*Math.PI/180),Kl(t,i),t.scale($,$),fk(t,V,i,p,v,I,z),t.restore()}function fk(t,e,i,s,n,a,o){const l=String(i.fill??"none"),c=String(i.stroke??"none"),u=Number(i.strokeWidth??4),d=Number(i.width??120),f=Number(i.height??80),p=Number(i.radius??48),v=Number(i.radiusX??p),g=Number(i.radiusY??p),_=Math.max(0,Math.min(1,Number(i.pathProgress??1)));if(t.lineWidth=u,t.lineCap="round",t.lineJoin="round",l!=="none"&&(t.fillStyle=l),c!=="none"&&(t.strokeStyle=c),e==="text"){t.fillStyle=l==="none"?String(i.color??"#fff"):l,t.font=`${Number(i.weight??700)} ${Number(i.size??48)}px ${String(i.font??"sans-serif")}`,t.textAlign="center",t.textBaseline="middle",t.fillText(String(i.value??""),0,0);return}if(e==="arrow"||e==="line"){hk(t,i,_,e==="arrow");return}if(e==="spotlight"){const E=Math.max(0,Math.min(1,Number(i.revealProgress??1))),I=new Path2D;I.rect(-a,-o,s,n),I.ellipse(0,0,v*E,g*E,0,0,Math.PI*2),t.fillStyle=l==="none"?"rgba(0, 0, 0, 0.58)":l,t.fill(I,"evenodd");return}const x=new Path2D;if(e==="circle")x.arc(0,0,p,-Math.PI/2,-Math.PI/2+Math.PI*2*_);else if(e==="ellipse")x.ellipse(0,0,v,g,0,-Math.PI/2,-Math.PI/2+Math.PI*2*_);else if(e==="path"){const E=String(i.path??"");if(!E)return;const I=new Path2D(E);l!=="none"&&t.fill(I),c!=="none"&&t.stroke(I);return}else x.rect(-d/2,-f/2,d,f);l!=="none"&&_>=1&&t.fill(x),c!=="none"&&t.stroke(x)}function hk(t,e,i,s){const n=Number(e.x2??0),a=Number(e.y2??0),o=n*i,l=a*i;if(t.beginPath(),t.moveTo(0,0),t.lineTo(o,l),t.stroke(),!s||i<.92)return;const c=Math.atan2(a,n),u=Math.max(10,Number(e.strokeWidth??4)*3.5);t.beginPath(),t.moveTo(o,l),t.lineTo(o-u*Math.cos(c-Math.PI/6),l-u*Math.sin(c-Math.PI/6)),t.moveTo(o,l),t.lineTo(o-u*Math.cos(c+Math.PI/6),l-u*Math.sin(c+Math.PI/6)),t.stroke()}function Kl(t,e){const i=Math.tan((e.skewX??0)*Math.PI/180),s=Math.tan((e.skewY??0)*Math.PI/180);(i||s)&&t.transform(1,s,i,1,0,0)}function pk(t,e,i,s,n=-e/2,a=-i/2){const o=s.revealProgress;if(typeof o!="number")return;const l=Math.max(0,Math.min(1,o)),c=String(s.revealDirection??"right");t.beginPath(),c==="left"?t.rect(n+e-e*l,a,e*l,i):c==="up"?t.rect(n,a+i-i*l,e,i*l):c==="down"?t.rect(n,a,e,i*l):t.rect(n,a,e*l,i),t.clip()}function mk(t,e,i){const s=i.effect;if(s==="noise"){xk(t,e,i);return}if(s==="grid"||s==="mesh"){gk(t,e,i);return}if(s==="rippleGrid"||s==="ripple-grid"){bk(t,e,i);return}if(s==="prism"){yk(t,e,i);return}vk(t,e,i)}function vk(t,e,i){const s=i.offset??0,n=i.effect??"gradientMotion",a=e.width*(.18+.68*s),o=e.height*(.32+.2*Math.sin(s*Math.PI*2)),l=t.createRadialGradient(a,o,0,a,o,e.width*.62),c=_k(n);l.addColorStop(0,c[0]),l.addColorStop(.42,c[1]),l.addColorStop(1,"rgba(0, 0, 0, 0)"),t.fillStyle=l,t.fillRect(0,0,e.width,e.height)}function _k(t){return t==="aurora"?["rgba(124, 247, 197, 0.32)","rgba(138, 180, 255, 0.2)"]:t==="codeGlow"?["rgba(88, 101, 242, 0.3)","rgba(124, 247, 197, 0.14)"]:t==="heroGlow"?["rgba(255, 255, 255, 0.18)","rgba(138, 180, 255, 0.18)"]:["rgba(124, 247, 197, 0.34)","rgba(138, 180, 255, 0.2)"]}function gk(t,e,i){const s=(i.offset??0)*48;t.strokeStyle="rgba(255, 255, 255, 0.055)",t.lineWidth=1;for(let n=-48+s;n<e.width+48;n+=48)t.beginPath(),t.moveTo(n,0),t.lineTo(n,e.height),t.stroke();for(let n=-48+s;n<e.height+48;n+=48)t.beginPath(),t.moveTo(0,n),t.lineTo(e.width,n),t.stroke()}function yk(t,e,i){const s=i.offset??0,n=i.intensity??1,a=e.width*(.5+Math.sin(s*Math.PI*2)*.08)+(i.x??0),o=e.height*(.54+Math.cos(s*Math.PI*2)*.04)+(i.y??0),l=e.height*.82,c=e.width*.32,u=s*Math.PI*2,d=t.createRadialGradient(a,o,0,a,o,e.width*.72);d.addColorStop(0,`rgba(138, 180, 255, ${.16*n})`),d.addColorStop(.42,`rgba(124, 247, 197, ${.08*n})`),d.addColorStop(1,"rgba(0, 0, 0, 0)"),t.fillStyle=d,t.fillRect(0,0,e.width,e.height),t.save(),t.translate(a,o),t.rotate(Math.sin(u)*.12);for(let p=0;p<7;p+=1){const v=p/6,g=-l*.42+v*l*.82,_=c*(1-Math.abs(v-.5)*1.35),x=170+Math.sin(u*1.8+p*.8)*80,E=(.17-p*.013)*n;t.beginPath(),t.moveTo(0,-l*.5),t.lineTo(-_,g),t.lineTo(0,l*.46),t.lineTo(_,g),t.closePath(),t.strokeStyle=`hsla(${x}, 92%, 72%, ${E})`,t.lineWidth=3+p*3.5,t.stroke()}const f=t.createLinearGradient(0,-l*.5,0,l*.5);f.addColorStop(0,`rgba(255, 255, 255, ${.18*n})`),f.addColorStop(.45,`rgba(138, 180, 255, ${.08*n})`),f.addColorStop(1,"rgba(124, 247, 197, 0)"),t.fillStyle=f,t.beginPath(),t.moveTo(0,-l*.48),t.lineTo(-c*.45,l*.28),t.lineTo(0,l*.48),t.lineTo(c*.45,l*.28),t.closePath(),t.fill(),t.restore()}function bk(t,e,i){const s=i.offset??0,n=i.intensity??1,a=i.gridSize??56,o=34*n,l=e.width/2,c=e.height/2,u=Math.hypot(l,c);t.lineWidth=i.gridThickness??1,t.strokeStyle=i.color??"rgba(255, 255, 255, 0.22)";for(let f=-a;f<=e.width+a;f+=a){t.beginPath();for(let p=0;p<=e.height;p+=18){const v=Math.hypot(f-l,p-c)/u,g=Math.sin(v*28-s*Math.PI*6)*o*(1-v);p===0?t.moveTo(f+g,p):t.lineTo(f+g,p)}t.stroke()}for(let f=-a;f<=e.height+a;f+=a){t.beginPath();for(let p=0;p<=e.width;p+=18){const v=Math.hypot(p-l,f-c)/u,g=Math.sin(v*28-s*Math.PI*6)*o*(1-v);p===0?t.moveTo(p,f+g):t.lineTo(p,f+g)}t.stroke()}const d=t.createRadialGradient(l,c,e.width*.18,l,c,e.width*.7);d.addColorStop(0,"rgba(0, 0, 0, 0)"),d.addColorStop(1,"rgba(0, 0, 0, 0.72)"),t.fillStyle=d,t.fillRect(0,0,e.width,e.height)}function xk(t,e,i){const n=Math.floor((i.offset??0)*60);t.fillStyle="rgba(255, 255, 255, 0.32)";for(let a=0;a<e.height;a+=6)for(let o=0;o<e.width;o+=6)wk(o,a,n)>.92&&t.fillRect(o,a,1,1)}function wk(t,e,i){const s=Math.sin(t*12.9898+e*78.233+i*37.719)*43758.5453;return s-Math.floor(s)}function T_(t,e,i){const s=e.width,n=e.height,a=i.cover,o=i.center,l=i.x??0,c=i.y??0,u=i.width,d=i.height;if(a){const _=i.overscan??1.18,x=Math.max(t.width/s,t.height/n)*_,E=s*x,I=n*x;return{x:(t.width-E)/2+l,y:(t.height-I)/2+c,width:E,height:I}}const f=u??(d?s*(d/n):s),p=d??n*(f/s),v=o?(t.width-f)/2+l:l,g=o?(t.height-p)/2+c:c;return{x:v,y:g,width:f,height:p}}function er(t,e){const i=typeof t=="number"?t:Number(t);return Number.isFinite(i)?i:e}function fr(t,e,i,s){return Math.min(s,Math.max(i,er(t,e)))}function Sk(t){const e=[],i=fr(t.blur,0,0,100),s=fr(t.brightness,1,0,10),n=fr(t.contrast,1,0,10),a=fr(t.saturation,1,0,10),o=er(t.hue,0),l=fr(t.grayscale,0,0,1),c=fr(t.sepia,0,0,1),u=fr(t.invert,0,0,1);return i!==0&&e.push(`blur(${i}px)`),s!==1&&e.push(`brightness(${s})`),n!==1&&e.push(`contrast(${n})`),a!==1&&e.push(`saturate(${a})`),o!==0&&e.push(`hue-rotate(${o}deg)`),l!==0&&e.push(`grayscale(${l})`),c!==0&&e.push(`sepia(${c})`),u!==0&&e.push(`invert(${u})`),e.length?e.join(" "):"none"}function P_(t,e){const i=e.shadow;if(!i){t.shadowBlur=0;return}t.shadowColor="rgba(0, 0, 0, 0.28)",t.shadowBlur=i,t.shadowOffsetY=i/3}var Lp=Object.defineProperty,A_=(t,e)=>{let i={};for(var s in t)Lp(i,s,{get:t[s],enumerable:!0});return Lp(i,Symbol.toStringTag,{value:"Module"}),i};const bu=Math.pow(2,32),bi=Math.pow(2,32)-1,kk=131072,Bk=1024,Ek=2048;var Fn=class I_ extends ArrayBuffer{constructor(e){super(e),this.fileStart=0,this.usedBytes=0}static fromArrayBuffer(e,i){const s=new I_(e.byteLength);return new Uint8Array(s).set(new Uint8Array(e)),s.fileStart=i,s}},Hi=class Pe{static{this.ENDIANNESS=new Int8Array(new Int16Array([1]).buffer)[0]>0?2:1}constructor(e,i,s){this._byteLength=0,this.failurePosition=0,this._dynamicSize=1,this._byteOffset=i||0,e instanceof ArrayBuffer?this.buffer=Fn.fromArrayBuffer(e,0):e instanceof DataView?(this.dataView=e,i&&(this._byteOffset+=i)):this.buffer=new Fn(e||0),this.position=0,this.endianness=s||1}getPosition(){return this.position}_realloc(e){if(!this._dynamicSize)return;const i=this._byteOffset+this.position+e;let s=this._buffer.byteLength;if(i<=s){i>this._byteLength&&(this._byteLength=i);return}for(s<1&&(s=1);i>s;)s*=2;const n=new Fn(s),a=new Uint8Array(this._buffer);new Uint8Array(n,0,a.length).set(a),this.buffer=n,this._byteLength=i}_trimAlloc(){if(this._byteLength===this._buffer.byteLength)return;const e=new Fn(this._byteLength),i=new Uint8Array(e),s=new Uint8Array(this._buffer,0,i.length);i.set(s),this.buffer=e}get byteLength(){return this._byteLength-this._byteOffset}get buffer(){return this._trimAlloc(),this._buffer}set buffer(e){this._buffer=e,this._dataView=new DataView(e,this._byteOffset),this._byteLength=e.byteLength}get byteOffset(){return this._byteOffset}set byteOffset(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}get dataView(){return this._dataView}set dataView(e){this._byteOffset=e.byteOffset,this._buffer=Fn.fromArrayBuffer(e.buffer,0),this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}seek(e){const i=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(i)||!isFinite(i)?0:i}isEof(){return this.position>=this._byteLength}#t(e){return Array.isArray(e)&&e.length===3&&e[0]==="[]"}mapUint8Array(e){this._realloc(e*1);const i=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,i}readInt32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Int32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt16Array(e,i){e=e===void 0?this.byteLength-this.position/2:e;const s=new Int16Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt8Array(e){e=e===void 0?this.byteLength-this.position:e;const i=new Int8Array(e);return Pe.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readUint32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Uint32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint16Array(e,i){e=e===void 0?this.byteLength-this.position/2:e;const s=new Uint16Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint8Array(e){e=e===void 0?this.byteLength-this.position:e;const i=new Uint8Array(e);return Pe.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readFloat64Array(e,i){e=e===void 0?this.byteLength-this.position/8:e;const s=new Float64Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readFloat32Array(e,i){e=e===void 0?this.byteLength-this.position/4:e;const s=new Float32Array(e);return Pe.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),Pe.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt32(e){const i=this._dataView.getInt32(this.position,(e??this.endianness)===2);return this.position+=4,i}readInt16(e){const i=this._dataView.getInt16(this.position,(e??this.endianness)===2);return this.position+=2,i}readInt8(){const e=this._dataView.getInt8(this.position);return this.position+=1,e}readUint32(e){const i=this._dataView.getUint32(this.position,(e??this.endianness)===2);return this.position+=4,i}readUint16(e){const i=this._dataView.getUint16(this.position,(e??this.endianness)===2);return this.position+=2,i}readUint8(){const e=this._dataView.getUint8(this.position);return this.position+=1,e}readFloat32(e){const i=this._dataView.getFloat32(this.position,(e??this.endianness)===2);return this.position+=4,i}readFloat64(e){const i=this._dataView.getFloat64(this.position,(e??this.endianness)===2);return this.position+=8,i}static memcpy(e,i,s,n,a){const o=new Uint8Array(e,i,a),l=new Uint8Array(s,n,a);o.set(l)}static arrayToNative(e,i){return i===Pe.ENDIANNESS?e:this.flipArrayEndianness(e)}static nativeToEndian(e,i){return i&&Pe.ENDIANNESS===2?e:this.flipArrayEndianness(e)}static flipArrayEndianness(e){const i=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let s=0;s<e.byteLength;s+=e.BYTES_PER_ELEMENT)for(let n=s+e.BYTES_PER_ELEMENT-1,a=s;n>a;n--,a++){const o=i[a];i[a]=i[n],i[n]=o}return e}readString(e,i){return i===void 0||i==="ASCII"?Hp(this.mapUint8Array(e===void 0?this.byteLength-this.position:e)):new TextDecoder(i).decode(this.mapUint8Array(e))}readCString(e){let i=0;const s=this.byteLength-this.position,n=new Uint8Array(this._buffer,this._byteOffset+this.position),a=e!==void 0?Math.min(e,s):s;for(;i<a&&n[i]!==0;i++);const o=Hp(this.mapUint8Array(i));return e!==void 0?this.position+=a-i:i!==s&&(this.position+=1),o}readInt64(){return this.readInt32()*bu+this.readUint32()}readUint64(){return this.readUint32()*bu+this.readUint32()}readUint24(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()}save(e){const i=new Blob([this.buffer]);if(typeof window<"u"&&typeof document<"u")if(window.URL&&URL.createObjectURL){const s=window.URL.createObjectURL(i),n=document.createElement("a");document.body.appendChild(n),n.setAttribute("href",s),n.setAttribute("download",e),n.setAttribute("target","_self"),n.click(),window.URL.revokeObjectURL(s),document.body.removeChild(n)}else throw new Error("DataStream.save: Can't create object URL.");return i}get dynamicSize(){return this._dynamicSize}set dynamicSize(e){e||this._trimAlloc(),this._dynamicSize=e}shift(e){const i=new Fn(this._byteLength-e),s=new Uint8Array(i),n=new Uint8Array(this._buffer,e,s.length);s.set(n),this.buffer=i,this.position-=e}writeInt32Array(e,i){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeInt32(e[s],i)}writeInt16Array(e,i){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeInt16(e[s],i)}writeInt8Array(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(let i=0;i<e.length;i++)this.writeInt8(e[i])}writeUint32Array(e,i){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeUint32(e[s],i)}writeUint16Array(e,i){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeUint16(e[s],i)}writeUint8Array(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(let i=0;i<e.length;i++)this.writeUint8(e[i])}writeFloat64Array(e,i){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeFloat64(e[s],i)}writeFloat32Array(e,i){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)Pe.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,i);else for(let s=0;s<e.length;s++)this.writeFloat32(e[s],i)}writeInt64(e,i){this._realloc(8),this._dataView.setBigInt64(this.position,BigInt(e),(i??this.endianness)===2),this.position+=8}writeInt32(e,i){this._realloc(4),this._dataView.setInt32(this.position,e,(i??this.endianness)===2),this.position+=4}writeInt16(e,i){this._realloc(2),this._dataView.setInt16(this.position,e,(i??this.endianness)===2),this.position+=2}writeInt8(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1}writeUint32(e,i){this._realloc(4),this._dataView.setUint32(this.position,e,(i??this.endianness)===2),this.position+=4}writeUint16(e,i){this._realloc(2),this._dataView.setUint16(this.position,e,(i??this.endianness)===2),this.position+=2}writeUint8(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1}writeFloat32(e,i){this._realloc(4),this._dataView.setFloat32(this.position,e,(i??this.endianness)===2),this.position+=4}writeFloat64(e,i){this._realloc(8),this._dataView.setFloat64(this.position,e,(i??this.endianness)===2),this.position+=8}writeUCS2String(e,i,s){s===void 0&&(s=e.length);let n;for(n=0;n<e.length&&n<s;n++)this.writeUint16(e.charCodeAt(n),i);for(;n<s;n++)this.writeUint16(0)}writeString(e,i,s){let n=0;if(i===void 0||i==="ASCII")if(s!==void 0){const a=Math.min(e.length,s);for(n=0;n<a;n++)this.writeUint8(e.charCodeAt(n));for(;n<s;n++)this.writeUint8(0)}else for(n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));else this.writeUint8Array(new TextEncoder(i).encode(e.substring(0,s)))}writeCString(e,i){let s=0;if(i!==void 0){const n=Math.min(e.length,i);for(s=0;s<n;s++)this.writeUint8(e.charCodeAt(s));for(;s<i;s++)this.writeUint8(0)}else{for(s=0;s<e.length;s++)this.writeUint8(e.charCodeAt(s));this.writeUint8(0)}}writeStruct(e,i){for(let s=0;s<e.length;s++){const[n,a]=e[s],o=i[n];this.writeType(a,o,i)}}writeType(e,i,s){if(typeof e=="function")return e(this,i);if(typeof e=="object"&&!(e instanceof Array))return e.set(this,i,s);let n,a="ASCII";const o=this.position;let l=e;if(typeof e=="string"&&/:/.test(e)){const c=e.split(":");l=c[0],n=parseInt(c[1])}if(typeof l=="string"&&/,/.test(l)){const c=l.split(",");l=c[0],a=c[1]}switch(l){case"uint8":this.writeUint8(i);break;case"int8":this.writeInt8(i);break;case"uint16":this.writeUint16(i,this.endianness);break;case"int16":this.writeInt16(i,this.endianness);break;case"uint32":this.writeUint32(i,this.endianness);break;case"int32":this.writeInt32(i,this.endianness);break;case"float32":this.writeFloat32(i,this.endianness);break;case"float64":this.writeFloat64(i,this.endianness);break;case"uint16be":this.writeUint16(i,1);break;case"int16be":this.writeInt16(i,1);break;case"uint32be":this.writeUint32(i,1);break;case"int32be":this.writeInt32(i,1);break;case"float32be":this.writeFloat32(i,1);break;case"float64be":this.writeFloat64(i,1);break;case"uint16le":this.writeUint16(i,2);break;case"int16le":this.writeInt16(i,2);break;case"uint32le":this.writeUint32(i,2);break;case"int32le":this.writeInt32(i,2);break;case"float32le":this.writeFloat32(i,2);break;case"float64le":this.writeFloat64(i,2);break;case"cstring":this.writeCString(i,n);break;case"string":this.writeString(i,a,n);break;case"u16string":this.writeUCS2String(i,this.endianness,n);break;case"u16stringle":this.writeUCS2String(i,2,n);break;case"u16stringbe":this.writeUCS2String(i,1,n);break;default:if(this.#t(l)){const[,c]=l;for(let u=0;u<i.length;u++)this.writeType(c,i[u]);break}else{this.writeStruct(l,i);break}}n&&(this.position=o,this._realloc(n),this.position=o+n)}writeUint64(e){const i=Math.floor(e/bu);this.writeUint32(i),this.writeUint32(e&4294967295)}writeUint24(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)}adjustUint32(e,i){const s=this.position;this.seek(e),this.writeUint32(i),this.seek(s)}readStruct(e){const i={},s=this.position;for(let n=0;n<e.length;n+=1){const a=e[n][1],o=this.readType(a,i);if(!o){this.failurePosition===0&&(this.failurePosition=this.position),this.position=s;return}i[e[n][0]]=o}return i}readUCS2String(e,i){return String.fromCharCode.apply(void 0,this.readUint16Array(e,i))}readType(e,i){if(typeof e=="function")return e(this,i);if(typeof e=="object"&&!(e instanceof Array))return e.get(this,i);if(e instanceof Array&&e.length!==3)return this.readStruct(e);let s,n,a="ASCII";const o=this.position;let l=e;if(typeof l=="string"&&/:/.test(l)){const c=l.split(":");l=c[0],n=parseInt(c[1])}if(typeof l=="string"&&/,/.test(l)){const c=l.split(",");l=c[0],a=c[1]}switch(l){case"uint8":s=this.readUint8();break;case"int8":s=this.readInt8();break;case"uint16":s=this.readUint16(this.endianness);break;case"int16":s=this.readInt16(this.endianness);break;case"uint32":s=this.readUint32(this.endianness);break;case"int32":s=this.readInt32(this.endianness);break;case"float32":s=this.readFloat32(this.endianness);break;case"float64":s=this.readFloat64(this.endianness);break;case"uint16be":s=this.readUint16(1);break;case"int16be":s=this.readInt16(1);break;case"uint32be":s=this.readUint32(1);break;case"int32be":s=this.readInt32(1);break;case"float32be":s=this.readFloat32(1);break;case"float64be":s=this.readFloat64(1);break;case"uint16le":s=this.readUint16(2);break;case"int16le":s=this.readInt16(2);break;case"uint32le":s=this.readUint32(2);break;case"int32le":s=this.readInt32(2);break;case"float32le":s=this.readFloat32(2);break;case"float64le":s=this.readFloat64(2);break;case"cstring":s=this.readCString(n);break;case"string":s=this.readString(n,a);break;case"u16string":s=this.readUCS2String(n,this.endianness);break;case"u16stringle":s=this.readUCS2String(n,2);break;case"u16stringbe":s=this.readUCS2String(n,1);break;default:if(this.#t(l)){const[,c,u]=l,d=typeof u=="function"?u(i,this,l):typeof u=="string"&&i[u]!==void 0?parseInt(i[u]):typeof u=="number"?u:u==="*"?void 0:parseInt(u);if(typeof c=="string"){const f=c.replace(/(le|be)$/,"");let p;switch(/le$/.test(c)?p=2:/be$/.test(c)&&(p=1),f){case"uint8":s=this.readUint8Array(d);break;case"uint16":s=this.readUint16Array(d,p);break;case"uint32":s=this.readUint32Array(d,p);break;case"int8":s=this.readInt8Array(d);break;case"int16":s=this.readInt16Array(d,p);break;case"int32":s=this.readInt32Array(d,p);break;case"float32":s=this.readFloat32Array(d,p);break;case"float64":s=this.readFloat64Array(d,p);break;case"cstring":case"utf16string":case"string":if(d){s=new Array(d);for(let v=0;v<d;v++)s[v]=this.readType(c,i)}else for(s=[];!this.isEof();){const v=this.readType(c,i);if(!v)break;s.push(v)}break}}else if(d){s=new Array(d);for(let f=0;f<d;f++){const p=this.readType(c,i);if(!p)return;s[f]=p}}else for(s=[];;){const f=this.position;try{const p=this.readType(c,i);if(!p){this.position=f;break}s.push(p)}catch{this.position=f;break}}break}}return n&&(this.position=o+n),s}mapInt32Array(e,i){this._realloc(e*4);const s=new Int32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}mapInt16Array(e,i){this._realloc(e*2);const s=new Int16Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*2,s}mapInt8Array(e,i){this._realloc(e*1);const s=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,s}mapUint32Array(e,i){this._realloc(e*4);const s=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}mapUint16Array(e,i){this._realloc(e*2);const s=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*2,s}mapFloat64Array(e,i){this._realloc(e*8);const s=new Float64Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*8,s}mapFloat32Array(e,i){this._realloc(e*4);const s=new Float32Array(this._buffer,this.byteOffset+this.position,e);return Pe.arrayToNative(s,i??this.endianness),this.position+=e*4,s}};function Hp(t){const e=[];for(let i=0;i<t.length;i++)e[i]=t[i];return String.fromCharCode.apply(void 0,e)}const cl=new Date,kl=4,Vp=3,jp=2,Gp=1;let wn=kl;const L={setLogLevel(t){t===this.debug?wn=Gp:t===this.info?wn=jp:t===this.warn?wn=Vp:(this.error,wn=kl)},debug(t,e){console.debug===void 0&&(console.debug=console.log),Gp>=wn&&console.debug("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},log(t,e){this.debug(t.msg)},info(t,e){jp>=wn&&console.info("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},warn(t,e){Vp>=wn&&console.warn("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},error(t,e,i){i?.onError?i.onError(t,e):kl>=wn&&console.error("["+L.getDurationString(new Date().getTime()-cl.getTime(),1e3)+"]","["+t+"]",e)},getDurationString(t,e){let i;function s(c,u){const d=(""+c).split(".");for(;d[0].length<u;)d[0]="0"+d[0];return d.join(".")}t<0?(i=!0,t=-t):i=!1;let n=t/(e||1);const a=Math.floor(n/3600);n-=a*3600;const o=Math.floor(n/60);n-=o*60;let l=n*1e3;return n=Math.floor(n),l-=n*1e3,l=Math.floor(l),(i?"-":"")+a+":"+s(o,2)+":"+s(n,2)+"."+s(l,3)},printRanges(t){const e=t.length;if(e>0){let i="";for(let s=0;s<e;s++)s>0&&(i+=","),i+="["+L.getDurationString(t.start(s))+","+L.getDurationString(t.end(s))+"]";return i}else return"(empty)"}};function Uk(t,e){L.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength));const i=new Uint8Array(t.byteLength+e.byteLength);return i.set(new Uint8Array(t),0),i.set(new Uint8Array(e),t.byteLength),i.buffer}var Bl=class extends Hi{constructor(t){super(new ArrayBuffer,0),this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)}initialized(){if(this.bufferIndex>-1)return!0;if(this.buffers.length>0){const t=this.buffers[0];return t.fileStart===0?(this.buffer=t,this.bufferIndex=0,L.debug("MultiBufferStream","Stream ready for parsing"),!0):(L.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)}else return L.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1}reduceBuffer(t,e,i){const s=new Uint8Array(i);return s.set(new Uint8Array(t,e,i)),s.buffer.fileStart=t.fileStart+e,s.buffer.usedBytes=0,s.buffer}insertBuffer(t){let e=!0,i=0;for(;i<this.buffers.length;i++){const s=this.buffers[i];if(t.fileStart<=s.fileStart){if(t.fileStart===s.fileStart)if(t.byteLength>s.byteLength){this.buffers.splice(i,1),i--;continue}else L.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring");else t.fileStart+t.byteLength<=s.fileStart||(t=this.reduceBuffer(t,0,s.fileStart-t.fileStart)),L.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(i,0,t),i===0&&(this.buffer=t);e=!1;break}else if(t.fileStart<s.fileStart+s.byteLength){const n=s.fileStart+s.byteLength-t.fileStart,a=t.byteLength-n;if(a>0)t=this.reduceBuffer(t,n,a);else{e=!1;break}}}e&&(L.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),i===0&&(this.buffer=t))}logBufferLevel(t){const e=[];let i="",s,n=0,a=0;for(let l=0;l<this.buffers.length;l++){const c=this.buffers[l];l===0?(s={start:c.fileStart,end:c.fileStart+c.byteLength},e.push(s),i+="["+s.start+"-"):s.end===c.fileStart?s.end=c.fileStart+c.byteLength:(s={start:c.fileStart,end:c.fileStart+c.byteLength},i+=e[e.length-1].end-1+"], ["+s.start+"-",e.push(s)),n+=c.usedBytes,a+=c.byteLength}e.length>0&&(i+=s.end-1+"]");const o=t?L.info:L.debug;this.buffers.length===0?o("MultiBufferStream","No more buffer in memory"):o("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+n+"/"+a+" bytes), continuous ranges: "+i)}cleanBuffers(){for(let t=0;t<this.buffers.length;t++){const e=this.buffers[t];e.usedBytes===e.byteLength&&(L.debug("MultiBufferStream","Removing buffer #"+t),this.buffers.splice(t,1),t--)}}mergeNextBuffer(){if(this.bufferIndex+1<this.buffers.length){const t=this.buffers[this.bufferIndex+1];if(t.fileStart===this.buffer.fileStart+this.buffer.byteLength){const e=this.buffer.byteLength,i=this.buffer.usedBytes,s=this.buffer.fileStart;return this.buffers[this.bufferIndex]=Uk(this.buffer,t),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=i,this.buffer.fileStart=s,L.debug("ISOFile","Concatenating buffer for box parsing (length: "+e+"->"+this.buffer.byteLength+")"),!0}else return!1}else return!1}findPosition(t,e,i){let s=-1,n=t===!0?0:this.bufferIndex;for(;n<this.buffers.length;){const o=this.buffers[n];if(o&&o.fileStart<=e)s=n,i&&(o.fileStart+o.byteLength<=e?o.usedBytes=o.byteLength:o.usedBytes=e-o.fileStart,this.logBufferLevel());else break;n++}if(s===-1)return-1;const a=this.buffers[s];return a.fileStart+a.byteLength>=e?(L.debug("MultiBufferStream","Found position in existing buffer #"+s),s):-1}findEndContiguousBuf(t){const e=t!==void 0?t:this.bufferIndex;let i=this.buffers[e];if(this.buffers.length>e+1)for(let s=e+1;s<this.buffers.length;s++){const n=this.buffers[s];if(n.fileStart===i.fileStart+i.byteLength)i=n;else break}return i.fileStart+i.byteLength}getEndFilePositionAfter(t){const e=this.findPosition(!0,t,!1);return e!==-1?this.findEndContiguousBuf(e):t}addUsedBytes(t){this.buffer.usedBytes+=t,this.logBufferLevel()}setAllUsedBytes(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()}seek(t,e,i){const s=this.findPosition(e,t,i);return s!==-1?(this.buffer=this.buffers[s],this.bufferIndex=s,this.position=t-this.buffer.fileStart,L.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(L.debug("MultiBufferStream","Position "+t+" not found in buffered data"),!1)}getPosition(){return this.bufferIndex===-1||this.buffers[this.bufferIndex]===void 0?0:this.buffers[this.bufferIndex].fileStart+this.position}getLength(){return this.byteLength}getEndPosition(){return this.bufferIndex===-1||this.buffers[this.bufferIndex]===void 0?0:this.buffers[this.bufferIndex].fileStart+this.byteLength}getAbsoluteEndPosition(){if(this.buffers.length===0)return 0;const t=this.buffers[this.buffers.length-1];return t.fileStart+t.byteLength}},mt=class{static{this.registryId=Symbol.for("BoxIdentifier")}#t;get type(){return this.constructor.fourcc??this.#t}set type(t){this.#t=t}constructor(t=0){this.size=t}addBox(t){return this.boxes||(this.boxes=[]),this.boxes.push(t),this[t.type+"s"]?this[t.type+"s"].push(t):this[t.type]=t,t}set(t,e){return this[t]=e,this}addEntry(t,e){const i=e||"entries";return this[i]||(this[i]=[]),this[i].push(t),this}writeHeader(t,e){if(this.size+=8,(this.size>bi||this.original_size===1)&&(this.size+=8),this.type==="uuid"&&(this.size+=16),L.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),this.original_size===0?t.writeUint32(0):this.size>bi||this.original_size===1?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,void 0,4),this.type==="uuid"){const i=new Uint8Array(16);for(let s=0;s<16;s++)i[s]=parseInt(this.uuid.substring(s*2,s*2+2),16);t.writeUint8Array(i)}(this.size>bi||this.original_size===1)&&(this.sizePosition=t.getPosition(),t.writeUint64(this.size))}write(t){if(this.type==="mdat"){const e=this;if(e.stream){this.size=e.stream.getAbsoluteEndPosition(),this.writeHeader(t);for(const i of e.stream.buffers){const s=new Uint8Array(i);t.writeUint8Array(s)}}else e.data&&(this.size=e.data.length,this.writeHeader(t),t.writeUint8Array(e.data))}else this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data)}printHeader(t){this.size+=8,this.size>bi&&(this.size+=8),this.type==="uuid"&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)}print(t){this.printHeader(t)}parse(t){this.type!=="mdat"?this.data=t.readUint8Array(this.size-this.hdr_size):this.size===0?t.seek(t.getEndPosition()):t.seek(this.start+this.size)}parseDataAndRewind(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.seek(this.start+this.hdr_size)}parseLanguage(t){this.language=t.readUint16();const e=[];e[0]=this.language>>10&31,e[1]=this.language>>5&31,e[2]=this.language&31,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)}computeSize(t){const e=t||new Bl;this.write(e)}isEndOfBox(t){return t.getPosition()===this.start+this.size}},X=class extends mt{constructor(...t){super(...t),this.flags=0,this.version=0}writeHeader(t){this.size+=4,super.writeHeader(t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)}printHeader(t){this.size+=4,super.printHeader(t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)}parseDataAndRewind(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.seek(this.start+this.hdr_size)}parseFullHeader(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4}parse(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}},vi=class{static{this.registryId=Symbol.for("SampleGroupEntryIdentifier")}constructor(t){this.grouping_type=t}write(t){t.writeUint8Array(this.data)}parse(t){L.warn("BoxParser",`Unknown sample group type: '${this.grouping_type}'`),this.data=t.readUint8Array(this.description_length)}},Tk=class extends X{parse(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()}},Pk=class extends mt{constructor(t,e,i,s,n){super(e),this.box_name=i,this.hdr_size=s,this.start=n,this.type=t}parse(t){this.from_item_ID=t.readUint16();const e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint16()}}},Ak=class extends mt{constructor(t,e,i,s,n){super(e),this.box_name=i,this.hdr_size=s,this.start=n,this.type=t}parse(t){this.from_item_ID=t.readUint32();const e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint32()}}},Ik=class extends mt{constructor(t,e,i,s){super(e),this.hdr_size=i,this.start=s,this.type=t}parse(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)}write(t){this.size=this.track_ids.length*4,this.writeHeader(t),t.writeUint32Array(this.track_ids)}};const ad=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],Mk=["compatible_brands","matrix","opcolor","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"];function zk(t,e){if(t&&!e)return!1;let i;for(i in t)if(!ad.find(s=>s===i)){if(t[i]instanceof mt||e[i]instanceof mt)continue;if(typeof t[i]>"u"||typeof e[i]>"u")continue;if(typeof t[i]=="function"||typeof e[i]=="function")continue;if("subBoxNames"in t&&t.subBoxNames.indexOf(i.slice(0,4))>-1||"subBoxNames"in e&&e.subBoxNames.indexOf(i.slice(0,4))>-1)continue;if(i==="data"||i==="start"||i==="size"||i==="creation_time"||i==="modification_time")continue;if(Mk.find(s=>s===i))continue;if(t[i]!==e[i])return!1}return!0}function M_(t,e){if(!zk(t,e))return!1;for(let i=0;i<ad.length;i++){const s=ad[i];if(t[s]&&e[s]&&!M_(t[s],e[s]))return!1}return!0}function Gd(t){let e=t;for(;e;){if("registryId"in e)return e.registryId;e=Object.getPrototypeOf(e)}}const Ck=t=>{const e=Symbol.for("SampleGroupEntryIdentifier");return Gd(t)===e},$k=t=>{const e=Symbol.for("SampleEntryIdentifier");return Gd(t)===e},Ok=t=>{const e=Symbol.for("BoxIdentifier");return Gd(t)===e},Ji={uuid:{},sampleEntry:{},sampleGroupEntry:{},box:{}};function Fk(t){const e={uuid:{},sampleEntry:{},sampleGroupEntry:{},box:{}};for(const[i,s]of Object.entries(t)){if(Ck(s)){const n="grouping_type"in s?s.grouping_type:void 0;if(!n)throw new Error(`SampleGroupEntry class ${i} does not have a valid static grouping_type. Please ensure it is defined correctly.`);if(n in e.sampleGroupEntry)throw new Error(`SampleGroupEntry class ${i} has a grouping_type that is already registered. Please ensure it is unique.`);e.sampleGroupEntry[n]=s;continue}if($k(s)){const n="fourcc"in s?s.fourcc:void 0;if(!n)throw new Error(`SampleEntry class ${i} does not have a valid static fourcc. Please ensure it is defined correctly.`);if(n in e.sampleEntry)throw new Error(`SampleEntry class ${i} has a fourcc that is already registered. Please ensure it is unique.`);e.sampleEntry[n]=s;continue}if(Ok(s)){const n="fourcc"in s?s.fourcc:void 0,a="uuid"in s?s.uuid:void 0;if(n==="uuid"){if(!a)throw new Error(`Box class ${i} has a fourcc of 'uuid' but does not have a valid uuid. Please ensure it is defined correctly.`);if(a in e.uuid)throw new Error(`Box class ${i} has a uuid that is already registered. Please ensure it is unique.`);e.uuid[a]=s;continue}e.box[n]=s;continue}throw new Error(`Box class ${i} does not have a valid static fourcc, uuid, or grouping_type. Please ensure it is defined correctly.`)}return Ji.uuid={...e.uuid},Ji.sampleEntry={...e.sampleEntry},Ji.sampleGroupEntry={...e.sampleGroupEntry},Ji.box={...e.box},Ji}const Xl={};function Nk(t){return Object.entries(t).forEach(([e,i])=>Xl[e]=i),Xl}function Dk(t){return Ar(t)}function Ar(t){let e="";for(let i=0;i<16;i++){const s=t.readUint8().toString(16);e+=s.length===1?"0"+s:s}return e}function hn(t,e,i){let s,n;const a=t.getPosition();let o=0,l;if(t.getEndPosition()-a<8)return L.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:0};if(i&&i<8)return L.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:0};let c=t.readUint32();const u=t.readString(4);if(u.length!==4||!/^[\x20-\x7E]{4}$/.test(u))return L.error("BoxParser",`Invalid box type: '${u}'`),{code:-1,start:a,type:u};let d=u;if(L.debug("BoxParser","Found box of type '"+u+"' and size "+c+" at position "+a),o=8,u==="uuid"){if(t.getEndPosition()-t.getPosition()<16||i-o<16)return t.seek(a),L.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:0};l=Dk(t),o+=16,d=l}if(c===1){if(t.getEndPosition()-t.getPosition()<8||i&&i-o<8)return t.seek(a),L.warn("BoxParser",'Not enough data in stream to parse the extended size of the "'+u+'" box'),{code:0};n=c,c=t.readUint64(),o+=8}else if(c===0)if(i)c=i;else{if(u!=="mdat")return L.error("BoxParser","Unlimited box size not supported for type: '"+u+"'"),s=new mt(c),s.type=u,{code:1,box:s,size:s.size};c=t.getEndPosition()-a}if(c!==0&&c<o)return L.error("BoxParser","Box of type "+u+" has an invalid size "+c+" (too small to be a box)"),{code:0,type:u,size:c,hdr_size:o,start:a};if(c!==0&&i&&c>i)return L.error("BoxParser","Box of type '"+u+"' has a size "+c+" greater than its container size "+i),{code:0,type:u,size:c,hdr_size:o,start:a};if(c!==0&&a+c>t.getEndPosition())return t.seek(a),L.info("BoxParser","Not enough data in stream to parse the entire '"+u+"' box"),{code:0,type:u,size:c,hdr_size:o,start:a,original_size:n};if(e)return{code:1,type:u,size:c,hdr_size:o,start:a};u in Ji.box?s=new Ji.box[u](c):u!=="uuid"?(L.warn("BoxParser",`Unknown box type: '${u}'`),s=new mt(c),s.type=u,s.has_unparsed_data=!0):l in Ji.uuid?s=new Ji.uuid[l](c):(L.warn("BoxParser",`Unknown UUID box type: '${l}'`),s=new mt(c),s.type=u,s.uuid=l,s.has_unparsed_data=!0),s.original_size=n,s.hdr_size=o,s.start=a,s.write===mt.prototype.write&&s.type!=="mdat"&&(L.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t);const f=t.getPosition()-(s.start+s.size);return f<0?(L.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-f+" bytes), seeking forward"),t.seek(s.start+s.size)):f>0&&s.size!==0&&(L.error("BoxParser","Parsing of box '"+d+"' read "+f+" more bytes than the indicated box data size, seeking backwards"),t.seek(s.start+s.size)),{code:1,box:s,size:s.size}}var ke=class extends mt{write(t){if(this.size=0,this.writeHeader(t),this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e]&&(this.boxes[e].write(t),this.size+=this.boxes[e].size);L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}print(t){this.printHeader(t);for(let e=0;e<this.boxes.length;e++)if(this.boxes[e]){const i=t.indent;t.indent+=" ",this.boxes[e].print(t),t.indent=i}}parse(t){let e;for(;t.getPosition()<this.start+this.size;)if(e=hn(t,!1,this.size-(t.getPosition()-this.start)),e.code===1){const i=e.box;if(this.boxes||(this.boxes=[]),this.boxes.push(i),this.subBoxNames&&this.subBoxNames.indexOf(i.type)!==-1){const s=this.subBoxNames[this.subBoxNames.indexOf(i.type)]+"s";this[s]||(this[s]=[]),this[s].push(i)}else{const s=i.type!=="uuid"?i.type:i.uuid;this[s]?L.warn("ContainerBox",`Box of type ${s} already exists in container box ${this.type}.`):this[s]=i}}else return}},zn=class extends ke{static{this.registryId=Symbol.for("SampleEntryIdentifier")}constructor(t,e,i){super(t),this.hdr_size=e,this.start=i}isVideo(){return!1}isAudio(){return!1}isSubtitle(){return!1}isMetadata(){return!1}isHint(){return!1}getCodec(){return this.type.replace(".","")}getWidth(){return""}getHeight(){return""}getChannelCount(){return""}getSampleRate(){return""}getSampleSize(){return""}parseHeader(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8}parse(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}parseDataAndRewind(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.seek(this.start+this.hdr_size)}parseFooter(t){super.parse(t)}writeHeader(t){this.size=8,super.writeHeader(t),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint16(this.data_reference_index)}writeFooter(t){if(this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e].write(t),this.size+=this.boxes[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}write(t){this.writeHeader(t),t.writeUint8Array(this.data),this.size+=this.data.length,L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},qp=class extends zn{},fa=class extends zn{isMetadata(){return!0}},Ir=class extends zn{isSubtitle(){return!0}},Rk=class extends zn{},Ye=class extends zn{parse(t){this.parseHeader(t),t.readUint16(),t.readUint16(),t.readUint32Array(3),this.width=t.readUint16(),this.height=t.readUint16(),this.horizresolution=t.readUint32(),this.vertresolution=t.readUint32(),t.readUint32(),this.frame_count=t.readUint16();const e=Math.min(31,t.readUint8());this.compressorname=t.readString(e),e<31&&t.readString(31-e),this.depth=t.readUint16(),t.readUint16(),this.parseFooter(t)}isVideo(){return!0}getWidth(){return this.width}getHeight(){return this.height}write(t){this.writeHeader(t),this.size+=70,t.writeUint16(0),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.width),t.writeUint16(this.height),t.writeUint32(this.horizresolution),t.writeUint32(this.vertresolution),t.writeUint32(0),t.writeUint16(this.frame_count),t.writeUint8(Math.min(31,this.compressorname.length)),t.writeString(this.compressorname,void 0,31),t.writeUint16(this.depth),t.writeInt16(-1),this.writeFooter(t)}},rs=class extends zn{parse(t){this.parseHeader(t),this.version=t.readUint16(),t.readUint16(),t.readUint32(),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,t.isofile?.ftyp?.major_brand.includes("qt")&&(this.version===1?this.extensions=t.readUint8Array(16):this.version===2&&(this.extensions=t.readUint8Array(36))),this.parseFooter(t)}isAudio(){return!0}getChannelCount(){return this.channel_count}getSampleRate(){return this.samplerate}getSampleSize(){return this.samplesize}write(t){this.writeHeader(t),this.size+=20,t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.channel_count),t.writeUint16(this.samplesize),t.writeUint16(0),t.writeUint16(0),t.writeUint32(this.samplerate<<16),this.writeFooter(t)}},qd=class extends zn{parse(t){this.parseHeader(t),this.parseFooter(t)}write(t){this.writeHeader(t),this.writeFooter(t)}},Wp=class extends Array{toString(){let t="<table class='inner-table'>";t+="<thead><tr><th>length</th><th>nalu_data</th></tr></thead>",t+="<tbody>";for(let e=0;e<this.length;e++){const i=this[e];t+="<tr>",t+="<td>"+i.length+"</td>",t+="<td>",t+=i.data.reduce(function(s,n){return s+n.toString(16).padStart(2,"0")},"0x"),t+="</td></tr>"}return t+="</tbody></table>",t}},z_=class extends mt{constructor(...t){super(...t),this.box_name="AVCConfigurationBox"}static{this.fourcc="avcC"}parse(t){this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=t.readUint8()&3,this.nb_SPS_nalus=t.readUint8()&31;let e=this.size-this.hdr_size-6;this.SPS=new Wp;for(let i=0;i<this.nb_SPS_nalus;i++){const s=t.readUint16();this.SPS.push({length:s,data:t.readUint8Array(s)}),e-=2+s}this.nb_PPS_nalus=t.readUint8(),e--,this.PPS=new Wp;for(let i=0;i<this.nb_PPS_nalus;i++){const s=t.readUint16();this.PPS.push({length:s,data:t.readUint8Array(s)}),e-=2+s}e>0&&(this.ext=t.readUint8Array(e))}write(t){this.size=7;for(let e=0;e<this.SPS.length;e++)this.size+=2+this.SPS[e].length;for(let e=0;e<this.PPS.length;e++)this.size+=2+this.PPS[e].length;this.ext&&(this.size+=this.ext.length),this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8(this.AVCProfileIndication),t.writeUint8(this.profile_compatibility),t.writeUint8(this.AVCLevelIndication),t.writeUint8(this.lengthSizeMinusOne+252),t.writeUint8(this.SPS.length+224);for(let e=0;e<this.SPS.length;e++)t.writeUint16(this.SPS[e].length),t.writeUint8Array(this.SPS[e].data);t.writeUint8(this.PPS.length);for(let e=0;e<this.PPS.length;e++)t.writeUint16(this.PPS[e].length),t.writeUint8Array(this.PPS[e].data);this.ext&&t.writeUint8Array(this.ext)}},El=class extends mt{constructor(...t){super(...t),this.box_name="MediaDataBox"}static{this.fourcc="mdat"}},Lk=class extends mt{constructor(...t){super(...t),this.box_name="ItemDataBox"}static{this.fourcc="idat"}},Hk=class extends mt{constructor(...t){super(...t),this.box_name="FreeSpaceBox"}static{this.fourcc="free"}},Vk=class extends mt{constructor(...t){super(...t),this.box_name="FreeSpaceBox"}static{this.fourcc="skip"}},C_=class extends X{constructor(...t){super(...t),this.box_name="HintMediaHeaderBox"}static{this.fourcc="hmhd"}},Ul=class extends X{constructor(...t){super(...t),this.box_name="NullMediaHeaderBox"}static{this.fourcc="nmhd"}},jk=class extends X{constructor(...t){super(...t),this.box_name="ObjectDescriptorBox"}static{this.fourcc="iods"}},Gk=class extends X{constructor(...t){super(...t),this.box_name="XMLBox"}static{this.fourcc="xml "}},qk=class extends X{constructor(...t){super(...t),this.box_name="BinaryXMLBox"}static{this.fourcc="bxml"}},Wk=class extends X{constructor(...t){super(...t),this.box_name="ItemProtectionBox",this.sinfs=[]}static{this.fourcc="ipro"}get protections(){return this.sinfs}},Tl=class extends ke{constructor(...t){super(...t),this.box_name="MovieBox",this.traks=[],this.psshs=[],this.subBoxNames=["trak","pssh"]}static{this.fourcc="moov"}},$_=class extends ke{constructor(...t){super(...t),this.box_name="TrackBox",this.samples=[]}static{this.fourcc="trak"}},Yk=class extends ke{constructor(...t){super(...t),this.box_name="EditBox"}static{this.fourcc="edts"}},O_=class extends ke{constructor(...t){super(...t),this.box_name="MediaBox"}static{this.fourcc="mdia"}},F_=class extends ke{constructor(...t){super(...t),this.box_name="MediaInformationBox"}static{this.fourcc="minf"}},N_=class extends ke{constructor(...t){super(...t),this.box_name="DataInformationBox"}static{this.fourcc="dinf"}},D_=class extends ke{constructor(...t){super(...t),this.box_name="SampleTableBox",this.sgpds=[],this.sbgps=[],this.subBoxNames=["sgpd","sbgp"]}static{this.fourcc="stbl"}},od=class extends ke{constructor(...t){super(...t),this.box_name="MovieExtendsBox",this.trexs=[],this.subBoxNames=["trex"]}static{this.fourcc="mvex"}},R_=class extends ke{constructor(...t){super(...t),this.box_name="MovieFragmentBox",this.trafs=[],this.subBoxNames=["traf"]}static{this.fourcc="moof"}},L_=class extends ke{constructor(...t){super(...t),this.box_name="TrackFragmentBox",this.truns=[],this.sgpds=[],this.sbgps=[],this.subBoxNames=["trun","sgpd","sbgp"]}static{this.fourcc="traf"}},Kk=class extends ke{constructor(...t){super(...t),this.box_name="VTTCueBox"}static{this.fourcc="vttc"}},Xk=class extends ke{constructor(...t){super(...t),this.box_name="MovieFragmentRandomAccessBox",this.tfras=[],this.subBoxNames=["tfra"]}static{this.fourcc="mfra"}},Jk=class extends ke{constructor(...t){super(...t),this.box_name="AdditionalMetadataContainerBox"}static{this.fourcc="meco"}},Zk=class extends ke{constructor(...t){super(...t),this.box_name="trackhintinformation",this.subBoxNames=["sdp ","rtp "]}static{this.fourcc="hnti"}},Qk=class extends ke{constructor(...t){super(...t),this.box_name="hintstatisticsbox",this.maxrs=[],this.subBoxNames=["maxr"]}static{this.fourcc="hinf"}},t4=class extends ke{constructor(...t){super(...t),this.box_name="SubTrackBox"}static{this.fourcc="strk"}},e4=class extends ke{constructor(...t){super(...t),this.box_name="SubTrackDefinitionBox"}static{this.fourcc="strd"}},i4=class extends ke{constructor(...t){super(...t),this.box_name="ProtectionSchemeInfoBox"}static{this.fourcc="sinf"}},s4=class extends ke{constructor(...t){super(...t),this.box_name="RestrictedSchemeInfoBox"}static{this.fourcc="rinf"}},n4=class extends ke{constructor(...t){super(...t),this.box_name="SchemeInformationBox"}static{this.fourcc="schi"}},r4=class extends ke{constructor(...t){super(...t),this.box_name="TrackGroupBox"}static{this.fourcc="trgr"}},a4=class extends ke{constructor(...t){super(...t),this.box_name="UserDataBox",this.kinds=[],this.strks=[],this.subBoxNames=["kind","strk"]}static{this.fourcc="udta"}},o4=class extends ke{constructor(...t){super(...t),this.box_name="ItemPropertiesBox",this.ipmas=[],this.subBoxNames=["ipma"]}static{this.fourcc="iprp"}},l4=class extends ke{constructor(...t){super(...t),this.box_name="ItemPropertyContainerBox",this.hvcCs=[],this.ispes=[],this.claps=[],this.irots=[],this.subBoxNames=["hvcC","ispe","clap","irot"]}static{this.fourcc="ipco"}},c4=class extends ke{constructor(...t){super(...t),this.box_name="GroupsListBox"}static{this.fourcc="grpl"}},u4=class extends ke{constructor(...t){super(...t),this.box_name="J2KHeaderInfoBox"}static{this.fourcc="j2kH"}},d4=class extends ke{constructor(...t){super(...t),this.box_name="ExtendedTypeBox",this.tycos=[],this.subBoxNames=["tyco"]}static{this.fourcc="etyp"}},f4=class extends ke{constructor(...t){super(...t),this.box_name="ProjectedOmniVideoBox",this.subBoxNames=["prfr"]}static{this.fourcc="povd"}},H_=class extends X{constructor(...t){super(...t),this.box_name="DataReferenceBox"}static{this.fourcc="dref"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){const s=hn(t,!1,this.size-(t.getPosition()-this.start));if(s.code===1){const n=s.box;this.entries.push(n)}else return}}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},V_=class extends X{constructor(...t){super(...t),this.box_name="ExtendedLanguageBox"}static{this.fourcc="elng"}parse(t){this.parseFullHeader(t),this.extended_language=t.readString(this.size-this.hdr_size)}write(t){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(t),t.writeString(this.extended_language)}},j_=class extends mt{constructor(...t){super(...t),this.box_name="FileTypeBox"}static{this.fourcc="ftyp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32();const i=String.fromCharCode(this.minor_version>>24,this.minor_version>>16&255,this.minor_version>>8&255,this.minor_version&255);i.match("[a-zA-Z0-9]{4}")&&(this.minor_version=i),e-=8,this.compatible_brands=[];let s=0;for(;e>=4;)this.compatible_brands[s]=t.readString(4),e-=4,s++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),typeof this.minor_version=="number"?t.writeUint32(this.minor_version):t.writeString(this.minor_version,void 0,4);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},G_=class extends X{constructor(...t){super(...t),this.box_name="HandlerBox"}static{this.fourcc="hdlr"}parse(t){if(this.parseFullHeader(t),this.version===0&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),!this.isEndOfBox(t))){const e=this.start+this.size-t.getPosition();this.name=t.readCString();const i=this.start+this.size-1;t.seek(i),t.readUint8()!==0&&e>1&&(L.info("BoxParser","Warning: hdlr name is not null-terminated, possibly length-prefixed string. Trimming first byte."),this.name=this.name.slice(1))}}write(t){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(t),t.writeUint32(0),t.writeString(this.handler,void 0,4),t.writeUint32Array([0,0,0]),t.writeCString(this.name)}},q_=class extends mt{constructor(...t){super(...t),this.box_name="HEVCConfigurationBox"}static{this.fourcc="hvcC"}parse(t){this.configurationVersion=t.readUint8();let e=t.readUint8();this.general_profile_space=e>>6,this.general_tier_flag=(e&32)>>5,this.general_profile_idc=e&31,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3,this.chroma_format_idc=t.readUint8()&3,this.bit_depth_luma_minus8=t.readUint8()&7,this.bit_depth_chroma_minus8=t.readUint8()&7,this.avgFrameRate=t.readUint16(),e=t.readUint8(),this.constantFrameRate=e>>6,this.numTemporalLayers=(e&13)>>3,this.temporalIdNested=(e&4)>>2,this.lengthSizeMinusOne=e&3,this.nalu_arrays=[];const i=t.readUint8();for(let s=0;s<i;s++){const n=[];this.nalu_arrays.push(n),e=t.readUint8(),n.completeness=(e&128)>>7,n.nalu_type=e&63;const a=t.readUint16();for(let o=0;o<a;o++){const l=t.readUint16();n.push({data:t.readUint8Array(l)})}}}write(t){this.size=23;for(let e=0;e<this.nalu_arrays.length;e++){this.size+=3;for(let i=0;i<this.nalu_arrays[e].length;i++)this.size+=2+this.nalu_arrays[e][i].data.length}this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),t.writeUint32(this.general_profile_compatibility),t.writeUint8Array(this.general_constraint_indicator),t.writeUint8(this.general_level_idc),t.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),t.writeUint8(this.parallelismType+252),t.writeUint8(this.chroma_format_idc+252),t.writeUint8(this.bit_depth_luma_minus8+248),t.writeUint8(this.bit_depth_chroma_minus8+248),t.writeUint16(this.avgFrameRate),t.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),t.writeUint8(this.nalu_arrays.length);for(let e=0;e<this.nalu_arrays.length;e++){t.writeUint8((this.nalu_arrays[e].completeness<<7)+this.nalu_arrays[e].nalu_type),t.writeUint16(this.nalu_arrays[e].length);for(let i=0;i<this.nalu_arrays[e].length;i++)t.writeUint16(this.nalu_arrays[e][i].data.length),t.writeUint8Array(this.nalu_arrays[e][i].data)}}},W_=class extends X{constructor(...t){super(...t),this.box_name="MediaHeaderBox"}static{this.fourcc="mdhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.parseLanguage(t),t.readUint16()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=20,this.size+=e?12:0,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint16(this.language),t.writeUint16(0)}},Y_=class extends X{constructor(...t){super(...t),this.box_name="MovieExtendsHeaderBox"}static{this.fourcc="mehd"}parse(t){this.parseFullHeader(t),this.flags&1&&(L.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),this.version===1?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}write(t){const e=this.fragment_duration>bi||this.version===1;this.version=e?1:0,this.size=4,this.size+=e?4:0,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.fragment_duration):t.writeUint32(this.fragment_duration)}},h4=class extends X{constructor(...t){super(...t),this.box_name="ItemInfoEntry"}static{this.fourcc="infe"}parse(t){if(this.parseFullHeader(t),(this.version===0||this.version===1)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.isEndOfBox(t)||(this.content_encoding=t.readCString())),this.version===1){this.extension_type=t.readString(4),L.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=t.readUint16():this.version===3&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),this.item_type==="mime"?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):this.item_type==="uri "&&(this.item_uri_type=t.readCString()))}},p4=class extends X{constructor(...t){super(...t),this.box_name="ItemInfoBox"}static{this.fourcc="iinf"}parse(t){this.parseFullHeader(t),this.version===0?this.entry_count=t.readUint16():this.entry_count=t.readUint32(),this.item_infos=[];for(let e=0;e<this.entry_count;e++){const i=hn(t,!1,this.size-(t.getPosition()-this.start));if(i.code===1){const s=i.box;s.type==="infe"?this.item_infos[e]=s:L.error("BoxParser","Expected 'infe' box, got "+i.box.type,t.isofile)}else return}}},m4=class extends X{constructor(...t){super(...t),this.box_name="ItemLocationBox"}static{this.fourcc="iloc"}parse(t){this.parseFullHeader(t);let e;e=t.readUint8(),this.offset_size=e>>4&15,this.length_size=e&15,e=t.readUint8(),this.base_offset_size=e>>4&15,this.version===1||this.version===2?this.index_size=e&15:this.index_size=0,this.items=[];let i=0;if(this.version<2)i=t.readUint16();else if(this.version===2)i=t.readUint32();else throw new Error("version of iloc box not supported");for(let s=0;s<i;s++){let n=0,a=0,o=0;if(this.version<2)n=t.readUint16();else if(this.version===2)n=t.readUint32();else throw new Error("version of iloc box not supported");this.version===1||this.version===2?a=t.readUint16()&15:a=0;const l=t.readUint16();switch(this.base_offset_size){case 0:o=0;break;case 4:o=t.readUint32();break;case 8:o=t.readUint64();break;default:throw new Error("Error reading base offset size")}const c=[],u=t.readUint16();for(let d=0;d<u;d++){let f=0,p=0,v=0;if(this.version===1||this.version===2)switch(this.index_size){case 0:f=0;break;case 4:f=t.readUint32();break;case 8:f=t.readUint64();break;default:throw new Error("Error reading extent index")}switch(this.offset_size){case 0:p=0;break;case 4:p=t.readUint32();break;case 8:p=t.readUint64();break;default:throw new Error("Error reading extent index")}switch(this.length_size){case 0:v=0;break;case 4:v=t.readUint32();break;case 8:v=t.readUint64();break;default:throw new Error("Error reading extent index")}c.push({extent_index:f,extent_length:v,extent_offset:p})}this.items.push({base_offset:o,construction_method:a,item_ID:n,data_reference_index:l,extents:c})}}};const v4={auxl:"Auxiliary image item",base:"Pre-derived image item base",cdsc:"Item describes referenced item",dimg:"Derived image item",dpnd:"Item coding dependency",eroi:"Region",evir:"EVC slice",exbl:"Scalable image item","fdl ":"File delivery",font:"Font item",iloc:"Item data location",mask:"Region mask",mint:"Data integrity",pred:"Predictively coded item",prem:"Pre-multiplied item",tbas:"HEVC tile track base item",text:"Text item",thmb:"Thumbnail image item"};var _4=class K_ extends X{constructor(...e){super(...e),this.box_name="ItemReferenceBox",this.references=[]}static{this.fourcc="iref"}static{this.allowed_types=["auxl","base","cdsc","dimg","dpnd","eroi","evir","exbl","fdl ","font","iloc","mask","mint","pred","prem","tbas","text","thmb"]}parse(e){for(this.parseFullHeader(e),this.references=[];e.getPosition()<this.start+this.size;){const i=hn(e,!0,this.size-(e.getPosition()-this.start));if(i.code===1){let s="Unknown item reference";K_.allowed_types.includes(i.type)?s=v4[i.type]:L.warn("BoxParser",`Unknown item reference type: '${i.type}'`);const n=this.version===0?new Pk(i.type,i.size,s,i.hdr_size,i.start):new Ak(i.type,i.size,s,i.hdr_size,i.start);n.write===mt.prototype.write&&n.type!=="mdat"&&(L.warn("BoxParser",n.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),n.parseDataAndRewind(e)),n.parse(e),this.references.push(n)}else return}}},g4=class extends X{constructor(...t){super(...t),this.box_name="PrimaryItemBox"}static{this.fourcc="pitm"}parse(t){this.parseFullHeader(t),this.version===0?this.item_id=t.readUint16():this.item_id=t.readUint32()}},y4=class extends X{constructor(...t){super(...t),this.box_name="MetaBox",this.isQT=!1}static{this.fourcc="meta"}parse(t){const e=t.getPosition();if(this.size>8){switch(t.readUint32(),t.readString(4)){case"hdlr":case"mhdr":case"keys":case"ilst":case"ctry":case"lang":this.isQT=!0;break}t.seek(e)}this.isQT||this.parseFullHeader(t),ke.prototype.parse.call(this,t)}},X_=class extends X{constructor(...t){super(...t),this.box_name="MovieFragmentHeaderBox"}static{this.fourcc="mfhd"}parse(t){this.parseFullHeader(t),this.sequence_number=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.sequence_number)}},J_=class extends X{constructor(...t){super(...t),this.box_name="MovieHeaderBox"}static{this.fourcc="mvhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.rate=t.readUint32(),this.volume=t.readUint16()>>8,t.readUint16(),t.readUint32Array(2),this.matrix=t.readInt32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=96,this.size+=e?12:0,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint32(this.rate),t.writeUint16(this.volume<<8),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeInt32Array(this.matrix),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(this.next_track_id)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"timescale: "+this.timescale),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"rate: "+this.rate),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"next_track_id: "+this.next_track_id)}},b4=class extends fa{static{this.fourcc="mett"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},x4=class extends fa{static{this.fourcc="metx"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.parseFooter(t)}},w4=class extends mt{constructor(...t){super(...t),this.box_name="AV1CodecConfigurationBox"}static{this.fourcc="av1C"}parse(t){let e=t.readUint8();if((e>>7&1)!==1){L.error("BoxParser","av1C marker problem",t.isofile);return}if(this.version=e&127,this.version!==1){L.error("BoxParser","av1C version "+this.version+" not supported",t.isofile);return}if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=e&31,e=t.readUint8(),this.seq_tier_0=e>>7&1,this.high_bitdepth=e>>6&1,this.twelve_bit=e>>5&1,this.monochrome=e>>4&1,this.chroma_subsampling_x=e>>3&1,this.chroma_subsampling_y=e>>2&1,this.chroma_sample_position=e&3,e=t.readUint8(),this.reserved_1=e>>5&7,this.reserved_1!==0){L.error("BoxParser","av1C reserved_1 parsing problem",t.isofile);return}if(this.initial_presentation_delay_present=e>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=e&15;else if(this.reserved_2=e&15,this.reserved_2!==0){L.error("BoxParser","av1C reserved_2 parsing problem",t.isofile);return}const i=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(i)}},S4=class extends X{constructor(...t){super(...t),this.box_name="ElementaryStreamDescriptorBox"}static{this.fourcc="esds"}parse(t){this.parseFullHeader(t);const e=t.readUint8Array(this.size-this.hdr_size);if("MPEG4DescriptorParser"in Xl){const i=new Xl.MPEG4DescriptorParser;this.esd=i.parseOneDescriptor(new Hi(e.buffer,0))}}},k4=class extends ke{constructor(...t){super(...t),this.box_name="siDecompressionParamBox"}static{this.fourcc="wave"}},B4=class extends mt{constructor(...t){super(...t),this.box_name="LCEVCConfigurationBox"}static{this.fourcc="lvcC"}parse(t){if(this.configurationVersion=t.readUint8(),this.configurationVersion!==1){L.error("BoxParser","lvcC version "+this.configurationVersion+" not supported",t.isofile);return}this.LCEVCProfileIndication=t.readUint8(),this.LCEVCLevelIndication=t.readUint8();let e=t.readUint8();this.chroma_format_idc=e>>6&3,this.bit_depth_luma_minus8=e>>3&7,this.bit_depth_chroma_minus8=e&7,e=t.readUint8(),this.lengthSizeMinusOne=e>>6&3;let i=e&63;if(i!==63){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}if(this.pic_width_in_luma_samples=t.readUint32(),this.pic_height_in_luma_samples=t.readUint32(),e=t.readUint8(),this.sc_in_stream=e>>7&1,this.gc_in_stream=e>>6&1,this.ai_in_stream=e>>5&1,i=e&31,i!==31){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}this.nalu_arrays=[];const s=t.readUint8();for(let n=0;n<s;n++){const a=[];if(this.nalu_arrays.push(a),e=t.readUint8(),i=e>>6&3,i!==0){L.error("BoxParser","lvcC reserved parsing problem",t.isofile);return}a.nalu_type=e&63;const o=t.readUint16();for(let l=0;l<o;l++){const c=t.readUint16();a.push({data:t.readUint8Array(c)})}}}},E4=class extends X{constructor(...t){super(...t),this.box_name="VPCodecConfigurationRecord"}static{this.fourcc="vpcC"}parse(t){if(this.parseFullHeader(t),this.version===1){this.profile=t.readUint8(),this.level=t.readUint8();const e=t.readUint8();this.bitDepth=e>>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=e&1,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8(),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}else{this.profile=t.readUint8(),this.level=t.readUint8();let e=t.readUint8();this.bitDepth=e>>4&15,this.colorSpace=e&15,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=e&1,this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}}},U4=class extends X{constructor(...t){super(...t),this.box_name="VvcConfigurationBox"}static{this.fourcc="vvcC"}parse(t){this.parseFullHeader(t);const e={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(a){this.held_bits=a.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(a){this.held_bits=a.readUint16(),this.num_held_bits=16},extract_bits:function(a){const o=this.held_bits>>this.num_held_bits-a&(1<<a)-1;return this.num_held_bits-=a,o}};if(e.stream_read_1_bytes(t),e.extract_bits(5),this.lengthSizeMinusOne=e.extract_bits(2),this.ptl_present_flag=e.extract_bits(1),this.ptl_present_flag){if(e.stream_read_2_bytes(t),this.ols_idx=e.extract_bits(9),this.num_sublayers=e.extract_bits(3),this.constant_frame_rate=e.extract_bits(2),this.chroma_format_idc=e.extract_bits(2),e.stream_read_1_bytes(t),this.bit_depth_minus8=e.extract_bits(3),e.extract_bits(5),e.stream_read_2_bytes(t),e.extract_bits(2),this.num_bytes_constraint_info=e.extract_bits(6),this.general_profile_idc=e.extract_bits(7),this.general_tier_flag=e.extract_bits(1),this.general_level_idc=t.readUint8(),e.stream_read_1_bytes(t),this.ptl_frame_only_constraint_flag=e.extract_bits(1),this.ptl_multilayer_enabled_flag=e.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(let a=0;a<this.num_bytes_constraint_info-1;a++){const o=e.extract_bits(6);e.stream_read_1_bytes(t);const l=e.extract_bits(2);this.general_constraint_info[a]=o<<2|l}this.general_constraint_info[this.num_bytes_constraint_info-1]=e.extract_bits(6)}else e.extract_bits(6);if(this.num_sublayers>1){e.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0;for(let a=this.num_sublayers-2;a>=0;--a){const o=e.extract_bits(1);this.ptl_sublayer_present_mask|=o<<a}for(let a=this.num_sublayers;a<=8&&this.num_sublayers>1;++a)e.extract_bits(1);this.sublayer_level_idc=[];for(let a=this.num_sublayers-2;a>=0;--a)this.ptl_sublayer_present_mask&1<<a&&(this.sublayer_level_idc[a]=t.readUint8())}if(this.ptl_num_sub_profiles=t.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(let a=0;a<this.ptl_num_sub_profiles;a++)this.general_sub_profile_idc.push(t.readUint32());this.max_picture_width=t.readUint16(),this.max_picture_height=t.readUint16(),this.avg_frame_rate=t.readUint16()}const i=12,s=13;this.nalu_arrays=[];const n=t.readUint8();for(let a=0;a<n;a++){const o=[];this.nalu_arrays.push(o),e.stream_read_1_bytes(t),o.completeness=e.extract_bits(1),e.extract_bits(2),o.nalu_type=e.extract_bits(5);let l=1;o.nalu_type!==s&&o.nalu_type!==i&&(l=t.readUint16());for(let c=0;c<l;c++){const u=t.readUint16();o.push({data:t.readUint8Array(u),length:u})}}}},T4=class extends mt{constructor(...t){super(...t),this.box_name="ColourInformationBox"}static{this.fourcc="colr"}parse(t){if(this.colour_type=t.readString(4),this.colour_type==="nclx"){this.colour_primaries=t.readUint16(),this.transfer_characteristics=t.readUint16(),this.matrix_coefficients=t.readUint16();const e=t.readUint8();this.full_range_flag=e>>7}else this.colour_type==="rICC"?this.ICC_profile=t.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=t.readUint8Array(this.size-4))}};function ea(t,e){let i=Number(t).toString(16);for(e=typeof e>"u"?2:e;i.length<e;)i="0"+i;return i}var fc=class extends Ye{getCodec(){const t=super.getCodec();return this.avcC?`${t}.${ea(this.avcC.AVCProfileIndication)}${ea(this.avcC.profile_compatibility)}${ea(this.avcC.AVCLevelIndication)}`:t}},P4=class extends fc{constructor(...t){super(...t),this.box_name="AVCSampleEntry"}static{this.fourcc="avc1"}},A4=class extends fc{constructor(...t){super(...t),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc2"}},I4=class extends fc{constructor(...t){super(...t),this.box_name="AVCSampleEntry"}static{this.fourcc="avc3"}},M4=class extends fc{constructor(...t){super(...t),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc4"}},z4=class extends Ye{constructor(...t){super(...t),this.box_name="AV1SampleEntry"}static{this.fourcc="av01"}getCodec(){const t=super.getCodec(),e=this.av1C.seq_level_idx_0,i=e<10?"0"+e:e;let s;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?s=this.av1C.twelve_bit===1?"12":"10":this.av1C.seq_profile<=2&&(s=this.av1C.high_bitdepth===1?"10":"08"),t+"."+this.av1C.seq_profile+"."+i+(this.av1C.seq_tier_0?"H":"M")+"."+s}},C4=class extends Ye{static{this.fourcc="dav1"}},hc=class extends Ye{getCodec(){let t=super.getCodec();if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C";break}t+=this.hvcC.general_profile_idc,t+=".";let e=this.hvcC.general_profile_compatibility,i=0;for(let a=0;a<32&&(i|=e&1,a!==31);a++)i<<=1,e>>=1;t+=ea(i,0),t+=".",this.hvcC.general_tier_flag===0?t+="L":t+="H",t+=this.hvcC.general_level_idc;let s=!1,n="";for(let a=5;a>=0;a--)(this.hvcC.general_constraint_indicator[a]||s)&&(n="."+ea(this.hvcC.general_constraint_indicator[a],0)+n,s=!0);t+=n}return t}},$4=class extends hc{constructor(...t){super(...t),this.box_name="HEVCSampleEntry"}static{this.fourcc="hvc1"}},O4=class extends hc{static{this.fourcc="hvc2"}},F4=class extends hc{constructor(...t){super(...t),this.box_name="HEVCSampleEntry",this.colrs=[],this.subBoxNames=["colr"]}static{this.fourcc="hev1"}},N4=class extends hc{static{this.fourcc="hev2"}},D4=class extends Ye{constructor(...t){super(...t),this.box_name="HEVCTileSampleSampleEntry"}static{this.fourcc="hvt1"}},R4=class extends Ye{constructor(...t){super(...t),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhe1"}},L4=class extends Ye{constructor(...t){super(...t),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhv1"}},H4=class extends Ye{constructor(...t){super(...t),this.box_name="LCEVCSampleEntry"}static{this.fourcc="lvc1"}getCodec(){let t=super.getCodec();return this.lvcC&&(t+=".",t+="vprf",t+=this.lvcC.LCEVCProfileIndication,t+=".",t+="vlev",t+=this.lvcC.LCEVCLevelIndication),t}},V4=class extends Ye{static{this.fourcc="dvh1"}},j4=class extends Ye{static{this.fourcc="dvhe"}},Z_=class extends Ye{getCodec(){let t=super.getCodec();if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;let e="";if(this.vvcC.general_constraint_info){const i=[];let s=0;s|=this.vvcC.ptl_frame_only_constraint_flag<<7,s|=this.vvcC.ptl_multilayer_enabled_flag<<6;let n;for(let a=0;a<this.vvcC.general_constraint_info.length;++a)s|=this.vvcC.general_constraint_info[a]>>2&63,i.push(s),s&&(n=a),s=this.vvcC.general_constraint_info[a]>>2&3;if(n===void 0)e=".CA";else{e=".C";const a="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";let o=0,l=0;for(let c=0;c<=n;++c)for(o=o<<8|i[c],l+=8;l>=5;){const u=o>>l-5&31;e+=a[u],l-=5,o&=(1<<l)-1}l&&(o<<=5-l,e+=a[o&31])}}t+=e}return t}},G4=class extends Z_{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvc1"}},q4=class extends Z_{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvi1"}},W4=class extends Ye{constructor(...t){super(...t),this.box_name="VvcSampleEntry"}static{this.fourcc="vvs1"}},Y4=class extends Ye{constructor(...t){super(...t),this.box_name="VvcNonVCLSampleEntry"}static{this.fourcc="vvcN"}},Q_=class extends Ye{getCodec(){const t=super.getCodec();let e=this.vpcC.level;e===0&&(e="00");let i=this.vpcC.bitDepth;return i===8&&(i="08"),`${t}.0${this.vpcC.profile}.${e}.${i}`}},K4=class extends Q_{static{this.fourcc="vp08"}},X4=class extends Q_{static{this.fourcc="vp09"}},J4=class extends Ye{static{this.fourcc="avs3"}},Z4=class extends Ye{constructor(...t){super(...t),this.box_name="J2KSampleEntry"}static{this.fourcc="j2ki"}},Q4=class extends Ye{static{this.fourcc="mjp2"}},t3=class extends Ye{static{this.fourcc="mjpg"}},e3=class extends Ye{constructor(...t){super(...t),this.box_name="UncompressedVideoSampleEntry"}static{this.fourcc="uncv"}},i3=class extends Ye{constructor(...t){super(...t),this.box_name="MP4VisualSampleEntry"}static{this.fourcc="mp4v"}},tg=class extends rs{constructor(...t){super(...t),this.box_name="MP4AudioSampleEntry"}static{this.fourcc="mp4a"}getCodec(){const t=super.getCodec(),e=this.esds??this.wave?.esds;if(e&&e.esd){const i=e.esd.getOTI(),s=e.esd.getAudioConfig();return t+"."+ea(i)+(s?"."+s:"")}else return t}},s3=class extends rs{static{this.fourcc="m4ae"}},n3=class extends rs{static{this.fourcc="ac-3"}},r3=class extends rs{static{this.fourcc="ac-4"}},a3=class extends rs{static{this.fourcc="ec-3"}},o3=class extends rs{static{this.fourcc="Opus"}},l3=class extends rs{static{this.fourcc="mha1"}},c3=class extends rs{static{this.fourcc="mha2"}},u3=class extends rs{static{this.fourcc="mhm1"}},d3=class extends rs{static{this.fourcc="mhm2"}},f3=class extends rs{static{this.fourcc="fLaC"}},h3=class extends Ye{static{this.fourcc="encv"}},p3=class extends rs{static{this.fourcc="enca"}},m3=class extends Ir{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encu"}},v3=class extends qd{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encs"}},_3=class extends qd{static{this.fourcc="mp4s"}},g3=class extends Rk{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="enct"}},y3=class extends fa{constructor(...t){super(...t),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encm"}},b3=class extends Ye{constructor(...t){super(...t),this.box_name="RestrictedVideoSampleEntry"}static{this.fourcc="resv"}},x3=class extends Ir{static{this.fourcc="sbtt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},eg=class extends Ir{static{this.fourcc="stpp"}parse(t){this.parseHeader(t),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.auxiliary_mime_types=t.readCString(),this.parseFooter(t)}write(t){this.writeHeader(t),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,t.writeCString(this.namespace),t.writeCString(this.schema_location),t.writeCString(this.auxiliary_mime_types),this.writeFooter(t)}},w3=class extends Ir{static{this.fourcc="stxt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}getCodec(){const t=super.getCodec();return this.mime_format?t+"."+this.mime_format:t}},S3=class extends Ir{static{this.fourcc="tx3g"}parse(t){this.parseHeader(t),this.displayFlags=t.readUint32(),this.horizontal_justification=t.readInt8(),this.vertical_justification=t.readInt8(),this.bg_color_rgba=t.readUint8Array(4),this.box_record=t.readInt16Array(4),this.style_record=t.readUint8Array(12),this.parseFooter(t)}},k3=class extends fa{static{this.fourcc="wvtt"}parse(t){this.parseHeader(t),this.parseFooter(t)}},B3=class extends X{constructor(...t){super(...t),this.box_name="SampleToGroupBox"}static{this.fourcc="sbgp"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),this.version===1?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++)this.entries.push({sample_count:t.readInt32(),group_description_index:t.readInt32()})}write(t){this.grouping_type_parameter?this.version=1:this.version=0,this.flags=0,this.size=8+8*this.entries.length+(this.version===1?4:0),this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),this.version===1&&t.writeUint32(this.grouping_type_parameter),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){const i=this.entries[e];t.writeInt32(i.sample_count),t.writeInt32(i.group_description_index)}}},E3=class extends X{constructor(...t){super(...t),this.box_name="SampleDependencyTypeBox"}static{this.fourcc="sdtp"}parse(t){this.parseFullHeader(t);const e=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(let i=0;i<e;i++){const s=t.readUint8();this.is_leading[i]=s>>6,this.sample_depends_on[i]=s>>4&3,this.sample_is_depended_on[i]=s>>2&3,this.sample_has_redundancy[i]=s&3}}},U3=class extends X{constructor(...t){super(...t),this.box_name="SampleGroupDescriptionBox"}static{this.fourcc="sgpd"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),L.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){let s;this.grouping_type in Ji.sampleGroupEntry?s=new Ji.sampleGroupEntry[this.grouping_type](this.grouping_type):s=new vi(this.grouping_type),this.entries.push(s),this.version===1?this.default_length===0?s.description_length=t.readUint32():s.description_length=this.default_length:s.description_length=this.default_length,s.write===vi.prototype.write&&(L.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),s.data=t.readUint8Array(s.description_length),t.seek(t.getPosition()-s.description_length)),s.parse(t)}}write(t){this.flags=0,this.size=12;for(let e=0;e<this.entries.length;e++){const i=this.entries[e];this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=i.data.length)}this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),this.version===1&&t.writeUint32(this.default_length),this.version>=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){const i=this.entries[e];this.version===1&&this.default_length===0&&t.writeUint32(i.description_length),i.write(t)}}},T3=class extends X{constructor(...t){super(...t),this.box_name="CompressedSegmentIndexBox"}static{this.fourcc="sidx"}parse(t){this.parseFullHeader(t),this.reference_ID=t.readUint32(),this.timescale=t.readUint32(),this.version===0?(this.earliest_presentation_time=t.readUint32(),this.first_offset=t.readUint32()):(this.earliest_presentation_time=t.readUint64(),this.first_offset=t.readUint64()),t.readUint16(),this.references=[];const e=t.readUint16();for(let i=0;i<e;i++){const s=t.readUint32(),n=t.readUint32(),a=t.readUint32();this.references.push({reference_type:s>>31&1,referenced_size:s&2147483647,subsegment_duration:n,starts_with_SAP:a>>31&1,SAP_type:a>>28&7,SAP_delta_time:a&268435455})}}write(t){const e=this.earliest_presentation_time>bi||this.first_offset>bi||this.version===1;this.version=e?1:0,this.size=12+12*this.references.length,this.size+=e?16:8,this.flags=0,this.writeHeader(t),t.writeUint32(this.reference_ID),t.writeUint32(this.timescale),e?(t.writeUint64(this.earliest_presentation_time),t.writeUint64(this.first_offset)):(t.writeUint32(this.earliest_presentation_time),t.writeUint32(this.first_offset)),t.writeUint16(0),t.writeUint16(this.references.length);for(let i=0;i<this.references.length;i++){const s=this.references[i];t.writeUint32(s.reference_type<<31|s.referenced_size),t.writeUint32(s.subsegment_duration),t.writeUint32(s.starts_with_SAP<<31|s.SAP_type<<28|s.SAP_delta_time)}}},ig=class extends X{constructor(...t){super(...t),this.box_name="SoundMediaHeaderBox"}static{this.fourcc="smhd"}parse(t){this.parseFullHeader(t),this.balance=t.readUint16(),t.readUint16()}write(t){this.version=0,this.size=4,this.writeHeader(t),t.writeUint16(this.balance),t.writeUint16(0)}},sg=class extends X{constructor(...t){super(...t),this.box_name="ChunkOffsetBox"}static{this.fourcc="stco"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.chunk_offsets=[],this.version===0)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length),t.writeUint32Array(this.chunk_offsets)}unpack(t){for(let e=0;e<this.chunk_offsets.length;e++)t[e].offset=this.chunk_offsets[e]}},ng=class extends X{constructor(...t){super(...t),this.box_name="SubtitleMediaHeaderBox"}static{this.fourcc="sthd"}},rg=class extends X{constructor(...t){super(...t),this.box_name="SampleToChunkBox"}static{this.fourcc="stsc"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(let i=0;i<e;i++)this.first_chunk.push(t.readUint32()),this.samples_per_chunk.push(t.readUint32()),this.sample_description_index.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(t),t.writeUint32(this.first_chunk.length);for(let e=0;e<this.first_chunk.length;e++)t.writeUint32(this.first_chunk[e]),t.writeUint32(this.samples_per_chunk[e]),t.writeUint32(this.sample_description_index[e])}unpack(t){let e=0,i=0;for(let s=0;s<this.first_chunk.length;s++)for(let n=0;n<(s+1<this.first_chunk.length?this.first_chunk[s+1]:1/0);n++){i++;for(let a=0;a<this.samples_per_chunk[s];a++){if(t[e])t[e].description_index=this.sample_description_index[s],t[e].chunk_index=i;else return;e++}}}},ag=class extends X{constructor(...t){super(...t),this.box_name="SampleDescriptionBox"}static{this.fourcc="stsd"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=1;i<=e;i++){const s=hn(t,!0,this.size-(t.getPosition()-this.start));if(s.code===1){let n;s.type in Ji.sampleEntry?(n=new Ji.sampleEntry[s.type](s.size),n.hdr_size=s.hdr_size,n.start=s.start):(L.warn("BoxParser",`Unknown sample entry type: '${s.type}'`),n=new zn(s.size,s.hdr_size,s.start),n.type=s.type),n.write===zn.prototype.write&&(L.info("BoxParser","SampleEntry "+n.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),n.parseDataAndRewind(t)),n.parse(t),this.entries.push(n)}else return}}write(t){this.version=0,this.flags=0,this.size=0,this.writeHeader(t),t.writeUint32(this.entries.length),this.size+=4;for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;L.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},og=class extends X{constructor(...t){super(...t),this.box_name="SampleSizeBox"}static{this.fourcc="stsz"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],this.version===0){this.sample_size=t.readUint32(),this.sample_count=t.readUint32();for(let e=0;e<this.sample_count;e++)this.sample_size===0?this.sample_sizes.push(t.readUint32()):this.sample_sizes[e]=this.sample_size}}write(t){let e=!0;this.version=0,this.flags=0,this.sample_sizes.length>0&&this.sample_size===0&&(e=!1),this.size=8,e||(this.size+=4*this.sample_sizes.length),this.writeHeader(t),t.writeUint32(this.sample_size),t.writeUint32(this.sample_sizes.length),e||t.writeUint32Array(this.sample_sizes)}unpack(t){for(let e=0;e<this.sample_sizes.length;e++)t[e].size=this.sample_sizes[e]}},lg=class extends X{constructor(...t){super(...t),this.box_name="TimeToSampleBox",this.sample_counts=[],this.sample_deltas=[]}static{this.fourcc="stts"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.sample_counts.length=0,this.sample_deltas.length=0,this.version===0)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());let s=t.readInt32();s<0&&(L.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),s=1),this.sample_deltas.push(s)}}write(t){this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),t.writeUint32(this.sample_deltas[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)e===0?t[e].dts=0:t[e].dts=t[e-1].dts+this.sample_deltas[i],e++}},cg=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentBaseMediaDecodeTimeBox"}static{this.fourcc="tfdt"}parse(t){this.parseFullHeader(t),this.version===1?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}write(t){const e=this.baseMediaDecodeTime>bi||this.version===1;this.version=e?1:0,this.size=4,this.size+=e?4:0,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)}},ug=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentHeaderBox"}static{this.fourcc="tfhd"}parse(t){this.parseFullHeader(t);let e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&this.flags&1?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&this.flags&2?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&this.flags&8?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&this.flags&16?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&this.flags&32?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}write(t){this.version=0,this.size=4,this.flags&1&&(this.size+=8),this.flags&2&&(this.size+=4),this.flags&8&&(this.size+=4),this.flags&16&&(this.size+=4),this.flags&32&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),this.flags&1&&t.writeUint64(this.base_data_offset),this.flags&2&&t.writeUint32(this.default_sample_description_index),this.flags&8&&t.writeUint32(this.default_sample_duration),this.flags&16&&t.writeUint32(this.default_sample_size),this.flags&32&&t.writeUint32(this.default_sample_flags)}},dg=class extends X{constructor(...t){super(...t),this.box_name="TrackHeaderBox",this.layer=0,this.alternate_group=0}static{this.fourcc="tkhd"}parse(t){this.parseFullHeader(t),this.version===1?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint32()),t.readUint32Array(2),this.layer=t.readInt16(),this.alternate_group=t.readInt16(),this.volume=t.readInt16()>>8,t.readUint16(),this.matrix=t.readInt32Array(9),this.width=t.readUint32(),this.height=t.readUint32()}write(t){const e=this.modification_time>bi||this.creation_time>bi||this.duration>bi||this.version===1;this.version=e?1:0,this.size=80,this.size+=e?12:0,this.flags=this.flags??3,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration)),t.writeUint32Array([0,0]),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeInt16(0),t.writeInt32Array(this.matrix),t.writeUint32(this.width),t.writeUint32(this.height)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"track_id: "+this.track_id),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"layer: "+this.layer),t.log(t.indent+"alternate_group: "+this.alternate_group),t.log(t.indent+"width: "+this.width),t.log(t.indent+"height: "+this.height)}},ld=class extends X{constructor(...t){super(...t),this.box_name="TrackExtendsBox"}static{this.fourcc="trex"}parse(t){this.parseFullHeader(t),this.track_id=t.readUint32(),this.default_sample_description_index=t.readUint32(),this.default_sample_duration=t.readUint32(),this.default_sample_size=t.readUint32(),this.default_sample_flags=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=20,this.writeHeader(t),t.writeUint32(this.track_id),t.writeUint32(this.default_sample_description_index),t.writeUint32(this.default_sample_duration),t.writeUint32(this.default_sample_size),t.writeUint32(this.default_sample_flags)}},fg=class extends X{constructor(...t){super(...t),this.box_name="TrackRunBox",this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[]}static{this.fourcc="trun"}parse(t){this.parseFullHeader(t);let e=0;if(this.sample_count=t.readUint32(),e+=4,this.size-this.hdr_size>e&&this.flags&1?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&this.flags&4?(this.first_sample_flags=t.readUint32(),e+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>e)for(let i=0;i<this.sample_count;i++)this.flags&256&&(this.sample_duration[i]=t.readUint32()),this.flags&512&&(this.sample_size[i]=t.readUint32()),this.flags&1024&&(this.sample_flags[i]=t.readUint32()),this.flags&2048&&(this.version===0?this.sample_composition_time_offset[i]=t.readUint32():this.sample_composition_time_offset[i]=t.readInt32())}write(t){this.size=4,this.flags&1&&(this.size+=4),this.flags&4&&(this.size+=4),this.flags&256&&(this.size+=4*this.sample_duration.length),this.flags&512&&(this.size+=4*this.sample_size.length),this.flags&1024&&(this.size+=4*this.sample_flags.length),this.flags&2048&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),this.flags&1&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),this.flags&4&&t.writeUint32(this.first_sample_flags);for(let e=0;e<this.sample_count;e++)this.flags&256&&t.writeUint32(this.sample_duration[e]),this.flags&512&&t.writeUint32(this.sample_size[e]),this.flags&1024&&t.writeUint32(this.sample_flags[e]),this.flags&2048&&(this.version===0?t.writeUint32(this.sample_composition_time_offset[e]):t.writeInt32(this.sample_composition_time_offset[e]))}},hg=class extends X{constructor(...t){super(...t),this.box_name="DataEntryUrlBox"}static{this.fourcc="url "}parse(t){this.parseFullHeader(t),this.flags!==1&&(this.location=t.readCString())}write(t){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(t),this.location&&t.writeCString(this.location)}},pg=class extends X{constructor(...t){super(...t),this.box_name="VideoMediaHeaderBox"}static{this.fourcc="vmhd"}parse(t){this.parseFullHeader(t),this.graphicsmode=t.readUint16(),this.opcolor=t.readUint16Array(3)}write(t){this.version=0,this.size=8,this.writeHeader(t),t.writeUint16(this.graphicsmode),t.writeUint16Array(this.opcolor)}},xu=class{constructor(t,e,i){this.grouping_type=t,this.grouping_type_parameter=e,this.sbgp=i,this.last_sample_in_run=-1,this.entry_index=-1}},P3=class nn{constructor(e,i=!0){this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.moovStartSent=!1,this.readySent=!1,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.sidxSent=!1,this.items=[],this.entity_groups=[],this.itemsDataSize=0,this.lastMoofIndex=0,this.samplesDataSize=0,this.lastBoxStartPosition=0,this.nextParsePosition=0,this.discardMdatData=!0,this.discardMdatData=i,e?(this.stream=e,this.parse()):this.stream=new Bl,this.stream.isofile=this}setSegmentOptions(e,i,s){const{sizePerSegment:n=Number.MAX_SAFE_INTEGER,rapAlignement:a=!0,normalizeAudioSampleEntriesForMSE:o=!0}=s;let l=s.nbSamples??s.nbSamplesPerFragment??1e3;const c=s.nbSamplesPerFragment??l;if(l<=0||c<=0||n<=0){L.error("ISOFile",`Invalid segment options: nbSamples=${l}, nbSamplesPerFragment=${c}, sizePerSegment=${n}`);return}if(l<c&&(L.warn("ISOFile",`nbSamples (${l}) is less than nbSamplesPerFragment (${c}), setting nbSamples to nbSamplesPerFragment`),l=c),this.fragmentedTracks.some(d=>d.nb_samples!==l)){L.error("ISOFile",`Cannot set segment options for track ${e}: nbSamples (${l}) does not match existing tracks`);return}const u=this.getTrackById(e);if(u){const d={id:e,user:i,trak:u,segmentStream:void 0,nb_samples:l,nb_samples_per_fragment:c,size_per_segment:n,rapAlignement:a,normalizeAudioSampleEntriesForMSE:o,state:{lastFragmentSampleNumber:0,lastSegmentSampleNumber:0,accumulatedSize:0}};this.fragmentedTracks.push(d),u.nextSample=0}this.discardMdatData&&L.warn("ISOFile","Segmentation options set but discardMdatData is true, samples will not be segmented")}unsetSegmentOptions(e){let i=-1;for(let s=0;s<this.fragmentedTracks.length;s++)this.fragmentedTracks[s].id===e&&(i=s);i>-1&&this.fragmentedTracks.splice(i,1)}setExtractionOptions(e,i,{nbSamples:s=1e3}={}){const n=this.getTrackById(e);n&&(this.extractedTracks.push({id:e,user:i,trak:n,nb_samples:s,samples:[]}),n.nextSample=0),this.discardMdatData&&L.warn("ISOFile","Extraction options set but discardMdatData is true, samples will not be extracted")}unsetExtractionOptions(e){let i=-1;for(let s=0;s<this.extractedTracks.length;s++)this.extractedTracks[s].id===e&&(i=s);i>-1&&this.extractedTracks.splice(i,1)}parse(){if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else{this.saveParsePosition&&this.saveParsePosition();const i=hn(this.stream,!1);if(i.code===0)if(this.processIncompleteBox){if(this.processIncompleteBox(i))continue;return}else return;else if(i.code===1){const s=i.box;if(this.boxes.push(s),s.type==="uuid")this[s.uuid]!==void 0&&L.warn("ISOFile","Duplicate Box of uuid: "+s.uuid+", overriding previous occurrence"),this[s.uuid]=s;else switch(s.type){case"mdat":this.mdats.push(s),this.transferMdatData(s);break;case"moof":this.moofs.push(s);break;case"free":case"skip":break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[s.type]!==void 0?Array.isArray(this[s.type+"s"])?(L.info("ISOFile",`Found multiple boxes of type ${s.type} in ISOFile, adding to array`),this[s.type+"s"].push(s)):(L.warn("ISOFile",`Found multiple boxes of type ${s.type} but no array exists. Creating array dynamically.`),this[s.type+"s"]=[this[s.type],s]):(this[s.type]=s,Array.isArray(this[s.type+"s"])&&this[s.type+"s"].push(s));break}this.updateUsedBytes&&this.updateUsedBytes(s,i)}else if(i.code===-1){L.error("ISOFile",`Invalid data found while parsing box of type '${i.type}' at position ${i.start}. Aborting parsing.`,this);break}}}checkBuffer(e){if(!e)throw new Error("Buffer must be defined and non empty");return e.byteLength===0?(L.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(L.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(L.warn("ISOFile","Not ready to start parsing"),!1))}appendBuffer(e,i){let s;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(i),this.nextSeekPosition?(s=this.nextSeekPosition,this.nextSeekPosition=void 0):s=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(s=this.stream.getEndFilePositionAfter(s))):this.nextParsePosition?s=this.nextParsePosition:s=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(L.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+s),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),L.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),s}getFragmentDuration(){const e=this.getBox("mvex");if(!e)return;if(e.mehd)return{num:e.mehd.fragment_duration,den:this.moov.mvhd.timescale};const i=this.getBoxes("trak",!1);let s={num:0,den:1};for(const n of i){const a=n.samples_duration,o=n.mdia.mdhd.timescale;a&&o&&a/o>s.num/s.den&&(s={num:a,den:o})}return s}getInfo(){if(!this.moov)return{hasMoov:!1,mime:""};const e=new Date("1904-01-01T00:00:00Z").getTime(),i=this.getBox("mvex")!==void 0,s={hasMoov:!0,duration:this.moov.mvhd.duration,timescale:this.moov.mvhd.timescale,isFragmented:i,fragment_duration:this.getFragmentDuration(),isProgressive:this.isProgressive,hasIOD:this.moov.iods!==void 0,brands:[this.ftyp.major_brand].concat(this.ftyp.compatible_brands),created:new Date(e+this.moov.mvhd.creation_time*1e3),modified:new Date(e+this.moov.mvhd.modification_time*1e3),tracks:[],audioTracks:[],videoTracks:[],subtitleTracks:[],metadataTracks:[],hintTracks:[],otherTracks:[],mime:""};for(let n=0;n<this.moov.traks.length;n++){const a=this.moov.traks[n],o=a.mdia.minf.stbl.stsd.entries[0],l=a.samples_size,c=a.mdia.mdhd.timescale,u=a.samples_duration,d={samples_duration:u,bitrate:l*8*c/u,size:l,timescale:c,alternate_group:a.tkhd.alternate_group,codec:o.getCodec(),created:new Date(e+a.tkhd.creation_time*1e3),cts_shift:a.mdia.minf.stbl.cslg,duration:a.mdia.mdhd.duration,id:a.tkhd.track_id,kind:a.udta&&a.udta.kinds.length?a.udta.kinds[0]:{schemeURI:"",value:""},language:a.mdia.elng?a.mdia.elng.extended_language:a.mdia.mdhd.languageString,layer:a.tkhd.layer,matrix:a.tkhd.matrix,modified:new Date(e+a.tkhd.modification_time*1e3),movie_duration:a.tkhd.duration,movie_timescale:s.timescale,name:a.mdia.hdlr.name,nb_samples:a.samples.length,references:[],track_height:a.tkhd.height/65536,track_width:a.tkhd.width/65536,volume:a.tkhd.volume};if(s.tracks.push(d),a.tref)for(let f=0;f<a.tref.references.length;f++)d.references.push({type:a.tref.references[f].type,track_ids:a.tref.references[f].track_ids});a.edts!==void 0&&a.edts.elst!==void 0&&(d.edits=a.edts.elst.entries),o instanceof rs?(d.type="audio",s.audioTracks.push(d),d.audio={sample_rate:o.getSampleRate(),channel_count:o.getChannelCount(),sample_size:o.getSampleSize()}):o instanceof Ye?(d.type="video",s.videoTracks.push(d),d.video={width:o.getWidth(),height:o.getHeight()}):o instanceof Ir?(d.type="subtitles",s.subtitleTracks.push(d)):o instanceof qp?(d.type="metadata",s.hintTracks.push(d)):o instanceof fa?(d.type="metadata",s.metadataTracks.push(d)):(d.type="metadata",s.otherTracks.push(d))}s.videoTracks&&s.videoTracks.length>0?s.mime+='video/mp4; codecs="':s.audioTracks&&s.audioTracks.length>0?s.mime+='audio/mp4; codecs="':s.mime+='application/mp4; codecs="';for(let n=0;n<s.tracks.length;n++)n!==0&&(s.mime+=","),s.mime+=s.tracks[n].codec;return s.mime+='"; profiles="',s.mime+=this.ftyp.compatible_brands.join(),s.mime+='"',s}setNextSeekPositionFromSample(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)}processSamples(e){if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==void 0){const i=new Set;for(;i.size<this.fragmentedTracks.length&&this.fragmentedTracks.some(s=>s.trak.nextSample<s.trak.samples.length)&&this.sampleProcessingStarted;)for(const s of this.fragmentedTracks){const n=s.trak;if(!i.has(s.id)){const a=n.nextSample<n.samples.length?this.getSample(n,n.nextSample):void 0;if(!a){this.setNextSeekPositionFromSample(n.samples[n.nextSample]),i.add(s.id);continue}s.state.accumulatedSize+=a.size;const o=n.nextSample+1,l=o-s.state.lastFragmentSampleNumber>s.nb_samples_per_fragment,c=o-s.state.lastSegmentSampleNumber>s.nb_samples;let u=l||o%s.nb_samples_per_fragment===0,d=c||o%s.nb_samples===0,f=s.state.accumulatedSize>=s.size_per_segment;const p=!s.rapAlignement||a.is_sync,v=e||n.nextSample+1>=n.samples.length;if(v&&!p&&L.warn("ISOFile","Flushing track #"+s.id+" at sample #"+n.nextSample+" which is not a RAP, this may lead to playback issues"),u=u&&p,d=d&&p,f=f&&p,u||f||v){l?L.warn("ISOFile","Fragment on track #"+s.id+" is overdue, creating it with samples ["+s.state.lastFragmentSampleNumber+", "+n.nextSample+"]"):L.debug("ISOFile","Creating media fragment on track #"+s.id+" for samples ["+s.state.lastFragmentSampleNumber+", "+n.nextSample+"]");const g=this.createFragment(s.id,s.state.lastFragmentSampleNumber,n.nextSample,s.segmentStream);if(g)s.segmentStream=g,s.state.lastFragmentSampleNumber=n.nextSample+1;else{i.add(s.id);continue}}(d||f||v)&&(c?L.warn("ISOFile","Segment on track #"+s.id+" is overdue, sending it with samples ["+Math.max(0,n.nextSample-s.nb_samples)+", "+(n.nextSample-1)+"]"):L.info("ISOFile","Sending fragmented data on track #"+s.id+" for samples ["+Math.max(0,n.nextSample-s.nb_samples)+", "+(n.nextSample-1)+"]"),L.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(s.id,s.user,s.segmentStream.buffer,n.nextSample+1,e||n.nextSample+1>=n.samples.length),s.segmentStream=void 0,s.state.accumulatedSize=0,s.state.lastSegmentSampleNumber=n.nextSample+1),n.nextSample++}}}if(this.onSamples!==void 0)for(let i=0;i<this.extractedTracks.length;i++){const s=this.extractedTracks[i],n=s.trak;for(;n.nextSample<n.samples.length&&this.sampleProcessingStarted;){L.debug("ISOFile","Exporting on track #"+s.id+" sample #"+n.nextSample);const a=this.getSample(n,n.nextSample);if(a)n.nextSample++,s.samples.push(a);else{this.setNextSeekPositionFromSample(n.samples[n.nextSample]);break}if((n.nextSample%s.nb_samples===0||n.nextSample>=n.samples.length)&&(L.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+n.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[i]))break}}}}getBox(e){const i=this.getBoxes(e,!0);return i.length?i[0]:void 0}getBoxes(e,i){const s=[],n=a=>{a instanceof mt&&a.type&&a.type===e&&s.push(a);const o=[];a.boxes&&o.push(...a.boxes),a.entries&&o.push(...a.entries),a.item_infos&&o.push(...a.item_infos),a.references&&o.push(...a.references);for(const l of o){if(s.length&&i)return;n(l)}};return n(this),s}getTrackSamplesInfo(e){const i=this.getTrackById(e);if(i)return i.samples}getTrackSample(e,i){const s=this.getTrackById(e);return this.getSample(s,i)}releaseUsedSamples(e,i){let s=0;const n=this.getTrackById(e);n.lastValidSample||(n.lastValidSample=0);for(let a=n.lastValidSample;a<i;a++)s+=this.releaseSample(n,a);L.info("ISOFile","Track #"+e+" released samples up to "+i+" (released size: "+s+", remaining: "+this.samplesDataSize+")"),n.lastValidSample=i}start(){this.sampleProcessingStarted=!0,this.processSamples(!1)}stop(){this.sampleProcessingStarted=!1}flush(){L.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)}seekTrack(e,i,s){let n=0,a=0,o;if(s.samples.length===0)return L.info("ISOFile","No sample in track, cannot seek! Using time "+L.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(let c=0;c<s.samples.length;c++){const u=s.samples[c];if(c===0)a=0,o=u.timescale;else if(u.cts>e*u.timescale){a=c-1;break}i&&u.is_sync&&(n=c)}for(i&&(a=n),e=s.samples[a].cts,s.nextSample=a,this.resetFragmentedTrackStateAfterSeek(s,a),this.resetExtractedTrackStateAfterSeek(s);s.samples[a].alreadyRead===s.samples[a].size&&s.samples[a+1];)a++;const l=s.samples[a].offset+s.samples[a].alreadyRead;return L.info("ISOFile","Seeking to "+(i?"RAP":"")+" sample #"+s.nextSample+" on track "+s.tkhd.track_id+", time "+L.getDurationString(e,o)+" and offset: "+l),{offset:l,time:e/o}}resetFragmentedTrackStateAfterSeek(e,i){const s=this.fragmentedTracks.find(n=>n.trak===e);s&&(s.state.lastFragmentSampleNumber=i,s.state.lastSegmentSampleNumber=i,s.state.accumulatedSize=0,s.segmentStream=void 0)}resetExtractedTrackStateAfterSeek(e){const i=this.extractedTracks.find(s=>s.trak===e);i&&(i.samples=[])}getTrackDuration(e){if(!e.samples)return 1/0;const i=e.samples[e.samples.length-1];return(i.cts+i.duration)/i.timescale}seek(e,i){const s=this.moov;let n={offset:1/0,time:1/0};if(this.moov){for(let a=0;a<s.traks.length;a++){const o=s.traks[a];if(e>this.getTrackDuration(o))continue;const l=this.seekTrack(e,i,o);l.offset<n.offset&&(n.offset=l.offset),l.time<n.time&&(n.time=l.time)}return L.info("ISOFile","Seeking at time "+L.getDurationString(n.time,1)+" needs a buffer with a fileStart position of "+n.offset),n.offset===1/0?n={offset:this.nextParsePosition,time:0}:n.offset=this.stream.getEndFilePositionAfter(n.offset),L.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+n.offset),n}else throw new Error("Cannot seek: moov not received!")}equal(e){let i=0;for(;i<this.boxes.length&&i<e.boxes.length;){const s=this.boxes[i],n=e.boxes[i];if(!M_(s,n))return!1;i++}return!0}write(e){for(let i=0;i<this.boxes.length;i++)this.boxes[i].write(e)}createFragment(e,i,s,n){if(s<i)return L.warn("ISOFile",`Skipping fragment creation on track #${e}: invalid sample range [${i}, ${s}]`),n||new Hi;const a=[];for(let d=i;d<=s;d++){const f=this.getTrackById(e),p=this.getSample(f,d);if(!p){this.setNextSeekPositionFromSample(f.samples[d]);return}a.push(p)}const o=n||new Hi,l=this.createMoof(a);l.write(o),l.trafs[0].truns[0].data_offset=l.size+8,L.debug("MP4Box","Adjusting data_offset with new value "+l.trafs[0].truns[0].data_offset),o.adjustUint32(l.trafs[0].truns[0].data_offset_position,l.trafs[0].truns[0].data_offset);const c=new El;c.stream=new Bl;let u=0;for(const d of a)if(d.data){const f=Fn.fromArrayBuffer(d.data.buffer,u);c.stream.insertBuffer(f),u+=d.data.byteLength}return c.write(o),o}static writeInitializationSegment(e,i,s,n){L.debug("ISOFile","Generating initialization segment");const a=new Hi;e.write(a);const o=nn.normalizeAudioSampleEntriesForMSEFragmentedInit(i.traks,n);try{const l=i.addBox(new od);if(s){const c=l.addBox(new Y_);c.fragment_duration=s}for(let c=0;c<i.traks.length;c++){const u=l.addBox(new ld);u.track_id=i.traks[c].tkhd.track_id,u.default_sample_description_index=1,u.default_sample_duration=i.traks[c].samples[0]?.duration??0,u.default_sample_size=0,u.default_sample_flags=65536}i.write(a)}finally{for(let l=o.length-1;l>=0;l--)o[l]()}return a.buffer}save(e){const i=new Hi;return i.isofile=this,this.write(i),i.save(e)}getBuffer(){const e=new Hi;return e.isofile=this,this.write(e),e}static normalizeAudioSampleEntriesForMSEFragmentedInit(e,i){const s=[];for(const n of e)if(i?.has(n.tkhd.track_id))for(const a of n.mdia.minf.stbl.stsd?.entries??[]){if(!(a instanceof tg))continue;const o=a.wave?.esds;if(a.esds||!o)continue;const l=a.esds,c=a.wave,u=a.boxes;s.push(()=>{a.esds=l,a.wave=c,a.boxes=u});const d=Array.isArray(a.boxes)?a.boxes.filter(f=>f?.type!=="wave"&&f?.type!=="esds"):[];a.esds=o,a.boxes=[...d,o],a.wave=void 0}return s}initializeSegmentation(e){if(this.onSegment||L.warn("MP4Box","No segmentation callback set!"),e!==void 0&&e!=="combined"&&e!=="per-track")throw new Error(`Invalid segmentation mode: ${e}`);this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.resetTables());const i=[];for(const o of this.fragmentedTracks){const l=this.getTrackById(o.id);if(!l){L.warn("ISOFile",`Track with id ${o.id} not found, skipping fragmentation initialization`);continue}i.push({id:o.id,user:o.user,trak:l})}const s=this.moov?.mvex?.mehd?.fragment_duration,n=new Set(this.fragmentedTracks.filter(o=>o.normalizeAudioSampleEntriesForMSE!==!1).map(o=>o.id));if(e==="per-track")return i.map(({id:o,user:l,trak:c})=>{const u=new Tl;return u.addBox(this.moov.mvhd),u.addBox(c),{id:o,user:l,buffer:nn.writeInitializationSegment(this.ftyp,u,s,n)}});const a=new Tl;a.addBox(this.moov.mvhd);for(const o of i)a.addBox(o.trak);return{tracks:i.map(({id:o,user:l})=>({id:o,user:l})),buffer:nn.writeInitializationSegment(this.ftyp,a,s,n)}}resetTables(){this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0;for(let e=0;e<this.moov.traks.length;e++){const i=this.moov.traks[e];i.tkhd.duration=0,i.mdia.mdhd.duration=0;const s=i.mdia.minf.stbl.stco||i.mdia.minf.stbl.co64;s.chunk_offsets=[];const n=i.mdia.minf.stbl.stsc;n.first_chunk=[],n.samples_per_chunk=[],n.sample_description_index=[];const a=i.mdia.minf.stbl.stsz||i.mdia.minf.stbl.stz2;a.sample_sizes=[];const o=i.mdia.minf.stbl.stts;o.sample_counts=[],o.sample_deltas=[];const l=i.mdia.minf.stbl.ctts;l&&(l.sample_counts=[],l.sample_offsets=[]);const c=i.mdia.minf.stbl.stss,u=i.mdia.minf.stbl.boxes.indexOf(c);u!==-1&&(i.mdia.minf.stbl.boxes[u]=void 0)}}static initSampleGroups(e,i,s,n,a){i&&(i.sample_groups_info=[]),e.sample_groups_info||(e.sample_groups_info=[]);for(let o=0;o<s.length;o++){const l=s[o].grouping_type+"/"+s[o].grouping_type_parameter,c=new xu(s[o].grouping_type,s[o].grouping_type_parameter,s[o]);i&&(i.sample_groups_info[l]=c),e.sample_groups_info[l]||(e.sample_groups_info[l]=c);for(let u=0;u<n.length;u++)n[u].grouping_type===s[o].grouping_type&&(c.description=n[u],c.description.used=!0);if(a)for(let u=0;u<a.length;u++)a[u].grouping_type===s[o].grouping_type&&(c.fragment_description=a[u],c.fragment_description.used=!0,c.is_fragment=!0)}if(i){if(a){for(let o=0;o<a.length;o++)if(!a[o].used&&a[o].version>=2){const l=a[o].grouping_type+"/0",c=new xu(a[o].grouping_type,0);c.is_fragment=!0,i.sample_groups_info[l]||(i.sample_groups_info[l]=c)}}}else for(let o=0;o<n.length;o++)if(!n[o].used&&n[o].version>=2){const l=n[o].grouping_type+"/0",c=new xu(n[o].grouping_type,0);e.sample_groups_info[l]||(e.sample_groups_info[l]=c)}}static setSampleGroupProperties(e,i,s,n){i.sample_groups=[];for(const a in n)if(i.sample_groups[a]={grouping_type:n[a].grouping_type,grouping_type_parameter:n[a].grouping_type_parameter},s>=n[a].last_sample_in_run&&(n[a].last_sample_in_run<0&&(n[a].last_sample_in_run=0),n[a].entry_index++,n[a].entry_index<=n[a].sbgp.entries.length-1&&(n[a].last_sample_in_run+=n[a].sbgp.entries[n[a].entry_index].sample_count)),n[a].entry_index<=n[a].sbgp.entries.length-1?i.sample_groups[a].group_description_index=n[a].sbgp.entries[n[a].entry_index].group_description_index:i.sample_groups[a].group_description_index=-1,i.sample_groups[a].group_description_index!==0){let o;if(n[a].fragment_description?o=n[a].fragment_description:o=n[a].description,i.sample_groups[a].group_description_index>0){let l;i.sample_groups[a].group_description_index>65535?l=(i.sample_groups[a].group_description_index>>16)-1:l=i.sample_groups[a].group_description_index-1,o&&l>=0&&(i.sample_groups[a].description=o.entries[l])}else o&&o.version>=2&&o.default_group_description_index>0&&(i.sample_groups[a].description=o.entries[o.default_group_description_index-1])}}static process_sdtp(e,i,s){i&&(e?(i.is_leading=e.is_leading[s],i.depends_on=e.sample_depends_on[s],i.is_depended_on=e.sample_is_depended_on[s],i.has_redundancy=e.sample_has_redundancy[s]):(i.is_leading=0,i.depends_on=0,i.is_depended_on=0,i.has_redundancy=0))}buildSampleLists(){for(let e=0;e<this.moov.traks.length;e++)this.buildTrakSampleLists(this.moov.traks[e])}buildTrakSampleLists(e){let i,s,n,a,o,l;e.samples=[],e.samples_duration=0,e.samples_size=0;const c=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,u=e.mdia.minf.stbl.stsc,d=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,f=e.mdia.minf.stbl.stts,p=e.mdia.minf.stbl.ctts,v=e.mdia.minf.stbl.stss,g=e.mdia.minf.stbl.stsd,_=e.mdia.minf.stbl.subs,x=e.mdia.minf.stbl.stdp,E=e.mdia.minf.stbl.sbgps,I=e.mdia.minf.stbl.sgpds;let z=-1,$=-1,M=-1,V=-1,N=0,H=0,T=0;if(nn.initSampleGroups(e,void 0,E,I),!(typeof d>"u")){for(i=0;i<d.sample_sizes.length;i++){const j={number:i,track_id:e.tkhd.track_id,timescale:e.mdia.mdhd.timescale,alreadyRead:0,size:d.sample_sizes[i]};e.samples[i]=j,e.samples_size+=j.size,i===0?(n=1,s=0,j.chunk_index=n,j.chunk_run_index=s,l=u.samples_per_chunk[s],o=0,s+1<u.first_chunk.length?a=u.first_chunk[s+1]-1:a=1/0):i<l?(j.chunk_index=n,j.chunk_run_index=s):(n++,j.chunk_index=n,o=0,n<=a||(s++,s+1<u.first_chunk.length?a=u.first_chunk[s+1]-1:a=1/0),j.chunk_run_index=s,l+=u.samples_per_chunk[s]),j.description_index=u.sample_description_index[j.chunk_run_index]-1,j.description=g.entries[j.description_index],j.offset=c.chunk_offsets[j.chunk_index-1]+o,o+=j.size,i>z&&($++,z<0&&(z=0),z+=f.sample_counts[$]),i>0?(e.samples[i-1].duration=f.sample_deltas[$],e.samples_duration+=e.samples[i-1].duration,j.dts=e.samples[i-1].dts+e.samples[i-1].duration):j.dts=0,p?(i>=M&&(V++,M<0&&(M=0),M+=p.sample_counts[V]),j.cts=e.samples[i].dts+p.sample_offsets[V]):j.cts=j.dts,v?(i===v.sample_numbers[N]-1?(j.is_sync=!0,N++):(j.is_sync=!1,j.degradation_priority=0),_&&_.entries[H].sample_delta+T===i+1&&(j.subsamples=_.entries[H].subsamples,T+=_.entries[H].sample_delta,H++)):j.is_sync=!0,nn.process_sdtp(e.mdia.minf.stbl.sdtp,j,j.number),x?j.degradation_priority=x.priority[i]:j.degradation_priority=0,_&&_.entries[H].sample_delta+T===i&&(j.subsamples=_.entries[H].subsamples,T+=_.entries[H].sample_delta),(E.length>0||I.length>0)&&nn.setSampleGroupProperties(e,j,i,e.sample_groups_info)}i>0&&(e.samples[i-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[i-1].dts,0),e.samples_duration+=e.samples[i-1].duration)}}updateSampleLists(){let e,i,s,n,a;if(this.moov!==void 0)for(;this.lastMoofIndex<this.moofs.length;){const o=this.moofs[this.lastMoofIndex];if(this.lastMoofIndex++,o.type==="moof"){const l=o;for(let c=0;c<l.trafs.length;c++){const u=l.trafs[c],d=this.getTrackById(u.tfhd.track_id),f=this.getTrexById(u.tfhd.track_id);u.tfhd.flags&2?e=u.tfhd.default_sample_description_index:e=f?f.default_sample_description_index:1,u.tfhd.flags&8?i=u.tfhd.default_sample_duration:i=f?f.default_sample_duration:0,u.tfhd.flags&16?s=u.tfhd.default_sample_size:s=f?f.default_sample_size:0,u.tfhd.flags&32?n=u.tfhd.default_sample_flags:n=f?f.default_sample_flags:0,u.sample_number=0,u.sbgps.length>0&&nn.initSampleGroups(d,u,u.sbgps,d.mdia.minf.stbl.sgpds,u.sgpds);for(let p=0;p<u.truns.length;p++){const v=u.truns[p];for(let g=0;g<v.sample_count;g++){const _=e-1;let x=n;v.flags&1024?x=v.sample_flags[g]:g===0&&v.flags&4&&(x=v.first_sample_flags);let E=s;v.flags&512&&(E=v.sample_size[g]),d.samples_size+=E;let I=i;v.flags&256&&(I=v.sample_duration[g]),d.samples_duration+=I;let z;d.first_traf_merged||g>0?z=d.samples[d.samples.length-1].dts+d.samples[d.samples.length-1].duration:(u.tfdt?z=u.tfdt.baseMediaDecodeTime:z=0,d.first_traf_merged=!0);let $=z;v.flags&2048&&($=z+v.sample_composition_time_offset[g]);const M=!!(u.tfhd.flags&1),V=!!(u.tfhd.flags&131072),N=!!(v.flags&1);let H=0;M?H=u.tfhd.base_data_offset:V||p===0?H=l.start:H=a;let T;p===0&&g===0?N?T=H+v.data_offset:T=H:T=a,a=T+E;const j=u.sample_number;u.sample_number++;const St={cts:$,description_index:_,description:d.mdia.minf.stbl.stsd.entries[_],dts:z,duration:I,moof_number:this.lastMoofIndex,number_in_traf:j,number:d.samples.length,offset:T,size:E,timescale:d.mdia.mdhd.timescale,track_id:d.tkhd.track_id,is_sync:!(x>>16&1),is_leading:x>>26&3,depends_on:x>>24&3,is_depended_on:x>>22&3,has_redundancy:x>>20&3,degradation_priority:x&65535};u.first_sample_index=d.samples.length,d.samples.push(St),(u.sbgps.length>0||u.sgpds.length>0||d.mdia.minf.stbl.sbgps.length>0||d.mdia.minf.stbl.sgpds.length>0)&&nn.setSampleGroupProperties(d,St,St.number_in_traf,u.sample_groups_info)}}if(u.subs){d.has_fragment_subsamples=!0;let p=u.first_sample_index;for(let v=0;v<u.subs.entries.length;v++){p+=u.subs.entries[v].sample_delta;const g=d.samples[p-1];g.subsamples=u.subs.entries[v].subsamples}}}}}}getSample(e,i){const s=e.samples[i];if(this.moov){if(!s.data)s.data=new Uint8Array(s.size),s.alreadyRead=0,this.samplesDataSize+=s.size,L.debug("ISOFile","Allocating sample #"+i+" on track #"+e.tkhd.track_id+" of size "+s.size+" (total: "+this.samplesDataSize+")");else if(s.alreadyRead===s.size)return s;for(;;){let n=this.stream,a=n.findPosition(!0,s.offset+s.alreadyRead,!1),o,l;if(a>-1)o=n.buffers[a],l=o.fileStart;else for(const c of this.mdats){if(!c.stream){L.debug("ISOFile","mdat stream not yet fully read for #"+this.mdats.indexOf(c)+" mdat");continue}if(a=c.stream.findPosition(!0,s.offset+s.alreadyRead-c.start-c.hdr_size,!1),a>-1){n=c.stream,o=c.stream.buffers[a],l=c.start+c.hdr_size+o.fileStart;break}}if(o){const c=o.byteLength-(s.offset+s.alreadyRead-l);if(s.size-s.alreadyRead<=c)return L.debug("ISOFile","Getting sample #"+i+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-l)+" read size: "+(s.size-s.alreadyRead)+" full size: "+s.size+")"),Hi.memcpy(s.data.buffer,s.alreadyRead,o,s.offset+s.alreadyRead-l,s.size-s.alreadyRead),o.usedBytes+=s.size-s.alreadyRead,n.logBufferLevel(),s.alreadyRead=s.size,s;if(c===0)return;L.debug("ISOFile","Getting sample #"+i+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-l)+" read size: "+c+" full size: "+s.size+")"),Hi.memcpy(s.data.buffer,s.alreadyRead,o,s.offset+s.alreadyRead-l,c),s.alreadyRead+=c,o.usedBytes+=c,n.logBufferLevel()}else return}}}releaseSample(e,i){const s=e.samples[i];return s.data?(this.samplesDataSize-=s.size,s.data=void 0,s.alreadyRead=0,s.size):0}getAllocatedSampleDataSize(){return this.samplesDataSize}getCodecs(){let e="";for(let i=0;i<this.moov.traks.length;i++){const s=this.moov.traks[i];i>0&&(e+=","),e+=s.mdia.minf.stbl.stsd.entries[0].getCodec()}return e}getTrexById(e){if(!(!this.moov||!this.moov.mvex))for(let i=0;i<this.moov.mvex.trexs.length;i++){const s=this.moov.mvex.trexs[i];if(s.track_id===e)return s}}getTrackById(e){if(this.moov)for(let i=0;i<this.moov.traks.length;i++){const s=this.moov.traks[i];if(s.tkhd.track_id===e)return s}}flattenItemInfo(){const e=this.items,i=this.entity_groups,s=this.meta;if(!(!s||!s.hdlr||!s.iinf)){for(let n=0;n<s.iinf.item_infos.length;n++){const a=s.iinf.item_infos[n].item_ID;e[a]={id:a,name:s.iinf.item_infos[n].item_name,ref_to:[],content_type:s.iinf.item_infos[n].content_type,content_encoding:s.iinf.item_infos[n].content_encoding,item_uri_type:s.iinf.item_infos[n].item_uri_type,type:s.iinf.item_infos[n].item_type?s.iinf.item_infos[n].item_type:"mime",protection:s.iinf.item_infos[n].item_protection_index>0?s.ipro.protections[s.iinf.item_infos[n].item_protection_index-1]:void 0}}if(s.grpl)for(let n=0;n<s.grpl.boxes.length;n++){const a=s.grpl.boxes[n];i[a.group_id]={id:a.group_id,entity_ids:a.entity_ids,type:a.type}}if(s.iloc)for(let n=0;n<s.iloc.items.length;n++){const a=s.iloc.items[n],o=e[a.item_ID];a.data_reference_index!==0&&(L.warn("Item storage with reference to other files: not supported"),o.source=s.dinf.boxes[a.data_reference_index-1]),o.extents=[],o.size=0;for(let l=0;l<a.extents.length;l++)o.extents[l]={offset:a.extents[l].extent_offset+a.base_offset,length:a.extents[l].extent_length,alreadyRead:0},a.construction_method===1&&(o.extents[l].offset+=s.idat.start+s.idat.hdr_size),o.size+=o.extents[l].length}if(s.pitm){const n=s.pitm.item_id;e[n]?e[n].primary=!0:L.warn("ISOFile","Primary item_id #"+n+" does not exist in items")}if(s.iref)for(let n=0;n<s.iref.references.length;n++){const a=s.iref.references[n];for(let o=0;o<a.references.length;o++)e[a.from_item_ID].ref_to.push({type:a.type,id:a.references[o]})}if(s.iprp)for(let n=0;n<s.iprp.ipmas.length;n++){const a=s.iprp.ipmas[n];for(let o=0;o<a.associations.length;o++){const l=a.associations[o],c=e[l.id]??i[l.id];if(c){c.properties===void 0&&(c.properties={boxes:[]});for(let u=0;u<l.props.length;u++){const d=l.props[u];if(d.property_index>0&&d.property_index-1<s.iprp.ipco.boxes.length){const f=s.iprp.ipco.boxes[d.property_index-1];c.properties[f.type]=f,c.properties.boxes.push(f)}}}}}}}getItem(e){if(!this.meta)return;const i=this.items[e];if(!i.data&&i.size)i.data=new Uint8Array(i.size),i.alreadyRead=0,this.itemsDataSize+=i.size,L.debug("ISOFile","Allocating item #"+e+" of size "+i.size+" (total: "+this.itemsDataSize+")");else if(i.alreadyRead===i.size)return i;for(let s=0;s<i.extents.length;s++){const n=i.extents[s];if(n.alreadyRead!==n.length){const a=this.stream.findPosition(!0,n.offset+n.alreadyRead,!1);if(a>-1){const o=this.stream.buffers[a],l=o.byteLength-(n.offset+n.alreadyRead-o.fileStart);if(n.length-n.alreadyRead<=l)L.debug("ISOFile","Getting item #"+e+" extent #"+s+" data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-o.fileStart)+" read size: "+(n.length-n.alreadyRead)+" full extent size: "+n.length+" full item size: "+i.size+")"),Hi.memcpy(i.data.buffer,i.alreadyRead,o,n.offset+n.alreadyRead-o.fileStart,n.length-n.alreadyRead),(!this.parsingMdat||this.discardMdatData)&&(o.usedBytes+=n.length-n.alreadyRead),this.stream.logBufferLevel(),i.alreadyRead+=n.length-n.alreadyRead,n.alreadyRead=n.length;else{L.debug("ISOFile","Getting item #"+e+" extent #"+s+" partial data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-o.fileStart)+" read size: "+l+" full extent size: "+n.length+" full item size: "+i.size+")"),Hi.memcpy(i.data.buffer,i.alreadyRead,o,n.offset+n.alreadyRead-o.fileStart,l),n.alreadyRead+=l,i.alreadyRead+=l,(!this.parsingMdat||this.discardMdatData)&&(o.usedBytes+=l),this.stream.logBufferLevel();return}}else return}}if(i.alreadyRead===i.size)return i}releaseItem(e){const i=this.items[e];if(i.data){this.itemsDataSize-=i.size,i.data=void 0,i.alreadyRead=0;for(let s=0;s<i.extents.length;s++){const n=i.extents[s];n.alreadyRead=0}return i.size}else return 0}processItems(e){for(const i in this.items){const s=this.items[i];this.getItem(s.id),e&&!s.sent&&(e(s),s.sent=!0,s.data=void 0)}}hasItem(e){for(const i in this.items){const s=this.items[i];if(s.name===e)return s.id}return-1}getMetaHandler(){if(this.meta)return this.meta.hdlr.handler}getPrimaryItem(){if(this.meta&&this.meta.pitm)return this.getItem(this.meta.pitm.item_id)}itemToFragmentedTrackFile({itemId:e}={}){let i;if(e?i=this.getItem(e):i=this.getPrimaryItem(),!i)return;const s=new nn;s.discardMdatData=!1;const n={type:i.type,description_boxes:i.properties.boxes};i.properties.ispe&&(n.width=i.properties.ispe.image_width,n.height=i.properties.ispe.image_height);const a=s.addTrack(n);if(a)return s.addSample(a,i.data),s}processIncompleteBox(e){if(e.type==="mdat"){const i=new El(e.size);return this.parsingMdat=i,this.boxes.push(i),this.mdats.push(i),i.start=e.start,i.hdr_size=e.hdr_size,i.original_size=e.original_size,this.stream.addUsedBytes(i.hdr_size),this.lastBoxStartPosition=i.start+i.size,this.stream.seek(i.start+i.size,!1,this.discardMdatData)?(this.transferMdatData(),this.parsingMdat=void 0,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=i.start+i.size,!1)}else return e.type==="moov"&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),this.stream.mergeNextBuffer&&this.stream.mergeNextBuffer()?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1)}hasIncompleteMdat(){return this.parsingMdat!==void 0}transferMdatData(e){const i=e??this.parsingMdat;if(this.discardMdatData){L.debug("ISOFile","Discarding 'mdat' data, not transferring it to the mdat box stream");return}if(!i){L.warn("ISOFile","Cannot transfer 'mdat' data, no mdat box is being parsed");return}const s=this.stream.findPosition(!0,i.start+i.hdr_size,!1),n=this.stream.findPosition(!0,i.start+i.size,!1);if(s===-1||n===-1){L.warn("ISOFile","Cannot transfer 'mdat' data, start or end buffer not found");return}i.stream=new Bl;for(let a=s;a<=n;a++){const o=this.stream.buffers[a],l=a===s?i.start+i.hdr_size-o.fileStart:0,c=a===n?i.start+i.size-o.fileStart:o.byteLength;if(c>l){L.debug("ISOFile","Transferring 'mdat' data from buffer #"+a+" ("+l+" to "+c+")");const u=c-l,d=new Fn(u),f=i.stream.getAbsoluteEndPosition();Hi.memcpy(d,0,o,l,u),d.fileStart=f,i.stream.insertBuffer(d),o.usedBytes+=u}}}processIncompleteMdat(){const e=this.parsingMdat;return this.stream.seek(e.start+e.size,!1,this.discardMdatData)?(L.debug("ISOFile","Found 'mdat' end in buffered data"),this.transferMdatData(),this.parsingMdat=void 0,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)}restoreParsePosition(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)}saveParsePosition(){this.lastBoxStartPosition=this.stream.getPosition()}updateUsedBytes(e,i){this.stream.addUsedBytes&&(e.type==="mdat"?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))}addBox(e){return mt.prototype.addBox.call(this,e)}init(e={}){const i=this.addBox(new j_);i.major_brand=e.brands&&e.brands[0]||"iso4",i.minor_version=0,i.compatible_brands=e.brands||["iso4"];const s=this.addBox(new Tl);s.addBox(new od);const n=s.addBox(new J_);return n.timescale=e.timescale||600,n.rate=e.rate||65536,n.creation_time=0,n.modification_time=0,n.duration=e.duration||0,n.volume=e.width?0:256,n.matrix=[65536,0,0,0,65536,0,0,0,1073741824],n.next_track_id=1,this}addTrack(e={}){this.moov||this.init(e);const i=e||{};i.width=i.width||320,i.height=i.height||320,i.id=i.id||this.moov.mvhd.next_track_id,i.type=i.type||"avc1";const s=this.moov.addBox(new $_);this.moov.mvhd.next_track_id=i.id+1;const n=s.addBox(new dg);n.flags=7,n.creation_time=0,n.modification_time=0,n.track_id=i.id,n.duration=i.duration||0,n.layer=i.layer||0,n.alternate_group=0,n.volume=1,n.matrix=[65536,0,0,0,65536,0,0,0,1073741824],n.width=i.width<<16,n.height=i.height<<16;const a=s.addBox(new O_),o=a.addBox(new W_);o.creation_time=0,o.modification_time=0,o.timescale=i.timescale||1,o.duration=i.media_duration||0,o.language=i.language||"und";const l=a.addBox(new G_);l.handler=i.hdlr||"vide",l.name=i.name||"Track created with MP4Box.js";const c=a.addBox(new V_);c.extended_language=i.language||"fr-FR";const u=a.addBox(new F_),d=Ji.sampleEntry[i.type];if(!d)return;const f=new d;if(f.data_reference_index=1,f instanceof Ye){const $=f,M=u.addBox(new pg);M.graphicsmode=0,M.opcolor=[0,0,0],$.width=i.width,$.height=i.height,$.horizresolution=72<<16,$.vertresolution=72<<16,$.frame_count=1,$.compressorname=i.type+" Compressor",$.depth=24,i.avcDecoderConfigRecord?$.addBox(new z_(i.avcDecoderConfigRecord.byteLength)).parse(new Hi(i.avcDecoderConfigRecord)):i.hevcDecoderConfigRecord&&$.addBox(new q_(i.hevcDecoderConfigRecord.byteLength)).parse(new Hi(i.hevcDecoderConfigRecord))}else if(f instanceof rs){const $=f,M=u.addBox(new ig);M.balance=i.balance||0,$.channel_count=i.channel_count||2,$.samplesize=i.samplesize||16,$.samplerate=i.samplerate||65536}else f instanceof qp?u.addBox(new C_):f instanceof Ir?(u.addBox(new ng),f instanceof eg&&(f.namespace=i.namespace||"nonamespace",f.schema_location=i.schema_location||"",f.auxiliary_mime_types=i.auxiliary_mime_types||"")):f instanceof fa?u.addBox(new Ul):f instanceof qd?u.addBox(new Ul):u.addBox(new Ul);i.description&&f.addBox.call(f,i.description),i.description_boxes&&i.description_boxes.forEach(function($){f.addBox.call(f,$)});const p=u.addBox(new N_).addBox(new H_),v=new hg;v.flags=1,p.addEntry(v);const g=u.addBox(new D_);g.addBox(new ag).addEntry(f);const _=g.addBox(new lg);_.sample_counts=[],_.sample_deltas=[];const x=g.addBox(new rg);x.first_chunk=[],x.samples_per_chunk=[],x.sample_description_index=[];const E=g.addBox(new sg);E.chunk_offsets=[];const I=g.addBox(new og);I.sample_sizes=[];const z=this.moov.mvex.addBox(new ld);return z.track_id=i.id,z.default_sample_description_index=i.default_sample_description_index||1,z.default_sample_duration=i.default_sample_duration||0,z.default_sample_size=i.default_sample_size||0,z.default_sample_flags=i.default_sample_flags||0,this.buildTrakSampleLists(s),i.id}addSample(e,i,{sample_description_index:s,duration:n=1,cts:a=0,dts:o=0,is_sync:l=!1,is_leading:c=0,depends_on:u=0,is_depended_on:d=0,has_redundancy:f=0,degradation_priority:p=0,subsamples:v,offset:g=0}={}){const _=this.getTrackById(e);if(_===void 0)return;const x=s?s-1:0,E={number:_.samples.length,track_id:_.tkhd.track_id,timescale:_.mdia.mdhd.timescale,description_index:x,description:_.mdia.minf.stbl.stsd.entries[x],data:i,size:i.byteLength,alreadyRead:i.byteLength,duration:n,cts:a,dts:o,is_sync:l,is_leading:c,depends_on:u,is_depended_on:d,has_redundancy:f,degradation_priority:p,offset:g,subsamples:v};_.samples.push(E),_.samples_size+=E.size,_.samples_duration+=E.duration,_.first_dts===void 0&&(_.first_dts=o),this.processSamples();const I=this.addBox(this.createMoof([E]));I.computeSize(),I.trafs[0].truns[0].data_offset=I.size+8;const z=this.addBox(new El);return z.data=new Uint8Array(i),E}createMoof(e){if(e.length===0)return;if(e.some(d=>d.track_id!==e[0].track_id))throw new Error("Cannot create moof for samples from different tracks: "+e.map(d=>d.track_id).join(", "));const i=e[0].track_id,s=this.getTrackById(i);if(!s)throw new Error("Cannot create moof for non-existing track: "+i);const n=new R_,a=n.addBox(new X_);a.sequence_number=++this.nextMoofNumber;const o=n.addBox(new L_),l=o.addBox(new ug);l.track_id=i,l.flags=kk;const c=o.addBox(new cg);c.baseMediaDecodeTime=e[0].dts-(s.first_dts||0);const u=o.addBox(new fg);u.flags=769|Bk|Ek,u.data_offset=0,u.first_sample_flags=0,u.sample_count=e.length;for(const d of e){let f=0;d.is_sync?f=1<<25:f=65536,u.sample_duration.push(d.duration),u.sample_size.push(d.size),u.sample_flags.push(f),u.sample_composition_time_offset.push(d.cts-d.dts)}return n}print(e){e.indent="";for(let i=0;i<this.boxes.length;i++)this.boxes[i]&&this.boxes[i].print(e)}};function A3(t=!1,e){return new P3(e,!t)}var I3=class extends X{constructor(...t){super(...t),this.box_name="EventMessageBox"}static{this.fourcc="emsg"}parse(t){this.parseFullHeader(t),this.version===1?(this.timescale=t.readUint32(),this.presentation_time=t.readUint64(),this.event_duration=t.readUint32(),this.id=t.readUint32(),this.scheme_id_uri=t.readCString(),this.value=t.readCString()):(this.scheme_id_uri=t.readCString(),this.value=t.readCString(),this.timescale=t.readUint32(),this.presentation_time_delta=t.readUint32(),this.event_duration=t.readUint32(),this.id=t.readUint32());let e=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version===1&&(e-=4),this.message_data=t.readUint8Array(e)}write(t){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(t),t.writeCString(this.scheme_id_uri),t.writeCString(this.value),t.writeUint32(this.timescale),t.writeUint32(this.presentation_time_delta),t.writeUint32(this.event_duration),t.writeUint32(this.id),t.writeUint8Array(this.message_data)}},M3=class extends X{constructor(...t){super(...t),this.box_name="CompressedSubsegmentIndexBox"}static{this.fourcc="ssix"}parse(t){this.parseFullHeader(t),this.subsegments=[];const e=t.readUint32();for(let i=0;i<e;i++){const s={};this.subsegments.push(s),s.ranges=[];const n=t.readUint32();for(let a=0;a<n;a++){const o={};s.ranges.push(o),o.level=t.readUint8(),o.range_size=t.readUint24()}}}},z3=class extends mt{constructor(...t){super(...t),this.box_name="SegmentTypeBox"}static{this.fourcc="styp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];let i=0;for(;e>=4;)this.compatible_brands[i]=t.readString(4),e-=4,i++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),t.writeUint32(this.minor_version);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},C3=A_({Descriptor:()=>Cr,ES_Descriptor:()=>gg,MPEG4DescriptorParser:()=>D3});const mg=3,Jl=4,Wd=5,vg=6;var Cr=class _g{constructor(e,i){this.tag=e,this.size=i,this.descs=[]}parse(e){this.data=e.readUint8Array(this.size)}findDescriptor(e){for(let i=0;i<this.descs.length;i++)if(this.descs[i].tag===e)return this.descs[i]}parseOneDescriptor(e){let i=0;const s=e.readUint8();let n=e.readUint8();for(;n&128;)i=(i<<7)+(n&127),n=e.readUint8();i=(i<<7)+(n&127),L.debug("Descriptor","Found "+(Pl[s]||"Descriptor "+s)+", size "+i+" at position "+e.getPosition());const a=Pl[s]?new N3[Pl[s]](i):new _g(i);return a.parse(e),a}parseRemainingDescriptors(e){const i=e.getPosition();for(;e.getPosition()<i+this.size;){const s=this.parseOneDescriptor?.(e);this.descs.push(s)}}},gg=class extends Cr{constructor(t){super(mg,t)}parse(t){if(this.ES_ID=t.readUint16(),this.flags=t.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=t.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){const e=t.readUint8();this.URL=t.readString(e),this.size-=e+1}else this.URL="";this.flags&32?(this.OCR_ES_ID=t.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(t)}getOTI(){const t=this.findDescriptor(Jl);return t?t.oti:0}getAudioConfig(){const t=this.findDescriptor(Jl);if(!t)return;const e=t.findDescriptor(Wd);if(e&&e.data){let i=(e.data[0]&248)>>3;return i===31&&e.data.length>=2&&(i=32+((e.data[0]&7)<<3)+((e.data[1]&224)>>5)),i}}},$3=class extends Cr{constructor(t){super(Jl,t)}parse(t){this.oti=t.readUint8(),this.streamType=t.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=t.readUint24(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32(),this.size-=13,this.parseRemainingDescriptors(t)}},O3=class extends Cr{constructor(t){super(Wd,t)}},F3=class extends Cr{constructor(t){super(vg,t)}};const N3={Descriptor:Cr,ES_Descriptor:gg,DecoderConfigDescriptor:$3,DecoderSpecificInfo:O3,SLConfigDescriptor:F3},Pl={[mg]:"ES_Descriptor",[Jl]:"DecoderConfigDescriptor",[Wd]:"DecoderSpecificInfo",[vg]:"SLConfigDescriptor"};var D3=class{constructor(){this.parseOneDescriptor=Cr.prototype.parseOneDescriptor}getDescriptorName(t){return Pl[t]}},R3=class extends mt{constructor(...t){super(...t),this.box_name="AV1LayeredImageIndexingProperty"}static{this.fourcc="a1lx"}parse(t){const e=((t.readUint8()&1)+1)*16;this.layer_size=[];for(let i=0;i<3;i++)e===16?this.layer_size[i]=t.readUint16():this.layer_size[i]=t.readUint32()}},L3=class extends mt{constructor(...t){super(...t),this.box_name="OperatingPointSelectorProperty"}static{this.fourcc="a1op"}parse(t){this.op_index=t.readUint8()}},H3=class extends X{constructor(...t){super(...t),this.box_name="AuxiliaryTypeProperty"}static{this.fourcc="auxC"}parse(t){this.parseFullHeader(t),this.aux_type=t.readCString();const e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}},V3=class extends mt{constructor(...t){super(...t),this.box_name="BitRateBox"}static{this.fourcc="btrt"}parse(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}},j3=class extends X{constructor(...t){super(...t),this.box_name="CodingConstraintsBox"}static{this.fourcc="ccst"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.all_ref_pics_intra=(e&128)===128,this.intra_pred_used=(e&64)===64,this.max_ref_per_pic=(e&63)>>2,t.readUint24()}},G3=class extends mt{constructor(...t){super(...t),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cdef"}parse(t){this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[];for(let e=0;e<this.channel_count;e++)this.channel_indexes.push(t.readUint16()),this.channel_types.push(t.readUint16()),this.channel_associations.push(t.readUint16())}},q3=class extends mt{constructor(...t){super(...t),this.box_name="CleanApertureBox"}static{this.fourcc="clap"}parse(t){this.cleanApertureWidthN=t.readUint32(),this.cleanApertureWidthD=t.readUint32(),this.cleanApertureHeightN=t.readUint32(),this.cleanApertureHeightD=t.readUint32(),this.horizOffN=t.readUint32(),this.horizOffD=t.readUint32(),this.vertOffN=t.readUint32(),this.vertOffD=t.readUint32()}},W3=class extends mt{constructor(...t){super(...t),this.box_name="ContentLightLevelBox"}static{this.fourcc="clli"}parse(t){this.max_content_light_level=t.readUint16(),this.max_pic_average_light_level=t.readUint16()}},Y3=class extends mt{constructor(...t){super(...t),this.box_name="CameraExtrinsicMatrixProperty"}static{this.fourcc="cmex"}parse(t){this.flags&1&&(this.pos_x=t.readInt32()),this.flags&2&&(this.pos_y=t.readInt32()),this.flags&4&&(this.pos_z=t.readInt32()),this.flags&8&&(this.version===0?this.flags&16?(this.quat_x=t.readInt32(),this.quat_y=t.readInt32(),this.quat_z=t.readInt32()):(this.quat_x=t.readInt16(),this.quat_y=t.readInt16(),this.quat_z=t.readInt16()):this.version),this.flags&32&&(this.id=t.readUint32())}},K3=class extends mt{constructor(...t){super(...t),this.box_name="CameraIntrinsicMatrixProperty"}static{this.fourcc="cmin"}parse(t){this.focal_length_x=t.readInt32(),this.principal_point_x=t.readInt32(),this.principal_point_y=t.readInt32(),this.flags&1&&(this.focal_length_y=t.readInt32(),this.skew_factor=t.readInt32())}},X3=class extends X{constructor(...t){super(...t),this.box_name="CompressionConfigurationBox"}static{this.fourcc="cmpC"}parse(t){this.parseFullHeader(t),this.compression_type=t.readString(4),this.compressed_unit_type=t.readUint8()}},J3=class extends mt{constructor(...t){super(...t),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cmpd"}parse(t){this.component_count=t.readUint32(),this.component_types=[],this.component_type_urls=[];for(let e=0;e<this.component_count;e++){const i=t.readUint16();this.component_types.push(i),i>=32768&&this.component_type_urls.push(t.readCString())}}},Z3=class extends X{constructor(...t){super(...t),this.box_name="ChunkLargeOffsetBox"}static{this.fourcc="co64"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.chunk_offsets=[],this.version===0)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint64())}write(t){this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length);for(let e=0;e<this.chunk_offsets.length;e++)t.writeUint64(this.chunk_offsets[e])}},Q3=class extends X{constructor(...t){super(...t),this.box_name="ContentLightLevelBox"}static{this.fourcc="CoLL"}parse(t){this.parseFullHeader(t),this.maxCLL=t.readUint16(),this.maxFALL=t.readUint16()}},t5=class{toString(){let t="centre_azimuth: ";return t+=this.centre_azimuth,t+=" (",t+=this.centre_azimuth*2**-16,t+="°), centre_elevation: ",t+=this.centre_elevation,t+=" (",t+=this.centre_elevation*2**-16,t+="°), centre_tilt: ",t+=this.centre_tilt,t+=" (",t+=this.centre_tilt*2**-16,t+="°)",this.range_included_flag&&(t+=", azimuth_range: ",t+=this.azimuth_range,t+=" (",t+=this.azimuth_range*2**-16,t+="°), elevation_range: ",t+=this.elevation_range,t+=" (",t+=this.elevation_range*2**-16,t+="°)"),this.interpolate_included_flag&&(t+=", interpolate: ",t+=this.interpolate),t}},e5=class{toString(){let t="";return this.view_idc&&(t+="view_idc: ",t+=this.view_idc,t+=", "),t+="sphere_region: {",t+=this.sphere_region,t+="}",t}},i5=class extends X{constructor(...t){super(...t),this.box_name="CoverageInformationBox"}static{this.fourcc="covi"}parse(t){this.parseFullHeader(t),this.coverage_shape_type=t.readUint8();const e=t.readUint8(),i=t.readInt8(),s=i&128;s&&(this.default_view_idc=(i&96)>>5),this.coverage_regions=new Array;for(let n=0;n<e;n++){const a=new e5;s&&(a.view_idc=t.readUint8()>>6),a.sphere_region=this.parseSphereRegion(t,!0,!0),this.coverage_regions.push(a)}}parseSphereRegion(t,e,i){const s=new t5;return s.centre_azimuth=t.readInt32(),s.centre_elevation=t.readInt32(),s.centre_tilt=t.readInt32(),s.range_included_flag=e,e&&(s.azimuth_range=t.readUint32(),s.elevation_range=t.readUint32()),s.interpolate_included_flag=i,i&&(s.interpolate=(t.readUint8()&128)===128),s}},s5=class extends X{constructor(...t){super(...t),this.box_name="CopyrightBox"}static{this.fourcc="cprt"}parse(t){this.parseFullHeader(t),this.parseLanguage(t),this.notice=t.readCString()}},n5=class extends X{constructor(...t){super(...t),this.box_name="CompatibleSchemeTypeBox"}static{this.fourcc="csch"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),this.flags&1&&(this.scheme_uri=t.readCString())}};const La=2147483647;var r5=class extends X{constructor(...t){super(...t),this.box_name="CompositionToDecodeBox"}static{this.fourcc="cslg"}parse(t){this.parseFullHeader(t),this.version===0?(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32()):this.version===1&&(this.compositionToDTSShift=t.readInt64(),this.leastDecodeToDisplayDelta=t.readInt64(),this.greatestDecodeToDisplayDelta=t.readInt64(),this.compositionStartTime=t.readInt64(),this.compositionEndTime=t.readInt64())}write(t){this.version=0,(this.compositionToDTSShift>La||this.leastDecodeToDisplayDelta>La||this.greatestDecodeToDisplayDelta>La||this.compositionStartTime>La||this.compositionEndTime>La)&&(this.version=1),this.flags=0,this.version===0?(this.size=20,this.writeHeader(t),t.writeInt32(this.compositionToDTSShift),t.writeInt32(this.leastDecodeToDisplayDelta),t.writeInt32(this.greatestDecodeToDisplayDelta),t.writeInt32(this.compositionStartTime),t.writeInt32(this.compositionEndTime)):this.version===1&&(this.size=40,this.writeHeader(t),t.writeInt64(this.compositionToDTSShift),t.writeInt64(this.leastDecodeToDisplayDelta),t.writeInt64(this.greatestDecodeToDisplayDelta),t.writeInt64(this.compositionStartTime),t.writeInt64(this.compositionEndTime))}},a5=class extends X{constructor(...t){super(...t),this.box_name="CompositionOffsetBox"}static{this.fourcc="ctts"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.sample_counts=[],this.sample_offsets=[],this.version===0)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());const s=t.readInt32();s<0&&L.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(s)}else if(this.version===1)for(let i=0;i<e;i++)this.sample_counts.push(t.readUint32()),this.sample_offsets.push(t.readInt32())}write(t){this.version=this.sample_offsets.some(e=>e<0)?1:0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),this.version===1?t.writeInt32(this.sample_offsets[e]):t.writeUint32(this.sample_offsets[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)t[e].pts=t[e].dts+this.sample_offsets[i],e++}},o5=class extends mt{constructor(...t){super(...t),this.box_name="AC3SpecificBox"}static{this.fourcc="dac3"}parse(t){const e=t.readUint8(),i=t.readUint8(),s=t.readUint8();this.fscod=e>>6,this.bsid=e>>1&31,this.bsmod=(e&1)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=i&3|s>>5&7}},l5=class extends mt{constructor(...t){super(...t),this.box_name="EC3SpecificBox"}static{this.fourcc="dec3"}parse(t){const e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=e&7,this.ind_subs=[];for(let i=0;i<this.num_ind_sub+1;i++){const s=t.readUint8(),n=t.readUint8(),a=t.readUint8(),o={fscod:s>>6,bsid:s>>1&31,bsmod:(s&1)<<4|n>>4&15,acmod:n>>1&7,lfeon:n&1,num_dep_sub:a>>1&15};this.ind_subs.push(o),o.num_dep_sub>0&&(o.chan_loc=(a&1)<<8|t.readUint8())}}},c5=class extends X{constructor(...t){super(...t),this.box_name="FLACSpecificBox"}static{this.fourcc="dfLa"}parse(t){this.parseFullHeader(t);const e=127,i=128,s=[],n=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];let a;do{a=t.readUint8();const o=Math.min(a&e,n.length-1);o?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),s.push(n[o])}while(a&i);this.numMetadataBlocks=s.length+" ("+s.join(", ")+")"}},u5=class extends mt{constructor(...t){super(...t),this.box_name="hintimmediateBytesSent"}static{this.fourcc="dimm"}parse(t){this.bytessent=t.readUint64()}},d5=class extends mt{constructor(...t){super(...t),this.box_name="hintlongestpacket"}static{this.fourcc="dmax"}parse(t){this.time=t.readUint32()}},f5=class extends mt{constructor(...t){super(...t),this.box_name="hintmediaBytesSent"}static{this.fourcc="dmed"}parse(t){this.bytessent=t.readUint64()}},h5=class extends mt{constructor(...t){super(...t),this.box_name="OpusSpecificBox"}static{this.fourcc="dOps"}parse(t){if(this.Version=t.readUint8(),this.OutputChannelCount=t.readUint8(),this.PreSkip=t.readUint16(),this.InputSampleRate=t.readUint32(),this.OutputGain=t.readInt16(),this.ChannelMappingFamily=t.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(let e=0;e<this.OutputChannelCount;e++)this.ChannelMapping[e]=t.readUint8()}}write(t){if(this.size=11,this.ChannelMappingFamily!==0&&(this.size+=2+this.OutputChannelCount),this.writeHeader(t),t.writeUint8(this.Version),t.writeUint8(this.OutputChannelCount),t.writeUint16(this.PreSkip),t.writeUint32(this.InputSampleRate),t.writeInt16(this.OutputGain),t.writeUint8(this.ChannelMappingFamily),this.ChannelMappingFamily!==0){t.writeUint8(this.StreamCount),t.writeUint8(this.CoupledCount);for(let e=0;e<this.OutputChannelCount;e++)t.writeUint8(this.ChannelMapping[e])}}},p5=class extends mt{constructor(...t){super(...t),this.box_name="hintrepeatedBytesSent"}static{this.fourcc="drep"}parse(t){this.bytessent=t.readUint64()}},m5=class extends X{constructor(...t){super(...t),this.box_name="EditListBox"}static{this.fourcc="elst"}parse(t){this.parseFullHeader(t),this.entries=[];const e=t.readUint32();for(let i=0;i<e;i++){const s={segment_duration:this.version===1?t.readUint64():t.readUint32(),media_time:this.version===1?t.readInt64():t.readInt32(),media_rate_integer:t.readInt16(),media_rate_fraction:t.readInt16()};this.entries.push(s)}}write(t){const e=this.entries.some(i=>i.segment_duration>bi||i.media_time>bi)||this.version===1;this.version=e?1:0,this.size=4+12*this.entries.length,this.size+=e?8*this.entries.length:0,this.writeHeader(t),t.writeUint32(this.entries.length);for(let i=0;i<this.entries.length;i++){const s=this.entries[i];e?(t.writeUint64(s.segment_duration),t.writeInt64(s.media_time)):(t.writeUint32(s.segment_duration),t.writeInt32(s.media_time)),t.writeInt16(s.media_rate_integer),t.writeInt16(s.media_rate_fraction)}}},Ai=class extends X{parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){const i=t.readUint32();this.entity_ids.push(i)}}},v5=class extends Ai{constructor(...t){super(...t),this.box_name="Auto exposure bracketing"}static{this.fourcc="aebr"}},_5=class extends Ai{constructor(...t){super(...t),this.box_name="Flash exposure information"}static{this.fourcc="afbr"}},g5=class extends Ai{constructor(...t){super(...t),this.box_name="Album collection"}static{this.fourcc="albc"}},y5=class extends Ai{constructor(...t){super(...t),this.box_name="Alternative entity"}static{this.fourcc="altr"}},b5=class extends Ai{constructor(...t){super(...t),this.box_name="Burst image"}static{this.fourcc="brst"}},x5=class extends Ai{constructor(...t){super(...t),this.box_name="Depth of field bracketing"}static{this.fourcc="dobr"}},w5=class extends Ai{constructor(...t){super(...t),this.box_name="Equivalent entity"}static{this.fourcc="eqiv"}},S5=class extends Ai{constructor(...t){super(...t),this.box_name="Favorites collection"}static{this.fourcc="favc"}},k5=class extends Ai{constructor(...t){super(...t),this.box_name="Focus bracketing"}static{this.fourcc="fobr"}},B5=class extends Ai{constructor(...t){super(...t),this.box_name="Image item with an audio track"}static{this.fourcc="iaug"}},E5=class extends Ai{constructor(...t){super(...t),this.box_name="Panorama"}static{this.fourcc="pano"}},U5=class extends Ai{constructor(...t){super(...t),this.box_name="Slideshow"}static{this.fourcc="slid"}},T5=class extends Ai{constructor(...t){super(...t),this.box_name="Stereo"}static{this.fourcc="ster"}},P5=class extends Ai{constructor(...t){super(...t),this.box_name="Time-synchronized capture"}static{this.fourcc="tsyn"}},A5=class extends Ai{constructor(...t){super(...t),this.box_name="White balance bracketing"}static{this.fourcc="wbbr"}},I5=class extends Ai{constructor(...t){super(...t),this.box_name="Progressive rendering"}static{this.fourcc="prgr"}},M5=class extends Ai{constructor(...t){super(...t),this.box_name="Image pyramid"}static{this.fourcc="pymd"}parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){const i=t.readUint32();this.entity_ids.push(i)}this.tile_size_x=t.readUint16(),this.tile_size_y=t.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[];for(let e=0;e<this.num_entities_in_group;e++)this.layer_binning[e]=t.readUint16(),this.tiles_in_layer_row_minus1[e]=t.readUint16(),this.tiles_in_layer_column_minus1[e]=t.readUint16()}},z5=class extends mt{constructor(...t){super(...t),this.box_name="FieldHandlingBox"}static{this.fourcc="fiel"}parse(t){this.fieldCount=t.readUint8(),this.fieldOrdering=t.readUint8()}},C5=class extends mt{constructor(...t){super(...t),this.box_name="OriginalFormatBox"}static{this.fourcc="frma"}parse(t){this.data_format=t.readString(4)}},$5=class extends mt{constructor(...t){super(...t),this.box_name="ImageMirror"}static{this.fourcc="imir"}parse(t){const e=t.readUint8();this.reserved=e>>7,this.axis=e&1}},O5=class extends X{constructor(...t){super(...t),this.box_name="ItemPropertyAssociationBox"}static{this.fourcc="ipma"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.associations=[];for(let i=0;i<e;i++){const s=this.version<1?t.readUint16():t.readUint32(),n=[],a=t.readUint8();for(let o=0;o<a;o++){const l=t.readUint8();n.push({essential:(l&128)>>7===1,property_index:this.flags&1?(l&127)<<8|t.readUint8():l&127})}this.associations.push({id:s,props:n})}}},F5=class extends mt{constructor(...t){super(...t),this.box_name="ImageRotation"}static{this.fourcc="irot"}parse(t){this.angle=t.readUint8()&3}},N5=class extends X{constructor(...t){super(...t),this.box_name="ImageSpatialExtentsProperty"}static{this.fourcc="ispe"}parse(t){this.parseFullHeader(t),this.image_width=t.readUint32(),this.image_height=t.readUint32()}},D5=class extends X{constructor(...t){super(...t),this.box_name="TAITimestampBox"}static{this.fourcc="itai"}parse(t){this.TAI_timestamp=t.readUint64();const e=t.readUint8();this.sychronization_state=e>>7&1,this.timestamp_generation_failure=e>>6&1,this.timestamp_is_modified=e>>5&1}},R5=class extends X{constructor(...t){super(...t),this.box_name="KindBox"}static{this.fourcc="kind"}parse(t){this.parseFullHeader(t),this.schemeURI=t.readCString(),this.isEndOfBox(t)||(this.value=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value?this.value.length+1:0),this.writeHeader(t),t.writeCString(this.schemeURI),this.value&&t.writeCString(this.value)}},L5=class extends X{constructor(...t){super(...t),this.box_name="LevelAssignmentBox"}static{this.fourcc="leva"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.levels=[];for(let i=0;i<e;i++){const s={};this.levels[i]=s,s.track_ID=t.readUint32();const n=t.readUint8();switch(s.padding_flag=n>>7,s.assignment_type=n&127,s.assignment_type){case 0:s.grouping_type=t.readString(4);break;case 1:s.grouping_type=t.readString(4),s.grouping_type_parameter=t.readUint32();break;case 2:break;case 3:break;case 4:s.sub_track_id=t.readUint32();break;default:L.warn("BoxParser",`Unknown level assignment type: ${s.assignment_type}`)}}}},H5=class extends mt{constructor(...t){super(...t),this.box_name="LHEVCConfigurationBox"}static{this.fourcc="lhvC"}parse(t){this.configurationVersion=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3;let e=t.readUint8();this.numTemporalLayers=(e&13)>>3,this.temporalIdNested=(e&4)>>2,this.lengthSizeMinusOne=e&3,this.nalu_arrays=[];const i=t.readUint8();for(let s=0;s<i;s++){const n=[];this.nalu_arrays.push(n),e=t.readUint8(),n.completeness=(e&128)>>7,n.nalu_type=e&63;const a=t.readUint16();for(let o=0;o<a;o++){const l=t.readUint16();n.push({data:t.readUint8Array(l)})}}}},V5=class extends mt{constructor(...t){super(...t),this.box_name="LayerSelectorProperty"}static{this.fourcc="lsel"}parse(t){this.layer_id=t.readUint16()}},j5=class extends mt{constructor(...t){super(...t),this.box_name="hintmaxrate"}static{this.fourcc="maxr"}parse(t){this.period=t.readUint32(),this.bytes=t.readUint32()}},ul=class{constructor(t,e){this.x=t,this.y=e}toString(){return"("+this.x+","+this.y+")"}},G5=class extends mt{constructor(...t){super(...t),this.box_name="MasteringDisplayColourVolumeBox"}static{this.fourcc="mdcv"}parse(t){this.display_primaries=[],this.display_primaries[0]=new ul(t.readUint16(),t.readUint16()),this.display_primaries[1]=new ul(t.readUint16(),t.readUint16()),this.display_primaries[2]=new ul(t.readUint16(),t.readUint16()),this.white_point=new ul(t.readUint16(),t.readUint16()),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}},q5=class extends X{constructor(...t){super(...t),this.box_name="MovieFragmentRandomAccessOffsetBox"}static{this.fourcc="mfro"}parse(t){this.parseFullHeader(t),this._size=t.readUint32()}},W5=class extends X{constructor(...t){super(...t),this.box_name="MaskConfigurationProperty"}static{this.fourcc="mskC"}parse(t){this.parseFullHeader(t),this.bits_per_pixel=t.readUint8()}},Y5=class extends mt{constructor(...t){super(...t),this.box_name="hintPacketsSent"}static{this.fourcc="npck"}parse(t){this.packetssent=t.readUint32()}},K5=class extends mt{constructor(...t){super(...t),this.box_name="hintPacketsSent"}static{this.fourcc="nump"}parse(t){this.packetssent=t.readUint64()}},X5=class{constructor(t,e){this.pad1=t,this.pad2=e}},J5=class extends X{constructor(...t){super(...t),this.box_name="PaddingBitsBox"}static{this.fourcc="padb"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.padbits=[];for(let i=0;i<Math.floor((e+1)/2);i++){const s=t.readUint8(),n=(s&112)>>4,a=s&7;this.padbits.push(new X5(n,a))}}},Z5=class extends mt{constructor(...t){super(...t),this.box_name="PixelAspectRatioBox"}static{this.fourcc="pasp"}parse(t){this.hSpacing=t.readUint32(),this.vSpacing=t.readUint32()}},Q5=class extends mt{constructor(...t){super(...t),this.box_name="CuePayloadBox"}static{this.fourcc="payl"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},tB=class extends mt{constructor(...t){super(...t),this.box_name="hintpayloadID"}static{this.fourcc="payt"}parse(t){this.payloadID=t.readUint32();const e=t.readUint8();this.rtpmap_string=t.readString(e)}},eB=class extends X{constructor(...t){super(...t),this.box_name="ProgressiveDownloadInfoBox",this.rate=[],this.initial_delay=[]}static{this.fourcc="pdin"}parse(t){this.parseFullHeader(t);const e=(this.size-this.hdr_size)/8;for(let i=0;i<e;i++)this.rate[i]=t.readUint32(),this.initial_delay[i]=t.readUint32()}},iB=class extends X{constructor(...t){super(...t),this.box_name="PixelInformationProperty"}static{this.fourcc="pixi"}parse(t){this.parseFullHeader(t),this.num_channels=t.readUint8(),this.bits_per_channels=[];for(let e=0;e<this.num_channels;e++)this.bits_per_channels[e]=t.readUint8()}},sB=class extends mt{constructor(...t){super(...t),this.box_name="hintlargestpacket"}static{this.fourcc="pmax"}parse(t){this.bytes=t.readUint32()}},nB=class extends X{constructor(...t){super(...t),this.box_name="ProgressiveDerivedImageItemInformationProperty"}static{this.fourcc="prdi"}parse(t){if(this.parseFullHeader(t),this.step_count=t.readUint16(),this.item_count=[],this.flags&2)for(let e=0;e<this.step_count;e++)this.item_count[e]=t.readUint16()}},rB=class extends X{constructor(...t){super(...t),this.box_name="ProjectionFormatBox"}static{this.fourcc="prfr"}parse(t){this.parseFullHeader(t),this.projection_type=t.readUint8()&31}},aB=class extends X{constructor(...t){super(...t),this.box_name="ProducerReferenceTimeBox"}static{this.fourcc="prft"}parse(t){this.parseFullHeader(t),this.ref_track_id=t.readUint32(),this.ntp_timestamp=t.readUint64(),this.version===0?this.media_time=t.readUint32():this.media_time=t.readUint64()}},oB=class extends X{constructor(...t){super(...t),this.box_name="ProtectionSystemSpecificHeaderBox"}static{this.fourcc="pssh"}parse(t){if(this.parseFullHeader(t),this.system_id=Ar(t),this.kid=[],this.version>0){const i=t.readUint32();for(let s=0;s<i;s++)this.kid[s]=Ar(t)}const e=t.readUint32();e>0&&(this.protection_data=t.readUint8Array(e))}},lB=class extends X{constructor(...t){super(...t),this.box_name="TrackCleanApertureDimensionsBox"}static{this.fourcc="clef"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}};function cB(t,e){if(t===Xa.Types.UTF8)return new TextDecoder("utf-8").decode(e);const i=new DataView(e.buffer);if(t===Xa.Types.BE_UNSIGNED_INT){if(e.length===1)return i.getUint8(0);if(e.length===2)return i.getUint16(0,!1);if(e.length===4)return i.getUint32(0,!1);if(e.length===8)return i.getBigUint64(0,!1);throw new Error("Unsupported ITIF_TYPE_BE_UNSIGNED_INT length "+e.length)}else if(t===Xa.Types.BE_SIGNED_INT){if(e.length===1)return i.getInt8(0);if(e.length===2)return i.getInt16(0,!1);if(e.length===4)return i.getInt32(0,!1);if(e.length===8)return i.getBigInt64(0,!1);throw new Error("Unsupported ITIF_TYPE_BE_SIGNED_INT length "+e.length)}else if(t===Xa.Types.BE_FLOAT32)return i.getFloat32(0,!1);L.warn("DataBox","Unsupported or unimplemented itif data type: "+t)}var Xa=class extends mt{constructor(...t){super(...t),this.box_name="DataBox"}static{this.fourcc="data"}static{this.Types={RESERVED:0,UTF8:1,UTF16:2,SJIS:3,UTF8_SORT:4,UTF16_SORT:5,JPEG:13,PNG:14,BE_SIGNED_INT:21,BE_UNSIGNED_INT:22,BE_FLOAT32:23,BE_FLOAT64:24,BMP:27,QT_ATOM:28,BE_SIGNED_INT8:65,BE_SIGNED_INT16:66,BE_SIGNED_INT32:67,BE_FLOAT32_POINT:70,BE_FLOAT32_DIMENSIONS:71,BE_FLOAT32_RECT:72,BE_SIGNED_INT64:74,BE_UNSIGNED_INT8:75,BE_UNSIGNED_INT16:76,BE_UNSIGNED_INT32:77,BE_UNSIGNED_INT64:78,BE_FLOAT64_AFFINE_TRANSFORM:79}}parse(t){this.valueType=t.readUint32(),this.country=t.readUint16(),this.country>255&&(t.seek(t.getPosition()-2),this.countryString=t.readString(2)),this.language=t.readUint16(),this.language>255&&(t.seek(t.getPosition()-2),this.parseLanguage(t)),this.raw=t.readUint8Array(this.size-this.hdr_size-8),this.value=cB(this.valueType,this.raw)}},uB=class extends X{constructor(...t){super(...t),this.box_name="TrackEncodedPixelsDimensionsBox"}static{this.fourcc="enof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},dB=class extends mt{constructor(...t){super(...t),this.box_name="IlstBox"}static{this.fourcc="ilst"}parse(t){this.list={};let e=this.size-this.hdr_size;for(;e>0;){const i=t.readUint32(),s=t.readUint32(),n=hn(t,!1,i-8);n.code===1&&(this.list[s]=n.box),e-=i}}},fB=class extends X{constructor(...t){super(...t),this.box_name="KeysBox"}static{this.fourcc="keys"}parse(t){this.parseFullHeader(t),this.count=t.readUint32(),this.keys={};for(let e=0;e<this.count;e++){const i=t.readUint32();this.keys[e+1]=t.readString(i-4)}}},hB=class extends X{constructor(...t){super(...t),this.box_name="TrackProductionApertureDimensionsBox"}static{this.fourcc="prof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},pB=class extends ke{constructor(...t){super(...t),this.box_name="TrackApertureModeDimensionsBox",this.clefs=[],this.profs=[],this.enofs=[],this.subBoxNames=["clef","prof","enof"]}static{this.fourcc="tapt"}},mB=class extends mt{constructor(...t){super(...t),this.box_name="rtpmoviehintinformation"}static{this.fourcc="rtp "}parse(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}},vB=class extends X{constructor(...t){super(...t),this.box_name="SampleAuxiliaryInformationOffsetsBox"}static{this.fourcc="saio"}parse(t){this.parseFullHeader(t),this.flags&1&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32()),this.entry_count=t.readUint32(),this.offset=[];for(let e=0;e<this.entry_count;e++)this.version===0?this.offset[e]=t.readUint32():this.offset[e]=t.readUint64()}},_B=class extends X{constructor(...t){super(...t),this.box_name="SampleAuxiliaryInformationSizesBox"}static{this.fourcc="saiz"}parse(t){if(this.parseFullHeader(t),this.flags&1&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32()),this.default_sample_info_size=t.readUint8(),this.sample_count=t.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(let e=0;e<this.sample_count;e++)this.sample_info_size[e]=t.readUint8()}},gB=class{constructor(t,e){this.bad_pixel_row=t,this.bad_pixel_column=e}toString(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"}},yB=class extends X{constructor(...t){super(...t),this.box_name="SensorBadPixelsMapBox"}static{this.fourcc="sbpm"}parse(t){this.parseFullHeader(t),this.component_count=t.readUint16(),this.component_index=[];for(let i=0;i<this.component_count;i++)this.component_index.push(t.readUint16());const e=t.readUint8();this.correction_applied=(e&128)===128,this.num_bad_rows=t.readUint32(),this.num_bad_cols=t.readUint32(),this.num_bad_pixels=t.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[];for(let i=0;i<this.num_bad_rows;i++)this.bad_rows.push(t.readUint32());for(let i=0;i<this.num_bad_cols;i++)this.bad_columns.push(t.readUint32());for(let i=0;i<this.num_bad_pixels;i++){const s=t.readUint32(),n=t.readUint32();this.bad_pixels.push(new gB(s,n))}}},bB=class extends X{constructor(...t){super(...t),this.box_name="SchemeTypeBox"}static{this.fourcc="schm"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),this.flags&1&&(this.scheme_uri=t.readString(this.size-this.hdr_size-8))}},xB=class extends mt{constructor(...t){super(...t),this.box_name="rtptracksdphintinformation"}static{this.fourcc="sdp "}parse(t){this.sdptext=t.readString(this.size-this.hdr_size)}},wB=class extends X{constructor(...t){super(...t),this.box_name="SampleEncryptionBox"}static{this.fourcc="senc"}},SB=class extends X{constructor(...t){super(...t),this.box_name="SMPTE2086MasteringDisplayMetadataBox"}static{this.fourcc="SmDm"}parse(t){this.parseFullHeader(t),this.primaryRChromaticity_x=t.readUint16(),this.primaryRChromaticity_y=t.readUint16(),this.primaryGChromaticity_x=t.readUint16(),this.primaryGChromaticity_y=t.readUint16(),this.primaryBChromaticity_x=t.readUint16(),this.primaryBChromaticity_y=t.readUint16(),this.whitePointChromaticity_x=t.readUint16(),this.whitePointChromaticity_y=t.readUint16(),this.luminanceMax=t.readUint32(),this.luminanceMin=t.readUint32()}},kB=class extends X{constructor(...t){super(...t),this.box_name="SamplingRateBox"}static{this.fourcc="srat"}parse(t){this.parseFullHeader(t),this.sampling_rate=t.readUint32()}},BB=class extends X{constructor(...t){super(...t),this.box_name="DegradationPriorityBox"}static{this.fourcc="stdp"}parse(t){this.parseFullHeader(t);const e=(this.size-this.hdr_size)/2;this.priority=[];for(let i=0;i<e;i++)this.priority[i]=t.readUint16()}},EB=class extends X{constructor(...t){super(...t),this.box_name="SubTrackInformationBox"}static{this.fourcc="stri"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint16(),this.alternate_group=t.readUint16(),this.sub_track_id=t.readUint32();const e=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},UB=class extends X{constructor(...t){super(...t),this.box_name="SubTrackSampleGroupBox"}static{this.fourcc="stsg"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readUint32();const e=t.readUint16();this.group_description_index=[];for(let i=0;i<e;i++)this.group_description_index[i]=t.readUint32()}},TB=class extends X{constructor(...t){super(...t),this.box_name="ShadowSyncSampleBox"}static{this.fourcc="stsh"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(let i=0;i<e;i++)this.shadowed_sample_numbers.push(t.readUint32()),this.sync_sample_numbers.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(t),t.writeUint32(this.shadowed_sample_numbers.length);for(let e=0;e<this.shadowed_sample_numbers.length;e++)t.writeUint32(this.shadowed_sample_numbers[e]),t.writeUint32(this.sync_sample_numbers[e])}},PB=class extends X{constructor(...t){super(...t),this.box_name="SyncSampleBox"}static{this.fourcc="stss"}parse(t){this.parseFullHeader(t);const e=t.readUint32();if(this.version===0){this.sample_numbers=[];for(let i=0;i<e;i++)this.sample_numbers.push(t.readUint32())}}write(t){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(t),t.writeUint32(this.sample_numbers.length),t.writeUint32Array(this.sample_numbers)}},AB=class extends X{constructor(...t){super(...t),this.box_name="StereoVideoBox"}static{this.fourcc="stvi"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.single_view_allowed=e&3,this.stereo_scheme=t.readUint32();const i=t.readUint32();for(this.stereo_indication_type=t.readString(i),this.boxes=[];t.getPosition()<this.start+this.size;){const s=hn(t,!1,this.size-(t.getPosition()-this.start));if(s.code===1){const n=s.box;this.boxes.push(n),this[n.type]=n}else return}}},IB=class extends X{constructor(...t){super(...t),this.box_name="CompactSampleSizeBox"}static{this.fourcc="stz2"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],this.version===0){this.reserved=t.readUint24(),this.field_size=t.readUint8();const e=t.readUint32();if(this.field_size===4)for(let i=0;i<e;i+=2){const s=t.readUint8();this.sample_sizes[i]=s>>4&15,this.sample_sizes[i+1]=s&15}else if(this.field_size===8)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint8();else if(this.field_size===16)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint16();else L.error("BoxParser","Error in length field in stz2 box",t.isofile)}}},MB=class extends X{constructor(...t){super(...t),this.box_name="SubSampleInformationBox"}static{this.fourcc="subs"}parse(t){this.parseFullHeader(t);const e=t.readUint32();this.entries=[];let i;for(let s=0;s<e;s++){const n={};if(this.entries[s]=n,n.sample_delta=t.readUint32(),n.subsamples=[],i=t.readUint16(),i>0)for(let a=0;a<i;a++){const o={};n.subsamples.push(o),this.version===1?o.size=t.readUint32():o.size=t.readUint16(),o.priority=t.readUint8(),o.discardable=t.readUint8(),o.codec_specific_parameters=t.readUint32()}}}},zB=class extends X{constructor(...t){super(...t),this.box_name="TAIClockInfoBox"}static{this.fourcc="taic"}parse(t){this.time_uncertainty=t.readUint64(),this.clock_resolution=t.readUint32(),this.clock_drift_rate=t.readInt32();const e=t.readUint8();this.clock_type=(e&192)>>6}},CB=class extends X{constructor(...t){super(...t),this.box_name="TrackEncryptionBox"}static{this.fourcc="tenc"}parse(t){if(this.parseFullHeader(t),t.readUint8(),this.version===0)t.readUint8();else{const e=t.readUint8();this.default_crypt_byte_block=e>>4&15,this.default_skip_byte_block=e&15}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=Ar(t),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}},$B=class{},OB=class extends X{constructor(...t){super(...t),this.box_name="TrackFragmentRandomAccessBox"}static{this.fourcc="tfra"}parse(t){this.parseFullHeader(t),this.track_ID=t.readUint32(),t.readUint24();const e=t.readUint8();this.length_size_of_traf_num=e>>4&3,this.length_size_of_trun_num=e>>2&3,this.length_size_of_sample_num=e&3,this.entries=[];const i=t.readUint32();for(let s=0;s<i;s++){const n=new $B;this.version===1?(n.time=t.readUint64(),n.moof_offset=t.readUint64()):(n.time=t.readUint32(),n.moof_offset=t.readUint32()),n.traf_number=t["readUint"+8*(this.length_size_of_traf_num+1)](),n.trun_number=t["readUint"+8*(this.length_size_of_trun_num+1)](),n.sample_delta=t["readUint"+8*(this.length_size_of_sample_num+1)](),this.entries.push(n)}}},FB=class extends mt{constructor(...t){super(...t),this.box_name="hintmaxrelativetime"}static{this.fourcc="tmax"}parse(t){this.time=t.readUint32()}},NB=class extends mt{constructor(...t){super(...t),this.box_name="hintminrelativetime"}static{this.fourcc="tmin"}parse(t){this.time=t.readUint32()}},DB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="totl"}parse(t){this.bytessent=t.readUint32()}},RB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="tpay"}parse(t){this.bytessent=t.readUint32()}},LB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="tpyl"}parse(t){this.bytessent=t.readUint64()}},HB=class extends Tk{static{this.fourcc="msrc"}},VB=class yg extends mt{constructor(...e){super(...e),this.box_name="TrackReferenceBox",this.references=[]}static{this.fourcc="tref"}static{this.allowed_types=["hint","cdsc","font","hind","vdep","vplx","subt","thmb","auxl","cdtg","shsc","aest"]}parse(e){for(;e.getPosition()<this.start+this.size;){const i=hn(e,!0,this.size-(e.getPosition()-this.start));if(i.code===1){yg.allowed_types.includes(i.type)||L.warn("BoxParser",`Unknown track reference type: '${i.type}'`);const s=new Ik(i.type,i.size,i.hdr_size,i.start);s.write===mt.prototype.write&&s.type!=="mdat"&&(L.info("BoxParser","TrackReference "+s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(e)),s.parse(e),this.references.push(s)}else return}}},jB=class extends X{constructor(...t){super(...t),this.box_name="TrackExtensionPropertiesBox"}static{this.fourcc="trep"}parse(t){for(this.parseFullHeader(t),this.track_ID=t.readUint32(),this.boxes=[];t.getPosition()<this.start+this.size;){const e=hn(t,!1,this.size-(t.getPosition()-this.start));if(e.code===1){const i=e.box;this.boxes.push(i)}else return}}},GB=class extends mt{constructor(...t){super(...t),this.box_name="hintBytesSent"}static{this.fourcc="trpy"}parse(t){this.bytessent=t.readUint64()}},qB=class extends X{constructor(...t){super(...t),this.box_name="TrackSelectionBox"}static{this.fourcc="tsel"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint32();const e=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},WB=class extends X{constructor(...t){super(...t),this.box_name="TextConfigBox"}static{this.fourcc="txtc"}parse(t){this.parseFullHeader(t),this.config=t.readCString()}},YB=class extends mt{constructor(...t){super(...t),this.box_name="TypeCombinationBox"}static{this.fourcc="tyco"}parse(t){const e=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(let i=0;i<e;i++)this.compatible_brands[i]=t.readString(4)}},KB=class extends X{constructor(...t){super(...t),this.box_name="UserDescriptionProperty"}static{this.fourcc="udes"}parse(t){this.parseFullHeader(t),this.lang=t.readCString(),this.name=t.readCString(),this.description=t.readCString(),this.tags=t.readCString()}},XB=class extends X{constructor(...t){super(...t),this.box_name="UncompressedFrameConfigBox"}static{this.fourcc="uncC"}parse(t){if(this.parseFullHeader(t),this.profile=t.readString(4),this.version!==1){if(this.version===0){this.component_count=t.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[];for(let i=0;i<this.component_count;i++)this.component_index.push(t.readUint16()),this.component_bit_depth_minus_one.push(t.readUint8()),this.component_format.push(t.readUint8()),this.component_align_size.push(t.readUint8());this.sampling_type=t.readUint8(),this.interleave_type=t.readUint8(),this.block_size=t.readUint8();const e=t.readUint8();this.component_little_endian=e>>7&1,this.block_pad_lsb=e>>6&1,this.block_little_endian=e>>5&1,this.block_reversed=e>>4&1,this.pad_unknown=e>>3&1,this.pixel_size=t.readUint32(),this.row_align_size=t.readUint32(),this.tile_align_size=t.readUint32(),this.num_tile_cols_minus_one=t.readUint32(),this.num_tile_rows_minus_one=t.readUint32()}}}},JB=class extends X{constructor(...t){super(...t),this.box_name="DataEntryUrnBox"}static{this.fourcc="urn "}parse(t){this.parseFullHeader(t),this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(t),t.writeCString(this.name),this.location&&t.writeCString(this.location)}},ZB=class extends mt{constructor(...t){super(...t),this.box_name="WebVTTConfigurationBox"}static{this.fourcc="vttC"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},QB=class extends X{constructor(...t){super(...t),this.box_name="VvcNALUConfigBox"}static{this.fourcc="vvnC"}parse(t){this.parseFullHeader(t);const e=t.readUint8();this.lengthSizeMinusOne=e&3}},tE=class extends vi{static{this.grouping_type="alst"}parse(t){const e=t.readUint16();this.first_output_sample=t.readUint16(),this.sample_offset=[];for(let s=0;s<e;s++)this.sample_offset[s]=t.readUint32();const i=this.description_length-4-4*e;this.num_output_samples=[],this.num_total_samples=[];for(let s=0;s<i/4;s++)this.num_output_samples[s]=t.readUint16(),this.num_total_samples[s]=t.readUint16()}},eE=class extends vi{static{this.grouping_type="avll"}parse(t){this.layerNumber=t.readUint8(),this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()}},iE=class extends vi{static{this.grouping_type="avss"}parse(t){this.subSequenceIdentifier=t.readUint16(),this.layerNumber=t.readUint8();const e=t.readUint8();this.durationFlag=e>>7,this.avgRateFlag=e>>6&1,this.durationFlag&&(this.duration=t.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()),this.dependency=[];const i=t.readUint8();for(let s=0;s<i;s++)this.dependency.push({subSeqDirectionFlag:t.readUint8(),layerNumber:t.readUint8(),subSequenceIdentifier:t.readUint16()})}},sE=class extends vi{static{this.grouping_type="dtrt"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},nE=class extends vi{static{this.grouping_type="mvif"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rE=class extends vi{static{this.grouping_type="prol"}parse(t){this.roll_distance=t.readInt16()}},aE=class extends vi{static{this.grouping_type="rap "}parse(t){const e=t.readUint8();this.num_leading_samples_known=e>>7,this.num_leading_samples=e&127}},oE=class extends vi{static{this.grouping_type="rash"}parse(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)L.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(let e=0;e<this.operation_point_count;e++)this.available_bitrate[e]=t.readUint32(),this.target_rate_share[e]=t.readUint16()}this.maximum_bitrate=t.readUint32(),this.minimum_bitrate=t.readUint32(),this.discard_priority=t.readUint8()}}},lE=class extends vi{static{this.grouping_type="roll"}parse(t){this.roll_distance=t.readInt16()}},cE=class extends vi{static{this.grouping_type="scif"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},uE=class extends vi{static{this.grouping_type="scnm"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},dE=class extends vi{static{this.grouping_type="seig"}parse(t){this.reserved=t.readUint8();const e=t.readUint8();this.crypt_byte_block=e>>4,this.skip_byte_block=e&15,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=Ar(t),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}},fE=class extends vi{static{this.grouping_type="stsa"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},hE=class extends vi{static{this.grouping_type="sync"}parse(t){const e=t.readUint8();this.NAL_unit_type=e&63}},pE=class extends vi{static{this.grouping_type="tele"}parse(t){const e=t.readUint8();this.level_independently_decodable=e>>7}},mE=class extends vi{static{this.grouping_type="tsas"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},vE=class extends vi{static{this.grouping_type="tscl"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},_E=class extends vi{static{this.grouping_type="vipr"}parse(t){L.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},bg=class extends mt{static{this.fourcc="uuid"}},ba=class extends X{static{this.fourcc="uuid"}},gE=class extends ba{constructor(...t){super(...t),this.box_name="LiveServerManifestBox"}static{this.uuid="a5d40b30e81411ddba2f0800200c9a66"}parse(t){this.parseFullHeader(t),this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}},yE=class extends ba{constructor(...t){super(...t),this.box_name="PiffProtectionSystemSpecificHeaderBox"}static{this.uuid="d08a4f1810f34a82b6c832d8aba183d3"}parse(t){this.parseFullHeader(t),this.system_id=Ar(t);const e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}},bE=class extends ba{constructor(...t){super(...t),this.box_name="PiffSampleEncryptionBox"}static{this.uuid="a2394f525a9b4f14a2446c427c648df4"}},xE=class extends ba{constructor(...t){super(...t),this.box_name="PiffTrackEncryptionBox"}static{this.uuid="8974dbce7be74c5184f97148f9882554"}parse(t){this.parseFullHeader(t),this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=Ar(t)}},wE=class extends ba{constructor(...t){super(...t),this.box_name="TfrfBox"}static{this.uuid="d4807ef2ca3946958e5426cb9e46a79f"}parse(t){this.parseFullHeader(t),this.fragment_count=t.readUint8(),this.entries=[];for(let e=0;e<this.fragment_count;e++){let i=0,s=0;this.version===1?(i=t.readUint64(),s=t.readUint64()):(i=t.readUint32(),s=t.readUint32()),this.entries.push({absolute_time:i,absolute_duration:s})}}},SE=class extends ba{constructor(...t){super(...t),this.box_name="TfxdBox"}static{this.uuid="6d1d9b0542d544e680e2141daff757b2"}parse(t){this.parseFullHeader(t),this.version===1?(this.absolute_time=t.readUint64(),this.duration=t.readUint64()):(this.absolute_time=t.readUint32(),this.duration=t.readUint32())}},kE=class extends bg{constructor(...t){super(...t),this.box_name="ItemContentIDProperty"}static{this.uuid="261ef3741d975bbaacbd9d2c8ea73522"}parse(t){this.content_id=t.readCString()}},BE=class extends bg{constructor(...t){super(...t),this.box_name="ItemComponentContentIDProperty"}static{this.uuid="9db9dd6e373c5a4e811021fc83a911fd"}parse(t){this.number_of_components=t.readUint32(),this.content_ids=[];for(let e=0;e<this.number_of_components;e++){const i=t.readCString();this.content_ids.push(i)}}},EE=A_({CoLLBox:()=>Q3,ItemComponentContentIDPropertyBox:()=>BE,ItemContentIDPropertyBox:()=>kE,OpusSampleEntry:()=>o3,SmDmBox:()=>SB,a1lxBox:()=>R3,a1opBox:()=>L3,ac_3SampleEntry:()=>n3,ac_4SampleEntry:()=>r3,aebrBox:()=>v5,afbrBox:()=>_5,albcBox:()=>g5,alstSampleGroupEntry:()=>tE,altrBox:()=>y5,auxCBox:()=>H3,av01SampleEntry:()=>z4,av1CBox:()=>w4,avc1SampleEntry:()=>P4,avc2SampleEntry:()=>A4,avc3SampleEntry:()=>I4,avc4SampleEntry:()=>M4,avcCBox:()=>z_,avllSampleGroupEntry:()=>eE,avs3SampleEntry:()=>J4,avssSampleGroupEntry:()=>iE,brstBox:()=>b5,btrtBox:()=>V3,bxmlBox:()=>qk,ccstBox:()=>j3,cdefBox:()=>G3,clapBox:()=>q3,clefBox:()=>lB,clliBox:()=>W3,cmexBox:()=>Y3,cminBox:()=>K3,cmpCBox:()=>X3,cmpdBox:()=>J3,co64Box:()=>Z3,colrBox:()=>T4,coviBox:()=>i5,cprtBox:()=>s5,cschBox:()=>n5,cslgBox:()=>r5,cttsBox:()=>a5,dOpsBox:()=>h5,dac3Box:()=>o5,dataBox:()=>Xa,dav1SampleEntry:()=>C4,dec3Box:()=>l5,dfLaBox:()=>c5,dimmBox:()=>u5,dinfBox:()=>N_,dmax:()=>d5,dmedBox:()=>f5,dobrBox:()=>x5,drefBox:()=>H_,drepBox:()=>p5,dtrtSampleGroupEntry:()=>sE,dvh1SampleEntry:()=>V4,dvheSampleEntry:()=>j4,ec_3SampleEntry:()=>a3,edtsBox:()=>Yk,elngBox:()=>V_,elstBox:()=>m5,emsgBox:()=>I3,encaSampleEntry:()=>p3,encmSampleEntry:()=>y3,encsSampleEntry:()=>v3,enctSampleEntry:()=>g3,encuSampleEntry:()=>m3,encvSampleEntry:()=>h3,enofBox:()=>uB,eqivBox:()=>w5,esdsBox:()=>S4,etypBox:()=>d4,fLaCSampleEntry:()=>f3,favcBox:()=>S5,fielBox:()=>z5,fobrBox:()=>k5,freeBox:()=>Hk,frmaBox:()=>C5,ftypBox:()=>j_,grplBox:()=>c4,hdlrBox:()=>G_,hev1SampleEntry:()=>F4,hev2SampleEntry:()=>N4,hinfBox:()=>Qk,hmhdBox:()=>C_,hntiBox:()=>Zk,hvc1SampleEntry:()=>$4,hvc2SampleEntry:()=>O4,hvcCBox:()=>q_,hvt1SampleEntry:()=>D4,iaugBox:()=>B5,idatBox:()=>Lk,iinfBox:()=>p4,ilocBox:()=>m4,ilstBox:()=>dB,imirBox:()=>$5,infeBox:()=>h4,iodsBox:()=>jk,ipcoBox:()=>l4,ipmaBox:()=>O5,iproBox:()=>Wk,iprpBox:()=>o4,irefBox:()=>_4,irotBox:()=>F5,ispeBox:()=>N5,itaiBox:()=>D5,j2kHBox:()=>u4,j2kiSampleEntry:()=>Z4,keysBox:()=>fB,kindBox:()=>R5,levaBox:()=>L5,lhe1SampleEntry:()=>R4,lhv1SampleEntry:()=>L4,lhvCBox:()=>H5,lselBox:()=>V5,lvc1SampleEntry:()=>H4,lvcCBox:()=>B4,m4aeSampleEntry:()=>s3,maxrBox:()=>j5,mdatBox:()=>El,mdcvBox:()=>G5,mdhdBox:()=>W_,mdiaBox:()=>O_,mecoBox:()=>Jk,mehdBox:()=>Y_,metaBox:()=>y4,mettSampleEntry:()=>b4,metxSampleEntry:()=>x4,mfhdBox:()=>X_,mfraBox:()=>Xk,mfroBox:()=>q5,mha1SampleEntry:()=>l3,mha2SampleEntry:()=>c3,mhm1SampleEntry:()=>u3,mhm2SampleEntry:()=>d3,minfBox:()=>F_,mjp2SampleEntry:()=>Q4,mjpgSampleEntry:()=>t3,moofBox:()=>R_,moovBox:()=>Tl,mp4aSampleEntry:()=>tg,mp4sSampleEntry:()=>_3,mp4vSampleEntry:()=>i3,mskCBox:()=>W5,msrcTrackGroupTypeBox:()=>HB,mvexBox:()=>od,mvhdBox:()=>J_,mvifSampleGroupEntry:()=>nE,nmhdBox:()=>Ul,npckBox:()=>Y5,numpBox:()=>K5,padbBox:()=>J5,panoBox:()=>E5,paspBox:()=>Z5,paylBox:()=>Q5,paytBox:()=>tB,pdinBox:()=>eB,piffLsmBox:()=>gE,piffPsshBox:()=>yE,piffSencBox:()=>bE,piffTencBox:()=>xE,piffTfrfBox:()=>wE,piffTfxdBox:()=>SE,pitmBox:()=>g4,pixiBox:()=>iB,pmaxBox:()=>sB,povdBox:()=>f4,prdiBox:()=>nB,prfrBox:()=>rB,prftBox:()=>aB,prgrBox:()=>I5,profBox:()=>hB,prolSampleGroupEntry:()=>rE,psshBox:()=>oB,pymdBox:()=>M5,rapSampleGroupEntry:()=>aE,rashSampleGroupEntry:()=>oE,resvSampleEntry:()=>b3,rinfBox:()=>s4,rollSampleGroupEntry:()=>lE,rtp_Box:()=>mB,saioBox:()=>vB,saizBox:()=>_B,sbgpBox:()=>B3,sbpmBox:()=>yB,sbttSampleEntry:()=>x3,schiBox:()=>n4,schmBox:()=>bB,scifSampleGroupEntry:()=>cE,scnmSampleGroupEntry:()=>uE,sdp_Box:()=>xB,sdtpBox:()=>E3,seigSampleGroupEntry:()=>dE,sencBox:()=>wB,sgpdBox:()=>U3,sidxBox:()=>T3,sinfBox:()=>i4,skipBox:()=>Vk,slidBox:()=>U5,smhdBox:()=>ig,sratBox:()=>kB,ssixBox:()=>M3,stblBox:()=>D_,stcoBox:()=>sg,stdpBox:()=>BB,sterBox:()=>T5,sthdBox:()=>ng,stppSampleEntry:()=>eg,strdBox:()=>e4,striBox:()=>EB,strkBox:()=>t4,stsaSampleGroupEntry:()=>fE,stscBox:()=>rg,stsdBox:()=>ag,stsgBox:()=>UB,stshBox:()=>TB,stssBox:()=>PB,stszBox:()=>og,sttsBox:()=>lg,stviBox:()=>AB,stxtSampleEntry:()=>w3,stypBox:()=>z3,stz2Box:()=>IB,subsBox:()=>MB,syncSampleGroupEntry:()=>hE,taicBox:()=>zB,taptBox:()=>pB,teleSampleGroupEntry:()=>pE,tencBox:()=>CB,tfdtBox:()=>cg,tfhdBox:()=>ug,tfraBox:()=>OB,tkhdBox:()=>dg,tmaxBox:()=>FB,tminBox:()=>NB,totlBox:()=>DB,tpayBox:()=>RB,tpylBox:()=>LB,trafBox:()=>L_,trakBox:()=>$_,trefBox:()=>VB,trepBox:()=>jB,trexBox:()=>ld,trgrBox:()=>r4,trpyBox:()=>GB,trunBox:()=>fg,tsasSampleGroupEntry:()=>mE,tsclSampleGroupEntry:()=>vE,tselBox:()=>qB,tsynBox:()=>P5,tx3gSampleEntry:()=>S3,txtcBox:()=>WB,tycoBox:()=>YB,udesBox:()=>KB,udtaBox:()=>a4,uncCBox:()=>XB,uncvSampleEntry:()=>e3,urlBox:()=>hg,urnBox:()=>JB,viprSampleGroupEntry:()=>_E,vmhdBox:()=>pg,vp08SampleEntry:()=>K4,vp09SampleEntry:()=>X4,vpcCBox:()=>E4,vttCBox:()=>ZB,vttcBox:()=>Kk,vvc1SampleEntry:()=>G4,vvcCBox:()=>U4,vvcNSampleEntry:()=>Y4,vvi1SampleEntry:()=>q4,vvnCBox:()=>QB,vvs1SampleEntry:()=>W4,waveBox:()=>k4,wbbrBox:()=>A5,wvttSampleEntry:()=>k3,xmlBox:()=>Gk});Fk(EE);Nk(C3);function UE(t){return new Promise((e,i)=>{const s=A3();let n=!1;const a=l=>{n||(n=!0,i(new Error(l)))};s.onError=(l,c)=>a(`${l}: ${c}`),s.onReady=l=>{const c=l.videoTracks[0];if(!c)return a("MP4 contains no video track");const u=[];s.onSamples=(d,f,p)=>{u.push(...p),!(u.length<c.nb_samples||n)&&(n=!0,e({codec:c.codec,width:c.video?.width??c.track_width,height:c.video?.height??c.track_height,duration:c.duration/c.timescale,description:TE(s,c.id),samples:u}))},s.setExtractionOptions(c.id,void 0,{nbSamples:c.nb_samples}),s.start()};const o=t.slice(0);o.fileStart=0,s.appendBuffer(o,!0),s.flush()})}function TE(t,e){const i=t.getTrackById(e).mdia.minf.stbl.stsd.entries[0],s=i.avcC??i.hvcC??i.vpcC??i.av1C;if(!s)return;const n=new Hi;return s.write(n),new Uint8Array(n.buffer.slice(8))}class pc{canvas;decoder;config;samples;frames=[];current;sampleIndex=0;lastTime=-1;decoderError;static async create(e){if(typeof VideoDecoder>"u")throw new Error("WebCodecs VideoDecoder is unavailable");const i={codec:e.codec,codedWidth:e.width,codedHeight:e.height,description:e.description},s=await VideoDecoder.isConfigSupported(i);if(!s.supported)throw new Error(`WebCodecs does not support ${e.codec}`);return new pc(e,s.config??i)}constructor(e,i){this.samples=e.samples,this.config=i,this.canvas=document.createElement("canvas"),this.canvas.width=e.width,this.canvas.height=e.height,this.decoder=new VideoDecoder({output:s=>this.frames.push(s),error:s=>this.decoderError=s}),this.decoder.configure(i)}async renderAt(e){const i=Math.max(0,e)*1e6;for((this.lastTime<0||i<this.lastTime)&&this.restartAt(i),this.lastTime=i,await this.decodeThrough(i+25e4),this.frames.sort((n,a)=>n.timestamp-a.timestamp);this.frames[0]&&this.frames[0].timestamp<=i;)this.current?.close(),this.current=this.frames.shift();if(!this.current&&this.frames[0]&&(this.current=this.frames.shift()),!this.current)throw new Error("WebCodecs produced no video frame");const s=this.canvas.getContext("2d");if(!s)throw new Error("Could not create decoded video canvas");s.drawImage(this.current,0,0,this.canvas.width,this.canvas.height)}close(){this.current?.close(),this.frames.splice(0).forEach(e=>e.close()),this.decoder.close()}restartAt(e){this.current?.close(),this.current=void 0,this.frames.splice(0).forEach(s=>s.close()),this.decoder.reset(),this.decoder.configure(this.config);const i=e/1e6;this.sampleIndex=0;for(let s=0;s<this.samples.length;s+=1){const n=this.samples[s];if(n.cts/n.timescale>i)break;n.is_sync&&(this.sampleIndex=s)}}async decodeThrough(e){let i=0;for(;this.sampleIndex<this.samples.length;){const s=this.samples[this.sampleIndex],n=s.cts/s.timescale*1e6;if(i&&n>e)break;if(!s.data)throw new Error("MP4 sample data is unavailable");this.decoder.decode(new EncodedVideoChunk({type:s.is_sync?"key":"delta",timestamp:n,duration:s.duration/s.timescale*1e6,data:s.data})),this.sampleIndex+=1,i+=1}if(i&&await this.decoder.flush(),this.decoderError)throw this.decoderError}}const PE=Object.freeze(Object.defineProperty({__proto__:null,Mp4FrameSource:pc,demuxMp4:UE},Symbol.toStringTag,{value:"Module"})),Ha="/api/exports";function AE(t){return typeof document<"u"}async function IE(t){const{scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o}=t;return ME({scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o})}async function ME(t){const{scene:e,assets:i,height:s,fps:n,audioUrl:a,onProgress:o}=t,l=Math.round(s*e.canvas.width/e.canvas.height),c=document.createElement("canvas");c.width=l,c.height=s;const u=new B_(c),d=DE(e,l,s),f=$E(d.canvas.duration,n),p=await NE(Ha,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({width:l,height:s,fps:n,duration:d.canvas.duration,totalFrames:f,hasAudio:!!a,audioStart:d.audioStart})}),v=await zE(i);try{const g=HS(v.assets);g&&await LS(v.assets);const _=performance.now();let x=[],E=0;for(let $=0;$<f;$+=1){g&&await OE(_,$,n);const M=b_(d,$/n);await CE(M,v.sources),await S_(M,v.assets,{playing:!1,exact:!0}),u.render(M,v.assets);const V=await FE(c);x.push(Al(`${Ha}/${p.id}/frames/${$}`,{method:"PUT",headers:{"content-type":"image/jpeg"},body:V}).then(()=>{E+=1,o?.(E/f*.8)})),x.length===4&&(await Promise.all(x),x=[]),$%4===0&&await xg(0)}if(await Promise.all(x),a){const $=await fetch(a);if(!$.ok)throw new Error(`Could not load audio (${$.status})`);await Al(`${Ha}/${p.id}/audio`,{method:"PUT",headers:{"content-type":$.headers.get("content-type")??"application/octet-stream"},body:await $.blob()})}o?.(.85);const z=await(await Al(`${Ha}/${p.id}/finish`,{method:"POST"})).blob();return o?.(1),z}catch(g){throw await fetch(`${Ha}/${p.id}`,{method:"DELETE"}).catch(()=>{}),g}finally{v.sources.forEach(g=>g.close())}}async function zE(t){const e=new Map(t),i=new Map;if(typeof VideoDecoder>"u")return{assets:e,sources:i};for(const[s,n]of t){if(!n.motionlyMp4)continue;const a=await pc.create(n.motionlyMp4),o=a.canvas;Object.assign(o,{motionlyType:"image",motionlySource:n.motionlySource}),e.set(s,o),i.set(s,a)}return{assets:e,sources:i}}async function CE(t,e){const i=new Map;for(const s of t.elements)s.assetName&&e.has(s.assetName)&&i.set(s.assetName,Number(s.render.mediaTime??0));await Promise.all([...i].flatMap(([s,n])=>{const a=e.get(s);return a?[a.renderAt(n)]:[]}))}function $E(t,e){return Math.max(1,Math.ceil(t*e))}async function OE(t,e,i){const s=t+e*1e3/i-performance.now();s>0&&await xg(s)}function FE(t){return new Promise((e,i)=>{t.toBlob(s=>{s?e(s):i(new Error("Could not capture an export frame"))},"image/jpeg",.95)})}async function Al(t,e){let i;try{i=await fetch(t,e)}catch{throw new Error("MP4 export requires the local Motionly server with ffmpeg installed")}if(!i.ok){const s=(await i.text()).trim();throw new Error(s||`MP4 export failed (${i.status})`)}return i}async function NE(t,e){const i=await Al(t,e);if(!(i.headers.get("content-type")??"").toLowerCase().includes("application/json"))throw new Error("MP4 export API is unavailable. Start Motionly with npx @coppsary/motionly dev and try again");return await i.json()}function DE(t,e,i){const s=e/t.canvas.width;return{...t,canvas:{...t.canvas,width:e,height:i},camera:Va(t.camera,s),elements:t.elements.map(n=>({...n,properties:Va(n.properties,s)})),animations:t.animations.map(n=>({...n,from:Va(n.from,s),to:Va(n.to,s),keyframes:n.keyframes.map(a=>({...a,properties:Va(a.properties,s)}))}))}}function Va(t,e){const i={...t};for(const s of["x","y","width","height","blur","shadow","size","tracking"]){const n=i[s];typeof n=="number"&&(i[s]=n*e)}return i}function xg(t){return new Promise(e=>setTimeout(e,t))}function Te(t){return t.body.map(RE).join(`
2371
2371
 
2372
2372
  `)}function RE(t){if(t.type==="Canvas")return sn("canvas",t.properties);if(t.type==="Camera")return sn("camera",t.properties);if(t.type==="Audio"){const i=`audio "${cd(t.path)}"`;return Object.keys(t.properties).length?sn(i,t.properties):i}if(t.type==="Clip")return sn(`clip ${t.assetName}`,t.properties);if(t.type==="Track")return sn(`track ${t.name}`,t.properties);if(t.type==="Import")return`import "${cd(t.path)}" as ${t.name}`;if(t.type==="Sequence")return sn(`sequence ${t.name}`,t.properties);if(t.type==="Element")return sn(`${t.kind==="asset"?"":`${t.kind} `}${t.name}`.trim(),t.properties);if(t.type!=="Animation")return"";const e=[`animate ${t.target} {`];if(t.from&&Object.keys(t.from).length&&e.push(dl(sn("from",t.from))),t.to&&Object.keys(t.to).length&&e.push(dl(sn("to",t.to))),t.keyframes?.length){e.push(" keyframes {");for(const i of t.keyframes){const s=Number((i.offset*100).toFixed(3)),n=i.easing?{...i.properties,ease:i.easing}:i.properties;e.push(dl(dl(sn(`${s}%`,n))))}e.push(" }")}return t.delay!==void 0&&e.push(` delay ${Yp(t.delay)}`),t.duration!==void 0&&e.push(` duration ${Yp(t.duration)}`),t.easing&&e.push(` easing ${t.easing}`),e.push("}"),e.join(`
2373
2373
  `)}function sn(t,e){const i=[`${t} {`];for(const[s,n]of Object.entries(e))i.push(n===!0?` ${s}`:` ${s} ${LE(n)}`);return i.push("}"),i.join(`
@@ -2467,4 +2467,4 @@ animate title {
2467
2467
  duration 1.2s
2468
2468
  easing power3.out
2469
2469
  }`;let a=q(n),o=q("untitled.motion"),l=q(),c=q(null),u=!1,d=null,f=Promise.resolve(),p=q(),v=q(!1),g=q(0),_=q(null);ac(()=>(x(),N(),()=>{d&&clearTimeout(d)}));async function x(){try{let rt=await fetch("/api/motion-project",{cache:"no-store"});if(rt.ok&&rt.headers.get("content-type")?.startsWith("text/plain")){S(a,await rt.text()),S(o,rt.headers.get("x-motionly-project-name")||"project.motion"),u=!0;return}}catch(rt){console.warn(rt)}S(a,n)}async function E(){const rt=window.showOpenFilePicker;if(!rt){r(l).click();return}try{const[It]=await rt.call(window,{multiple:!1,types:[{description:"Motionly project",accept:{"text/plain":[".motion"]}}]});if(!It)return;const Be=await It.getFile();S(a,await Be.text()),S(o,Be.name),S(c,It),u=!1}catch(It){It.name!=="AbortError"&&console.error(It)}}async function I(){if(r(c)){await M(r(c),r(a));return}if(u){const _t=await fetch("/api/motion-project",{method:"PUT",headers:{"content-type":"text/plain;charset=utf-8"},body:r(a)});if(!_t.ok)throw new Error(`Could not save ${r(o)} (${_t.status})`);return}const rt=window.showSaveFilePicker;if(rt)try{S(c,await rt.call(window,{suggestedName:r(o).endsWith(".motion")?r(o):`${r(o)}.motion`,types:[{description:"Motionly project",accept:{"text/plain":[".motion"]}}]})),S(o,r(c).name),await M(r(c),r(a));return}catch(_t){_t.name!=="AbortError"&&console.error(_t);return}const It=new Blob([r(a)],{type:"text/plain;charset=utf-8"}),Be=URL.createObjectURL(It),bt=document.createElement("a");bt.href=Be,bt.download=r(o).endsWith(".motion")?r(o):`${r(o)}.motion`,bt.click(),URL.revokeObjectURL(Be)}async function z(rt){const It=rt.currentTarget.files?.[0];It&&(S(a,await It.text()),S(o,It.name),S(c,null),u=!1,Ce(l,r(l).value=""))}function $(rt){r(c)&&(d&&clearTimeout(d),d=setTimeout(()=>{const It=r(c);It&&(f=f.then(()=>M(It,rt)).catch(console.error))},250))}async function M(rt,It){const Be=await rt.createWritable();await Be.write(It),await Be.close()}async function V(){if(!(!r(p)||r(v))){S(v,!0),S(g,0);try{const rt=r(o).replace(/\.motion$/i,"")||"motionly";await r(p).exportMp4(`${rt}.mp4`,It=>S(g,It))}finally{S(v,!1)}}}async function N(){try{const rt=await fetch("https://api.github.com/repos/COPPSARY/Motionly");if(!rt.ok)return;const It=await rt.json();typeof It.stargazers_count=="number"&&S(_,It.stargazers_count)}catch{}}function H(rt){return new Intl.NumberFormat("en",{notation:"compact",maximumFractionDigits:1}).format(rt)}le(()=>(r(c),r(a)),()=>{r(c)&&$(r(a))}),ga(),Mr();var T=uP(),j=y(T),St=y(j),yt=y(St),ht=y(yt),vt=b(St,2),F=y(vt);Kh(F,{size:16});var C=b(F,2),Lt=y(C),xt=b(vt,2),He=y(xt);an(He,rt=>S(l,rt),()=>r(l));var ii=b(He,2),de=y(ii);_v(de,{size:18});var re=b(ii,2),xe=y(re);Sx(xe,{size:18});var Ct=b(re,2),nt=y(Ct);px(nt,{size:18});var ai=b(nt,2),kt=y(ai),Ge=b(Ct,2),fe=y(Ge);hx(fe,{size:18});var Me=b(Ge,2),pt=y(Me),jt=b(pt,2);Ux(jt,{size:14,fill:"currentColor"});var xi=b(jt,4);{var ft=rt=>{var It=lP(),Be=y(It);K(bt=>at(Be,bt),[()=>(r(_),k(()=>H(r(_))))]),A(rt,It)},qe=rt=>{var It=cP();A(rt,It)};Z(xi,rt=>{r(_)!==null?rt(ft):rt(qe,-1)})}var Ss=b(Me,2),Ii=y(Ss);Kh(Ii,{size:18});var as=b(j,2);an(oP(as,{onSave:I,get code(){return r(a)},set code(rt){S(a,rt)},$$legacy:!0}),rt=>S(p,rt),()=>r(p)),K((rt,It)=>{st(ht,"src",i),at(Lt,r(o)),Ct.disabled=r(v),at(kt,rt),st(Ge,"href",It),st(Me,"aria-label",r(_)===null?"Star Motionly on GitHub":`Star Motionly on GitHub, ${r(_)} stars`),st(pt,"src",s)},[()=>(r(v),r(g),k(()=>r(v)?`Exporting ${Math.round(r(g)*100)}%`:"Export MP4")),()=>(Zt(js),k(()=>`${js()}?welcome=1`))]),P("change",He,z),P("click",ii,E),P("click",re,I),P("click",Ct,V),A(t,T),sr()}const fP=new URLSearchParams(location.search).get("welcome")==="1",hP=localStorage.getItem(pv)==="true",Cg=ex(location.pathname,fP,hP,"/");Cg==="editor"&&mv(location.pathname).replace(/\/$/,"")!=="/editor"&&history.replaceState(null,"",js("editor"));i0({mode:"production"});Ab(Cg==="editor"?dP:Qx,{target:document.body});
2470
- //# sourceMappingURL=main-CrcFUwRU.js.map
2470
+ //# sourceMappingURL=main-Bhr-QmYm.js.map