@niivue/niivue 0.5.1 → 0.8.2
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/README.md +53 -2
- package/dist/niivue.js +1 -1
- package/package.json +1 -1
package/dist/niivue.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see niivue.js.LICENSE.txt */
|
|
2
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.niivue=e():t.niivue=e()}(self,(function(){return(()=>{var t={742:(t,e)=>{"use strict";e.byteLength=function(t){var e=l(t),n=e[0],i=e[1];return 3*(n+i)/4-i},e.toByteArray=function(t){var e,n,s=l(t),r=s[0],a=s[1],h=new o(function(t,e,n){return 3*(e+n)/4-n}(0,r,a)),c=0,f=a>0?r-4:r;for(n=0;n<f;n+=4)e=i[t.charCodeAt(n)]<<18|i[t.charCodeAt(n+1)]<<12|i[t.charCodeAt(n+2)]<<6|i[t.charCodeAt(n+3)],h[c++]=e>>16&255,h[c++]=e>>8&255,h[c++]=255&e;return 2===a&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,h[c++]=255&e),1===a&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,h[c++]=e>>8&255,h[c++]=255&e),h},e.fromByteArray=function(t){for(var e,i=t.length,o=i%3,s=[],r=16383,a=0,l=i-o;a<l;a+=r)s.push(h(t,a,a+r>l?l:a+r));return 1===o?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===o&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),s.join("")};for(var n=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,a=s.length;r<a;++r)n[r]=s[r],i[s.charCodeAt(r)]=r;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function h(t,e,i){for(var o,s,r=[],a=e;a<i;a+=3)o=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),r.push(n[(s=o)>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return r.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},764:(t,e,n)=>{"use strict";const i=n(742),o=n(645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.lW=l,e.h2=50;const r=2147483647;function a(t){if(t>r)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return f(t)}return h(t,e,n)}function h(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|p(t,e);let i=a(n);const o=i.write(t,e);return o!==n&&(i=i.slice(0,o)),i}(t,e);if(ArrayBuffer.isView(t))return function(t){if(q(t,Uint8Array)){const e=new Uint8Array(t);return d(e.buffer,e.byteOffset,e.byteLength)}return u(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(q(t,ArrayBuffer)||t&&q(t.buffer,ArrayBuffer))return d(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(q(t,SharedArrayBuffer)||t&&q(t.buffer,SharedArrayBuffer)))return d(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=t.valueOf&&t.valueOf();if(null!=i&&i!==t)return l.from(i,e,n);const o=function(t){if(l.isBuffer(t)){const e=0|g(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||J(t.length)?a(0):u(t):"Buffer"===t.type&&Array.isArray(t.data)?u(t.data):void 0}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function c(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return c(t),a(t<0?0:0|g(t))}function u(t){const e=t.length<0?0:0|g(t.length),n=a(e);for(let i=0;i<e;i+=1)n[i]=255&t[i];return n}function d(t,e,n){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(n||0))throw new RangeError('"length" is outside of buffer bounds');let i;return i=void 0===e&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,e):new Uint8Array(t,e,n),Object.setPrototypeOf(i,l.prototype),i}function g(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function p(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||q(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;let o=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return X(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return W(t).length;default:if(o)return i?-1:X(t).length;e=(""+e).toLowerCase(),o=!0}}function m(t,e,n){let i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return S(this,e,n);case"utf8":case"utf-8":return B(this,e,n);case"ascii":return M(this,e,n);case"latin1":case"binary":return P(this,e,n);case"base64":return T(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,e,n);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function A(t,e,n){const i=t[e];t[e]=t[n],t[n]=i}function v(t,e,n,i,o){if(0===t.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),J(n=+n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof e&&(e=l.from(e,i)),l.isBuffer(e))return 0===e.length?-1:b(t,e,n,i,o);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):b(t,[e],n,i,o);throw new TypeError("val must be string, number or Buffer")}function b(t,e,n,i,o){let s,r=1,a=t.length,l=e.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;r=2,a/=2,l/=2,n/=2}function h(t,e){return 1===r?t[e]:t.readUInt16BE(e*r)}if(o){let i=-1;for(s=n;s<a;s++)if(h(t,s)===h(e,-1===i?0:s-i)){if(-1===i&&(i=s),s-i+1===l)return i*r}else-1!==i&&(s-=s-i),i=-1}else for(n+l>a&&(n=a-l),s=n;s>=0;s--){let n=!0;for(let i=0;i<l;i++)if(h(t,s+i)!==h(e,i)){n=!1;break}if(n)return s}return-1}function y(t,e,n,i){n=Number(n)||0;const o=t.length-n;i?(i=Number(i))>o&&(i=o):i=o;const s=e.length;let r;for(i>s/2&&(i=s/2),r=0;r<i;++r){const i=parseInt(e.substr(2*r,2),16);if(J(i))return r;t[n+r]=i}return r}function w(t,e,n,i){return V(X(e,t.length-n),t,n,i)}function I(t,e,n,i){return V(function(t){const e=[];for(let n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,i)}function x(t,e,n,i){return V(W(e),t,n,i)}function E(t,e,n,i){return V(function(t,e){let n,i,o;const s=[];for(let r=0;r<t.length&&!((e-=2)<0);++r)n=t.charCodeAt(r),i=n>>8,o=n%256,s.push(o),s.push(i);return s}(e,t.length-n),t,n,i)}function T(t,e,n){return 0===e&&n===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,n))}function B(t,e,n){n=Math.min(t.length,n);const i=[];let o=e;for(;o<n;){const e=t[o];let s=null,r=e>239?4:e>223?3:e>191?2:1;if(o+r<=n){let n,i,a,l;switch(r){case 1:e<128&&(s=e);break;case 2:n=t[o+1],128==(192&n)&&(l=(31&e)<<6|63&n,l>127&&(s=l));break;case 3:n=t[o+1],i=t[o+2],128==(192&n)&&128==(192&i)&&(l=(15&e)<<12|(63&n)<<6|63&i,l>2047&&(l<55296||l>57343)&&(s=l));break;case 4:n=t[o+1],i=t[o+2],a=t[o+3],128==(192&n)&&128==(192&i)&&128==(192&a)&&(l=(15&e)<<18|(63&n)<<12|(63&i)<<6|63&a,l>65535&&l<1114112&&(s=l))}}null===s?(s=65533,r=1):s>65535&&(s-=65536,i.push(s>>>10&1023|55296),s=56320|1023&s),i.push(s),o+=r}return function(t){const e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);let n="",i=0;for(;i<e;)n+=String.fromCharCode.apply(String,t.slice(i,i+=C));return n}(i)}l.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(t,e,n){return h(t,e,n)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,n){return function(t,e,n){return c(t),t<=0?a(t):void 0!==e?"string"==typeof n?a(t).fill(e,n):a(t).fill(e):a(t)}(t,e,n)},l.allocUnsafe=function(t){return f(t)},l.allocUnsafeSlow=function(t){return f(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(q(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),q(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let n=t.length,i=e.length;for(let o=0,s=Math.min(n,i);o<s;++o)if(t[o]!==e[o]){n=t[o],i=e[o];break}return n<i?-1:i<n?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);let n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;const i=l.allocUnsafe(e);let o=0;for(n=0;n<t.length;++n){let e=t[n];if(q(e,Uint8Array))o+e.length>i.length?(l.isBuffer(e)||(e=l.from(e)),e.copy(i,o)):Uint8Array.prototype.set.call(i,e,o);else{if(!l.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(i,o)}o+=e.length}return i},l.byteLength=p,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?B(this,0,t):m.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){let t="";const n=e.h2;return t=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(t+=" ... "),"<Buffer "+t+">"},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,n,i,o){if(q(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),e<0||n>t.length||i<0||o>this.length)throw new RangeError("out of range index");if(i>=o&&e>=n)return 0;if(i>=o)return-1;if(e>=n)return 1;if(this===t)return 0;let s=(o>>>=0)-(i>>>=0),r=(n>>>=0)-(e>>>=0);const a=Math.min(s,r),h=this.slice(i,o),c=t.slice(e,n);for(let t=0;t<a;++t)if(h[t]!==c[t]){s=h[t],r=c[t];break}return s<r?-1:r<s?1:0},l.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},l.prototype.indexOf=function(t,e,n){return v(this,t,e,n,!0)},l.prototype.lastIndexOf=function(t,e,n){return v(this,t,e,n,!1)},l.prototype.write=function(t,e,n,i){if(void 0===e)i="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)i=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}const o=this.length-e;if((void 0===n||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let s=!1;for(;;)switch(i){case"hex":return y(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":case"latin1":case"binary":return I(this,t,e,n);case"base64":return x(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,n);default:if(s)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const C=4096;function M(t,e,n){let i="";n=Math.min(t.length,n);for(let o=e;o<n;++o)i+=String.fromCharCode(127&t[o]);return i}function P(t,e,n){let i="";n=Math.min(t.length,n);for(let o=e;o<n;++o)i+=String.fromCharCode(t[o]);return i}function S(t,e,n){const i=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>i)&&(n=i);let o="";for(let i=e;i<n;++i)o+=K[t[i]];return o}function U(t,e,n){const i=t.slice(e,n);let o="";for(let t=0;t<i.length-1;t+=2)o+=String.fromCharCode(i[t]+256*i[t+1]);return o}function D(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,n,i,o,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||e<s)throw new RangeError('"value" argument is out of bounds');if(n+i>t.length)throw new RangeError("Index out of range")}function F(t,e,n,i,o){H(e,i,o,t,n,7);let s=Number(e&BigInt(4294967295));t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s,s>>=8,t[n++]=s;let r=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=r,r>>=8,t[n++]=r,r>>=8,t[n++]=r,r>>=8,t[n++]=r,n}function N(t,e,n,i,o){H(e,i,o,t,n,7);let s=Number(e&BigInt(4294967295));t[n+7]=s,s>>=8,t[n+6]=s,s>>=8,t[n+5]=s,s>>=8,t[n+4]=s;let r=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=r,r>>=8,t[n+2]=r,r>>=8,t[n+1]=r,r>>=8,t[n]=r,n+8}function k(t,e,n,i,o,s){if(n+i>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function z(t,e,n,i,s){return e=+e,n>>>=0,s||k(t,0,n,4),o.write(t,e,n,i,23,4),n+4}function G(t,e,n,i,s){return e=+e,n>>>=0,s||k(t,0,n,8),o.write(t,e,n,i,52,8),n+8}l.prototype.slice=function(t,e){const n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t);const i=this.subarray(t,e);return Object.setPrototypeOf(i,l.prototype),i},l.prototype.readUintLE=l.prototype.readUIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t],o=1,s=0;for(;++s<e&&(o*=256);)i+=this[t+s]*o;return i},l.prototype.readUintBE=l.prototype.readUIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t+--e],o=1;for(;e>0&&(o*=256);)i+=this[t+--e]*o;return i},l.prototype.readUint8=l.prototype.readUInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),this[t]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readBigUInt64LE=_((function(t){Q(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Z(t,this.length-8);const i=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,o=this[++t]+256*this[++t]+65536*this[++t]+n*2**24;return BigInt(i)+(BigInt(o)<<BigInt(32))})),l.prototype.readBigUInt64BE=_((function(t){Q(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Z(t,this.length-8);const i=e*2**24+65536*this[++t]+256*this[++t]+this[++t],o=this[++t]*2**24+65536*this[++t]+256*this[++t]+n;return(BigInt(i)<<BigInt(32))+BigInt(o)})),l.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t],o=1,s=0;for(;++s<e&&(o*=256);)i+=this[t+s]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*e)),i},l.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=e,o=1,s=this[t+--i];for(;i>0&&(o*=256);)s+=this[t+--i]*o;return o*=128,s>=o&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||D(t,2,this.length);const n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(t,e){t>>>=0,e||D(t,2,this.length);const n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readBigInt64LE=_((function(t){Q(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Z(t,this.length-8);const i=this[t+4]+256*this[t+5]+65536*this[t+6]+(n<<24);return(BigInt(i)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),l.prototype.readBigInt64BE=_((function(t){Q(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Z(t,this.length-8);const i=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(i)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+n)})),l.prototype.readFloatLE=function(t,e){return t>>>=0,e||D(t,4,this.length),o.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||D(t,4,this.length),o.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||D(t,8,this.length),o.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||D(t,8,this.length),o.read(this,t,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(t,e,n,i){t=+t,e>>>=0,n>>>=0,i||R(this,t,e,n,Math.pow(2,8*n)-1,0);let o=1,s=0;for(this[e]=255&t;++s<n&&(o*=256);)this[e+s]=t/o&255;return e+n},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(t,e,n,i){t=+t,e>>>=0,n>>>=0,i||R(this,t,e,n,Math.pow(2,8*n)-1,0);let o=n-1,s=1;for(this[e+o]=255&t;--o>=0&&(s*=256);)this[e+o]=t/s&255;return e+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeBigUInt64LE=_((function(t,e=0){return F(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=_((function(t,e=0){return N(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(t,e,n,i){if(t=+t,e>>>=0,!i){const i=Math.pow(2,8*n-1);R(this,t,e,n,i-1,-i)}let o=0,s=1,r=0;for(this[e]=255&t;++o<n&&(s*=256);)t<0&&0===r&&0!==this[e+o-1]&&(r=1),this[e+o]=(t/s>>0)-r&255;return e+n},l.prototype.writeIntBE=function(t,e,n,i){if(t=+t,e>>>=0,!i){const i=Math.pow(2,8*n-1);R(this,t,e,n,i-1,-i)}let o=n-1,s=1,r=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===r&&0!==this[e+o+1]&&(r=1),this[e+o]=(t/s>>0)-r&255;return e+n},l.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeBigInt64LE=_((function(t,e=0){return F(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=_((function(t,e=0){return N(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(t,e,n){return z(this,t,e,!0,n)},l.prototype.writeFloatBE=function(t,e,n){return z(this,t,e,!1,n)},l.prototype.writeDoubleLE=function(t,e,n){return G(this,t,e,!0,n)},l.prototype.writeDoubleBE=function(t,e,n){return G(this,t,e,!1,n)},l.prototype.copy=function(t,e,n,i){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e<i-n&&(i=t.length-e+n);const o=i-n;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,n,i):Uint8Array.prototype.set.call(t,this.subarray(n,i),e),o},l.prototype.fill=function(t,e,n,i){if("string"==typeof t){if("string"==typeof e?(i=e,e=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!l.isEncoding(i))throw new TypeError("Unknown encoding: "+i);if(1===t.length){const e=t.charCodeAt(0);("utf8"===i&&e<128||"latin1"===i)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;let o;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o<n;++o)this[o]=t;else{const s=l.isBuffer(t)?t:l.from(t,i),r=s.length;if(0===r)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(o=0;o<n-e;++o)this[o+e]=s[o%r]}return this};const L={};function O(t,e,n){L[t]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function Y(t){let e="",n=t.length;const i="-"===t[0]?1:0;for(;n>=i+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function H(t,e,n,i,o,s){if(t>n||t<e){const i="bigint"==typeof e?"n":"";let o;throw o=s>3?0===e||e===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(s+1)}${i}`:`>= -(2${i} ** ${8*(s+1)-1}${i}) and < 2 ** ${8*(s+1)-1}${i}`:`>= ${e}${i} and <= ${n}${i}`,new L.ERR_OUT_OF_RANGE("value",o,t)}!function(t,e,n){Q(e,"offset"),void 0!==t[e]&&void 0!==t[e+n]||Z(e,t.length-(n+1))}(i,o,s)}function Q(t,e){if("number"!=typeof t)throw new L.ERR_INVALID_ARG_TYPE(e,"number",t)}function Z(t,e,n){if(Math.floor(t)!==t)throw Q(t,n),new L.ERR_OUT_OF_RANGE(n||"offset","an integer",t);if(e<0)throw new L.ERR_BUFFER_OUT_OF_BOUNDS;throw new L.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${e}`,t)}O("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),O("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),O("ERR_OUT_OF_RANGE",(function(t,e,n){let i=`The value of "${t}" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=Y(String(n)):"bigint"==typeof n&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=Y(o)),o+="n"),i+=` It must be ${e}. Received ${o}`,i}),RangeError);const j=/[^+/0-9A-Za-z-_]/g;function X(t,e){let n;e=e||1/0;const i=t.length;let o=null;const s=[];for(let r=0;r<i;++r){if(n=t.charCodeAt(r),n>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(r+1===i){(e-=3)>-1&&s.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&s.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(e-=3)>-1&&s.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;s.push(n)}else if(n<2048){if((e-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function W(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(j,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,n,i){let o;for(o=0;o<i&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function q(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function J(t){return t!=t}const K=function(){const t="0123456789abcdef",e=new Array(256);for(let n=0;n<16;++n){const i=16*n;for(let o=0;o<16;++o)e[i+o]=t[n]+t[o]}return e}();function _(t){return"undefined"==typeof BigInt?$:t}function $(){throw new Error("BigInt not supported")}},645:(t,e)=>{e.read=function(t,e,n,i,o){var s,r,a=8*o-i-1,l=(1<<a)-1,h=l>>1,c=-7,f=n?o-1:0,u=n?-1:1,d=t[e+f];for(f+=u,s=d&(1<<-c)-1,d>>=-c,c+=a;c>0;s=256*s+t[e+f],f+=u,c-=8);for(r=s&(1<<-c)-1,s>>=-c,c+=i;c>0;r=256*r+t[e+f],f+=u,c-=8);if(0===s)s=1-h;else{if(s===l)return r?NaN:1/0*(d?-1:1);r+=Math.pow(2,i),s-=h}return(d?-1:1)*r*Math.pow(2,s-i)},e.write=function(t,e,n,i,o,s){var r,a,l,h=8*s-o-1,c=(1<<h)-1,f=c>>1,u=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:s-1,g=i?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=c):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),(e+=r+f>=1?u/l:u*Math.pow(2,1-f))*l>=2&&(r++,l/=2),r+f>=c?(a=0,r=c):r+f>=1?(a=(e*l-1)*Math.pow(2,o),r+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,o),r=0));o>=8;t[n+d]=255&a,d+=g,a/=256,o-=8);for(r=r<<o|a,h+=o;h>0;t[n+d]=255&r,d+=g,r/=256,h-=8);t[n+d-g]|=128*p}},75:(t,e,n)=>{"use strict";var i=i||{};i.NIFTI1=i.NIFTI1||n(668),i.NIFTI2=i.NIFTI2||n(704),i.Utils=i.Utils||n(786);var o=o||n(591);i.isNIFTI1=function(t){var e,n,o,s;return!(t.byteLength<i.NIFTI1.STANDARD_HEADER_SIZE||((e=new DataView(t))&&(n=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION)),o=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION+1),s=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION+2),n!==i.NIFTI1.MAGIC_NUMBER[0]||o!==i.NIFTI1.MAGIC_NUMBER[1]||s!==i.NIFTI1.MAGIC_NUMBER[2]))},i.isNIFTI2=function(t){var e,n,o,s;return!(t.byteLength<i.NIFTI1.STANDARD_HEADER_SIZE||(n=(e=new DataView(t)).getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION),o=e.getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION+1),s=e.getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION+2),n!==i.NIFTI2.MAGIC_NUMBER[0]||o!==i.NIFTI2.MAGIC_NUMBER[1]||s!==i.NIFTI2.MAGIC_NUMBER[2]))},i.isNIFTI=function(t){return i.isNIFTI1(t)||i.isNIFTI2(t)},i.isCompressed=function(t){var e,n,o;if(t){if(n=(e=new DataView(t)).getUint8(0),o=e.getUint8(1),n===i.Utils.GUNZIP_MAGIC_COOKIE1)return!0;if(o===i.Utils.GUNZIP_MAGIC_COOKIE2)return!0}return!1},i.decompress=function(t){return o.inflate(t).buffer},i.readHeader=function(t){var e=null;return i.isCompressed(t)&&(t=i.decompress(t)),i.isNIFTI1(t)?e=new i.NIFTI1:i.isNIFTI2(t)&&(e=new i.NIFTI2),e?e.readHeader(t):console.error("That file does not appear to be NIFTI!"),e},i.hasExtension=function(t){return 0!=t.extensionFlag[0]},i.readImage=function(t,e){var n=t.vox_offset,i=1,o=1;t.dims[4]&&(i=t.dims[4]),t.dims[5]&&(o=t.dims[5]);var s=t.dims[1]*t.dims[2]*t.dims[3]*i*o*(t.numBitsPerVoxel/8);return e.slice(n,n+s)},i.readExtension=function(t,e){var n=t.getExtensionLocation(),i=t.extensionSize;return e.slice(n,n+i)},i.readExtensionData=function(t,e){var n=t.getExtensionLocation(),i=t.extensionSize;return e.slice(n+8,n+i-8)},t.exports&&(t.exports=i)},668:(t,e,n)=>{"use strict";var i=i||{};i.Utils=i.Utils||n(786),i.NIFTI1=i.NIFTI1||function(){this.littleEndian=!1,this.dim_info=0,this.dims=[],this.intent_p1=0,this.intent_p2=0,this.intent_p3=0,this.intent_code=0,this.datatypeCode=0,this.numBitsPerVoxel=0,this.slice_start=0,this.slice_end=0,this.slice_code=0,this.pixDims=[],this.vox_offset=0,this.scl_slope=1,this.scl_inter=0,this.xyzt_units=0,this.cal_max=0,this.cal_min=0,this.slice_duration=0,this.toffset=0,this.description="",this.aux_file="",this.intent_name="",this.qform_code=0,this.sform_code=0,this.quatern_b=0,this.quatern_c=0,this.quatern_d=0,this.qoffset_x=0,this.qoffset_y=0,this.qoffset_z=0,this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],this.magic=0,this.isHDR=!1,this.extensionFlag=[0,0,0,0],this.extensionSize=0,this.extensionCode=0},i.NIFTI1.TYPE_NONE=0,i.NIFTI1.TYPE_BINARY=1,i.NIFTI1.TYPE_UINT8=2,i.NIFTI1.TYPE_INT16=4,i.NIFTI1.TYPE_INT32=8,i.NIFTI1.TYPE_FLOAT32=16,i.NIFTI1.TYPE_COMPLEX64=32,i.NIFTI1.TYPE_FLOAT64=64,i.NIFTI1.TYPE_RGB24=128,i.NIFTI1.TYPE_INT8=256,i.NIFTI1.TYPE_UINT16=512,i.NIFTI1.TYPE_UINT32=768,i.NIFTI1.TYPE_INT64=1024,i.NIFTI1.TYPE_UINT64=1280,i.NIFTI1.TYPE_FLOAT128=1536,i.NIFTI1.TYPE_COMPLEX128=1792,i.NIFTI1.TYPE_COMPLEX256=2048,i.NIFTI1.XFORM_UNKNOWN=0,i.NIFTI1.XFORM_SCANNER_ANAT=1,i.NIFTI1.XFORM_ALIGNED_ANAT=2,i.NIFTI1.XFORM_TALAIRACH=3,i.NIFTI1.XFORM_MNI_152=4,i.NIFTI1.SPATIAL_UNITS_MASK=7,i.NIFTI1.TEMPORAL_UNITS_MASK=56,i.NIFTI1.UNITS_UNKNOWN=0,i.NIFTI1.UNITS_METER=1,i.NIFTI1.UNITS_MM=2,i.NIFTI1.UNITS_MICRON=3,i.NIFTI1.UNITS_SEC=8,i.NIFTI1.UNITS_MSEC=16,i.NIFTI1.UNITS_USEC=24,i.NIFTI1.UNITS_HZ=32,i.NIFTI1.UNITS_PPM=40,i.NIFTI1.UNITS_RADS=48,i.NIFTI1.MAGIC_COOKIE=348,i.NIFTI1.STANDARD_HEADER_SIZE=348,i.NIFTI1.MAGIC_NUMBER_LOCATION=344,i.NIFTI1.MAGIC_NUMBER=[110,43,49],i.NIFTI1.MAGIC_NUMBER2=[110,105,49],i.NIFTI1.EXTENSION_HEADER_SIZE=8,i.NIFTI1.prototype.readHeader=function(t){var e,n,o,s,r=new DataView(t),a=i.Utils.getIntAt(r,0,this.littleEndian);if(a!==i.NIFTI1.MAGIC_COOKIE&&(this.littleEndian=!0,a=i.Utils.getIntAt(r,0,this.littleEndian)),a!==i.NIFTI1.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.dim_info=i.Utils.getByteAt(r,39),e=0;e<8;e+=1)s=40+2*e,this.dims[e]=i.Utils.getShortAt(r,s,this.littleEndian);for(this.intent_p1=i.Utils.getFloatAt(r,56,this.littleEndian),this.intent_p2=i.Utils.getFloatAt(r,60,this.littleEndian),this.intent_p3=i.Utils.getFloatAt(r,64,this.littleEndian),this.intent_code=i.Utils.getShortAt(r,68,this.littleEndian),this.datatypeCode=i.Utils.getShortAt(r,70,this.littleEndian),this.numBitsPerVoxel=i.Utils.getShortAt(r,72,this.littleEndian),this.slice_start=i.Utils.getShortAt(r,74,this.littleEndian),e=0;e<8;e+=1)s=76+4*e,this.pixDims[e]=i.Utils.getFloatAt(r,s,this.littleEndian);for(this.vox_offset=i.Utils.getFloatAt(r,108,this.littleEndian),this.scl_slope=i.Utils.getFloatAt(r,112,this.littleEndian),this.scl_inter=i.Utils.getFloatAt(r,116,this.littleEndian),this.slice_end=i.Utils.getShortAt(r,120,this.littleEndian),this.slice_code=i.Utils.getByteAt(r,122),this.xyzt_units=i.Utils.getByteAt(r,123),this.cal_max=i.Utils.getFloatAt(r,124,this.littleEndian),this.cal_min=i.Utils.getFloatAt(r,128,this.littleEndian),this.slice_duration=i.Utils.getFloatAt(r,132,this.littleEndian),this.toffset=i.Utils.getFloatAt(r,136,this.littleEndian),this.description=i.Utils.getStringAt(r,148,228),this.aux_file=i.Utils.getStringAt(r,228,252),this.qform_code=i.Utils.getShortAt(r,252,this.littleEndian),this.sform_code=i.Utils.getShortAt(r,254,this.littleEndian),this.quatern_b=i.Utils.getFloatAt(r,256,this.littleEndian),this.quatern_c=i.Utils.getFloatAt(r,260,this.littleEndian),this.quatern_d=i.Utils.getFloatAt(r,264,this.littleEndian),this.qoffset_x=i.Utils.getFloatAt(r,268,this.littleEndian),this.qoffset_y=i.Utils.getFloatAt(r,272,this.littleEndian),this.qoffset_z=i.Utils.getFloatAt(r,276,this.littleEndian),n=0;n<3;n+=1)for(o=0;o<4;o+=1)s=280+4*(4*n+o),this.affine[n][o]=i.Utils.getFloatAt(r,s,this.littleEndian);this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.intent_name=i.Utils.getStringAt(r,328,344),this.magic=i.Utils.getStringAt(r,344,348),this.isHDR=this.magic===i.NIFTI1.MAGIC_NUMBER2,r.byteLength>i.NIFTI1.MAGIC_COOKIE&&(this.extensionFlag[0]=i.Utils.getByteAt(r,348),this.extensionFlag[1]=i.Utils.getByteAt(r,349),this.extensionFlag[2]=i.Utils.getByteAt(r,350),this.extensionFlag[3]=i.Utils.getByteAt(r,351),this.extensionFlag[0]&&(this.extensionSize=this.getExtensionSize(r),this.extensionCode=this.getExtensionCode(r)))},i.NIFTI1.prototype.toFormattedString=function(){var t=i.Utils.formatNumber,e="";return e+="Dim Info = "+this.dim_info+"\n",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]+"\n",e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n",e+="Intent Code = "+this.intent_code+"\n",e+="Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n",e+="Bits Per Voxel = "+this.numBitsPerVoxel+"\n",e+="Slice Start = "+this.slice_start+"\n",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])+"\n",e+="Image Offset = "+this.vox_offset+"\n",e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+"\n",e+="Slice End = "+this.slice_end+"\n",e+="Slice Code = "+this.slice_code+"\n",e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(i.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(i.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n",e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+"\n",e+="Slice Duration = "+this.slice_duration+"\n",e+="Time Axis Shift = "+this.toffset+"\n",e+='Description: "'+this.description+'"\n',e+='Auxiliary File: "'+this.aux_file+'"\n',e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n",e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n",e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+"\n",e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+"\n",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])+"\n",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])+"\n",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])+"\n",e+='Intent Name: "'+this.intent_name+'"\n',this.extensionFlag[0]&&(e+="Extension: Size = "+this.extensionSize+" Code = "+this.extensionCode+"\n"),e},i.NIFTI1.prototype.getDatatypeCodeString=function(t){return t===i.NIFTI1.TYPE_UINT8?"1-Byte Unsigned Integer":t===i.NIFTI1.TYPE_INT16?"2-Byte Signed Integer":t===i.NIFTI1.TYPE_INT32?"4-Byte Signed Integer":t===i.NIFTI1.TYPE_FLOAT32?"4-Byte Float":t===i.NIFTI1.TYPE_FLOAT64?"8-Byte Float":t===i.NIFTI1.TYPE_RGB24?"RGB":t===i.NIFTI1.TYPE_INT8?"1-Byte Signed Integer":t===i.NIFTI1.TYPE_UINT16?"2-Byte Unsigned Integer":t===i.NIFTI1.TYPE_UINT32?"4-Byte Unsigned Integer":t===i.NIFTI1.TYPE_INT64?"8-Byte Signed Integer":t===i.NIFTI1.TYPE_UINT64?"8-Byte Unsigned Integer":"Unknown"},i.NIFTI1.prototype.getTransformCodeString=function(t){return t===i.NIFTI1.XFORM_SCANNER_ANAT?"Scanner":t===i.NIFTI1.XFORM_ALIGNED_ANAT?"Aligned":t===i.NIFTI1.XFORM_TALAIRACH?"Talairach":t===i.NIFTI1.XFORM_MNI_152?"MNI":"Unknown"},i.NIFTI1.prototype.getUnitsCodeString=function(t){return t===i.NIFTI1.UNITS_METER?"Meters":t===i.NIFTI1.UNITS_MM?"Millimeters":t===i.NIFTI1.UNITS_MICRON?"Microns":t===i.NIFTI1.UNITS_SEC?"Seconds":t===i.NIFTI1.UNITS_MSEC?"Milliseconds":t===i.NIFTI1.UNITS_USEC?"Microseconds":t===i.NIFTI1.UNITS_HZ?"Hz":t===i.NIFTI1.UNITS_PPM?"PPM":t===i.NIFTI1.UNITS_RADS?"Rads":"Unknown"},i.NIFTI1.prototype.getQformMat=function(){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])},i.NIFTI1.prototype.convertNiftiQFormToNiftiSForm=function(t,e,n,i,o,s,r,a,l,h){var c,f,u,d,g=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],p=t,m=e,A=n;return g[3][0]=g[3][1]=g[3][2]=0,g[3][3]=1,(c=1-(p*p+m*m+A*A))<1e-7?(p*=c=1/Math.sqrt(p*p+m*m+A*A),m*=c,A*=c,c=0):c=Math.sqrt(c),f=r>0?r:1,u=a>0?a:1,d=l>0?l:1,h<0&&(d=-d),g[0][0]=(c*c+p*p-m*m-A*A)*f,g[0][1]=2*(p*m-c*A)*u,g[0][2]=2*(p*A+c*m)*d,g[1][0]=2*(p*m+c*A)*f,g[1][1]=(c*c+m*m-p*p-A*A)*u,g[1][2]=2*(m*A-c*p)*d,g[2][0]=2*(p*A-c*m)*f,g[2][1]=2*(m*A+c*p)*u,g[2][2]=(c*c+A*A-m*m-p*p)*d,g[0][3]=i,g[1][3]=o,g[2][3]=s,g},i.NIFTI1.prototype.convertNiftiSFormToNEMA=function(t){var e,n,i,o,s,r,a,l,h,c,f,u,d,g,p,m,A,v,b,y,w,I,x,E,T,B,C,M,P,S,U,D,R;if(g=0,B=[[0,0,0],[0,0,0],[0,0,0]],C=[[0,0,0],[0,0,0],[0,0,0]],e=t[0][0],n=t[0][1],i=t[0][2],o=t[1][0],s=t[1][1],r=t[1][2],a=t[2][0],l=t[2][1],h=t[2][2],0===(c=Math.sqrt(e*e+o*o+a*a)))return null;if(e/=c,o/=c,a/=c,0===(c=Math.sqrt(n*n+s*s+l*l)))return null;if(c=e*(n/=c)+o*(s/=c)+a*(l/=c),Math.abs(c)>1e-4){if(n-=c*e,s-=c*o,l-=c*a,0===(c=Math.sqrt(n*n+s*s+l*l)))return null;n/=c,s/=c,l/=c}if(0===(c=Math.sqrt(i*i+r*r+h*h))?(i=o*l-a*s,r=a*n-l*e,h=e*s-o*n):(i/=c,r/=c,h/=c),c=e*i+o*r+a*h,Math.abs(c)>1e-4){if(i-=c*e,r-=c*o,h-=c*a,0===(c=Math.sqrt(i*i+r*r+h*h)))return null;i/=c,r/=c,h/=c}if(c=n*i+s*r+l*h,Math.abs(c)>1e-4){if(i-=c*n,r-=c*s,h-=c*l,0===(c=Math.sqrt(i*i+r*r+h*h)))return null;i/=c,r/=c,h/=c}if(B[0][0]=e,B[0][1]=n,B[0][2]=i,B[1][0]=o,B[1][1]=s,B[1][2]=r,B[2][0]=a,B[2][1]=l,B[2][2]=h,0===(f=this.nifti_mat33_determ(B)))return null;for(T=-666,v=w=I=x=1,b=2,y=3,u=1;u<=3;u+=1)for(d=1;d<=3;d+=1)if(u!==d)for(g=1;g<=3;g+=1)if(u!==g&&d!==g)for(C[0][0]=C[0][1]=C[0][2]=C[1][0]=C[1][1]=C[1][2]=C[2][0]=C[2][1]=C[2][2]=0,p=-1;p<=1;p+=2)for(m=-1;m<=1;m+=2)for(A=-1;A<=1;A+=2)C[0][u-1]=p,C[1][d-1]=m,C[2][g-1]=A,this.nifti_mat33_determ(C)*f>0&&(c=(E=this.nifti_mat33_mul(C,B))[0][0]+E[1][1]+E[2][2])>T&&(T=c,v=u,b=d,y=g,w=p,I=m,x=A);switch(M=P=S=U=D=R=0,v*w){case 1:M="X",U="+";break;case-1:M="X",U="-";break;case 2:M="Y",U="+";break;case-2:M="Y",U="-";break;case 3:M="Z",U="+";break;case-3:M="Z",U="-"}switch(b*I){case 1:P="X",D="+";break;case-1:P="X",D="-";break;case 2:P="Y",D="+";break;case-2:P="Y",D="-";break;case 3:P="Z",D="+";break;case-3:P="Z",D="-"}switch(y*x){case 1:S="X",R="+";break;case-1:S="X",R="-";break;case 2:S="Y",R="+";break;case-2:S="Y",R="-";break;case 3:S="Z",R="+";break;case-3:S="Z",R="-"}return M+P+S+U+D+R},i.NIFTI1.prototype.nifti_mat33_mul=function(t,e){var n,i,o=[[0,0,0],[0,0,0],[0,0,0]];for(n=0;n<3;n+=1)for(i=0;i<3;i+=1)o[n][i]=t[n][0]*e[0][i]+t[n][1]*e[1][i]+t[n][2]*e[2][i];return o},i.NIFTI1.prototype.nifti_mat33_determ=function(t){var e,n,i,o,s,r,a,l,h;return e=t[0][0],n=t[0][1],i=t[0][2],o=t[1][0],s=t[1][1],r=t[1][2],a=t[2][0],l=t[2][1],e*s*(h=t[2][2])-e*l*r-o*n*h+o*l*i+a*n*r-a*s*i},i.NIFTI1.prototype.getExtensionLocation=function(){return i.NIFTI1.MAGIC_COOKIE+4},i.NIFTI1.prototype.getExtensionSize=function(t){return i.Utils.getIntAt(t,this.getExtensionLocation(),this.littleEndian)},i.NIFTI1.prototype.getExtensionCode=function(t){return i.Utils.getIntAt(t,this.getExtensionLocation()+4,this.littleEndian)},t.exports&&(t.exports=i.NIFTI1)},704:(t,e,n)=>{"use strict";var i=i||{};i.Utils=i.Utils||n(786),i.NIFTI1=i.NIFTI1||n(668),i.NIFTI2=i.NIFTI2||function(){this.littleEndian=!1,this.dim_info=0,this.dims=[],this.intent_p1=0,this.intent_p2=0,this.intent_p3=0,this.intent_code=0,this.datatypeCode=0,this.numBitsPerVoxel=0,this.slice_start=0,this.slice_end=0,this.slice_code=0,this.pixDims=[],this.vox_offset=0,this.scl_slope=1,this.scl_inter=0,this.xyzt_units=0,this.cal_max=0,this.cal_min=0,this.slice_duration=0,this.toffset=0,this.description="",this.aux_file="",this.intent_name="",this.qform_code=0,this.sform_code=0,this.quatern_b=0,this.quatern_c=0,this.quatern_d=0,this.qoffset_x=0,this.qoffset_y=0,this.qoffset_z=0,this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],this.magic=0,this.extensionFlag=[0,0,0,0]},i.NIFTI2.MAGIC_COOKIE=540,i.NIFTI2.MAGIC_NUMBER_LOCATION=4,i.NIFTI2.MAGIC_NUMBER=[110,43,50,0,13,10,26,10],i.NIFTI2.prototype.readHeader=function(t){var e,n,o,s,r=new DataView(t),a=i.Utils.getIntAt(r,0,this.littleEndian);if(a!==i.NIFTI2.MAGIC_COOKIE&&(this.littleEndian=!0,a=i.Utils.getIntAt(r,0,this.littleEndian)),a!==i.NIFTI2.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.datatypeCode=i.Utils.getShortAt(r,12,this.littleEndian),this.numBitsPerVoxel=i.Utils.getShortAt(r,14,this.littleEndian),e=0;e<8;e+=1)s=16+8*e,this.dims[e]=i.Utils.getLongAt(r,s,this.littleEndian);for(this.intent_p1=i.Utils.getDoubleAt(r,80,this.littleEndian),this.intent_p2=i.Utils.getDoubleAt(r,88,this.littleEndian),this.intent_p3=i.Utils.getDoubleAt(r,96,this.littleEndian),e=0;e<8;e+=1)s=104+8*e,this.pixDims[e]=i.Utils.getDoubleAt(r,s,this.littleEndian);for(this.vox_offset=i.Utils.getLongAt(r,168,this.littleEndian),this.scl_slope=i.Utils.getDoubleAt(r,176,this.littleEndian),this.scl_inter=i.Utils.getDoubleAt(r,184,this.littleEndian),this.cal_max=i.Utils.getDoubleAt(r,192,this.littleEndian),this.cal_min=i.Utils.getDoubleAt(r,200,this.littleEndian),this.slice_duration=i.Utils.getDoubleAt(r,208,this.littleEndian),this.toffset=i.Utils.getDoubleAt(r,216,this.littleEndian),this.slice_start=i.Utils.getLongAt(r,224,this.littleEndian),this.slice_end=i.Utils.getLongAt(r,232,this.littleEndian),this.description=i.Utils.getStringAt(r,240,320),this.aux_file=i.Utils.getStringAt(r,320,344),this.qform_code=i.Utils.getIntAt(r,344,this.littleEndian),this.sform_code=i.Utils.getIntAt(r,348,this.littleEndian),this.quatern_b=i.Utils.getDoubleAt(r,352,this.littleEndian),this.quatern_c=i.Utils.getDoubleAt(r,360,this.littleEndian),this.quatern_d=i.Utils.getDoubleAt(r,368,this.littleEndian),this.qoffset_x=i.Utils.getDoubleAt(r,376,this.littleEndian),this.qoffset_y=i.Utils.getDoubleAt(r,384,this.littleEndian),this.qoffset_z=i.Utils.getDoubleAt(r,392,this.littleEndian),n=0;n<3;n+=1)for(o=0;o<4;o+=1)s=400+8*(4*n+o),this.affine[n][o]=i.Utils.getDoubleAt(r,s,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=i.Utils.getIntAt(r,496,this.littleEndian),this.xyzt_units=i.Utils.getIntAt(r,500,this.littleEndian),this.intent_code=i.Utils.getIntAt(r,504,this.littleEndian),this.intent_name=i.Utils.getStringAt(r,508,524),this.dim_info=i.Utils.getByteAt(r,524),r.byteLength>i.NIFTI2.MAGIC_COOKIE&&(this.extensionFlag[0]=i.Utils.getByteAt(r,540),this.extensionFlag[1]=i.Utils.getByteAt(r,541),this.extensionFlag[2]=i.Utils.getByteAt(r,542),this.extensionFlag[3]=i.Utils.getByteAt(r,543),this.extensionFlag[0]&&(this.extensionSize=this.getExtensionSize(r),this.extensionCode=this.getExtensionCode(r)))},i.NIFTI2.prototype.toFormattedString=function(){var t=i.Utils.formatNumber,e="";return e+="Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n",e+="Bits Per Voxel = = "+this.numBitsPerVoxel+"\n",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]+"\n",e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n",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])+"\n",e+="Image Offset = "+this.vox_offset+"\n",e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+"\n",e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+"\n",e+="Slice Duration = "+this.slice_duration+"\n",e+="Time Axis Shift = "+this.toffset+"\n",e+="Slice Start = "+this.slice_start+"\n",e+="Slice End = "+this.slice_end+"\n",e+='Description: "'+this.description+'"\n',e+='Auxiliary File: "'+this.aux_file+'"\n',e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n",e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n",e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+"\n",e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+"\n",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])+"\n",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])+"\n",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])+"\n",e+="Slice Code = "+this.slice_code+"\n",e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(i.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(i.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n",e+="Intent Code = "+this.intent_code+"\n",(e+='Intent Name: "'+this.intent_name+'"\n')+"Dim Info = "+this.dim_info+"\n"},i.NIFTI2.prototype.getExtensionLocation=function(){return i.NIFTI2.MAGIC_COOKIE+4},i.NIFTI2.prototype.getExtensionSize=i.NIFTI1.prototype.getExtensionSize,i.NIFTI2.prototype.getExtensionCode=i.NIFTI1.prototype.getExtensionCode,i.NIFTI2.prototype.getDatatypeCodeString=i.NIFTI1.prototype.getDatatypeCodeString,i.NIFTI2.prototype.getTransformCodeString=i.NIFTI1.prototype.getTransformCodeString,i.NIFTI2.prototype.getUnitsCodeString=i.NIFTI1.prototype.getUnitsCodeString,i.NIFTI2.prototype.getQformMat=i.NIFTI1.prototype.getQformMat,i.NIFTI2.prototype.convertNiftiQFormToNiftiSForm=i.NIFTI1.prototype.convertNiftiQFormToNiftiSForm,i.NIFTI2.prototype.convertNiftiSFormToNEMA=i.NIFTI1.prototype.convertNiftiSFormToNEMA,i.NIFTI2.prototype.nifti_mat33_mul=i.NIFTI1.prototype.nifti_mat33_mul,i.NIFTI2.prototype.nifti_mat33_determ=i.NIFTI1.prototype.nifti_mat33_determ,t.exports&&(t.exports=i.NIFTI2)},786:t=>{"use strict";var e=e||{};e.Utils=e.Utils||{},e.Utils.crcTable=null,e.Utils.GUNZIP_MAGIC_COOKIE1=31,e.Utils.GUNZIP_MAGIC_COOKIE2=139,e.Utils.getStringAt=function(t,e,n){var i,o,s="";for(i=e;i<n;i+=1)0!==(o=t.getUint8(i))&&(s+=String.fromCharCode(o));return s},e.Utils.getByteAt=function(t,e){return t.getInt8(e)},e.Utils.getShortAt=function(t,e,n){return t.getInt16(e,n)},e.Utils.getIntAt=function(t,e,n){return t.getInt32(e,n)},e.Utils.getFloatAt=function(t,e,n){return t.getFloat32(e,n)},e.Utils.getDoubleAt=function(t,e,n){return t.getFloat64(e,n)},e.Utils.getLongAt=function(t,n,i){var o,s=[],r=0;for(o=0;o<8;o+=1)s[o]=e.Utils.getByteAt(t,n+o,i);for(o=s.length-1;o>=0;o--)r=256*r+s[o];return r},e.Utils.toArrayBuffer=function(t){var e,n,i;for(e=new ArrayBuffer(t.length),n=new Uint8Array(e),i=0;i<t.length;i+=1)n[i]=t[i];return e},e.Utils.isString=function(t){return"string"==typeof t||t instanceof String},e.Utils.formatNumber=function(t,n){var i=0;return i=e.Utils.isString(t)?Number(t):t,i=n?i.toPrecision(5):i.toPrecision(7),parseFloat(i)},e.Utils.makeCRCTable=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e},e.Utils.crc32=function(t){for(var n=e.Utils.crcTable||(e.Utils.crcTable=e.Utils.makeCRCTable()),i=-1,o=0;o<t.byteLength;o++)i=i>>>8^n[255&(i^t.getUint8(o))];return(-1^i)>>>0},t.exports&&(t.exports=e.Utils)},591:(t,e,n)=>{"use strict";const{Deflate:i,deflate:o,deflateRaw:s,gzip:r}=n(555),{Inflate:a,inflate:l,inflateRaw:h,ungzip:c}=n(843),f=n(619);t.exports.Deflate=i,t.exports.deflate=o,t.exports.deflateRaw=s,t.exports.gzip=r,t.exports.Inflate=a,t.exports.inflate=l,t.exports.inflateRaw=h,t.exports.ungzip=c,t.exports.constants=f},555:(t,e,n)=>{"use strict";const i=n(405),o=n(236),s=n(373),r=n(898),a=n(292),l=Object.prototype.toString,{Z_NO_FLUSH:h,Z_SYNC_FLUSH:c,Z_FULL_FLUSH:f,Z_FINISH:u,Z_OK:d,Z_STREAM_END:g,Z_DEFAULT_COMPRESSION:p,Z_DEFAULT_STRATEGY:m,Z_DEFLATED:A}=n(619);function v(t){this.options=o.assign({level:p,method:A,chunkSize:16384,windowBits:15,memLevel:8,strategy:m},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;let n=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(r[n]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?s.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,n=i.deflateSetDictionary(this.strm,t),n!==d)throw new Error(r[n]);this._dict_set=!0}}function b(t,e){const n=new v(e);if(n.push(t,!0),n.err)throw n.msg||r[n.err];return n.result}v.prototype.push=function(t,e){const n=this.strm,o=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?u:h,"string"==typeof t?n.input=s.string2buf(t):"[object ArrayBuffer]"===l.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),(a===c||a===f)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=i.deflate(n,a),r===g)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=i.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===d;if(0!==n.avail_out){if(a>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},v.prototype.onData=function(t){this.chunks.push(t)},v.prototype.onEnd=function(t){t===d&&(this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},t.exports.Deflate=v,t.exports.deflate=b,t.exports.deflateRaw=function(t,e){return(e=e||{}).raw=!0,b(t,e)},t.exports.gzip=function(t,e){return(e=e||{}).gzip=!0,b(t,e)},t.exports.constants=n(619)},843:(t,e,n)=>{"use strict";const i=n(948),o=n(236),s=n(373),r=n(898),a=n(292),l=n(401),h=Object.prototype.toString,{Z_NO_FLUSH:c,Z_FINISH:f,Z_OK:u,Z_STREAM_END:d,Z_NEED_DICT:g,Z_STREAM_ERROR:p,Z_DATA_ERROR:m,Z_MEM_ERROR:A}=n(619);function v(t){this.options=o.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;let n=i.inflateInit2(this.strm,e.windowBits);if(n!==u)throw new Error(r[n]);if(this.header=new l,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=s.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=i.inflateSetDictionary(this.strm,e.dictionary),n!==u)))throw new Error(r[n])}function b(t,e){const n=new v(e);if(n.push(t),n.err)throw n.msg||r[n.err];return n.result}v.prototype.push=function(t,e){const n=this.strm,o=this.options.chunkSize,r=this.options.dictionary;let a,l,v;if(this.ended)return!1;for(l=e===~~e?e:!0===e?f:c,"[object ArrayBuffer]"===h.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(o),n.next_out=0,n.avail_out=o),a=i.inflate(n,l),a===g&&r&&(a=i.inflateSetDictionary(n,r),a===u?a=i.inflate(n,l):a===m&&(a=g));n.avail_in>0&&a===d&&n.state.wrap>0&&0!==t[n.next_in];)i.inflateReset(n),a=i.inflate(n,l);switch(a){case p:case m:case g:case A:return this.onEnd(a),this.ended=!0,!1}if(v=n.avail_out,n.next_out&&(0===n.avail_out||a===d))if("string"===this.options.to){let t=s.utf8border(n.output,n.next_out),e=n.next_out-t,i=s.buf2string(n.output,t);n.next_out=e,n.avail_out=o-e,e&&n.output.set(n.output.subarray(t,t+e),0),this.onData(i)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==u||0!==v){if(a===d)return a=i.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},v.prototype.onData=function(t){this.chunks.push(t)},v.prototype.onEnd=function(t){t===u&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},t.exports.Inflate=v,t.exports.inflate=b,t.exports.inflateRaw=function(t,e){return(e=e||{}).raw=!0,b(t,e)},t.exports.ungzip=b,t.exports.constants=n(619)},236:t=>{"use strict";const e=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);t.exports.assign=function(t){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const i=n.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const n in i)e(i,n)&&(t[n]=i[n])}}return t},t.exports.flattenChunks=t=>{let e=0;for(let n=0,i=t.length;n<i;n++)e+=t[n].length;const n=new Uint8Array(e);for(let e=0,i=0,o=t.length;e<o;e++){let o=t[e];n.set(o,i),i+=o.length}return n}},373:t=>{"use strict";let e=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){e=!1}const n=new Uint8Array(256);for(let t=0;t<256;t++)n[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;n[254]=n[254]=1,t.exports.string2buf=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,n,i,o,s,r=t.length,a=0;for(o=0;o<r;o++)n=t.charCodeAt(o),55296==(64512&n)&&o+1<r&&(i=t.charCodeAt(o+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),o++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(a),s=0,o=0;s<a;o++)n=t.charCodeAt(o),55296==(64512&n)&&o+1<r&&(i=t.charCodeAt(o+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),o++)),n<128?e[s++]=n:n<2048?(e[s++]=192|n>>>6,e[s++]=128|63&n):n<65536?(e[s++]=224|n>>>12,e[s++]=128|n>>>6&63,e[s++]=128|63&n):(e[s++]=240|n>>>18,e[s++]=128|n>>>12&63,e[s++]=128|n>>>6&63,e[s++]=128|63&n);return e},t.exports.buf2string=(t,i)=>{const o=i||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,i));let s,r;const a=new Array(2*o);for(r=0,s=0;s<o;){let e=t[s++];if(e<128){a[r++]=e;continue}let i=n[e];if(i>4)a[r++]=65533,s+=i-1;else{for(e&=2===i?31:3===i?15:7;i>1&&s<o;)e=e<<6|63&t[s++],i--;i>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((t,n)=>{if(n<65534&&t.subarray&&e)return String.fromCharCode.apply(null,t.length===n?t:t.subarray(0,n));let i="";for(let e=0;e<n;e++)i+=String.fromCharCode(t[e]);return i})(a,r)},t.exports.utf8border=(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+n[t[i]]>e?i:e}},69:t=>{"use strict";t.exports=(t,e,n,i)=>{let o=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==n;){r=n>2e3?2e3:n,n-=r;do{o=o+e[i++]|0,s=s+o|0}while(--r);o%=65521,s%=65521}return o|s<<16|0}},619:t=>{"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},869:t=>{"use strict";const e=new Uint32Array((()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e})());t.exports=(t,n,i,o)=>{const s=e,r=o+i;t^=-1;for(let e=o;e<r;e++)t=t>>>8^s[255&(t^n[e])];return-1^t}},405:(t,e,n)=>{"use strict";const{_tr_init:i,_tr_stored_block:o,_tr_flush_block:s,_tr_tally:r,_tr_align:a}=n(342),l=n(69),h=n(869),c=n(898),{Z_NO_FLUSH:f,Z_PARTIAL_FLUSH:u,Z_FULL_FLUSH:d,Z_FINISH:g,Z_BLOCK:p,Z_OK:m,Z_STREAM_END:A,Z_STREAM_ERROR:v,Z_DATA_ERROR:b,Z_BUF_ERROR:y,Z_DEFAULT_COMPRESSION:w,Z_FILTERED:I,Z_HUFFMAN_ONLY:x,Z_RLE:E,Z_FIXED:T,Z_DEFAULT_STRATEGY:B,Z_UNKNOWN:C,Z_DEFLATED:M}=n(619),P=258,S=262,U=103,D=113,R=666,F=(t,e)=>(t.msg=c[e],e),N=t=>(t<<1)-(t>4?9:0),k=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let z=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const G=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))},L=(t,e)=>{s(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,G(t.strm)},O=(t,e)=>{t.pending_buf[t.pending++]=e},Y=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},H=(t,e,n,i)=>{let o=t.avail_in;return o>i&&(o=i),0===o?0:(t.avail_in-=o,e.set(t.input.subarray(t.next_in,t.next_in+o),n),1===t.state.wrap?t.adler=l(t.adler,e,o,n):2===t.state.wrap&&(t.adler=h(t.adler,e,o,n)),t.next_in+=o,t.total_in+=o,o)},Q=(t,e)=>{let n,i,o=t.max_chain_length,s=t.strstart,r=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-S?t.strstart-(t.w_size-S):0,h=t.window,c=t.w_mask,f=t.prev,u=t.strstart+P;let d=h[s+r-1],g=h[s+r];t.prev_length>=t.good_match&&(o>>=2),a>t.lookahead&&(a=t.lookahead);do{if(n=e,h[n+r]===g&&h[n+r-1]===d&&h[n]===h[s]&&h[++n]===h[s+1]){s+=2,n++;do{}while(h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&h[++s]===h[++n]&&s<u);if(i=P-(u-s),s=u-P,i>r){if(t.match_start=e,r=i,i>=a)break;d=h[s+r-1],g=h[s+r]}}}while((e=f[e&c])>l&&0!=--o);return r<=t.lookahead?r:t.lookahead},Z=t=>{const e=t.w_size;let n,i,o,s,r;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-S)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,n=i;do{o=t.head[--n],t.head[n]=o>=e?o-e:0}while(--i);i=e,n=i;do{o=t.prev[--n],t.prev[n]=o>=e?o-e:0}while(--i);s+=e}if(0===t.strm.avail_in)break;if(i=H(t.strm,t.window,t.strstart+t.lookahead,s),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=z(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=z(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<S&&0!==t.strm.avail_in)},j=(t,e)=>{let n,i;for(;;){if(t.lookahead<S){if(Z(t),t.lookahead<S&&e===f)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=z(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-S&&(t.match_length=Q(t,n)),t.match_length>=3)if(i=r(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=z(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=z(t,t.ins_h,t.window[t.strstart+1]);else i=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2},X=(t,e)=>{let n,i,o;for(;;){if(t.lookahead<S){if(Z(t),t.lookahead<S&&e===f)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=z(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-S&&(t.match_length=Q(t,n),t.match_length<=5&&(t.strategy===I||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){o=t.strstart+t.lookahead-3,i=r(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=o&&(t.ins_h=z(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(L(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=r(t,0,t.window[t.strstart-1]),i&&L(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=r(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2};function W(t,e,n,i,o){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=o}const V=[new W(0,0,0,0,((t,e)=>{let n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Z(t),0===t.lookahead&&e===f)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,L(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-S&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(L(t,!1),t.strm.avail_out),1)})),new W(4,4,8,4,j),new W(4,5,16,8,j),new W(4,6,32,32,j),new W(4,4,16,16,X),new W(8,16,32,32,X),new W(8,16,128,128,X),new W(8,32,128,256,X),new W(32,128,258,1024,X),new W(32,258,258,4096,X)];function q(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=M,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),k(this.dyn_ltree),k(this.dyn_dtree),k(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),k(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),k(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const J=t=>{if(!t||!t.state)return F(t,v);t.total_in=t.total_out=0,t.data_type=C;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:D,t.adler=2===e.wrap?0:1,e.last_flush=f,i(e),m},K=t=>{const e=J(t);var n;return e===m&&((n=t.state).window_size=2*n.w_size,k(n.head),n.max_lazy_match=V[n.level].max_lazy,n.good_match=V[n.level].good_length,n.nice_match=V[n.level].nice_length,n.max_chain_length=V[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),e},_=(t,e,n,i,o,s)=>{if(!t)return v;let r=1;if(e===w&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),o<1||o>9||n!==M||i<8||i>15||e<0||e>9||s<0||s>T)return F(t,v);8===i&&(i=9);const a=new q;return t.state=a,a.strm=t,a.wrap=r,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=o+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<o+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=e,a.strategy=s,a.method=n,K(t)};t.exports.deflateInit=(t,e)=>_(t,e,M,15,8,B),t.exports.deflateInit2=_,t.exports.deflateReset=K,t.exports.deflateResetKeep=J,t.exports.deflateSetHeader=(t,e)=>t&&t.state?2!==t.state.wrap?v:(t.state.gzhead=e,m):v,t.exports.deflate=(t,e)=>{let n,i;if(!t||!t.state||e>p||e<0)return t?F(t,v):v;const s=t.state;if(!t.output||!t.input&&0!==t.avail_in||s.status===R&&e!==g)return F(t,0===t.avail_out?y:v);s.strm=t;const l=s.last_flush;if(s.last_flush=e,42===s.status)if(2===s.wrap)t.adler=0,O(s,31),O(s,139),O(s,8),s.gzhead?(O(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),O(s,255&s.gzhead.time),O(s,s.gzhead.time>>8&255),O(s,s.gzhead.time>>16&255),O(s,s.gzhead.time>>24&255),O(s,9===s.level?2:s.strategy>=x||s.level<2?4:0),O(s,255&s.gzhead.os),s.gzhead.extra&&s.gzhead.extra.length&&(O(s,255&s.gzhead.extra.length),O(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(t.adler=h(t.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=69):(O(s,0),O(s,0),O(s,0),O(s,0),O(s,0),O(s,9===s.level?2:s.strategy>=x||s.level<2?4:0),O(s,3),s.status=D);else{let e=M+(s.w_bits-8<<4)<<8,n=-1;n=s.strategy>=x||s.level<2?0:s.level<6?1:6===s.level?2:3,e|=n<<6,0!==s.strstart&&(e|=32),e+=31-e%31,s.status=D,Y(s,e),0!==s.strstart&&(Y(s,t.adler>>>16),Y(s,65535&t.adler)),t.adler=1}if(69===s.status)if(s.gzhead.extra){for(n=s.pending;s.gzindex<(65535&s.gzhead.extra.length)&&(s.pending!==s.pending_buf_size||(s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),G(t),n=s.pending,s.pending!==s.pending_buf_size));)O(s,255&s.gzhead.extra[s.gzindex]),s.gzindex++;s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=73)}else s.status=73;if(73===s.status)if(s.gzhead.name){n=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),G(t),n=s.pending,s.pending===s.pending_buf_size)){i=1;break}i=s.gzindex<s.gzhead.name.length?255&s.gzhead.name.charCodeAt(s.gzindex++):0,O(s,i)}while(0!==i);s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),0===i&&(s.gzindex=0,s.status=91)}else s.status=91;if(91===s.status)if(s.gzhead.comment){n=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),G(t),n=s.pending,s.pending===s.pending_buf_size)){i=1;break}i=s.gzindex<s.gzhead.comment.length?255&s.gzhead.comment.charCodeAt(s.gzindex++):0,O(s,i)}while(0!==i);s.gzhead.hcrc&&s.pending>n&&(t.adler=h(t.adler,s.pending_buf,s.pending-n,n)),0===i&&(s.status=U)}else s.status=U;if(s.status===U&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&G(t),s.pending+2<=s.pending_buf_size&&(O(s,255&t.adler),O(s,t.adler>>8&255),t.adler=0,s.status=D)):s.status=D),0!==s.pending){if(G(t),0===t.avail_out)return s.last_flush=-1,m}else if(0===t.avail_in&&N(e)<=N(l)&&e!==g)return F(t,y);if(s.status===R&&0!==t.avail_in)return F(t,y);if(0!==t.avail_in||0!==s.lookahead||e!==f&&s.status!==R){let n=s.strategy===x?((t,e)=>{let n;for(;;){if(0===t.lookahead&&(Z(t),0===t.lookahead)){if(e===f)return 1;break}if(t.match_length=0,n=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2})(s,e):s.strategy===E?((t,e)=>{let n,i,o,s;const a=t.window;for(;;){if(t.lookahead<=P){if(Z(t),t.lookahead<=P&&e===f)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(o=t.strstart-1,i=a[o],i===a[++o]&&i===a[++o]&&i===a[++o])){s=t.strstart+P;do{}while(i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&i===a[++o]&&o<s);t.match_length=P-(s-o),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=r(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2})(s,e):V[s.level].func(s,e);if(3!==n&&4!==n||(s.status=R),1===n||3===n)return 0===t.avail_out&&(s.last_flush=-1),m;if(2===n&&(e===u?a(s):e!==p&&(o(s,0,0,!1),e===d&&(k(s.head),0===s.lookahead&&(s.strstart=0,s.block_start=0,s.insert=0))),G(t),0===t.avail_out))return s.last_flush=-1,m}return e!==g?m:s.wrap<=0?A:(2===s.wrap?(O(s,255&t.adler),O(s,t.adler>>8&255),O(s,t.adler>>16&255),O(s,t.adler>>24&255),O(s,255&t.total_in),O(s,t.total_in>>8&255),O(s,t.total_in>>16&255),O(s,t.total_in>>24&255)):(Y(s,t.adler>>>16),Y(s,65535&t.adler)),G(t),s.wrap>0&&(s.wrap=-s.wrap),0!==s.pending?m:A)},t.exports.deflateEnd=t=>{if(!t||!t.state)return v;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==U&&e!==D&&e!==R?F(t,v):(t.state=null,e===D?F(t,b):m)},t.exports.deflateSetDictionary=(t,e)=>{let n=e.length;if(!t||!t.state)return v;const i=t.state,o=i.wrap;if(2===o||1===o&&42!==i.status||i.lookahead)return v;if(1===o&&(t.adler=l(t.adler,e,n,0)),i.wrap=0,n>=i.w_size){0===o&&(k(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(n-i.w_size,n),0),e=t,n=i.w_size}const s=t.avail_in,r=t.next_in,a=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,Z(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=z(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Z(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=a,t.avail_in=s,i.wrap=o,m},t.exports.deflateInfo="pako deflate (from Nodeca project)"},401:t=>{"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},264:t=>{"use strict";t.exports=function(t,e){let n,i,o,s,r,a,l,h,c,f,u,d,g,p,m,A,v,b,y,w,I,x,E,T;const B=t.state;n=t.next_in,E=t.input,i=n+(t.avail_in-5),o=t.next_out,T=t.output,s=o-(e-t.avail_out),r=o+(t.avail_out-257),a=B.dmax,l=B.wsize,h=B.whave,c=B.wnext,f=B.window,u=B.hold,d=B.bits,g=B.lencode,p=B.distcode,m=(1<<B.lenbits)-1,A=(1<<B.distbits)-1;t:do{d<15&&(u+=E[n++]<<d,d+=8,u+=E[n++]<<d,d+=8),v=g[u&m];e:for(;;){if(b=v>>>24,u>>>=b,d-=b,b=v>>>16&255,0===b)T[o++]=65535&v;else{if(!(16&b)){if(0==(64&b)){v=g[(65535&v)+(u&(1<<b)-1)];continue e}if(32&b){B.mode=12;break t}t.msg="invalid literal/length code",B.mode=30;break t}y=65535&v,b&=15,b&&(d<b&&(u+=E[n++]<<d,d+=8),y+=u&(1<<b)-1,u>>>=b,d-=b),d<15&&(u+=E[n++]<<d,d+=8,u+=E[n++]<<d,d+=8),v=p[u&A];n:for(;;){if(b=v>>>24,u>>>=b,d-=b,b=v>>>16&255,!(16&b)){if(0==(64&b)){v=p[(65535&v)+(u&(1<<b)-1)];continue n}t.msg="invalid distance code",B.mode=30;break t}if(w=65535&v,b&=15,d<b&&(u+=E[n++]<<d,d+=8,d<b&&(u+=E[n++]<<d,d+=8)),w+=u&(1<<b)-1,w>a){t.msg="invalid distance too far back",B.mode=30;break t}if(u>>>=b,d-=b,b=o-s,w>b){if(b=w-b,b>h&&B.sane){t.msg="invalid distance too far back",B.mode=30;break t}if(I=0,x=f,0===c){if(I+=l-b,b<y){y-=b;do{T[o++]=f[I++]}while(--b);I=o-w,x=T}}else if(c<b){if(I+=l+c-b,b-=c,b<y){y-=b;do{T[o++]=f[I++]}while(--b);if(I=0,c<y){b=c,y-=b;do{T[o++]=f[I++]}while(--b);I=o-w,x=T}}}else if(I+=c-b,b<y){y-=b;do{T[o++]=f[I++]}while(--b);I=o-w,x=T}for(;y>2;)T[o++]=x[I++],T[o++]=x[I++],T[o++]=x[I++],y-=3;y&&(T[o++]=x[I++],y>1&&(T[o++]=x[I++]))}else{I=o-w;do{T[o++]=T[I++],T[o++]=T[I++],T[o++]=T[I++],y-=3}while(y>2);y&&(T[o++]=T[I++],y>1&&(T[o++]=T[I++]))}break}}break}}while(n<i&&o<r);y=d>>3,n-=y,d-=y<<3,u&=(1<<d)-1,t.next_in=n,t.next_out=o,t.avail_in=n<i?i-n+5:5-(n-i),t.avail_out=o<r?r-o+257:257-(o-r),B.hold=u,B.bits=d}},948:(t,e,n)=>{"use strict";const i=n(69),o=n(869),s=n(264),r=n(241),{Z_FINISH:a,Z_BLOCK:l,Z_TREES:h,Z_OK:c,Z_STREAM_END:f,Z_NEED_DICT:u,Z_STREAM_ERROR:d,Z_DATA_ERROR:g,Z_MEM_ERROR:p,Z_BUF_ERROR:m,Z_DEFLATED:A}=n(619),v=12,b=30,y=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const I=t=>{if(!t||!t.state)return d;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,c},x=t=>{if(!t||!t.state)return d;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,I(t)},E=(t,e)=>{let n;if(!t||!t.state)return d;const i=t.state;return e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?d:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,x(t))},T=(t,e)=>{if(!t)return d;const n=new w;t.state=n,n.window=null;const i=E(t,e);return i!==c&&(t.state=null),i};let B,C,M=!0;const P=t=>{if(M){B=new Int32Array(512),C=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(r(1,t.lens,0,288,B,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;r(2,t.lens,0,32,C,0,t.work,{bits:5}),M=!1}t.lencode=B,t.lenbits=9,t.distcode=C,t.distbits=5},S=(t,e,n,i)=>{let o;const s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(e.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(o=s.wsize-s.wnext,o>i&&(o=i),s.window.set(e.subarray(n-i,n-i+o),s.wnext),(i-=o)?(s.window.set(e.subarray(n-i,n),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=o))),0};t.exports.inflateReset=x,t.exports.inflateReset2=E,t.exports.inflateResetKeep=I,t.exports.inflateInit=t=>T(t,15),t.exports.inflateInit2=T,t.exports.inflate=(t,e)=>{let n,w,I,x,E,T,B,C,M,U,D,R,F,N,k,z,G,L,O,Y,H,Q,Z=0;const j=new Uint8Array(4);let X,W;const V=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return d;n=t.state,n.mode===v&&(n.mode=13),E=t.next_out,I=t.output,B=t.avail_out,x=t.next_in,w=t.input,T=t.avail_in,C=n.hold,M=n.bits,U=T,D=B,Q=c;t:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(2&n.wrap&&35615===C){n.check=0,j[0]=255&C,j[1]=C>>>8&255,n.check=o(n.check,j,2,0),C=0,M=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&C)<<8)+(C>>8))%31){t.msg="incorrect header check",n.mode=b;break}if((15&C)!==A){t.msg="unknown compression method",n.mode=b;break}if(C>>>=4,M-=4,H=8+(15&C),0===n.wbits)n.wbits=H;else if(H>n.wbits){t.msg="invalid window size",n.mode=b;break}n.dmax=1<<n.wbits,t.adler=n.check=1,n.mode=512&C?10:v,C=0,M=0;break;case 2:for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(n.flags=C,(255&n.flags)!==A){t.msg="unknown compression method",n.mode=b;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=b;break}n.head&&(n.head.text=C>>8&1),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=o(n.check,j,2,0)),C=0,M=0,n.mode=3;case 3:for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.head&&(n.head.time=C),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,j[2]=C>>>16&255,j[3]=C>>>24&255,n.check=o(n.check,j,4,0)),C=0,M=0,n.mode=4;case 4:for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.head&&(n.head.xflags=255&C,n.head.os=C>>8),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=o(n.check,j,2,0)),C=0,M=0,n.mode=5;case 5:if(1024&n.flags){for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.length=C,n.head&&(n.head.extra_len=C),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=o(n.check,j,2,0)),C=0,M=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(R=n.length,R>T&&(R=T),R&&(n.head&&(H=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(w.subarray(x,x+R),H)),512&n.flags&&(n.check=o(n.check,w,R,x)),T-=R,x+=R,n.length-=R),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===T)break t;R=0;do{H=w[x+R++],n.head&&H&&n.length<65536&&(n.head.name+=String.fromCharCode(H))}while(H&&R<T);if(512&n.flags&&(n.check=o(n.check,w,R,x)),T-=R,x+=R,H)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===T)break t;R=0;do{H=w[x+R++],n.head&&H&&n.length<65536&&(n.head.comment+=String.fromCharCode(H))}while(H&&R<T);if(512&n.flags&&(n.check=o(n.check,w,R,x)),T-=R,x+=R,H)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C!==(65535&n.check)){t.msg="header crc mismatch",n.mode=b;break}C=0,M=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=v;break;case 10:for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}t.adler=n.check=y(C),C=0,M=0,n.mode=11;case 11:if(0===n.havedict)return t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,u;t.adler=n.check=1,n.mode=v;case v:if(e===l||e===h)break t;case 13:if(n.last){C>>>=7&M,M-=7&M,n.mode=27;break}for(;M<3;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}switch(n.last=1&C,C>>>=1,M-=1,3&C){case 0:n.mode=14;break;case 1:if(P(n),n.mode=20,e===h){C>>>=2,M-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=b}C>>>=2,M-=2;break;case 14:for(C>>>=7&M,M-=7&M;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if((65535&C)!=(C>>>16^65535)){t.msg="invalid stored block lengths",n.mode=b;break}if(n.length=65535&C,C=0,M=0,n.mode=15,e===h)break t;case 15:n.mode=16;case 16:if(R=n.length,R){if(R>T&&(R=T),R>B&&(R=B),0===R)break t;I.set(w.subarray(x,x+R),E),T-=R,x+=R,B-=R,E+=R,n.length-=R;break}n.mode=v;break;case 17:for(;M<14;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(n.nlen=257+(31&C),C>>>=5,M-=5,n.ndist=1+(31&C),C>>>=5,M-=5,n.ncode=4+(15&C),C>>>=4,M-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=b;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;M<3;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.lens[V[n.have++]]=7&C,C>>>=3,M-=3}for(;n.have<19;)n.lens[V[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,X={bits:n.lenbits},Q=r(0,n.lens,0,19,n.lencode,0,n.work,X),n.lenbits=X.bits,Q){t.msg="invalid code lengths set",n.mode=b;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;Z=n.lencode[C&(1<<n.lenbits)-1],k=Z>>>24,z=Z>>>16&255,G=65535&Z,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(G<16)C>>>=k,M-=k,n.lens[n.have++]=G;else{if(16===G){for(W=k+2;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C>>>=k,M-=k,0===n.have){t.msg="invalid bit length repeat",n.mode=b;break}H=n.lens[n.have-1],R=3+(3&C),C>>>=2,M-=2}else if(17===G){for(W=k+3;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=k,M-=k,H=0,R=3+(7&C),C>>>=3,M-=3}else{for(W=k+7;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=k,M-=k,H=0,R=11+(127&C),C>>>=7,M-=7}if(n.have+R>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=b;break}for(;R--;)n.lens[n.have++]=H}}if(n.mode===b)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=b;break}if(n.lenbits=9,X={bits:n.lenbits},Q=r(1,n.lens,0,n.nlen,n.lencode,0,n.work,X),n.lenbits=X.bits,Q){t.msg="invalid literal/lengths set",n.mode=b;break}if(n.distbits=6,n.distcode=n.distdyn,X={bits:n.distbits},Q=r(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,X),n.distbits=X.bits,Q){t.msg="invalid distances set",n.mode=b;break}if(n.mode=20,e===h)break t;case 20:n.mode=21;case 21:if(T>=6&&B>=258){t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,s(t,D),E=t.next_out,I=t.output,B=t.avail_out,x=t.next_in,w=t.input,T=t.avail_in,C=n.hold,M=n.bits,n.mode===v&&(n.back=-1);break}for(n.back=0;Z=n.lencode[C&(1<<n.lenbits)-1],k=Z>>>24,z=Z>>>16&255,G=65535&Z,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(z&&0==(240&z)){for(L=k,O=z,Y=G;Z=n.lencode[Y+((C&(1<<L+O)-1)>>L)],k=Z>>>24,z=Z>>>16&255,G=65535&Z,!(L+k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=L,M-=L,n.back+=L}if(C>>>=k,M-=k,n.back+=k,n.length=G,0===z){n.mode=26;break}if(32&z){n.back=-1,n.mode=v;break}if(64&z){t.msg="invalid literal/length code",n.mode=b;break}n.extra=15&z,n.mode=22;case 22:if(n.extra){for(W=n.extra;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.length+=C&(1<<n.extra)-1,C>>>=n.extra,M-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;Z=n.distcode[C&(1<<n.distbits)-1],k=Z>>>24,z=Z>>>16&255,G=65535&Z,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(0==(240&z)){for(L=k,O=z,Y=G;Z=n.distcode[Y+((C&(1<<L+O)-1)>>L)],k=Z>>>24,z=Z>>>16&255,G=65535&Z,!(L+k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=L,M-=L,n.back+=L}if(C>>>=k,M-=k,n.back+=k,64&z){t.msg="invalid distance code",n.mode=b;break}n.offset=G,n.extra=15&z,n.mode=24;case 24:if(n.extra){for(W=n.extra;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.offset+=C&(1<<n.extra)-1,C>>>=n.extra,M-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=b;break}n.mode=25;case 25:if(0===B)break t;if(R=D-B,n.offset>R){if(R=n.offset-R,R>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=b;break}R>n.wnext?(R-=n.wnext,F=n.wsize-R):F=n.wnext-R,R>n.length&&(R=n.length),N=n.window}else N=I,F=E-n.offset,R=n.length;R>B&&(R=B),B-=R,n.length-=R;do{I[E++]=N[F++]}while(--R);0===n.length&&(n.mode=21);break;case 26:if(0===B)break t;I[E++]=n.length,B--,n.mode=21;break;case 27:if(n.wrap){for(;M<32;){if(0===T)break t;T--,C|=w[x++]<<M,M+=8}if(D-=B,t.total_out+=D,n.total+=D,D&&(t.adler=n.check=n.flags?o(n.check,I,D,E-D):i(n.check,I,D,E-D)),D=B,(n.flags?C:y(C))!==n.check){t.msg="incorrect data check",n.mode=b;break}C=0,M=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=b;break}C=0,M=0}n.mode=29;case 29:Q=f;break t;case b:Q=g;break t;case 31:return p;case 32:default:return d}return t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,(n.wsize||D!==t.avail_out&&n.mode<b&&(n.mode<27||e!==a))&&S(t,t.output,t.next_out,D-t.avail_out)?(n.mode=31,p):(U-=t.avail_in,D-=t.avail_out,t.total_in+=U,t.total_out+=D,n.total+=D,n.wrap&&D&&(t.adler=n.check=n.flags?o(n.check,I,D,t.next_out-D):i(n.check,I,D,t.next_out-D)),t.data_type=n.bits+(n.last?64:0)+(n.mode===v?128:0)+(20===n.mode||15===n.mode?256:0),(0===U&&0===D||e===a)&&Q===c&&(Q=m),Q)},t.exports.inflateEnd=t=>{if(!t||!t.state)return d;let e=t.state;return e.window&&(e.window=null),t.state=null,c},t.exports.inflateGetHeader=(t,e)=>{if(!t||!t.state)return d;const n=t.state;return 0==(2&n.wrap)?d:(n.head=e,e.done=!1,c)},t.exports.inflateSetDictionary=(t,e)=>{const n=e.length;let o,s,r;return t&&t.state?(o=t.state,0!==o.wrap&&11!==o.mode?d:11===o.mode&&(s=1,s=i(s,e,n,0),s!==o.check)?g:(r=S(t,e,n,n),r?(o.mode=31,p):(o.havedict=1,c))):d},t.exports.inflateInfo="pako inflate (from Nodeca project)"},241:t=>{"use strict";const e=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),i=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);t.exports=(t,s,r,a,l,h,c,f)=>{const u=f.bits;let d,g,p,m,A,v,b=0,y=0,w=0,I=0,x=0,E=0,T=0,B=0,C=0,M=0,P=null,S=0;const U=new Uint16Array(16),D=new Uint16Array(16);let R,F,N,k=null,z=0;for(b=0;b<=15;b++)U[b]=0;for(y=0;y<a;y++)U[s[r+y]]++;for(x=u,I=15;I>=1&&0===U[I];I--);if(x>I&&(x=I),0===I)return l[h++]=20971520,l[h++]=20971520,f.bits=1,0;for(w=1;w<I&&0===U[w];w++);for(x<w&&(x=w),B=1,b=1;b<=15;b++)if(B<<=1,B-=U[b],B<0)return-1;if(B>0&&(0===t||1!==I))return-1;for(D[1]=0,b=1;b<15;b++)D[b+1]=D[b]+U[b];for(y=0;y<a;y++)0!==s[r+y]&&(c[D[s[r+y]]++]=y);if(0===t?(P=k=c,v=19):1===t?(P=e,S-=257,k=n,z-=257,v=256):(P=i,k=o,v=-1),M=0,y=0,b=w,A=h,E=x,T=0,p=-1,C=1<<x,m=C-1,1===t&&C>852||2===t&&C>592)return 1;for(;;){R=b-T,c[y]<v?(F=0,N=c[y]):c[y]>v?(F=k[z+c[y]],N=P[S+c[y]]):(F=96,N=0),d=1<<b-T,g=1<<E,w=g;do{g-=d,l[A+(M>>T)+g]=R<<24|F<<16|N|0}while(0!==g);for(d=1<<b-1;M&d;)d>>=1;if(0!==d?(M&=d-1,M+=d):M=0,y++,0==--U[b]){if(b===I)break;b=s[r+c[y]]}if(b>x&&(M&m)!==p){for(0===T&&(T=x),A+=w,E=b-T,B=1<<E;E+T<I&&(B-=U[E+T],!(B<=0));)E++,B<<=1;if(C+=1<<E,1===t&&C>852||2===t&&C>592)return 1;p=M&m,l[p]=x<<24|E<<16|A-h|0}}return 0!==M&&(l[A+M]=b-T<<24|64<<16|0),f.bits=x,0}},898:t=>{"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},342:t=>{"use strict";function e(t){let e=t.length;for(;--e>=0;)t[e]=0}const n=new Uint8Array([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]),i=new Uint8Array([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]),o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),s=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r=new Array(576);e(r);const a=new Array(60);e(a);const l=new Array(512);e(l);const h=new Array(256);e(h);const c=new Array(29);e(c);const f=new Array(30);function u(t,e,n,i,o){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=o,this.has_stree=t&&t.length}let d,g,p;function m(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(f);const A=t=>t<256?l[t]:l[256+(t>>>7)],v=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},b=(t,e,n)=>{t.bi_valid>16-n?(t.bi_buf|=e<<t.bi_valid&65535,v(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},y=(t,e,n)=>{b(t,n[2*e],n[2*e+1])},w=(t,e)=>{let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1},I=(t,e,n)=>{const i=new Array(16);let o,s,r=0;for(o=1;o<=15;o++)i[o]=r=r+n[o-1]<<1;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=w(i[e]++,e))}},x=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},E=t=>{t.bi_valid>8?v(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},T=(t,e,n,i)=>{const o=2*e,s=2*n;return t[o]<t[s]||t[o]===t[s]&&i[e]<=i[n]},B=(t,e,n)=>{const i=t.heap[n];let o=n<<1;for(;o<=t.heap_len&&(o<t.heap_len&&T(e,t.heap[o+1],t.heap[o],t.depth)&&o++,!T(e,i,t.heap[o],t.depth));)t.heap[n]=t.heap[o],n=o,o<<=1;t.heap[n]=i},C=(t,e,o)=>{let s,r,a,l,u=0;if(0!==t.last_lit)do{s=t.pending_buf[t.d_buf+2*u]<<8|t.pending_buf[t.d_buf+2*u+1],r=t.pending_buf[t.l_buf+u],u++,0===s?y(t,r,e):(a=h[r],y(t,a+256+1,e),l=n[a],0!==l&&(r-=c[a],b(t,r,l)),s--,a=A(s),y(t,a,o),l=i[a],0!==l&&(s-=f[a],b(t,s,l)))}while(u<t.last_lit);y(t,256,e)},M=(t,e)=>{const n=e.dyn_tree,i=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.elems;let r,a,l,h=-1;for(t.heap_len=0,t.heap_max=573,r=0;r<s;r++)0!==n[2*r]?(t.heap[++t.heap_len]=h=r,t.depth[r]=0):n[2*r+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,n[2*l]=1,t.depth[l]=0,t.opt_len--,o&&(t.static_len-=i[2*l+1]);for(e.max_code=h,r=t.heap_len>>1;r>=1;r--)B(t,n,r);l=s;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],B(t,n,1),a=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=a,n[2*l]=n[2*r]+n[2*a],t.depth[l]=(t.depth[r]>=t.depth[a]?t.depth[r]:t.depth[a])+1,n[2*r+1]=n[2*a+1]=l,t.heap[1]=l++,B(t,n,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const n=e.dyn_tree,i=e.max_code,o=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,c,f,u,d,g,p=0;for(u=0;u<=15;u++)t.bl_count[u]=0;for(n[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)c=t.heap[h],u=n[2*n[2*c+1]+1]+1,u>l&&(u=l,p++),n[2*c+1]=u,c>i||(t.bl_count[u]++,d=0,c>=a&&(d=r[c-a]),g=n[2*c],t.opt_len+=g*(u+d),s&&(t.static_len+=g*(o[2*c+1]+d)));if(0!==p){do{for(u=l-1;0===t.bl_count[u];)u--;t.bl_count[u]--,t.bl_count[u+1]+=2,t.bl_count[l]--,p-=2}while(p>0);for(u=l;0!==u;u--)for(c=t.bl_count[u];0!==c;)f=t.heap[--h],f>i||(n[2*f+1]!==u&&(t.opt_len+=(u-n[2*f+1])*n[2*f],n[2*f+1]=u),c--)}})(t,e),I(n,h,t.bl_count)},P=(t,e,n)=>{let i,o,s=-1,r=e[1],a=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)o=r,r=e[2*(i+1)+1],++a<l&&o===r||(a<h?t.bl_tree[2*o]+=a:0!==o?(o!==s&&t.bl_tree[2*o]++,t.bl_tree[32]++):a<=10?t.bl_tree[34]++:t.bl_tree[36]++,a=0,s=o,0===r?(l=138,h=3):o===r?(l=6,h=3):(l=7,h=4))},S=(t,e,n)=>{let i,o,s=-1,r=e[1],a=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=n;i++)if(o=r,r=e[2*(i+1)+1],!(++a<l&&o===r)){if(a<h)do{y(t,o,t.bl_tree)}while(0!=--a);else 0!==o?(o!==s&&(y(t,o,t.bl_tree),a--),y(t,16,t.bl_tree),b(t,a-3,2)):a<=10?(y(t,17,t.bl_tree),b(t,a-3,3)):(y(t,18,t.bl_tree),b(t,a-11,7));a=0,s=o,0===r?(l=138,h=3):o===r?(l=6,h=3):(l=7,h=4)}};let U=!1;const D=(t,e,n,i)=>{b(t,0+(i?1:0),3),((t,e,n,i)=>{E(t),v(t,n),v(t,~n),t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n})(t,e,n)};t.exports._tr_init=t=>{U||((()=>{let t,e,s,m,A;const v=new Array(16);for(s=0,m=0;m<28;m++)for(c[m]=s,t=0;t<1<<n[m];t++)h[s++]=m;for(h[s-1]=m,A=0,m=0;m<16;m++)for(f[m]=A,t=0;t<1<<i[m];t++)l[A++]=m;for(A>>=7;m<30;m++)for(f[m]=A<<7,t=0;t<1<<i[m]-7;t++)l[256+A++]=m;for(e=0;e<=15;e++)v[e]=0;for(t=0;t<=143;)r[2*t+1]=8,t++,v[8]++;for(;t<=255;)r[2*t+1]=9,t++,v[9]++;for(;t<=279;)r[2*t+1]=7,t++,v[7]++;for(;t<=287;)r[2*t+1]=8,t++,v[8]++;for(I(r,287,v),t=0;t<30;t++)a[2*t+1]=5,a[2*t]=w(t,5);d=new u(r,n,257,286,15),g=new u(a,i,0,30,15),p=new u(new Array(0),o,0,19,7)})(),U=!0),t.l_desc=new m(t.dyn_ltree,d),t.d_desc=new m(t.dyn_dtree,g),t.bl_desc=new m(t.bl_tree,p),t.bi_buf=0,t.bi_valid=0,x(t)},t.exports._tr_stored_block=D,t.exports._tr_flush_block=(t,e,n,i)=>{let o,l,h=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),M(t,t.l_desc),M(t,t.d_desc),h=(t=>{let e;for(P(t,t.dyn_ltree,t.l_desc.max_code),P(t,t.dyn_dtree,t.d_desc.max_code),M(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*s[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),o=t.opt_len+3+7>>>3,l=t.static_len+3+7>>>3,l<=o&&(o=l)):o=l=n+5,n+4<=o&&-1!==e?D(t,e,n,i):4===t.strategy||l===o?(b(t,2+(i?1:0),3),C(t,r,a)):(b(t,4+(i?1:0),3),((t,e,n,i)=>{let o;for(b(t,e-257,5),b(t,n-1,5),b(t,i-4,4),o=0;o<i;o++)b(t,t.bl_tree[2*s[o]+1],3);S(t,t.dyn_ltree,e-1),S(t,t.dyn_dtree,n-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,h+1),C(t,t.dyn_ltree,t.dyn_dtree)),x(t),i&&E(t)},t.exports._tr_tally=(t,e,n)=>(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(h[n]+256+1)]++,t.dyn_dtree[2*A(e)]++),t.last_lit===t.lit_bufsize-1),t.exports._tr_align=t=>{b(t,2,3),y(t,256,r),(t=>{16===t.bi_valid?(v(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},292:t=>{"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},139:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Niivue:()=>dt});var i=n(75),o=function(t,e,n){var i=this;this.program=s(t,e,n);var o=/uniform[^;]+[ ](\w+);/g,r=/uniform[^;]+[ ](\w+);/;this.uniforms={};var a=e.match(o),l=n.match(o);for(var h in a&&a.forEach((function(t){var e=t.match(r);i.uniforms[e[1]]=-1})),l&&l.forEach((function(t){var e=t.match(r);i.uniforms[e[1]]=-1})),this.uniforms)this.uniforms[h]=t.getUniformLocation(this.program,h)};o.prototype.use=function(t){t.useProgram(this.program)};var s=function(t,e,n){var i=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(i,e),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))return alert("Vertex shader failed to compile, see console for log"),console.log(t.getShaderInfoLog(i)),null;var o=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(o,n),t.compileShader(o),!t.getShaderParameter(o,t.COMPILE_STATUS))return alert("Fragment shader failed to compile, see console for log"),console.log(t.getShaderInfoLog(o)),null;var s=t.createProgram();return t.attachShader(s,i),t.attachShader(s,o),t.linkProgram(s),t.getProgramParameter(s,t.LINK_STATUS)?s:(alert("Shader failed to link, see console for log"),console.log(t.getProgramInfoLog(s)),null)},r="undefined"!=typeof Float32Array?Float32Array:Array;function a(){var t=new r(16);return r!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function l(t){var e=new r(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function h(t,e,n,i,o,s,a,l,h,c,f,u,d,g,p,m){var A=new r(16);return A[0]=t,A[1]=e,A[2]=n,A[3]=i,A[4]=o,A[5]=s,A[6]=a,A[7]=l,A[8]=h,A[9]=c,A[10]=f,A[11]=u,A[12]=d,A[13]=g,A[14]=p,A[15]=m,A}function c(t,e){if(t===e){var n=e[1],i=e[2],o=e[3],s=e[6],r=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=s,t[11]=e[14],t[12]=o,t[13]=r,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function f(t,e){var n=e[0],i=e[1],o=e[2],s=e[3],r=e[4],a=e[5],l=e[6],h=e[7],c=e[8],f=e[9],u=e[10],d=e[11],g=e[12],p=e[13],m=e[14],A=e[15],v=n*a-i*r,b=n*l-o*r,y=n*h-s*r,w=i*l-o*a,I=i*h-s*a,x=o*h-s*l,E=c*p-f*g,T=c*m-u*g,B=c*A-d*g,C=f*m-u*p,M=f*A-d*p,P=u*A-d*m,S=v*P-b*M+y*C+w*B-I*T+x*E;return S?(S=1/S,t[0]=(a*P-l*M+h*C)*S,t[1]=(o*M-i*P-s*C)*S,t[2]=(p*x-m*I+A*w)*S,t[3]=(u*I-f*x-d*w)*S,t[4]=(l*B-r*P-h*T)*S,t[5]=(n*P-o*B+s*T)*S,t[6]=(m*y-g*x-A*b)*S,t[7]=(c*x-u*y+d*b)*S,t[8]=(r*M-a*B+h*E)*S,t[9]=(i*B-n*M-s*E)*S,t[10]=(g*I-p*y+A*v)*S,t[11]=(f*y-c*I-d*v)*S,t[12]=(a*T-r*C-l*E)*S,t[13]=(n*C-i*T+o*E)*S,t[14]=(p*b-g*w-m*v)*S,t[15]=(c*w-f*b+u*v)*S,t):null}function u(t,e,n){var i=n[0],o=n[1],s=n[2];return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t[4]=e[4]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function d(t,e,n,i){var o,s,r,a,l,h,c,f,u,d,g,p,m,A,v,b,y,w,I,x,E,T,B,C,M=i[0],P=i[1],S=i[2],U=Math.hypot(M,P,S);return U<1e-6?null:(M*=U=1/U,P*=U,S*=U,o=Math.sin(n),r=1-(s=Math.cos(n)),a=e[0],l=e[1],h=e[2],c=e[3],f=e[4],u=e[5],d=e[6],g=e[7],p=e[8],m=e[9],A=e[10],v=e[11],b=M*M*r+s,y=P*M*r+S*o,w=S*M*r-P*o,I=M*P*r-S*o,x=P*P*r+s,E=S*P*r+M*o,T=M*S*r+P*o,B=P*S*r-M*o,C=S*S*r+s,t[0]=a*b+f*y+p*w,t[1]=l*b+u*y+m*w,t[2]=h*b+d*y+A*w,t[3]=c*b+g*y+v*w,t[4]=a*I+f*x+p*E,t[5]=l*I+u*x+m*E,t[6]=h*I+d*x+A*E,t[7]=c*I+g*x+v*E,t[8]=a*T+f*B+p*C,t[9]=l*T+u*B+m*C,t[10]=h*T+d*B+A*C,t[11]=c*T+g*B+v*C,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function g(t,e,n,i){var o=new r(4);return o[0]=t,o[1]=e,o[2]=n,o[3]=i,o}function p(t,e,n){var i=e[0],o=e[1],s=e[2],r=e[3];return t[0]=n[0]*i+n[4]*o+n[8]*s+n[12]*r,t[1]=n[1]*i+n[5]*o+n[9]*s+n[13]*r,t[2]=n[2]*i+n[6]*o+n[10]*s+n[14]*r,t[3]=n[3]*i+n[7]*o+n[11]*s+n[15]*r,t}Math.random,Math.PI,Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var m;function A(t,e,n){var i=new r(3);return i[0]=t,i[1]=e,i[2]=n,i}function v(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function b(t,e){var n=e[0],i=e[1],o=e[2],s=n*n+i*i+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}m=new r(4),r!=Float32Array&&(m[0]=0,m[1]=0,m[2]=0,m[3]=0),function(){var t=new r(3);r!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0)}();var y="#version 300 es\n#line 283\nprecision highp int;\nprecision highp float;\nin vec3 vPos;\nout vec2 TexCoord;\nvoid main() {\n TexCoord = vPos.xy;\n gl_Position = vec4( (vPos.xy-vec2(0.5,0.5)) * 2.0, 0.0, 1.0);\n}",w="#version 300 es\nuniform highp usampler3D intensityVol;\n",I="#line 309\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform float layer;\nuniform float numLayers;\nuniform float scl_slope;\nuniform float scl_inter;\nuniform float cal_max;\nuniform float cal_min;\nuniform highp sampler2D colormap;\nuniform lowp sampler3D blend3D;\nuniform float opacity;\nuniform mat4 mtx;\nvoid main(void) {\n vec4 vx = vec4(TexCoord.xy, coordZ, 1.0) * mtx;\n float f = (scl_slope * float(texture(intensityVol, vx.xyz).r)) + scl_inter;\n float r = max(0.00001, abs(cal_max - cal_min));\n float mn = min(cal_min, cal_max);\n f = mix(0.0, 1.0, (f - mn) / r);\n //float y = 1.0 / numLayers;\n //y = ((layer + 0.5) * y);\n //https://stackoverflow.com/questions/5879403/opengl-texture-coordinates-in-pixel-space\n float y = (2.0 * layer + 1.0)/(2.0 * numLayers);\n FragColor = texture(colormap, vec2(f, y)).rgba;\n FragColor.a *= opacity;\n if (layer < 2.0) return;\n vec2 texXY = TexCoord.xy*0.5 +vec2(0.5,0.5);\n vec4 prevColor = texture(blend3D, vec3(texXY, coordZ));\n // https://en.wikipedia.org/wiki/Alpha_compositing\n float aout = FragColor.a + (1.0 - FragColor.a) * prevColor.a;\n if (aout <= 0.0) return;\n FragColor.rgb = ((FragColor.rgb * FragColor.a) + (prevColor.rgb * prevColor.a * (1.0 - FragColor.a))) / aout;\n FragColor.a = aout;\n}";const x=JSON.parse('{"IY":{"k6":2,"dp":59.65625,"bf":512,"Cb":256},"pE":[{"unicode":32,"advance":0.24755859375},{"unicode":33,"advance":0.25732421875,"planeBounds":{"left":0.056159633438645884,"bottom":-0.02437761405677056,"right":0.20702396031135412,"top":0.7299440203067705},"atlasBounds":{"left":488.5,"bottom":145.5,"right":497.5,"top":190.5}},{"unicode":34,"advance":0.31982421875,"planeBounds":{"left":0.049409125974004715,"bottom":0.48691155587022,"right":0.2840869677759953,"top":0.77187750662978},"atlasBounds":{"left":486.5,"bottom":213.5,"right":500.5,"top":230.5}},{"unicode":35,"advance":0.61572265625,"planeBounds":{"left":0.037219103997511785,"bottom":-0.02169206718177056,"right":0.6239137085024882,"top":0.7326295671817705},"atlasBounds":{"left":66.5,"bottom":51.5,"right":101.5,"top":96.5}},{"unicode":36,"advance":0.5615234375,"planeBounds":{"left":0.02956531458715296,"bottom":-0.12381369908983761,"right":0.532446404162847,"top":0.8484230740898376},"atlasBounds":{"left":109.5,"bottom":197.5,"right":139.5,"top":255.5}},{"unicode":37,"advance":0.732421875,"planeBounds":{"left":0.026481776289942378,"bottom":-0.030073418674698794,"right":0.7137525987100576,"top":0.7410109186746988},"atlasBounds":{"left":88.5,"bottom":144.5,"right":129.5,"top":190.5}},{"unicode":38,"advance":0.62158203125,"planeBounds":{"left":0.03225572125458355,"bottom":-0.030073418674698794,"right":0.6357130287454165,"top":0.7410109186746988},"atlasBounds":{"left":130.5,"bottom":144.5,"right":166.5,"top":190.5}},{"unicode":39,"advance":0.17431640625,"planeBounds":{"left":0.028244602049502358,"bottom":0.49895501673814824,"right":0.14558352295049765,"top":0.7671582645118518},"atlasBounds":{"left":498.5,"bottom":62.5,"right":505.5,"top":78.5}},{"unicode":40,"advance":0.341796875,"planeBounds":{"left":0.042983329377291775,"bottom":-0.250029542422407,"right":0.34471198312270823,"top":0.8227834486724069},"atlasBounds":{"left":0.5,"bottom":191.5,"right":18.5,"top":255.5}},{"unicode":41,"advance":0.34765625,"planeBounds":{"left":-0.003159248747708225,"bottom":-0.250029542422407,"right":0.29856940499770823,"top":0.8227834486724069},"atlasBounds":{"left":19.5,"bottom":191.5,"right":37.5,"top":255.5}},{"unicode":42,"advance":0.4306640625,"planeBounds":{"left":-0.011208599684062338,"bottom":0.27785390031593765,"right":0.44138438093406235,"top":0.7304468809340623},"atlasBounds":{"left":449.5,"bottom":23.5,"right":476.5,"top":50.5}},{"unicode":43,"advance":0.56689453125,"planeBounds":{"left":0.01353503347629649,"bottom":0.053493525733368255,"right":0.5499415290237035,"top":0.6066627242666317},"atlasBounds":{"left":361.5,"bottom":17.5,"right":393.5,"top":50.5}},{"unicode":44,"advance":0.1962890625,"planeBounds":{"left":-0.009919475797210583,"bottom":-0.15981695975478,"right":0.1744702570472106,"top":0.12514899100478},"atlasBounds":{"left":498.5,"bottom":79.5,"right":509.5,"top":96.5}},{"unicode":45,"advance":0.27587890625,"planeBounds":{"left":-0.00527594412977999,"bottom":0.24333249267450235,"right":0.27969000662978,"top":0.36067141357549765},"atlasBounds":{"left":52.5,"bottom":7.5,"right":69.5,"top":14.5}},{"unicode":46,"advance":0.26318359375,"planeBounds":{"left":0.051032680313645884,"bottom":-0.027092319686354116,"right":0.20189700718635412,"top":0.12377200718635412},"atlasBounds":{"left":501.5,"bottom":221.5,"right":510.5,"top":230.5}},{"unicode":47,"advance":0.412109375,"planeBounds":{"left":-0.013733006073205867,"bottom":-0.08573505127848349,"right":0.4053345685732059,"top":0.7356373950284835},"atlasBounds":{"left":252.5,"bottom":206.5,"right":277.5,"top":255.5}},{"unicode":48,"advance":0.5615234375,"planeBounds":{"left":0.037458384830081196,"bottom":-0.030073418674698794,"right":0.5235767714199189,"top":0.7410109186746988},"atlasBounds":{"left":167.5,"bottom":144.5,"right":196.5,"top":190.5}},{"unicode":49,"advance":0.5615234375,"planeBounds":{"left":0.06023674350936354,"bottom":-0.01998308280677056,"right":0.37872810024063647,"top":0.7343385515567705},"atlasBounds":{"left":488.5,"bottom":97.5,"right":507.5,"top":142.5}},{"unicode":50,"advance":0.5615234375,"planeBounds":{"left":0.025334353719224725,"bottom":-0.01680925468177056,"right":0.5449781462807752,"top":0.7375123796817705},"atlasBounds":{"left":278.5,"bottom":51.5,"right":309.5,"top":96.5}},{"unicode":51,"advance":0.5615234375,"planeBounds":{"left":0.028181041080081196,"bottom":-0.030073418674698794,"right":0.5142994276699189,"top":0.7410109186746988},"atlasBounds":{"left":197.5,"bottom":144.5,"right":226.5,"top":190.5}},{"unicode":52,"advance":0.5615234375,"planeBounds":{"left":0.005886103858368255,"bottom":-0.02169206718177056,"right":0.5590553023916317,"top":0.7326295671817705},"atlasBounds":{"left":310.5,"bottom":51.5,"right":343.5,"top":96.5}},{"unicode":53,"advance":0.5615234375,"planeBounds":{"left":0.055524791080081196,"bottom":-0.02657487968177056,"right":0.5416431776699189,"top":0.7277467546817705},"atlasBounds":{"left":344.5,"bottom":51.5,"right":373.5,"top":96.5}},{"unicode":54,"advance":0.5615234375,"planeBounds":{"left":0.046003306705081196,"bottom":-0.034712090549698794,"right":0.5321216932949189,"top":0.7363722467996988},"atlasBounds":{"left":227.5,"bottom":144.5,"right":256.5,"top":190.5}},{"unicode":55,"advance":0.5615234375,"planeBounds":{"left":0.018010134969224725,"bottom":-0.02169206718177056,"right":0.5376539275307752,"top":0.7326295671817705},"atlasBounds":{"left":374.5,"bottom":51.5,"right":405.5,"top":96.5}},{"unicode":56,"advance":0.5615234375,"planeBounds":{"left":0.037702525455081196,"bottom":-0.030073418674698794,"right":0.5238209120449189,"top":0.7410109186746988},"atlasBounds":{"left":257.5,"bottom":144.5,"right":286.5,"top":190.5}},{"unicode":57,"advance":0.5615234375,"planeBounds":{"left":0.029401744205081196,"bottom":-0.025434746799698794,"right":0.5155201307949189,"top":0.7456495905496988},"atlasBounds":{"left":287.5,"bottom":144.5,"right":316.5,"top":190.5}},{"unicode":58,"advance":0.2421875,"planeBounds":{"left":0.046394008438645884,"bottom":-0.029431286627488215,"right":0.19725833531135412,"top":0.5572633178774882},"atlasBounds":{"left":439.5,"bottom":61.5,"right":448.5,"top":96.5}},{"unicode":59,"advance":0.21142578125,"planeBounds":{"left":0.001066852327789419,"bottom":-0.16459733294591408,"right":0.1854565851722106,"top":0.556198895445914},"atlasBounds":{"left":406.5,"bottom":53.5,"right":417.5,"top":96.5}},{"unicode":60,"advance":0.50830078125,"planeBounds":{"left":0.016948142433865897,"bottom":0.0726146348300812,"right":0.4527784200661341,"top":0.5587330214199189},"atlasBounds":{"left":394.5,"bottom":21.5,"right":420.5,"top":50.5}},{"unicode":61,"advance":0.548828125,"planeBounds":{"left":0.051535540940937666,"bottom":0.17620354038436353,"right":0.5041285215590624,"top":0.49469489711563647},"atlasBounds":{"left":477.5,"bottom":31.5,"right":504.5,"top":50.5}},{"unicode":62,"advance":0.5224609375,"planeBounds":{"left":0.047629290940937666,"bottom":0.0731029160800812,"right":0.5002222715590624,"top":0.5592213026699189},"atlasBounds":{"left":421.5,"bottom":21.5,"right":448.5,"top":50.5}},{"unicode":63,"advance":0.47216796875,"planeBounds":{"left":0.016704001808865897,"bottom":-0.027876153049698794,"right":0.4525342794411341,"top":0.7432081842996988},"atlasBounds":{"left":317.5,"bottom":144.5,"right":343.5,"top":190.5}},{"unicode":64,"advance":0.89794921875,"planeBounds":{"left":0.034064457306783605,"bottom":-0.23896750384690937,"right":0.872199606599607,"top":0.7165065663469093},"atlasBounds":{"left":155.5,"bottom":198.5,"right":205.5,"top":255.5}},{"unicode":65,"advance":0.65234375,"planeBounds":{"left":-0.008838044092129387,"bottom":-0.02169206718177056,"right":0.6616700753421294,"top":0.7326295671817705},"atlasBounds":{"left":237.5,"bottom":51.5,"right":277.5,"top":96.5}},{"unicode":66,"advance":0.62255859375,"planeBounds":{"left":0.06464099434422473,"bottom":-0.02169206718177056,"right":0.5842847869057752,"top":0.7326295671817705},"atlasBounds":{"left":205.5,"bottom":51.5,"right":236.5,"top":96.5}},{"unicode":67,"advance":0.65087890625,"planeBounds":{"left":0.038439807122511785,"bottom":-0.030073418674698794,"right":0.6251344116274882,"top":0.7410109186746988},"atlasBounds":{"left":344.5,"bottom":144.5,"right":379.5,"top":190.5}},{"unicode":68,"advance":0.65576171875,"planeBounds":{"left":0.06301501010836826,"bottom":-0.02169206718177056,"right":0.6161842086416317,"top":0.7326295671817705},"atlasBounds":{"left":162.5,"bottom":51.5,"right":195.5,"top":96.5}},{"unicode":69,"advance":0.568359375,"planeBounds":{"left":0.0652904160800812,"bottom":-0.02169206718177056,"right":0.5514088026699189,"top":0.7326295671817705},"atlasBounds":{"left":132.5,"bottom":51.5,"right":161.5,"top":96.5}},{"unicode":70,"advance":0.552734375,"planeBounds":{"left":0.059675181705081196,"bottom":-0.02169206718177056,"right":0.5457935682949189,"top":0.7326295671817705},"atlasBounds":{"left":102.5,"bottom":51.5,"right":131.5,"top":96.5}},{"unicode":71,"advance":0.68115234375,"planeBounds":{"left":0.040148791497511785,"bottom":-0.030073418674698794,"right":0.6268433960024882,"top":0.7410109186746988},"atlasBounds":{"left":380.5,"bottom":144.5,"right":415.5,"top":190.5}},{"unicode":72,"advance":0.712890625,"planeBounds":{"left":0.062365588372511785,"bottom":-0.02169206718177056,"right":0.6490601928774882,"top":0.7326295671817705},"atlasBounds":{"left":30.5,"bottom":51.5,"right":65.5,"top":96.5}},{"unicode":73,"advance":0.27197265625,"planeBounds":{"left":0.06917965680657412,"bottom":-0.02169206718177056,"right":0.20328128069342588,"top":0.7326295671817705},"atlasBounds":{"left":196.5,"bottom":51.5,"right":204.5,"top":96.5}},{"unicode":74,"advance":0.5517578125,"planeBounds":{"left":0.007184947330081194,"bottom":-0.02657487968177056,"right":0.4933033339199188,"top":0.7277467546817705},"atlasBounds":{"left":0.5,"bottom":51.5,"right":29.5,"top":96.5}},{"unicode":75,"advance":0.626953125,"planeBounds":{"left":0.061633166497511785,"bottom":-0.02169206718177056,"right":0.6483277710024882,"top":0.7326295671817705},"atlasBounds":{"left":452.5,"bottom":97.5,"right":487.5,"top":142.5}},{"unicode":76,"advance":0.5380859375,"planeBounds":{"left":0.06341786132300943,"bottom":-0.02169206718177056,"right":0.5327735449269906,"top":0.7326295671817705},"atlasBounds":{"left":423.5,"bottom":97.5,"right":451.5,"top":142.5}},{"unicode":77,"advance":0.873046875,"planeBounds":{"left":0.05911847969322944,"bottom":-0.02169206718177056,"right":0.8134401140567705,"top":0.7326295671817705},"atlasBounds":{"left":377.5,"bottom":97.5,"right":422.5,"top":142.5}},{"unicode":78,"advance":0.712890625,"planeBounds":{"left":0.062365588372511785,"bottom":-0.02169206718177056,"right":0.6490601928774882,"top":0.7326295671817705},"atlasBounds":{"left":341.5,"bottom":97.5,"right":376.5,"top":142.5}},{"unicode":79,"advance":0.6875,"planeBounds":{"left":0.033395854136655315,"bottom":-0.030073418674698794,"right":0.6536158646133446,"top":0.7410109186746988},"atlasBounds":{"left":416.5,"bottom":144.5,"right":453.5,"top":190.5}},{"unicode":80,"advance":0.630859375,"planeBounds":{"left":0.061550166358368255,"bottom":-0.02169206718177056,"right":0.6147193648916317,"top":0.7326295671817705},"atlasBounds":{"left":273.5,"bottom":97.5,"right":306.5,"top":142.5}},{"unicode":81,"advance":0.6875,"planeBounds":{"left":0.030466166636655315,"bottom":-0.14391866037519643,"right":0.6506861771133446,"top":0.7445045978751964},"atlasBounds":{"left":214.5,"bottom":202.5,"right":251.5,"top":255.5}},{"unicode":82,"advance":0.61572265625,"planeBounds":{"left":0.06350329135836826,"bottom":-0.02169206718177056,"right":0.6166724898916317,"top":0.7326295671817705},"atlasBounds":{"left":186.5,"bottom":97.5,"right":219.5,"top":142.5}},{"unicode":83,"advance":0.59326171875,"planeBounds":{"left":0.020778681983368255,"bottom":-0.030073418674698794,"right":0.5739478805166317,"top":0.7410109186746988},"atlasBounds":{"left":454.5,"bottom":144.5,"right":487.5,"top":190.5}},{"unicode":84,"advance":0.5966796875,"planeBounds":{"left":0.005480822747511787,"bottom":-0.02169206718177056,"right":0.5921754272524882,"top":0.7326295671817705},"atlasBounds":{"left":112.5,"bottom":97.5,"right":147.5,"top":142.5}},{"unicode":85,"advance":0.6484375,"planeBounds":{"left":0.049098994483368255,"bottom":-0.02657487968177056,"right":0.6022681930166317,"top":0.7277467546817705},"atlasBounds":{"left":78.5,"bottom":97.5,"right":111.5,"top":142.5}},{"unicode":86,"advance":0.63623046875,"planeBounds":{"left":-0.008269192599201152,"bottom":-0.02169206718177056,"right":0.6454762238492011,"top":0.7326295671817705},"atlasBounds":{"left":38.5,"bottom":97.5,"right":77.5,"top":142.5}},{"unicode":87,"advance":0.88720703125,"planeBounds":{"left":0.011923628617731797,"bottom":-0.02169206718177056,"right":0.8835841838822682,"top":0.7326295671817705},"atlasBounds":{"left":220.5,"bottom":97.5,"right":272.5,"top":142.5}},{"unicode":88,"advance":0.626953125,"planeBounds":{"left":0.004098979136655316,"bottom":-0.02169206718177056,"right":0.6243189896133446,"top":0.7326295671817705},"atlasBounds":{"left":0.5,"bottom":97.5,"right":37.5,"top":142.5}},{"unicode":89,"advance":0.6005859375,"planeBounds":{"left":-0.010793598988344685,"bottom":-0.02169206718177056,"right":0.6094264114883446,"top":0.7326295671817705},"atlasBounds":{"left":148.5,"bottom":97.5,"right":185.5,"top":142.5}},{"unicode":90,"advance":0.5986328125,"planeBounds":{"left":0.024196650733368255,"bottom":-0.02169206718177056,"right":0.5773658492666317,"top":0.7326295671817705},"atlasBounds":{"left":307.5,"bottom":97.5,"right":340.5,"top":142.5}},{"unicode":91,"advance":0.26513671875,"planeBounds":{"left":0.05437250871693295,"bottom":-0.17280296457569408,"right":0.27228764753306706,"top":0.8329592145756942},"atlasBounds":{"left":59.5,"bottom":195.5,"right":72.5,"top":255.5}},{"unicode":92,"advance":0.41015625,"planeBounds":{"left":0.0014037126767941326,"bottom":-0.08573505127848349,"right":0.4204712873232059,"top":0.7356373950284835},"atlasBounds":{"left":278.5,"bottom":206.5,"right":303.5,"top":255.5}},{"unicode":93,"advance":0.26513671875,"planeBounds":{"left":-0.020659233400995285,"bottom":-0.17280296457569408,"right":0.2140186084009953,"top":0.8329592145756942},"atlasBounds":{"left":94.5,"bottom":195.5,"right":108.5,"top":255.5}},{"unicode":94,"advance":0.41796875,"planeBounds":{"left":0.006855376669722368,"bottom":0.33229482979472236,"right":0.40916024833027764,"top":0.7345997014552776},"atlasBounds":{"left":486.5,"bottom":231.5,"right":510.5,"top":255.5}},{"unicode":95,"advance":0.451171875,"planeBounds":{"left":-0.017473255794918804,"bottom":-0.09553469482549765,"right":0.4686451307949188,"top":0.021804226075497646},"atlasBounds":{"left":70.5,"bottom":7.5,"right":99.5,"top":14.5}},{"unicode":96,"advance":0.30908203125,"planeBounds":{"left":0.00391839948107648,"bottom":0.5860277898277895,"right":0.2553589442689235,"top":0.7704175226722105},"atlasBounds":{"left":36.5,"bottom":3.5,"right":51.5,"top":14.5}},{"unicode":97,"advance":0.5439453125,"planeBounds":{"left":0.028181041080081196,"bottom":-0.029187146002488215,"right":0.5142994276699189,"top":0.5575074585024882},"atlasBounds":{"left":30.5,"bottom":15.5,"right":59.5,"top":50.5}},{"unicode":98,"advance":0.56103515625,"planeBounds":{"left":0.048932994205081196,"bottom":-0.032187684160555265,"right":0.5350513807949189,"top":0.7724220591605553},"atlasBounds":{"left":304.5,"bottom":207.5,"right":333.5,"top":255.5}},{"unicode":99,"advance":0.5234375,"planeBounds":{"left":0.024518931705081196,"bottom":-0.029187146002488215,"right":0.5106373182949189,"top":0.5575074585024882},"atlasBounds":{"left":0.5,"bottom":15.5,"right":29.5,"top":50.5}},{"unicode":100,"advance":0.56396484375,"planeBounds":{"left":0.026227916080081196,"bottom":-0.032187684160555265,"right":0.5123463026699189,"top":0.7724220591605553},"atlasBounds":{"left":334.5,"bottom":207.5,"right":363.5,"top":255.5}},{"unicode":101,"advance":0.52978515625,"planeBounds":{"left":0.026472056705081196,"bottom":-0.029187146002488215,"right":0.5125904432949189,"top":0.5575074585024882},"atlasBounds":{"left":468.5,"bottom":61.5,"right":497.5,"top":96.5}},{"unicode":102,"advance":0.34716796875,"planeBounds":{"left":0.004575110905578838,"bottom":-0.022177918535555265,"right":0.3733545765944212,"top":0.7824318247855553},"atlasBounds":{"left":364.5,"bottom":207.5,"right":386.5,"top":255.5}},{"unicode":103,"advance":0.56103515625,"planeBounds":{"left":0.026960337955081196,"bottom":-0.22888445766762702,"right":0.5130787245449189,"top":0.558962582667627},"atlasBounds":{"left":28.5,"bottom":143.5,"right":57.5,"top":190.5}},{"unicode":104,"advance":0.55078125,"planeBounds":{"left":0.049826556565937666,"bottom":-0.01892352016762703,"right":0.5024195371840624,"top":0.768923520167627},"atlasBounds":{"left":0.5,"bottom":143.5,"right":27.5,"top":190.5}},{"unicode":105,"advance":0.24267578125,"planeBounds":{"left":0.046882289688645884,"bottom":-0.01680925468177056,"right":0.19774661656135412,"top":0.7375123796817705},"atlasBounds":{"left":498.5,"bottom":145.5,"right":507.5,"top":190.5}},{"unicode":106,"advance":0.23876953125,"planeBounds":{"left":-0.048979545900995285,"bottom":-0.2324562772148376,"right":0.1856982959009953,"top":0.7397804959648376},"atlasBounds":{"left":140.5,"bottom":197.5,"right":154.5,"top":255.5}},{"unicode":107,"advance":0.5068359375,"planeBounds":{"left":0.044294322330081196,"bottom":-0.01892352016762703,"right":0.5304127089199189,"top":0.768923520167627},"atlasBounds":{"left":58.5,"bottom":143.5,"right":87.5,"top":190.5}},{"unicode":108,"advance":0.24267578125,"planeBounds":{"left":0.05428707868157412,"bottom":-0.01892352016762703,"right":0.18838870256842588,"top":0.768923520167627},"atlasBounds":{"left":477.5,"bottom":208.5,"right":485.5,"top":255.5}},{"unicode":109,"advance":0.87646484375,"planeBounds":{"left":0.04430890170737297,"bottom":-0.024304333502488215,"right":0.832155942042627,"top":0.5623902710024882},"atlasBounds":{"left":116.5,"bottom":15.5,"right":163.5,"top":50.5}},{"unicode":110,"advance":0.5517578125,"planeBounds":{"left":0.049826556565937666,"bottom":-0.024304333502488215,"right":0.5024195371840624,"top":0.5623902710024882},"atlasBounds":{"left":60.5,"bottom":15.5,"right":87.5,"top":50.5}},{"unicode":111,"advance":0.5703125,"planeBounds":{"left":0.025090213094224725,"bottom":-0.029187146002488215,"right":0.5447340056557752,"top":0.5575074585024882},"atlasBounds":{"left":193.5,"bottom":15.5,"right":224.5,"top":50.5}},{"unicode":112,"advance":0.56103515625,"planeBounds":{"left":0.048444712955081196,"bottom":-0.22644305141762702,"right":0.5345630995449189,"top":0.561403988917627},"atlasBounds":{"left":447.5,"bottom":208.5,"right":476.5,"top":255.5}},{"unicode":113,"advance":0.568359375,"planeBounds":{"left":0.025983775455081196,"bottom":-0.22644305141762702,"right":0.5121021620449189,"top":0.561403988917627},"atlasBounds":{"left":417.5,"bottom":208.5,"right":446.5,"top":255.5}},{"unicode":114,"advance":0.33837890625,"planeBounds":{"left":0.045180595002291775,"bottom":-0.024304333502488215,"right":0.34690924874770823,"top":0.5623902710024882},"atlasBounds":{"left":449.5,"bottom":61.5,"right":467.5,"top":96.5}},{"unicode":115,"advance":0.515625,"planeBounds":{"left":0.021669814448009427,"bottom":-0.029187146002488215,"right":0.4910254980519906,"top":0.5575074585024882},"atlasBounds":{"left":164.5,"bottom":15.5,"right":192.5,"top":50.5}},{"unicode":116,"advance":0.32666015625,"planeBounds":{"left":-0.019433670483564695,"bottom":-0.02877457520298586,"right":0.3158203892335647,"top":0.6752589502029859},"atlasBounds":{"left":418.5,"bottom":54.5,"right":438.5,"top":96.5}},{"unicode":117,"advance":0.55126953125,"planeBounds":{"left":0.048117572190937666,"bottom":-0.034069958502488215,"right":0.5007105528090624,"top":0.5526246460024882},"atlasBounds":{"left":88.5,"bottom":15.5,"right":115.5,"top":50.5}},{"unicode":118,"advance":0.484375,"planeBounds":{"left":-0.002092396419918806,"bottom":-0.02080579450955998,"right":0.4840259901699188,"top":0.54912610700956},"atlasBounds":{"left":331.5,"bottom":16.5,"right":360.5,"top":50.5}},{"unicode":119,"advance":0.75146484375,"planeBounds":{"left":-0.002649098431770561,"bottom":-0.02080579450955998,"right":0.7516725359317705,"top":0.54912610700956},"atlasBounds":{"left":225.5,"bottom":16.5,"right":270.5,"top":50.5}},{"unicode":120,"advance":0.49560546875,"planeBounds":{"left":-0.0046143729128470395,"bottom":-0.02080579450955998,"right":0.498266716662847,"top":0.54912610700956},"atlasBounds":{"left":300.5,"bottom":16.5,"right":330.5,"top":50.5}},{"unicode":121,"advance":0.47314453125,"planeBounds":{"left":-0.007219349544918806,"bottom":-0.23645281704262702,"right":0.4788990370449188,"top":0.551394223292627},"atlasBounds":{"left":387.5,"bottom":208.5,"right":416.5,"top":255.5}},{"unicode":122,"advance":0.49560546875,"planeBounds":{"left":0.018007705073009427,"bottom":-0.02080579450955998,"right":0.4873633886769906,"top":0.54912610700956},"atlasBounds":{"left":271.5,"bottom":16.5,"right":299.5,"top":50.5}},{"unicode":123,"advance":0.33837890625,"planeBounds":{"left":0.011572188891435306,"bottom":-0.20234398020069408,"right":0.3468262486085647,"top":0.8034181989506942},"atlasBounds":{"left":73.5,"bottom":195.5,"right":93.5,"top":255.5}},{"unicode":124,"advance":0.24365234375,"planeBounds":{"left":0.06315671142450235,"bottom":-0.15466084787519643,"right":0.18049563232549765,"top":0.7337624103751964},"atlasBounds":{"left":206.5,"bottom":202.5,"right":213.5,"top":255.5}},{"unicode":125,"advance":0.33837890625,"planeBounds":{"left":-0.010156326733564695,"bottom":-0.20234398020069408,"right":0.3250977329835647,"top":0.8034181989506942},"atlasBounds":{"left":38.5,"bottom":195.5,"right":58.5,"top":255.5}},{"unicode":126,"advance":0.68017578125,"planeBounds":{"left":0.046984728997511785,"bottom":0.1766063915990047,"right":0.6336793335024882,"top":0.4112842334009953},"atlasBounds":{"left":0.5,"bottom":0.5,"right":35.5,"top":14.5}}]}');var E=function(t,e){return(E=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function T(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}E(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function B(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],i=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function C(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,o,s=n.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(i=s.next()).done;)r.push(i.value)}catch(t){o={error:t}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(o)throw o.error}}return r}function M(t,e){for(var n=0,i=e.length,o=t.length;n<i;n++,o++)t[o]=e[n];return t}function P(t){return"function"==typeof t}function S(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}Object.create,Object.create;var U=S((function(t){return function(e){t(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(t,e){return e+1+") "+t.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}}));function D(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var R=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,i,o;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var r=B(s),a=r.next();!a.done;a=r.next())a.value.remove(this)}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}else s.remove(this);var l=this.initialTeardown;if(P(l))try{l()}catch(t){o=t instanceof U?t.errors:[t]}var h=this._teardowns;if(h){this._teardowns=null;try{for(var c=B(h),f=c.next();!f.done;f=c.next()){var u=f.value;try{k(u)}catch(t){o=null!=o?o:[],t instanceof U?o=M(M([],C(o)),C(t.errors)):o.push(t)}}}catch(t){n={error:t}}finally{try{f&&!f.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}}if(o)throw new U(o)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)k(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&void 0!==n?n:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&D(e,t)},t.prototype.remove=function(e){var n=this._teardowns;n&&D(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),F=R.EMPTY;function N(t){return t instanceof R||t&&"closed"in t&&P(t.remove)&&P(t.add)&&P(t.unsubscribe)}function k(t){P(t)?t():t.unsubscribe()}var z=null,G=null,L=void 0,O=!1,Y=!1,H={setTimeout:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=H.delegate;return((null==n?void 0:n.setTimeout)||setTimeout).apply(void 0,M([],C(t)))},clearTimeout:function(t){var e=H.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function Q(t){H.setTimeout((function(){if(!z)throw t;z(t)}))}function Z(){}var j=X("C",void 0,void 0);function X(t,e,n){return{kind:t,value:e,error:n}}var W=null;function V(t){if(O){var e=!W;if(e&&(W={errorThrown:!1,error:null}),t(),e){var n=W,i=n.errorThrown,o=n.error;if(W=null,i)throw o}}else t()}function q(t){O&&W&&(W.errorThrown=!0,W.error=t)}var J=function(t){function e(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,N(e)&&e.add(n)):n.destination=et,n}return T(e,t),e.create=function(t,e,n){return new K(t,e,n)},e.prototype.next=function(t){this.isStopped?tt(function(t){return X("N",t,void 0)}(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?tt(X("E",void 0,t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?tt(j,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(R),K=function(t){function e(e,n,i){var o,s=t.call(this)||this;if(P(e))o=e;else if(e){var r;o=e.next,n=e.error,i=e.complete,s&&Y?(r=Object.create(e)).unsubscribe=function(){return s.unsubscribe()}:r=e,o=null==o?void 0:o.bind(r),n=null==n?void 0:n.bind(r),i=null==i?void 0:i.bind(r)}return s.destination={next:o?_(o):Z,error:_(null!=n?n:$),complete:i?_(i):Z},s}return T(e,t),e}(J);function _(t,e){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];try{t.apply(void 0,M([],C(e)))}catch(t){O?q(t):Q(t)}}}function $(t){throw t}function tt(t,e){var n=G;n&&H.setTimeout((function(){return n(t,e)}))}var et={closed:!0,next:Z,error:$,complete:Z},nt="function"==typeof Symbol&&Symbol.observable||"@@observable";function it(t){return t}function ot(t){return 0===t.length?it:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var st=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var i,o=this,s=(i=t)&&i instanceof J||function(t){return t&&P(t.next)&&P(t.error)&&P(t.complete)}(i)&&N(i)?t:new K(t,e,n);return V((function(){var t=o,e=t.operator,n=t.source;s.add(e?e.call(s,n):n?o._subscribe(s):o._trySubscribe(s))})),s},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=rt(e))((function(e,i){var o;o=n.subscribe((function(e){try{t(e)}catch(t){i(t),null==o||o.unsubscribe()}}),i,e)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[nt]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return ot(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=rt(t))((function(t,n){var i;e.subscribe((function(t){return i=t}),(function(t){return n(t)}),(function(){return t(i)}))}))},t.create=function(e){return new t(e)},t}();function rt(t){var e;return null!==(e=null!=t?t:L)&&void 0!==e?e:Promise}var at=S((function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),lt=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return T(e,t),e.prototype.lift=function(t){var e=new ht(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new at},e.prototype.next=function(t){var e=this;V((function(){var n,i;if(e._throwIfClosed(),!e.isStopped){var o=e.observers.slice();try{for(var s=B(o),r=s.next();!r.done;r=s.next())r.value.next(t)}catch(t){n={error:t}}finally{try{r&&!r.done&&(i=s.return)&&i.call(s)}finally{if(n)throw n.error}}}}))},e.prototype.error=function(t){var e=this;V((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var n=e.observers;n.length;)n.shift().error(t)}}))},e.prototype.complete=function(){var t=this;V((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=e.hasError,i=e.isStopped,o=e.observers;return n||i?F:(o.push(t),new R((function(){return D(o,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,i=e.thrownError,o=e.isStopped;n?t.error(i):o&&t.complete()},e.prototype.asObservable=function(){var t=new st;return t.source=this,t},e.create=function(t,e){return new ht(t,e)},e}(st),ht=function(t){function e(e,n){var i=t.call(this)||this;return i.destination=e,i.source=n,i}return T(e,t),e.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},e.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:F},e}(lt),ct=function(t,e,n){this.BLEND=1,this.CULL_FACE=2,this.CULL_FRONT=4,this.CULL_BACK=8,this.ENABLE_DEPTH_TEST=16,this.shaders=[],this.isVisible=!0,this.vertexBuffer=t,this.indexCount=n,this.mode=e,this.glFlags=0,this.modelMatrix=a(),this.scale=[1,1,1],this.position=[0,0,0],this.rotation=[0,0,0],this.rotationRadians=0},ft=function(t){this.shader=t,this.uniforms=t.uniforms,this.mvpUniformName="",this.clipPlaneUniformName="",this.rayDirUniformName=""};ft.prototype.use=function(t){return this.shader.use(t)};var ut=n(764).lW;let dt=function(t={}){this.opts={},this.defaults={textHeight:.03,colorbarHeight:.05,crosshairWidth:1,backColor:[0,0,0,1],crosshairColor:[1,0,0,1],selectionBoxColor:[1,1,1,.5],clipPlaneColor:[1,1,1,.5],colorBarMargin:.05,briStep:1,conStep:1,trustCalMinMax:!0,clipPlaneHotKey:"KeyC"},this.canvas=null,this.gl=null,this.colormapTexture=null,this.volumeTexture=null,this.overlayTexture=null,this.sliceShader=null,this.lineShader=null,this.renderShader=null,this.colorbarShader=null,this.fontShader=null,this.passThroughShader=null,this.orientShaderU=null,this.orientShaderI=null,this.orientShaderF=null,this.orientShaderRGBU=null,this.surfaceShader=null,this.fontMets=null,this.sliceTypeAxial=0,this.sliceTypeCoronal=1,this.sliceTypeSagittal=2,this.sliceTypeMultiplanar=3,this.sliceTypeRender=4,this.sliceType=this.sliceTypeMultiplanar,this.scene={},this.scene.renderAzimuth=120,this.scene.renderElevation=15,this.scene.crosshairPos=[.5,.5,.5],this.scene.clipPlane=[0,0,0,0],this.scene.mousedown=!1,this.scene.touchdown=!1,this.scene.mouseButtonLeft=0,this.scene.mouseButtonRight=2,this.scene.mouseButtonLeftDown=!1,this.scene.mouseButtonRightDown=!1,this.scene.prevX=0,this.scene.prevY=0,this.scene.currX=0,this.scene.currY=0,this.back={},this.overlays=[],this.volumes=[],this.backTexture=[],this.objectsToRender3D=[],this.isRadiologicalConvention=!1,this.volScaleMultiplier=1,this.volScale=[],this.vox=[],this.mousePos=[0,0],this.numScreenSlices=0,this.screenSlices=[{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial}],this.backOpacity=1,this.isDragging=!1,this.dragStart=[0,0],this.dragEnd=[0,0],this.otherNV=null,this.volumeObject3D=null,this.clipPlaneObject3D=null,this.crosshairPosition$=new lt,this.intensityRange$=new lt,this.currentClipPlaneIndex=0,this.lastCalled=(new Date).getTime();for(let e in this.defaults)this.opts[e]=void 0===t[e]?this.defaults[e]:t[e]};function gt(t,e){return 0===t.scl_slope&&(t.scl_slope=1),e*t.scl_slope+t.scl_inter}dt.prototype.attachTo=function(t){return this.canvas=document.getElementById(t),this.gl=this.canvas.getContext("webgl2"),this.gl||(alert("unable to get webgl2 context. Perhaps this browser does not support webgl2"),console.log("unable to get webgl2 context. Perhaps this browser does not support webgl2")),this.canvas.parentElement.style.backgroundColor="black",this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight,window.addEventListener("resize",this.resizeListener.bind(this)),this.registerInteractions(),this.init(),this},dt.prototype.syncWith=function(t){this.otherNV=t},dt.prototype.sync=function(){if(!this.otherNV||void 0===this.otherNV)return;let t=this.frac2mm(this.scene.crosshairPos);this.otherNV.scene.crosshairPos=this.otherNV.mm2frac(t),this.otherNV.scene.renderAzimuth=this.scene.renderAzimuth,this.otherNV.scene.renderElevation=this.scene.renderElevation,this.otherNV.drawScene()},dt.prototype.arrayEquals=function(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every(((t,n)=>t===e[n]))},dt.prototype.resizeListener=function(){this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight,this.drawScene()},dt.prototype.getRelativeMousePosition=function(t,e){var n=(e=e||t.target).getBoundingClientRect();return{x:t.clientX-n.left,y:t.clientY-n.top}},dt.prototype.getNoPaddingNoBorderCanvasRelativeMousePosition=function(t,e){e=e||t.target;var n=this.getRelativeMousePosition(t,e);return n.x=n.x*e.width/e.clientWidth,n.y=n.y*e.height/e.clientHeight,n},dt.prototype.mouseContextMenuListener=function(t){t.preventDefault()},dt.prototype.mouseDownListener=function(t){t.preventDefault();var e=this.canvas.getBoundingClientRect();this.scene.mousedown=!0,t.button===this.scene.mouseButtonLeft?(this.scene.mouseButtonLeftDown=!0,this.mouseLeftButtonHandler(t,e)):t.button===this.scene.mouseButtonRight&&(this.scene.mouseButtonRightDown=!0,this.mouseRightButtonHandler(t,e))},dt.prototype.mouseLeftButtonHandler=function(t,e){let n=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.mouseClick(n.x,n.y),this.mouseDown(n.x,n.y)},dt.prototype.mouseRightButtonHandler=function(t,e){this.isDragging=!0;let n=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.dragStart[0]=n.x,this.dragStart[1]=n.y},dt.prototype.calculateMinMaxVoxIdx=function(t){if(t.length>2)throw new Error("array must not contain more than two values");return[Math.floor(Math.min(t[0],t[1])),Math.floor(Math.max(t[0],t[1]))]},dt.prototype.calculateNewRange=function(){if(this.sliceType===this.sliceTypeRender)return;let t=this.canvasPos2frac([this.dragStart[0],this.dragStart[1]]),e=this.frac2vox(t);t=this.canvasPos2frac([this.dragEnd[0],this.dragEnd[1]]);let n,i,o,s,r=this.frac2vox(t),a=-Number.MAX_VALUE,l=Number.MAX_VALUE;n=this.calculateMinMaxVoxIdx([e[0],r[0]]),i=this.calculateMinMaxVoxIdx([e[1],r[1]]),o=this.calculateMinMaxVoxIdx([e[2],r[2]]),e[0]-r[0]==0?n[1]=e[0]+1:e[1]-r[1]==0?i[1]=e[1]+1:e[2]-r[2]==0&&(o[1]=e[2]+1);const h=this.volumes[0].volume.hdr.datatypeCode,c=this.volumes[0].volume.hdr,f=this.volumes[0].volume.img;switch(console.log(this.volumes[0]),h){case 2:s=new Uint8Array(f);break;case 4:s=new Int16Array(f);break;case 16:s=new Float32Array(f);break;case 64:s=new Float64Array(f);break;case 512:s=new Uint16Array(f)}console.log(s[n[0]*i[0]*o[0]]),console.log(n),console.log(i),console.log(o);const u=c.dims[1],d=c.dims[2];for(let t=o[0];t<o[1];t++){let e=t*u*d;for(let t=i[0];t<i[1];t++){let i=t*u;for(let t=n[0];t<n[1];t++){let n=e+i+t;l>s[n]&&(l=s[n]),a<s[n]&&(a=s[n])}}}console.log("hi is "+a),console.log("lo is "+l);var g=gt(c,l),p=gt(c,a);console.log(p),console.log(g),console.log("scaled"),this.volumes[0].cal_min=g,this.volumes[0].cal_max=p,this.intensityRange$.next([g,p])},dt.prototype.mouseUpListener=function(){this.scene.mousedown=!1,this.scene.mouseButtonRightDown=!1,this.scene.mouseButtonLeftDown=!1,this.isDragging&&(this.isDragging=!1,this.calculateNewRange(),this.refreshLayers(this.volumes[0],0,this.volumes.length),console.log(this.volumes[0].cal_min,this.volumes[0].cal_max),this.drawScene())},dt.prototype.touchStartListener=function(t){t.preventDefault(),this.scene.touchdown=!0;var e=this.canvas.getBoundingClientRect();this.mouseClick(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top),this.mouseDown(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top)},dt.prototype.touchEndListener=function(){this.scene.touchdown=!1},dt.prototype.mouseMoveListener=function(t){if(this.scene.mousedown){let e=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.scene.mouseButtonLeftDown?(this.mouseClick(e.x,e.y),this.mouseMove(e.x,e.y)):this.scene.mouseButtonRightDown&&(this.dragEnd[0]=e.x,this.dragEnd[1]=e.y),this.drawScene(),this.scene.prevX=this.scene.currX,this.scene.prevY=this.scene.currY}},dt.prototype.resetBriCon=function(){this.volumes[0].cal_min=this.volumes[0].global_min,this.volumes[0].cal_max=this.volumes[0].global_max,this.refreshLayers(this.volumes[0],0,this.volumes.length),this.drawScene()},dt.prototype.touchMoveListener=function(t){if(this.scene.touchdown&&t.touches.length<2){var e=this.canvas.getBoundingClientRect();this.mouseClick(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top),this.mouseMove(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top)}},dt.prototype.keyUpListener=function(t){if(t.code===this.opts.clipPlaneHotKey){let t=(new Date).getTime();if(t-this.lastCalled>1e3){switch(this.currentClipPlaneIndex=(this.currentClipPlaneIndex+1)%4,this.clipPlaneObject3D.isVisible=this.currentClipPlaneIndex,this.currentClipPlaneIndex){case 0:this.scene.clipPlane=[0,0,0,0],this.clipPlaneObject3D.rotation=[0,0,0];break;case 1:this.scene.clipPlane=[1,0,0,0],this.clipPlaneObject3D.rotation=[0,1,0];break;case 2:this.scene.clipPlane=[0,1,0,0],this.clipPlaneObject3D.rotation=[1,0,0];break;case 3:this.scene.clipPlane=[0,0,1,0],this.clipPlaneObject3D.rotation=[0,0,1]}console.log(this.scene.clipPlane),this.drawScene()}this.lastCalled=t}},dt.prototype.wheelListener=function(t){t.preventDefault(),t.stopPropagation();var e=this.canvas.getBoundingClientRect();t.deltaY<0?this.sliceScroll2D(-.01,t.clientX-e.left,t.clientY-e.top):this.sliceScroll2D(.01,t.clientX-e.left,t.clientY-e.top)},dt.prototype.registerInteractions=function(){this.canvas.addEventListener("mousedown",this.mouseDownListener.bind(this)),this.canvas.addEventListener("mouseup",this.mouseUpListener.bind(this)),this.canvas.addEventListener("mousemove",this.mouseMoveListener.bind(this)),this.canvas.addEventListener("touchstart",this.touchStartListener.bind(this)),this.canvas.addEventListener("touchend",this.touchEndListener.bind(this)),this.canvas.addEventListener("touchmove",this.touchMoveListener.bind(this)),this.canvas.addEventListener("wheel",this.wheelListener.bind(this)),this.canvas.addEventListener("contextmenu",this.mouseContextMenuListener.bind(this)),this.canvas.addEventListener("dblclick",this.resetBriCon.bind(this)),this.canvas.setAttribute("tabindex",0),this.canvas.addEventListener("keyup",this.keyUpListener.bind(this),!1),this.canvas.focus()},dt.prototype.mouseDown=function(t,e){this.sliceType==this.sliceTypeRender&&(this.mousePos=[t,e])},dt.prototype.mouseMove=function(t,e){this.sliceType==this.sliceTypeRender&&(this.scene.renderAzimuth+=t-this.mousePos[0],this.scene.renderElevation+=e-this.mousePos[1],this.mousePos=[t,e],this.drawScene())},dt.prototype.sph2cartDeg=function(t,e){let n=-e*(Math.PI/180),i=(t-90)%360*(Math.PI/180),o=[Math.cos(n)*Math.cos(i),Math.cos(n)*Math.sin(i),Math.sin(n)],s=Math.sqrt(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]);return s<=0||(o[0]/=s,o[1]/=s,o[2]/=s),o},dt.prototype.clipPlaneUpdate=function(t){if(this.sliceType!=this.sliceTypeRender)return;let e=this.sph2cartDeg(t[0],t[1]);this.scene.clipPlane=[e[0],e[1],e[2],t[2]],this.drawScene()},dt.prototype.setCrosshairColor=function(t){this.opts.crosshairColor=t,this.drawScene()},dt.prototype.setSelectionBoxColor=function(t){this.opts.selectionBoxColor=t},dt.prototype.sliceScroll2D=function(t,e,n,i=!0){this.mouseClick(e,n,t,i)},dt.prototype.setSliceType=function(t){return this.sliceType=t,this.drawScene(),this},dt.prototype.setOpacity=function(t,e){if(this.volumes[t].opacity=e,0===t)return this.backOpacity=e,void this.drawScene();this.updateGLVolume()},dt.prototype.setScale=function(t){this.volScaleMultiplier=t,this.drawScene()},dt.prototype.setClipPlaneColor=function(t){this.opts.clipPlaneColor=t},dt.prototype.overlayRGBA=function(t){let e=t.hdr,n=e.dims[1]*e.dims[2]*e.dims[3],i=new Uint8ClampedArray(4*n),o=.2*Math.min(Math.min(e.dims[1],e.dims[2]),e.dims[3]),s=.5*e.dims[1],r=.5*e.dims[2],a=.5*e.dims[3],l=0;for(let t=0;t<e.dims[3];t++)for(let n=0;n<e.dims[2];n++)for(let h=0;h<e.dims[1];h++){let e=Math.abs(h-s),c=Math.abs(n-r),f=Math.abs(t-a),u=0;Math.sqrt(e*e+c*c+f*f)<o&&(u=255),i[l++]=0,i[l++]=u,i[l++]=0,i[l++]=.5*u}return i},dt.prototype.vox2mm=function(t,e){let n=l(e);c(n,n);let i=g(t[0],t[1],t[2],1);return p(i,i,n),A(i[0],i[1],i[2])},dt.prototype.nii2RAS=function(t){let e=t.volume.hdr,n=e.affine,i=function(t,e,n,i,o,s,a,l,h){var c=new r(9);return c[0]=t,c[1]=e,c[2]=n,c[3]=i,c[4]=o,c[5]=s,c[6]=a,c[7]=l,c[8]=h,c}(Math.abs(n[0][0]),Math.abs(n[0][1]),Math.abs(n[0][2]),Math.abs(n[1][0]),Math.abs(n[1][1]),Math.abs(n[1][2]),Math.abs(n[2][0]),Math.abs(n[2][1]),Math.abs(n[2][2])),o=[1,1,1];i[3]>i[0]&&(o[0]=2),i[6]>i[0]&&i[6]>i[3]&&(o[0]=3),o[1]=1,1===o[0]?i[4]>i[7]?o[1]=2:o[1]=3:2===o[0]?i[1]>i[7]?o[1]=1:o[1]=3:i[1]>i[4]?o[1]=1:o[1]=2,o[2]=6-o[1]-o[0];let s=[1,2,3];s[o[0]-1]=1,s[o[1]-1]=2,s[o[2]-1]=3;let c=h(n[0][0],n[0][1],n[0][2],n[0][3],n[1][0],n[1][1],n[1][2],n[1][3],n[2][0],n[2][1],n[2][2],n[2][3],0,0,0,1);t.mm000=this.vox2mm([-.5,-.5,-.5],c),t.mm100=this.vox2mm([e.dims[1]-.5,-.5,-.5],c),t.mm010=this.vox2mm([-.5,e.dims[2]-.5,-.5],c),t.mm001=this.vox2mm([-.5,-.5,e.dims[3]-.5],c);let u=a();!function(t,e){t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]}(u,c);for(let t=0;t<3;t++)for(let e=0;e<3;e++)u[4*t+e]=c[4*t+s[e]-1];let d=[0,0,0];if(u[0]<0&&(d[0]=1),u[5]<0&&(d[1]=1),u[10]<0&&(d[2]=1),t.dimsRAS=[e.dims[0],e.dims[s[0]],e.dims[s[1]],e.dims[s[2]]],t.pixDimsRAS=[e.pixDims[0],e.pixDims[s[0]],e.pixDims[s[1]],e.pixDims[s[2]]],this.arrayEquals(s,[1,2,3])&&this.arrayEquals(d,[0,0,0]))return t.toRAS=a(),void(t.matRAS=l(c));(function(t){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1})(c),c[0]=1-2*d[0],c[5]=1-2*d[1],c[10]=1-2*d[2],c[3]=(e.dims[s[0]]-1)*d[0],c[7]=(e.dims[s[1]]-1)*d[1],c[11]=(e.dims[s[2]]-1)*d[2];let g=a();f(g,c),function(t,e,n){var i=e[0],o=e[1],s=e[2],r=e[3],a=e[4],l=e[5],h=e[6],c=e[7],f=e[8],u=e[9],d=e[10],g=e[11],p=e[12],m=e[13],A=e[14],v=e[15],b=n[0],y=n[1],w=n[2],I=n[3];t[0]=b*i+y*a+w*f+I*p,t[1]=b*o+y*l+w*u+I*m,t[2]=b*s+y*h+w*d+I*A,t[3]=b*r+y*c+w*g+I*v,b=n[4],y=n[5],w=n[6],I=n[7],t[4]=b*i+y*a+w*f+I*p,t[5]=b*o+y*l+w*u+I*m,t[6]=b*s+y*h+w*d+I*A,t[7]=b*r+y*c+w*g+I*v,b=n[8],y=n[9],w=n[10],I=n[11],t[8]=b*i+y*a+w*f+I*p,t[9]=b*o+y*l+w*u+I*m,t[10]=b*s+y*h+w*d+I*A,t[11]=b*r+y*c+w*g+I*v,b=n[12],y=n[13],w=n[14],I=n[15],t[12]=b*i+y*a+w*f+I*p,t[13]=b*o+y*l+w*u+I*m,t[14]=b*s+y*h+w*d+I*A,t[15]=b*r+y*c+w*g+I*v}(g,g,u),t.matRAS=l(g),c=h(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),c[s[0]-1+0]=2*-d[0]+1,c[s[1]-1+4]=2*-d[1]+1,c[s[2]-1+8]=2*-d[2]+1,c[3]=d[0],c[7]=d[1],c[11]=d[2],t.toRAS=l(c)},dt.prototype.loadVolumes=function(t){this.volumes=t,this.back=this.volumes[0],this.overlays=this.volumes.slice(1);let e=[],n=null,o=null;for(let s=0;s<t.length;s++){console.log("loading ",t[s].url);let r=this.volumes[s].url;e.push(new XMLHttpRequest),e[s].open("GET",r,!0),e[s].responseType="arraybuffer",e[s].onerror=function(){console.error("error loading volume ",this.volumes[s].url),alert("error loading "+this.volumes[s].url)},e[s].onload=function(){let t=e[s].response;n=null,o=null,t?(n=i.readHeader(t),o=i.isCompressed(t)?i.readImage(n,i.decompress(t)):i.readImage(n,t)):(alert("Unable to load buffer properly from volume?"),console.log("no buffer?")),this.volumes[s].volume={},this.volumes[s].volume.hdr=n,this.volumes[s].volume.img=o,this.volumes[s].opacity=1,this.nii2RAS(this.volumes[s]),this.updateGLVolume()}.bind(this),e[s].send()}return this},dt.prototype.rgbaTex=function(t,e,n,i=!1){if(t&&this.gl.deleteTexture(t),t=this.gl.createTexture(),this.gl.activeTexture(e),this.gl.bindTexture(this.gl.TEXTURE_3D,t),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.texStorage3D(this.gl.TEXTURE_3D,1,this.gl.RGBA8,n[1],n[2],n[3]),i){let t=new Uint8Array(n[1]*n[2]*n[3]*4);this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,n[1],n[2],n[3],this.gl.RGBA,this.gl.UNSIGNED_BYTE,t)}return t},dt.prototype.loadPng=function(t){var e=null;(e=new Image).onload=function(){var t=this.gl.createTexture();this.gl.activeTexture(this.gl.TEXTURE3),this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e)}.bind(this),e.src="data:image/png;base64,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\nhoYRsoBGIwh95UpkZPwdtZxJoxNaEUjy7RdfmHk/7NgBX1/FUI/6czh3C7ee4EkH\nOsYwRgEg+8Qjfgu2sLKWY7nOldK1bRtKSswKwEEc5FuYsv/du7h+HQ8eiNg2Nhqx\nD188OhqrV2PLFuzeLYhMQghCDuFQN7o/x+dKsavB4/FU3MuU/S9fRl6ekH9ZbEyy\niyzJQG3ahJ07hfBIcIDDYRzuQU8rWhvQYPaJo6KiDh8+fOTIETX7M/hXr169e/cu\nZb6+vr6zs1MWAKo7iz0yMjI5OXndunWslKVLdZnm5ubGRTixt7e3osI0n5XzvIN3\nGEkj9me0L10CZYMawPzku6vBp1y+HKmpuoxxdJTNpNBBDPJBs5FtcJ4hAFpotXpe\nZlJ988035P1QSUuampquX7/+bMZbWxIASwxqBftroGFVs6jURmbn1/j6FE5NYUpt\nn8DEIyH3jxrRSI77ofsPIzz4rv8Z84RmHnMo7OHh4fJ3Y2NjSUkJK9zEZ3JyksxI\nyqMAsMvkYP2rBUCjxIYFvH374m3bdguiHPaJy+3OzW2nBPTOdQ7mN+fqSZYoQ9lZ\nnD2O40YvoNXevHlzeno6MDCQNKSzkspjYqyNkUbDtN7EKtKDckKF+93vfsfrmzhP\nTU3du3ePDtzxpz/9qXx9YuPGjbTn5+er1QIbNggiIJ3pcQEXfo/fm1xBAcuVjSnu\nAhfWjM5K5ktPF8VQUDBzShjCZJIyYv/qaly5IoiDJGXCGnOBVboWa1lpiqW1tfXY\nsWN/+MMfSAomzqx8cndHRwdv/eMf/3jJkiW6e2PDPdy7iZtd6FKcXV1FOWequHRs\nbOzrr7/m4oyb+kX5AKLxFn19+OwzRQOSk5lKKC/HnTuqQ5As0tKwdq1iaEbzH/CH\nLGRVolJ92mEMUxiqUU09+Av8hUHhyNds5KPubrV/GtIoxrux2+jO336L7OyZzvo9\nhqXyfYTHj9Hejk8+gb6UyOxv4+0a1FD+Z87bhV188ZVYqY4Ojh3D6dPiKcfHze9F\n9mQrLSWx4cMPkZgoj3jCk3s9xdN/wj/NnMeE37Nnz/79+0nripGcSI2/cOGCXE1q\n/yEJdXV1fGuWydOnTw8dOhQXpxMqDw8PLsUkIdXyQWdutxmb38Jb0Yg2mGpq8PXX\nIox8S7PoYuJ0iWeurMTz5/jBDwQbSNiJnbWopa4zkoaE0RoRsSQIhisUSPDx8eF3\n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"},dt.prototype.initText=async function(){await this.loadPng("fnt.png"),this.fontMets=[];for(let t=0;t<256;t++)this.fontMets[t]={},this.fontMets[t].xadv=0,this.fontMets[t].uv_lbwh=[0,0,0,0],this.fontMets[t].lbwh=[0,0,0,0];await async function(){}(),this.fontMets.distanceRange=x.IY.k6,this.fontMets.size=x.IY.dp;let t=x.IY.bf,e=x.IY.Cb;for(let n=0;n<x.pE.length;n++){let i=x.pE[n],o=i.unicode;if(this.fontMets[o].xadv=i.advance,void 0===i.planeBounds)continue;let s=i.atlasBounds.left/t,r=(e-i.atlasBounds.top)/e,a=(i.atlasBounds.right-i.atlasBounds.left)/t,l=(i.atlasBounds.top-i.atlasBounds.bottom)/e;this.fontMets[o].uv_lbwh=[s,r,a,l],s=i.planeBounds.left,r=i.planeBounds.bottom,a=i.planeBounds.right-i.planeBounds.left,l=i.planeBounds.top-i.planeBounds.bottom,this.fontMets[o].lbwh=[s,r,a,l]}},dt.prototype.init=async function(){let t=this.gl.getExtension("WEBGL_debug_renderer_info"),e=this.gl.getParameter(t.UNMASKED_VENDOR_WEBGL),n=this.gl.getParameter(t.UNMASKED_RENDERER_WEBGL);console.log("gpu vendor: ",e),console.log("gpu renderer: ",n),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.FRONT),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.rgbaTex(this.volumeTexture,this.gl.TEXTURE0,[2,2,2,2],!0),this.rgbaTex(this.overlayTexture,this.gl.TEXTURE2,[2,2,2,2],!0);let i=this.gl.createVertexArray();this.gl.bindVertexArray(i);let s=new Float32Array([0,1,.5,1,1,.5,1,0,.5,0,1,.5,1,0,.5,0,0,.5]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,s,this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(0),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),this.clipPlaneObject3D=new ct(r,this.gl.TRIANGLES,6),this.clipPlaneObject3D.position=[0,0,-.54],this.clipPlaneObject3D.isVisible=!1,this.clipPlaneObject3D.rotationRadians=Math.PI/2,this.objectsToRender3D.push(this.clipPlaneObject3D);let a=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,a),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,1,0,0]),this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(0),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),this.volumeObject3D=new ct(a,this.gl.TRIANGLE_STRIP,14),this.volumeObject3D.glFlags=this.volumeObject3D.BLEND|this.volumeObject3D.CULL_FACE|this.volumeObject3D.CULL_FRONT,this.volumeObject3D.position=[0,0,-.54],this.objectsToRender3D.push(this.volumeObject3D),this.sliceShader=new o(this.gl,"#version 300 es\n#line 150\nlayout(location=0) in vec3 pos;\nuniform int axCorSag;\nuniform float slice;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nout vec3 texPos;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tif (axCorSag == 1)\n\t\ttexPos = vec3(pos.x, slice, pos.y);\n\telse if (axCorSag == 2)\n\t\ttexPos = vec3(slice, pos.x, pos.y);\n\telse\n\t\ttexPos = vec3(pos.xy, slice);\n}","#version 300 es\n#line 173\nprecision highp int;\nprecision highp float;\nuniform highp sampler3D volume, overlay;\nuniform float opacity;\nin vec3 texPos;\nout vec4 color;\nvoid main() {\n\tcolor = vec4(texture(volume, texPos).rgb, opacity);\n\tvec4 ocolor = texture(overlay, texPos);\n float aout = ocolor.a + (1.0 - ocolor.a) * color.a;\n if (aout <= 0.0) return;\n color.rgb = ((ocolor.rgb * ocolor.a) + (color.rgb * color.a * (1.0 - ocolor.a))) / aout;\n color.a = aout;\n}"),this.sliceShader.use(this.gl),this.gl.uniform1i(this.sliceShader.uniforms.volume,0),this.gl.uniform1i(this.sliceShader.uniforms.colormap,1),this.gl.uniform1i(this.sliceShader.uniforms.overlay,2),this.lineShader=new o(this.gl,"#version 300 es\n#line 229\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n}","#version 300 es\n#line 189\nprecision highp int;\nprecision highp float;\nuniform vec4 lineColor;\nout vec4 color;\nvoid main() {\n\tcolor = lineColor;\n}"),this.renderShader=new o(this.gl,"#version 300 es\n#line 4\nlayout(location=0) in vec3 pos;\nuniform mat4 mvpMtx;\nout vec3 vColor;\nvoid main(void) {\n\tgl_Position = mvpMtx * vec4(2.0 * (pos.xyz - 0.5), 1.0);\n\tvColor = pos;\n}","#version 300 es\n#line 15\nprecision highp int;\nprecision highp float;\nuniform vec3 rayDir;\nuniform vec3 texVox;\nuniform vec4 clipPlane;\nuniform highp sampler3D volume, overlay;\nuniform float overlays;\nuniform float backOpacity;\nin vec3 vColor;\nout vec4 fColor;\nvec3 GetBackPosition (vec3 startPosition) {\n vec3 invR = 1.0 / rayDir;\n vec3 tbot = invR * (vec3(0.0)-startPosition);\n vec3 ttop = invR * (vec3(1.0)-startPosition);\n vec3 tmax = max(ttop, tbot);\n vec2 t = min(tmax.xx, tmax.yz);\n return startPosition + (rayDir * min(t.x, t.y));\n}\nvec4 applyClip (vec3 dir, inout vec4 samplePos, inout float len) {\n\tfloat cdot = dot(dir,clipPlane.xyz);\n\tif ((clipPlane.a > 1.0) || (cdot == 0.0)) return samplePos;\n bool frontface = (cdot > 0.0);\n\tfloat clipThick = 2.0;\n float dis = (-clipPlane.a - dot(clipPlane.xyz, samplePos.xyz-0.5)) / cdot;\n float disBackFace = (-(clipPlane.a-clipThick) - dot(clipPlane.xyz, samplePos.xyz-0.5)) / cdot;\n if (((frontface) && (dis >= len)) || ((!frontface) && (dis <= 0.0))) {\n samplePos.a = len + 1.0;\n return samplePos;\n }\n if (frontface) {\n dis = max(0.0, dis);\n samplePos = vec4(samplePos.xyz+dir * dis, dis);\n len = min(disBackFace, len);\n }\n if (!frontface) {\n len = min(dis, len);\n disBackFace = max(0.0, disBackFace);\n samplePos = vec4(samplePos.xyz+dir * disBackFace, disBackFace);\n }\n return samplePos;\n}\nvoid main() {\n fColor = vec4(0.0,0.0,0.0,0.0);\n\tvec3 start = vColor;\n\tvec3 backPosition = GetBackPosition(start);\n\t//fColor = vec4(backPosition, 1.0); return;\n vec3 dir = backPosition - start;\n float len = length(dir);\n\tfloat lenVox = length((texVox * start) - (texVox * backPosition));\n\tif (lenVox < 0.5) return;\n\tfloat sliceSize = len / lenVox; //e.g. if ray length is 1.0 and traverses 50 voxels, each voxel is 0.02 in unit cube\n\tfloat stepSize = sliceSize; //quality: larger step is faster traversal, but fewer samples\n\tfloat opacityCorrection = stepSize/sliceSize;\n dir = normalize(dir);\n\tvec4 deltaDir = vec4(dir.xyz * stepSize, stepSize);\n\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\tfloat lenNoClip = len;\n\tvec4 clipPos = applyClip(dir, samplePos, len);\n\t//start: OPTIONAL fast pass: rapid traversal until first hit\n\tfloat stepSizeFast = sliceSize * 1.9;\n\tvec4 deltaDirFast = vec4(dir.xyz * stepSizeFast, stepSizeFast);\n\twhile (samplePos.a <= len) {\n\t\tfloat val = texture(volume, samplePos.xyz).a;\n\t\tif (val > 0.01) break;\n\t\tsamplePos += deltaDirFast; //advance ray position\n\t}\n\tif ((samplePos.a > len) && (overlays < 1.0)) return;\n\tsamplePos -= deltaDirFast;\n\tif (samplePos.a < 0.0)\n\t\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\t//end: fast pass\n\tvec4 colAcc = vec4(0.0,0.0,0.0,0.0);\n\tconst float earlyTermination = 0.95;\n\tfloat backNearest = len; //assume no hit\n float ran = fract(sin(gl_FragCoord.x * 12.9898 + gl_FragCoord.y * 78.233) * 43758.5453);\n samplePos += deltaDir * ran; //jitter ray\n\twhile (samplePos.a <= len) {\n\t\tvec4 colorSample = texture(volume, samplePos.xyz);\n\t\tsamplePos += deltaDir; //advance ray position\n\t\tif (colorSample.a < 0.01) continue;\n\t\tbackNearest = min(backNearest, samplePos.a);\n\t\tcolorSample.a = 1.0-pow((1.0 - colorSample.a), opacityCorrection);\n\t\tcolorSample.rgb *= colorSample.a;\n\t\tcolAcc= (1.0 - colAcc.a) * colorSample + colAcc;\n\t\tif ( colAcc.a > earlyTermination )\n\t\t\tbreak;\n\t}\n\tcolAcc.a = (colAcc.a / earlyTermination) * backOpacity;\n\tfColor = colAcc;\n\tif (overlays < 1.0) return;\n\t//overlay pass\n\tlen = lenNoClip;\n\tsamplePos = vec4(start.xyz, 0.0); //ray position\n //start: OPTIONAL fast pass: rapid traversal until first hit\n\tstepSizeFast = sliceSize * 1.9;\n\tdeltaDirFast = vec4(dir.xyz * stepSizeFast, stepSizeFast);\n\twhile (samplePos.a <= len) {\n\t\tfloat val = texture(overlay, samplePos.xyz).a;\n\t\tif (val > 0.01) break;\n\t\tsamplePos += deltaDirFast; //advance ray position\n\t}\n\tif (samplePos.a > len) return;\n\tsamplePos -= deltaDirFast;\n\tif (samplePos.a < 0.0)\n\t\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\t//end: fast pass\n\tfloat overFarthest = len;\n\tcolAcc = vec4(0.0, 0.0, 0.0, 0.0);\n\tsamplePos += deltaDir * ran; //jitter ray\n\twhile (samplePos.a <= len) {\n\t\tvec4 colorSample = texture(overlay, samplePos.xyz);\n\t\tsamplePos += deltaDir; //advance ray position\n\t\tif (colorSample.a < 0.01) continue;\n\t\tcolorSample.a = 1.0-pow((1.0 - colorSample.a), opacityCorrection);\n\t\tcolorSample.rgb *= colorSample.a;\n\t\tcolAcc= (1.0 - colAcc.a) * colorSample + colAcc;\n\t\toverFarthest = samplePos.a;\n\t\tif ( colAcc.a > earlyTermination )\n\t\t\tbreak;\n\t}\n\tfloat overMix = colAcc.a;\n\tfloat overlayDepth = 0.3;\n\tif (fColor.a <= 0.0)\n\t\t\toverMix = 1.0;\n\telse if (((overFarthest) > backNearest)) {\n\t\tfloat dx = (overFarthest - backNearest)/1.73;\n\t\tdx = fColor.a * pow(dx, overlayDepth);\n\t\toverMix *= 1.0 - dx;\n\t}\n\tfColor.rgb = mix(fColor.rgb, colAcc.rgb, overMix);\n\tfColor.a = max(fColor.a, colAcc.a);\n}"),this.renderShader.use(this.gl),this.gl.uniform1i(this.renderShader.uniforms.volume,0),this.gl.uniform1i(this.renderShader.uniforms.colormap,1),this.gl.uniform1i(this.renderShader.uniforms.overlay,2);let l=new ft(this.renderShader);l.mvpUniformName="mvpMtx",l.rayDirUniformName="rayDir",l.clipPlaneUniformName="clipPlane",this.objectsToRender3D[1].shaders.push(l),this.colorbarShader=new o(this.gl,"#version 300 es\n#line 200\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nout vec2 vColor;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tvColor = pos.xy;\n}","#version 300 es\n#line 217\nprecision highp int;\nprecision highp float;\nuniform highp sampler2D colormap;\nin vec2 vColor;\nout vec4 color;\nvoid main() {\n\tcolor = vec4(texture(colormap, vColor).rgb, 1.0);\n}"),this.colorbarShader.use(this.gl),this.gl.uniform1i(this.colorbarShader.uniforms.colormap,1),this.fontShader=new o(this.gl,"#version 300 es\n#line 244\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nuniform vec4 uvLeftTopWidthHeight;\nout vec2 vUV;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tvUV = vec2(uvLeftTopWidthHeight.x + (pos.x * uvLeftTopWidthHeight.z), uvLeftTopWidthHeight.y + ((1.0 - pos.y) * uvLeftTopWidthHeight.w) );\n}","#version 300 es\n#line 262\nprecision highp int;\nprecision highp float;\nuniform highp sampler2D fontTexture;\nuniform vec4 fontColor;\nuniform float screenPxRange;\nin vec2 vUV;\nout vec4 color;\nfloat median(float r, float g, float b) {\n return max(min(r, g), min(max(r, g), b));\n}\nvoid main() {\n\tvec3 msd = texture(fontTexture, vUV).rgb;\n\tfloat sd = median(msd.r, msd.g, msd.b);\n float screenPxDistance = screenPxRange*(sd - 0.5);\n float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n\tcolor = vec4(fontColor.rgb , fontColor.a * opacity);\n}"),this.fontShader.use(this.gl),this.gl.uniform1i(this.fontShader.uniforms.fontTexture,3),this.passThroughShader=new o(this.gl,"#version 300 es\n#line 283\nprecision highp int;\nprecision highp float;\nin vec3 vPos;\nout vec2 TexCoord;\nvoid main() {\n TexCoord = vPos.xy;\n gl_Position = vec4(vPos.x, vPos.y, 0.0, 1.0);\n}","#version 300 es\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform lowp sampler3D in3D;\nvoid main(void) {\n FragColor = texture(in3D, vec3(TexCoord.xy, coordZ));\n}"),this.orientShaderU=new o(this.gl,y,w.concat(I)),this.orientShaderI=new o(this.gl,y,"#version 300 es\nuniform highp isampler3D intensityVol;\n".concat(I)),this.orientShaderF=new o(this.gl,y,"#version 300 es\nuniform highp sampler3D intensityVol;\n".concat(I)),this.orientShaderRGBU=new o(this.gl,y,w.concat("#line 309\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform float layer;\nuniform float numLayers;\nuniform float scl_slope;\nuniform float scl_inter;\nuniform float cal_max;\nuniform float cal_min;\nuniform highp sampler2D colormap;\nuniform lowp sampler3D blend3D;\nuniform float opacity;\nuniform mat4 mtx;\nuniform bool hasAlpha;\n\nvoid main(void) {\nvec4 vx = vec4(TexCoord.xy, coordZ, 1.0);// * mtx;\n \n uvec4 aColor = texture(intensityVol, vx.xyz);\n float a = hasAlpha ? float(aColor.a) / 255.0f : float(aColor.r) * 0.21f + float(aColor.g) * 0.72f + float(aColor.b) * 0.07; \n FragColor = vec4(float(aColor.r) / 255.0f, float(aColor.g) / 255.0f, float(aColor.b) / 255.0f, a);\n FragColor.a *= opacity;\n}")),this.surfaceShader=new o(this.gl,"#version 300 es\nlayout(location=0) in vec3 pos;\nuniform mat4 mvpMtx;\nvoid main(void) {\n\tgl_Position = mvpMtx * vec4(2.0 * (pos.xyz - 0.5), 1.0);\n}","#version 300 es\nprecision highp int;\nprecision highp float;\nuniform vec4 surfaceColor;\nout vec4 color;\nvoid main() {\n\tcolor = surfaceColor;\n}"),this.surfaceShader.use(this.gl),this.gl.uniform4fv(this.surfaceShader.uniforms.surfaceColor,this.opts.clipPlaneColor);let h=new ft(this.surfaceShader);return h.mvpUniformName="mvpMtx",this.clipPlaneObject3D.shaders.push(h),await this.initText(),this.updateGLVolume(),this},dt.prototype.updateGLVolume=function(){let t=0,e=this.volumes.length;this.refreshColormaps();for(let n=0;n<e;n++)this.volumes[n].toRAS&&(this.refreshLayers(this.volumes[n],t,e),t++);this.drawScene()},dt.prototype.calMinMaxCore=function(t,e,n=.02,i=!1){if(this.opts.trustCalMinMax&&isFinite(t.volume.hdr.cal_min)&&isFinite(t.volume.hdr.cal_max)&&t.volume.hdr.cal_max>t.volume.hdr.cal_min)return console.log("using hdr calminmax"),[t.volume.hdr.cal_min,t.volume.hdr.cal_max,t.volume.hdr.cal_min,t.volume.hdr.cal_max];let o,s=t.volume.hdr;2===s.datatypeCode?o=new Uint8Array(e):4===s.datatypeCode?o=new Int16Array(e):16===s.datatypeCode?o=new Float32Array(e):64===s.datatypeCode?o=new Float64Array(e):128===s.datatypeCode?o=new Uint8Array(e):512===s.datatypeCode?o=new Uint16Array(e):2304===s.datatypeCode&&(o=new Uint8Array(e));let r=e[0],a=e[0],l=0,h=0,c=o.length;for(let t=0;t<c;t++)isNaN(o[t])?h++:0!==o[t]?(r=Math.min(o[t],r),a=Math.max(o[t],a)):l++;var f=gt(s,r),u=gt(s,a);i||(l=0),l+=h;let d=Math.round((c-l)*n);if(d<1||r===a)return console.log("no variability in image intensity?"),[f,u,f,u];let g=1001,p=1e3/(a-r),m=new Array(g);for(let t=0;t<g;t++)m[t]=0;if(i)for(let t=0;t<=c;t++)0!==o[t]&&(isNaN(o[t])||m[(o[t]-r)*p]++);else for(let t=0;t<=c;t++)isNaN(o[t])||m[(o[t]-r)*p]++;let A=0,v=0;for(;A<d;)A+=m[v],v++;v--,A=0;let b=g;for(;A<d;)b--,A+=m[b];if(v==b){let t=-1;for(;0!==t;)v>0&&(v--,m[v]>0&&(t=0)),0!=t&&b<1e3&&(b++,m[b]>0&&(t=0)),0==v&&1e3==b&&(t=0)}var y=gt(s,v/p+r),w=gt(s,b/p+r);return console.log("full range %f..%f (voxels 0 or NaN = %i) robust range %f..%f",f,u,l,y,w),t.volume.hdr.cal_min<t.volume.hdr.cal_max&&t.volume.hdr.cal_min>=f&&t.volume.hdr.cal_max<=u&&(console.log("ignoring robust range: using header cal_min and cal_max"),y=t.volume.hdr.cal_min,w=t.volume.hdr.cal_max),[y,w,f,u]},dt.prototype.calMinMax=function(t,e,n=.02,i=!1){let o=this.calMinMaxCore(t,e,n,i);return console.log("cal_min, cal_max, global_min, global_max",o[0],o[1],o[2],o[3]),t.cal_min=o[0],t.cal_max=o[1],t.global_min=o[2],t.global_max=o[3],o},dt.prototype.refreshLayers=function(t,e,n){let i,o=t.volume.hdr,s=t.volume.img,r=t.opacity,a=null,l=[];if(0===e){this.back={},l=t.toRAS,r=1,this.back.matRAS=t.matRAS,this.back.dims=t.dimsRAS,this.back.pixDims=t.pixDimsRAS,a=this.rgbaTex(this.volumeTexture,this.gl.TEXTURE0,t.dimsRAS);let{volScale:e,vox:n}=this.sliceScale();this.volScale=e,this.vox=n,this.volumeObject3D.scale=e}else{void 0===this.back.dims&&console.log("Fatal error: Unable to render overlay: background dimensions not defined!");let n=this.mm2frac(t.mm000),i=this.mm2frac(t.mm100),o=this.mm2frac(t.mm010),s=this.mm2frac(t.mm001);i=v(i,i,n),o=v(o,o,n),s=v(s,s,n),l=h(i[0],i[1],i[2],n[0],o[0],o[1],o[2],n[1],s[0],s[1],s[2],n[2],0,0,0,1),f(l,l),1===e?(a=this.rgbaTex(this.overlayTexture,this.gl.TEXTURE2,this.back.dims),this.backTexture=a):a=this.backTexture}let c=this.gl.createFramebuffer();this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,c),this.gl.disable(this.gl.CULL_FACE),this.gl.viewport(0,0,this.back.dims[1],this.back.dims[2]),this.gl.disable(this.gl.BLEND);let u=this.gl.createTexture();this.gl.activeTexture(this.gl.TEXTURE6),this.gl.bindTexture(this.gl.TEXTURE_3D,u),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);let d=this.orientShaderU;if(2===o.datatypeCode)i=new Uint8Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R8UI,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RED_INTEGER,this.gl.UNSIGNED_BYTE,i);else if(4===o.datatypeCode)i=new Int16Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R16I,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RED_INTEGER,this.gl.SHORT,i),d=this.orientShaderI;else if(16===o.datatypeCode)i=new Float32Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R32F,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RED,this.gl.FLOAT,i),d=this.orientShaderF;else if(64===o.datatypeCode){i=new Float64Array(s);let t=new Float32Array;t=Float32Array.from(i),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R32F,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RED,this.gl.FLOAT,t),d=this.orientShaderF}else 128===o.datatypeCode?(d=this.orientShaderRGBU,d.use(this.gl),this.gl.uniform1i(d.uniforms.hasAlpha,!1),i=new Uint8Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.RGB8UI,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RGB_INTEGER,this.gl.UNSIGNED_BYTE,i)):512===o.datatypeCode?(i=new Uint16Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R16UI,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RED_INTEGER,this.gl.UNSIGNED_SHORT,i)):2304===o.datatypeCode&&(d=this.orientShaderRGBU,d.use(this.gl),this.gl.uniform1i(d.uniforms.hasAlpha,!0),i=new Uint8Array(s),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.RGBA8UI,o.dims[1],o.dims[2],o.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,o.dims[1],o.dims[2],o.dims[3],this.gl.RGBA_INTEGER,this.gl.UNSIGNED_BYTE,i));void 0===t.global_min&&this.calMinMax(t,i);let g=null;if(e>1){g=this.rgbaTex(g,this.gl.TEXTURE5,this.back.dims),this.gl.bindTexture(this.gl.TEXTURE_3D,g);let t=this.passThroughShader;t.use(this.gl),this.gl.uniform1i(t.uniforms.in3D,2);for(let e=0;e<this.back.dims[3];e++){let n=1/this.back.dims[3]*(e+.5);this.gl.uniform1f(t.uniforms.coordZ,n),this.gl.framebufferTextureLayer(this.gl.FRAMEBUFFER,this.gl.COLOR_ATTACHMENT0,g,0,e),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)}}else g=this.rgbaTex(g,this.gl.TEXTURE5,[2,2,2,2]);d.use(this.gl),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.uniform1f(d.uniforms.cal_min,t.cal_min),this.gl.uniform1f(d.uniforms.cal_max,t.cal_max),this.gl.bindTexture(this.gl.TEXTURE_3D,u),this.gl.uniform1i(d.uniforms.intensityVol,6),this.gl.uniform1i(d.uniforms.blend3D,5),this.gl.uniform1i(d.uniforms.colormap,1),this.gl.uniform1f(d.uniforms.layer,e),this.gl.uniform1f(d.uniforms.numLayers,n),this.gl.uniform1f(d.uniforms.scl_inter,o.scl_inter),this.gl.uniform1f(d.uniforms.scl_slope,o.scl_slope),this.gl.uniform1f(d.uniforms.opacity,r),this.gl.uniformMatrix4fv(d.uniforms.mtx,!1,l);for(let t=0;t<this.back.dims[3];t++){let e=1/this.back.dims[3]*(t+.5);this.gl.uniform1f(d.uniforms.coordZ,e),this.gl.framebufferTextureLayer(this.gl.FRAMEBUFFER,this.gl.COLOR_ATTACHMENT0,a,0,t),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)}this.gl.deleteTexture(u),this.gl.deleteTexture(g),this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.gl.deleteFramebuffer(c),this.renderShader.use(this.gl);let{_:p,vox:m}=this.sliceScale();this.gl.uniform1f(this.renderShader.uniforms.overlays,this.overlays),this.gl.uniform1f(this.renderShader.uniforms.backOpacity,this.volumes[0].opacity),this.gl.uniform4fv(this.renderShader.uniforms.clipPlane,this.scene.clipPlane),this.gl.uniform3fv(this.renderShader.uniforms.texVox,m)},dt.prototype.colormap=function(t=""){var e=this.makeLut([0,255],[0,255],[0,255],[0,128],[0,255]);return"Winter"===t&&(e=this.makeLut([0,0,0],[0,128,255],[255,196,128],[0,64,128],[0,128,255])),"Warm"===t&&(e=this.makeLut([255,255,255],[127,196,254],[0,0,0],[0,64,128],[0,128,255])),"Plasma"===t&&(e=this.makeLut([13,156,237,240],[8,23,121,249],[135,158,83,33],[0,56,80,88],[0,64,192,255])),"Viridis"===t&&(e=this.makeLut([68,49,53,253],[1,104,183,231],[84,142,121,37],[0,56,80,88],[0,65,192,255])),"Inferno"===t&&(e=this.makeLut([0,120,237,240],[0,28,105,249],[4,109,37,33],[0,56,80,88],[0,64,192,255])),e},dt.prototype.refreshColormaps=function(){let t=this.volumes.length;if(t<1)return;null!==this.colormapTexture&&this.gl.deleteTexture(this.colormapTexture),this.colormapTexture=this.gl.createTexture(),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.texStorage2D(this.gl.TEXTURE_2D,1,this.gl.RGBA8,256,t),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);let e=this.colormap(this.volumes[0].colorMap);if(t>1)for(let n=1;n<t;n++){let t=this.colormap(this.volumes[n].colorMap),i=new Uint8ClampedArray(e.length+t.length);i.set(e),i.set(t,e.length),e=i}return this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,256,t,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this},dt.prototype.makeLut=function(t,e,n,i,o){for(var s=new Uint8ClampedArray(1024),r=0;r<o.length-1;r++)for(var a=o[r],l=o[r+1],h=l-a,c=4*a,f=a;f<=l;f++){var u=(f-a)/h;s[c++]=t[r]+u*(t[r+1]-t[r]),s[c++]=e[r]+u*(e[r+1]-e[r]),s[c++]=n[r]+u*(n[r+1]-n[r]),s[c++]=i[r]+u*(i[r+1]-i[r])}return s},dt.prototype.sliceScale=function(){var t=[1,this.back.dims[1]*this.back.pixDims[1],this.back.dims[2]*this.back.pixDims[2],this.back.dims[3]*this.back.pixDims[3]],e=Math.max(t[1],Math.max(t[2],t[3]));return{volScale:[t[1]/e,t[2]/e,t[3]/e],vox:[this.back.dims[1],this.back.dims[2],this.back.dims[3]]}},dt.prototype.mouseClick=function(t,e,n=0,i=!0){var o;if(this.sliceType===this.sliceTypeRender){if(0===n)return;return n>0&&(this.volScaleMultiplier=Math.min(2,1.1*this.volScaleMultiplier)),n<0&&(this.volScaleMultiplier=Math.max(.5,.9*this.volScaleMultiplier)),void this.drawScene()}if(!(this.numScreenSlices<1||this.gl.canvas.height<1||this.gl.canvas.width<1))for(let h=0;h<this.numScreenSlices;h++){var s=this.screenSlices[h].axCorSag;if(s>this.sliceTypeSagittal)continue;var r=this.screenSlices[h].leftTopWidthHeight;let c=!1;r[2]<0&&(c=!0,r[0]+=r[2],r[2]=-r[2]);var a=(t-r[0])/r[2];c&&(a=1-a);var l=1-(e-r[1])/r[3];if(a>=0&&a<1&&l>=0&&l<1)return i?0!==n?((o=this.scene.crosshairPos[2-s]+n)>1&&(o=1),o<0&&(o=0),this.scene.crosshairPos[2-s]=o,void this.drawScene()):(s===this.sliceTypeAxial&&(this.scene.crosshairPos[0]=a,this.scene.crosshairPos[1]=l),s===this.sliceTypeCoronal&&(this.scene.crosshairPos[0]=a,this.scene.crosshairPos[2]=l),s===this.sliceTypeSagittal&&(this.scene.crosshairPos[1]=a,this.scene.crosshairPos[2]=l),this.drawScene(),void this.crosshairPosition$.next([this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]])):(this.scene.crosshairPos[2-s]=n,void this.drawScene());if(null===t&&null===e)return this.scene.crosshairPos[2-s]=n,void this.drawScene()}},dt.prototype.drawSelectionBox=function(t){this.lineShader.use(this.gl),this.gl.uniform4fv(this.lineShader.uniforms.lineColor,this.opts.selectionBoxColor),this.gl.uniform2fv(this.lineShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)},dt.prototype.drawColorbar=function(t){t[2]<=0||t[3]<=0||(this.colorbarShader.use(this.gl),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.uniform2fv(this.colorbarShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),this.gl.uniform4f(this.colorbarShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR))},dt.prototype.textWidth=function(t,e){let n=0;var i=new ut(e);for(let o=0;o<e.length;o++)n+=t*this.fontMets[i[o]].xadv;return n},dt.prototype.drawChar=function(t,e,n){let i=this.fontMets[n],o=t[0]+e*i.lbwh[0],s=-e*i.lbwh[1],r=e*i.lbwh[2],a=e*i.lbwh[3],l=t[1]+(s-a)+e;return this.gl.uniform4f(this.fontShader.uniforms.leftTopWidthHeight,o,l,r,a),this.gl.uniform4fv(this.fontShader.uniforms.uvLeftTopWidthHeight,i.uv_lbwh),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),e*i.xadv},dt.prototype.drawText=function(t,e){if(this.opts.textHeight<=0)return;this.fontShader.use(this.gl);let n=this.opts.textHeight*this.gl.canvas.height;this.gl.enable(this.gl.BLEND),this.gl.uniform2f(this.fontShader.uniforms.canvasWidthHeight,this.gl.canvas.width,this.gl.canvas.height),this.gl.uniform4fv(this.fontShader.uniforms.fontColor,this.opts.crosshairColor);let i=n/this.fontMets.size*this.fontMets.distanceRange;i=Math.max(i,1),this.gl.uniform1f(this.fontShader.uniforms.screenPxRange,i);var o=new ut(e);for(let i=0;i<e.length;i++)t[0]+=this.drawChar(t,n,o[i])},dt.prototype.drawTextRight=function(t,e){this.opts.textHeight<=0||(this.fontShader.use(this.gl),t[1]-=.5*this.opts.textHeight*this.gl.canvas.height,this.drawText(t,e))},dt.prototype.drawTextBelow=function(t,e){if(this.opts.textHeight<=0)return;this.fontShader.use(this.gl);let n=this.opts.textHeight*this.gl.canvas.height;t[0]-=.5*this.textWidth(n,e),this.drawText(t,e)},dt.prototype.draw2D=function(t,e){var n=[this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]];e===this.sliceTypeCoronal&&(n=[this.scene.crosshairPos[0],this.scene.crosshairPos[2],this.scene.crosshairPos[1]]),e===this.sliceTypeSagittal&&(n=[this.scene.crosshairPos[1],this.scene.crosshairPos[2],this.scene.crosshairPos[0]]);let i=this.isRadiologicalConvention&&e<this.sliceTypeSagittal;if(this.sliceShader.use(this.gl),this.gl.uniform1f(this.sliceShader.uniforms.opacity,this.backOpacity),this.gl.uniform1i(this.sliceShader.uniforms.axCorSag,e),this.gl.uniform1f(this.sliceShader.uniforms.slice,n[2]),this.gl.uniform2fv(this.sliceShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),i&&(this.gl.disable(this.gl.CULL_FACE),t[2]=-t[2],t[0]=t[0]-t[2]),this.gl.uniform4f(this.sliceShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.screenSlices[this.numScreenSlices].leftTopWidthHeight=t,this.screenSlices[this.numScreenSlices].axCorSag=e,this.numScreenSlices+=1,!(this.opts.crosshairWidth<=0)){this.lineShader.use(this.gl),this.gl.uniform4fv(this.lineShader.uniforms.lineColor,this.opts.crosshairColor),this.gl.uniform2fv(this.lineShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]);var o=t[0]+t[2]*n[0];this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,o-.5*this.opts.crosshairWidth,t[1],this.opts.crosshairWidth,t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4);var s=t[1]+t[3]*(1-n[1]);this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,t[0],s-.5*this.opts.crosshairWidth,t[2],this.opts.crosshairWidth),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.gl.enable(this.gl.CULL_FACE),i?this.drawTextRight([t[0]+t[2]+1,t[1]+.5*t[3]],"R"):e<this.sliceTypeSagittal&&this.drawTextRight([t[0]+1,t[1]+.5*t[3]],"L"),e===this.sliceTypeAxial&&this.drawTextBelow([t[0]+.5*t[2],t[1]+1],"A"),e>this.sliceTypeAxial&&this.drawTextBelow([t[0]+.5*t[2],t[1]+1],"S"),this.sync()}},dt.prototype.calculateMvpMatrix=function(t){let e=l(t.modelMatrix);!function(t,e,n){var i,o,s,r,a,l,h,c,f,u,d,g,p=n[0],m=n[1],A=n[2];e===t?(t[12]=e[0]*p+e[4]*m+e[8]*A+e[12],t[13]=e[1]*p+e[5]*m+e[9]*A+e[13],t[14]=e[2]*p+e[6]*m+e[10]*A+e[14],t[15]=e[3]*p+e[7]*m+e[11]*A+e[15]):(i=e[0],o=e[1],s=e[2],r=e[3],a=e[4],l=e[5],h=e[6],c=e[7],f=e[8],u=e[9],d=e[10],g=e[11],t[0]=i,t[1]=o,t[2]=s,t[3]=r,t[4]=a,t[5]=l,t[6]=h,t[7]=c,t[8]=f,t[9]=u,t[10]=d,t[11]=g,t[12]=i*p+a*m+f*A+e[12],t[13]=o*p+l*m+u*A+e[13],t[14]=s*p+h*m+d*A+e[14],t[15]=r*p+c*m+g*A+e[15])}(e,e,t.position);var n=(90-this.scene.renderElevation-t.scale[0])*Math.PI/180;return d(e,e,n,[-1,0,0]),d(e,e,n=this.scene.renderAzimuth*Math.PI/180,[0,0,1]),d(e,e,t.rotationRadians,t.rotation),u(e,e,t.scale),u(e,e,[.57,.57,.57]),e},dt.prototype.draw3D=function(){let t=Math.min(this.gl.canvas.width,this.gl.canvas.height);if(t<=0)return;t*=this.volScaleMultiplier;let e=this.gl.canvas.width/2,n=this.gl.canvas.height/2,i=t,o=t;this.gl.viewport(e-.5*i,n-.5*o,i,o),this.gl.clearColor(.2,0,0,1);for(const t of this.objectsToRender3D){if(!t.isVisible)continue;this.gl.enableVertexAttribArray(0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,t.vertexBuffer),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),t.glFlags&t.BLEND?(this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)):this.gl.disable(this.gl.BLEND),t.glFlags&t.CULL_FACE?(this.gl.enable(this.gl.CULL_FACE),t.glFlags&t.CULL_FRONT?this.gl.cullFace(this.gl.FRONT):this.gl.cullFace(this.gl.BACK)):this.gl.disable(this.gl.CULL_FACE);let e=this.calculateMvpMatrix(t);var s=a();f(s,e);var r=g(0,0,-1,1);p(r,r,s);var l=A(r[0],r[1],r[2]);b(l,l);const n=1e-5;Math.abs(l[0])<n&&(l[0]=n),Math.abs(l[1])<n&&(l[1]=n),Math.abs(l[2])<n&&(l[2]=n);for(const n of t.shaders)n.use(this.gl),n.mvpUniformName&&this.gl.uniformMatrix4fv(n.uniforms[n.mvpUniformName],!1,e),n.rayDirUniformName&&this.gl.uniform3fv(n.uniforms[n.rayDirUniformName],l),n.clipPlaneUniformName&&this.gl.uniform4fv(n.uniforms.clipPlane,this.scene.clipPlane);this.gl.drawArrays(t.mode,0,t.indexCount)}let h="azimuth: "+this.scene.renderAzimuth.toFixed(0)+" elevation: "+this.scene.renderElevation.toFixed(0);return this.sync(),h},dt.prototype.mm2frac=function(t){let e=g(t[0],t[1],t[2],1),n=this.back.dims,i=[0,0,0];if(void 0===n)return i;if(n[1]<1||n[2]<1||n[3]<1)return i;let o=l(this.back.matRAS);return c(o,o),f(o,o),p(e,e,o),i[0]=(e[0]+.5)/n[1],i[1]=(e[1]+.5)/n[2],i[2]=(e[2]+.5)/n[3],i},dt.prototype.vox2frac=function(t){return[(t[0]+.5)/this.back.dims[1],(t[1]+.5)/this.back.dims[2],(t[2]+.5)/this.back.dims[3]]},dt.prototype.frac2vox=function(t){return[Math.round(t[0]*this.back.dims[1]-.5),Math.round(t[1]*this.back.dims[2]-.5),Math.round(t[2]*this.back.dims[3]-.5)]},dt.prototype.frac2mm=function(t){let e=g(t[0],t[1],t[2],1),n=g(this.back.dims[1],this.back.dims[2],this.back.dims[3],1),i=l(this.back.matRAS);return c(i,i),function(t,e,n){t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t[3]=e[3]*n[3]}(e,e,n),function(t,e,n){t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3]}(e,e,g(-.5,-.5,-.5,0)),p(e,e,i),this.mm2frac(e),e},dt.prototype.canvasPos2frac=function(t){let e,n,i;for(let l=0;l<this.numScreenSlices;l++){var o=this.screenSlices[l].axCorSag;if(o>this.sliceTypeSagittal)continue;var s=this.screenSlices[l].leftTopWidthHeight;let h=!1;s[2]<0&&(h=!0,s[0]+=s[2],s[2]=-s[2]);var r=(t[0]-s[0])/s[2];h&&(r=1-r);var a=1-(t[1]-s[1])/s[3];if(r>=0&&r<1&&a>=0&&a<1){switch(o){case this.sliceTypeAxial:case this.sliceTypeCoronal:}o===this.sliceTypeAxial&&(e=r,n=a,i=this.scene.crosshairPos[2]),o===this.sliceTypeCoronal&&(e=r,n=this.scene.crosshairPos[1],i=a),o===this.sliceTypeSagittal&&(e=this.scene.crosshairPos[0],n=r,i=a);break}}return[e,n,i]},dt.prototype.scaleSlice=function(t,e){let n=this.gl.canvas.clientWidth/t;e*n>this.gl.canvas.clientHeight&&(n=this.gl.canvas.clientHeight/e);let i=t*n,o=e*n;return[.5*(this.gl.canvas.clientWidth-i),.5*(this.gl.canvas.clientHeight-o),i,o]},dt.prototype.drawScene=function(){this.gl.clearColor(this.opts.backColor[0],this.opts.backColor[1],this.opts.backColor[2],this.opts.backColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT);let t="";if(!this.back.dims)return;if(this.sliceType===this.sliceTypeRender)return this.draw3D();let{volScale:e}=this.sliceScale();if(this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.numScreenSlices=0,this.sliceType===this.sliceTypeAxial){let t=this.scaleSlice(e[0],e[1]);this.draw2D(t,0)}else if(this.sliceType===this.sliceTypeCoronal){let t=this.scaleSlice(e[0],e[2]);this.draw2D(t,1)}else if(this.sliceType===this.sliceTypeSagittal){let t=this.scaleSlice(e[1],e[2]);this.draw2D(t,2)}else{let t=this.scaleSlice(e[0]+e[1],e[1]+e[2]),i=t[2]*e[0]/(e[0]+e[1]),o=this.scaleSlice(e[0]+e[0]+e[1],Math.max(e[1],e[2])),s=o[2]*e[0]/(e[0]+e[0]+e[1]);if(s>i){let t=s/e[0],n=e[1]*t,i=e[2]*t;this.draw2D([o[0],o[1],s,n],0),this.draw2D([o[0]+s,o[1],s,i],1),this.draw2D([o[0]+s+s,o[1],n,i],2)}else{let o=t[2]-i,s=t[3]*e[1]/(e[1]+e[2]),r=t[3]-s;this.draw2D([t[0],t[1]+r,i,s],0),this.draw2D([t[0],t[1],i,r],1),this.draw2D([t[0]+i,t[1],o,r],2);var n=this.opts.colorBarMargin*s;this.drawColorbar([t[0]+i+n,t[1]+r+n,o-n-n,s*this.opts.colorbarHeight])}}if(this.isDragging&&this.sliceType!==this.sliceTypeRender){let t=Math.abs(this.dragStart[0]-this.dragEnd[0]),e=Math.abs(this.dragStart[1]-this.dragEnd[1]);this.drawSelectionBox([Math.min(this.dragStart[0],this.dragEnd[0]),Math.min(this.dragStart[1],this.dragEnd[1]),t,e])}const i=this.frac2mm([this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]]);return t=i[0].toFixed(2)+"×"+i[1].toFixed(2)+"×"+i[2].toFixed(2),this.gl.finish(),t}}},e={};function n(i){var o=e[i];if(void 0!==o)return o.exports;var s=e[i]={exports:{}};return t[i](s,s.exports,n),s.exports}return n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n(139)})()}));
|
|
2
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.niivue=e():t.niivue=e()}(self,(function(){return(()=>{var t={742:(t,e)=>{"use strict";e.byteLength=function(t){var e=l(t),n=e[0],i=e[1];return 3*(n+i)/4-i},e.toByteArray=function(t){var e,n,o=l(t),r=o[0],a=o[1],h=new s(function(t,e,n){return 3*(e+n)/4-n}(0,r,a)),c=0,u=a>0?r-4:r;for(n=0;n<u;n+=4)e=i[t.charCodeAt(n)]<<18|i[t.charCodeAt(n+1)]<<12|i[t.charCodeAt(n+2)]<<6|i[t.charCodeAt(n+3)],h[c++]=e>>16&255,h[c++]=e>>8&255,h[c++]=255&e;return 2===a&&(e=i[t.charCodeAt(n)]<<2|i[t.charCodeAt(n+1)]>>4,h[c++]=255&e),1===a&&(e=i[t.charCodeAt(n)]<<10|i[t.charCodeAt(n+1)]<<4|i[t.charCodeAt(n+2)]>>2,h[c++]=e>>8&255,h[c++]=255&e),h},e.fromByteArray=function(t){for(var e,i=t.length,s=i%3,o=[],r=16383,a=0,l=i-s;a<l;a+=r)o.push(h(t,a,a+r>l?l:a+r));return 1===s?(e=t[i-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===s&&(e=(t[i-2]<<8)+t[i-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],i=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,a=o.length;r<a;++r)n[r]=o[r],i[o.charCodeAt(r)]=r;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function h(t,e,i){for(var s,o,r=[],a=e;a<i;a+=3)s=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),r.push(n[(o=s)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return r.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},764:(t,e,n)=>{"use strict";const i=n(742),s=n(645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.lW=l,e.h2=50;const r=2147483647;function a(t){if(t>r)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return h(t,e,n)}function h(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|p(t,e);let i=a(n);const s=i.write(t,e);return s!==n&&(i=i.slice(0,s)),i}(t,e);if(ArrayBuffer.isView(t))return function(t){if(J(t,Uint8Array)){const e=new Uint8Array(t);return d(e.buffer,e.byteOffset,e.byteLength)}return f(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(J(t,ArrayBuffer)||t&&J(t.buffer,ArrayBuffer))return d(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(J(t,SharedArrayBuffer)||t&&J(t.buffer,SharedArrayBuffer)))return d(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=t.valueOf&&t.valueOf();if(null!=i&&i!==t)return l.from(i,e,n);const s=function(t){if(l.isBuffer(t)){const e=0|g(t.length),n=a(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||q(t.length)?a(0):f(t):"Buffer"===t.type&&Array.isArray(t.data)?f(t.data):void 0}(t);if(s)return s;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function c(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return c(t),a(t<0?0:0|g(t))}function f(t){const e=t.length<0?0:0|g(t.length),n=a(e);for(let i=0;i<e;i+=1)n[i]=255&t[i];return n}function d(t,e,n){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(n||0))throw new RangeError('"length" is outside of buffer bounds');let i;return i=void 0===e&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,e):new Uint8Array(t,e,n),Object.setPrototypeOf(i,l.prototype),i}function g(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function p(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||J(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;let s=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return X(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return W(t).length;default:if(s)return i?-1:X(t).length;e=(""+e).toLowerCase(),s=!0}}function m(t,e,n){let i=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return S(this,e,n);case"utf8":case"utf-8":return B(this,e,n);case"ascii":return M(this,e,n);case"latin1":case"binary":return P(this,e,n);case"base64":return T(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,n);default:if(i)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),i=!0}}function A(t,e,n){const i=t[e];t[e]=t[n],t[n]=i}function v(t,e,n,i,s){if(0===t.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),q(n=+n)&&(n=s?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(s)return-1;n=t.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof e&&(e=l.from(e,i)),l.isBuffer(e))return 0===e.length?-1:b(t,e,n,i,s);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):b(t,[e],n,i,s);throw new TypeError("val must be string, number or Buffer")}function b(t,e,n,i,s){let o,r=1,a=t.length,l=e.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(t.length<2||e.length<2)return-1;r=2,a/=2,l/=2,n/=2}function h(t,e){return 1===r?t[e]:t.readUInt16BE(e*r)}if(s){let i=-1;for(o=n;o<a;o++)if(h(t,o)===h(e,-1===i?0:o-i)){if(-1===i&&(i=o),o-i+1===l)return i*r}else-1!==i&&(o-=o-i),i=-1}else for(n+l>a&&(n=a-l),o=n;o>=0;o--){let n=!0;for(let i=0;i<l;i++)if(h(t,o+i)!==h(e,i)){n=!1;break}if(n)return o}return-1}function y(t,e,n,i){n=Number(n)||0;const s=t.length-n;i?(i=Number(i))>s&&(i=s):i=s;const o=e.length;let r;for(i>o/2&&(i=o/2),r=0;r<i;++r){const i=parseInt(e.substr(2*r,2),16);if(q(i))return r;t[n+r]=i}return r}function w(t,e,n,i){return V(X(e,t.length-n),t,n,i)}function I(t,e,n,i){return V(function(t){const e=[];for(let n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,i)}function x(t,e,n,i){return V(W(e),t,n,i)}function E(t,e,n,i){return V(function(t,e){let n,i,s;const o=[];for(let r=0;r<t.length&&!((e-=2)<0);++r)n=t.charCodeAt(r),i=n>>8,s=n%256,o.push(s),o.push(i);return o}(e,t.length-n),t,n,i)}function T(t,e,n){return 0===e&&n===t.length?i.fromByteArray(t):i.fromByteArray(t.slice(e,n))}function B(t,e,n){n=Math.min(t.length,n);const i=[];let s=e;for(;s<n;){const e=t[s];let o=null,r=e>239?4:e>223?3:e>191?2:1;if(s+r<=n){let n,i,a,l;switch(r){case 1:e<128&&(o=e);break;case 2:n=t[s+1],128==(192&n)&&(l=(31&e)<<6|63&n,l>127&&(o=l));break;case 3:n=t[s+1],i=t[s+2],128==(192&n)&&128==(192&i)&&(l=(15&e)<<12|(63&n)<<6|63&i,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:n=t[s+1],i=t[s+2],a=t[s+3],128==(192&n)&&128==(192&i)&&128==(192&a)&&(l=(15&e)<<18|(63&n)<<12|(63&i)<<6|63&a,l>65535&&l<1114112&&(o=l))}}null===o?(o=65533,r=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|1023&o),i.push(o),s+=r}return function(t){const e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);let n="",i=0;for(;i<e;)n+=String.fromCharCode.apply(String,t.slice(i,i+=C));return n}(i)}l.TYPED_ARRAY_SUPPORT=function(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(t,e,n){return h(t,e,n)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,n){return function(t,e,n){return c(t),t<=0?a(t):void 0!==e?"string"==typeof n?a(t).fill(e,n):a(t).fill(e):a(t)}(t,e,n)},l.allocUnsafe=function(t){return u(t)},l.allocUnsafeSlow=function(t){return u(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(J(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),J(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let n=t.length,i=e.length;for(let s=0,o=Math.min(n,i);s<o;++s)if(t[s]!==e[s]){n=t[s],i=e[s];break}return n<i?-1:i<n?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);let n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;const i=l.allocUnsafe(e);let s=0;for(n=0;n<t.length;++n){let e=t[n];if(J(e,Uint8Array))s+e.length>i.length?(l.isBuffer(e)||(e=l.from(e)),e.copy(i,s)):Uint8Array.prototype.set.call(i,e,s);else{if(!l.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(i,s)}s+=e.length}return i},l.byteLength=p,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){const t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){const t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){const t=this.length;return 0===t?"":0===arguments.length?B(this,0,t):m.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){let t="";const n=e.h2;return t=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(t+=" ... "),"<Buffer "+t+">"},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(t,e,n,i,s){if(J(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===i&&(i=0),void 0===s&&(s=this.length),e<0||n>t.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&e>=n)return 0;if(i>=s)return-1;if(e>=n)return 1;if(this===t)return 0;let o=(s>>>=0)-(i>>>=0),r=(n>>>=0)-(e>>>=0);const a=Math.min(o,r),h=this.slice(i,s),c=t.slice(e,n);for(let t=0;t<a;++t)if(h[t]!==c[t]){o=h[t],r=c[t];break}return o<r?-1:r<o?1:0},l.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},l.prototype.indexOf=function(t,e,n){return v(this,t,e,n,!0)},l.prototype.lastIndexOf=function(t,e,n){return v(this,t,e,n,!1)},l.prototype.write=function(t,e,n,i){if(void 0===e)i="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)i=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}const s=this.length-e;if((void 0===n||n>s)&&(n=s),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return y(this,t,e,n);case"utf8":case"utf-8":return w(this,t,e,n);case"ascii":case"latin1":case"binary":return I(this,t,e,n);case"base64":return x(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const C=4096;function M(t,e,n){let i="";n=Math.min(t.length,n);for(let s=e;s<n;++s)i+=String.fromCharCode(127&t[s]);return i}function P(t,e,n){let i="";n=Math.min(t.length,n);for(let s=e;s<n;++s)i+=String.fromCharCode(t[s]);return i}function S(t,e,n){const i=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>i)&&(n=i);let s="";for(let i=e;i<n;++i)s+=K[t[i]];return s}function R(t,e,n){const i=t.slice(e,n);let s="";for(let t=0;t<i.length-1;t+=2)s+=String.fromCharCode(i[t]+256*i[t+1]);return s}function D(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function U(t,e,n,i,s,o){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||e<o)throw new RangeError('"value" argument is out of bounds');if(n+i>t.length)throw new RangeError("Index out of range")}function F(t,e,n,i,s){H(e,i,s,t,n,7);let o=Number(e&BigInt(4294967295));t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o,o>>=8,t[n++]=o;let r=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=r,r>>=8,t[n++]=r,r>>=8,t[n++]=r,r>>=8,t[n++]=r,n}function N(t,e,n,i,s){H(e,i,s,t,n,7);let o=Number(e&BigInt(4294967295));t[n+7]=o,o>>=8,t[n+6]=o,o>>=8,t[n+5]=o,o>>=8,t[n+4]=o;let r=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=r,r>>=8,t[n+2]=r,r>>=8,t[n+1]=r,r>>=8,t[n]=r,n+8}function k(t,e,n,i,s,o){if(n+i>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function G(t,e,n,i,o){return e=+e,n>>>=0,o||k(t,0,n,4),s.write(t,e,n,i,23,4),n+4}function z(t,e,n,i,o){return e=+e,n>>>=0,o||k(t,0,n,8),s.write(t,e,n,i,52,8),n+8}l.prototype.slice=function(t,e){const n=this.length;(t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t);const i=this.subarray(t,e);return Object.setPrototypeOf(i,l.prototype),i},l.prototype.readUintLE=l.prototype.readUIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t],s=1,o=0;for(;++o<e&&(s*=256);)i+=this[t+o]*s;return i},l.prototype.readUintBE=l.prototype.readUIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t+--e],s=1;for(;e>0&&(s*=256);)i+=this[t+--e]*s;return i},l.prototype.readUint8=l.prototype.readUInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),this[t]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||D(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readBigUInt64LE=_((function(t){Z(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Q(t,this.length-8);const i=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,s=this[++t]+256*this[++t]+65536*this[++t]+n*2**24;return BigInt(i)+(BigInt(s)<<BigInt(32))})),l.prototype.readBigUInt64BE=_((function(t){Z(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Q(t,this.length-8);const i=e*2**24+65536*this[++t]+256*this[++t]+this[++t],s=this[++t]*2**24+65536*this[++t]+256*this[++t]+n;return(BigInt(i)<<BigInt(32))+BigInt(s)})),l.prototype.readIntLE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=this[t],s=1,o=0;for(;++o<e&&(s*=256);)i+=this[t+o]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*e)),i},l.prototype.readIntBE=function(t,e,n){t>>>=0,e>>>=0,n||D(t,e,this.length);let i=e,s=1,o=this[t+--i];for(;i>0&&(s*=256);)o+=this[t+--i]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*e)),o},l.prototype.readInt8=function(t,e){return t>>>=0,e||D(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||D(t,2,this.length);const n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(t,e){t>>>=0,e||D(t,2,this.length);const n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||D(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readBigInt64LE=_((function(t){Z(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Q(t,this.length-8);const i=this[t+4]+256*this[t+5]+65536*this[t+6]+(n<<24);return(BigInt(i)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),l.prototype.readBigInt64BE=_((function(t){Z(t>>>=0,"offset");const e=this[t],n=this[t+7];void 0!==e&&void 0!==n||Q(t,this.length-8);const i=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(i)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+n)})),l.prototype.readFloatLE=function(t,e){return t>>>=0,e||D(t,4,this.length),s.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||D(t,4,this.length),s.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||D(t,8,this.length),s.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||D(t,8,this.length),s.read(this,t,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(t,e,n,i){t=+t,e>>>=0,n>>>=0,i||U(this,t,e,n,Math.pow(2,8*n)-1,0);let s=1,o=0;for(this[e]=255&t;++o<n&&(s*=256);)this[e+o]=t/s&255;return e+n},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(t,e,n,i){t=+t,e>>>=0,n>>>=0,i||U(this,t,e,n,Math.pow(2,8*n)-1,0);let s=n-1,o=1;for(this[e+s]=255&t;--s>=0&&(o*=256);)this[e+s]=t/o&255;return e+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeBigUInt64LE=_((function(t,e=0){return F(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=_((function(t,e=0){return N(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(t,e,n,i){if(t=+t,e>>>=0,!i){const i=Math.pow(2,8*n-1);U(this,t,e,n,i-1,-i)}let s=0,o=1,r=0;for(this[e]=255&t;++s<n&&(o*=256);)t<0&&0===r&&0!==this[e+s-1]&&(r=1),this[e+s]=(t/o>>0)-r&255;return e+n},l.prototype.writeIntBE=function(t,e,n,i){if(t=+t,e>>>=0,!i){const i=Math.pow(2,8*n-1);U(this,t,e,n,i-1,-i)}let s=n-1,o=1,r=0;for(this[e+s]=255&t;--s>=0&&(o*=256);)t<0&&0===r&&0!==this[e+s+1]&&(r=1),this[e+s]=(t/o>>0)-r&255;return e+n},l.prototype.writeInt8=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,n){return t=+t,e>>>=0,n||U(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeBigInt64LE=_((function(t,e=0){return F(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=_((function(t,e=0){return N(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(t,e,n){return G(this,t,e,!0,n)},l.prototype.writeFloatBE=function(t,e,n){return G(this,t,e,!1,n)},l.prototype.writeDoubleLE=function(t,e,n){return z(this,t,e,!0,n)},l.prototype.writeDoubleBE=function(t,e,n){return z(this,t,e,!1,n)},l.prototype.copy=function(t,e,n,i){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),e>=t.length&&(e=t.length),e||(e=0),i>0&&i<n&&(i=n),i===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-e<i-n&&(i=t.length-e+n);const s=i-n;return this===t&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,n,i):Uint8Array.prototype.set.call(t,this.subarray(n,i),e),s},l.prototype.fill=function(t,e,n,i){if("string"==typeof t){if("string"==typeof e?(i=e,e=0,n=this.length):"string"==typeof n&&(i=n,n=this.length),void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!l.isEncoding(i))throw new TypeError("Unknown encoding: "+i);if(1===t.length){const e=t.charCodeAt(0);("utf8"===i&&e<128||"latin1"===i)&&(t=e)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;let s;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(s=e;s<n;++s)this[s]=t;else{const o=l.isBuffer(t)?t:l.from(t,i),r=o.length;if(0===r)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(s=0;s<n-e;++s)this[s+e]=o[s%r]}return this};const L={};function O(t,e,n){L[t]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function Y(t){let e="",n=t.length;const i="-"===t[0]?1:0;for(;n>=i+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function H(t,e,n,i,s,o){if(t>n||t<e){const i="bigint"==typeof e?"n":"";let s;throw s=o>3?0===e||e===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(o+1)}${i}`:`>= -(2${i} ** ${8*(o+1)-1}${i}) and < 2 ** ${8*(o+1)-1}${i}`:`>= ${e}${i} and <= ${n}${i}`,new L.ERR_OUT_OF_RANGE("value",s,t)}!function(t,e,n){Z(e,"offset"),void 0!==t[e]&&void 0!==t[e+n]||Q(e,t.length-(n+1))}(i,s,o)}function Z(t,e){if("number"!=typeof t)throw new L.ERR_INVALID_ARG_TYPE(e,"number",t)}function Q(t,e,n){if(Math.floor(t)!==t)throw Z(t,n),new L.ERR_OUT_OF_RANGE(n||"offset","an integer",t);if(e<0)throw new L.ERR_BUFFER_OUT_OF_BOUNDS;throw new L.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${e}`,t)}O("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),O("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),O("ERR_OUT_OF_RANGE",(function(t,e,n){let i=`The value of "${t}" is out of range.`,s=n;return Number.isInteger(n)&&Math.abs(n)>2**32?s=Y(String(n)):"bigint"==typeof n&&(s=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(s=Y(s)),s+="n"),i+=` It must be ${e}. Received ${s}`,i}),RangeError);const j=/[^+/0-9A-Za-z-_]/g;function X(t,e){let n;e=e||1/0;const i=t.length;let s=null;const o=[];for(let r=0;r<i;++r){if(n=t.charCodeAt(r),n>55295&&n<57344){if(!s){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(r+1===i){(e-=3)>-1&&o.push(239,191,189);continue}s=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),s=n;continue}n=65536+(s-55296<<10|n-56320)}else s&&(e-=3)>-1&&o.push(239,191,189);if(s=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function W(t){return i.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(j,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,n,i){let s;for(s=0;s<i&&!(s+n>=e.length||s>=t.length);++s)e[s+n]=t[s];return s}function J(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function q(t){return t!=t}const K=function(){const t="0123456789abcdef",e=new Array(256);for(let n=0;n<16;++n){const i=16*n;for(let s=0;s<16;++s)e[i+s]=t[n]+t[s]}return e}();function _(t){return"undefined"==typeof BigInt?$:t}function $(){throw new Error("BigInt not supported")}},645:(t,e)=>{e.read=function(t,e,n,i,s){var o,r,a=8*s-i-1,l=(1<<a)-1,h=l>>1,c=-7,u=n?s-1:0,f=n?-1:1,d=t[e+u];for(u+=f,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=256*o+t[e+u],u+=f,c-=8);for(r=o&(1<<-c)-1,o>>=-c,c+=i;c>0;r=256*r+t[e+u],u+=f,c-=8);if(0===o)o=1-h;else{if(o===l)return r?NaN:1/0*(d?-1:1);r+=Math.pow(2,i),o-=h}return(d?-1:1)*r*Math.pow(2,o-i)},e.write=function(t,e,n,i,s,o){var r,a,l,h=8*o-s-1,c=(1<<h)-1,u=c>>1,f=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,d=i?0:o-1,g=i?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=c):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),(e+=r+u>=1?f/l:f*Math.pow(2,1-u))*l>=2&&(r++,l/=2),r+u>=c?(a=0,r=c):r+u>=1?(a=(e*l-1)*Math.pow(2,s),r+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,s),r=0));s>=8;t[n+d]=255&a,d+=g,a/=256,s-=8);for(r=r<<s|a,h+=s;h>0;t[n+d]=255&r,d+=g,r/=256,h-=8);t[n+d-g]|=128*p}},75:(t,e,n)=>{"use strict";var i=i||{};i.NIFTI1=i.NIFTI1||n(668),i.NIFTI2=i.NIFTI2||n(704),i.Utils=i.Utils||n(786);var s=s||n(591);i.isNIFTI1=function(t){var e,n,s,o;return!(t.byteLength<i.NIFTI1.STANDARD_HEADER_SIZE||((e=new DataView(t))&&(n=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION)),s=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION+1),o=e.getUint8(i.NIFTI1.MAGIC_NUMBER_LOCATION+2),n!==i.NIFTI1.MAGIC_NUMBER[0]||s!==i.NIFTI1.MAGIC_NUMBER[1]||o!==i.NIFTI1.MAGIC_NUMBER[2]))},i.isNIFTI2=function(t){var e,n,s,o;return!(t.byteLength<i.NIFTI1.STANDARD_HEADER_SIZE||(n=(e=new DataView(t)).getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION),s=e.getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION+1),o=e.getUint8(i.NIFTI2.MAGIC_NUMBER_LOCATION+2),n!==i.NIFTI2.MAGIC_NUMBER[0]||s!==i.NIFTI2.MAGIC_NUMBER[1]||o!==i.NIFTI2.MAGIC_NUMBER[2]))},i.isNIFTI=function(t){return i.isNIFTI1(t)||i.isNIFTI2(t)},i.isCompressed=function(t){var e,n,s;if(t){if(n=(e=new DataView(t)).getUint8(0),s=e.getUint8(1),n===i.Utils.GUNZIP_MAGIC_COOKIE1)return!0;if(s===i.Utils.GUNZIP_MAGIC_COOKIE2)return!0}return!1},i.decompress=function(t){return s.inflate(t).buffer},i.readHeader=function(t){var e=null;return i.isCompressed(t)&&(t=i.decompress(t)),i.isNIFTI1(t)?e=new i.NIFTI1:i.isNIFTI2(t)&&(e=new i.NIFTI2),e?e.readHeader(t):console.error("That file does not appear to be NIFTI!"),e},i.hasExtension=function(t){return 0!=t.extensionFlag[0]},i.readImage=function(t,e){var n=t.vox_offset,i=1,s=1;t.dims[4]&&(i=t.dims[4]),t.dims[5]&&(s=t.dims[5]);var o=t.dims[1]*t.dims[2]*t.dims[3]*i*s*(t.numBitsPerVoxel/8);return e.slice(n,n+o)},i.readExtension=function(t,e){var n=t.getExtensionLocation(),i=t.extensionSize;return e.slice(n,n+i)},i.readExtensionData=function(t,e){var n=t.getExtensionLocation(),i=t.extensionSize;return e.slice(n+8,n+i-8)},t.exports&&(t.exports=i)},668:(t,e,n)=>{"use strict";var i=i||{};i.Utils=i.Utils||n(786),i.NIFTI1=i.NIFTI1||function(){this.littleEndian=!1,this.dim_info=0,this.dims=[],this.intent_p1=0,this.intent_p2=0,this.intent_p3=0,this.intent_code=0,this.datatypeCode=0,this.numBitsPerVoxel=0,this.slice_start=0,this.slice_end=0,this.slice_code=0,this.pixDims=[],this.vox_offset=0,this.scl_slope=1,this.scl_inter=0,this.xyzt_units=0,this.cal_max=0,this.cal_min=0,this.slice_duration=0,this.toffset=0,this.description="",this.aux_file="",this.intent_name="",this.qform_code=0,this.sform_code=0,this.quatern_b=0,this.quatern_c=0,this.quatern_d=0,this.qoffset_x=0,this.qoffset_y=0,this.qoffset_z=0,this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],this.magic=0,this.isHDR=!1,this.extensionFlag=[0,0,0,0],this.extensionSize=0,this.extensionCode=0},i.NIFTI1.TYPE_NONE=0,i.NIFTI1.TYPE_BINARY=1,i.NIFTI1.TYPE_UINT8=2,i.NIFTI1.TYPE_INT16=4,i.NIFTI1.TYPE_INT32=8,i.NIFTI1.TYPE_FLOAT32=16,i.NIFTI1.TYPE_COMPLEX64=32,i.NIFTI1.TYPE_FLOAT64=64,i.NIFTI1.TYPE_RGB24=128,i.NIFTI1.TYPE_INT8=256,i.NIFTI1.TYPE_UINT16=512,i.NIFTI1.TYPE_UINT32=768,i.NIFTI1.TYPE_INT64=1024,i.NIFTI1.TYPE_UINT64=1280,i.NIFTI1.TYPE_FLOAT128=1536,i.NIFTI1.TYPE_COMPLEX128=1792,i.NIFTI1.TYPE_COMPLEX256=2048,i.NIFTI1.XFORM_UNKNOWN=0,i.NIFTI1.XFORM_SCANNER_ANAT=1,i.NIFTI1.XFORM_ALIGNED_ANAT=2,i.NIFTI1.XFORM_TALAIRACH=3,i.NIFTI1.XFORM_MNI_152=4,i.NIFTI1.SPATIAL_UNITS_MASK=7,i.NIFTI1.TEMPORAL_UNITS_MASK=56,i.NIFTI1.UNITS_UNKNOWN=0,i.NIFTI1.UNITS_METER=1,i.NIFTI1.UNITS_MM=2,i.NIFTI1.UNITS_MICRON=3,i.NIFTI1.UNITS_SEC=8,i.NIFTI1.UNITS_MSEC=16,i.NIFTI1.UNITS_USEC=24,i.NIFTI1.UNITS_HZ=32,i.NIFTI1.UNITS_PPM=40,i.NIFTI1.UNITS_RADS=48,i.NIFTI1.MAGIC_COOKIE=348,i.NIFTI1.STANDARD_HEADER_SIZE=348,i.NIFTI1.MAGIC_NUMBER_LOCATION=344,i.NIFTI1.MAGIC_NUMBER=[110,43,49],i.NIFTI1.MAGIC_NUMBER2=[110,105,49],i.NIFTI1.EXTENSION_HEADER_SIZE=8,i.NIFTI1.prototype.readHeader=function(t){var e,n,s,o,r=new DataView(t),a=i.Utils.getIntAt(r,0,this.littleEndian);if(a!==i.NIFTI1.MAGIC_COOKIE&&(this.littleEndian=!0,a=i.Utils.getIntAt(r,0,this.littleEndian)),a!==i.NIFTI1.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.dim_info=i.Utils.getByteAt(r,39),e=0;e<8;e+=1)o=40+2*e,this.dims[e]=i.Utils.getShortAt(r,o,this.littleEndian);for(this.intent_p1=i.Utils.getFloatAt(r,56,this.littleEndian),this.intent_p2=i.Utils.getFloatAt(r,60,this.littleEndian),this.intent_p3=i.Utils.getFloatAt(r,64,this.littleEndian),this.intent_code=i.Utils.getShortAt(r,68,this.littleEndian),this.datatypeCode=i.Utils.getShortAt(r,70,this.littleEndian),this.numBitsPerVoxel=i.Utils.getShortAt(r,72,this.littleEndian),this.slice_start=i.Utils.getShortAt(r,74,this.littleEndian),e=0;e<8;e+=1)o=76+4*e,this.pixDims[e]=i.Utils.getFloatAt(r,o,this.littleEndian);for(this.vox_offset=i.Utils.getFloatAt(r,108,this.littleEndian),this.scl_slope=i.Utils.getFloatAt(r,112,this.littleEndian),this.scl_inter=i.Utils.getFloatAt(r,116,this.littleEndian),this.slice_end=i.Utils.getShortAt(r,120,this.littleEndian),this.slice_code=i.Utils.getByteAt(r,122),this.xyzt_units=i.Utils.getByteAt(r,123),this.cal_max=i.Utils.getFloatAt(r,124,this.littleEndian),this.cal_min=i.Utils.getFloatAt(r,128,this.littleEndian),this.slice_duration=i.Utils.getFloatAt(r,132,this.littleEndian),this.toffset=i.Utils.getFloatAt(r,136,this.littleEndian),this.description=i.Utils.getStringAt(r,148,228),this.aux_file=i.Utils.getStringAt(r,228,252),this.qform_code=i.Utils.getShortAt(r,252,this.littleEndian),this.sform_code=i.Utils.getShortAt(r,254,this.littleEndian),this.quatern_b=i.Utils.getFloatAt(r,256,this.littleEndian),this.quatern_c=i.Utils.getFloatAt(r,260,this.littleEndian),this.quatern_d=i.Utils.getFloatAt(r,264,this.littleEndian),this.qoffset_x=i.Utils.getFloatAt(r,268,this.littleEndian),this.qoffset_y=i.Utils.getFloatAt(r,272,this.littleEndian),this.qoffset_z=i.Utils.getFloatAt(r,276,this.littleEndian),n=0;n<3;n+=1)for(s=0;s<4;s+=1)o=280+4*(4*n+s),this.affine[n][s]=i.Utils.getFloatAt(r,o,this.littleEndian);this.affine[3][0]=0,this.affine[3][1]=0,this.affine[3][2]=0,this.affine[3][3]=1,this.intent_name=i.Utils.getStringAt(r,328,344),this.magic=i.Utils.getStringAt(r,344,348),this.isHDR=this.magic===i.NIFTI1.MAGIC_NUMBER2,r.byteLength>i.NIFTI1.MAGIC_COOKIE&&(this.extensionFlag[0]=i.Utils.getByteAt(r,348),this.extensionFlag[1]=i.Utils.getByteAt(r,349),this.extensionFlag[2]=i.Utils.getByteAt(r,350),this.extensionFlag[3]=i.Utils.getByteAt(r,351),this.extensionFlag[0]&&(this.extensionSize=this.getExtensionSize(r),this.extensionCode=this.getExtensionCode(r)))},i.NIFTI1.prototype.toFormattedString=function(){var t=i.Utils.formatNumber,e="";return e+="Dim Info = "+this.dim_info+"\n",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]+"\n",e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n",e+="Intent Code = "+this.intent_code+"\n",e+="Datatype = "+this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n",e+="Bits Per Voxel = "+this.numBitsPerVoxel+"\n",e+="Slice Start = "+this.slice_start+"\n",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])+"\n",e+="Image Offset = "+this.vox_offset+"\n",e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+"\n",e+="Slice End = "+this.slice_end+"\n",e+="Slice Code = "+this.slice_code+"\n",e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(i.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(i.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n",e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+"\n",e+="Slice Duration = "+this.slice_duration+"\n",e+="Time Axis Shift = "+this.toffset+"\n",e+='Description: "'+this.description+'"\n',e+='Auxiliary File: "'+this.aux_file+'"\n',e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n",e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n",e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+"\n",e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+"\n",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])+"\n",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])+"\n",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])+"\n",e+='Intent Name: "'+this.intent_name+'"\n',this.extensionFlag[0]&&(e+="Extension: Size = "+this.extensionSize+" Code = "+this.extensionCode+"\n"),e},i.NIFTI1.prototype.getDatatypeCodeString=function(t){return t===i.NIFTI1.TYPE_UINT8?"1-Byte Unsigned Integer":t===i.NIFTI1.TYPE_INT16?"2-Byte Signed Integer":t===i.NIFTI1.TYPE_INT32?"4-Byte Signed Integer":t===i.NIFTI1.TYPE_FLOAT32?"4-Byte Float":t===i.NIFTI1.TYPE_FLOAT64?"8-Byte Float":t===i.NIFTI1.TYPE_RGB24?"RGB":t===i.NIFTI1.TYPE_INT8?"1-Byte Signed Integer":t===i.NIFTI1.TYPE_UINT16?"2-Byte Unsigned Integer":t===i.NIFTI1.TYPE_UINT32?"4-Byte Unsigned Integer":t===i.NIFTI1.TYPE_INT64?"8-Byte Signed Integer":t===i.NIFTI1.TYPE_UINT64?"8-Byte Unsigned Integer":"Unknown"},i.NIFTI1.prototype.getTransformCodeString=function(t){return t===i.NIFTI1.XFORM_SCANNER_ANAT?"Scanner":t===i.NIFTI1.XFORM_ALIGNED_ANAT?"Aligned":t===i.NIFTI1.XFORM_TALAIRACH?"Talairach":t===i.NIFTI1.XFORM_MNI_152?"MNI":"Unknown"},i.NIFTI1.prototype.getUnitsCodeString=function(t){return t===i.NIFTI1.UNITS_METER?"Meters":t===i.NIFTI1.UNITS_MM?"Millimeters":t===i.NIFTI1.UNITS_MICRON?"Microns":t===i.NIFTI1.UNITS_SEC?"Seconds":t===i.NIFTI1.UNITS_MSEC?"Milliseconds":t===i.NIFTI1.UNITS_USEC?"Microseconds":t===i.NIFTI1.UNITS_HZ?"Hz":t===i.NIFTI1.UNITS_PPM?"PPM":t===i.NIFTI1.UNITS_RADS?"Rads":"Unknown"},i.NIFTI1.prototype.getQformMat=function(){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])},i.NIFTI1.prototype.convertNiftiQFormToNiftiSForm=function(t,e,n,i,s,o,r,a,l,h){var c,u,f,d,g=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],p=t,m=e,A=n;return g[3][0]=g[3][1]=g[3][2]=0,g[3][3]=1,(c=1-(p*p+m*m+A*A))<1e-7?(p*=c=1/Math.sqrt(p*p+m*m+A*A),m*=c,A*=c,c=0):c=Math.sqrt(c),u=r>0?r:1,f=a>0?a:1,d=l>0?l:1,h<0&&(d=-d),g[0][0]=(c*c+p*p-m*m-A*A)*u,g[0][1]=2*(p*m-c*A)*f,g[0][2]=2*(p*A+c*m)*d,g[1][0]=2*(p*m+c*A)*u,g[1][1]=(c*c+m*m-p*p-A*A)*f,g[1][2]=2*(m*A-c*p)*d,g[2][0]=2*(p*A-c*m)*u,g[2][1]=2*(m*A+c*p)*f,g[2][2]=(c*c+A*A-m*m-p*p)*d,g[0][3]=i,g[1][3]=s,g[2][3]=o,g},i.NIFTI1.prototype.convertNiftiSFormToNEMA=function(t){var e,n,i,s,o,r,a,l,h,c,u,f,d,g,p,m,A,v,b,y,w,I,x,E,T,B,C,M,P,S,R,D,U;if(g=0,B=[[0,0,0],[0,0,0],[0,0,0]],C=[[0,0,0],[0,0,0],[0,0,0]],e=t[0][0],n=t[0][1],i=t[0][2],s=t[1][0],o=t[1][1],r=t[1][2],a=t[2][0],l=t[2][1],h=t[2][2],0===(c=Math.sqrt(e*e+s*s+a*a)))return null;if(e/=c,s/=c,a/=c,0===(c=Math.sqrt(n*n+o*o+l*l)))return null;if(c=e*(n/=c)+s*(o/=c)+a*(l/=c),Math.abs(c)>1e-4){if(n-=c*e,o-=c*s,l-=c*a,0===(c=Math.sqrt(n*n+o*o+l*l)))return null;n/=c,o/=c,l/=c}if(0===(c=Math.sqrt(i*i+r*r+h*h))?(i=s*l-a*o,r=a*n-l*e,h=e*o-s*n):(i/=c,r/=c,h/=c),c=e*i+s*r+a*h,Math.abs(c)>1e-4){if(i-=c*e,r-=c*s,h-=c*a,0===(c=Math.sqrt(i*i+r*r+h*h)))return null;i/=c,r/=c,h/=c}if(c=n*i+o*r+l*h,Math.abs(c)>1e-4){if(i-=c*n,r-=c*o,h-=c*l,0===(c=Math.sqrt(i*i+r*r+h*h)))return null;i/=c,r/=c,h/=c}if(B[0][0]=e,B[0][1]=n,B[0][2]=i,B[1][0]=s,B[1][1]=o,B[1][2]=r,B[2][0]=a,B[2][1]=l,B[2][2]=h,0===(u=this.nifti_mat33_determ(B)))return null;for(T=-666,v=w=I=x=1,b=2,y=3,f=1;f<=3;f+=1)for(d=1;d<=3;d+=1)if(f!==d)for(g=1;g<=3;g+=1)if(f!==g&&d!==g)for(C[0][0]=C[0][1]=C[0][2]=C[1][0]=C[1][1]=C[1][2]=C[2][0]=C[2][1]=C[2][2]=0,p=-1;p<=1;p+=2)for(m=-1;m<=1;m+=2)for(A=-1;A<=1;A+=2)C[0][f-1]=p,C[1][d-1]=m,C[2][g-1]=A,this.nifti_mat33_determ(C)*u>0&&(c=(E=this.nifti_mat33_mul(C,B))[0][0]+E[1][1]+E[2][2])>T&&(T=c,v=f,b=d,y=g,w=p,I=m,x=A);switch(M=P=S=R=D=U=0,v*w){case 1:M="X",R="+";break;case-1:M="X",R="-";break;case 2:M="Y",R="+";break;case-2:M="Y",R="-";break;case 3:M="Z",R="+";break;case-3:M="Z",R="-"}switch(b*I){case 1:P="X",D="+";break;case-1:P="X",D="-";break;case 2:P="Y",D="+";break;case-2:P="Y",D="-";break;case 3:P="Z",D="+";break;case-3:P="Z",D="-"}switch(y*x){case 1:S="X",U="+";break;case-1:S="X",U="-";break;case 2:S="Y",U="+";break;case-2:S="Y",U="-";break;case 3:S="Z",U="+";break;case-3:S="Z",U="-"}return M+P+S+R+D+U},i.NIFTI1.prototype.nifti_mat33_mul=function(t,e){var n,i,s=[[0,0,0],[0,0,0],[0,0,0]];for(n=0;n<3;n+=1)for(i=0;i<3;i+=1)s[n][i]=t[n][0]*e[0][i]+t[n][1]*e[1][i]+t[n][2]*e[2][i];return s},i.NIFTI1.prototype.nifti_mat33_determ=function(t){var e,n,i,s,o,r,a,l,h;return e=t[0][0],n=t[0][1],i=t[0][2],s=t[1][0],o=t[1][1],r=t[1][2],a=t[2][0],l=t[2][1],e*o*(h=t[2][2])-e*l*r-s*n*h+s*l*i+a*n*r-a*o*i},i.NIFTI1.prototype.getExtensionLocation=function(){return i.NIFTI1.MAGIC_COOKIE+4},i.NIFTI1.prototype.getExtensionSize=function(t){return i.Utils.getIntAt(t,this.getExtensionLocation(),this.littleEndian)},i.NIFTI1.prototype.getExtensionCode=function(t){return i.Utils.getIntAt(t,this.getExtensionLocation()+4,this.littleEndian)},t.exports&&(t.exports=i.NIFTI1)},704:(t,e,n)=>{"use strict";var i=i||{};i.Utils=i.Utils||n(786),i.NIFTI1=i.NIFTI1||n(668),i.NIFTI2=i.NIFTI2||function(){this.littleEndian=!1,this.dim_info=0,this.dims=[],this.intent_p1=0,this.intent_p2=0,this.intent_p3=0,this.intent_code=0,this.datatypeCode=0,this.numBitsPerVoxel=0,this.slice_start=0,this.slice_end=0,this.slice_code=0,this.pixDims=[],this.vox_offset=0,this.scl_slope=1,this.scl_inter=0,this.xyzt_units=0,this.cal_max=0,this.cal_min=0,this.slice_duration=0,this.toffset=0,this.description="",this.aux_file="",this.intent_name="",this.qform_code=0,this.sform_code=0,this.quatern_b=0,this.quatern_c=0,this.quatern_d=0,this.qoffset_x=0,this.qoffset_y=0,this.qoffset_z=0,this.affine=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]],this.magic=0,this.extensionFlag=[0,0,0,0]},i.NIFTI2.MAGIC_COOKIE=540,i.NIFTI2.MAGIC_NUMBER_LOCATION=4,i.NIFTI2.MAGIC_NUMBER=[110,43,50,0,13,10,26,10],i.NIFTI2.prototype.readHeader=function(t){var e,n,s,o,r=new DataView(t),a=i.Utils.getIntAt(r,0,this.littleEndian);if(a!==i.NIFTI2.MAGIC_COOKIE&&(this.littleEndian=!0,a=i.Utils.getIntAt(r,0,this.littleEndian)),a!==i.NIFTI2.MAGIC_COOKIE)throw new Error("This does not appear to be a NIFTI file!");for(this.datatypeCode=i.Utils.getShortAt(r,12,this.littleEndian),this.numBitsPerVoxel=i.Utils.getShortAt(r,14,this.littleEndian),e=0;e<8;e+=1)o=16+8*e,this.dims[e]=i.Utils.getLongAt(r,o,this.littleEndian);for(this.intent_p1=i.Utils.getDoubleAt(r,80,this.littleEndian),this.intent_p2=i.Utils.getDoubleAt(r,88,this.littleEndian),this.intent_p3=i.Utils.getDoubleAt(r,96,this.littleEndian),e=0;e<8;e+=1)o=104+8*e,this.pixDims[e]=i.Utils.getDoubleAt(r,o,this.littleEndian);for(this.vox_offset=i.Utils.getLongAt(r,168,this.littleEndian),this.scl_slope=i.Utils.getDoubleAt(r,176,this.littleEndian),this.scl_inter=i.Utils.getDoubleAt(r,184,this.littleEndian),this.cal_max=i.Utils.getDoubleAt(r,192,this.littleEndian),this.cal_min=i.Utils.getDoubleAt(r,200,this.littleEndian),this.slice_duration=i.Utils.getDoubleAt(r,208,this.littleEndian),this.toffset=i.Utils.getDoubleAt(r,216,this.littleEndian),this.slice_start=i.Utils.getLongAt(r,224,this.littleEndian),this.slice_end=i.Utils.getLongAt(r,232,this.littleEndian),this.description=i.Utils.getStringAt(r,240,320),this.aux_file=i.Utils.getStringAt(r,320,344),this.qform_code=i.Utils.getIntAt(r,344,this.littleEndian),this.sform_code=i.Utils.getIntAt(r,348,this.littleEndian),this.quatern_b=i.Utils.getDoubleAt(r,352,this.littleEndian),this.quatern_c=i.Utils.getDoubleAt(r,360,this.littleEndian),this.quatern_d=i.Utils.getDoubleAt(r,368,this.littleEndian),this.qoffset_x=i.Utils.getDoubleAt(r,376,this.littleEndian),this.qoffset_y=i.Utils.getDoubleAt(r,384,this.littleEndian),this.qoffset_z=i.Utils.getDoubleAt(r,392,this.littleEndian),n=0;n<3;n+=1)for(s=0;s<4;s+=1)o=400+8*(4*n+s),this.affine[n][s]=i.Utils.getDoubleAt(r,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=i.Utils.getIntAt(r,496,this.littleEndian),this.xyzt_units=i.Utils.getIntAt(r,500,this.littleEndian),this.intent_code=i.Utils.getIntAt(r,504,this.littleEndian),this.intent_name=i.Utils.getStringAt(r,508,524),this.dim_info=i.Utils.getByteAt(r,524),r.byteLength>i.NIFTI2.MAGIC_COOKIE&&(this.extensionFlag[0]=i.Utils.getByteAt(r,540),this.extensionFlag[1]=i.Utils.getByteAt(r,541),this.extensionFlag[2]=i.Utils.getByteAt(r,542),this.extensionFlag[3]=i.Utils.getByteAt(r,543),this.extensionFlag[0]&&(this.extensionSize=this.getExtensionSize(r),this.extensionCode=this.getExtensionCode(r)))},i.NIFTI2.prototype.toFormattedString=function(){var t=i.Utils.formatNumber,e="";return e+="Datatype = "+ +this.datatypeCode+" ("+this.getDatatypeCodeString(this.datatypeCode)+")\n",e+="Bits Per Voxel = = "+this.numBitsPerVoxel+"\n",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]+"\n",e+="Intent Parameters (1-3): "+this.intent_p1+", "+this.intent_p2+", "+this.intent_p3+"\n",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])+"\n",e+="Image Offset = "+this.vox_offset+"\n",e+="Data Scale: Slope = "+t(this.scl_slope)+" Intercept = "+t(this.scl_inter)+"\n",e+="Display Range: Max = "+t(this.cal_max)+" Min = "+t(this.cal_min)+"\n",e+="Slice Duration = "+this.slice_duration+"\n",e+="Time Axis Shift = "+this.toffset+"\n",e+="Slice Start = "+this.slice_start+"\n",e+="Slice End = "+this.slice_end+"\n",e+='Description: "'+this.description+'"\n',e+='Auxiliary File: "'+this.aux_file+'"\n',e+="Q-Form Code = "+this.qform_code+" ("+this.getTransformCodeString(this.qform_code)+")\n",e+="S-Form Code = "+this.sform_code+" ("+this.getTransformCodeString(this.sform_code)+")\n",e+="Quaternion Parameters: b = "+t(this.quatern_b)+" c = "+t(this.quatern_c)+" d = "+t(this.quatern_d)+"\n",e+="Quaternion Offsets: x = "+this.qoffset_x+" y = "+this.qoffset_y+" z = "+this.qoffset_z+"\n",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])+"\n",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])+"\n",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])+"\n",e+="Slice Code = "+this.slice_code+"\n",e+="Units Code = "+this.xyzt_units+" ("+this.getUnitsCodeString(i.NIFTI1.SPATIAL_UNITS_MASK&this.xyzt_units)+", "+this.getUnitsCodeString(i.NIFTI1.TEMPORAL_UNITS_MASK&this.xyzt_units)+")\n",e+="Intent Code = "+this.intent_code+"\n",(e+='Intent Name: "'+this.intent_name+'"\n')+"Dim Info = "+this.dim_info+"\n"},i.NIFTI2.prototype.getExtensionLocation=function(){return i.NIFTI2.MAGIC_COOKIE+4},i.NIFTI2.prototype.getExtensionSize=i.NIFTI1.prototype.getExtensionSize,i.NIFTI2.prototype.getExtensionCode=i.NIFTI1.prototype.getExtensionCode,i.NIFTI2.prototype.getDatatypeCodeString=i.NIFTI1.prototype.getDatatypeCodeString,i.NIFTI2.prototype.getTransformCodeString=i.NIFTI1.prototype.getTransformCodeString,i.NIFTI2.prototype.getUnitsCodeString=i.NIFTI1.prototype.getUnitsCodeString,i.NIFTI2.prototype.getQformMat=i.NIFTI1.prototype.getQformMat,i.NIFTI2.prototype.convertNiftiQFormToNiftiSForm=i.NIFTI1.prototype.convertNiftiQFormToNiftiSForm,i.NIFTI2.prototype.convertNiftiSFormToNEMA=i.NIFTI1.prototype.convertNiftiSFormToNEMA,i.NIFTI2.prototype.nifti_mat33_mul=i.NIFTI1.prototype.nifti_mat33_mul,i.NIFTI2.prototype.nifti_mat33_determ=i.NIFTI1.prototype.nifti_mat33_determ,t.exports&&(t.exports=i.NIFTI2)},786:t=>{"use strict";var e=e||{};e.Utils=e.Utils||{},e.Utils.crcTable=null,e.Utils.GUNZIP_MAGIC_COOKIE1=31,e.Utils.GUNZIP_MAGIC_COOKIE2=139,e.Utils.getStringAt=function(t,e,n){var i,s,o="";for(i=e;i<n;i+=1)0!==(s=t.getUint8(i))&&(o+=String.fromCharCode(s));return o},e.Utils.getByteAt=function(t,e){return t.getInt8(e)},e.Utils.getShortAt=function(t,e,n){return t.getInt16(e,n)},e.Utils.getIntAt=function(t,e,n){return t.getInt32(e,n)},e.Utils.getFloatAt=function(t,e,n){return t.getFloat32(e,n)},e.Utils.getDoubleAt=function(t,e,n){return t.getFloat64(e,n)},e.Utils.getLongAt=function(t,n,i){var s,o=[],r=0;for(s=0;s<8;s+=1)o[s]=e.Utils.getByteAt(t,n+s,i);for(s=o.length-1;s>=0;s--)r=256*r+o[s];return r},e.Utils.toArrayBuffer=function(t){var e,n,i;for(e=new ArrayBuffer(t.length),n=new Uint8Array(e),i=0;i<t.length;i+=1)n[i]=t[i];return e},e.Utils.isString=function(t){return"string"==typeof t||t instanceof String},e.Utils.formatNumber=function(t,n){var i=0;return i=e.Utils.isString(t)?Number(t):t,i=n?i.toPrecision(5):i.toPrecision(7),parseFloat(i)},e.Utils.makeCRCTable=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e},e.Utils.crc32=function(t){for(var n=e.Utils.crcTable||(e.Utils.crcTable=e.Utils.makeCRCTable()),i=-1,s=0;s<t.byteLength;s++)i=i>>>8^n[255&(i^t.getUint8(s))];return(-1^i)>>>0},t.exports&&(t.exports=e.Utils)},591:(t,e,n)=>{"use strict";const{Deflate:i,deflate:s,deflateRaw:o,gzip:r}=n(555),{Inflate:a,inflate:l,inflateRaw:h,ungzip:c}=n(843),u=n(619);t.exports.Deflate=i,t.exports.deflate=s,t.exports.deflateRaw=o,t.exports.gzip=r,t.exports.Inflate=a,t.exports.inflate=l,t.exports.inflateRaw=h,t.exports.ungzip=c,t.exports.constants=u},555:(t,e,n)=>{"use strict";const i=n(405),s=n(236),o=n(373),r=n(898),a=n(292),l=Object.prototype.toString,{Z_NO_FLUSH:h,Z_SYNC_FLUSH:c,Z_FULL_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:g,Z_DEFAULT_COMPRESSION:p,Z_DEFAULT_STRATEGY:m,Z_DEFLATED:A}=n(619);function v(t){this.options=s.assign({level:p,method:A,chunkSize:16384,windowBits:15,memLevel:8,strategy:m},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;let n=i.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==d)throw new Error(r[n]);if(e.header&&i.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?o.string2buf(e.dictionary):"[object ArrayBuffer]"===l.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,n=i.deflateSetDictionary(this.strm,t),n!==d)throw new Error(r[n]);this._dict_set=!0}}function b(t,e){const n=new v(e);if(n.push(t,!0),n.err)throw n.msg||r[n.err];return n.result}v.prototype.push=function(t,e){const n=this.strm,s=this.options.chunkSize;let r,a;if(this.ended)return!1;for(a=e===~~e?e:!0===e?f:h,"string"==typeof t?n.input=o.string2buf(t):"[object ArrayBuffer]"===l.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(s),n.next_out=0,n.avail_out=s),(a===c||a===u)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(r=i.deflate(n,a),r===g)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),r=i.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===d;if(0!==n.avail_out){if(a>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},v.prototype.onData=function(t){this.chunks.push(t)},v.prototype.onEnd=function(t){t===d&&(this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},t.exports.Deflate=v,t.exports.deflate=b,t.exports.deflateRaw=function(t,e){return(e=e||{}).raw=!0,b(t,e)},t.exports.gzip=function(t,e){return(e=e||{}).gzip=!0,b(t,e)},t.exports.constants=n(619)},843:(t,e,n)=>{"use strict";const i=n(948),s=n(236),o=n(373),r=n(898),a=n(292),l=n(401),h=Object.prototype.toString,{Z_NO_FLUSH:c,Z_FINISH:u,Z_OK:f,Z_STREAM_END:d,Z_NEED_DICT:g,Z_STREAM_ERROR:p,Z_DATA_ERROR:m,Z_MEM_ERROR:A}=n(619);function v(t){this.options=s.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;let n=i.inflateInit2(this.strm,e.windowBits);if(n!==f)throw new Error(r[n]);if(this.header=new l,i.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):"[object ArrayBuffer]"===h.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=i.inflateSetDictionary(this.strm,e.dictionary),n!==f)))throw new Error(r[n])}function b(t,e){const n=new v(e);if(n.push(t),n.err)throw n.msg||r[n.err];return n.result}v.prototype.push=function(t,e){const n=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let a,l,v;if(this.ended)return!1;for(l=e===~~e?e:!0===e?u:c,"[object ArrayBuffer]"===h.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(s),n.next_out=0,n.avail_out=s),a=i.inflate(n,l),a===g&&r&&(a=i.inflateSetDictionary(n,r),a===f?a=i.inflate(n,l):a===m&&(a=g));n.avail_in>0&&a===d&&n.state.wrap>0&&0!==t[n.next_in];)i.inflateReset(n),a=i.inflate(n,l);switch(a){case p:case m:case g:case A:return this.onEnd(a),this.ended=!0,!1}if(v=n.avail_out,n.next_out&&(0===n.avail_out||a===d))if("string"===this.options.to){let t=o.utf8border(n.output,n.next_out),e=n.next_out-t,i=o.buf2string(n.output,t);n.next_out=e,n.avail_out=s-e,e&&n.output.set(n.output.subarray(t,t+e),0),this.onData(i)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==f||0!==v){if(a===d)return a=i.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},v.prototype.onData=function(t){this.chunks.push(t)},v.prototype.onEnd=function(t){t===f&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},t.exports.Inflate=v,t.exports.inflate=b,t.exports.inflateRaw=function(t,e){return(e=e||{}).raw=!0,b(t,e)},t.exports.ungzip=b,t.exports.constants=n(619)},236:t=>{"use strict";const e=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);t.exports.assign=function(t){const n=Array.prototype.slice.call(arguments,1);for(;n.length;){const i=n.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const n in i)e(i,n)&&(t[n]=i[n])}}return t},t.exports.flattenChunks=t=>{let e=0;for(let n=0,i=t.length;n<i;n++)e+=t[n].length;const n=new Uint8Array(e);for(let e=0,i=0,s=t.length;e<s;e++){let s=t[e];n.set(s,i),i+=s.length}return n}},373:t=>{"use strict";let e=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){e=!1}const n=new Uint8Array(256);for(let t=0;t<256;t++)n[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;n[254]=n[254]=1,t.exports.string2buf=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,n,i,s,o,r=t.length,a=0;for(s=0;s<r;s++)n=t.charCodeAt(s),55296==(64512&n)&&s+1<r&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),s++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(a),o=0,s=0;o<a;s++)n=t.charCodeAt(s),55296==(64512&n)&&s+1<r&&(i=t.charCodeAt(s+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),s++)),n<128?e[o++]=n:n<2048?(e[o++]=192|n>>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e},t.exports.buf2string=(t,i)=>{const s=i||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,i));let o,r;const a=new Array(2*s);for(r=0,o=0;o<s;){let e=t[o++];if(e<128){a[r++]=e;continue}let i=n[e];if(i>4)a[r++]=65533,o+=i-1;else{for(e&=2===i?31:3===i?15:7;i>1&&o<s;)e=e<<6|63&t[o++],i--;i>1?a[r++]=65533:e<65536?a[r++]=e:(e-=65536,a[r++]=55296|e>>10&1023,a[r++]=56320|1023&e)}}return((t,n)=>{if(n<65534&&t.subarray&&e)return String.fromCharCode.apply(null,t.length===n?t:t.subarray(0,n));let i="";for(let e=0;e<n;e++)i+=String.fromCharCode(t[e]);return i})(a,r)},t.exports.utf8border=(t,e)=>{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+n[t[i]]>e?i:e}},69:t=>{"use strict";t.exports=(t,e,n,i)=>{let s=65535&t|0,o=t>>>16&65535|0,r=0;for(;0!==n;){r=n>2e3?2e3:n,n-=r;do{s=s+e[i++]|0,o=o+s|0}while(--r);s%=65521,o%=65521}return s|o<<16|0}},619:t=>{"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},869:t=>{"use strict";const e=new Uint32Array((()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e})());t.exports=(t,n,i,s)=>{const o=e,r=s+i;t^=-1;for(let e=s;e<r;e++)t=t>>>8^o[255&(t^n[e])];return-1^t}},405:(t,e,n)=>{"use strict";const{_tr_init:i,_tr_stored_block:s,_tr_flush_block:o,_tr_tally:r,_tr_align:a}=n(342),l=n(69),h=n(869),c=n(898),{Z_NO_FLUSH:u,Z_PARTIAL_FLUSH:f,Z_FULL_FLUSH:d,Z_FINISH:g,Z_BLOCK:p,Z_OK:m,Z_STREAM_END:A,Z_STREAM_ERROR:v,Z_DATA_ERROR:b,Z_BUF_ERROR:y,Z_DEFAULT_COMPRESSION:w,Z_FILTERED:I,Z_HUFFMAN_ONLY:x,Z_RLE:E,Z_FIXED:T,Z_DEFAULT_STRATEGY:B,Z_UNKNOWN:C,Z_DEFLATED:M}=n(619),P=258,S=262,R=103,D=113,U=666,F=(t,e)=>(t.msg=c[e],e),N=t=>(t<<1)-(t>4?9:0),k=t=>{let e=t.length;for(;--e>=0;)t[e]=0};let G=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask;const z=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))},L=(t,e)=>{o(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,z(t.strm)},O=(t,e)=>{t.pending_buf[t.pending++]=e},Y=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},H=(t,e,n,i)=>{let s=t.avail_in;return s>i&&(s=i),0===s?0:(t.avail_in-=s,e.set(t.input.subarray(t.next_in,t.next_in+s),n),1===t.state.wrap?t.adler=l(t.adler,e,s,n):2===t.state.wrap&&(t.adler=h(t.adler,e,s,n)),t.next_in+=s,t.total_in+=s,s)},Z=(t,e)=>{let n,i,s=t.max_chain_length,o=t.strstart,r=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-S?t.strstart-(t.w_size-S):0,h=t.window,c=t.w_mask,u=t.prev,f=t.strstart+P;let d=h[o+r-1],g=h[o+r];t.prev_length>=t.good_match&&(s>>=2),a>t.lookahead&&(a=t.lookahead);do{if(n=e,h[n+r]===g&&h[n+r-1]===d&&h[n]===h[o]&&h[++n]===h[o+1]){o+=2,n++;do{}while(h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&o<f);if(i=P-(f-o),o=f-P,i>r){if(t.match_start=e,r=i,i>=a)break;d=h[o+r-1],g=h[o+r]}}}while((e=u[e&c])>l&&0!=--s);return r<=t.lookahead?r:t.lookahead},Q=t=>{const e=t.w_size;let n,i,s,o,r;do{if(o=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-S)){t.window.set(t.window.subarray(e,e+e),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,i=t.hash_size,n=i;do{s=t.head[--n],t.head[n]=s>=e?s-e:0}while(--i);i=e,n=i;do{s=t.prev[--n],t.prev[n]=s>=e?s-e:0}while(--i);o+=e}if(0===t.strm.avail_in)break;if(i=H(t.strm,t.window,t.strstart+t.lookahead,o),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=G(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=G(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<S&&0!==t.strm.avail_in)},j=(t,e)=>{let n,i;for(;;){if(t.lookahead<S){if(Q(t),t.lookahead<S&&e===u)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=G(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==n&&t.strstart-n<=t.w_size-S&&(t.match_length=Z(t,n)),t.match_length>=3)if(i=r(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=G(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=G(t,t.ins_h,t.window[t.strstart+1]);else i=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2},X=(t,e)=>{let n,i,s;for(;;){if(t.lookahead<S){if(Q(t),t.lookahead<S&&e===u)return 1;if(0===t.lookahead)break}if(n=0,t.lookahead>=3&&(t.ins_h=G(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==n&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-S&&(t.match_length=Z(t,n),t.match_length<=5&&(t.strategy===I||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){s=t.strstart+t.lookahead-3,i=r(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=s&&(t.ins_h=G(t,t.ins_h,t.window[t.strstart+3-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(L(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=r(t,0,t.window[t.strstart-1]),i&&L(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=r(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2};function W(t,e,n,i,s){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=i,this.func=s}const V=[new W(0,0,0,0,((t,e)=>{let n=65535;for(n>t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Q(t),0===t.lookahead&&e===u)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;const i=t.block_start+n;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,L(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-S&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(L(t,!1),t.strm.avail_out),1)})),new W(4,4,8,4,j),new W(4,5,16,8,j),new W(4,6,32,32,j),new W(4,4,16,16,X),new W(8,16,32,32,X),new W(8,16,128,128,X),new W(8,32,128,256,X),new W(32,128,258,1024,X),new W(32,258,258,4096,X)];function J(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=M,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),k(this.dyn_ltree),k(this.dyn_dtree),k(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),k(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),k(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const q=t=>{if(!t||!t.state)return F(t,v);t.total_in=t.total_out=0,t.data_type=C;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:D,t.adler=2===e.wrap?0:1,e.last_flush=u,i(e),m},K=t=>{const e=q(t);var n;return e===m&&((n=t.state).window_size=2*n.w_size,k(n.head),n.max_lazy_match=V[n.level].max_lazy,n.good_match=V[n.level].good_length,n.nice_match=V[n.level].nice_length,n.max_chain_length=V[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),e},_=(t,e,n,i,s,o)=>{if(!t)return v;let r=1;if(e===w&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),s<1||s>9||n!==M||i<8||i>15||e<0||e>9||o<0||o>T)return F(t,v);8===i&&(i=9);const a=new J;return t.state=a,a.strm=t,a.wrap=r,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=s+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+3-1)/3),a.window=new Uint8Array(2*a.w_size),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<s+6,a.pending_buf_size=4*a.lit_bufsize,a.pending_buf=new Uint8Array(a.pending_buf_size),a.d_buf=1*a.lit_bufsize,a.l_buf=3*a.lit_bufsize,a.level=e,a.strategy=o,a.method=n,K(t)};t.exports.deflateInit=(t,e)=>_(t,e,M,15,8,B),t.exports.deflateInit2=_,t.exports.deflateReset=K,t.exports.deflateResetKeep=q,t.exports.deflateSetHeader=(t,e)=>t&&t.state?2!==t.state.wrap?v:(t.state.gzhead=e,m):v,t.exports.deflate=(t,e)=>{let n,i;if(!t||!t.state||e>p||e<0)return t?F(t,v):v;const o=t.state;if(!t.output||!t.input&&0!==t.avail_in||o.status===U&&e!==g)return F(t,0===t.avail_out?y:v);o.strm=t;const l=o.last_flush;if(o.last_flush=e,42===o.status)if(2===o.wrap)t.adler=0,O(o,31),O(o,139),O(o,8),o.gzhead?(O(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),O(o,255&o.gzhead.time),O(o,o.gzhead.time>>8&255),O(o,o.gzhead.time>>16&255),O(o,o.gzhead.time>>24&255),O(o,9===o.level?2:o.strategy>=x||o.level<2?4:0),O(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(O(o,255&o.gzhead.extra.length),O(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(t.adler=h(t.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69):(O(o,0),O(o,0),O(o,0),O(o,0),O(o,0),O(o,9===o.level?2:o.strategy>=x||o.level<2?4:0),O(o,3),o.status=D);else{let e=M+(o.w_bits-8<<4)<<8,n=-1;n=o.strategy>=x||o.level<2?0:o.level<6?1:6===o.level?2:3,e|=n<<6,0!==o.strstart&&(e|=32),e+=31-e%31,o.status=D,Y(o,e),0!==o.strstart&&(Y(o,t.adler>>>16),Y(o,65535&t.adler)),t.adler=1}if(69===o.status)if(o.gzhead.extra){for(n=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),z(t),n=o.pending,o.pending!==o.pending_buf_size));)O(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=73)}else o.status=73;if(73===o.status)if(o.gzhead.name){n=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),z(t),n=o.pending,o.pending===o.pending_buf_size)){i=1;break}i=o.gzindex<o.gzhead.name.length?255&o.gzhead.name.charCodeAt(o.gzindex++):0,O(o,i)}while(0!==i);o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),0===i&&(o.gzindex=0,o.status=91)}else o.status=91;if(91===o.status)if(o.gzhead.comment){n=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),z(t),n=o.pending,o.pending===o.pending_buf_size)){i=1;break}i=o.gzindex<o.gzhead.comment.length?255&o.gzhead.comment.charCodeAt(o.gzindex++):0,O(o,i)}while(0!==i);o.gzhead.hcrc&&o.pending>n&&(t.adler=h(t.adler,o.pending_buf,o.pending-n,n)),0===i&&(o.status=R)}else o.status=R;if(o.status===R&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&z(t),o.pending+2<=o.pending_buf_size&&(O(o,255&t.adler),O(o,t.adler>>8&255),t.adler=0,o.status=D)):o.status=D),0!==o.pending){if(z(t),0===t.avail_out)return o.last_flush=-1,m}else if(0===t.avail_in&&N(e)<=N(l)&&e!==g)return F(t,y);if(o.status===U&&0!==t.avail_in)return F(t,y);if(0!==t.avail_in||0!==o.lookahead||e!==u&&o.status!==U){let n=o.strategy===x?((t,e)=>{let n;for(;;){if(0===t.lookahead&&(Q(t),0===t.lookahead)){if(e===u)return 1;break}if(t.match_length=0,n=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2})(o,e):o.strategy===E?((t,e)=>{let n,i,s,o;const a=t.window;for(;;){if(t.lookahead<=P){if(Q(t),t.lookahead<=P&&e===u)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(s=t.strstart-1,i=a[s],i===a[++s]&&i===a[++s]&&i===a[++s])){o=t.strstart+P;do{}while(i===a[++s]&&i===a[++s]&&i===a[++s]&&i===a[++s]&&i===a[++s]&&i===a[++s]&&i===a[++s]&&i===a[++s]&&s<o);t.match_length=P-(o-s),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=r(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=r(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(L(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===g?(L(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(L(t,!1),0===t.strm.avail_out)?1:2})(o,e):V[o.level].func(o,e);if(3!==n&&4!==n||(o.status=U),1===n||3===n)return 0===t.avail_out&&(o.last_flush=-1),m;if(2===n&&(e===f?a(o):e!==p&&(s(o,0,0,!1),e===d&&(k(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),z(t),0===t.avail_out))return o.last_flush=-1,m}return e!==g?m:o.wrap<=0?A:(2===o.wrap?(O(o,255&t.adler),O(o,t.adler>>8&255),O(o,t.adler>>16&255),O(o,t.adler>>24&255),O(o,255&t.total_in),O(o,t.total_in>>8&255),O(o,t.total_in>>16&255),O(o,t.total_in>>24&255)):(Y(o,t.adler>>>16),Y(o,65535&t.adler)),z(t),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?m:A)},t.exports.deflateEnd=t=>{if(!t||!t.state)return v;const e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==R&&e!==D&&e!==U?F(t,v):(t.state=null,e===D?F(t,b):m)},t.exports.deflateSetDictionary=(t,e)=>{let n=e.length;if(!t||!t.state)return v;const i=t.state,s=i.wrap;if(2===s||1===s&&42!==i.status||i.lookahead)return v;if(1===s&&(t.adler=l(t.adler,e,n,0)),i.wrap=0,n>=i.w_size){0===s&&(k(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(n-i.w_size,n),0),e=t,n=i.w_size}const o=t.avail_in,r=t.next_in,a=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,Q(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=G(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Q(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=a,t.avail_in=o,i.wrap=s,m},t.exports.deflateInfo="pako deflate (from Nodeca project)"},401:t=>{"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},264:t=>{"use strict";t.exports=function(t,e){let n,i,s,o,r,a,l,h,c,u,f,d,g,p,m,A,v,b,y,w,I,x,E,T;const B=t.state;n=t.next_in,E=t.input,i=n+(t.avail_in-5),s=t.next_out,T=t.output,o=s-(e-t.avail_out),r=s+(t.avail_out-257),a=B.dmax,l=B.wsize,h=B.whave,c=B.wnext,u=B.window,f=B.hold,d=B.bits,g=B.lencode,p=B.distcode,m=(1<<B.lenbits)-1,A=(1<<B.distbits)-1;t:do{d<15&&(f+=E[n++]<<d,d+=8,f+=E[n++]<<d,d+=8),v=g[f&m];e:for(;;){if(b=v>>>24,f>>>=b,d-=b,b=v>>>16&255,0===b)T[s++]=65535&v;else{if(!(16&b)){if(0==(64&b)){v=g[(65535&v)+(f&(1<<b)-1)];continue e}if(32&b){B.mode=12;break t}t.msg="invalid literal/length code",B.mode=30;break t}y=65535&v,b&=15,b&&(d<b&&(f+=E[n++]<<d,d+=8),y+=f&(1<<b)-1,f>>>=b,d-=b),d<15&&(f+=E[n++]<<d,d+=8,f+=E[n++]<<d,d+=8),v=p[f&A];n:for(;;){if(b=v>>>24,f>>>=b,d-=b,b=v>>>16&255,!(16&b)){if(0==(64&b)){v=p[(65535&v)+(f&(1<<b)-1)];continue n}t.msg="invalid distance code",B.mode=30;break t}if(w=65535&v,b&=15,d<b&&(f+=E[n++]<<d,d+=8,d<b&&(f+=E[n++]<<d,d+=8)),w+=f&(1<<b)-1,w>a){t.msg="invalid distance too far back",B.mode=30;break t}if(f>>>=b,d-=b,b=s-o,w>b){if(b=w-b,b>h&&B.sane){t.msg="invalid distance too far back",B.mode=30;break t}if(I=0,x=u,0===c){if(I+=l-b,b<y){y-=b;do{T[s++]=u[I++]}while(--b);I=s-w,x=T}}else if(c<b){if(I+=l+c-b,b-=c,b<y){y-=b;do{T[s++]=u[I++]}while(--b);if(I=0,c<y){b=c,y-=b;do{T[s++]=u[I++]}while(--b);I=s-w,x=T}}}else if(I+=c-b,b<y){y-=b;do{T[s++]=u[I++]}while(--b);I=s-w,x=T}for(;y>2;)T[s++]=x[I++],T[s++]=x[I++],T[s++]=x[I++],y-=3;y&&(T[s++]=x[I++],y>1&&(T[s++]=x[I++]))}else{I=s-w;do{T[s++]=T[I++],T[s++]=T[I++],T[s++]=T[I++],y-=3}while(y>2);y&&(T[s++]=T[I++],y>1&&(T[s++]=T[I++]))}break}}break}}while(n<i&&s<r);y=d>>3,n-=y,d-=y<<3,f&=(1<<d)-1,t.next_in=n,t.next_out=s,t.avail_in=n<i?i-n+5:5-(n-i),t.avail_out=s<r?r-s+257:257-(s-r),B.hold=f,B.bits=d}},948:(t,e,n)=>{"use strict";const i=n(69),s=n(869),o=n(264),r=n(241),{Z_FINISH:a,Z_BLOCK:l,Z_TREES:h,Z_OK:c,Z_STREAM_END:u,Z_NEED_DICT:f,Z_STREAM_ERROR:d,Z_DATA_ERROR:g,Z_MEM_ERROR:p,Z_BUF_ERROR:m,Z_DEFLATED:A}=n(619),v=12,b=30,y=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const I=t=>{if(!t||!t.state)return d;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,c},x=t=>{if(!t||!t.state)return d;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,I(t)},E=(t,e)=>{let n;if(!t||!t.state)return d;const i=t.state;return e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?d:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=n,i.wbits=e,x(t))},T=(t,e)=>{if(!t)return d;const n=new w;t.state=n,n.window=null;const i=E(t,e);return i!==c&&(t.state=null),i};let B,C,M=!0;const P=t=>{if(M){B=new Int32Array(512),C=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(r(1,t.lens,0,288,B,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;r(2,t.lens,0,32,C,0,t.work,{bits:5}),M=!1}t.lencode=B,t.lenbits=9,t.distcode=C,t.distbits=5},S=(t,e,n,i)=>{let s;const o=t.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),i>=o.wsize?(o.window.set(e.subarray(n-o.wsize,n),0),o.wnext=0,o.whave=o.wsize):(s=o.wsize-o.wnext,s>i&&(s=i),o.window.set(e.subarray(n-i,n-i+s),o.wnext),(i-=s)?(o.window.set(e.subarray(n-i,n),0),o.wnext=i,o.whave=o.wsize):(o.wnext+=s,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=s))),0};t.exports.inflateReset=x,t.exports.inflateReset2=E,t.exports.inflateResetKeep=I,t.exports.inflateInit=t=>T(t,15),t.exports.inflateInit2=T,t.exports.inflate=(t,e)=>{let n,w,I,x,E,T,B,C,M,R,D,U,F,N,k,G,z,L,O,Y,H,Z,Q=0;const j=new Uint8Array(4);let X,W;const V=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return d;n=t.state,n.mode===v&&(n.mode=13),E=t.next_out,I=t.output,B=t.avail_out,x=t.next_in,w=t.input,T=t.avail_in,C=n.hold,M=n.bits,R=T,D=B,Z=c;t:for(;;)switch(n.mode){case 1:if(0===n.wrap){n.mode=13;break}for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(2&n.wrap&&35615===C){n.check=0,j[0]=255&C,j[1]=C>>>8&255,n.check=s(n.check,j,2,0),C=0,M=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&C)<<8)+(C>>8))%31){t.msg="incorrect header check",n.mode=b;break}if((15&C)!==A){t.msg="unknown compression method",n.mode=b;break}if(C>>>=4,M-=4,H=8+(15&C),0===n.wbits)n.wbits=H;else if(H>n.wbits){t.msg="invalid window size",n.mode=b;break}n.dmax=1<<n.wbits,t.adler=n.check=1,n.mode=512&C?10:v,C=0,M=0;break;case 2:for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(n.flags=C,(255&n.flags)!==A){t.msg="unknown compression method",n.mode=b;break}if(57344&n.flags){t.msg="unknown header flags set",n.mode=b;break}n.head&&(n.head.text=C>>8&1),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=s(n.check,j,2,0)),C=0,M=0,n.mode=3;case 3:for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.head&&(n.head.time=C),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,j[2]=C>>>16&255,j[3]=C>>>24&255,n.check=s(n.check,j,4,0)),C=0,M=0,n.mode=4;case 4:for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.head&&(n.head.xflags=255&C,n.head.os=C>>8),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=s(n.check,j,2,0)),C=0,M=0,n.mode=5;case 5:if(1024&n.flags){for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.length=C,n.head&&(n.head.extra_len=C),512&n.flags&&(j[0]=255&C,j[1]=C>>>8&255,n.check=s(n.check,j,2,0)),C=0,M=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(U=n.length,U>T&&(U=T),U&&(n.head&&(H=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(w.subarray(x,x+U),H)),512&n.flags&&(n.check=s(n.check,w,U,x)),T-=U,x+=U,n.length-=U),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===T)break t;U=0;do{H=w[x+U++],n.head&&H&&n.length<65536&&(n.head.name+=String.fromCharCode(H))}while(H&&U<T);if(512&n.flags&&(n.check=s(n.check,w,U,x)),T-=U,x+=U,H)break t}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===T)break t;U=0;do{H=w[x+U++],n.head&&H&&n.length<65536&&(n.head.comment+=String.fromCharCode(H))}while(H&&U<T);if(512&n.flags&&(n.check=s(n.check,w,U,x)),T-=U,x+=U,H)break t}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;M<16;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C!==(65535&n.check)){t.msg="header crc mismatch",n.mode=b;break}C=0,M=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=v;break;case 10:for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}t.adler=n.check=y(C),C=0,M=0,n.mode=11;case 11:if(0===n.havedict)return t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,f;t.adler=n.check=1,n.mode=v;case v:if(e===l||e===h)break t;case 13:if(n.last){C>>>=7&M,M-=7&M,n.mode=27;break}for(;M<3;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}switch(n.last=1&C,C>>>=1,M-=1,3&C){case 0:n.mode=14;break;case 1:if(P(n),n.mode=20,e===h){C>>>=2,M-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=b}C>>>=2,M-=2;break;case 14:for(C>>>=7&M,M-=7&M;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if((65535&C)!=(C>>>16^65535)){t.msg="invalid stored block lengths",n.mode=b;break}if(n.length=65535&C,C=0,M=0,n.mode=15,e===h)break t;case 15:n.mode=16;case 16:if(U=n.length,U){if(U>T&&(U=T),U>B&&(U=B),0===U)break t;I.set(w.subarray(x,x+U),E),T-=U,x+=U,B-=U,E+=U,n.length-=U;break}n.mode=v;break;case 17:for(;M<14;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(n.nlen=257+(31&C),C>>>=5,M-=5,n.ndist=1+(31&C),C>>>=5,M-=5,n.ncode=4+(15&C),C>>>=4,M-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=b;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;M<3;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.lens[V[n.have++]]=7&C,C>>>=3,M-=3}for(;n.have<19;)n.lens[V[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,X={bits:n.lenbits},Z=r(0,n.lens,0,19,n.lencode,0,n.work,X),n.lenbits=X.bits,Z){t.msg="invalid code lengths set",n.mode=b;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;Q=n.lencode[C&(1<<n.lenbits)-1],k=Q>>>24,G=Q>>>16&255,z=65535&Q,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(z<16)C>>>=k,M-=k,n.lens[n.have++]=z;else{if(16===z){for(W=k+2;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C>>>=k,M-=k,0===n.have){t.msg="invalid bit length repeat",n.mode=b;break}H=n.lens[n.have-1],U=3+(3&C),C>>>=2,M-=2}else if(17===z){for(W=k+3;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=k,M-=k,H=0,U=3+(7&C),C>>>=3,M-=3}else{for(W=k+7;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=k,M-=k,H=0,U=11+(127&C),C>>>=7,M-=7}if(n.have+U>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=b;break}for(;U--;)n.lens[n.have++]=H}}if(n.mode===b)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=b;break}if(n.lenbits=9,X={bits:n.lenbits},Z=r(1,n.lens,0,n.nlen,n.lencode,0,n.work,X),n.lenbits=X.bits,Z){t.msg="invalid literal/lengths set",n.mode=b;break}if(n.distbits=6,n.distcode=n.distdyn,X={bits:n.distbits},Z=r(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,X),n.distbits=X.bits,Z){t.msg="invalid distances set",n.mode=b;break}if(n.mode=20,e===h)break t;case 20:n.mode=21;case 21:if(T>=6&&B>=258){t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,o(t,D),E=t.next_out,I=t.output,B=t.avail_out,x=t.next_in,w=t.input,T=t.avail_in,C=n.hold,M=n.bits,n.mode===v&&(n.back=-1);break}for(n.back=0;Q=n.lencode[C&(1<<n.lenbits)-1],k=Q>>>24,G=Q>>>16&255,z=65535&Q,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(G&&0==(240&G)){for(L=k,O=G,Y=z;Q=n.lencode[Y+((C&(1<<L+O)-1)>>L)],k=Q>>>24,G=Q>>>16&255,z=65535&Q,!(L+k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=L,M-=L,n.back+=L}if(C>>>=k,M-=k,n.back+=k,n.length=z,0===G){n.mode=26;break}if(32&G){n.back=-1,n.mode=v;break}if(64&G){t.msg="invalid literal/length code",n.mode=b;break}n.extra=15&G,n.mode=22;case 22:if(n.extra){for(W=n.extra;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.length+=C&(1<<n.extra)-1,C>>>=n.extra,M-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;Q=n.distcode[C&(1<<n.distbits)-1],k=Q>>>24,G=Q>>>16&255,z=65535&Q,!(k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(0==(240&G)){for(L=k,O=G,Y=z;Q=n.distcode[Y+((C&(1<<L+O)-1)>>L)],k=Q>>>24,G=Q>>>16&255,z=65535&Q,!(L+k<=M);){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}C>>>=L,M-=L,n.back+=L}if(C>>>=k,M-=k,n.back+=k,64&G){t.msg="invalid distance code",n.mode=b;break}n.offset=z,n.extra=15&G,n.mode=24;case 24:if(n.extra){for(W=n.extra;M<W;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}n.offset+=C&(1<<n.extra)-1,C>>>=n.extra,M-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=b;break}n.mode=25;case 25:if(0===B)break t;if(U=D-B,n.offset>U){if(U=n.offset-U,U>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=b;break}U>n.wnext?(U-=n.wnext,F=n.wsize-U):F=n.wnext-U,U>n.length&&(U=n.length),N=n.window}else N=I,F=E-n.offset,U=n.length;U>B&&(U=B),B-=U,n.length-=U;do{I[E++]=N[F++]}while(--U);0===n.length&&(n.mode=21);break;case 26:if(0===B)break t;I[E++]=n.length,B--,n.mode=21;break;case 27:if(n.wrap){for(;M<32;){if(0===T)break t;T--,C|=w[x++]<<M,M+=8}if(D-=B,t.total_out+=D,n.total+=D,D&&(t.adler=n.check=n.flags?s(n.check,I,D,E-D):i(n.check,I,D,E-D)),D=B,(n.flags?C:y(C))!==n.check){t.msg="incorrect data check",n.mode=b;break}C=0,M=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;M<32;){if(0===T)break t;T--,C+=w[x++]<<M,M+=8}if(C!==(4294967295&n.total)){t.msg="incorrect length check",n.mode=b;break}C=0,M=0}n.mode=29;case 29:Z=u;break t;case b:Z=g;break t;case 31:return p;case 32:default:return d}return t.next_out=E,t.avail_out=B,t.next_in=x,t.avail_in=T,n.hold=C,n.bits=M,(n.wsize||D!==t.avail_out&&n.mode<b&&(n.mode<27||e!==a))&&S(t,t.output,t.next_out,D-t.avail_out)?(n.mode=31,p):(R-=t.avail_in,D-=t.avail_out,t.total_in+=R,t.total_out+=D,n.total+=D,n.wrap&&D&&(t.adler=n.check=n.flags?s(n.check,I,D,t.next_out-D):i(n.check,I,D,t.next_out-D)),t.data_type=n.bits+(n.last?64:0)+(n.mode===v?128:0)+(20===n.mode||15===n.mode?256:0),(0===R&&0===D||e===a)&&Z===c&&(Z=m),Z)},t.exports.inflateEnd=t=>{if(!t||!t.state)return d;let e=t.state;return e.window&&(e.window=null),t.state=null,c},t.exports.inflateGetHeader=(t,e)=>{if(!t||!t.state)return d;const n=t.state;return 0==(2&n.wrap)?d:(n.head=e,e.done=!1,c)},t.exports.inflateSetDictionary=(t,e)=>{const n=e.length;let s,o,r;return t&&t.state?(s=t.state,0!==s.wrap&&11!==s.mode?d:11===s.mode&&(o=1,o=i(o,e,n,0),o!==s.check)?g:(r=S(t,e,n,n),r?(s.mode=31,p):(s.havedict=1,c))):d},t.exports.inflateInfo="pako inflate (from Nodeca project)"},241:t=>{"use strict";const e=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),i=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),s=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);t.exports=(t,o,r,a,l,h,c,u)=>{const f=u.bits;let d,g,p,m,A,v,b=0,y=0,w=0,I=0,x=0,E=0,T=0,B=0,C=0,M=0,P=null,S=0;const R=new Uint16Array(16),D=new Uint16Array(16);let U,F,N,k=null,G=0;for(b=0;b<=15;b++)R[b]=0;for(y=0;y<a;y++)R[o[r+y]]++;for(x=f,I=15;I>=1&&0===R[I];I--);if(x>I&&(x=I),0===I)return l[h++]=20971520,l[h++]=20971520,u.bits=1,0;for(w=1;w<I&&0===R[w];w++);for(x<w&&(x=w),B=1,b=1;b<=15;b++)if(B<<=1,B-=R[b],B<0)return-1;if(B>0&&(0===t||1!==I))return-1;for(D[1]=0,b=1;b<15;b++)D[b+1]=D[b]+R[b];for(y=0;y<a;y++)0!==o[r+y]&&(c[D[o[r+y]]++]=y);if(0===t?(P=k=c,v=19):1===t?(P=e,S-=257,k=n,G-=257,v=256):(P=i,k=s,v=-1),M=0,y=0,b=w,A=h,E=x,T=0,p=-1,C=1<<x,m=C-1,1===t&&C>852||2===t&&C>592)return 1;for(;;){U=b-T,c[y]<v?(F=0,N=c[y]):c[y]>v?(F=k[G+c[y]],N=P[S+c[y]]):(F=96,N=0),d=1<<b-T,g=1<<E,w=g;do{g-=d,l[A+(M>>T)+g]=U<<24|F<<16|N|0}while(0!==g);for(d=1<<b-1;M&d;)d>>=1;if(0!==d?(M&=d-1,M+=d):M=0,y++,0==--R[b]){if(b===I)break;b=o[r+c[y]]}if(b>x&&(M&m)!==p){for(0===T&&(T=x),A+=w,E=b-T,B=1<<E;E+T<I&&(B-=R[E+T],!(B<=0));)E++,B<<=1;if(C+=1<<E,1===t&&C>852||2===t&&C>592)return 1;p=M&m,l[p]=x<<24|E<<16|A-h|0}}return 0!==M&&(l[A+M]=b-T<<24|64<<16|0),u.bits=x,0}},898:t=>{"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},342:t=>{"use strict";function e(t){let e=t.length;for(;--e>=0;)t[e]=0}const n=new Uint8Array([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]),i=new Uint8Array([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]),s=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),r=new Array(576);e(r);const a=new Array(60);e(a);const l=new Array(512);e(l);const h=new Array(256);e(h);const c=new Array(29);e(c);const u=new Array(30);function f(t,e,n,i,s){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=i,this.max_length=s,this.has_stree=t&&t.length}let d,g,p;function m(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(u);const A=t=>t<256?l[t]:l[256+(t>>>7)],v=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},b=(t,e,n)=>{t.bi_valid>16-n?(t.bi_buf|=e<<t.bi_valid&65535,v(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},y=(t,e,n)=>{b(t,n[2*e],n[2*e+1])},w=(t,e)=>{let n=0;do{n|=1&t,t>>>=1,n<<=1}while(--e>0);return n>>>1},I=(t,e,n)=>{const i=new Array(16);let s,o,r=0;for(s=1;s<=15;s++)i[s]=r=r+n[s-1]<<1;for(o=0;o<=e;o++){let e=t[2*o+1];0!==e&&(t[2*o]=w(i[e]++,e))}},x=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},E=t=>{t.bi_valid>8?v(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},T=(t,e,n,i)=>{const s=2*e,o=2*n;return t[s]<t[o]||t[s]===t[o]&&i[e]<=i[n]},B=(t,e,n)=>{const i=t.heap[n];let s=n<<1;for(;s<=t.heap_len&&(s<t.heap_len&&T(e,t.heap[s+1],t.heap[s],t.depth)&&s++,!T(e,i,t.heap[s],t.depth));)t.heap[n]=t.heap[s],n=s,s<<=1;t.heap[n]=i},C=(t,e,s)=>{let o,r,a,l,f=0;if(0!==t.last_lit)do{o=t.pending_buf[t.d_buf+2*f]<<8|t.pending_buf[t.d_buf+2*f+1],r=t.pending_buf[t.l_buf+f],f++,0===o?y(t,r,e):(a=h[r],y(t,a+256+1,e),l=n[a],0!==l&&(r-=c[a],b(t,r,l)),o--,a=A(o),y(t,a,s),l=i[a],0!==l&&(o-=u[a],b(t,o,l)))}while(f<t.last_lit);y(t,256,e)},M=(t,e)=>{const n=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.elems;let r,a,l,h=-1;for(t.heap_len=0,t.heap_max=573,r=0;r<o;r++)0!==n[2*r]?(t.heap[++t.heap_len]=h=r,t.depth[r]=0):n[2*r+1]=0;for(;t.heap_len<2;)l=t.heap[++t.heap_len]=h<2?++h:0,n[2*l]=1,t.depth[l]=0,t.opt_len--,s&&(t.static_len-=i[2*l+1]);for(e.max_code=h,r=t.heap_len>>1;r>=1;r--)B(t,n,r);l=o;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],B(t,n,1),a=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=a,n[2*l]=n[2*r]+n[2*a],t.depth[l]=(t.depth[r]>=t.depth[a]?t.depth[r]:t.depth[a])+1,n[2*r+1]=n[2*a+1]=l,t.heap[1]=l++,B(t,n,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const n=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,o=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length;let h,c,u,f,d,g,p=0;for(f=0;f<=15;f++)t.bl_count[f]=0;for(n[2*t.heap[t.heap_max]+1]=0,h=t.heap_max+1;h<573;h++)c=t.heap[h],f=n[2*n[2*c+1]+1]+1,f>l&&(f=l,p++),n[2*c+1]=f,c>i||(t.bl_count[f]++,d=0,c>=a&&(d=r[c-a]),g=n[2*c],t.opt_len+=g*(f+d),o&&(t.static_len+=g*(s[2*c+1]+d)));if(0!==p){do{for(f=l-1;0===t.bl_count[f];)f--;t.bl_count[f]--,t.bl_count[f+1]+=2,t.bl_count[l]--,p-=2}while(p>0);for(f=l;0!==f;f--)for(c=t.bl_count[f];0!==c;)u=t.heap[--h],u>i||(n[2*u+1]!==f&&(t.opt_len+=(f-n[2*u+1])*n[2*u],n[2*u+1]=f),c--)}})(t,e),I(n,h,t.bl_count)},P=(t,e,n)=>{let i,s,o=-1,r=e[1],a=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(n+1)+1]=65535,i=0;i<=n;i++)s=r,r=e[2*(i+1)+1],++a<l&&s===r||(a<h?t.bl_tree[2*s]+=a:0!==s?(s!==o&&t.bl_tree[2*s]++,t.bl_tree[32]++):a<=10?t.bl_tree[34]++:t.bl_tree[36]++,a=0,o=s,0===r?(l=138,h=3):s===r?(l=6,h=3):(l=7,h=4))},S=(t,e,n)=>{let i,s,o=-1,r=e[1],a=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=n;i++)if(s=r,r=e[2*(i+1)+1],!(++a<l&&s===r)){if(a<h)do{y(t,s,t.bl_tree)}while(0!=--a);else 0!==s?(s!==o&&(y(t,s,t.bl_tree),a--),y(t,16,t.bl_tree),b(t,a-3,2)):a<=10?(y(t,17,t.bl_tree),b(t,a-3,3)):(y(t,18,t.bl_tree),b(t,a-11,7));a=0,o=s,0===r?(l=138,h=3):s===r?(l=6,h=3):(l=7,h=4)}};let R=!1;const D=(t,e,n,i)=>{b(t,0+(i?1:0),3),((t,e,n,i)=>{E(t),v(t,n),v(t,~n),t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n})(t,e,n)};t.exports._tr_init=t=>{R||((()=>{let t,e,o,m,A;const v=new Array(16);for(o=0,m=0;m<28;m++)for(c[m]=o,t=0;t<1<<n[m];t++)h[o++]=m;for(h[o-1]=m,A=0,m=0;m<16;m++)for(u[m]=A,t=0;t<1<<i[m];t++)l[A++]=m;for(A>>=7;m<30;m++)for(u[m]=A<<7,t=0;t<1<<i[m]-7;t++)l[256+A++]=m;for(e=0;e<=15;e++)v[e]=0;for(t=0;t<=143;)r[2*t+1]=8,t++,v[8]++;for(;t<=255;)r[2*t+1]=9,t++,v[9]++;for(;t<=279;)r[2*t+1]=7,t++,v[7]++;for(;t<=287;)r[2*t+1]=8,t++,v[8]++;for(I(r,287,v),t=0;t<30;t++)a[2*t+1]=5,a[2*t]=w(t,5);d=new f(r,n,257,286,15),g=new f(a,i,0,30,15),p=new f(new Array(0),s,0,19,7)})(),R=!0),t.l_desc=new m(t.dyn_ltree,d),t.d_desc=new m(t.dyn_dtree,g),t.bl_desc=new m(t.bl_tree,p),t.bi_buf=0,t.bi_valid=0,x(t)},t.exports._tr_stored_block=D,t.exports._tr_flush_block=(t,e,n,i)=>{let s,l,h=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),M(t,t.l_desc),M(t,t.d_desc),h=(t=>{let e;for(P(t,t.dyn_ltree,t.l_desc.max_code),P(t,t.dyn_dtree,t.d_desc.max_code),M(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*o[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,l=t.static_len+3+7>>>3,l<=s&&(s=l)):s=l=n+5,n+4<=s&&-1!==e?D(t,e,n,i):4===t.strategy||l===s?(b(t,2+(i?1:0),3),C(t,r,a)):(b(t,4+(i?1:0),3),((t,e,n,i)=>{let s;for(b(t,e-257,5),b(t,n-1,5),b(t,i-4,4),s=0;s<i;s++)b(t,t.bl_tree[2*o[s]+1],3);S(t,t.dyn_ltree,e-1),S(t,t.dyn_dtree,n-1)})(t,t.l_desc.max_code+1,t.d_desc.max_code+1,h+1),C(t,t.dyn_ltree,t.dyn_dtree)),x(t),i&&E(t)},t.exports._tr_tally=(t,e,n)=>(t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(h[n]+256+1)]++,t.dyn_dtree[2*A(e)]++),t.last_lit===t.lit_bufsize-1),t.exports._tr_align=t=>{b(t,2,3),y(t,256,r),(t=>{16===t.bi_valid?(v(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},292:t=>{"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},326:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Niivue:()=>Bt});var i={};n.r(i),n.d(i,{blue:()=>P,ct_brain:()=>k,gray:()=>S,green:()=>M,inferno:()=>D,plasma:()=>U,red:()=>C,viridis:()=>F,warm:()=>N,winter:()=>R});var s=n(75),o=function(t,e,n){var i=this;this.program=r(t,e,n);var s=/uniform[^;]+[ ](\w+);/g,o=/uniform[^;]+[ ](\w+);/;this.uniforms={};var a=e.match(s),l=n.match(s);for(var h in a&&a.forEach((function(t){var e=t.match(o);i.uniforms[e[1]]=-1})),l&&l.forEach((function(t){var e=t.match(o);i.uniforms[e[1]]=-1})),this.uniforms)this.uniforms[h]=t.getUniformLocation(this.program,h)};o.prototype.use=function(t){t.useProgram(this.program)};var r=function(t,e,n){var i=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(i,e),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))return alert("Vertex shader failed to compile, see console for log"),console.log(t.getShaderInfoLog(i)),null;var s=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(s,n),t.compileShader(s),!t.getShaderParameter(s,t.COMPILE_STATUS))return alert("Fragment shader failed to compile, see console for log"),console.log(t.getShaderInfoLog(s)),null;var o=t.createProgram();return t.attachShader(o,i),t.attachShader(o,s),t.linkProgram(o),t.getProgramParameter(o,t.LINK_STATUS)?o:(alert("Shader failed to link, see console for log"),console.log(t.getProgramInfoLog(o)),null)},a="undefined"!=typeof Float32Array?Float32Array:Array;function l(){var t=new a(16);return a!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function h(t){var e=new a(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function c(t,e,n,i,s,o,r,l,h,c,u,f,d,g,p,m){var A=new a(16);return A[0]=t,A[1]=e,A[2]=n,A[3]=i,A[4]=s,A[5]=o,A[6]=r,A[7]=l,A[8]=h,A[9]=c,A[10]=u,A[11]=f,A[12]=d,A[13]=g,A[14]=p,A[15]=m,A}function u(t,e){if(t===e){var n=e[1],i=e[2],s=e[3],o=e[6],r=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=o,t[11]=e[14],t[12]=s,t[13]=r,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function f(t,e){var n=e[0],i=e[1],s=e[2],o=e[3],r=e[4],a=e[5],l=e[6],h=e[7],c=e[8],u=e[9],f=e[10],d=e[11],g=e[12],p=e[13],m=e[14],A=e[15],v=n*a-i*r,b=n*l-s*r,y=n*h-o*r,w=i*l-s*a,I=i*h-o*a,x=s*h-o*l,E=c*p-u*g,T=c*m-f*g,B=c*A-d*g,C=u*m-f*p,M=u*A-d*p,P=f*A-d*m,S=v*P-b*M+y*C+w*B-I*T+x*E;return S?(S=1/S,t[0]=(a*P-l*M+h*C)*S,t[1]=(s*M-i*P-o*C)*S,t[2]=(p*x-m*I+A*w)*S,t[3]=(f*I-u*x-d*w)*S,t[4]=(l*B-r*P-h*T)*S,t[5]=(n*P-s*B+o*T)*S,t[6]=(m*y-g*x-A*b)*S,t[7]=(c*x-f*y+d*b)*S,t[8]=(r*M-a*B+h*E)*S,t[9]=(i*B-n*M-o*E)*S,t[10]=(g*I-p*y+A*v)*S,t[11]=(u*y-c*I-d*v)*S,t[12]=(a*T-r*C-l*E)*S,t[13]=(n*C-i*T+s*E)*S,t[14]=(p*b-g*w-m*v)*S,t[15]=(c*w-u*b+f*v)*S,t):null}function d(t,e,n){var i=n[0],s=n[1],o=n[2];return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t[4]=e[4]*s,t[5]=e[5]*s,t[6]=e[6]*s,t[7]=e[7]*s,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function g(t,e,n,i){var s,o,r,a,l,h,c,u,f,d,g,p,m,A,v,b,y,w,I,x,E,T,B,C,M=i[0],P=i[1],S=i[2],R=Math.hypot(M,P,S);return R<1e-6?null:(M*=R=1/R,P*=R,S*=R,s=Math.sin(n),r=1-(o=Math.cos(n)),a=e[0],l=e[1],h=e[2],c=e[3],u=e[4],f=e[5],d=e[6],g=e[7],p=e[8],m=e[9],A=e[10],v=e[11],b=M*M*r+o,y=P*M*r+S*s,w=S*M*r-P*s,I=M*P*r-S*s,x=P*P*r+o,E=S*P*r+M*s,T=M*S*r+P*s,B=P*S*r-M*s,C=S*S*r+o,t[0]=a*b+u*y+p*w,t[1]=l*b+f*y+m*w,t[2]=h*b+d*y+A*w,t[3]=c*b+g*y+v*w,t[4]=a*I+u*x+p*E,t[5]=l*I+f*x+m*E,t[6]=h*I+d*x+A*E,t[7]=c*I+g*x+v*E,t[8]=a*T+u*B+p*C,t[9]=l*T+f*B+m*C,t[10]=h*T+d*B+A*C,t[11]=c*T+g*B+v*C,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function p(t,e,n,i){var s=new a(4);return s[0]=t,s[1]=e,s[2]=n,s[3]=i,s}function m(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3];return t[0]=n[0]*i+n[4]*s+n[8]*o+n[12]*r,t[1]=n[1]*i+n[5]*s+n[9]*o+n[13]*r,t[2]=n[2]*i+n[6]*s+n[10]*o+n[14]*r,t[3]=n[3]*i+n[7]*s+n[11]*o+n[15]*r,t}Math.random,Math.PI,Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var A;function v(t,e,n){var i=new a(3);return i[0]=t,i[1]=e,i[2]=n,i}function b(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t[2]=e[2]-n[2],t}function y(t,e){var n=e[0],i=e[1],s=e[2],o=n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}A=new a(4),a!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0,A[3]=0),function(){var t=new a(3);a!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0)}();var w="#version 300 es\n#line 283\nprecision highp int;\nprecision highp float;\nin vec3 vPos;\nout vec2 TexCoord;\nvoid main() {\n TexCoord = vPos.xy;\n gl_Position = vec4( (vPos.xy-vec2(0.5,0.5)) * 2.0, 0.0, 1.0);\n}",I="#version 300 es\nuniform highp usampler3D intensityVol;\n",x="#line 309\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform float layer;\nuniform float numLayers;\nuniform float scl_slope;\nuniform float scl_inter;\nuniform float cal_max;\nuniform float cal_min;\nuniform highp sampler2D colormap;\nuniform lowp sampler3D blend3D;\nuniform float opacity;\nuniform mat4 mtx;\nvoid main(void) {\n vec4 vx = vec4(TexCoord.xy, coordZ, 1.0) * mtx;\n float f = (scl_slope * float(texture(intensityVol, vx.xyz).r)) + scl_inter;\n float r = max(0.00001, abs(cal_max - cal_min));\n float mn = min(cal_min, cal_max);\n f = mix(0.0, 1.0, (f - mn) / r);\n //float y = 1.0 / numLayers;\n //y = ((layer + 0.5) * y);\n //https://stackoverflow.com/questions/5879403/opengl-texture-coordinates-in-pixel-space\n float y = (2.0 * layer + 1.0)/(2.0 * numLayers);\n FragColor = texture(colormap, vec2(f, y)).rgba;\n FragColor.a *= opacity;\n if (layer < 2.0) return;\n vec2 texXY = TexCoord.xy*0.5 +vec2(0.5,0.5);\n vec4 prevColor = texture(blend3D, vec3(texXY, coordZ));\n // https://en.wikipedia.org/wiki/Alpha_compositing\n float aout = FragColor.a + (1.0 - FragColor.a) * prevColor.a;\n if (aout <= 0.0) return;\n FragColor.rgb = ((FragColor.rgb * FragColor.a) + (prevColor.rgb * prevColor.a * (1.0 - FragColor.a))) / aout;\n FragColor.a = aout;\n}",E="#version 300 es\nlayout(location=0) in vec3 pos;\nuniform mat4 mvpMtx;\nvoid main(void) {\n\tgl_Position = mvpMtx * vec4(2.0 * (pos.xyz - 0.5), 1.0);\n}",T="#version 300 es\nprecision highp int;\nprecision highp float;\nuniform vec4 surfaceColor;\nout vec4 color;\nvoid main() {\n\tcolor = surfaceColor;\n}";const B=JSON.parse('{"IY":{"k6":2,"dp":59.65625,"bf":512,"Cb":256},"pE":[{"unicode":32,"advance":0.24755859375},{"unicode":33,"advance":0.25732421875,"planeBounds":{"left":0.056159633438645884,"bottom":-0.02437761405677056,"right":0.20702396031135412,"top":0.7299440203067705},"atlasBounds":{"left":488.5,"bottom":145.5,"right":497.5,"top":190.5}},{"unicode":34,"advance":0.31982421875,"planeBounds":{"left":0.049409125974004715,"bottom":0.48691155587022,"right":0.2840869677759953,"top":0.77187750662978},"atlasBounds":{"left":486.5,"bottom":213.5,"right":500.5,"top":230.5}},{"unicode":35,"advance":0.61572265625,"planeBounds":{"left":0.037219103997511785,"bottom":-0.02169206718177056,"right":0.6239137085024882,"top":0.7326295671817705},"atlasBounds":{"left":66.5,"bottom":51.5,"right":101.5,"top":96.5}},{"unicode":36,"advance":0.5615234375,"planeBounds":{"left":0.02956531458715296,"bottom":-0.12381369908983761,"right":0.532446404162847,"top":0.8484230740898376},"atlasBounds":{"left":109.5,"bottom":197.5,"right":139.5,"top":255.5}},{"unicode":37,"advance":0.732421875,"planeBounds":{"left":0.026481776289942378,"bottom":-0.030073418674698794,"right":0.7137525987100576,"top":0.7410109186746988},"atlasBounds":{"left":88.5,"bottom":144.5,"right":129.5,"top":190.5}},{"unicode":38,"advance":0.62158203125,"planeBounds":{"left":0.03225572125458355,"bottom":-0.030073418674698794,"right":0.6357130287454165,"top":0.7410109186746988},"atlasBounds":{"left":130.5,"bottom":144.5,"right":166.5,"top":190.5}},{"unicode":39,"advance":0.17431640625,"planeBounds":{"left":0.028244602049502358,"bottom":0.49895501673814824,"right":0.14558352295049765,"top":0.7671582645118518},"atlasBounds":{"left":498.5,"bottom":62.5,"right":505.5,"top":78.5}},{"unicode":40,"advance":0.341796875,"planeBounds":{"left":0.042983329377291775,"bottom":-0.250029542422407,"right":0.34471198312270823,"top":0.8227834486724069},"atlasBounds":{"left":0.5,"bottom":191.5,"right":18.5,"top":255.5}},{"unicode":41,"advance":0.34765625,"planeBounds":{"left":-0.003159248747708225,"bottom":-0.250029542422407,"right":0.29856940499770823,"top":0.8227834486724069},"atlasBounds":{"left":19.5,"bottom":191.5,"right":37.5,"top":255.5}},{"unicode":42,"advance":0.4306640625,"planeBounds":{"left":-0.011208599684062338,"bottom":0.27785390031593765,"right":0.44138438093406235,"top":0.7304468809340623},"atlasBounds":{"left":449.5,"bottom":23.5,"right":476.5,"top":50.5}},{"unicode":43,"advance":0.56689453125,"planeBounds":{"left":0.01353503347629649,"bottom":0.053493525733368255,"right":0.5499415290237035,"top":0.6066627242666317},"atlasBounds":{"left":361.5,"bottom":17.5,"right":393.5,"top":50.5}},{"unicode":44,"advance":0.1962890625,"planeBounds":{"left":-0.009919475797210583,"bottom":-0.15981695975478,"right":0.1744702570472106,"top":0.12514899100478},"atlasBounds":{"left":498.5,"bottom":79.5,"right":509.5,"top":96.5}},{"unicode":45,"advance":0.27587890625,"planeBounds":{"left":-0.00527594412977999,"bottom":0.24333249267450235,"right":0.27969000662978,"top":0.36067141357549765},"atlasBounds":{"left":52.5,"bottom":7.5,"right":69.5,"top":14.5}},{"unicode":46,"advance":0.26318359375,"planeBounds":{"left":0.051032680313645884,"bottom":-0.027092319686354116,"right":0.20189700718635412,"top":0.12377200718635412},"atlasBounds":{"left":501.5,"bottom":221.5,"right":510.5,"top":230.5}},{"unicode":47,"advance":0.412109375,"planeBounds":{"left":-0.013733006073205867,"bottom":-0.08573505127848349,"right":0.4053345685732059,"top":0.7356373950284835},"atlasBounds":{"left":252.5,"bottom":206.5,"right":277.5,"top":255.5}},{"unicode":48,"advance":0.5615234375,"planeBounds":{"left":0.037458384830081196,"bottom":-0.030073418674698794,"right":0.5235767714199189,"top":0.7410109186746988},"atlasBounds":{"left":167.5,"bottom":144.5,"right":196.5,"top":190.5}},{"unicode":49,"advance":0.5615234375,"planeBounds":{"left":0.06023674350936354,"bottom":-0.01998308280677056,"right":0.37872810024063647,"top":0.7343385515567705},"atlasBounds":{"left":488.5,"bottom":97.5,"right":507.5,"top":142.5}},{"unicode":50,"advance":0.5615234375,"planeBounds":{"left":0.025334353719224725,"bottom":-0.01680925468177056,"right":0.5449781462807752,"top":0.7375123796817705},"atlasBounds":{"left":278.5,"bottom":51.5,"right":309.5,"top":96.5}},{"unicode":51,"advance":0.5615234375,"planeBounds":{"left":0.028181041080081196,"bottom":-0.030073418674698794,"right":0.5142994276699189,"top":0.7410109186746988},"atlasBounds":{"left":197.5,"bottom":144.5,"right":226.5,"top":190.5}},{"unicode":52,"advance":0.5615234375,"planeBounds":{"left":0.005886103858368255,"bottom":-0.02169206718177056,"right":0.5590553023916317,"top":0.7326295671817705},"atlasBounds":{"left":310.5,"bottom":51.5,"right":343.5,"top":96.5}},{"unicode":53,"advance":0.5615234375,"planeBounds":{"left":0.055524791080081196,"bottom":-0.02657487968177056,"right":0.5416431776699189,"top":0.7277467546817705},"atlasBounds":{"left":344.5,"bottom":51.5,"right":373.5,"top":96.5}},{"unicode":54,"advance":0.5615234375,"planeBounds":{"left":0.046003306705081196,"bottom":-0.034712090549698794,"right":0.5321216932949189,"top":0.7363722467996988},"atlasBounds":{"left":227.5,"bottom":144.5,"right":256.5,"top":190.5}},{"unicode":55,"advance":0.5615234375,"planeBounds":{"left":0.018010134969224725,"bottom":-0.02169206718177056,"right":0.5376539275307752,"top":0.7326295671817705},"atlasBounds":{"left":374.5,"bottom":51.5,"right":405.5,"top":96.5}},{"unicode":56,"advance":0.5615234375,"planeBounds":{"left":0.037702525455081196,"bottom":-0.030073418674698794,"right":0.5238209120449189,"top":0.7410109186746988},"atlasBounds":{"left":257.5,"bottom":144.5,"right":286.5,"top":190.5}},{"unicode":57,"advance":0.5615234375,"planeBounds":{"left":0.029401744205081196,"bottom":-0.025434746799698794,"right":0.5155201307949189,"top":0.7456495905496988},"atlasBounds":{"left":287.5,"bottom":144.5,"right":316.5,"top":190.5}},{"unicode":58,"advance":0.2421875,"planeBounds":{"left":0.046394008438645884,"bottom":-0.029431286627488215,"right":0.19725833531135412,"top":0.5572633178774882},"atlasBounds":{"left":439.5,"bottom":61.5,"right":448.5,"top":96.5}},{"unicode":59,"advance":0.21142578125,"planeBounds":{"left":0.001066852327789419,"bottom":-0.16459733294591408,"right":0.1854565851722106,"top":0.556198895445914},"atlasBounds":{"left":406.5,"bottom":53.5,"right":417.5,"top":96.5}},{"unicode":60,"advance":0.50830078125,"planeBounds":{"left":0.016948142433865897,"bottom":0.0726146348300812,"right":0.4527784200661341,"top":0.5587330214199189},"atlasBounds":{"left":394.5,"bottom":21.5,"right":420.5,"top":50.5}},{"unicode":61,"advance":0.548828125,"planeBounds":{"left":0.051535540940937666,"bottom":0.17620354038436353,"right":0.5041285215590624,"top":0.49469489711563647},"atlasBounds":{"left":477.5,"bottom":31.5,"right":504.5,"top":50.5}},{"unicode":62,"advance":0.5224609375,"planeBounds":{"left":0.047629290940937666,"bottom":0.0731029160800812,"right":0.5002222715590624,"top":0.5592213026699189},"atlasBounds":{"left":421.5,"bottom":21.5,"right":448.5,"top":50.5}},{"unicode":63,"advance":0.47216796875,"planeBounds":{"left":0.016704001808865897,"bottom":-0.027876153049698794,"right":0.4525342794411341,"top":0.7432081842996988},"atlasBounds":{"left":317.5,"bottom":144.5,"right":343.5,"top":190.5}},{"unicode":64,"advance":0.89794921875,"planeBounds":{"left":0.034064457306783605,"bottom":-0.23896750384690937,"right":0.872199606599607,"top":0.7165065663469093},"atlasBounds":{"left":155.5,"bottom":198.5,"right":205.5,"top":255.5}},{"unicode":65,"advance":0.65234375,"planeBounds":{"left":-0.008838044092129387,"bottom":-0.02169206718177056,"right":0.6616700753421294,"top":0.7326295671817705},"atlasBounds":{"left":237.5,"bottom":51.5,"right":277.5,"top":96.5}},{"unicode":66,"advance":0.62255859375,"planeBounds":{"left":0.06464099434422473,"bottom":-0.02169206718177056,"right":0.5842847869057752,"top":0.7326295671817705},"atlasBounds":{"left":205.5,"bottom":51.5,"right":236.5,"top":96.5}},{"unicode":67,"advance":0.65087890625,"planeBounds":{"left":0.038439807122511785,"bottom":-0.030073418674698794,"right":0.6251344116274882,"top":0.7410109186746988},"atlasBounds":{"left":344.5,"bottom":144.5,"right":379.5,"top":190.5}},{"unicode":68,"advance":0.65576171875,"planeBounds":{"left":0.06301501010836826,"bottom":-0.02169206718177056,"right":0.6161842086416317,"top":0.7326295671817705},"atlasBounds":{"left":162.5,"bottom":51.5,"right":195.5,"top":96.5}},{"unicode":69,"advance":0.568359375,"planeBounds":{"left":0.0652904160800812,"bottom":-0.02169206718177056,"right":0.5514088026699189,"top":0.7326295671817705},"atlasBounds":{"left":132.5,"bottom":51.5,"right":161.5,"top":96.5}},{"unicode":70,"advance":0.552734375,"planeBounds":{"left":0.059675181705081196,"bottom":-0.02169206718177056,"right":0.5457935682949189,"top":0.7326295671817705},"atlasBounds":{"left":102.5,"bottom":51.5,"right":131.5,"top":96.5}},{"unicode":71,"advance":0.68115234375,"planeBounds":{"left":0.040148791497511785,"bottom":-0.030073418674698794,"right":0.6268433960024882,"top":0.7410109186746988},"atlasBounds":{"left":380.5,"bottom":144.5,"right":415.5,"top":190.5}},{"unicode":72,"advance":0.712890625,"planeBounds":{"left":0.062365588372511785,"bottom":-0.02169206718177056,"right":0.6490601928774882,"top":0.7326295671817705},"atlasBounds":{"left":30.5,"bottom":51.5,"right":65.5,"top":96.5}},{"unicode":73,"advance":0.27197265625,"planeBounds":{"left":0.06917965680657412,"bottom":-0.02169206718177056,"right":0.20328128069342588,"top":0.7326295671817705},"atlasBounds":{"left":196.5,"bottom":51.5,"right":204.5,"top":96.5}},{"unicode":74,"advance":0.5517578125,"planeBounds":{"left":0.007184947330081194,"bottom":-0.02657487968177056,"right":0.4933033339199188,"top":0.7277467546817705},"atlasBounds":{"left":0.5,"bottom":51.5,"right":29.5,"top":96.5}},{"unicode":75,"advance":0.626953125,"planeBounds":{"left":0.061633166497511785,"bottom":-0.02169206718177056,"right":0.6483277710024882,"top":0.7326295671817705},"atlasBounds":{"left":452.5,"bottom":97.5,"right":487.5,"top":142.5}},{"unicode":76,"advance":0.5380859375,"planeBounds":{"left":0.06341786132300943,"bottom":-0.02169206718177056,"right":0.5327735449269906,"top":0.7326295671817705},"atlasBounds":{"left":423.5,"bottom":97.5,"right":451.5,"top":142.5}},{"unicode":77,"advance":0.873046875,"planeBounds":{"left":0.05911847969322944,"bottom":-0.02169206718177056,"right":0.8134401140567705,"top":0.7326295671817705},"atlasBounds":{"left":377.5,"bottom":97.5,"right":422.5,"top":142.5}},{"unicode":78,"advance":0.712890625,"planeBounds":{"left":0.062365588372511785,"bottom":-0.02169206718177056,"right":0.6490601928774882,"top":0.7326295671817705},"atlasBounds":{"left":341.5,"bottom":97.5,"right":376.5,"top":142.5}},{"unicode":79,"advance":0.6875,"planeBounds":{"left":0.033395854136655315,"bottom":-0.030073418674698794,"right":0.6536158646133446,"top":0.7410109186746988},"atlasBounds":{"left":416.5,"bottom":144.5,"right":453.5,"top":190.5}},{"unicode":80,"advance":0.630859375,"planeBounds":{"left":0.061550166358368255,"bottom":-0.02169206718177056,"right":0.6147193648916317,"top":0.7326295671817705},"atlasBounds":{"left":273.5,"bottom":97.5,"right":306.5,"top":142.5}},{"unicode":81,"advance":0.6875,"planeBounds":{"left":0.030466166636655315,"bottom":-0.14391866037519643,"right":0.6506861771133446,"top":0.7445045978751964},"atlasBounds":{"left":214.5,"bottom":202.5,"right":251.5,"top":255.5}},{"unicode":82,"advance":0.61572265625,"planeBounds":{"left":0.06350329135836826,"bottom":-0.02169206718177056,"right":0.6166724898916317,"top":0.7326295671817705},"atlasBounds":{"left":186.5,"bottom":97.5,"right":219.5,"top":142.5}},{"unicode":83,"advance":0.59326171875,"planeBounds":{"left":0.020778681983368255,"bottom":-0.030073418674698794,"right":0.5739478805166317,"top":0.7410109186746988},"atlasBounds":{"left":454.5,"bottom":144.5,"right":487.5,"top":190.5}},{"unicode":84,"advance":0.5966796875,"planeBounds":{"left":0.005480822747511787,"bottom":-0.02169206718177056,"right":0.5921754272524882,"top":0.7326295671817705},"atlasBounds":{"left":112.5,"bottom":97.5,"right":147.5,"top":142.5}},{"unicode":85,"advance":0.6484375,"planeBounds":{"left":0.049098994483368255,"bottom":-0.02657487968177056,"right":0.6022681930166317,"top":0.7277467546817705},"atlasBounds":{"left":78.5,"bottom":97.5,"right":111.5,"top":142.5}},{"unicode":86,"advance":0.63623046875,"planeBounds":{"left":-0.008269192599201152,"bottom":-0.02169206718177056,"right":0.6454762238492011,"top":0.7326295671817705},"atlasBounds":{"left":38.5,"bottom":97.5,"right":77.5,"top":142.5}},{"unicode":87,"advance":0.88720703125,"planeBounds":{"left":0.011923628617731797,"bottom":-0.02169206718177056,"right":0.8835841838822682,"top":0.7326295671817705},"atlasBounds":{"left":220.5,"bottom":97.5,"right":272.5,"top":142.5}},{"unicode":88,"advance":0.626953125,"planeBounds":{"left":0.004098979136655316,"bottom":-0.02169206718177056,"right":0.6243189896133446,"top":0.7326295671817705},"atlasBounds":{"left":0.5,"bottom":97.5,"right":37.5,"top":142.5}},{"unicode":89,"advance":0.6005859375,"planeBounds":{"left":-0.010793598988344685,"bottom":-0.02169206718177056,"right":0.6094264114883446,"top":0.7326295671817705},"atlasBounds":{"left":148.5,"bottom":97.5,"right":185.5,"top":142.5}},{"unicode":90,"advance":0.5986328125,"planeBounds":{"left":0.024196650733368255,"bottom":-0.02169206718177056,"right":0.5773658492666317,"top":0.7326295671817705},"atlasBounds":{"left":307.5,"bottom":97.5,"right":340.5,"top":142.5}},{"unicode":91,"advance":0.26513671875,"planeBounds":{"left":0.05437250871693295,"bottom":-0.17280296457569408,"right":0.27228764753306706,"top":0.8329592145756942},"atlasBounds":{"left":59.5,"bottom":195.5,"right":72.5,"top":255.5}},{"unicode":92,"advance":0.41015625,"planeBounds":{"left":0.0014037126767941326,"bottom":-0.08573505127848349,"right":0.4204712873232059,"top":0.7356373950284835},"atlasBounds":{"left":278.5,"bottom":206.5,"right":303.5,"top":255.5}},{"unicode":93,"advance":0.26513671875,"planeBounds":{"left":-0.020659233400995285,"bottom":-0.17280296457569408,"right":0.2140186084009953,"top":0.8329592145756942},"atlasBounds":{"left":94.5,"bottom":195.5,"right":108.5,"top":255.5}},{"unicode":94,"advance":0.41796875,"planeBounds":{"left":0.006855376669722368,"bottom":0.33229482979472236,"right":0.40916024833027764,"top":0.7345997014552776},"atlasBounds":{"left":486.5,"bottom":231.5,"right":510.5,"top":255.5}},{"unicode":95,"advance":0.451171875,"planeBounds":{"left":-0.017473255794918804,"bottom":-0.09553469482549765,"right":0.4686451307949188,"top":0.021804226075497646},"atlasBounds":{"left":70.5,"bottom":7.5,"right":99.5,"top":14.5}},{"unicode":96,"advance":0.30908203125,"planeBounds":{"left":0.00391839948107648,"bottom":0.5860277898277895,"right":0.2553589442689235,"top":0.7704175226722105},"atlasBounds":{"left":36.5,"bottom":3.5,"right":51.5,"top":14.5}},{"unicode":97,"advance":0.5439453125,"planeBounds":{"left":0.028181041080081196,"bottom":-0.029187146002488215,"right":0.5142994276699189,"top":0.5575074585024882},"atlasBounds":{"left":30.5,"bottom":15.5,"right":59.5,"top":50.5}},{"unicode":98,"advance":0.56103515625,"planeBounds":{"left":0.048932994205081196,"bottom":-0.032187684160555265,"right":0.5350513807949189,"top":0.7724220591605553},"atlasBounds":{"left":304.5,"bottom":207.5,"right":333.5,"top":255.5}},{"unicode":99,"advance":0.5234375,"planeBounds":{"left":0.024518931705081196,"bottom":-0.029187146002488215,"right":0.5106373182949189,"top":0.5575074585024882},"atlasBounds":{"left":0.5,"bottom":15.5,"right":29.5,"top":50.5}},{"unicode":100,"advance":0.56396484375,"planeBounds":{"left":0.026227916080081196,"bottom":-0.032187684160555265,"right":0.5123463026699189,"top":0.7724220591605553},"atlasBounds":{"left":334.5,"bottom":207.5,"right":363.5,"top":255.5}},{"unicode":101,"advance":0.52978515625,"planeBounds":{"left":0.026472056705081196,"bottom":-0.029187146002488215,"right":0.5125904432949189,"top":0.5575074585024882},"atlasBounds":{"left":468.5,"bottom":61.5,"right":497.5,"top":96.5}},{"unicode":102,"advance":0.34716796875,"planeBounds":{"left":0.004575110905578838,"bottom":-0.022177918535555265,"right":0.3733545765944212,"top":0.7824318247855553},"atlasBounds":{"left":364.5,"bottom":207.5,"right":386.5,"top":255.5}},{"unicode":103,"advance":0.56103515625,"planeBounds":{"left":0.026960337955081196,"bottom":-0.22888445766762702,"right":0.5130787245449189,"top":0.558962582667627},"atlasBounds":{"left":28.5,"bottom":143.5,"right":57.5,"top":190.5}},{"unicode":104,"advance":0.55078125,"planeBounds":{"left":0.049826556565937666,"bottom":-0.01892352016762703,"right":0.5024195371840624,"top":0.768923520167627},"atlasBounds":{"left":0.5,"bottom":143.5,"right":27.5,"top":190.5}},{"unicode":105,"advance":0.24267578125,"planeBounds":{"left":0.046882289688645884,"bottom":-0.01680925468177056,"right":0.19774661656135412,"top":0.7375123796817705},"atlasBounds":{"left":498.5,"bottom":145.5,"right":507.5,"top":190.5}},{"unicode":106,"advance":0.23876953125,"planeBounds":{"left":-0.048979545900995285,"bottom":-0.2324562772148376,"right":0.1856982959009953,"top":0.7397804959648376},"atlasBounds":{"left":140.5,"bottom":197.5,"right":154.5,"top":255.5}},{"unicode":107,"advance":0.5068359375,"planeBounds":{"left":0.044294322330081196,"bottom":-0.01892352016762703,"right":0.5304127089199189,"top":0.768923520167627},"atlasBounds":{"left":58.5,"bottom":143.5,"right":87.5,"top":190.5}},{"unicode":108,"advance":0.24267578125,"planeBounds":{"left":0.05428707868157412,"bottom":-0.01892352016762703,"right":0.18838870256842588,"top":0.768923520167627},"atlasBounds":{"left":477.5,"bottom":208.5,"right":485.5,"top":255.5}},{"unicode":109,"advance":0.87646484375,"planeBounds":{"left":0.04430890170737297,"bottom":-0.024304333502488215,"right":0.832155942042627,"top":0.5623902710024882},"atlasBounds":{"left":116.5,"bottom":15.5,"right":163.5,"top":50.5}},{"unicode":110,"advance":0.5517578125,"planeBounds":{"left":0.049826556565937666,"bottom":-0.024304333502488215,"right":0.5024195371840624,"top":0.5623902710024882},"atlasBounds":{"left":60.5,"bottom":15.5,"right":87.5,"top":50.5}},{"unicode":111,"advance":0.5703125,"planeBounds":{"left":0.025090213094224725,"bottom":-0.029187146002488215,"right":0.5447340056557752,"top":0.5575074585024882},"atlasBounds":{"left":193.5,"bottom":15.5,"right":224.5,"top":50.5}},{"unicode":112,"advance":0.56103515625,"planeBounds":{"left":0.048444712955081196,"bottom":-0.22644305141762702,"right":0.5345630995449189,"top":0.561403988917627},"atlasBounds":{"left":447.5,"bottom":208.5,"right":476.5,"top":255.5}},{"unicode":113,"advance":0.568359375,"planeBounds":{"left":0.025983775455081196,"bottom":-0.22644305141762702,"right":0.5121021620449189,"top":0.561403988917627},"atlasBounds":{"left":417.5,"bottom":208.5,"right":446.5,"top":255.5}},{"unicode":114,"advance":0.33837890625,"planeBounds":{"left":0.045180595002291775,"bottom":-0.024304333502488215,"right":0.34690924874770823,"top":0.5623902710024882},"atlasBounds":{"left":449.5,"bottom":61.5,"right":467.5,"top":96.5}},{"unicode":115,"advance":0.515625,"planeBounds":{"left":0.021669814448009427,"bottom":-0.029187146002488215,"right":0.4910254980519906,"top":0.5575074585024882},"atlasBounds":{"left":164.5,"bottom":15.5,"right":192.5,"top":50.5}},{"unicode":116,"advance":0.32666015625,"planeBounds":{"left":-0.019433670483564695,"bottom":-0.02877457520298586,"right":0.3158203892335647,"top":0.6752589502029859},"atlasBounds":{"left":418.5,"bottom":54.5,"right":438.5,"top":96.5}},{"unicode":117,"advance":0.55126953125,"planeBounds":{"left":0.048117572190937666,"bottom":-0.034069958502488215,"right":0.5007105528090624,"top":0.5526246460024882},"atlasBounds":{"left":88.5,"bottom":15.5,"right":115.5,"top":50.5}},{"unicode":118,"advance":0.484375,"planeBounds":{"left":-0.002092396419918806,"bottom":-0.02080579450955998,"right":0.4840259901699188,"top":0.54912610700956},"atlasBounds":{"left":331.5,"bottom":16.5,"right":360.5,"top":50.5}},{"unicode":119,"advance":0.75146484375,"planeBounds":{"left":-0.002649098431770561,"bottom":-0.02080579450955998,"right":0.7516725359317705,"top":0.54912610700956},"atlasBounds":{"left":225.5,"bottom":16.5,"right":270.5,"top":50.5}},{"unicode":120,"advance":0.49560546875,"planeBounds":{"left":-0.0046143729128470395,"bottom":-0.02080579450955998,"right":0.498266716662847,"top":0.54912610700956},"atlasBounds":{"left":300.5,"bottom":16.5,"right":330.5,"top":50.5}},{"unicode":121,"advance":0.47314453125,"planeBounds":{"left":-0.007219349544918806,"bottom":-0.23645281704262702,"right":0.4788990370449188,"top":0.551394223292627},"atlasBounds":{"left":387.5,"bottom":208.5,"right":416.5,"top":255.5}},{"unicode":122,"advance":0.49560546875,"planeBounds":{"left":0.018007705073009427,"bottom":-0.02080579450955998,"right":0.4873633886769906,"top":0.54912610700956},"atlasBounds":{"left":271.5,"bottom":16.5,"right":299.5,"top":50.5}},{"unicode":123,"advance":0.33837890625,"planeBounds":{"left":0.011572188891435306,"bottom":-0.20234398020069408,"right":0.3468262486085647,"top":0.8034181989506942},"atlasBounds":{"left":73.5,"bottom":195.5,"right":93.5,"top":255.5}},{"unicode":124,"advance":0.24365234375,"planeBounds":{"left":0.06315671142450235,"bottom":-0.15466084787519643,"right":0.18049563232549765,"top":0.7337624103751964},"atlasBounds":{"left":206.5,"bottom":202.5,"right":213.5,"top":255.5}},{"unicode":125,"advance":0.33837890625,"planeBounds":{"left":-0.010156326733564695,"bottom":-0.20234398020069408,"right":0.3250977329835647,"top":0.8034181989506942},"atlasBounds":{"left":38.5,"bottom":195.5,"right":58.5,"top":255.5}},{"unicode":126,"advance":0.68017578125,"planeBounds":{"left":0.046984728997511785,"bottom":0.1766063915990047,"right":0.6336793335024882,"top":0.4112842334009953},"atlasBounds":{"left":0.5,"bottom":0.5,"right":35.5,"top":14.5}}]}'),C=JSON.parse('{"min":0,"max":0,"R":[0,128,255],"G":[0,0,0],"B":[0,0,0],"A":[0,64,128],"I":[0,128,255]}'),M=JSON.parse('{"min":0,"max":0,"R":[0,0,0],"G":[0,128,255],"B":[0,0,0],"A":[0,64,128],"I":[0,128,255]}'),P=JSON.parse('{"min":0,"max":0,"R":[0,0,0],"G":[0,0,0],"B":[0,128,255],"A":[0,64,128],"I":[0,128,255]}'),S=JSON.parse('{"min":0,"max":0,"R":[0,255],"G":[0,255],"B":[0,255],"A":[0,128],"I":[0,255]}'),R=JSON.parse('{"min":0,"max":0,"R":[0,0,0],"G":[0,128,255],"B":[255,196,128],"A":[0,64,128],"I":[0,128,255]}'),D=JSON.parse('{"min":0,"max":0,"R":[0,120,237,240],"G":[0,28,105,249],"B":[4,109,37,33],"A":[0,56,80,88],"I":[0,64,192,255]}'),U=JSON.parse('{"min":0,"max":0,"R":[13,156,237,240],"G":[8,23,121,249],"B":[135,158,83,33],"A":[0,56,80,88],"I":[0,64,192,255]}'),F=JSON.parse('{"min":0,"max":0,"R":[68,49,53,253],"G":[1,104,183,231],"B":[84,142,121,37],"A":[0,56,80,88],"I":[0,64,192,255]}'),N=JSON.parse('{"min":0,"max":0,"R":[255,255,255],"G":[127,196,254],"B":[0,0,0],"A":[0,64,128],"I":[0,128,255]}'),k=JSON.parse('{"min":-10,"max":110,"R":[0,127,255],"G":[0,127,255],"B":[0,127,255],"A":[0,48,128],"I":[0,124,255]}');var G=function(t,e){return(G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function z(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}G(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function L(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],i=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&i>=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function O(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var i,s,o=n.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(i=o.next()).done;)r.push(i.value)}catch(t){s={error:t}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}return r}function Y(t,e){for(var n=0,i=e.length,s=t.length;n<i;n++,s++)t[s]=e[n];return t}function H(t){return"function"==typeof t}function Z(t){var e=t((function(t){Error.call(t),t.stack=(new Error).stack}));return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}Object.create,Object.create;var Q=Z((function(t){return function(e){t(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(t,e){return e+1+") "+t.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e}}));function j(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var X=function(){function t(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}var e;return t.prototype.unsubscribe=function(){var t,e,n,i,s;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var r=L(o),a=r.next();!a.done;a=r.next())a.value.remove(this)}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}else o.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(t){s=t instanceof Q?t.errors:[t]}var h=this._teardowns;if(h){this._teardowns=null;try{for(var c=L(h),u=c.next();!u.done;u=c.next()){var f=u.value;try{J(f)}catch(t){s=null!=s?s:[],t instanceof Q?s=Y(Y([],O(s)),O(t.errors)):s.push(t)}}}catch(t){n={error:t}}finally{try{u&&!u.done&&(i=c.return)&&i.call(c)}finally{if(n)throw n.error}}}if(s)throw new Q(s)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)J(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&void 0!==n?n:[]).push(e)}},t.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},t.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},t.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&j(e,t)},t.prototype.remove=function(e){var n=this._teardowns;n&&j(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=((e=new t).closed=!0,e),t}(),W=X.EMPTY;function V(t){return t instanceof X||t&&"closed"in t&&H(t.remove)&&H(t.add)&&H(t.unsubscribe)}function J(t){H(t)?t():t.unsubscribe()}var q=null,K=null,_=void 0,$=!1,tt=!1,et={setTimeout:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=et.delegate;return((null==n?void 0:n.setTimeout)||setTimeout).apply(void 0,Y([],O(t)))},clearTimeout:function(t){var e=et.delegate;return((null==e?void 0:e.clearTimeout)||clearTimeout)(t)},delegate:void 0};function nt(t){et.setTimeout((function(){if(!q)throw t;q(t)}))}function it(){}var st=ot("C",void 0,void 0);function ot(t,e,n){return{kind:t,value:e,error:n}}var rt=null;function at(t){if($){var e=!rt;if(e&&(rt={errorThrown:!1,error:null}),t(),e){var n=rt,i=n.errorThrown,s=n.error;if(rt=null,i)throw s}}else t()}function lt(t){$&&rt&&(rt.errorThrown=!0,rt.error=t)}var ht=function(t){function e(e){var n=t.call(this)||this;return n.isStopped=!1,e?(n.destination=e,V(e)&&e.add(n)):n.destination=gt,n}return z(e,t),e.create=function(t,e,n){return new ct(t,e,n)},e.prototype.next=function(t){this.isStopped?dt(function(t){return ot("N",t,void 0)}(t),this):this._next(t)},e.prototype.error=function(t){this.isStopped?dt(ot("E",void 0,t),this):(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped?dt(st,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(X),ct=function(t){function e(e,n,i){var s,o=t.call(this)||this;if(H(e))s=e;else if(e){var r;s=e.next,n=e.error,i=e.complete,o&&tt?(r=Object.create(e)).unsubscribe=function(){return o.unsubscribe()}:r=e,s=null==s?void 0:s.bind(r),n=null==n?void 0:n.bind(r),i=null==i?void 0:i.bind(r)}return o.destination={next:s?ut(s):it,error:ut(null!=n?n:ft),complete:i?ut(i):it},o}return z(e,t),e}(ht);function ut(t,e){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];try{t.apply(void 0,Y([],O(e)))}catch(t){$?lt(t):nt(t)}}}function ft(t){throw t}function dt(t,e){var n=K;n&&et.setTimeout((function(){return n(t,e)}))}var gt={closed:!0,next:it,error:ft,complete:it},pt="function"==typeof Symbol&&Symbol.observable||"@@observable";function mt(t){return t}function At(t){return 0===t.length?mt:1===t.length?t[0]:function(e){return t.reduce((function(t,e){return e(t)}),e)}}var vt=function(){function t(t){t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var i,s=this,o=(i=t)&&i instanceof ht||function(t){return t&&H(t.next)&&H(t.error)&&H(t.complete)}(i)&&V(i)?t:new ct(t,e,n);return at((function(){var t=s,e=t.operator,n=t.source;o.add(e?e.call(o,n):n?s._subscribe(o):s._trySubscribe(o))})),o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=bt(e))((function(e,i){var s;s=n.subscribe((function(e){try{t(e)}catch(t){i(t),null==s||s.unsubscribe()}}),i,e)}))},t.prototype._subscribe=function(t){var e;return null===(e=this.source)||void 0===e?void 0:e.subscribe(t)},t.prototype[pt]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return At(t)(this)},t.prototype.toPromise=function(t){var e=this;return new(t=bt(t))((function(t,n){var i;e.subscribe((function(t){return i=t}),(function(t){return n(t)}),(function(){return t(i)}))}))},t.create=function(e){return new t(e)},t}();function bt(t){var e;return null!==(e=null!=t?t:_)&&void 0!==e?e:Promise}var yt=Z((function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),wt=function(t){function e(){var e=t.call(this)||this;return e.closed=!1,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return z(e,t),e.prototype.lift=function(t){var e=new It(this,this);return e.operator=t,e},e.prototype._throwIfClosed=function(){if(this.closed)throw new yt},e.prototype.next=function(t){var e=this;at((function(){var n,i;if(e._throwIfClosed(),!e.isStopped){var s=e.observers.slice();try{for(var o=L(s),r=o.next();!r.done;r=o.next())r.value.next(t)}catch(t){n={error:t}}finally{try{r&&!r.done&&(i=o.return)&&i.call(o)}finally{if(n)throw n.error}}}}))},e.prototype.error=function(t){var e=this;at((function(){if(e._throwIfClosed(),!e.isStopped){e.hasError=e.isStopped=!0,e.thrownError=t;for(var n=e.observers;n.length;)n.shift().error(t)}}))},e.prototype.complete=function(){var t=this;at((function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var e=t.observers;e.length;)e.shift().complete()}}))},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},e.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},e.prototype._innerSubscribe=function(t){var e=this,n=e.hasError,i=e.isStopped,s=e.observers;return n||i?W:(s.push(t),new X((function(){return j(s,t)})))},e.prototype._checkFinalizedStatuses=function(t){var e=this,n=e.hasError,i=e.thrownError,s=e.isStopped;n?t.error(i):s&&t.complete()},e.prototype.asObservable=function(){var t=new vt;return t.source=this,t},e.create=function(t,e){return new It(t,e)},e}(vt),It=function(t){function e(e,n){var i=t.call(this)||this;return i.destination=e,i.source=n,i}return z(e,t),e.prototype.next=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.next)||void 0===n||n.call(e,t)},e.prototype.error=function(t){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.error)||void 0===n||n.call(e,t)},e.prototype.complete=function(){var t,e;null===(e=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===e||e.call(t)},e.prototype._subscribe=function(t){var e,n;return null!==(n=null===(e=this.source)||void 0===e?void 0:e.subscribe(t))&&void 0!==n?n:W},e}(wt),xt=function(t,e,n,i){this.BLEND=1,this.CULL_FACE=2,this.CULL_FRONT=4,this.CULL_BACK=8,this.ENABLE_DEPTH_TEST=16,this.shaders=[],this.isVisible=!0,this.vertexBuffer=e,this.indexCount=i,this.mode=n,this.glFlags=0,this.id=t,this.colorId=[(t>>0&255)/255,(t>>8&255)/255,(t>>16&255)/255,(t>>24&255)/255],this.modelMatrix=l(),this.scale=[1,1,1],this.position=[0,0,0],this.rotation=[0,0,0],this.rotationRadians=0},Et=function(t){this.shader=t,this.uniforms=t.uniforms,this.mvpUniformName="",this.clipPlaneUniformName="",this.rayDirUniformName=""};Et.prototype.use=function(t){return this.shader.use(t)};var Tt=n(764).lW;let Bt=function(t={}){this.opts={},this.defaults={textHeight:.03,colorbarHeight:.05,crosshairWidth:1,backColor:[0,0,0,1],crosshairColor:[1,0,0,1],selectionBoxColor:[1,1,1,.5],clipPlaneColor:[1,1,1,.5],colorBarMargin:.05,briStep:1,conStep:1,trustCalMinMax:!0,clipPlaneHotKey:"KeyC"},this.canvas=null,this.gl=null,this.colormapTexture=null,this.volumeTexture=null,this.overlayTexture=null,this.sliceShader=null,this.lineShader=null,this.renderShader=null,this.colorbarShader=null,this.fontShader=null,this.passThroughShader=null,this.orientShaderU=null,this.orientShaderI=null,this.orientShaderF=null,this.orientShaderRGBU=null,this.surfaceShader=null,this.pickingSurfaceShader=null,this.fontMets=null,this.sliceTypeAxial=0,this.sliceTypeCoronal=1,this.sliceTypeSagittal=2,this.sliceTypeMultiplanar=3,this.sliceTypeRender=4,this.sliceType=this.sliceTypeMultiplanar,this.scene={},this.scene.renderAzimuth=120,this.scene.renderElevation=15,this.scene.crosshairPos=[.5,.5,.5],this.scene.clipPlane=[0,0,0,0],this.scene.mousedown=!1,this.scene.touchdown=!1,this.scene.mouseButtonLeft=0,this.scene.mouseButtonRight=2,this.scene.mouseButtonLeftDown=!1,this.scene.mouseButtonRightDown=!1,this.scene.prevX=0,this.scene.prevY=0,this.scene.currX=0,this.scene.currY=0,this.back={},this.overlays=[],this.volumes=[],this.backTexture=[],this.objectsToRender3D=[],this.isRadiologicalConvention=!1,this.volScaleMultiplier=1,this.volScale=[],this.vox=[],this.mousePos=[0,0],this.numScreenSlices=0,this.screenSlices=[{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial},{leftTopWidthHeight:[1,0,0,1],axCorSag:this.sliceTypeAxial}],this.backOpacity=1,this.isDragging=!1,this.dragStart=[0,0],this.dragEnd=[0,0],this.lastTwoTouchDistance=0,this.otherNV=null,this.volumeObject3D=null,this.clipPlaneObject3D=null,this.crosshairPosition$=new wt,this.intensityRange$=new wt,this.currentClipPlaneIndex=0,this.lastCalled=(new Date).getTime(),this.multiTouchGesture=!1,this.gestureInterval=null,this.selectedObjectId=-1,this.CLIP_PLANE_ID=1,this.VOLUME_ID=2,this.DISTANCE_FROM_CAMERA=-.54;for(let e in this.defaults)this.opts[e]=void 0===t[e]?this.defaults[e]:t[e]};function Ct(t,e){return 0===t.scl_slope&&(t.scl_slope=1),e*t.scl_slope+t.scl_inter}Bt.prototype.attachTo=function(t){return this.canvas=document.getElementById(t),this.gl=this.canvas.getContext("webgl2"),this.gl||(alert("unable to get webgl2 context. Perhaps this browser does not support webgl2"),console.log("unable to get webgl2 context. Perhaps this browser does not support webgl2")),this.canvas.parentElement.style.backgroundColor="black",this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight,window.addEventListener("resize",this.resizeListener.bind(this)),this.registerInteractions(),this.init(),this},Bt.prototype.syncWith=function(t){this.otherNV=t},Bt.prototype.sync=function(){if(!this.otherNV||void 0===this.otherNV)return;let t=this.frac2mm(this.scene.crosshairPos);this.otherNV.scene.crosshairPos=this.otherNV.mm2frac(t),this.otherNV.scene.renderAzimuth=this.scene.renderAzimuth,this.otherNV.scene.renderElevation=this.scene.renderElevation,this.otherNV.drawScene()},Bt.prototype.arrayEquals=function(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===e.length&&t.every(((t,n)=>t===e[n]))},Bt.prototype.resizeListener=function(){this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight,this.drawScene()},Bt.prototype.getRelativeMousePosition=function(t,e){var n=(e=e||t.target).getBoundingClientRect();return{x:t.clientX-n.left,y:t.clientY-n.top}},Bt.prototype.getNoPaddingNoBorderCanvasRelativeMousePosition=function(t,e){e=e||t.target;var n=this.getRelativeMousePosition(t,e);return n.x=n.x*e.width/e.clientWidth,n.y=n.y*e.height/e.clientHeight,n},Bt.prototype.mouseContextMenuListener=function(t){t.preventDefault()},Bt.prototype.mouseDownListener=function(t){t.preventDefault();var e=this.canvas.getBoundingClientRect();this.scene.mousedown=!0,t.button===this.scene.mouseButtonLeft?(this.scene.mouseButtonLeftDown=!0,this.mouseLeftButtonHandler(t,e)):t.button===this.scene.mouseButtonRight&&(this.scene.mouseButtonRightDown=!0,this.mouseRightButtonHandler(t,e))},Bt.prototype.mouseLeftButtonHandler=function(t,e){let n=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.mouseClick(n.x,n.y),this.mouseDown(n.x,n.y)},Bt.prototype.mouseRightButtonHandler=function(t,e){this.isDragging=!0;let n=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.dragStart[0]=n.x,this.dragStart[1]=n.y},Bt.prototype.calculateMinMaxVoxIdx=function(t){if(t.length>2)throw new Error("array must not contain more than two values");return[Math.floor(Math.min(t[0],t[1])),Math.floor(Math.max(t[0],t[1]))]},Bt.prototype.calculateNewRange=function(){if(this.sliceType===this.sliceTypeRender)return;let t=this.canvasPos2frac([this.dragStart[0],this.dragStart[1]]),e=this.frac2vox(t);t=this.canvasPos2frac([this.dragEnd[0],this.dragEnd[1]]);let n,i,s,o,r=this.frac2vox(t),a=-Number.MAX_VALUE,l=Number.MAX_VALUE;n=this.calculateMinMaxVoxIdx([e[0],r[0]]),i=this.calculateMinMaxVoxIdx([e[1],r[1]]),s=this.calculateMinMaxVoxIdx([e[2],r[2]]),e[0]-r[0]==0?n[1]=e[0]+1:e[1]-r[1]==0?i[1]=e[1]+1:e[2]-r[2]==0&&(s[1]=e[2]+1);const h=this.volumes[0].volume.hdr.datatypeCode,c=this.volumes[0].volume.hdr,u=this.volumes[0].volume.img;switch(console.log(this.volumes[0]),h){case 2:o=new Uint8Array(u);break;case 4:o=new Int16Array(u);break;case 16:o=new Float32Array(u);break;case 64:o=new Float64Array(u);break;case 512:o=new Uint16Array(u)}console.log(o[n[0]*i[0]*s[0]]),console.log(n),console.log(i),console.log(s);const f=c.dims[1],d=c.dims[2];for(let t=s[0];t<s[1];t++){let e=t*f*d;for(let t=i[0];t<i[1];t++){let i=t*f;for(let t=n[0];t<n[1];t++){let n=e+i+t;l>o[n]&&(l=o[n]),a<o[n]&&(a=o[n])}}}console.log("hi is "+a),console.log("lo is "+l);var g=Ct(c,l),p=Ct(c,a);console.log(p),console.log(g),console.log("scaled"),this.volumes[0].cal_min=g,this.volumes[0].cal_max=p,this.intensityRange$.next([g,p])},Bt.prototype.mouseUpListener=function(){this.scene.mousedown=!1,this.scene.mouseButtonRightDown=!1,this.scene.mouseButtonLeftDown=!1,this.isDragging&&(this.isDragging=!1,this.calculateNewRange(),this.refreshLayers(this.volumes[0],0,this.volumes.length),console.log(this.volumes[0].cal_min,this.volumes[0].cal_max),this.drawScene())},Bt.prototype.checkMultitouch=function(t){if(this.scene.touchdown&&!this.multiTouchGesture){var e=this.canvas.getBoundingClientRect();this.mouseClick(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top),this.mouseDown(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top)}},Bt.prototype.touchStartListener=function(t){t.preventDefault(),this.scene.touchdown=!0,this.scene.touchdown&&t.touches.length<2||(this.multiTouchGesture=!0),setTimeout(this.checkMultitouch.bind(this),50,t)},Bt.prototype.touchEndListener=function(){this.scene.touchdown=!1,this.lastTwoTouchDistance=0,this.multiTouchGesture=!1},Bt.prototype.mouseMoveListener=function(t){if(this.scene.mousedown){let e=this.getNoPaddingNoBorderCanvasRelativeMousePosition(t,this.gl.canvas);this.scene.mouseButtonLeftDown?(this.mouseClick(e.x,e.y),this.mouseMove(e.x,e.y)):this.scene.mouseButtonRightDown&&(this.dragEnd[0]=e.x,this.dragEnd[1]=e.y),this.drawScene(),this.scene.prevX=this.scene.currX,this.scene.prevY=this.scene.currY}},Bt.prototype.resetBriCon=function(){this.volumes[0].cal_min=this.volumes[0].global_min,this.volumes[0].cal_max=this.volumes[0].global_max,this.refreshLayers(this.volumes[0],0,this.volumes.length),this.drawScene()},Bt.prototype.touchMoveListener=function(t){if(this.scene.touchdown&&t.touches.length<2){var e=this.canvas.getBoundingClientRect();this.mouseClick(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top),this.mouseMove(t.touches[0].clientX-e.left,t.touches[0].clientY-e.top)}else this.handlePinchZoom(t)},Bt.prototype.handlePinchZoom=function(t){if(2==t.targetTouches.length&&2==t.changedTouches.length){var e=Math.hypot(t.touches[0].pageX-t.touches[1].pageX,t.touches[0].pageY-t.touches[1].pageY),n=this.canvas.getBoundingClientRect();this.mousePos=[t.touches[0].clientX-n.left,t.touches[0].clientY-n.top],e<this.lastTwoTouchDistance?this.sliceScroll2D(-.01,t.touches[0].clientX-n.left,t.touches[0].clientY-n.top):this.sliceScroll2D(.01,t.touches[0].clientX-n.left,t.touches[0].clientY-n.top),this.lastTwoTouchDistance=e}},Bt.prototype.keyUpListener=function(t){if(t.code===this.opts.clipPlaneHotKey){let t=(new Date).getTime();if(t-this.lastCalled>1e3){switch(this.currentClipPlaneIndex=(this.currentClipPlaneIndex+1)%4,this.clipPlaneObject3D.isVisible=this.currentClipPlaneIndex,this.currentClipPlaneIndex){case 0:this.scene.clipPlane=[0,0,0,0],this.clipPlaneObject3D.rotation=[0,0,0];break;case 1:this.scene.clipPlane=[1,0,0,0],this.clipPlaneObject3D.rotation=[0,1,0];break;case 2:this.scene.clipPlane=[0,1,0,0],this.clipPlaneObject3D.rotation=[1,0,0];break;case 3:this.scene.clipPlane=[0,0,1,0],this.clipPlaneObject3D.rotation=[0,0,1]}console.log(this.scene.clipPlane),this.drawScene()}this.lastCalled=t}},Bt.prototype.wheelListener=function(t){t.preventDefault(),t.stopPropagation();var e=this.canvas.getBoundingClientRect();t.deltaY<0?this.sliceScroll2D(-.01,t.clientX-e.left,t.clientY-e.top):this.sliceScroll2D(.01,t.clientX-e.left,t.clientY-e.top)},Bt.prototype.registerInteractions=function(){this.canvas.addEventListener("mousedown",this.mouseDownListener.bind(this)),this.canvas.addEventListener("mouseup",this.mouseUpListener.bind(this)),this.canvas.addEventListener("mousemove",this.mouseMoveListener.bind(this)),this.canvas.addEventListener("touchstart",this.touchStartListener.bind(this)),this.canvas.addEventListener("touchend",this.touchEndListener.bind(this)),this.canvas.addEventListener("touchmove",this.touchMoveListener.bind(this)),this.canvas.addEventListener("wheel",this.wheelListener.bind(this)),this.canvas.addEventListener("contextmenu",this.mouseContextMenuListener.bind(this)),this.canvas.addEventListener("dblclick",this.resetBriCon.bind(this)),this.canvas.setAttribute("tabindex",0),this.canvas.addEventListener("keyup",this.keyUpListener.bind(this),!1),this.canvas.focus()},Bt.prototype.mouseDown=function(t,e){this.sliceType==this.sliceTypeRender&&(this.mousePos=[t,e])},Bt.prototype.mouseMove=function(t,e){this.sliceType==this.sliceTypeRender&&(this.scene.renderAzimuth+=t-this.mousePos[0],this.scene.renderElevation+=e-this.mousePos[1],this.mousePos=[t,e],this.drawScene())},Bt.prototype.sph2cartDeg=function(t,e){let n=-e*(Math.PI/180),i=(t-90)%360*(Math.PI/180),s=[Math.cos(n)*Math.cos(i),Math.cos(n)*Math.sin(i),Math.sin(n)],o=Math.sqrt(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]);return o<=0||(s[0]/=o,s[1]/=o,s[2]/=o),s},Bt.prototype.clipPlaneUpdate=function(t){if(this.sliceType!=this.sliceTypeRender)return;let e=this.sph2cartDeg(t[0],t[1]);this.scene.clipPlane=[e[0],e[1],e[2],t[2]],this.drawScene()},Bt.prototype.setCrosshairColor=function(t){this.opts.crosshairColor=t,this.drawScene()},Bt.prototype.setSelectionBoxColor=function(t){this.opts.selectionBoxColor=t},Bt.prototype.sliceScroll2D=function(t,e,n,i=!0){this.mouseClick(e,n,t,i)},Bt.prototype.setSliceType=function(t){return this.sliceType=t,this.drawScene(),this},Bt.prototype.setOpacity=function(t,e){if(this.volumes[t].opacity=e,0===t)return this.backOpacity=e,void this.drawScene();this.updateGLVolume()},Bt.prototype.setScale=function(t){this.volScaleMultiplier=t,this.drawScene()},Bt.prototype.setClipPlaneColor=function(t){this.opts.clipPlaneColor=t},Bt.prototype.overlayRGBA=function(t){let e=t.hdr,n=e.dims[1]*e.dims[2]*e.dims[3],i=new Uint8ClampedArray(4*n),s=.2*Math.min(Math.min(e.dims[1],e.dims[2]),e.dims[3]),o=.5*e.dims[1],r=.5*e.dims[2],a=.5*e.dims[3],l=0;for(let t=0;t<e.dims[3];t++)for(let n=0;n<e.dims[2];n++)for(let h=0;h<e.dims[1];h++){let e=Math.abs(h-o),c=Math.abs(n-r),u=Math.abs(t-a),f=0;Math.sqrt(e*e+c*c+u*u)<s&&(f=255),i[l++]=0,i[l++]=f,i[l++]=0,i[l++]=.5*f}return i},Bt.prototype.vox2mm=function(t,e){let n=h(e);u(n,n);let i=p(t[0],t[1],t[2],1);return m(i,i,n),v(i[0],i[1],i[2])},Bt.prototype.nii2RAS=function(t){let e=t.volume.hdr,n=e.affine,i=function(t,e,n,i,s,o,r,l,h){var c=new a(9);return c[0]=t,c[1]=e,c[2]=n,c[3]=i,c[4]=s,c[5]=o,c[6]=r,c[7]=l,c[8]=h,c}(Math.abs(n[0][0]),Math.abs(n[0][1]),Math.abs(n[0][2]),Math.abs(n[1][0]),Math.abs(n[1][1]),Math.abs(n[1][2]),Math.abs(n[2][0]),Math.abs(n[2][1]),Math.abs(n[2][2])),s=[1,1,1];i[3]>i[0]&&(s[0]=2),i[6]>i[0]&&i[6]>i[3]&&(s[0]=3),s[1]=1,1===s[0]?i[4]>i[7]?s[1]=2:s[1]=3:2===s[0]?i[1]>i[7]?s[1]=1:s[1]=3:i[1]>i[4]?s[1]=1:s[1]=2,s[2]=6-s[1]-s[0];let o=[1,2,3];o[s[0]-1]=1,o[s[1]-1]=2,o[s[2]-1]=3;let r=c(n[0][0],n[0][1],n[0][2],n[0][3],n[1][0],n[1][1],n[1][2],n[1][3],n[2][0],n[2][1],n[2][2],n[2][3],0,0,0,1);t.mm000=this.vox2mm([-.5,-.5,-.5],r),t.mm100=this.vox2mm([e.dims[1]-.5,-.5,-.5],r),t.mm010=this.vox2mm([-.5,e.dims[2]-.5,-.5],r),t.mm001=this.vox2mm([-.5,-.5,e.dims[3]-.5],r);let u=l();!function(t,e){t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]}(u,r);for(let t=0;t<3;t++)for(let e=0;e<3;e++)u[4*t+e]=r[4*t+o[e]-1];let d=[0,0,0];if(u[0]<0&&(d[0]=1),u[5]<0&&(d[1]=1),u[10]<0&&(d[2]=1),t.dimsRAS=[e.dims[0],e.dims[o[0]],e.dims[o[1]],e.dims[o[2]]],t.pixDimsRAS=[e.pixDims[0],e.pixDims[o[0]],e.pixDims[o[1]],e.pixDims[o[2]]],this.arrayEquals(o,[1,2,3])&&this.arrayEquals(d,[0,0,0]))return t.toRAS=l(),void(t.matRAS=h(r));(function(t){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1})(r),r[0]=1-2*d[0],r[5]=1-2*d[1],r[10]=1-2*d[2],r[3]=(e.dims[o[0]]-1)*d[0],r[7]=(e.dims[o[1]]-1)*d[1],r[11]=(e.dims[o[2]]-1)*d[2];let g=l();f(g,r),function(t,e,n){var i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],l=e[5],h=e[6],c=e[7],u=e[8],f=e[9],d=e[10],g=e[11],p=e[12],m=e[13],A=e[14],v=e[15],b=n[0],y=n[1],w=n[2],I=n[3];t[0]=b*i+y*a+w*u+I*p,t[1]=b*s+y*l+w*f+I*m,t[2]=b*o+y*h+w*d+I*A,t[3]=b*r+y*c+w*g+I*v,b=n[4],y=n[5],w=n[6],I=n[7],t[4]=b*i+y*a+w*u+I*p,t[5]=b*s+y*l+w*f+I*m,t[6]=b*o+y*h+w*d+I*A,t[7]=b*r+y*c+w*g+I*v,b=n[8],y=n[9],w=n[10],I=n[11],t[8]=b*i+y*a+w*u+I*p,t[9]=b*s+y*l+w*f+I*m,t[10]=b*o+y*h+w*d+I*A,t[11]=b*r+y*c+w*g+I*v,b=n[12],y=n[13],w=n[14],I=n[15],t[12]=b*i+y*a+w*u+I*p,t[13]=b*s+y*l+w*f+I*m,t[14]=b*o+y*h+w*d+I*A,t[15]=b*r+y*c+w*g+I*v}(g,g,u),t.matRAS=h(g),r=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),r[o[0]-1+0]=2*-d[0]+1,r[o[1]-1+4]=2*-d[1]+1,r[o[2]-1+8]=2*-d[2]+1,r[3]=d[0],r[7]=d[1],r[11]=d[2],t.toRAS=h(r)},Bt.prototype.loadVolumes=function(t){this.gl.clearColor(0,0,0,1),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.volumes=t,this.back=this.volumes[0],this.overlays=this.volumes.slice(1);let e=[],n=null,i=null;for(let o=0;o<t.length;o++){console.log("loading ",t[o].url);let r=this.volumes[o].url;e.push(new XMLHttpRequest),e[o].open("GET",r,!0),e[o].responseType="arraybuffer",e[o].onerror=function(){console.error("error loading volume ",this.volumes[o].url),alert("error loading "+this.volumes[o].url)},e[o].onload=function(){let t=e[o].response;n=null,i=null,t?(n=s.readHeader(t),i=s.isCompressed(t)?s.readImage(n,s.decompress(t)):s.readImage(n,t)):(alert("Unable to load buffer properly from volume?"),console.log("no buffer?")),this.volumes[o].volume={},this.volumes[o].volume.hdr=n,this.volumes[o].volume.img=i,this.volumes[o].opacity=1,this.nii2RAS(this.volumes[o]),this.updateGLVolume()}.bind(this),e[o].send()}return this},Bt.prototype.rgbaTex=function(t,e,n,i=!1){if(t&&this.gl.deleteTexture(t),t=this.gl.createTexture(),this.gl.activeTexture(e),this.gl.bindTexture(this.gl.TEXTURE_3D,t),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),this.gl.texStorage3D(this.gl.TEXTURE_3D,1,this.gl.RGBA8,n[1],n[2],n[3]),i){let t=new Uint8Array(n[1]*n[2]*n[3]*4);this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,n[1],n[2],n[3],this.gl.RGBA,this.gl.UNSIGNED_BYTE,t)}return t},Bt.prototype.loadPng=function(t){var e=null;(e=new Image).onload=function(){var t=this.gl.createTexture();this.gl.activeTexture(this.gl.TEXTURE3),this.gl.bindTexture(this.gl.TEXTURE_2D,t),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e)}.bind(this),e.src="data:image/png;base64,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\nhoYRsoBGIwh95UpkZPwdtZxJoxNaEUjy7RdfmHk/7NgBX1/FUI/6czh3C7ee4EkH\nOsYwRgEg+8Qjfgu2sLKWY7nOldK1bRtKSswKwEEc5FuYsv/du7h+HQ8eiNg2Nhqx\nD188OhqrV2PLFuzeLYhMQghCDuFQN7o/x+dKsavB4/FU3MuU/S9fRl6ekH9ZbEyy\niyzJQG3ahJ07hfBIcIDDYRzuQU8rWhvQYPaJo6KiDh8+fOTIETX7M/hXr169e/cu\nZb6+vr6zs1MWAKo7iz0yMjI5OXndunWslKVLdZnm5ubGRTixt7e3osI0n5XzvIN3\nGEkj9me0L10CZYMawPzku6vBp1y+HKmpuoxxdJTNpNBBDPJBs5FtcJ4hAFpotXpe\nZlJ988035P1QSUuampquX7/+bMZbWxIASwxqBftroGFVs6jURmbn1/j6FE5NYUpt\nn8DEIyH3jxrRSI77ofsPIzz4rv8Z84RmHnMo7OHh4fJ3Y2NjSUkJK9zEZ3JyksxI\nyqMAsMvkYP2rBUCjxIYFvH374m3bdguiHPaJy+3OzW2nBPTOdQ7mN+fqSZYoQ9lZ\nnD2O40YvoNXevHlzeno6MDCQNKSzkspjYqyNkUbDtN7EKtKDckKF+93vfsfrmzhP\nTU3du3ePDtzxpz/9qXx9YuPGjbTn5+er1QIbNggiIJ3pcQEXfo/fm1xBAcuVjSnu\nAhfWjM5K5ktPF8VQUDBzShjCZJIyYv/qaly5IoiDJGXCGnOBVboWa1lpiqW1tfXY\nsWN/+MMfSAomzqx8cndHRwdv/eMf/3jJkiW6e2PDPdy7iZtd6FKcXV1FOWequHRs\nbOzrr7/m4oyb+kX5AKLxFn19+OwzRQOSk5lKKC/HnTuqQ5As0tKwdq1iaEbzH/CH\nLGRVolJ92mEMUxiqUU09+Av8hUHhyNds5KPubrV/GtIoxrux2+jO336L7OyZzvo9\nhqXyfYTHj9Hejk8+gb6UyOxv4+0a1FD+Z87bhV188ZVYqY4Ojh3D6dPiKcfHze9F\n9mQrLSWx4cMPkZgoj3jCk3s9xdN/wj/NnMeE37Nnz/79+0nripGcSI2/cOGCXE1q\n/yEJdXV1fGuWydOnTw8dOhQXpxMqDw8PLsUkIdXyQWdutxmb38Jb0Yg2mGpq8PXX\nIox8S7PoYuJ0iWeurMTz5/jBDwQbSNiJnbWopa4zkoaE0RoRsSQIhisUSPDx8eF3\n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"},Bt.prototype.initText=async function(){await this.loadPng("fnt.png"),this.fontMets=[];for(let t=0;t<256;t++)this.fontMets[t]={},this.fontMets[t].xadv=0,this.fontMets[t].uv_lbwh=[0,0,0,0],this.fontMets[t].lbwh=[0,0,0,0];await async function(){}(),this.fontMets.distanceRange=B.IY.k6,this.fontMets.size=B.IY.dp;let t=B.IY.bf,e=B.IY.Cb;for(let n=0;n<B.pE.length;n++){let i=B.pE[n],s=i.unicode;if(this.fontMets[s].xadv=i.advance,void 0===i.planeBounds)continue;let o=i.atlasBounds.left/t,r=(e-i.atlasBounds.top)/e,a=(i.atlasBounds.right-i.atlasBounds.left)/t,l=(i.atlasBounds.top-i.atlasBounds.bottom)/e;this.fontMets[s].uv_lbwh=[o,r,a,l],o=i.planeBounds.left,r=i.planeBounds.bottom,a=i.planeBounds.right-i.planeBounds.left,l=i.planeBounds.top-i.planeBounds.bottom,this.fontMets[s].lbwh=[o,r,a,l]}},Bt.prototype.init=async function(){let t=this.gl.getExtension("WEBGL_debug_renderer_info"),e=this.gl.getParameter(t.UNMASKED_VENDOR_WEBGL),n=this.gl.getParameter(t.UNMASKED_RENDERER_WEBGL);console.log("gpu vendor: ",e),console.log("gpu renderer: ",n),this.gl.enable(this.gl.CULL_FACE),this.gl.cullFace(this.gl.FRONT),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.rgbaTex(this.volumeTexture,this.gl.TEXTURE0,[2,2,2,2],!0),this.rgbaTex(this.overlayTexture,this.gl.TEXTURE2,[2,2,2,2],!0);let i=this.gl.createVertexArray();this.gl.bindVertexArray(i);let s=new Float32Array([0,1,.5,1,1,.5,1,0,.5,0,1,.5,1,0,.5,0,0,.5]),r=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,r),this.gl.bufferData(this.gl.ARRAY_BUFFER,s,this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(0),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),this.clipPlaneObject3D=new xt(this.CLIP_PLANE_ID,r,this.gl.TRIANGLES,6),this.clipPlaneObject3D.position=[0,0,this.DISTANCE_FROM_CAMERA],this.clipPlaneObject3D.isVisible=!1,this.clipPlaneObject3D.rotationRadians=Math.PI/2,this.objectsToRender3D.push(this.clipPlaneObject3D);let a=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,a),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,1,0,0,0,1,0,0]),this.gl.STATIC_DRAW),this.gl.enableVertexAttribArray(0),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),this.volumeObject3D=new xt(this.VOLUME_ID,a,this.gl.TRIANGLE_STRIP,14),this.volumeObject3D.glFlags=this.volumeObject3D.BLEND|this.volumeObject3D.CULL_FACE|this.volumeObject3D.CULL_FRONT,this.volumeObject3D.position=[0,0,this.DISTANCE_FROM_CAMERA],this.objectsToRender3D.push(this.volumeObject3D),this.sliceShader=new o(this.gl,"#version 300 es\n#line 150\nlayout(location=0) in vec3 pos;\nuniform int axCorSag;\nuniform float slice;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nout vec3 texPos;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tif (axCorSag == 1)\n\t\ttexPos = vec3(pos.x, slice, pos.y);\n\telse if (axCorSag == 2)\n\t\ttexPos = vec3(slice, pos.x, pos.y);\n\telse\n\t\ttexPos = vec3(pos.xy, slice);\n}","#version 300 es\n#line 173\nprecision highp int;\nprecision highp float;\nuniform highp sampler3D volume, overlay;\nuniform float opacity;\nin vec3 texPos;\nout vec4 color;\nvoid main() {\n\tcolor = vec4(texture(volume, texPos).rgb, opacity);\n\tvec4 ocolor = texture(overlay, texPos);\n float aout = ocolor.a + (1.0 - ocolor.a) * color.a;\n if (aout <= 0.0) return;\n color.rgb = ((ocolor.rgb * ocolor.a) + (color.rgb * color.a * (1.0 - ocolor.a))) / aout;\n color.a = aout;\n}"),this.sliceShader.use(this.gl),this.gl.uniform1i(this.sliceShader.uniforms.volume,0),this.gl.uniform1i(this.sliceShader.uniforms.colormap,1),this.gl.uniform1i(this.sliceShader.uniforms.overlay,2),this.lineShader=new o(this.gl,"#version 300 es\n#line 229\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n}","#version 300 es\n#line 189\nprecision highp int;\nprecision highp float;\nuniform vec4 lineColor;\nout vec4 color;\nvoid main() {\n\tcolor = lineColor;\n}"),this.renderShader=new o(this.gl,"#version 300 es\n#line 4\nlayout(location=0) in vec3 pos;\nuniform mat4 mvpMtx;\nout vec3 vColor;\nvoid main(void) {\n\tgl_Position = mvpMtx * vec4(2.0 * (pos.xyz - 0.5), 1.0);\n\tvColor = pos;\n}","#version 300 es\n#line 15\nprecision highp int;\nprecision highp float;\nuniform vec3 rayDir;\nuniform vec3 texVox;\nuniform vec4 clipPlane;\nuniform highp sampler3D volume, overlay;\nuniform float overlays;\nuniform float backOpacity;\nin vec3 vColor;\nout vec4 fColor;\nvec3 GetBackPosition (vec3 startPosition) {\n vec3 invR = 1.0 / rayDir;\n vec3 tbot = invR * (vec3(0.0)-startPosition);\n vec3 ttop = invR * (vec3(1.0)-startPosition);\n vec3 tmax = max(ttop, tbot);\n vec2 t = min(tmax.xx, tmax.yz);\n return startPosition + (rayDir * min(t.x, t.y));\n}\nvec4 applyClip (vec3 dir, inout vec4 samplePos, inout float len) {\n\tfloat cdot = dot(dir,clipPlane.xyz);\n\tif ((clipPlane.a > 1.0) || (cdot == 0.0)) return samplePos;\n bool frontface = (cdot > 0.0);\n\tfloat clipThick = 2.0;\n float dis = (-clipPlane.a - dot(clipPlane.xyz, samplePos.xyz-0.5)) / cdot;\n float disBackFace = (-(clipPlane.a-clipThick) - dot(clipPlane.xyz, samplePos.xyz-0.5)) / cdot;\n if (((frontface) && (dis >= len)) || ((!frontface) && (dis <= 0.0))) {\n samplePos.a = len + 1.0;\n return samplePos;\n }\n if (frontface) {\n dis = max(0.0, dis);\n samplePos = vec4(samplePos.xyz+dir * dis, dis);\n len = min(disBackFace, len);\n }\n if (!frontface) {\n len = min(dis, len);\n disBackFace = max(0.0, disBackFace);\n samplePos = vec4(samplePos.xyz+dir * disBackFace, disBackFace);\n }\n return samplePos;\n}\nvoid main() {\n fColor = vec4(0.0,0.0,0.0,0.0);\n\tvec3 start = vColor;\n\tvec3 backPosition = GetBackPosition(start);\n\t//fColor = vec4(backPosition, 1.0); return;\n vec3 dir = backPosition - start;\n float len = length(dir);\n\tfloat lenVox = length((texVox * start) - (texVox * backPosition));\n\tif (lenVox < 0.5) return;\n\tfloat sliceSize = len / lenVox; //e.g. if ray length is 1.0 and traverses 50 voxels, each voxel is 0.02 in unit cube\n\tfloat stepSize = sliceSize; //quality: larger step is faster traversal, but fewer samples\n\tfloat opacityCorrection = stepSize/sliceSize;\n dir = normalize(dir);\n\tvec4 deltaDir = vec4(dir.xyz * stepSize, stepSize);\n\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\tfloat lenNoClip = len;\n\tvec4 clipPos = applyClip(dir, samplePos, len);\n\t//start: OPTIONAL fast pass: rapid traversal until first hit\n\tfloat stepSizeFast = sliceSize * 1.9;\n\tvec4 deltaDirFast = vec4(dir.xyz * stepSizeFast, stepSizeFast);\n\twhile (samplePos.a <= len) {\n\t\tfloat val = texture(volume, samplePos.xyz).a;\n\t\tif (val > 0.01) break;\n\t\tsamplePos += deltaDirFast; //advance ray position\n\t}\n\tif ((samplePos.a > len) && (overlays < 1.0)) return;\n\tsamplePos -= deltaDirFast;\n\tif (samplePos.a < 0.0)\n\t\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\t//end: fast pass\n\tvec4 colAcc = vec4(0.0,0.0,0.0,0.0);\n\tconst float earlyTermination = 0.95;\n\tfloat backNearest = len; //assume no hit\n float ran = fract(sin(gl_FragCoord.x * 12.9898 + gl_FragCoord.y * 78.233) * 43758.5453);\n samplePos += deltaDir * ran; //jitter ray\n\twhile (samplePos.a <= len) {\n\t\tvec4 colorSample = texture(volume, samplePos.xyz);\n\t\tsamplePos += deltaDir; //advance ray position\n\t\tif (colorSample.a < 0.01) continue;\n\t\tbackNearest = min(backNearest, samplePos.a);\n\t\tcolorSample.a = 1.0-pow((1.0 - colorSample.a), opacityCorrection);\n\t\tcolorSample.rgb *= colorSample.a;\n\t\tcolAcc= (1.0 - colAcc.a) * colorSample + colAcc;\n\t\tif ( colAcc.a > earlyTermination )\n\t\t\tbreak;\n\t}\n\tcolAcc.a = (colAcc.a / earlyTermination) * backOpacity;\n\tfColor = colAcc;\n\tif (overlays < 1.0) return;\n\t//overlay pass\n\tlen = lenNoClip;\n\tsamplePos = vec4(start.xyz, 0.0); //ray position\n //start: OPTIONAL fast pass: rapid traversal until first hit\n\tstepSizeFast = sliceSize * 1.9;\n\tdeltaDirFast = vec4(dir.xyz * stepSizeFast, stepSizeFast);\n\twhile (samplePos.a <= len) {\n\t\tfloat val = texture(overlay, samplePos.xyz).a;\n\t\tif (val > 0.01) break;\n\t\tsamplePos += deltaDirFast; //advance ray position\n\t}\n\tif (samplePos.a > len) return;\n\tsamplePos -= deltaDirFast;\n\tif (samplePos.a < 0.0)\n\t\tvec4 samplePos = vec4(start.xyz, 0.0); //ray position\n\t//end: fast pass\n\tfloat overFarthest = len;\n\tcolAcc = vec4(0.0, 0.0, 0.0, 0.0);\n\tsamplePos += deltaDir * ran; //jitter ray\n\twhile (samplePos.a <= len) {\n\t\tvec4 colorSample = texture(overlay, samplePos.xyz);\n\t\tsamplePos += deltaDir; //advance ray position\n\t\tif (colorSample.a < 0.01) continue;\n\t\tcolorSample.a = 1.0-pow((1.0 - colorSample.a), opacityCorrection);\n\t\tcolorSample.rgb *= colorSample.a;\n\t\tcolAcc= (1.0 - colAcc.a) * colorSample + colAcc;\n\t\toverFarthest = samplePos.a;\n\t\tif ( colAcc.a > earlyTermination )\n\t\t\tbreak;\n\t}\n\tfloat overMix = colAcc.a;\n\tfloat overlayDepth = 0.3;\n\tif (fColor.a <= 0.0)\n\t\t\toverMix = 1.0;\n\telse if (((overFarthest) > backNearest)) {\n\t\tfloat dx = (overFarthest - backNearest)/1.73;\n\t\tdx = fColor.a * pow(dx, overlayDepth);\n\t\toverMix *= 1.0 - dx;\n\t}\n\tfColor.rgb = mix(fColor.rgb, colAcc.rgb, overMix);\n\tfColor.a = max(fColor.a, colAcc.a);\n}"),this.renderShader.use(this.gl),this.gl.uniform1i(this.renderShader.uniforms.volume,0),this.gl.uniform1i(this.renderShader.uniforms.colormap,1),this.gl.uniform1i(this.renderShader.uniforms.overlay,2);let l=new Et(this.renderShader);l.mvpUniformName="mvpMtx",l.rayDirUniformName="rayDir",l.clipPlaneUniformName="clipPlane",this.volumeObject3D.shaders.push(l),this.colorbarShader=new o(this.gl,"#version 300 es\n#line 200\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nout vec2 vColor;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tvColor = pos.xy;\n}","#version 300 es\n#line 217\nprecision highp int;\nprecision highp float;\nuniform highp sampler2D colormap;\nin vec2 vColor;\nout vec4 color;\nvoid main() {\n\tcolor = vec4(texture(colormap, vColor).rgb, 1.0);\n}"),this.colorbarShader.use(this.gl),this.gl.uniform1i(this.colorbarShader.uniforms.colormap,1),this.fontShader=new o(this.gl,"#version 300 es\n#line 244\nlayout(location=0) in vec3 pos;\nuniform vec2 canvasWidthHeight;\nuniform vec4 leftTopWidthHeight;\nuniform vec4 uvLeftTopWidthHeight;\nout vec2 vUV;\nvoid main(void) {\n\t//convert pixel x,y space 1..canvasWidth,1..canvasHeight to WebGL 1..-1,-1..1\n\tvec2 frac;\n\tfrac.x = (leftTopWidthHeight.x + (pos.x * leftTopWidthHeight.z)) / canvasWidthHeight.x; //0..1\n\tfrac.y = 1.0 - ((leftTopWidthHeight.y + ((1.0 - pos.y) * leftTopWidthHeight.w)) / canvasWidthHeight.y); //1..0\n\tfrac = (frac * 2.0) - 1.0;\n\tgl_Position = vec4(frac, 0.0, 1.0);\n\tvUV = vec2(uvLeftTopWidthHeight.x + (pos.x * uvLeftTopWidthHeight.z), uvLeftTopWidthHeight.y + ((1.0 - pos.y) * uvLeftTopWidthHeight.w) );\n}","#version 300 es\n#line 262\nprecision highp int;\nprecision highp float;\nuniform highp sampler2D fontTexture;\nuniform vec4 fontColor;\nuniform float screenPxRange;\nin vec2 vUV;\nout vec4 color;\nfloat median(float r, float g, float b) {\n return max(min(r, g), min(max(r, g), b));\n}\nvoid main() {\n\tvec3 msd = texture(fontTexture, vUV).rgb;\n\tfloat sd = median(msd.r, msd.g, msd.b);\n float screenPxDistance = screenPxRange*(sd - 0.5);\n float opacity = clamp(screenPxDistance + 0.5, 0.0, 1.0);\n\tcolor = vec4(fontColor.rgb , fontColor.a * opacity);\n}"),this.fontShader.use(this.gl),this.gl.uniform1i(this.fontShader.uniforms.fontTexture,3),this.passThroughShader=new o(this.gl,"#version 300 es\n#line 283\nprecision highp int;\nprecision highp float;\nin vec3 vPos;\nout vec2 TexCoord;\nvoid main() {\n TexCoord = vPos.xy;\n gl_Position = vec4(vPos.x, vPos.y, 0.0, 1.0);\n}","#version 300 es\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform lowp sampler3D in3D;\nvoid main(void) {\n FragColor = texture(in3D, vec3(TexCoord.xy, coordZ));\n}"),this.orientShaderU=new o(this.gl,w,I.concat(x)),this.orientShaderI=new o(this.gl,w,"#version 300 es\nuniform highp isampler3D intensityVol;\n".concat(x)),this.orientShaderF=new o(this.gl,w,"#version 300 es\nuniform highp sampler3D intensityVol;\n".concat(x)),this.orientShaderRGBU=new o(this.gl,w,I.concat("#line 309\nprecision highp int;\nprecision highp float;\nin vec2 TexCoord;\nout vec4 FragColor;\nuniform float coordZ;\nuniform float layer;\nuniform float numLayers;\nuniform float scl_slope;\nuniform float scl_inter;\nuniform float cal_max;\nuniform float cal_min;\nuniform highp sampler2D colormap;\nuniform lowp sampler3D blend3D;\nuniform float opacity;\nuniform mat4 mtx;\nuniform bool hasAlpha;\n\nvoid main(void) {\nvec4 vx = vec4(TexCoord.xy, coordZ, 1.0);// * mtx;\n \n uvec4 aColor = texture(intensityVol, vx.xyz);\n float a = hasAlpha ? float(aColor.a) / 255.0f : float(aColor.r) * 0.21f + float(aColor.g) * 0.72f + float(aColor.b) * 0.07; \n FragColor = vec4(float(aColor.r) / 255.0f, float(aColor.g) / 255.0f, float(aColor.b) / 255.0f, a);\n FragColor.a *= opacity;\n}")),this.pickingSurfaceShader=new o(this.gl,E,T),this.surfaceShader=new o(this.gl,E,T),this.surfaceShader.use(this.gl),this.gl.uniform4fv(this.surfaceShader.uniforms.surfaceColor,this.opts.clipPlaneColor);let h=new Et(this.surfaceShader);return h.mvpUniformName="mvpMtx",this.clipPlaneObject3D.shaders.push(h),await this.initText(),this.updateGLVolume(),this},Bt.prototype.updateGLVolume=function(){let t=0,e=this.volumes.length;this.refreshColormaps();for(let n=0;n<e;n++)this.volumes[n].toRAS&&(this.refreshLayers(this.volumes[n],t,e),t++);this.drawScene()},Bt.prototype.calMinMaxCore=function(t,e,n=0,s=!1){if(this.opts.trustCalMinMax&&isFinite(t.volume.hdr.cal_min)&&isFinite(t.volume.hdr.cal_max)&&t.volume.hdr.cal_max>t.volume.hdr.cal_min)return console.log("using hdr calminmax"),[t.volume.hdr.cal_min,t.volume.hdr.cal_max,t.volume.hdr.cal_min,t.volume.hdr.cal_max];let o,r=t.colorMap,a=i[r].min,l=i[r].max;if(a!=l)return console.log("using colormap min and max"),[a,l,a,l];let h=t.volume.hdr;2===h.datatypeCode?o=new Uint8Array(e):4===h.datatypeCode?o=new Int16Array(e):16===h.datatypeCode?o=new Float32Array(e):64===h.datatypeCode?o=new Float64Array(e):128===h.datatypeCode?o=new Uint8Array(e):512===h.datatypeCode?o=new Uint16Array(e):2304===h.datatypeCode&&(o=new Uint8Array(e));let c=e[0],u=e[0],f=0,d=0,g=o.length;for(let t=0;t<g;t++)isNaN(o[t])?d++:0===o[t]&&(f++,s)||(c=Math.min(o[t],c),u=Math.max(o[t],u));var p=Ct(h,c),m=Ct(h,u);s||(f=0),f+=d;let A=Math.round((g-f)*n);if(A<1||c===u)return console.log("no variability in image intensity?"),[p,m,p,m];let v=1001,b=1e3/(u-c),y=new Array(v);for(let t=0;t<v;t++)y[t]=0;if(s)for(let t=0;t<=g;t++)0!==o[t]&&(isNaN(o[t])||y[Math.round((o[t]-c)*b)]++);else for(let t=0;t<=g;t++)isNaN(o[t])||y[Math.round((o[t]-c)*b)]++;let w=0,I=0;for(;w<A;)w+=y[I],I++;I--,w=0;let x=v;for(;w<A;)x--,w+=y[x];if(I==x){let t=-1;for(;0!==t;)I>0&&(I--,y[I]>0&&(t=0)),0!=t&&x<1e3&&(x++,y[x]>0&&(t=0)),0==I&&1e3==x&&(t=0)}var E=Ct(h,I/b+c),T=Ct(h,x/b+c);return console.log("full range %f..%f (voxels 0 or NaN = %i) robust range %f..%f",p,m,f,E,T),t.volume.hdr.cal_min<t.volume.hdr.cal_max&&t.volume.hdr.cal_min>=p&&t.volume.hdr.cal_max<=m&&(console.log("ignoring robust range: using header cal_min and cal_max"),E=t.volume.hdr.cal_min,T=t.volume.hdr.cal_max),[E,T,p,m]},Bt.prototype.calMinMax=function(t,e,n=.02,i=!1){let s=this.calMinMaxCore(t,e,n,i);return console.log("cal_min, cal_max, global_min, global_max",s[0],s[1],s[2],s[3]),t.cal_min=s[0],t.cal_max=s[1],t.global_min=s[2],t.global_max=s[3],s},Bt.prototype.refreshLayers=function(t,e,n){let i,s=t.volume.hdr,o=t.volume.img,r=t.opacity,a=null,l=[];if(0===e){this.back={},l=t.toRAS,r=1,this.back.matRAS=t.matRAS,this.back.dims=t.dimsRAS,this.back.pixDims=t.pixDimsRAS,a=this.rgbaTex(this.volumeTexture,this.gl.TEXTURE0,t.dimsRAS);let{volScale:e,vox:n}=this.sliceScale();this.volScale=e,this.vox=n,this.volumeObject3D.scale=e}else{void 0===this.back.dims&&console.log("Fatal error: Unable to render overlay: background dimensions not defined!");let n=this.mm2frac(t.mm000),i=this.mm2frac(t.mm100),s=this.mm2frac(t.mm010),o=this.mm2frac(t.mm001);i=b(i,i,n),s=b(s,s,n),o=b(o,o,n),l=c(i[0],i[1],i[2],n[0],s[0],s[1],s[2],n[1],o[0],o[1],o[2],n[2],0,0,0,1),f(l,l),1===e?(a=this.rgbaTex(this.overlayTexture,this.gl.TEXTURE2,this.back.dims),this.backTexture=a):a=this.backTexture}let h=this.gl.createFramebuffer();this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,h),this.gl.disable(this.gl.CULL_FACE),this.gl.viewport(0,0,this.back.dims[1],this.back.dims[2]),this.gl.disable(this.gl.BLEND);let u=this.gl.createTexture();this.gl.activeTexture(this.gl.TEXTURE6),this.gl.bindTexture(this.gl.TEXTURE_3D,u),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_3D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);let d=this.orientShaderU;if(2===s.datatypeCode)i=new Uint8Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R8UI,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RED_INTEGER,this.gl.UNSIGNED_BYTE,i);else if(4===s.datatypeCode)i=new Int16Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R16I,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RED_INTEGER,this.gl.SHORT,i),d=this.orientShaderI;else if(16===s.datatypeCode)i=new Float32Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R32F,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RED,this.gl.FLOAT,i),d=this.orientShaderF;else if(64===s.datatypeCode){i=new Float64Array(o);let t=new Float32Array;t=Float32Array.from(i),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R32F,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RED,this.gl.FLOAT,t),d=this.orientShaderF}else 128===s.datatypeCode?(d=this.orientShaderRGBU,d.use(this.gl),this.gl.uniform1i(d.uniforms.hasAlpha,!1),i=new Uint8Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.RGB8UI,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RGB_INTEGER,this.gl.UNSIGNED_BYTE,i)):512===s.datatypeCode?(i=new Uint16Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.R16UI,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RED_INTEGER,this.gl.UNSIGNED_SHORT,i)):2304===s.datatypeCode&&(d=this.orientShaderRGBU,d.use(this.gl),this.gl.uniform1i(d.uniforms.hasAlpha,!0),i=new Uint8Array(o),this.gl.texStorage3D(this.gl.TEXTURE_3D,6,this.gl.RGBA8UI,s.dims[1],s.dims[2],s.dims[3]),this.gl.texSubImage3D(this.gl.TEXTURE_3D,0,0,0,0,s.dims[1],s.dims[2],s.dims[3],this.gl.RGBA_INTEGER,this.gl.UNSIGNED_BYTE,i));void 0===t.global_min&&this.calMinMax(t,i);let g=null;if(e>1){g=this.rgbaTex(g,this.gl.TEXTURE5,this.back.dims),this.gl.bindTexture(this.gl.TEXTURE_3D,g);let t=this.passThroughShader;t.use(this.gl),this.gl.uniform1i(t.uniforms.in3D,2);for(let e=0;e<this.back.dims[3];e++){let n=1/this.back.dims[3]*(e+.5);this.gl.uniform1f(t.uniforms.coordZ,n),this.gl.framebufferTextureLayer(this.gl.FRAMEBUFFER,this.gl.COLOR_ATTACHMENT0,g,0,e),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)}}else g=this.rgbaTex(g,this.gl.TEXTURE5,[2,2,2,2]);d.use(this.gl),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.uniform1f(d.uniforms.cal_min,t.cal_min),this.gl.uniform1f(d.uniforms.cal_max,t.cal_max),this.gl.bindTexture(this.gl.TEXTURE_3D,u),this.gl.uniform1i(d.uniforms.intensityVol,6),this.gl.uniform1i(d.uniforms.blend3D,5),this.gl.uniform1i(d.uniforms.colormap,1),this.gl.uniform1f(d.uniforms.layer,e),this.gl.uniform1f(d.uniforms.numLayers,n),this.gl.uniform1f(d.uniforms.scl_inter,s.scl_inter),this.gl.uniform1f(d.uniforms.scl_slope,s.scl_slope),this.gl.uniform1f(d.uniforms.opacity,r),this.gl.uniformMatrix4fv(d.uniforms.mtx,!1,l);for(let t=0;t<this.back.dims[3];t++){let e=1/this.back.dims[3]*(t+.5);this.gl.uniform1f(d.uniforms.coordZ,e),this.gl.framebufferTextureLayer(this.gl.FRAMEBUFFER,this.gl.COLOR_ATTACHMENT0,a,0,t),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)}this.gl.deleteTexture(u),this.gl.deleteTexture(g),this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.gl.deleteFramebuffer(h),this.renderShader.use(this.gl);let{_:p,vox:m}=this.sliceScale();this.gl.uniform1f(this.renderShader.uniforms.overlays,this.overlays),this.gl.uniform1f(this.renderShader.uniforms.backOpacity,this.volumes[0].opacity),this.gl.uniform4fv(this.renderShader.uniforms.clipPlane,this.scene.clipPlane),this.gl.uniform3fv(this.renderShader.uniforms.texVox,m)},Bt.prototype.colorMaps=function(t=!0){let e=[];for(const[t,n]of Object.entries(i))e.push(t);return console.log(e),!0===t?e.sort():e},Bt.prototype.colormap=function(t=""){let e=this.colorMaps();for(let n=0;n<e.length;n++){let s=e[n];if(console.log(s),t===s)return this.makeLut(i[t].R,i[t].G,i[t].B,i[t].A,i[t].I)}return this.makeLut(i.gray.R,i.gray.G,i.gray.B,i.gray.A,i.gray.I)},Bt.prototype.refreshColormaps=function(){let t=this.volumes.length;if(t<1)return;null!==this.colormapTexture&&this.gl.deleteTexture(this.colormapTexture),this.colormapTexture=this.gl.createTexture(),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.texStorage2D(this.gl.TEXTURE_2D,1,this.gl.RGBA8,256,t),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_R,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);let e=this.colormap(this.volumes[0].colorMap);if(t>1)for(let n=1;n<t;n++){let t=this.colormap(this.volumes[n].colorMap),i=new Uint8ClampedArray(e.length+t.length);i.set(e),i.set(t,e.length),e=i}return this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,256,t,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this},Bt.prototype.makeLut=function(t,e,n,i,s){for(var o=new Uint8ClampedArray(1024),r=0;r<s.length-1;r++)for(var a=s[r],l=s[r+1],h=l-a,c=4*a,u=a;u<=l;u++){var f=(u-a)/h;o[c++]=t[r]+f*(t[r+1]-t[r]),o[c++]=e[r]+f*(e[r+1]-e[r]),o[c++]=n[r]+f*(n[r+1]-n[r]),o[c++]=i[r]+f*(i[r+1]-i[r])}return o},Bt.prototype.sliceScale=function(){var t=[1,this.back.dims[1]*this.back.pixDims[1],this.back.dims[2]*this.back.pixDims[2],this.back.dims[3]*this.back.pixDims[3]],e=Math.max(t[1],Math.max(t[2],t[3]));return{volScale:[t[1]/e,t[2]/e,t[3]/e],vox:[this.back.dims[1],this.back.dims[2],this.back.dims[3]]}},Bt.prototype.mouseClick=function(t,e,n=0,i=!0){var s;if(this.sliceType===this.sliceTypeRender){if(0===n)return;return n>0&&(this.volScaleMultiplier=Math.min(2,1.1*this.volScaleMultiplier)),n<0&&(this.volScaleMultiplier=Math.max(.5,.9*this.volScaleMultiplier)),void this.drawScene()}if(!(this.numScreenSlices<1||this.gl.canvas.height<1||this.gl.canvas.width<1))for(let h=0;h<this.numScreenSlices;h++){var o=this.screenSlices[h].axCorSag;if(o>this.sliceTypeSagittal)continue;var r=this.screenSlices[h].leftTopWidthHeight;let c=!1;r[2]<0&&(c=!0,r[0]+=r[2],r[2]=-r[2]);var a=(t-r[0])/r[2];c&&(a=1-a);var l=1-(e-r[1])/r[3];if(a>=0&&a<1&&l>=0&&l<1)return i?0!==n?((s=this.scene.crosshairPos[2-o]+n)>1&&(s=1),s<0&&(s=0),this.scene.crosshairPos[2-o]=s,void this.drawScene()):(o===this.sliceTypeAxial&&(this.scene.crosshairPos[0]=a,this.scene.crosshairPos[1]=l),o===this.sliceTypeCoronal&&(this.scene.crosshairPos[0]=a,this.scene.crosshairPos[2]=l),o===this.sliceTypeSagittal&&(this.scene.crosshairPos[1]=a,this.scene.crosshairPos[2]=l),this.drawScene(),void this.crosshairPosition$.next([this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]])):(this.scene.crosshairPos[2-o]=n,void this.drawScene());if(null===t&&null===e)return this.scene.crosshairPos[2-o]=n,void this.drawScene()}},Bt.prototype.drawSelectionBox=function(t){this.lineShader.use(this.gl),this.gl.uniform4fv(this.lineShader.uniforms.lineColor,this.opts.selectionBoxColor),this.gl.uniform2fv(this.lineShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4)},Bt.prototype.drawColorbar=function(t){t[2]<=0||t[3]<=0||(this.colorbarShader.use(this.gl),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colormapTexture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST),this.gl.uniform2fv(this.colorbarShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),this.gl.uniform4f(this.colorbarShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR))},Bt.prototype.textWidth=function(t,e){let n=0;var i=new Tt(e);for(let s=0;s<e.length;s++)n+=t*this.fontMets[i[s]].xadv;return n},Bt.prototype.drawChar=function(t,e,n){let i=this.fontMets[n],s=t[0]+e*i.lbwh[0],o=-e*i.lbwh[1],r=e*i.lbwh[2],a=e*i.lbwh[3],l=t[1]+(o-a)+e;return this.gl.uniform4f(this.fontShader.uniforms.leftTopWidthHeight,s,l,r,a),this.gl.uniform4fv(this.fontShader.uniforms.uvLeftTopWidthHeight,i.uv_lbwh),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),e*i.xadv},Bt.prototype.drawText=function(t,e){if(this.opts.textHeight<=0)return;this.fontShader.use(this.gl);let n=this.opts.textHeight*this.gl.canvas.height;this.gl.enable(this.gl.BLEND),this.gl.uniform2f(this.fontShader.uniforms.canvasWidthHeight,this.gl.canvas.width,this.gl.canvas.height),this.gl.uniform4fv(this.fontShader.uniforms.fontColor,this.opts.crosshairColor);let i=n/this.fontMets.size*this.fontMets.distanceRange;i=Math.max(i,1),this.gl.uniform1f(this.fontShader.uniforms.screenPxRange,i);var s=new Tt(e);for(let i=0;i<e.length;i++)t[0]+=this.drawChar(t,n,s[i])},Bt.prototype.drawTextRight=function(t,e){this.opts.textHeight<=0||(this.fontShader.use(this.gl),t[1]-=.5*this.opts.textHeight*this.gl.canvas.height,this.drawText(t,e))},Bt.prototype.drawTextBelow=function(t,e){if(this.opts.textHeight<=0)return;this.fontShader.use(this.gl);let n=this.opts.textHeight*this.gl.canvas.height;t[0]-=.5*this.textWidth(n,e),this.drawText(t,e)},Bt.prototype.draw2D=function(t,e){var n=[this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]];e===this.sliceTypeCoronal&&(n=[this.scene.crosshairPos[0],this.scene.crosshairPos[2],this.scene.crosshairPos[1]]),e===this.sliceTypeSagittal&&(n=[this.scene.crosshairPos[1],this.scene.crosshairPos[2],this.scene.crosshairPos[0]]);let i=this.isRadiologicalConvention&&e<this.sliceTypeSagittal;if(this.sliceShader.use(this.gl),this.gl.uniform1f(this.sliceShader.uniforms.opacity,this.backOpacity),this.gl.uniform1i(this.sliceShader.uniforms.axCorSag,e),this.gl.uniform1f(this.sliceShader.uniforms.slice,n[2]),this.gl.uniform2fv(this.sliceShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]),i&&(this.gl.disable(this.gl.CULL_FACE),t[2]=-t[2],t[0]=t[0]-t[2]),this.gl.uniform4f(this.sliceShader.uniforms.leftTopWidthHeight,t[0],t[1],t[2],t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.screenSlices[this.numScreenSlices].leftTopWidthHeight=t,this.screenSlices[this.numScreenSlices].axCorSag=e,this.numScreenSlices+=1,!(this.opts.crosshairWidth<=0)){this.lineShader.use(this.gl),this.gl.uniform4fv(this.lineShader.uniforms.lineColor,this.opts.crosshairColor),this.gl.uniform2fv(this.lineShader.uniforms.canvasWidthHeight,[this.gl.canvas.width,this.gl.canvas.height]);var s=t[0]+t[2]*n[0];this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,s-.5*this.opts.crosshairWidth,t[1],this.opts.crosshairWidth,t[3]),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4);var o=t[1]+t[3]*(1-n[1]);this.gl.uniform4f(this.lineShader.uniforms.leftTopWidthHeight,t[0],o-.5*this.opts.crosshairWidth,t[2],this.opts.crosshairWidth),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,5,4),this.gl.enable(this.gl.CULL_FACE),i?this.drawTextRight([t[0]+t[2]+1,t[1]+.5*t[3]],"R"):e<this.sliceTypeSagittal&&this.drawTextRight([t[0]+1,t[1]+.5*t[3]],"L"),e===this.sliceTypeAxial&&this.drawTextBelow([t[0]+.5*t[2],t[1]+1],"A"),e>this.sliceTypeAxial&&this.drawTextBelow([t[0]+.5*t[2],t[1]+1],"S"),this.sync()}},Bt.prototype.calculateMvpMatrix=function(t){let e=h(t.modelMatrix);!function(t,e,n){var i,s,o,r,a,l,h,c,u,f,d,g,p=n[0],m=n[1],A=n[2];e===t?(t[12]=e[0]*p+e[4]*m+e[8]*A+e[12],t[13]=e[1]*p+e[5]*m+e[9]*A+e[13],t[14]=e[2]*p+e[6]*m+e[10]*A+e[14],t[15]=e[3]*p+e[7]*m+e[11]*A+e[15]):(i=e[0],s=e[1],o=e[2],r=e[3],a=e[4],l=e[5],h=e[6],c=e[7],u=e[8],f=e[9],d=e[10],g=e[11],t[0]=i,t[1]=s,t[2]=o,t[3]=r,t[4]=a,t[5]=l,t[6]=h,t[7]=c,t[8]=u,t[9]=f,t[10]=d,t[11]=g,t[12]=i*p+a*m+u*A+e[12],t[13]=s*p+l*m+f*A+e[13],t[14]=o*p+h*m+d*A+e[14],t[15]=r*p+c*m+g*A+e[15])}(e,e,t.position);var n=(90-this.scene.renderElevation-t.scale[0])*Math.PI/180;return g(e,e,n,[-1,0,0]),g(e,e,n=this.scene.renderAzimuth*Math.PI/180,[0,0,1]),g(e,e,t.rotationRadians,t.rotation),d(e,e,t.scale),d(e,e,[.57,.57,.57]),e},Bt.prototype.draw3D=function(){let t=Math.min(this.gl.canvas.width,this.gl.canvas.height);if(t<=0)return;t*=this.volScaleMultiplier;let e=this.gl.canvas.width/2,n=this.gl.canvas.height/2,i=t,s=t;this.gl.viewport(e-.5*i,n-.5*s,i,s),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT);let o=null,r=null;this.gl.disable(this.gl.BLEND),this.pickingSurfaceShader.use(this.gl);for(const t of this.objectsToRender3D)t.isVisible&&(t.glFlags&t.CULL_FACE?(this.gl.enable(this.gl.CULL_FACE),t.glFlags&t.CULL_FRONT?this.gl.cullFace(this.gl.FRONT):this.gl.cullFace(this.gl.BACK)):this.gl.disable(this.gl.CULL_FACE),this.gl.enableVertexAttribArray(0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,t.vertexBuffer),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),o=this.calculateMvpMatrix(t),this.gl.uniformMatrix4fv(this.pickingSurfaceShader.uniforms.mvpMtx,!1,o),this.gl.uniform4fv(this.pickingSurfaceShader.uniforms.surfaceColor,t.colorId),this.gl.drawArrays(t.mode,0,t.indexCount));const a=this.mousePos[0]*this.gl.canvas.width/this.gl.canvas.clientWidth,h=this.gl.canvas.height-this.mousePos[1]*this.gl.canvas.height/this.gl.canvas.clientHeight-1,c=new Uint8Array(4);this.gl.readPixels(a,h,1,1,this.gl.RGBA,this.gl.UNSIGNED_BYTE,c),this.selectedObjectId=c[0]+(c[1]<<8)+(c[2]<<16)+(c[3]<<24),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT),this.gl.clearColor(.2,0,0,1);for(const t of this.objectsToRender3D){if(!t.isVisible)continue;this.gl.enableVertexAttribArray(0),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,t.vertexBuffer),this.gl.vertexAttribPointer(0,3,this.gl.FLOAT,!1,0,0),t.glFlags&t.BLEND?(this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)):this.gl.disable(this.gl.BLEND),t.glFlags&t.CULL_FACE?(this.gl.enable(this.gl.CULL_FACE),t.glFlags&t.CULL_FRONT?this.gl.cullFace(this.gl.FRONT):this.gl.cullFace(this.gl.BACK)):this.gl.disable(this.gl.CULL_FACE),o=this.calculateMvpMatrix(t);var u=l();f(u,o);var d=p(0,0,-1,1);m(d,d,u),r=v(d[0],d[1],d[2]),y(r,r);const e=1e-5;Math.abs(r[0])<e&&(r[0]=e),Math.abs(r[1])<e&&(r[1]=e),Math.abs(r[2])<e&&(r[2]=e);for(const e of t.shaders)e.use(this.gl),e.mvpUniformName&&this.gl.uniformMatrix4fv(e.uniforms[e.mvpUniformName],!1,o),e.rayDirUniformName&&this.gl.uniform3fv(e.uniforms[e.rayDirUniformName],r),e.clipPlaneUniformName&&this.gl.uniform4fv(e.uniforms.clipPlane,this.scene.clipPlane),this.gl.drawArrays(t.mode,0,t.indexCount)}let g="azimuth: "+this.scene.renderAzimuth.toFixed(0)+" elevation: "+this.scene.renderElevation.toFixed(0);return this.sync(),g},Bt.prototype.mm2frac=function(t){let e=p(t[0],t[1],t[2],1),n=this.back.dims,i=[0,0,0];if(void 0===n)return i;if(n[1]<1||n[2]<1||n[3]<1)return i;let s=h(this.back.matRAS);return u(s,s),f(s,s),m(e,e,s),i[0]=(e[0]+.5)/n[1],i[1]=(e[1]+.5)/n[2],i[2]=(e[2]+.5)/n[3],i},Bt.prototype.vox2frac=function(t){return[(t[0]+.5)/this.back.dims[1],(t[1]+.5)/this.back.dims[2],(t[2]+.5)/this.back.dims[3]]},Bt.prototype.frac2vox=function(t){return[Math.round(t[0]*this.back.dims[1]-.5),Math.round(t[1]*this.back.dims[2]-.5),Math.round(t[2]*this.back.dims[3]-.5)]},Bt.prototype.frac2mm=function(t){let e=p(t[0],t[1],t[2],1),n=p(this.back.dims[1],this.back.dims[2],this.back.dims[3],1),i=h(this.back.matRAS);return u(i,i),function(t,e,n){t[0]=e[0]*n[0],t[1]=e[1]*n[1],t[2]=e[2]*n[2],t[3]=e[3]*n[3]}(e,e,n),function(t,e,n){t[0]=e[0]+n[0],t[1]=e[1]+n[1],t[2]=e[2]+n[2],t[3]=e[3]+n[3]}(e,e,p(-.5,-.5,-.5,0)),m(e,e,i),this.mm2frac(e),e},Bt.prototype.canvasPos2frac=function(t){let e,n,i;for(let l=0;l<this.numScreenSlices;l++){var s=this.screenSlices[l].axCorSag;if(s>this.sliceTypeSagittal)continue;var o=this.screenSlices[l].leftTopWidthHeight;let h=!1;o[2]<0&&(h=!0,o[0]+=o[2],o[2]=-o[2]);var r=(t[0]-o[0])/o[2];h&&(r=1-r);var a=1-(t[1]-o[1])/o[3];if(r>=0&&r<1&&a>=0&&a<1){switch(s){case this.sliceTypeAxial:case this.sliceTypeCoronal:}s===this.sliceTypeAxial&&(e=r,n=a,i=this.scene.crosshairPos[2]),s===this.sliceTypeCoronal&&(e=r,n=this.scene.crosshairPos[1],i=a),s===this.sliceTypeSagittal&&(e=this.scene.crosshairPos[0],n=r,i=a);break}}return[e,n,i]},Bt.prototype.scaleSlice=function(t,e){let n=this.gl.canvas.clientWidth/t;e*n>this.gl.canvas.clientHeight&&(n=this.gl.canvas.clientHeight/e);let i=t*n,s=e*n;return[.5*(this.gl.canvas.clientWidth-i),.5*(this.gl.canvas.clientHeight-s),i,s]},Bt.prototype.drawScene=function(){this.gl.clearColor(this.opts.backColor[0],this.opts.backColor[1],this.opts.backColor[2],this.opts.backColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT);let t="";if(!this.back.dims)return;if(this.sliceType===this.sliceTypeRender)return this.draw3D();let{volScale:e}=this.sliceScale();if(this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height),this.numScreenSlices=0,this.sliceType===this.sliceTypeAxial){let t=this.scaleSlice(e[0],e[1]);this.draw2D(t,0)}else if(this.sliceType===this.sliceTypeCoronal){let t=this.scaleSlice(e[0],e[2]);this.draw2D(t,1)}else if(this.sliceType===this.sliceTypeSagittal){let t=this.scaleSlice(e[1],e[2]);this.draw2D(t,2)}else{let t=this.scaleSlice(e[0]+e[1],e[1]+e[2]),i=t[2]*e[0]/(e[0]+e[1]),s=this.scaleSlice(e[0]+e[0]+e[1],Math.max(e[1],e[2])),o=s[2]*e[0]/(e[0]+e[0]+e[1]);if(o>i){let t=o/e[0],n=e[1]*t,i=e[2]*t;this.draw2D([s[0],s[1],o,n],0),this.draw2D([s[0]+o,s[1],o,i],1),this.draw2D([s[0]+o+o,s[1],n,i],2)}else{let s=t[2]-i,o=t[3]*e[1]/(e[1]+e[2]),r=t[3]-o;this.draw2D([t[0],t[1]+r,i,o],0),this.draw2D([t[0],t[1],i,r],1),this.draw2D([t[0]+i,t[1],s,r],2);var n=this.opts.colorBarMargin*o;this.drawColorbar([t[0]+i+n,t[1]+r+n,s-n-n,o*this.opts.colorbarHeight])}}if(this.isDragging&&this.sliceType!==this.sliceTypeRender){let t=Math.abs(this.dragStart[0]-this.dragEnd[0]),e=Math.abs(this.dragStart[1]-this.dragEnd[1]);this.drawSelectionBox([Math.min(this.dragStart[0],this.dragEnd[0]),Math.min(this.dragStart[1],this.dragEnd[1]),t,e])}const i=this.frac2mm([this.scene.crosshairPos[0],this.scene.crosshairPos[1],this.scene.crosshairPos[2]]);return t=i[0].toFixed(2)+"×"+i[1].toFixed(2)+"×"+i[2].toFixed(2),this.gl.finish(),t}}},e={};function n(i){var s=e[i];if(void 0!==s)return s.exports;var o=e[i]={exports:{}};return t[i](o,o.exports,n),o.exports}return n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n(326)})()}));
|