orbidicom 0.1.0
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.
- package/LICENSE +21 -0
- package/bin/orbidicom.mjs +28 -0
- package/dist/args.d.ts +11 -0
- package/dist/args.js +40 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.js +15 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/serve.d.ts +15 -0
- package/dist/serve.js +58 -0
- package/package.json +47 -0
- package/public/assets/charlswasm_decode-484ovEoR.wasm +0 -0
- package/public/assets/computeWorker-Dd8a7Dqd.js +5 -0
- package/public/assets/decodeImageFrameWorker-wYf2-PFJ.js +90 -0
- package/public/assets/index-6485mdZB.css +1 -0
- package/public/assets/index-C3ZK2mXe.js +54 -0
- package/public/assets/index-CkA8WclG.js +4231 -0
- package/public/assets/index-DlHE1E-n.js +1 -0
- package/public/assets/index-GWuN1VuF.js +1 -0
- package/public/assets/jpeg-BQEpTZHd.js +1 -0
- package/public/assets/libjpegturbowasm_decode-daqMmuVl.wasm +0 -0
- package/public/assets/lossless-BIYWXcdg.js +1 -0
- package/public/assets/openjpegwasm_decode-B3gWTHpv.wasm +0 -0
- package/public/assets/openjphjs-C-BUUy4a.wasm +0 -0
- package/public/config.js +13 -0
- package/public/index.html +15 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var ji=Object.defineProperty;var Ki=(i,t,e)=>t in i?ji(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var u=(i,t,e)=>Ki(i,typeof t!="symbol"?t+"":t,e);import{bX as Ut,bY as Ie,bZ as _e,bc as Ke,al as $i,b_ as $e,b$ as Qe,ar as Qi,ak as xe,am as we,c0 as Yt}from"./index-CkA8WclG.js";var Et={},F={};F.deflate=Ai;F.deflateSync=Jt;F.inflate=Ve;F.inflateSync=Gt;F.gzip=Ee;F.compress=Ee;F.gzipSync=he;F.compressSync=he;F.gunzip=Ui;F.gunzipSync=ue;F.zlib=tn;F.zlibSync=Me;F.unzlib=Si;F.unzlibSync=ge;F.gzip=Ee;F.compress=Ee;F.decompress=nn;F.decompressSync=rn;F.strToU8=pt;F.strFromU8=Xe;F.zip=hn;F.zipSync=cn;F.unzip=dn;F.unzipSync=pn;var We={},ii={};ii.default=function(i,t,e,n,r){var a=new Worker(We[t]||(We[t]=URL.createObjectURL(new Blob([i+';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'],{type:"text/javascript"}))));return a.onmessage=function(s){var o=s.data,f=o.$e$;if(f){var l=new Error(f[0]);l.code=f[1],l.stack=f[2],r(l,null)}else r(null,o)},a.postMessage(e,n),a};var z=Uint8Array,Q=Uint16Array,$t=Int32Array,Dt=new z([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),zt=new z([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Ht=new z([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ni=function(i,t){for(var e=new Q(31),n=0;n<31;++n)e[n]=t+=1<<i[n-1];for(var r=new $t(e[30]),n=1;n<30;++n)for(var a=e[n];a<e[n+1];++a)r[a]=a-e[n]<<5|n;return{b:e,r}},ri=ni(Dt,2),Be=ri.b,oe=ri.r;Be[28]=258,oe[258]=28;var si=ni(zt,0),ai=si.b,Ue=si.r,Xt=new Q(32768);for(var Y=0;Y<32768;++Y){var gt=(Y&43690)>>1|(Y&21845)<<1;gt=(gt&52428)>>2|(gt&13107)<<2,gt=(gt&61680)>>4|(gt&3855)<<4,Xt[Y]=((gt&65280)>>8|(gt&255)<<8)>>1}var nt=function(i,t,e){for(var n=i.length,r=0,a=new Q(t);r<n;++r)i[r]&&++a[i[r]-1];var s=new Q(t);for(r=1;r<t;++r)s[r]=s[r-1]+a[r-1]<<1;var o;if(e){o=new Q(1<<t);var f=15-t;for(r=0;r<n;++r)if(i[r])for(var l=r<<4|i[r],c=t-i[r],h=s[i[r]-1]++<<c,v=h|(1<<c)-1;h<=v;++h)o[Xt[h]>>f]=l}else for(o=new Q(n),r=0;r<n;++r)i[r]&&(o[r]=Xt[s[i[r]-1]++]>>15-i[r]);return o},ut=new z(288);for(var Y=0;Y<144;++Y)ut[Y]=8;for(var Y=144;Y<256;++Y)ut[Y]=9;for(var Y=256;Y<280;++Y)ut[Y]=7;for(var Y=280;Y<288;++Y)ut[Y]=8;var Mt=new z(32);for(var Y=0;Y<32;++Y)Mt[Y]=5;var oi=nt(ut,9,0),li=nt(ut,9,1),fi=nt(Mt,5,0),hi=nt(Mt,5,1),re=function(i){for(var t=i[0],e=1;e<i.length;++e)i[e]>t&&(t=i[e]);return t},it=function(i,t,e){var n=t/8|0;return(i[n]|i[n+1]<<8)>>(t&7)&e},se=function(i,t){var e=t/8|0;return(i[e]|i[e+1]<<8|i[e+2]<<16)>>(t&7)},Ot=function(i){return(i+7)/8|0},rt=function(i,t,e){return(t==null||t<0)&&(t=0),(e==null||e>i.length)&&(e=i.length),new z(i.subarray(t,e))};F.FlateErrorCode={UnexpectedEOF:0,InvalidBlockType:1,InvalidLengthLiteral:2,InvalidDistance:3,StreamFinished:4,NoStreamHandler:5,InvalidHeader:6,NoCallback:7,InvalidUTF8:8,ExtraFieldTooLong:9,InvalidDate:10,FilenameTooLong:11,StreamFinishing:12,InvalidZipData:13,UnknownCompressionMethod:14};var ci=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],S=function(i,t,e){var n=new Error(t||ci[i]);if(n.code=i,Error.captureStackTrace&&Error.captureStackTrace(n,S),!e)throw n;return n},Qt=function(i,t,e,n){var r=i.length,a=n?n.length:0;if(!r||t.f&&!t.l)return e||new z(0);var s=!e,o=s||t.i!=2,f=t.i;s&&(e=new z(r*3));var l=function(Zt){var kt=e.length;if(Zt>kt){var wt=new z(Math.max(kt*2,Zt));wt.set(e),e=wt}},c=t.f||0,h=t.p||0,v=t.b||0,g=t.l,m=t.d,y=t.m,I=t.n,_=r*8;do{if(!g){c=it(i,h,1);var U=it(i,h+1,3);if(h+=3,U)if(U==1)g=li,m=hi,y=9,I=5;else if(U==2){var p=it(i,h,31)+257,A=it(i,h+10,15)+4,d=p+it(i,h+5,31)+1;h+=14;for(var E=new z(d),M=new z(19),C=0;C<A;++C)M[Ht[C]]=it(i,h+C*3,7);h+=A*3;for(var P=re(M),q=(1<<P)-1,R=nt(M,P,1),C=0;C<d;){var G=R[it(i,h,q)];h+=G&15;var w=G>>4;if(w<16)E[C++]=w;else{var B=0,D=0;for(w==16?(D=3+it(i,h,3),h+=2,B=E[C-1]):w==17?(D=3+it(i,h,7),h+=3):w==18&&(D=11+it(i,h,127),h+=7);D--;)E[C++]=B}}var k=E.subarray(0,p),Z=E.subarray(p);y=re(k),I=re(Z),g=nt(k,y,1),m=nt(Z,I,1)}else S(1);else{var w=Ot(h)+4,T=i[w-4]|i[w-3]<<8,N=w+T;if(N>r){f&&S(0);break}o&&l(v+T),e.set(i.subarray(w,N),v),t.b=v+=T,t.p=h=N*8,t.f=c;continue}if(h>_){f&&S(0);break}}o&&l(v+131072);for(var vt=(1<<y)-1,J=(1<<I)-1,ot=h;;ot=h){var B=g[se(i,h)&vt],X=B>>4;if(h+=B&15,h>_){f&&S(0);break}if(B||S(2),X<256)e[v++]=X;else if(X==256){ot=h,g=null;break}else{var j=X-254;if(X>264){var C=X-257,H=Dt[C];j=it(i,h,(1<<H)-1)+Be[C],h+=H}var lt=m[se(i,h)&J],At=lt>>4;lt||S(3),h+=lt&15;var Z=ai[At];if(At>3){var H=zt[At];Z+=se(i,h)&(1<<H)-1,h+=H}if(h>_){f&&S(0);break}o&&l(v+131072);var xt=v+j;if(v<Z){var ee=a-Z,ie=Math.min(Z,xt);for(ee+v<0&&S(3);v<ie;++v)e[v]=n[ee+v]}for(;v<xt;++v)e[v]=e[v-Z]}}t.l=g,t.p=ot,t.b=v,t.f=c,g&&(c=1,t.m=y,t.d=m,t.n=I)}while(!c);return v!=e.length&&s?rt(e,0,v):e.subarray(0,v)},ft=function(i,t,e){e<<=t&7;var n=t/8|0;i[n]|=e,i[n+1]|=e>>8},St=function(i,t,e){e<<=t&7;var n=t/8|0;i[n]|=e,i[n+1]|=e>>8,i[n+2]|=e>>16},ae=function(i,t){for(var e=[],n=0;n<i.length;++n)i[n]&&e.push({s:n,f:i[n]});var r=e.length,a=e.slice();if(!r)return{t:ct,l:0};if(r==1){var s=new z(e[0].s+1);return s[e[0].s]=1,{t:s,l:1}}e.sort(function(N,p){return N.f-p.f}),e.push({s:-1,f:25001});var o=e[0],f=e[1],l=0,c=1,h=2;for(e[0]={s:-1,f:o.f+f.f,l:o,r:f};c!=r-1;)o=e[e[l].f<e[h].f?l++:h++],f=e[l!=c&&e[l].f<e[h].f?l++:h++],e[c++]={s:-1,f:o.f+f.f,l:o,r:f};for(var v=a[0].s,n=1;n<r;++n)a[n].s>v&&(v=a[n].s);var g=new Q(v+1),m=le(e[c-1],g,0);if(m>t){var n=0,y=0,I=m-t,_=1<<I;for(a.sort(function(p,A){return g[A.s]-g[p.s]||p.f-A.f});n<r;++n){var U=a[n].s;if(g[U]>t)y+=_-(1<<m-g[U]),g[U]=t;else break}for(y>>=I;y>0;){var w=a[n].s;g[w]<t?y-=1<<t-g[w]++-1:++n}for(;n>=0&&y;--n){var T=a[n].s;g[T]==t&&(--g[T],++y)}m=t}return{t:new z(g),l:m}},le=function(i,t,e){return i.s==-1?Math.max(le(i.l,t,e+1),le(i.r,t,e+1)):t[i.s]=e},Te=function(i){for(var t=i.length;t&&!i[--t];);for(var e=new Q(++t),n=0,r=i[0],a=1,s=function(f){e[n++]=f},o=1;o<=t;++o)if(i[o]==r&&o!=t)++a;else{if(!r&&a>2){for(;a>138;a-=138)s(32754);a>2&&(s(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(s(r),--a;a>6;a-=6)s(8304);a>2&&(s(a-3<<5|8208),a=0)}for(;a--;)s(r);a=1,r=i[o]}return{c:e.subarray(0,n),n:t}},Nt=function(i,t){for(var e=0,n=0;n<t.length;++n)e+=i[n]*t[n];return e},pe=function(i,t,e){var n=e.length,r=Ot(t+2);i[r]=n&255,i[r+1]=n>>8,i[r+2]=i[r]^255,i[r+3]=i[r+1]^255;for(var a=0;a<n;++a)i[r+a+4]=e[a];return(r+4+n)*8},Se=function(i,t,e,n,r,a,s,o,f,l,c){ft(t,c++,e),++r[256];for(var h=ae(r,15),v=h.t,g=h.l,m=ae(a,15),y=m.t,I=m.l,_=Te(v),U=_.c,w=_.n,T=Te(y),N=T.c,p=T.n,A=new Q(19),d=0;d<U.length;++d)++A[U[d]&31];for(var d=0;d<N.length;++d)++A[N[d]&31];for(var E=ae(A,7),M=E.t,C=E.l,P=19;P>4&&!M[Ht[P-1]];--P);var q=l+5<<3,R=Nt(r,ut)+Nt(a,Mt)+s,G=Nt(r,v)+Nt(a,y)+s+14+3*P+Nt(A,M)+2*A[16]+3*A[17]+7*A[18];if(f>=0&&q<=R&&q<=G)return pe(t,c,i.subarray(f,f+l));var B,D,k,Z;if(ft(t,c,1+(G<R)),c+=2,G<R){B=nt(v,g,0),D=v,k=nt(y,I,0),Z=y;var vt=nt(M,C,0);ft(t,c,w-257),ft(t,c+5,p-1),ft(t,c+10,P-4),c+=14;for(var d=0;d<P;++d)ft(t,c+3*d,M[Ht[d]]);c+=3*P;for(var J=[U,N],ot=0;ot<2;++ot)for(var X=J[ot],d=0;d<X.length;++d){var j=X[d]&31;ft(t,c,vt[j]),c+=M[j],j>15&&(ft(t,c,X[d]>>5&127),c+=X[d]>>12)}}else B=oi,D=ut,k=fi,Z=Mt;for(var d=0;d<o;++d){var H=n[d];if(H>255){var j=H>>18&31;St(t,c,B[j+257]),c+=D[j+257],j>7&&(ft(t,c,H>>23&31),c+=Dt[j]);var lt=H&31;St(t,c,k[lt]),c+=Z[lt],lt>3&&(St(t,c,H>>5&8191),c+=zt[lt])}else St(t,c,B[H]),c+=D[H]}return St(t,c,B[256]),c+D[256]},ui=new $t([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),ct=new z(0),vi=function(i,t,e,n,r,a){var s=a.z||i.length,o=new z(n+s+5*(1+Math.ceil(s/7e3))+r),f=o.subarray(n,o.length-r),l=a.l,c=(a.r||0)&7;if(t){c&&(f[0]=a.r>>3);for(var h=ui[t-1],v=h>>13,g=h&8191,m=(1<<e)-1,y=a.p||new Q(32768),I=a.h||new Q(m+1),_=Math.ceil(e/3),U=2*_,w=function(ye){return(i[ye]^i[ye+1]<<_^i[ye+2]<<U)&m},T=new $t(25e3),N=new Q(288),p=new Q(32),A=0,d=0,E=a.i||0,M=0,C=a.w||0,P=0;E+2<s;++E){var q=w(E),R=E&32767,G=I[q];if(y[R]=G,I[q]=R,C<=E){var B=s-E;if((A>7e3||M>24576)&&(B>423||!l)){c=Se(i,f,0,T,N,p,d,M,P,E-P,c),M=A=d=0,P=E;for(var D=0;D<286;++D)N[D]=0;for(var D=0;D<30;++D)p[D]=0}var k=2,Z=0,vt=g,J=R-G&32767;if(B>2&&q==w(E-J))for(var ot=Math.min(v,B)-1,X=Math.min(32767,E),j=Math.min(258,B);J<=X&&--vt&&R!=G;){if(i[E+k]==i[E+k-J]){for(var H=0;H<j&&i[E+H]==i[E+H-J];++H);if(H>k){if(k=H,Z=J,H>ot)break;for(var lt=Math.min(J,H-2),At=0,D=0;D<lt;++D){var xt=E-J+D&32767,ee=y[xt],ie=xt-ee&32767;ie>At&&(At=ie,G=xt)}}}R=G,G=y[R],J+=R-G&32767}if(Z){T[M++]=268435456|oe[k]<<18|Ue[Z];var Zt=oe[k]&31,kt=Ue[Z]&31;d+=Dt[Zt]+zt[kt],++N[257+Zt],++p[kt],C=E+k,++A}else T[M++]=i[E],++N[i[E]]}}for(E=Math.max(E,C);E<s;++E)T[M++]=i[E],++N[i[E]];c=Se(i,f,l,T,N,p,d,M,P,E-P,c),l||(a.r=c&7|f[c/8|0]<<3,c-=7,a.h=I,a.p=y,a.i=E,a.w=C)}else{for(var E=a.w||0;E<s+l;E+=65535){var wt=E+65535;wt>=s&&(f[c/8|0]=l,wt=s),c=pe(f,c+1,i.subarray(E,wt))}a.i=s}return rt(o,0,n+Ot(c)+r)},gi=function(){for(var i=new Int32Array(256),t=0;t<256;++t){for(var e=t,n=9;--n;)e=(e&1&&-306674912)^e>>>1;i[t]=e}return i}(),Pt=function(){var i=-1;return{p:function(t){for(var e=i,n=0;n<t.length;++n)e=gi[e&255^t[n]]^e>>>8;i=e},d:function(){return~i}}},me=function(){var i=1,t=0;return{p:function(e){for(var n=i,r=t,a=e.length|0,s=0;s!=a;){for(var o=Math.min(s+2655,a);s<o;++s)r+=n+=e[s];n=(n&65535)+15*(n>>16),r=(r&65535)+15*(r>>16)}i=n,t=r},d:function(){return i%=65521,t%=65521,(i&255)<<24|(i&65280)<<8|(t&255)<<8|t>>8}}},It=function(i,t,e,n,r){if(!r&&(r={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),s=new z(a.length+i.length);s.set(a),s.set(i,a.length),i=s,r.w=a.length}return vi(i,t.level==null?6:t.level,t.mem==null?r.l?Math.ceil(Math.max(8,Math.min(13,Math.log(i.length)))*1.5):20:12+t.mem,e,n,r)},Wt=function(i,t){var e={};for(var n in i)e[n]=i[n];for(var n in t)e[n]=t[n];return e},Je=function(i,t,e){for(var n=i(),r=i.toString(),a=r.slice(r.indexOf("[")+1,r.lastIndexOf("]")).replace(/\s+/g,"").split(","),s=0;s<n.length;++s){var o=n[s],f=a[s];if(typeof o=="function"){t+=";"+f+"=";var l=o.toString();if(o.prototype)if(l.indexOf("[native code]")!=-1){var c=l.indexOf(" ",8)+1;t+=l.slice(c,l.indexOf("(",c))}else{t+=l;for(var h in o.prototype)t+=";"+f+".prototype."+h+"="+o.prototype[h].toString()}else t+=l}else e[f]=o}return t},ne=[],Wi=function(i){var t=[];for(var e in i)i[e].buffer&&t.push((i[e]=new i[e].constructor(i[e])).buffer);return t},di=function(i,t,e,n){if(!ne[e]){for(var r="",a={},s=i.length-1,o=0;o<s;++o)r=Je(i[o],r,a);ne[e]={c:Je(i[s],r,a),e:a}}var f=Wt({},ne[e].e);return(0,ii.default)(ne[e].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+t.toString()+"}",e,f,Wi(f),n)},Bt=function(){return[z,Q,$t,Dt,zt,Ht,Be,ai,li,hi,Xt,ci,nt,re,it,se,Ot,rt,S,Qt,Gt,mt,qe]},qt=function(){return[z,Q,$t,Dt,zt,Ht,oe,Ue,oi,ut,fi,Mt,Xt,ui,ct,nt,ft,St,ae,le,Te,Nt,pe,Se,Ot,rt,vi,It,Jt,mt]},pi=function(){return[Re,Ge,L,Pt,gi]},mi=function(){return[Le,Ii]},Ei=function(){return[Ze,L,me]},yi=function(){return[ke]},mt=function(i){return postMessage(i,[i.buffer])},qe=function(i){return i&&{out:i.size&&new z(i.size),dictionary:i.dictionary}},Rt=function(i,t,e,n,r,a){var s=di(e,n,r,function(o,f){s.terminate(),a(o,f)});return s.postMessage([i,t],t.consume?[i.buffer]:[]),function(){s.terminate()}},at=function(i){return i.ondata=function(t,e){return postMessage([t,e],[t.buffer])},function(t){t.data[0]?(i.push(t.data[0],t.data[1]),postMessage([t.data[0].length])):i.flush(t.data[1])}},Lt=function(i,t,e,n,r,a,s){var o,f=di(i,n,r,function(l,c){l?(f.terminate(),t.ondata.call(t,l)):Array.isArray(c)?c.length==1?(t.queuedSize-=c[0],t.ondrain&&t.ondrain(c[0])):(c[1]&&f.terminate(),t.ondata.call(t,l,c[0],c[1])):s(c)});f.postMessage(e),t.queuedSize=0,t.push=function(l,c){t.ondata||S(5),o&&t.ondata(S(4,0,1),null,!!c),t.queuedSize+=l.length,f.postMessage([l,o=c],l.buffer instanceof ArrayBuffer?[l.buffer]:[])},t.terminate=function(){f.terminate()},a&&(t.flush=function(l){f.postMessage([0,l])})},$=function(i,t){return i[t]|i[t+1]<<8},V=function(i,t){return(i[t]|i[t+1]<<8|i[t+2]<<16|i[t+3]<<24)>>>0},Ae=function(i,t){return V(i,t)+V(i,t+4)*4294967296},L=function(i,t,e){for(;e;++t)i[t]=e,e>>>=8},Re=function(i,t){var e=t.filename;if(i[0]=31,i[1]=139,i[2]=8,i[8]=t.level<2?4:t.level==9?2:0,i[9]=3,t.mtime!=0&&L(i,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),e){i[3]=8;for(var n=0;n<=e.length;++n)i[n+10]=e.charCodeAt(n)}},Le=function(i){(i[0]!=31||i[1]!=139||i[2]!=8)&&S(6,"invalid gzip data");var t=i[3],e=10;t&4&&(e+=(i[10]|i[11]<<8)+2);for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!i[e++]);return e+(t&2)},Ii=function(i){var t=i.length;return(i[t-4]|i[t-3]<<8|i[t-2]<<16|i[t-1]<<24)>>>0},Ge=function(i){return 10+(i.filename?i.filename.length+1:0)},Ze=function(i,t){var e=t.level,n=e==0?0:e<6?1:e==9?3:2;if(i[0]=120,i[1]=n<<6|(t.dictionary&&32),i[1]|=31-(i[0]<<8|i[1])%31,t.dictionary){var r=me();r.p(t.dictionary),L(i,2,r.d())}},ke=function(i,t){return((i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31)&&S(6,"invalid zlib data"),(i[1]>>5&1)==+!t&&S(6,"invalid zlib data: "+(i[1]&32?"need":"unexpected")+" dictionary"),(i[1]>>3&4)+2};function _t(i,t){return typeof i=="function"&&(t=i,i={}),this.ondata=t,i}var st=function(){function i(t,e){if(typeof t=="function"&&(e=t,t={}),this.ondata=e,this.o=t||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new z(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return i.prototype.p=function(t,e){this.ondata(It(t,this.o,0,0,this.s),e)},i.prototype.push=function(t,e){this.ondata||S(5),this.s.l&&S(4);var n=t.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var r=new z(n&-32768);r.set(this.b.subarray(0,this.s.z)),this.b=r}var a=this.b.length-this.s.z;this.b.set(t.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(t.subarray(a),32768),this.s.z=t.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(t,this.s.z),this.s.z+=t.length;this.s.l=e&1,(this.s.z>this.s.w+8191||e)&&(this.p(this.b,e||!1),this.s.w=this.s.i,this.s.i-=2),e&&(this.s=this.o={},this.b=ct)},i.prototype.flush=function(t){if(this.ondata||S(5),this.s.l&&S(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2,t){var e=new z(6);e[0]=this.s.r>>3;var n=pe(e,this.s.r,ct);this.s.r=0,this.ondata(e.subarray(0,n>>3),!1)}},i}();F.Deflate=st;var _i=function(){function i(t,e){Lt([qt,function(){return[at,st]}],this,_t.call(this,t,e),function(n){var r=new st(n.data);onmessage=at(r)},6,1)}return i}();F.AsyncDeflate=_i;function Ai(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[qt],function(n){return mt(Jt(n.data[0],n.data[1]))},0,e)}function Jt(i,t){return It(i,t||{},0,0)}var W=function(){function i(t,e){typeof t=="function"&&(e=t,t={}),this.ondata=e;var n=t&&t.dictionary&&t.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new z(32768),this.p=new z(0),n&&this.o.set(n)}return i.prototype.e=function(t){if(this.ondata||S(5),this.d&&S(4),!this.p.length)this.p=t;else if(t.length){var e=new z(this.p.length+t.length);e.set(this.p),e.set(t,this.p.length),this.p=e}},i.prototype.c=function(t){this.s.i=+(this.d=t||!1);var e=this.s.b,n=Qt(this.p,this.s,this.o);this.ondata(rt(n,e,this.s.b),this.d),this.o=rt(n,this.s.b-32768),this.s.b=this.o.length,this.p=rt(this.p,this.s.p/8|0),this.s.p&=7},i.prototype.push=function(t,e){this.e(t),this.c(e)},i}();F.Inflate=W;var Ye=function(){function i(t,e){Lt([Bt,function(){return[at,W]}],this,_t.call(this,t,e),function(n){var r=new W(n.data);onmessage=at(r)},7,0)}return i}();F.AsyncInflate=Ye;function Ve(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[Bt],function(n){return mt(Gt(n.data[0],qe(n.data[1])))},1,e)}function Gt(i,t){return Qt(i,{i:2},t&&t.out,t&&t.dictionary)}var fe=function(){function i(t,e){this.c=Pt(),this.l=0,this.v=1,st.call(this,t,e)}return i.prototype.push=function(t,e){this.c.p(t),this.l+=t.length,st.prototype.push.call(this,t,e)},i.prototype.p=function(t,e){var n=It(t,this.o,this.v&&Ge(this.o),e&&8,this.s);this.v&&(Re(n,this.o),this.v=0),e&&(L(n,n.length-8,this.c.d()),L(n,n.length-4,this.l)),this.ondata(n,e)},i.prototype.flush=function(t){st.prototype.flush.call(this,t)},i}();F.Gzip=fe;F.Compress=fe;var xi=function(){function i(t,e){Lt([qt,pi,function(){return[at,st,fe]}],this,_t.call(this,t,e),function(n){var r=new fe(n.data);onmessage=at(r)},8,1)}return i}();F.AsyncGzip=xi;F.AsyncCompress=xi;function Ee(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[qt,pi,function(){return[he]}],function(n){return mt(he(n.data[0],n.data[1]))},2,e)}function he(i,t){t||(t={});var e=Pt(),n=i.length;e.p(i);var r=It(i,t,Ge(t),8),a=r.length;return Re(r,t),L(r,a-8,e.d()),L(r,a-4,n),r}var ce=function(){function i(t,e){this.v=1,this.r=0,W.call(this,t,e)}return i.prototype.push=function(t,e){if(W.prototype.e.call(this,t),this.r+=t.length,this.v){var n=this.p.subarray(this.v-1),r=n.length>3?Le(n):4;if(r>n.length){if(!e)return}else this.v>1&&this.onmember&&this.onmember(this.r-n.length);this.p=n.subarray(r),this.v=0}W.prototype.c.call(this,0),this.s.f&&!this.s.l?(this.v=Ot(this.s.p)+9,this.s={i:0},this.o=new z(0),this.push(new z(0),e)):e&&W.prototype.c.call(this,e)},i}();F.Gunzip=ce;var wi=function(){function i(t,e){var n=this;Lt([Bt,mi,function(){return[at,W,ce]}],this,_t.call(this,t,e),function(r){var a=new ce(r.data);a.onmember=function(s){return postMessage(s)},onmessage=at(a)},9,0,function(r){return n.onmember&&n.onmember(r)})}return i}();F.AsyncGunzip=wi;function Ui(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[Bt,mi,function(){return[ue]}],function(n){return mt(ue(n.data[0],n.data[1]))},3,e)}function ue(i,t){var e=Le(i);return e+8>i.length&&S(6,"invalid gzip data"),Qt(i.subarray(e,-8),{i:2},t&&t.out||new z(Ii(i)),t&&t.dictionary)}var Ne=function(){function i(t,e){this.c=me(),this.v=1,st.call(this,t,e)}return i.prototype.push=function(t,e){this.c.p(t),st.prototype.push.call(this,t,e)},i.prototype.p=function(t,e){var n=It(t,this.o,this.v&&(this.o.dictionary?6:2),e&&4,this.s);this.v&&(Ze(n,this.o),this.v=0),e&&L(n,n.length-4,this.c.d()),this.ondata(n,e)},i.prototype.flush=function(t){st.prototype.flush.call(this,t)},i}();F.Zlib=Ne;var Ji=function(){function i(t,e){Lt([qt,Ei,function(){return[at,st,Ne]}],this,_t.call(this,t,e),function(n){var r=new Ne(n.data);onmessage=at(r)},10,1)}return i}();F.AsyncZlib=Ji;function tn(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[qt,Ei,function(){return[Me]}],function(n){return mt(Me(n.data[0],n.data[1]))},4,e)}function Me(i,t){t||(t={});var e=me();e.p(i);var n=It(i,t,t.dictionary?6:2,4);return Ze(n,t),L(n,n.length-4,e.d()),n}var ve=function(){function i(t,e){W.call(this,t,e),this.v=t&&t.dictionary?2:1}return i.prototype.push=function(t,e){if(W.prototype.e.call(this,t),this.v){if(this.p.length<6&&!e)return;this.p=this.p.subarray(ke(this.p,this.v-1)),this.v=0}e&&(this.p.length<4&&S(6,"invalid zlib data"),this.p=this.p.subarray(0,-4)),W.prototype.c.call(this,e)},i}();F.Unzlib=ve;var Ti=function(){function i(t,e){Lt([Bt,yi,function(){return[at,W,ve]}],this,_t.call(this,t,e),function(n){var r=new ve(n.data);onmessage=at(r)},11,0)}return i}();F.AsyncUnzlib=Ti;function Si(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),Rt(i,t,[Bt,yi,function(){return[ge]}],function(n){return mt(ge(n.data[0],qe(n.data[1])))},5,e)}function ge(i,t){return Qt(i.subarray(ke(i,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}var Fe=function(){function i(t,e){this.o=_t.call(this,t,e)||{},this.G=ce,this.I=W,this.Z=ve}return i.prototype.i=function(){var t=this;this.s.ondata=function(e,n){t.ondata(e,n)}},i.prototype.push=function(t,e){if(this.ondata||S(5),this.s)this.s.push(t,e);else{if(this.p&&this.p.length){var n=new z(this.p.length+t.length);n.set(this.p),n.set(t,this.p.length)}else this.p=t;this.p.length>2&&(this.s=this.p[0]==31&&this.p[1]==139&&this.p[2]==8?new this.G(this.o):(this.p[0]&15)!=8||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(this.o):new this.Z(this.o),this.i(),this.s.push(this.p,e),this.p=null)}},i}();F.Decompress=Fe;var en=function(){function i(t,e){Fe.call(this,t,e),this.queuedSize=0,this.G=wi,this.I=Ye,this.Z=Ti}return i.prototype.i=function(){var t=this;this.s.ondata=function(e,n,r){t.ondata(e,n,r)},this.s.ondrain=function(e){t.queuedSize-=e,t.ondrain&&t.ondrain(e)}},i.prototype.push=function(t,e){this.queuedSize+=t.length,Fe.prototype.push.call(this,t,e)},i}();F.AsyncDecompress=en;function nn(i,t,e){return e||(e=t,t={}),typeof e!="function"&&S(7),i[0]==31&&i[1]==139&&i[2]==8?Ui(i,t,e):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?Ve(i,t,e):Si(i,t,e)}function rn(i,t){return i[0]==31&&i[1]==139&&i[2]==8?ue(i,t):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?Gt(i,t):ge(i,t)}var He=function(i,t,e,n){for(var r in i){var a=i[r],s=t+r,o=n;Array.isArray(a)&&(o=Wt(n,a[1]),a=a[0]),ArrayBuffer.isView(a)?e[s]=[a,o]:(e[s+="/"]=[new z(0),o],He(a,s,e,n))}},ti=typeof TextEncoder<"u"&&new TextEncoder,Ce=typeof TextDecoder<"u"&&new TextDecoder,Ni=0;try{Ce.decode(ct,{stream:!0}),Ni=1}catch{}var Mi=function(i){for(var t="",e=0;;){var n=i[e++],r=(n>127)+(n>223)+(n>239);if(e+r>i.length)return{s:t,r:rt(i,e-1)};r?r==3?(n=((n&15)<<18|(i[e++]&63)<<12|(i[e++]&63)<<6|i[e++]&63)-65536,t+=String.fromCharCode(55296|n>>10,56320|n&1023)):r&1?t+=String.fromCharCode((n&31)<<6|i[e++]&63):t+=String.fromCharCode((n&15)<<12|(i[e++]&63)<<6|i[e++]&63):t+=String.fromCharCode(n)}},sn=function(){function i(t){this.ondata=t,Ni?this.t=new TextDecoder:this.p=ct}return i.prototype.push=function(t,e){if(this.ondata||S(5),e=!!e,this.t){this.ondata(this.t.decode(t,{stream:!0}),e),e&&(this.t.decode().length&&S(8),this.t=null);return}this.p||S(4);var n=new z(this.p.length+t.length);n.set(this.p),n.set(t,this.p.length);var r=Mi(n),a=r.s,s=r.r;e?(s.length&&S(8),this.p=null):this.p=s,this.ondata(a,e)},i}();F.DecodeUTF8=sn;var an=function(){function i(t){this.ondata=t}return i.prototype.push=function(t,e){this.ondata||S(5),this.d&&S(4),this.ondata(pt(t),this.d=e||!1)},i}();F.EncodeUTF8=an;function pt(i,t){if(t){for(var e=new z(i.length),n=0;n<i.length;++n)e[n]=i.charCodeAt(n);return e}if(ti)return ti.encode(i);for(var r=i.length,a=new z(i.length+(i.length>>1)),s=0,o=function(c){a[s++]=c},n=0;n<r;++n){if(s+5>a.length){var f=new z(s+8+(r-n<<1));f.set(a),a=f}var l=i.charCodeAt(n);l<128||t?o(l):l<2048?(o(192|l>>6),o(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|i.charCodeAt(++n)&1023,o(240|l>>18),o(128|l>>12&63),o(128|l>>6&63),o(128|l&63)):(o(224|l>>12),o(128|l>>6&63),o(128|l&63))}return rt(a,0,s)}function Xe(i,t){if(t){for(var e="",n=0;n<i.length;n+=16384)e+=String.fromCharCode.apply(null,i.subarray(n,n+16384));return e}else{if(Ce)return Ce.decode(i);var r=Mi(i),a=r.s,e=r.r;return e.length&&S(8),a}}var Fi=function(i){return i==1?3:i<6?2:i==9?1:0},Ci=function(i,t){return t+30+$(i,t+26)+$(i,t+28)},bi=function(i,t,e){var n=$(i,t+28),r=$(i,t+30),a=Xe(i.subarray(t+46,t+46+n),!($(i,t+8)&2048)),s=t+46+n,o=Di(i,s,r,e,V(i,t+20),V(i,t+24),V(i,t+42)),f=o[0],l=o[1],c=o[2];return[$(i,t+10),f,l,a,s+r+$(i,t+32),c]},Di=function(i,t,e,n,r,a,s){var o=r==4294967295,f=a==4294967295,l=s==4294967295,c=t+e,h=o+f+l;if(n&&h){for(;t+4<c;t+=4+$(i,t+2))if($(i,t)==1)return[o?Ae(i,t+4+8*f):r,f?Ae(i,t+4):a,l?Ae(i,t+4+8*(f+o)):s,1];n<2&&S(13)}return[r,a,s,0]},dt=function(i){var t=0;if(i)for(var e in i){var n=i[e].length;n>65535&&S(9),t+=n+4}return t},Ft=function(i,t,e,n,r,a,s,o){var f=n.length,l=e.extra,c=o&&o.length,h=dt(l);L(i,t,s!=null?33639248:67324752),t+=4,s!=null&&(i[t++]=20,i[t++]=e.os),i[t]=20,t+=2,i[t++]=e.flag<<1|(a<0&&8),i[t++]=r&&8,i[t++]=e.compression&255,i[t++]=e.compression>>8;var v=new Date(e.mtime==null?Date.now():e.mtime),g=v.getFullYear()-1980;if((g<0||g>119)&&S(10),L(i,t,g<<25|v.getMonth()+1<<21|v.getDate()<<16|v.getHours()<<11|v.getMinutes()<<5|v.getSeconds()>>1),t+=4,a!=-1&&(L(i,t,e.crc),L(i,t+4,a<0?-a-2:a),L(i,t+8,e.size)),L(i,t+12,f),L(i,t+14,h),t+=16,s!=null&&(L(i,t,c),L(i,t+6,e.attrs),L(i,t+10,s),t+=14),i.set(n,t),t+=f,h)for(var m in l){var y=l[m],I=y.length;L(i,t,+m),L(i,t+2,I),i.set(y,t+4),t+=4+I}return c&&(i.set(o,t),t+=c),t},je=function(i,t,e,n,r){L(i,t,101010256),L(i,t+8,e),L(i,t+10,e),L(i,t+12,n),L(i,t+16,r)},jt=function(){function i(t){this.filename=t,this.c=Pt(),this.size=0,this.compression=0}return i.prototype.process=function(t,e){this.ondata(null,t,e)},i.prototype.push=function(t,e){this.ondata||S(5),this.c.p(t),this.size+=t.length,e&&(this.crc=this.c.d()),this.process(t,e||!1)},i}();F.ZipPassThrough=jt;var on=function(){function i(t,e){var n=this;e||(e={}),jt.call(this,t),this.d=new st(e,function(r,a){n.ondata(null,r,a)}),this.compression=8,this.flag=Fi(e.level)}return i.prototype.process=function(t,e){try{this.d.push(t,e)}catch(n){this.ondata(n,null,e)}},i.prototype.push=function(t,e){jt.prototype.push.call(this,t,e)},i}();F.ZipDeflate=on;var ln=function(){function i(t,e){var n=this;e||(e={}),jt.call(this,t),this.d=new _i(e,function(r,a,s){n.ondata(r,a,s)}),this.compression=8,this.flag=Fi(e.level),this.terminate=this.d.terminate}return i.prototype.process=function(t,e){this.d.push(t,e)},i.prototype.push=function(t,e){jt.prototype.push.call(this,t,e)},i}();F.AsyncZipDeflate=ln;var fn=function(){function i(t){this.ondata=t,this.u=[],this.d=1}return i.prototype.add=function(t){var e=this;if(this.ondata||S(5),this.d&2)this.ondata(S(4+(this.d&1)*8,0,1),null,!1);else{var n=pt(t.filename),r=n.length,a=t.comment,s=a&&pt(a),o=r!=t.filename.length||s&&a.length!=s.length,f=r+dt(t.extra)+30;r>65535&&this.ondata(S(11,0,1),null,!1);var l=new z(f);Ft(l,0,t,n,o,-1);var c=[l],h=function(){for(var I=0,_=c;I<_.length;I++){var U=_[I];e.ondata(null,U,!1)}c=[]},v=this.d;this.d=0;var g=this.u.length,m=Wt(t,{f:n,u:o,o:s,t:function(){t.terminate&&t.terminate()},r:function(){if(h(),v){var I=e.u[g+1];I?I.r():e.d=1}v=1}}),y=0;t.ondata=function(I,_,U){if(I)e.ondata(I,_,U),e.terminate();else if(y+=_.length,c.push(_),U){var w=new z(16);L(w,0,134695760),L(w,4,t.crc),L(w,8,y),L(w,12,t.size),c.push(w),m.c=y,m.b=f+y+16,m.crc=t.crc,m.size=t.size,v&&m.r(),v=1}else v&&h()},this.u.push(m)}},i.prototype.end=function(){var t=this;if(this.d&2){this.ondata(S(4+(this.d&1)*8,0,1),null,!0);return}this.d?this.e():this.u.push({r:function(){t.d&1&&(t.u.splice(-1,1),t.e())},t:function(){}}),this.d=3},i.prototype.e=function(){for(var t=0,e=0,n=0,r=0,a=this.u;r<a.length;r++){var s=a[r];n+=46+s.f.length+dt(s.extra)+(s.o?s.o.length:0)}for(var o=new z(n+22),f=0,l=this.u;f<l.length;f++){var s=l[f];Ft(o,t,s,s.f,s.u,-s.c-2,e,s.o),t+=46+s.f.length+dt(s.extra)+(s.o?s.o.length:0),e+=s.b}je(o,t,this.u.length,n,e),this.ondata(null,o,!0),this.d=2},i.prototype.terminate=function(){for(var t=0,e=this.u;t<e.length;t++){var n=e[t];n.t()}this.d=2},i}();F.Zip=fn;function hn(i,t,e){e||(e=t,t={}),typeof e!="function"&&S(7);var n={};He(i,"",n,t);var r=Object.keys(n),a=r.length,s=0,o=0,f=a,l=new Array(a),c=[],h=function(){for(var I=0;I<c.length;++I)c[I]()},v=function(I,_){de(function(){e(I,_)})};de(function(){v=e});var g=function(){var I=new z(o+22),_=s,U=o-s;o=0;for(var w=0;w<f;++w){var T=l[w];try{var N=T.c.length;Ft(I,o,T,T.f,T.u,N);var p=30+T.f.length+dt(T.extra),A=o+p;I.set(T.c,A),Ft(I,s,T,T.f,T.u,N,o,T.m),s+=16+p+(T.m?T.m.length:0),o=A+N}catch(d){return v(d,null)}}je(I,s,l.length,U,_),v(null,I)};a||g();for(var m=function(I){var _=r[I],U=n[_],w=U[0],T=U[1],N=Pt(),p=w.length;N.p(w);var A=pt(_),d=A.length,E=T.comment,M=E&&pt(E),C=M&&M.length,P=dt(T.extra),q=T.level==0?0:8,R=function(G,B){if(G)h(),v(G,null);else{var D=B.length;l[I]=Wt(T,{size:p,crc:N.d(),c:B,f:A,m:M,u:d!=_.length||M&&E.length!=C,compression:q}),s+=30+d+P+D,o+=76+2*(d+P)+(C||0)+D,--a||g()}};if(d>65535&&R(S(11,0,1),null),!q)R(null,w);else if(p<16e4)try{R(null,Jt(w,T))}catch(G){R(G,null)}else c.push(Ai(w,T,R))},y=0;y<f;++y)m(y);return h}function cn(i,t){t||(t={});var e={},n=[];He(i,"",e,t);var r=0,a=0;for(var s in e){var o=e[s],f=o[0],l=o[1],c=l.level==0?0:8,h=pt(s),v=h.length,g=l.comment,m=g&&pt(g),y=m&&m.length,I=dt(l.extra);v>65535&&S(11);var _=c?Jt(f,l):f,U=_.length,w=Pt();w.p(f),n.push(Wt(l,{size:f.length,crc:w.d(),c:_,f:h,m,u:v!=s.length||m&&g.length!=y,o:r,compression:c})),r+=30+v+I+U,a+=76+2*(v+I)+(y||0)+U}for(var T=new z(a+22),N=r,p=a-r,A=0;A<n.length;++A){var h=n[A];Ft(T,h.o,h,h.f,h.u,h.c.length);var d=30+h.f.length+dt(h.extra);T.set(h.c,h.o+d),Ft(T,r,h,h.f,h.u,h.c.length,h.o,h.m),r+=16+d+(h.m?h.m.length:0)}return je(T,r,n.length,p,N),T}var zi=function(){function i(){}return i.prototype.push=function(t,e){this.ondata(null,t,e)},i.compression=0,i}();F.UnzipPassThrough=zi;var un=function(){function i(){var t=this;this.i=new W(function(e,n){t.ondata(null,e,n)})}return i.prototype.push=function(t,e){try{this.i.push(t,e)}catch(n){this.ondata(n,null,e)}},i.compression=8,i}();F.UnzipInflate=un;var vn=function(){function i(t,e){var n=this;e<32e4?this.i=new W(function(r,a){n.ondata(null,r,a)}):(this.i=new Ye(function(r,a,s){n.ondata(r,a,s)}),this.terminate=this.i.terminate)}return i.prototype.push=function(t,e){this.i.terminate&&(t=rt(t,0)),this.i.push(t,e)},i.compression=8,i}();F.AsyncUnzipInflate=vn;var gn=function(){function i(t){this.onfile=t,this.k=[],this.o={0:zi},this.p=ct}return i.prototype.push=function(t,e){var n=this;if(this.onfile||S(5),this.p||S(4),this.c>0){var r=Math.min(this.c,t.length),a=t.subarray(0,r);if(this.c-=r,this.d?this.d.push(a,!this.c):this.k[0].push(a),t=t.subarray(r),t.length)return this.push(t,e)}else{var s=0,o=0,f=void 0,l=void 0;this.p.length?t.length?(l=new z(this.p.length+t.length),l.set(this.p),l.set(t,this.p.length)):l=this.p:l=t;for(var c=l.length,h=this.c,v=h&&this.d,g=function(){var _=V(l,o);if(_==67324752){s=1,f=o,m.d=null,m.c=0;var U=$(l,o+6),w=$(l,o+8),T=U&2048,N=U&8,p=$(l,o+26),A=$(l,o+28);if(c>o+30+p+A){var d=[];m.k.unshift(d),s=2;var E=V(l,o+18),M=V(l,o+22),C=Xe(l.subarray(o+30,o+=30+p),!T),P=Di(l,o,A,2,E,M,0),q=P[0],R=P[1],G=P[3];N&&(q=-1-G),o+=A,m.c=q;var B,D={name:C,compression:w,start:function(){if(D.ondata||S(5),!q)D.ondata(null,ct,!0);else{var k=n.o[w];k||D.ondata(S(14,"unknown compression type "+w,1),null,!1),B=q<0?new k(C):new k(C,q,R),B.ondata=function(ot,X,j){D.ondata(ot,X,j)};for(var Z=0,vt=d;Z<vt.length;Z++){var J=vt[Z];B.push(J,!1)}n.k[0]==d&&n.c?n.d=B:B.push(ct,!0)}},terminate:function(){B&&B.terminate&&B.terminate()}};q>=0&&(D.size=q,D.originalSize=R),m.onfile(D)}return"break"}else if(h){if(_==134695760)return f=o+=12+(h==-2&&8),s=3,m.c=0,"break";if(_==33639248)return f=o-=4,s=3,m.c=0,"break"}},m=this;o<c-4;++o){var y=g();if(y==="break")break}if(this.p=ct,h<0){var I=s?l.subarray(0,f-12-(h==-2&&8)-(V(l,f-16)==134695760&&4)):l.subarray(0,o);v?v.push(I,!!s):this.k[+(s==2)].push(I)}if(s&2)return this.push(l.subarray(o),e);this.p=l.subarray(o)}e&&(this.c&&S(13),this.p=null)},i.prototype.register=function(t){this.o[t.compression]=t},i}();F.Unzip=gn;var de=typeof queueMicrotask=="function"?queueMicrotask:typeof setTimeout=="function"?setTimeout:function(i){i()};function dn(i,t,e){e||(e=t,t={}),typeof e!="function"&&S(7);var n=[],r=function(){for(var I=0;I<n.length;++I)n[I]()},a={},s=function(I,_){de(function(){e(I,_)})};de(function(){s=e});for(var o=i.length-22;V(i,o)!=101010256;--o)if(!o||i.length-o>65558)return s(S(13,0,1),null),r;var f=$(i,o+8);if(f){var l=f,c=V(i,o+16),h=V(i,o-20)==117853008;if(h){var v=V(i,o-12);h=V(i,v)==101075792,h&&(l=f=V(i,v+32),c=V(i,v+48))}for(var g=t&&t.filter,m=function(I){var _=bi(i,c,h),U=_[0],w=_[1],T=_[2],N=_[3],p=_[4],A=_[5],d=Ci(i,A);c=p;var E=function(C,P){C?(r(),s(C,null)):(P&&(a[N]=P),--f||s(null,a))};if(!g||g({name:N,size:w,originalSize:T,compression:U}))if(!U)E(null,rt(i,d,d+w));else if(U==8){var M=i.subarray(d,d+w);if(T<524288||w>.8*T)try{E(null,Gt(M,{out:new z(T)}))}catch(C){E(C,null)}else n.push(Ve(M,{size:T},E))}else E(S(14,"unknown compression type "+U,1),null);else E(null,null)},y=0;y<l;++y)m(y)}else s(null,{});return r}function pn(i,t){for(var e={},n=i.length-22;V(i,n)!=101010256;--n)(!n||i.length-n>65558)&&S(13);var r=$(i,n+8);if(!r)return{};var a=V(i,n+16),s=V(i,n-20)==117853008;if(s){var o=V(i,n-12);s=V(i,o)==101075792,s&&(r=V(i,o+32),a=V(i,o+48))}for(var f=t&&t.filter,l=0;l<r;++l){var c=bi(i,a,s),h=c[0],v=c[1],g=c[2],m=c[3],y=c[4],I=c[5],_=Ci(i,I);a=y,(!f||f({name:m,size:v,originalSize:g,compression:h}))&&(h?h==8?e[m]=Gt(i.subarray(_,_+v),{out:new z(g)}):S(14,"unknown compression type "+h):e[m]=rt(i,_,_+v))}return e}var Ct={},yt={},te={};Object.defineProperty(te,"__esModule",{value:!0});te.NIFTIEXTENSION=void 0;class mn{constructor(t,e,n,r){u(this,"esize");u(this,"ecode");u(this,"edata");u(this,"littleEndian");if(t%16!=0)throw new Error("This does not appear to be a NIFTI extension");this.esize=t,this.ecode=e,this.edata=n,this.littleEndian=r}toArrayBuffer(){let t=new Uint8Array(this.esize),e=new Uint8Array(this.edata);t.set(e,8);let n=new DataView(t.buffer);return n.setInt32(0,this.esize,this.littleEndian),n.setInt32(4,this.ecode,this.littleEndian),t.buffer}}te.NIFTIEXTENSION=mn;Object.defineProperty(yt,"__esModule",{value:!0});yt.Utils=void 0;const En=te,K=class K{static getStringAt(t,e,n){var r="",a,s;for(a=e;a<n;a+=1)s=t.getUint8(a),s!==0&&(r+=String.fromCharCode(s));return r}static getIntAt(t,e,n){return t.getInt32(e,n)}static getFloatAt(t,e,n){return t.getFloat32(e,n)}static getDoubleAt(t,e,n){return t.getFloat64(e,n)}static getInt64At(t,e,n){const r=t.getUint32(e,n),a=t.getInt32(e+4,n);let s;return n?s=a*2**32+r:s=r*2**32+a,a<0&&(s+=-1*2**32*2**32),s}static getExtensionsAt(t,e,n,r){let a=[],s=e;for(;s<r;){let o=n,f=K.getIntAt(t,s,n);if(!f)break;if(f+s>r&&(o=!o,f=K.getIntAt(t,s,o),f+s>r))throw new Error("This does not appear to be a valid NIFTI extension");if(f%16!=0)throw new Error("This does not appear to be a NIFTI extension");let l=K.getIntAt(t,s+4,o),c=t.buffer.slice(s+8,s+f);console.log("extensionByteIndex: "+(s+8)+" esize: "+f),console.log(c);let h=new En.NIFTIEXTENSION(f,l,c,o);a.push(h),s+=f}return a}static toArrayBuffer(t){var e,n,r;for(e=new ArrayBuffer(t.length),n=new Uint8Array(e),r=0;r<t.length;r+=1)n[r]=t[r];return e}static isString(t){return typeof t=="string"||t instanceof String}static formatNumber(t,e=void 0){let n;return K.isString(t)?n=Number(t):n=t,e?n=n.toPrecision(5):n=n.toPrecision(7),parseFloat(n)}static makeCRCTable(){let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e}static crc32(t){K.crcTable||(K.crcTable=K.makeCRCTable());const e=K.crcTable;let n=-1;for(var r=0;r<t.byteLength;r++)n=n>>>8^e[(n^t.getUint8(r))&255];return(n^-1)>>>0}};u(K,"crcTable",null),u(K,"GUNZIP_MAGIC_COOKIE1",31),u(K,"GUNZIP_MAGIC_COOKIE2",139),u(K,"getByteAt",function(t,e){return t.getUint8(e)}),u(K,"getShortAt",function(t,e,n){return t.getInt16(e,n)});let be=K;yt.Utils=be;Object.defineProperty(Ct,"__esModule",{value:!0});Ct.NIFTI1=void 0;const b=yt,x=class x{constructor(){u(this,"littleEndian",!1);u(this,"dim_info",0);u(this,"dims",[]);u(this,"intent_p1",0);u(this,"intent_p2",0);u(this,"intent_p3",0);u(this,"intent_code",0);u(this,"datatypeCode",0);u(this,"numBitsPerVoxel",0);u(this,"slice_start",0);u(this,"slice_end",0);u(this,"slice_code",0);u(this,"pixDims",[]);u(this,"vox_offset",0);u(this,"scl_slope",1);u(this,"scl_inter",0);u(this,"xyzt_units",0);u(this,"cal_max",0);u(this,"cal_min",0);u(this,"slice_duration",0);u(this,"toffset",0);u(this,"description","");u(this,"aux_file","");u(this,"intent_name","");u(this,"qform_code",0);u(this,"sform_code",0);u(this,"quatern_a",0);u(this,"quatern_b",0);u(this,"quatern_c",0);u(this,"quatern_d",0);u(this,"qoffset_x",0);u(this,"qoffset_y",0);u(this,"qoffset_z",0);u(this,"affine",[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]);u(this,"qfac",1);u(this,"quatern_R");u(this,"magic","0");u(this,"isHDR",!1);u(this,"extensionFlag",[0,0,0,0]);u(this,"extensionSize",0);u(this,"extensionCode",0);u(this,"extensions",[]);u(this,"getDatatypeCodeString",function(t){return t===x.TYPE_UINT8?"1-Byte Unsigned Integer":t===x.TYPE_INT16?"2-Byte Signed Integer":t===x.TYPE_INT32?"4-Byte Signed Integer":t===x.TYPE_FLOAT32?"4-Byte Float":t===x.TYPE_FLOAT64?"8-Byte Float":t===x.TYPE_RGB24?"RGB":t===x.TYPE_INT8?"1-Byte Signed Integer":t===x.TYPE_UINT16?"2-Byte Unsigned Integer":t===x.TYPE_UINT32?"4-Byte Unsigned Integer":t===x.TYPE_INT64?"8-Byte Signed Integer":t===x.TYPE_UINT64?"8-Byte Unsigned Integer":"Unknown"});u(this,"getTransformCodeString",function(t){return t===x.XFORM_SCANNER_ANAT?"Scanner":t===x.XFORM_ALIGNED_ANAT?"Aligned":t===x.XFORM_TALAIRACH?"Talairach":t===x.XFORM_MNI_152?"MNI":"Unknown"});u(this,"getUnitsCodeString",function(t){return t===x.UNITS_METER?"Meters":t===x.UNITS_MM?"Millimeters":t===x.UNITS_MICRON?"Microns":t===x.UNITS_SEC?"Seconds":t===x.UNITS_MSEC?"Milliseconds":t===x.UNITS_USEC?"Microseconds":t===x.UNITS_HZ?"Hz":t===x.UNITS_PPM?"PPM":t===x.UNITS_RADS?"Rads":"Unknown"});u(this,"nifti_mat33_mul",function(t,e){var n=[[0,0,0],[0,0,0],[0,0,0]],r,a;for(r=0;r<3;r+=1)for(a=0;a<3;a+=1)n[r][a]=t[r][0]*e[0][a]+t[r][1]*e[1][a]+t[r][2]*e[2][a];return n});u(this,"nifti_mat33_determ",function(t){var e,n,r,a,s,o,f,l,c;return e=t[0][0],n=t[0][1],r=t[0][2],a=t[1][0],s=t[1][1],o=t[1][2],f=t[2][0],l=t[2][1],c=t[2][2],e*s*c-e*l*o-a*n*c+a*l*r+f*n*o-f*s*r})}readHeader(t){var e=new DataView(t),n=b.Utils.getIntAt(e,0,this.littleEndian),r,a,s,o;if(n!==x.MAGIC_COOKIE&&(this.littleEndian=!0,n=b.Utils.getIntAt(e,0,this.littleEndian)),n!==x.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.dim_info=b.Utils.getByteAt(e,39),r=0;r<8;r+=1)o=40+r*2,this.dims[r]=b.Utils.getShortAt(e,o,this.littleEndian);for(this.intent_p1=b.Utils.getFloatAt(e,56,this.littleEndian),this.intent_p2=b.Utils.getFloatAt(e,60,this.littleEndian),this.intent_p3=b.Utils.getFloatAt(e,64,this.littleEndian),this.intent_code=b.Utils.getShortAt(e,68,this.littleEndian),this.datatypeCode=b.Utils.getShortAt(e,70,this.littleEndian),this.numBitsPerVoxel=b.Utils.getShortAt(e,72,this.littleEndian),this.slice_start=b.Utils.getShortAt(e,74,this.littleEndian),r=0;r<8;r+=1)o=76+r*4,this.pixDims[r]=b.Utils.getFloatAt(e,o,this.littleEndian);if(this.vox_offset=b.Utils.getFloatAt(e,108,this.littleEndian),this.scl_slope=b.Utils.getFloatAt(e,112,this.littleEndian),this.scl_inter=b.Utils.getFloatAt(e,116,this.littleEndian),this.slice_end=b.Utils.getShortAt(e,120,this.littleEndian),this.slice_code=b.Utils.getByteAt(e,122),this.xyzt_units=b.Utils.getByteAt(e,123),this.cal_max=b.Utils.getFloatAt(e,124,this.littleEndian),this.cal_min=b.Utils.getFloatAt(e,128,this.littleEndian),this.slice_duration=b.Utils.getFloatAt(e,132,this.littleEndian),this.toffset=b.Utils.getFloatAt(e,136,this.littleEndian),this.description=b.Utils.getStringAt(e,148,228),this.aux_file=b.Utils.getStringAt(e,228,252),this.qform_code=b.Utils.getShortAt(e,252,this.littleEndian),this.sform_code=b.Utils.getShortAt(e,254,this.littleEndian),this.quatern_b=b.Utils.getFloatAt(e,256,this.littleEndian),this.quatern_c=b.Utils.getFloatAt(e,260,this.littleEndian),this.quatern_d=b.Utils.getFloatAt(e,264,this.littleEndian),this.quatern_a=Math.sqrt(1-(Math.pow(this.quatern_b,2)+Math.pow(this.quatern_c,2)+Math.pow(this.quatern_d,2))),this.qoffset_x=b.Utils.getFloatAt(e,268,this.littleEndian),this.qoffset_y=b.Utils.getFloatAt(e,272,this.littleEndian),this.qoffset_z=b.Utils.getFloatAt(e,276,this.littleEndian),this.qform_code<1&&this.sform_code<1&&(this.affine[0][0]=this.pixDims[1],this.affine[1][1]=this.pixDims[2],this.affine[2][2]=this.pixDims[3]),this.qform_code>0&&this.sform_code<this.qform_code){const f=this.quatern_a,l=this.quatern_b,c=this.quatern_c,h=this.quatern_d;for(this.qfac=this.pixDims[0]===0?1:this.pixDims[0],this.quatern_R=[[f*f+l*l-c*c-h*h,2*l*c-2*f*h,2*l*h+2*f*c],[2*l*c+2*f*h,f*f+c*c-l*l-h*h,2*c*h-2*f*l],[2*l*h-2*f*c,2*c*h+2*f*l,f*f+h*h-c*c-l*l]],a=0;a<3;a+=1)for(s=0;s<3;s+=1)this.affine[a][s]=this.quatern_R[a][s]*this.pixDims[s+1],s===2&&(this.affine[a][s]*=this.qfac);this.affine[0][3]=this.qoffset_x,this.affine[1][3]=this.qoffset_y,this.affine[2][3]=this.qoffset_z}else if(this.sform_code>0)for(a=0;a<3;a+=1)for(s=0;s<4;s+=1)o=280+(a*4+s)*4,this.affine[a][s]=b.Utils.getFloatAt(e,o,this.littleEndian);if(this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.intent_name=b.Utils.getStringAt(e,328,344),this.magic=b.Utils.getStringAt(e,344,348),this.isHDR=this.magic===String.fromCharCode.apply(null,x.MAGIC_NUMBER2),e.byteLength>x.MAGIC_COOKIE){this.extensionFlag[0]=b.Utils.getByteAt(e,348),this.extensionFlag[1]=b.Utils.getByteAt(e,349),this.extensionFlag[2]=b.Utils.getByteAt(e,350),this.extensionFlag[3]=b.Utils.getByteAt(e,351);let f=!0;!this.isHDR&&this.vox_offset<=352&&(f=!1),e.byteLength<=368&&(f=!1),f&&this.extensionFlag[0]&&(this.extensions=b.Utils.getExtensionsAt(e,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode)}}toFormattedString(){var t=b.Utils.formatNumber,e="";return e+="Dim Info = "+this.dim_info+`
|
|
2
|
+
`,e+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+`
|
|
3
|
+
`,e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+`
|
|
4
|
+
`,e+="Intent Code = "+this.intent_code+`
|
|
5
|
+
`,e+="Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`)
|
|
6
|
+
`,e+="Bits Per Voxel = "+this.numBitsPerVoxel+`
|
|
7
|
+
`,e+="Slice Start = "+this.slice_start+`
|
|
8
|
+
`,e+="Voxel Dimensions (1-8): "+t(this.pixDims[0])+", "+t(this.pixDims[1])+", "+t(this.pixDims[2])+", "+t(this.pixDims[3])+", "+t(this.pixDims[4])+", "+t(this.pixDims[5])+", "+t(this.pixDims[6])+", "+t(this.pixDims[7])+`
|
|
9
|
+
`,e+="Image Offset = "+this.vox_offset+`
|
|
10
|
+
`,e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+`
|
|
11
|
+
`,e+="Slice End = "+this.slice_end+`
|
|
12
|
+
`,e+="Slice Code = "+this.slice_code+`
|
|
13
|
+
`,e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(x.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(x.TEMPORAL_UNITS_MASK&this.xyzt_units)+`)
|
|
14
|
+
`,e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+`
|
|
15
|
+
`,e+="Slice Duration = "+this.slice_duration+`
|
|
16
|
+
`,e+="Time Axis Shift = "+this.toffset+`
|
|
17
|
+
`,e+='Description: "'+this.description+`"
|
|
18
|
+
`,e+='Auxiliary File: "'+this.aux_file+`"
|
|
19
|
+
`,e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`)
|
|
20
|
+
`,e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`)
|
|
21
|
+
`,e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+`
|
|
22
|
+
`,e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+`
|
|
23
|
+
`,e+="S-Form Parameters X: "+t(this.affine[0][0])+", "+t(this.affine[0][1])+", "+t(this.affine[0][2])+", "+t(this.affine[0][3])+`
|
|
24
|
+
`,e+="S-Form Parameters Y: "+t(this.affine[1][0])+", "+t(this.affine[1][1])+", "+t(this.affine[1][2])+", "+t(this.affine[1][3])+`
|
|
25
|
+
`,e+="S-Form Parameters Z: "+t(this.affine[2][0])+", "+t(this.affine[2][1])+", "+t(this.affine[2][2])+", "+t(this.affine[2][3])+`
|
|
26
|
+
`,e+='Intent Name: "'+this.intent_name+`"
|
|
27
|
+
`,this.extensionFlag[0]&&(e+="Extension: Size = "+this.extensionSize+" Code = "+this.extensionCode+`
|
|
28
|
+
`),e}getQformMat(){return this.convertNiftiQFormToNiftiSForm(this.quatern_b,this.quatern_c,this.quatern_d,this.qoffset_x,this.qoffset_y,this.qoffset_z,this.pixDims[1],this.pixDims[2],this.pixDims[3],this.pixDims[0])}convertNiftiQFormToNiftiSForm(t,e,n,r,a,s,o,f,l,c){var h=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],v,g=t,m=e,y=n,I,_,U;return h[3][0]=h[3][1]=h[3][2]=0,h[3][3]=1,v=1-(g*g+m*m+y*y),v<1e-7?(v=1/Math.sqrt(g*g+m*m+y*y),g*=v,m*=v,y*=v,v=0):v=Math.sqrt(v),I=o>0?o:1,_=f>0?f:1,U=l>0?l:1,c<0&&(U=-U),h[0][0]=(v*v+g*g-m*m-y*y)*I,h[0][1]=2*(g*m-v*y)*_,h[0][2]=2*(g*y+v*m)*U,h[1][0]=2*(g*m+v*y)*I,h[1][1]=(v*v+m*m-g*g-y*y)*_,h[1][2]=2*(m*y-v*g)*U,h[2][0]=2*(g*y-v*m)*I,h[2][1]=2*(m*y+v*g)*_,h[2][2]=(v*v+y*y-m*m-g*g)*U,h[0][3]=r,h[1][3]=a,h[2][3]=s,h}convertNiftiSFormToNEMA(t){var e,n,r,a,s,o,f,l,c,h,v,g,m,y,I,_,U,w,T,N,p,A,d,E,M,C,P,q,R,G,B,D,k,Z;if(I=0,P=[[0,0,0],[0,0,0],[0,0,0]],q=[[0,0,0],[0,0,0],[0,0,0]],e=t[0][0],n=t[0][1],r=t[0][2],a=t[1][0],s=t[1][1],o=t[1][2],f=t[2][0],l=t[2][1],c=t[2][2],h=Math.sqrt(e*e+a*a+f*f),h===0||(e/=h,a/=h,f/=h,h=Math.sqrt(n*n+s*s+l*l),h===0))return null;if(n/=h,s/=h,l/=h,h=e*n+a*s+f*l,Math.abs(h)>1e-4){if(n-=h*e,s-=h*a,l-=h*f,h=Math.sqrt(n*n+s*s+l*l),h===0)return null;n/=h,s/=h,l/=h}if(h=Math.sqrt(r*r+o*o+c*c),h===0?(r=a*l-f*s,o=f*n-l*e,c=e*s-a*n):(r/=h,o/=h,c/=h),h=e*r+a*o+f*c,Math.abs(h)>1e-4){if(r-=h*e,o-=h*a,c-=h*f,h=Math.sqrt(r*r+o*o+c*c),h===0)return null;r/=h,o/=h,c/=h}if(h=n*r+s*o+l*c,Math.abs(h)>1e-4){if(r-=h*n,o-=h*s,c-=h*l,h=Math.sqrt(r*r+o*o+c*c),h===0)return null;r/=h,o/=h,c/=h}if(P[0][0]=e,P[0][1]=n,P[0][2]=r,P[1][0]=a,P[1][1]=s,P[1][2]=o,P[2][0]=f,P[2][1]=l,P[2][2]=c,v=this.nifti_mat33_determ(P),v===0)return null;for(C=-666,T=A=d=E=1,N=2,p=3,m=1;m<=3;m+=1)for(y=1;y<=3;y+=1)if(m!==y){for(I=1;I<=3;I+=1)if(!(m===I||y===I))for(q[0][0]=q[0][1]=q[0][2]=q[1][0]=q[1][1]=q[1][2]=q[2][0]=q[2][1]=q[2][2]=0,_=-1;_<=1;_+=2)for(U=-1;U<=1;U+=2)for(w=-1;w<=1;w+=2)q[0][m-1]=_,q[1][y-1]=U,q[2][I-1]=w,g=this.nifti_mat33_determ(q),g*v>0&&(M=this.nifti_mat33_mul(q,P),h=M[0][0]+M[1][1]+M[2][2],h>C&&(C=h,T=m,N=y,p=I,A=_,d=U,E=w))}switch(R=G=B=D=k=Z="",T*A){case 1:R="X",D="+";break;case-1:R="X",D="-";break;case 2:R="Y",D="+";break;case-2:R="Y",D="-";break;case 3:R="Z",D="+";break;case-3:R="Z",D="-";break}switch(N*d){case 1:G="X",k="+";break;case-1:G="X",k="-";break;case 2:G="Y",k="+";break;case-2:G="Y",k="-";break;case 3:G="Z",k="+";break;case-3:G="Z",k="-";break}switch(p*E){case 1:B="X",Z="+";break;case-1:B="X",Z="-";break;case 2:B="Y",Z="+";break;case-2:B="Y",Z="-";break;case 3:B="Z",Z="+";break;case-3:B="Z",Z="-";break}return R+G+B+D+k+Z}getExtensionLocation(){return x.MAGIC_COOKIE+4}getExtensionSize(t){return b.Utils.getIntAt(t,this.getExtensionLocation(),this.littleEndian)}getExtensionCode(t){return b.Utils.getIntAt(t,this.getExtensionLocation()+4,this.littleEndian)}addExtension(t,e=-1){e==-1?this.extensions.push(t):this.extensions.splice(e,0,t),this.vox_offset+=t.esize}removeExtension(t){let e=this.extensions[t];e&&(this.vox_offset-=e.esize),this.extensions.splice(t,1)}toArrayBuffer(t=!1){let r=352;if(t)for(let f of this.extensions)r+=f.esize;let a=new Uint8Array(r),s=new DataView(a.buffer);s.setInt32(0,348,this.littleEndian),s.setUint8(39,this.dim_info);for(let f=0;f<8;f++)s.setUint16(40+2*f,this.dims[f],this.littleEndian);s.setFloat32(56,this.intent_p1,this.littleEndian),s.setFloat32(60,this.intent_p2,this.littleEndian),s.setFloat32(64,this.intent_p3,this.littleEndian),s.setInt16(68,this.intent_code,this.littleEndian),s.setInt16(70,this.datatypeCode,this.littleEndian),s.setInt16(72,this.numBitsPerVoxel,this.littleEndian),s.setInt16(74,this.slice_start,this.littleEndian);for(let f=0;f<8;f++)s.setFloat32(76+4*f,this.pixDims[f],this.littleEndian);s.setFloat32(108,this.vox_offset,this.littleEndian),s.setFloat32(112,this.scl_slope,this.littleEndian),s.setFloat32(116,this.scl_inter,this.littleEndian),s.setInt16(120,this.slice_end,this.littleEndian),s.setUint8(122,this.slice_code),s.setUint8(123,this.xyzt_units),s.setFloat32(124,this.cal_max,this.littleEndian),s.setFloat32(128,this.cal_min,this.littleEndian),s.setFloat32(132,this.slice_duration,this.littleEndian),s.setFloat32(136,this.toffset,this.littleEndian),a.set(Buffer.from(this.description),148),a.set(Buffer.from(this.aux_file),228),s.setInt16(252,this.qform_code,this.littleEndian),s.setInt16(254,this.sform_code,this.littleEndian),s.setFloat32(256,this.quatern_b,this.littleEndian),s.setFloat32(260,this.quatern_c,this.littleEndian),s.setFloat32(264,this.quatern_d,this.littleEndian),s.setFloat32(268,this.qoffset_x,this.littleEndian),s.setFloat32(272,this.qoffset_y,this.littleEndian),s.setFloat32(276,this.qoffset_z,this.littleEndian);const o=this.affine.flat();for(let f=0;f<12;f++)s.setFloat32(280+4*f,o[f],this.littleEndian);if(a.set(Buffer.from(this.intent_name),328),a.set(Buffer.from(this.magic),344),t){a.set(Uint8Array.from([1,0,0,0]),348);let f=this.getExtensionLocation();for(const l of this.extensions)s.setInt32(f,l.esize,l.littleEndian),s.setInt32(f+4,l.ecode,l.littleEndian),a.set(new Uint8Array(l.edata),f+8),f+=l.esize}else a.set(new Uint8Array(4).fill(0),348);return a.buffer}};u(x,"TYPE_NONE",0),u(x,"TYPE_BINARY",1),u(x,"TYPE_UINT8",2),u(x,"TYPE_INT16",4),u(x,"TYPE_INT32",8),u(x,"TYPE_FLOAT32",16),u(x,"TYPE_COMPLEX64",32),u(x,"TYPE_FLOAT64",64),u(x,"TYPE_RGB24",128),u(x,"TYPE_INT8",256),u(x,"TYPE_UINT16",512),u(x,"TYPE_UINT32",768),u(x,"TYPE_INT64",1024),u(x,"TYPE_UINT64",1280),u(x,"TYPE_FLOAT128",1536),u(x,"TYPE_COMPLEX128",1792),u(x,"TYPE_COMPLEX256",2048),u(x,"XFORM_UNKNOWN",0),u(x,"XFORM_SCANNER_ANAT",1),u(x,"XFORM_ALIGNED_ANAT",2),u(x,"XFORM_TALAIRACH",3),u(x,"XFORM_MNI_152",4),u(x,"SPATIAL_UNITS_MASK",7),u(x,"TEMPORAL_UNITS_MASK",56),u(x,"UNITS_UNKNOWN",0),u(x,"UNITS_METER",1),u(x,"UNITS_MM",2),u(x,"UNITS_MICRON",3),u(x,"UNITS_SEC",8),u(x,"UNITS_MSEC",16),u(x,"UNITS_USEC",24),u(x,"UNITS_HZ",32),u(x,"UNITS_PPM",40),u(x,"UNITS_RADS",48),u(x,"MAGIC_COOKIE",348),u(x,"STANDARD_HEADER_SIZE",348),u(x,"MAGIC_NUMBER_LOCATION",344),u(x,"MAGIC_NUMBER",[110,43,49]),u(x,"MAGIC_NUMBER2",[110,105,49]),u(x,"EXTENSION_HEADER_SIZE",8);let De=x;Ct.NIFTI1=De;var Kt={};Object.defineProperty(Kt,"__esModule",{value:!0});Kt.NIFTI2=void 0;const tt=Ct,O=yt,ht=class ht{constructor(){u(this,"littleEndian",!1);u(this,"dim_info",0);u(this,"dims",[]);u(this,"intent_p1",0);u(this,"intent_p2",0);u(this,"intent_p3",0);u(this,"intent_code",0);u(this,"datatypeCode",0);u(this,"numBitsPerVoxel",0);u(this,"slice_start",0);u(this,"slice_end",0);u(this,"slice_code",0);u(this,"pixDims",[]);u(this,"vox_offset",0);u(this,"scl_slope",1);u(this,"scl_inter",0);u(this,"xyzt_units",0);u(this,"cal_max",0);u(this,"cal_min",0);u(this,"slice_duration",0);u(this,"toffset",0);u(this,"description","");u(this,"aux_file","");u(this,"intent_name","");u(this,"qform_code",0);u(this,"sform_code",0);u(this,"quatern_b",0);u(this,"quatern_c",0);u(this,"quatern_d",0);u(this,"qoffset_x",0);u(this,"qoffset_y",0);u(this,"qoffset_z",0);u(this,"affine",[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]);u(this,"magic","0");u(this,"extensionFlag",[0,0,0,0]);u(this,"extensions",[]);u(this,"extensionSize",0);u(this,"extensionCode",0);u(this,"getExtensionLocation",function(){return ht.MAGIC_COOKIE+4});u(this,"getExtensionSize",tt.NIFTI1.prototype.getExtensionSize);u(this,"getExtensionCode",tt.NIFTI1.prototype.getExtensionCode);u(this,"addExtension",tt.NIFTI1.prototype.addExtension);u(this,"removeExtension",tt.NIFTI1.prototype.removeExtension);u(this,"getDatatypeCodeString",tt.NIFTI1.prototype.getDatatypeCodeString);u(this,"getTransformCodeString",tt.NIFTI1.prototype.getTransformCodeString);u(this,"getUnitsCodeString",tt.NIFTI1.prototype.getUnitsCodeString);u(this,"getQformMat",tt.NIFTI1.prototype.getQformMat);u(this,"convertNiftiQFormToNiftiSForm",tt.NIFTI1.prototype.convertNiftiQFormToNiftiSForm);u(this,"convertNiftiSFormToNEMA",tt.NIFTI1.prototype.convertNiftiSFormToNEMA);u(this,"nifti_mat33_mul",tt.NIFTI1.prototype.nifti_mat33_mul);u(this,"nifti_mat33_determ",tt.NIFTI1.prototype.nifti_mat33_determ)}readHeader(t){var e=new DataView(t),n=O.Utils.getIntAt(e,0,this.littleEndian),r,a,s,o;if(n!==ht.MAGIC_COOKIE&&(this.littleEndian=!0,n=O.Utils.getIntAt(e,0,this.littleEndian)),n!==ht.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.magic=O.Utils.getStringAt(e,4,12),this.datatypeCode=O.Utils.getShortAt(e,12,this.littleEndian),this.numBitsPerVoxel=O.Utils.getShortAt(e,14,this.littleEndian),r=0;r<8;r+=1)o=16+r*8,this.dims[r]=O.Utils.getInt64At(e,o,this.littleEndian);for(this.intent_p1=O.Utils.getDoubleAt(e,80,this.littleEndian),this.intent_p2=O.Utils.getDoubleAt(e,88,this.littleEndian),this.intent_p3=O.Utils.getDoubleAt(e,96,this.littleEndian),r=0;r<8;r+=1)o=104+r*8,this.pixDims[r]=O.Utils.getDoubleAt(e,o,this.littleEndian);for(this.vox_offset=O.Utils.getInt64At(e,168,this.littleEndian),this.scl_slope=O.Utils.getDoubleAt(e,176,this.littleEndian),this.scl_inter=O.Utils.getDoubleAt(e,184,this.littleEndian),this.cal_max=O.Utils.getDoubleAt(e,192,this.littleEndian),this.cal_min=O.Utils.getDoubleAt(e,200,this.littleEndian),this.slice_duration=O.Utils.getDoubleAt(e,208,this.littleEndian),this.toffset=O.Utils.getDoubleAt(e,216,this.littleEndian),this.slice_start=O.Utils.getInt64At(e,224,this.littleEndian),this.slice_end=O.Utils.getInt64At(e,232,this.littleEndian),this.description=O.Utils.getStringAt(e,240,320),this.aux_file=O.Utils.getStringAt(e,320,344),this.qform_code=O.Utils.getIntAt(e,344,this.littleEndian),this.sform_code=O.Utils.getIntAt(e,348,this.littleEndian),this.quatern_b=O.Utils.getDoubleAt(e,352,this.littleEndian),this.quatern_c=O.Utils.getDoubleAt(e,360,this.littleEndian),this.quatern_d=O.Utils.getDoubleAt(e,368,this.littleEndian),this.qoffset_x=O.Utils.getDoubleAt(e,376,this.littleEndian),this.qoffset_y=O.Utils.getDoubleAt(e,384,this.littleEndian),this.qoffset_z=O.Utils.getDoubleAt(e,392,this.littleEndian),a=0;a<3;a+=1)for(s=0;s<4;s+=1)o=400+(a*4+s)*8,this.affine[a][s]=O.Utils.getDoubleAt(e,o,this.littleEndian);this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.slice_code=O.Utils.getIntAt(e,496,this.littleEndian),this.xyzt_units=O.Utils.getIntAt(e,500,this.littleEndian),this.intent_code=O.Utils.getIntAt(e,504,this.littleEndian),this.intent_name=O.Utils.getStringAt(e,508,524),this.dim_info=O.Utils.getByteAt(e,524),e.byteLength>ht.MAGIC_COOKIE&&(this.extensionFlag[0]=O.Utils.getByteAt(e,540),this.extensionFlag[1]=O.Utils.getByteAt(e,541),this.extensionFlag[2]=O.Utils.getByteAt(e,542),this.extensionFlag[3]=O.Utils.getByteAt(e,543),this.extensionFlag[0]&&(this.extensions=O.Utils.getExtensionsAt(e,this.getExtensionLocation(),this.littleEndian,this.vox_offset),this.extensionSize=this.extensions[0].esize,this.extensionCode=this.extensions[0].ecode))}toFormattedString(){var t=O.Utils.formatNumber,e="";return e+="Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+`)
|
|
29
|
+
`,e+="Bits Per Voxel = = "+this.numBitsPerVoxel+`
|
|
30
|
+
`,e+="Image Dimensions (1-8): "+this.dims[0]+", "+this.dims[1]+", "+this.dims[2]+", "+this.dims[3]+", "+this.dims[4]+", "+this.dims[5]+", "+this.dims[6]+", "+this.dims[7]+`
|
|
31
|
+
`,e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+`
|
|
32
|
+
`,e+="Voxel Dimensions (1-8): "+t(this.pixDims[0])+", "+t(this.pixDims[1])+", "+t(this.pixDims[2])+", "+t(this.pixDims[3])+", "+t(this.pixDims[4])+", "+t(this.pixDims[5])+", "+t(this.pixDims[6])+", "+t(this.pixDims[7])+`
|
|
33
|
+
`,e+="Image Offset = "+this.vox_offset+`
|
|
34
|
+
`,e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+`
|
|
35
|
+
`,e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+`
|
|
36
|
+
`,e+="Slice Duration = "+this.slice_duration+`
|
|
37
|
+
`,e+="Time Axis Shift = "+this.toffset+`
|
|
38
|
+
`,e+="Slice Start = "+this.slice_start+`
|
|
39
|
+
`,e+="Slice End = "+this.slice_end+`
|
|
40
|
+
`,e+='Description: "'+this.description+`"
|
|
41
|
+
`,e+='Auxiliary File: "'+this.aux_file+`"
|
|
42
|
+
`,e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+`)
|
|
43
|
+
`,e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+`)
|
|
44
|
+
`,e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+`
|
|
45
|
+
`,e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+`
|
|
46
|
+
`,e+="S-Form Parameters X: "+t(this.affine[0][0])+", "+t(this.affine[0][1])+", "+t(this.affine[0][2])+", "+t(this.affine[0][3])+`
|
|
47
|
+
`,e+="S-Form Parameters Y: "+t(this.affine[1][0])+", "+t(this.affine[1][1])+", "+t(this.affine[1][2])+", "+t(this.affine[1][3])+`
|
|
48
|
+
`,e+="S-Form Parameters Z: "+t(this.affine[2][0])+", "+t(this.affine[2][1])+", "+t(this.affine[2][2])+", "+t(this.affine[2][3])+`
|
|
49
|
+
`,e+="Slice Code = "+this.slice_code+`
|
|
50
|
+
`,e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(tt.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(tt.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+`)
|
|
51
|
+
`,e+="Intent Code = "+this.intent_code+`
|
|
52
|
+
`,e+='Intent Name: "'+this.intent_name+`"
|
|
53
|
+
`,e+="Dim Info = "+this.dim_info+`
|
|
54
|
+
`,e}toArrayBuffer(t=!1){let r=544;if(t)for(let f of this.extensions)r+=f.esize;let a=new Uint8Array(r),s=new DataView(a.buffer);s.setInt32(0,540,this.littleEndian),a.set(Buffer.from(this.magic),4),s.setInt16(12,this.datatypeCode,this.littleEndian),s.setInt16(14,this.numBitsPerVoxel,this.littleEndian);for(let f=0;f<8;f++)s.setBigInt64(16+8*f,BigInt(this.dims[f]),this.littleEndian);s.setFloat64(80,this.intent_p1,this.littleEndian),s.setFloat64(88,this.intent_p2,this.littleEndian),s.setFloat64(96,this.intent_p3,this.littleEndian);for(let f=0;f<8;f++)s.setFloat64(104+8*f,this.pixDims[f],this.littleEndian);s.setBigInt64(168,BigInt(this.vox_offset),this.littleEndian),s.setFloat64(176,this.scl_slope,this.littleEndian),s.setFloat64(184,this.scl_inter,this.littleEndian),s.setFloat64(192,this.cal_max,this.littleEndian),s.setFloat64(200,this.cal_min,this.littleEndian),s.setFloat64(208,this.slice_duration,this.littleEndian),s.setFloat64(216,this.toffset,this.littleEndian),s.setBigInt64(224,BigInt(this.slice_start),this.littleEndian),s.setBigInt64(232,BigInt(this.slice_end),this.littleEndian),a.set(Buffer.from(this.description),240),a.set(Buffer.from(this.aux_file),320),s.setInt32(344,this.qform_code,this.littleEndian),s.setInt32(348,this.sform_code,this.littleEndian),s.setFloat64(352,this.quatern_b,this.littleEndian),s.setFloat64(360,this.quatern_c,this.littleEndian),s.setFloat64(368,this.quatern_d,this.littleEndian),s.setFloat64(376,this.qoffset_x,this.littleEndian),s.setFloat64(384,this.qoffset_y,this.littleEndian),s.setFloat64(392,this.qoffset_z,this.littleEndian);const o=this.affine.flat();for(let f=0;f<12;f++)s.setFloat64(400+8*f,o[f],this.littleEndian);if(s.setInt32(496,this.slice_code,this.littleEndian),s.setInt32(500,this.xyzt_units,this.littleEndian),s.setInt32(504,this.intent_code,this.littleEndian),a.set(Buffer.from(this.intent_name),508),s.setUint8(524,this.dim_info),t){a.set(Uint8Array.from([1,0,0,0]),540);let f=this.getExtensionLocation();for(const l of this.extensions)s.setInt32(f,l.esize,l.littleEndian),s.setInt32(f+4,l.ecode,l.littleEndian),a.set(new Uint8Array(l.edata),f+8),f+=l.esize}else a.set(new Uint8Array(4).fill(0),540);return a.buffer}};u(ht,"MAGIC_COOKIE",540),u(ht,"MAGIC_NUMBER_LOCATION",4),u(ht,"MAGIC_NUMBER",[110,43,50,0,13,10,26,10]),u(ht,"MAGIC_NUMBER2",[110,105,50,0,13,10,26,10]);let ze=ht;Kt.NIFTI2=ze;(function(i){var t=Ut&&Ut.__createBinding||(Object.create?function(p,A,d,E){E===void 0&&(E=d);var M=Object.getOwnPropertyDescriptor(A,d);(!M||("get"in M?!A.__esModule:M.writable||M.configurable))&&(M={enumerable:!0,get:function(){return A[d]}}),Object.defineProperty(p,E,M)}:function(p,A,d,E){E===void 0&&(E=d),p[E]=A[d]}),e=Ut&&Ut.__setModuleDefault||(Object.create?function(p,A){Object.defineProperty(p,"default",{enumerable:!0,value:A})}:function(p,A){p.default=A}),n=Ut&&Ut.__importStar||function(p){if(p&&p.__esModule)return p;var A={};if(p!=null)for(var d in p)d!=="default"&&Object.prototype.hasOwnProperty.call(p,d)&&t(A,p,d);return e(A,p),A};Object.defineProperty(i,"__esModule",{value:!0}),i.readExtensionData=i.readExtension=i.readImage=i.hasExtension=i.readHeader=i.decompress=i.isCompressed=i.isNIFTI=i.isNIFTI2=i.isNIFTI1=i.NIFTIEXTENSION=i.Utils=i.NIFTI2=i.NIFTI1=void 0;const r=n(F),a=Ct,s=Kt,o=yt;var f=Ct;Object.defineProperty(i,"NIFTI1",{enumerable:!0,get:function(){return f.NIFTI1}});var l=Kt;Object.defineProperty(i,"NIFTI2",{enumerable:!0,get:function(){return l.NIFTI2}});var c=yt;Object.defineProperty(i,"Utils",{enumerable:!0,get:function(){return c.Utils}});var h=te;Object.defineProperty(i,"NIFTIEXTENSION",{enumerable:!0,get:function(){return h.NIFTIEXTENSION}});function v(p,A=!1){var d,E,M,C;return p.byteLength<a.NIFTI1.STANDARD_HEADER_SIZE?!1:(d=new DataView(p),d&&(E=d.getUint8(a.NIFTI1.MAGIC_NUMBER_LOCATION)),M=d.getUint8(a.NIFTI1.MAGIC_NUMBER_LOCATION+1),C=d.getUint8(a.NIFTI1.MAGIC_NUMBER_LOCATION+2),A&&E===a.NIFTI1.MAGIC_NUMBER2[0]&&M===a.NIFTI1.MAGIC_NUMBER2[1]&&C===a.NIFTI1.MAGIC_NUMBER2[2]?!0:E===a.NIFTI1.MAGIC_NUMBER[0]&&M===a.NIFTI1.MAGIC_NUMBER[1]&&C===a.NIFTI1.MAGIC_NUMBER[2])}i.isNIFTI1=v;function g(p,A=!1){var d,E,M,C;return p.byteLength<a.NIFTI1.STANDARD_HEADER_SIZE?!1:(d=new DataView(p),E=d.getUint8(s.NIFTI2.MAGIC_NUMBER_LOCATION),M=d.getUint8(s.NIFTI2.MAGIC_NUMBER_LOCATION+1),C=d.getUint8(s.NIFTI2.MAGIC_NUMBER_LOCATION+2),A&&E===s.NIFTI2.MAGIC_NUMBER2[0]&&M===s.NIFTI2.MAGIC_NUMBER2[1]&&C===s.NIFTI2.MAGIC_NUMBER2[2]?!0:E===s.NIFTI2.MAGIC_NUMBER[0]&&M===s.NIFTI2.MAGIC_NUMBER[1]&&C===s.NIFTI2.MAGIC_NUMBER[2])}i.isNIFTI2=g;function m(p,A=!1){return v(p,A)||g(p,A)}i.isNIFTI=m;function y(p){var A,d,E;return!!(p&&(A=new DataView(p),d=A.getUint8(0),E=A.getUint8(1),d===o.Utils.GUNZIP_MAGIC_COOKIE1||E===o.Utils.GUNZIP_MAGIC_COOKIE2))}i.isCompressed=y;function I(p){return r.decompressSync(new Uint8Array(p)).buffer}i.decompress=I;function _(p,A=!1){var d=null;return y(p)&&(p=I(p)),v(p,A)?d=new a.NIFTI1:g(p,A)&&(d=new s.NIFTI2),d?d.readHeader(p):console.error("That file does not appear to be NIFTI!"),d}i.readHeader=_;function U(p){return p.extensionFlag[0]!=0}i.hasExtension=U;function w(p,A){var d=p.vox_offset,E=1,M=1;p.dims[4]&&(E=p.dims[4]),p.dims[5]&&(M=p.dims[5]);var C=p.dims[1]*p.dims[2]*p.dims[3]*E*M*(p.numBitsPerVoxel/8);return A.slice(d,d+C)}i.readImage=w;function T(p,A){var d=p.getExtensionLocation(),E=p.extensionSize;return A.slice(d,d+E)}i.readExtension=T;function N(p,A){var d=p.getExtensionLocation(),E=p.extensionSize;return A.slice(d+8,d+E)}i.readExtensionData=N})(Et);var bt;(function(i){i.NIFTI_VOLUME_LOADED="CORNERSTONE_NIFTI_VOLUME_LOADED",i.NIFTI_VOLUME_PROGRESS="CORNERSTONE_NIFTI_VOLUME_PROGRESS"})(bt||(bt={}));const zn=Object.freeze(Object.defineProperty({__proto__:null,Events:bt},Symbol.toStringTag,{value:"Module"}));function Oi(i,t,e){const{numBitsPerVoxel:n,littleEndian:r,pixDims:a,dims:s}=i;s[1]*s[2],Math.floor(s[3]/2);const{windowWidth:o,windowCenter:f}={windowWidth:400,windowCenter:40},l=Ie(),c=Ie(),h=Ie();return _e(l,t[0],t[1],t[2]),_e(c,t[3],t[4],t[5]),_e(h,t[6],t[7],t[8]),{volumeMetadata:{BitsAllocated:n,BitsStored:n,SamplesPerPixel:1,HighBit:r?n-1:1,PhotometricInterpretation:"MONOCHROME2",PixelRepresentation:e,ImageOrientationPatient:[l[0],l[1],l[2],c[0],c[1],c[2]],PixelSpacing:[a[1],a[2]],Columns:s[1],Rows:s[2],voiLut:[{windowCenter:f,windowWidth:o}],FrameOfReferenceUID:"1.2.3",Modality:"MR",VOILUTFunction:"LINEAR"},dimensions:[s[1],s[2],s[3]],direction:new Float32Array([l[0],l[1],l[2],c[0],c[1],c[2],h[0],h[1],h[2]])}}const Pi=2,Bi=4,qi=8,Ri=16,Li=64,Gi=256,Zi=512,ki=768;function Yi(i,t){const{datatypeCode:e,scl_slope:n,scl_inter:r}=i;let a=n,s=r;(!n||n===0||Number.isNaN(n))&&(a=1),(!r||Number.isNaN(r))&&(s=0);const o=s<0||a<0,f=s%1!==0||a%1!==0;let l,c,h=1;switch(e){case Pi:l=new Uint8Array(t),f?c=et("Float32Array",l):o?c=et("Int16Array",l):(h=0,c=et("Uint8Array",l));break;case Bi:l=new Int16Array(t),f?c=et("Float32Array",l):c=et("Int16Array",l);break;case qi:l=new Int32Array(t),c=et("Float32Array",l);break;case Ri:{l=new Float32Array(t),c=et("Float32Array",l);break}case Gi:l=new Int8Array(t),f?c=et("Float32Array",l):c=et("Int8Array",l);break;case Zi:l=new Uint16Array(t),f||o?c=et("Float32Array",l):(h=0,c=et("Uint16Array",l));break;case ki:l=new Uint32Array(t),c=et("Float32Array",l);break;case Li:l=new Float64Array(t),c=et("Float64Array",l);break;default:throw new Error(`NIFTI datatypeCode ${e} is not yet supported`)}const v=c.length;if(a!==1&&s!==0)for(let g=0;g<v;g++)c[g]=yn(c[g],a,s);return i.numBitsPerVoxel=c.byteLength/c.length*8,{scalarData:c,pixelRepresentation:h}}function yn(i,t,e){return i*t+e}function Tt(i,t){const e=i/8*t;if(!Ke.isCacheable(e))throw new Error($i.CACHE_SIZE_EXCEEDED);return Ke.decacheIfNecessaryUntilBytesAvailable(e),e}function et(i,t){let e,n;const r=t.length;switch(i){case"Float32Array":e=32,Tt(e,r),n=new Float32Array(r);break;case"Int16Array":e=16,Tt(e,r),n=new Int16Array(r);break;case"Int8Array":e=8,Tt(e,r),n=new Int16Array(r);break;case"Uint16Array":e=16,Tt(e,r),n=new Uint16Array(r);break;case"Uint8Array":e=8,Tt(e,r),n=new Uint8Array(r);break;case"Float64Array":e=64,Tt(e,r),n=new Float64Array(r);break;default:throw new Error(`TypedArray ${i} is not yet supported`)}return n.set(t),n}const On=Object.freeze(Object.defineProperty({__proto__:null,makeVolumeMetadata:Oi,modalityScaleNifti:Yi},Symbol.toStringTag,{value:"Module"}));let Oe={beforeSend(){}};function In(i){Oe=Object.assign(Oe,i)}function Vi(){return Oe}const Vt=new Map;function _n({url:i,signal:t,onload:e}){return new Promise(async(n,r)=>{const a=new XMLHttpRequest;a.open("GET",i,!0);const s={},f=await Vi().beforeSend(a,s,i),l=Object.assign({},s,f);a.responseType="arraybuffer",Object.keys(l).forEach(function(g){l[g]!==null&&a.setRequestHeader(g,l[g])});const c=function(g){e&&typeof e=="function"&&e(),t&&t.removeEventListener("abort",h),n(a.response)},h=()=>{a.abort(),a.removeEventListener("load",c),r(new Error("Request aborted"))};a.addEventListener("load",c);const v=(g,m)=>{const y={url:i,loaded:g,total:m};xe(we,bt.NIFTI_VOLUME_PROGRESS,{data:y})};a.onprogress=function(g){v(g.loaded,g.total)},t&&t.aborted?(a.abort(),r(new Error("Request aborted"))):t&&t.addEventListener("abort",h),a.send()})}function Pn(i){const[t,e]=i.substring(6).split("?frame="),n=parseInt(e,10),r=$e(Qe.IMAGE_PIXEL,i),a=$e(Qe.IMAGE_PLANE,i);return{promise:new Promise((o,f)=>{Vt.get(t)?xn(i,t,n,r,a).then(o).catch(f):(Vt.set(t,{status:"fetching"}),An(i,t,n,r,a).then(o).catch(f))}),cancelFn:void 0,decache:()=>{Vt.delete(t)}}}async function An(i,t,e,n,r){let a=await _n({url:t}),s=null,o=null;if(Et.isCompressed(a)&&(a=Et.decompress(a)),Et.isNIFTI(a))s=Et.readHeader(a),o=Et.readImage(s,a);else{const l="The provided buffer is not a valid NIFTI file.";throw console.warn(l),new Error(l)}const{scalarData:f}=Yi(s,o);return Vt.set(t,{status:"fetched",scalarData:f}),Hi(i,e,n,r,f)}function xn(i,t,e,n,r){return new Promise((a,s)=>{const o=setInterval(()=>{const f=Vt.get(t);f||(clearInterval(o),s(`dataFetchState for ${t} is not found. The cache was purged before it completed loading.`)),(f==null?void 0:f.status)==="fetched"&&(clearInterval(o),a(Hi(i,e,n,r,f.scalarData)))},10)})}function Hi(i,t,e,n,r){const{rows:a,columns:s}=n,o=a*s,f=o*t,l=new r.constructor(o);l.set(r.subarray(f,f+o));const c=Qi.createImageVoxelManager({width:s,height:a,numberOfComponents:1,scalarData:l});let h=l[0],v=l[0];for(let g=1;g<l.length;g++){const m=l[g];m<h&&(h=m),m>v&&(v=m)}return{imageId:i,dataType:r.constructor.name,columnPixelSpacing:n.columnPixelSpacing,columns:n.columns,height:n.rows,invert:e.photometricInterpretation==="MONOCHROME1",rowPixelSpacing:n.rowPixelSpacing,rows:n.rows,sizeInBytes:a*s*r.BYTES_PER_ELEMENT,width:n.columns,getPixelData:()=>c.getScalarData(),getCanvas:void 0,numberOfComponents:void 0,voxelManager:c,minPixelValue:h,maxPixelValue:v}}function wn(i){const t=[i[0][3],i[1][3],i[2][3]],e=[Math.sqrt(i[0][0]**2+i[1][0]**2+i[2][0]**2),Math.sqrt(i[0][1]**2+i[1][1]**2+i[2][1]**2),Math.sqrt(i[0][2]**2+i[1][2]**2+i[2][2]**2)],n=[i[0][0]/e[0],i[0][1]/e[1],i[0][2]/e[2],i[1][0]/e[0],i[1][1]/e[1],i[1][2]/e[2],i[2][0]/e[0],i[2][1]/e[1],i[2][2]/e[2]];return{origin:t,orientation:n,spacing:e}}function Un(i){const{affine:t}=i,{orientation:e,origin:n,spacing:r}=wn(t),a=[-n[0],-n[1],n[2]],s=[-e[0],-e[3],e[6],-e[1],-e[4],e[7],-e[2],-e[5],e[8]];return{origin:a,orientation:s,spacing:r}}function Tn(i){switch(i){case Pi:return Uint8Array;case Bi:return Int16Array;case qi:return Int32Array;case Ri:return Float32Array;case Gi:return Int8Array;case Zi:return Uint16Array;case ki:return Uint32Array;case Li:return Float64Array;default:throw new Error(`NIFTI datatypeCode ${i} is not yet supported`)}}const ei=new Map,Sn=348,Xi=540,Pe=Math.max(Sn,Xi);async function Nn({url:i,onProgress:t,controller:e,onLoad:n,onHeader:r,loadFullVolume:a=!1}){var T;const o=new URL(i).pathname.endsWith(".gz");let f=new Uint8Array(0),l=null;const c=null;let h;const v=0,g=e.signal,m=Vi(),y={},I=await((T=m.beforeSend)==null?void 0:T.call(m,null,y,i)),_=Object.assign({},y,I);Object.keys(_).forEach(function(N){_[N]===null&&(_[N]=void 0)});try{const N=await fetch(i,{signal:g,headers:_});if(!N.ok)throw new Error(`HTTP error! status: ${N.status}`);h=N.headers.get("Content-Length");const p=N.body.getReader(),A=o?new DecompressionStream("gzip"):null,d=A?A.writable.getWriter():null;if(Mn(p,d,o,v,U,e).catch(console.error),o){const E=A.readable.getReader();for(;;){const{done:M,value:C}=await E.read();if(M)break;if(U(C),l&&!a){e.abort();break}}}return n&&typeof n=="function"&&n(),{data:f,headerInfo:l,sliceInfo:c}}catch(N){throw N.name==="AbortError"?console.log("Fetch aborted"):console.error("Fetch error:",N),N}function U(N){w(N),t&&typeof t=="function"&&t(v,h)}function w(N){const p=new Uint8Array(f.length+N.length);p.set(f),p.set(N,f.length),f=p,!a&&!l&&f.length>=Pe&&(l=Fn(f),l&&l.isValid&&e.abort(),r==null||r(l))}}async function Mn(i,t,e,n,r,a){for(;;){const{done:s,value:o}=await i.read();if(s){e&&t.close();break}if(n+=o.length,e?await t.write(o):r(o),a.signal.aborted)break}}function Fn(i){if(i.length<Pe)return{isValid:!1,message:"Not enough data to check header"};try{const t=i.slice(0,Pe).buffer,e=Et.readHeader(t),n=e.sizeof_hdr===Xi?2:1,{orientation:r,origin:a,spacing:s}=Un(e),{dimensions:o,direction:f}=Oi(e,r,1),l=Tn(e.datatypeCode);return{dimensions:o,direction:f,isValid:!0,message:`Valid Nifti-${n} header detected`,origin:a,version:n,orientation:r,spacing:s,header:e,arrayConstructor:l}}catch(t){return console.error("Error reading Nifti header:",t),{isValid:!1,message:"Error reading Nifti header"}}}async function Cn(i){const t=i,e=(_,U)=>{const w={volumeId:i,loaded:_,total:U};xe(we,bt.NIFTI_VOLUME_PROGRESS,{data:w})},n=()=>{const _={volumeId:i};xe(we,bt.NIFTI_VOLUME_LOADED,{data:_})},r=new AbortController;ei.set(t,{controller:r,loading:!0});const a=await new Promise(_=>{Nn({url:t,onProgress:e,controller:r,onLoad:n,onHeader:_})}),{dimensions:s,direction:o,isValid:f,message:l,origin:c,version:h,header:v,spacing:g,arrayConstructor:m}=a,y=s[2];if(!f){console.error(l);return}const I=[];for(let _=0;_<y;_++){const U=`nifti:${t}?frame=${_}`,w=_;I.push(U);const T=[o[0],o[1],o[2],o[3],o[4],o[5]],N=6,p=[parseFloat((c[0]+w*o[6]*g[0]).toFixed(N)),parseFloat((c[1]+w*o[7]*g[1]).toFixed(N)),parseFloat((c[2]+w*o[8]*g[2]).toFixed(N))],A={frameOfReferenceUID:"1.2.840.10008.1.4",rows:s[1],columns:s[0],imageOrientationPatient:T,rowCosines:o.slice(0,3),columnCosines:o.slice(3,6),imagePositionPatient:p,sliceThickness:g[2],sliceLocation:c[2]+_*g[2],pixelSpacing:[g[0],g[1]],rowPixelSpacing:g[1],columnPixelSpacing:g[0]},d={samplesPerPixel:1,photometricInterpretation:"MONOCHROME2",rows:s[1],columns:s[0],bitsAllocated:m.BYTES_PER_ELEMENT*8,bitsStored:m.BYTES_PER_ELEMENT*8,highBit:m.BYTES_PER_ELEMENT*8-1,pixelRepresentation:1,planarConfiguration:0,pixelAspectRatio:"1\\1",redPaletteColorLookupTableDescriptor:[],greenPaletteColorLookupTableDescriptor:[],bluePaletteColorLookupTableDescriptor:[],redPaletteColorLookupTableData:[],greenPaletteColorLookupTableData:[],bluePaletteColorLookupTableData:[],smallestPixelValue:void 0,largestPixelValue:void 0},E={seriesDate:new Date,seriesTime:new Date};Yt.add(U,{type:"imagePixelModule",metadata:d}),Yt.add(U,{type:"imagePlaneModule",metadata:A}),Yt.add(U,{type:"generalSeriesModule",metadata:E}),Yt.add(U,{type:"niftiVersion",metadata:{version:h}}),Yt.addRaw(U,{type:"niftiHeader",metadata:{header:v}})}return ei.delete(t),I}async function Bn({url:i}){return await Cn(i)}function qn(i={}){In(i)}export{zn as Enums,Pn as cornerstoneNiftiImageLoader,Bn as createNiftiImageIdsAndCacheMetadata,On as helpers,qn as init};
|