modified-dicom-pacs
Version:
A modified version of DICOM PACS implementation
3 lines • 49.5 kB
JavaScript
/*! For license information please see 141.bundle.3cec6f9002d852630212.js.LICENSE.txt */
(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[141],{22590:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});class r extends Array{push(){for(let e=0;e<arguments.length;e++)this.includes(arguments[e])||super.push(arguments[e]);return this.length}}},45128:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>y});var r=n(82946),o=n(50906),a=n(68680);const{vtkErrorMacro:i}=o.c,{DefaultDataType:s}=r.Ay,u=1e-6;function l(e,t,n){const r=e.length;let o,a,i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(a=t;a<r;a+=n)if(!Number.isNaN(e[a])){i=e[a],s=i;break}for(;a<r;a+=n)o=e[a],o<i?i=o:o>s&&(s=o);return{min:i,max:s}}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;if(t<0&&n>1){const t=e.length/n,r=new Float64Array(t);for(let o=0,a=0;o<t;++o){for(let t=a+n;a<t;++a)r[o]+=e[a]*e[a];r[o]**=.5}return l(r,0,1)}return l(e,t<0?0:t,n)}function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n=e||[];for(;n.length<=t;)n.push(null);return n}function p(e){return Object.prototype.toString.call(e).slice(8,-1)}const d={computeRange:c,createRangeHelper:function(){let e=Number.MAX_VALUE,t=-Number.MAX_VALUE,n=0,r=0;return{add(o){e>o&&(e=o),t<o&&(t=o),n++,r+=o},get:()=>({min:e,max:t,count:n,sum:r,mean:r/n}),getRange:()=>({min:e,max:t})}},fastComputeRange:l,getDataType:p,getMaxNorm:function(e){const t=e.getNumberOfComponents();let n=0;const r=new Array(t);for(let o=0;o<e.getNumberOfTuples();++o){e.getTuple(o,r);const i=(0,a.n)(r,t);i>n&&(n=i)}return n}};const m={name:"",numberOfComponents:1,dataType:s,rangeTuple:[0,0]};function g(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Object.assign(t,m,n),!t.empty&&!t.values&&!t.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(t.values?Array.isArray(t.values)&&(t.values=(0,o.b)(t.dataType,t.values)):t.values=(0,o.a)(t.dataType,t.size),t.values&&(t.size=t.size??t.values.length,t.dataType=p(t.values)),(0,o.o)(e,t),(0,o.s)(e,t,["name","numberOfComponents"]),t.size%t.numberOfComponents!=0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");!function(e,t){function n(n){if(n<0)return!1;const r=e.getNumberOfComponents(),a=t.values.length/(r>0?r:1);if(n===a)return!0;if(n>a){const e=t.values;return t.values=(0,o.a)(t.dataType,(n+a)*r),t.values.set(e),!0}return t.size>n*r&&(t.size=n*r,e.dataChange()),!0}t.classHierarchy.push("vtkDataArray"),e.dataChange=()=>{t.ranges=null,e.modified()},e.resize=r=>{n(r);const o=r*e.getNumberOfComponents();return t.size!==o&&(t.size=o,e.dataChange(),!0)},e.initialize=()=>{e.resize(0)},e.getElementComponentSize=()=>t.values.BYTES_PER_ELEMENT,e.getComponent=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.values[e*t.numberOfComponents+n]},e.setComponent=(n,r,o)=>{o!==t.values[n*t.numberOfComponents+r]&&(t.values[n*t.numberOfComponents+r]=o,e.dataChange())},e.getValue=n=>{const r=n/t.numberOfComponents,o=n%t.numberOfComponents;return e.getComponent(r,o)},e.setValue=(n,r)=>{const o=n/t.numberOfComponents,a=n%t.numberOfComponents;e.setComponent(o,a,r)},e.getData=()=>t.size===t.values.length?t.values:t.values.subarray(0,t.size),e.getRange=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,r=n;r<0&&(r=1===t.numberOfComponents?0:t.numberOfComponents);let o=null;return t.ranges||(t.ranges=f(t.ranges,t.numberOfComponents)),o=t.ranges[r],o?(t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple):(o=c(e.getData(),n,t.numberOfComponents),t.ranges[r]=o,t.rangeTuple[0]=o.min,t.rangeTuple[1]=o.max,t.rangeTuple)},e.setRange=(e,n)=>{t.ranges||(t.ranges=f(t.ranges,t.numberOfComponents));const r={min:e.min,max:e.max};return t.ranges[n]=r,t.rangeTuple[0]=r.min,t.rangeTuple[1]=r.max,t.rangeTuple},e.setTuple=(e,n)=>{const r=e*t.numberOfComponents;for(let e=0;e<t.numberOfComponents;e++)t.values[r+e]=n[e]},e.setTuples=(e,n)=>{let r=e*t.numberOfComponents;const o=Math.min(n.length,t.size-r);for(let e=0;e<o;)t.values[r++]=n[e++]},e.insertTuple=(r,o)=>(t.size<=r*t.numberOfComponents&&(t.size=(r+1)*t.numberOfComponents,n(r+1)),e.setTuple(r,o),r),e.insertTuples=(r,o)=>{const a=r+o.length/t.numberOfComponents;return t.size<a*t.numberOfComponents&&(t.size=a*t.numberOfComponents,n(a)),e.setTuples(r,o),a},e.insertNextTuple=n=>{const r=t.size/t.numberOfComponents;return e.insertTuple(r,n)},e.insertNextTuples=n=>{const r=t.size/t.numberOfComponents;return e.insertTuples(r,n)},e.findTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u;for(let r=0;r<t.size;r+=t.numberOfComponents)if(Math.abs(e[0]-t.values[r])<=n){let o=!0;for(let a=1;a<t.numberOfComponents;++a)if(Math.abs(e[a]-t.values[r+a])>n){o=!1;break}if(o)return r/t.numberOfComponents}return-1},e.getTuple=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const r=t.numberOfComponents||1,o=e*r;switch(r){case 4:n[3]=t.values[o+3];case 3:n[2]=t.values[o+2];case 2:n[1]=t.values[o+1];case 1:n[0]=t.values[o];break;default:for(let e=r-1;e>=0;--e)n[e]=t.values[o+e]}return n},e.getTuples=(n,r)=>{const o=(n??0)*t.numberOfComponents,a=(r??e.getNumberOfTuples())*t.numberOfComponents,i=e.getData().subarray(o,a);return i.length>0?i:null},e.getTupleLocation=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)*t.numberOfComponents},e.getNumberOfComponents=()=>t.numberOfComponents,e.getNumberOfValues=()=>t.size,e.getNumberOfTuples=()=>t.size/t.numberOfComponents,e.getDataType=()=>t.dataType,e.newClone=()=>h({empty:!0,name:t.name,dataType:t.dataType,numberOfComponents:t.numberOfComponents}),e.getName=()=>(t.name||(e.modified(),t.name=`vtkDataArray${e.getMTime()}`),t.name),e.setData=(n,r)=>{t.values=n,t.size=n.length,t.dataType=p(n),r&&(t.numberOfComponents=r),t.size%t.numberOfComponents!=0&&(t.numberOfComponents=1),e.dataChange()},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach((e=>{n[e]||delete n[e]}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.deepCopy=n=>{const r=e.getDataType(),o=t.values;e.shallowCopy(n),o?.length>=n.getNumberOfValues()&&r===n.getDataType()?(o.set(n.getData()),t.values=o,e.dataChange()):e.setData(n.getData().slice())},e.interpolateTuple=(n,r,o,a,s,u)=>{const l=t.numberOfComponents||1;l===r.getNumberOfComponents()&&l===a.getNumberOfComponents()||i("numberOfComponents must match");const c=r.getTuple(o),f=a.getTuple(s),p=[];switch(p.length=l,l){case 4:p[3]=c[3]+(f[3]-c[3])*u;case 3:p[2]=c[2]+(f[2]-c[2])*u;case 2:p[1]=c[1]+(f[1]-c[1])*u;case 1:p[0]=c[0]+(f[0]-c[0])*u;break;default:for(let e=0;e<l;e++)p[e]=c[e]+(f[e]-c[e])*u}return e.insertTuple(n,p)}}(e,t)}const h=(0,o.n)(g,"vtkDataArray");var y={newInstance:h,extend:g,...d,...r.Ay}},82946:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>o});const r={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"};var o={DefaultDataType:r.FLOAT,DataTypeByteSize:{Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},VtkDataTypes:r}},52733:(e,t,n)=>{"use strict";n.d(t,{GY:()=>o,kP:()=>i,p8:()=>a,zK:()=>r});const r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o=[1,0,0,0,1,0,0,0,1],a=1e-6,i=1e-12},68680:(e,t,n)=>{"use strict";n.d(t,{b:()=>b,c:()=>A,d:()=>m,j:()=>g,k:()=>p,n:()=>h,s:()=>d});n(51093);var r=n(50906);n(52733);const{vtkErrorMacro:o,vtkWarningMacro:a}=r.m;function i(e){return()=>o(`vtkMath::${e} - NOT IMPLEMENTED`)}const{round:s,floor:u,ceil:l,min:c,max:f}=Math;i("ceilLog2"),i("factorial");i("gaussian");function p(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n}function d(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n}function m(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function g(e,t,n){const r=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],a=e[0]*t[1]-e[1]*t[0];return n[0]=r,n[1]=o,n[2]=a,n}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3;switch(t){case 1:return Math.abs(e);case 2:return Math.sqrt(e[0]*e[0]+e[1]*e[1]);case 3:return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);default:{let n=0;for(let r=0;r<t;r++)n+=e[r]*e[r];return Math.sqrt(n)}}}function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!`${e}`.includes("e"))return+`${Math.round(`${e}e+${t}`)}e-${t}`;const n=`${e}`.split("e");let r="";return+n[1]+t>0&&(r="+"),+`${Math.round(`${+n[0]}e${r}${+n[1]+t}`)}e-${t}`}function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0,0,0],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return t[0]=y(e[0],n),t[1]=y(e[1],n),t[2]=y(e[2],n),t}function v(e,t,n){return e<t?t:e>n?n:e}function A(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[0,0,0];return r[0]=v(e[0],t[0],n[0]),r[1]=v(e[1],t[1],n[1]),r[2]=v(e[2],t[2],n[2]),r}i("GetScalarTypeFittingRange"),i("GetAdjustedScalarRange");const{isFinite:T,isNaN:O}=Number},94884:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>r});var r={AttributeCopyOperations:{COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},AttributeLimitTypes:{MAX:0,EXACT:1,NOLIMIT:2},AttributeTypes:{SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},CellGhostTypes:{DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},DesiredOutputPrecision:{DEFAULT:0,SINGLE:1,DOUBLE:2},PointGhostTypes:{DUPLICATEPOINT:1,HIDDENPOINT:2},ghostArrayName:"vtkGhostType"}},51250:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>d});var r=n(50906),o=n(68680),a=n(52662),i=n(32090),s=n(89780),u=n(13422),l=n(44753);const{vtkErrorMacro:c}=r.m;const f={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:u.e.EMPTY};function p(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Object.assign(t,f,n),i.Ay.extend(e,t,n),t.direction?Array.isArray(t.direction)&&(t.direction=new Float64Array(t.direction.slice(0,9))):t.direction=l.w0.identity(new Float64Array(9)),t.indexToWorld=new Float64Array(16),t.worldToIndex=new Float64Array(16),r.m.get(e,t,["indexToWorld","worldToIndex"]),r.m.setGetArray(e,t,["origin","spacing"],3),r.m.setGetArray(e,t,["direction"],9),r.m.getArray(e,t,["extent"],6),function(e,t){t.classHierarchy.push("vtkImageData"),e.setExtent=function(){if(t.deleted)return c("instance deleted - cannot call any method"),!1;for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];const a=1===r.length?r[0]:r;if(6!==a.length)return!1;const i=t.extent.some(((e,t)=>e!==a[t]));return i&&(t.extent=a.slice(),t.dataDescription=s.A.getDataDescriptionFromExtent(t.extent),e.modified()),i},e.setDimensions=function(){let n,r,o;if(t.deleted)c("instance deleted - cannot call any method");else{if(1===arguments.length){const e=arguments.length<=0?void 0:arguments[0];n=e[0],r=e[1],o=e[2]}else{if(3!==arguments.length)return void c("Bad dimension specification");n=arguments.length<=0?void 0:arguments[0],r=arguments.length<=1?void 0:arguments[1],o=arguments.length<=2?void 0:arguments[2]}e.setExtent(0,n-1,0,r-1,0,o-1)}},e.getDimensions=()=>[t.extent[1]-t.extent[0]+1,t.extent[3]-t.extent[2]+1,t.extent[5]-t.extent[4]+1],e.getNumberOfCells=()=>{const t=e.getDimensions();let n=1;for(let e=0;e<3;e++){if(0===t[e])return 0;t[e]>1&&(n*=t[e]-1)}return n},e.getNumberOfPoints=()=>{const t=e.getDimensions();return t[0]*t[1]*t[2]},e.getPoint=n=>{const r=e.getDimensions();if(0===r[0]||0===r[1]||0===r[2])return c("Requesting a point from an empty image."),null;const o=new Float64Array(3);switch(t.dataDescription){case u.e.EMPTY:return null;case u.e.SINGLE_POINT:break;case u.e.X_LINE:o[0]=n;break;case u.e.Y_LINE:o[1]=n;break;case u.e.Z_LINE:o[2]=n;break;case u.e.XY_PLANE:o[0]=n%r[0],o[1]=n/r[0];break;case u.e.YZ_PLANE:o[1]=n%r[1],o[2]=n/r[1];break;case u.e.XZ_PLANE:o[0]=n%r[0],o[2]=n/r[0];break;case u.e.XYZ_GRID:o[0]=n%r[0],o[1]=n/r[0]%r[1],o[2]=n/(r[0]*r[1]);break;default:c("Invalid dataDescription")}const a=[0,0,0];return e.indexToWorld(o,a),a},e.getBounds=()=>e.extentToBounds(e.getSpatialExtent()),e.extentToBounds=e=>a.Ay.transformBounds(e,t.indexToWorld),e.getSpatialExtent=()=>a.Ay.inflate([...t.extent],.5),e.computeTransforms=()=>{l.pB.fromTranslation(t.indexToWorld,t.origin),t.indexToWorld[0]=t.direction[0],t.indexToWorld[1]=t.direction[1],t.indexToWorld[2]=t.direction[2],t.indexToWorld[4]=t.direction[3],t.indexToWorld[5]=t.direction[4],t.indexToWorld[6]=t.direction[5],t.indexToWorld[8]=t.direction[6],t.indexToWorld[9]=t.direction[7],t.indexToWorld[10]=t.direction[8],l.pB.scale(t.indexToWorld,t.indexToWorld,t.spacing),l.pB.invert(t.worldToIndex,t.indexToWorld)},e.indexToWorld=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return l.eR.transformMat4(n,e,t.indexToWorld),n},e.indexToWorldVec3=e.indexToWorld,e.worldToIndex=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return l.eR.transformMat4(n,e,t.worldToIndex),n},e.worldToIndexVec3=e.worldToIndex,e.indexToWorldBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return a.Ay.transformBounds(e,t.indexToWorld,n)},e.worldToIndexBounds=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return a.Ay.transformBounds(e,t.worldToIndex,n)},e.onModified(e.computeTransforms),e.computeTransforms(),e.getCenter=()=>a.Ay.getCenter(e.getBounds()),e.computeHistogram=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=[0,0,0,0,0,0];e.worldToIndexBounds(t,r);const i=[0,0,0],s=[0,0,0];a.Ay.computeCornerPoints(r,i,s),(0,o.b)(i,i),(0,o.b)(s,s);const u=e.getDimensions();(0,o.c)(i,[0,0,0],[u[0]-1,u[1]-1,u[2]-1],i),(0,o.c)(s,[0,0,0],[u[0]-1,u[1]-1,u[2]-1],s);const l=u[0],c=u[0]*u[1],f=e.getPointData().getScalars().getData();let p=-1/0,d=1/0,m=0,g=0,h=0;for(let e=i[2];e<=s[2];e++)for(let t=i[1];t<=s[1];t++){let o=i[0]+t*l+e*c;for(let a=i[0];a<=s[0];a++){if(!n||n([a,t,e],r)){const e=f[o];e>p&&(p=e),e<d&&(d=e),m+=e*e,g+=e,h+=1}++o}}const y=h>0?g/h:0,b=h?Math.abs(m/h-y*y):0;return{minimum:d,maximum:p,average:y,variance:b,sigma:Math.sqrt(b),count:h}},e.computeIncrements=function(e){const t=[];let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;for(let r=0;r<3;++r)t[r]=n,n*=e[2*r+1]-e[2*r]+1;return t},e.computeOffsetIndex=t=>{let[n,r,o]=t;const a=e.getExtent(),i=e.getPointData().getScalars().getNumberOfComponents(),s=e.computeIncrements(a,i);return Math.floor((Math.round(n)-a[0])*s[0]+(Math.round(r)-a[2])*s[1]+(Math.round(o)-a[4])*s[2])},e.getOffsetIndexFromWorld=t=>{const n=e.getExtent(),r=e.worldToIndex(t);for(let e=0;e<3;++e)if(r[e]<n[2*e]||r[e]>n[2*e+1])return c(`GetScalarPointer: Pixel ${r} is not in memory. Current extent = ${n}`),NaN;return e.computeOffsetIndex(r)},e.getScalarValueFromWorld=function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const r=e.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=r)return c(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${r}`),NaN;const o=e.getOffsetIndexFromWorld(t);return Number.isNaN(o)?o:e.getPointData().getScalars().getComponent(o,n)}}(e,t)}var d={newInstance:r.m.newInstance(p,"vtkImageData"),extend:p}},50906:(e,t,n)=>{"use strict";n.d(t,{a:()=>T,b:()=>O,c:()=>ie,m:()=>ae,n:()=>H,o:()=>P,s:()=>$});var r=n(64771),o=n.n(r),a=n(66388),i=n(22590);let s=0;const u=Symbol("void");const l={};function c(){}["log","debug","info","warn","error","time","timeEnd","group","groupEnd"].forEach((e=>{l[e]=c})),a.n.console=console.hasOwnProperty("log")?console:l;const f={debug:c,error:a.n.console.error||c,info:a.n.console.info||c,log:a.n.console.log||c,warn:a.n.console.warn||c};function p(e,t){f[e]&&(f[e]=t||c)}function d(){f.log(...arguments)}function m(){f.info(...arguments)}function g(){f.debug(...arguments)}function h(){f.error(...arguments)}function y(){f.warn(...arguments)}const b={};function v(e){b[e]||(f.error(e),b[e]=!0)}const A=Object.create(null);A.Float32Array=Float32Array,A.Float64Array=Float64Array,A.Uint8Array=Uint8Array,A.Int8Array=Int8Array,A.Uint16Array=Uint16Array,A.Int16Array=Int16Array,A.Uint32Array=Uint32Array,A.Int32Array=Int32Array,A.Uint8ClampedArray=Uint8ClampedArray;try{A.BigInt64Array=BigInt64Array,A.BigUint64Array=BigUint64Array}catch{}function T(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new(A[e]||Float64Array)(...n)}function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return(A[e]||Float64Array).from(...n)}function E(e){return e.charAt(0).toUpperCase()+e.slice(1)}function M(e){return E("_"===e[0]?e.slice(1):e)}function C(e){return e.charAt(0).toLowerCase()+e.slice(1)}function I(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;const r=["TB","GB","MB","KB"];let o=Number(e),a="B";for(;o>n;)o/=n,a=r.pop();return`${o.toFixed(t)} ${a}`}function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";const n=[];let r=e;for(;r>1e3;)n.push(("000"+r%1e3).slice(-3)),r=Math.floor(r/1e3);return r>0&&n.push(r),n.reverse(),n.join(t)}function N(e){Object.keys(e).forEach((t=>{Array.isArray(e[t])&&(e[t]=[].concat(e[t]))}))}function k(e){return e&&e.isA?e.getState():e}function w(e){setTimeout(e,0)}function S(e,t){const n=performance.now();e.finally((()=>{const e=performance.now()-n;t(e)}))}function P(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};N(t);const n=[];if(Number.isInteger(t.mtime)||(t.mtime=++s),"classHierarchy"in t){if(!(t.classHierarchy instanceof i.A)){const e=new i.A;for(let n=0;n<t.classHierarchy.length;n++)e.push(t.classHierarchy[n]);t.classHierarchy=e}}else t.classHierarchy=new i.A("vtkObject");function r(e){n[e]=null}return e.isDeleted=()=>!!t.deleted,e.modified=r=>{t.deleted?h("instance deleted - cannot call any method"):r&&r<e.getMTime()||(t.mtime=++s,n.forEach((t=>t&&t(e))))},e.onModified=e=>{if(t.deleted)return h("instance deleted - cannot call any method"),null;const o=n.length;return n.push(e),function(e){return Object.freeze({unsubscribe:function(){r(e)}})}(o)},e.getMTime=()=>t.mtime,e.isA=e=>{let n=t.classHierarchy.length;for(;n--;)if(t.classHierarchy[n]===e)return!0;return!1},e.getClassName=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.classHierarchy[t.classHierarchy.length-1-e]},e.set=function(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=!1;return Object.keys(n).forEach((i=>{const s=o?null:e[`set${E(i)}`];s&&Array.isArray(n[i])&&s.length>1?a=s(...n[i])||a:s?a=s(n[i])||a:(-1!==["mtime"].indexOf(i)||r||y(`Warning: Set value to model directly ${i}, ${n[i]}`),a=t[i]!==n[i]||a,t[i]=n[i])})),a},e.get=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];if(!n.length)return t;const o={};return n.forEach((e=>{o[e]=t[e]})),o},e.getReferenceByName=e=>t[e],e.delete=()=>{Object.keys(t).forEach((e=>delete t[e])),n.forEach(((e,t)=>r(t))),t.deleted=!0},e.getState=()=>{if(t.deleted)return null;const n={...t,vtkClass:e.getClassName()};Object.keys(n).forEach((e=>{var t;null===n[e]||void 0===n[e]||"_"===e[0]?delete n[e]:n[e].isA?n[e]=n[e].getState():Array.isArray(n[e])?n[e]=n[e].map(k):(t=n[e],Object.values(A).some((e=>t instanceof e))&&(n[e]=Array.from(n[e])))}));const r={};return Object.keys(n).sort().forEach((e=>{r[e]=n[e]})),r.mtime&&delete r.mtime,r},e.shallowCopy=function(n){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(n.getClassName()!==e.getClassName())throw new Error(`Cannot ShallowCopy ${n.getClassName()} into ${e.getClassName()}`);const o=n.get(),a=Object.keys(t).sort();Object.keys(o).sort().forEach((e=>{const n=a.indexOf(e);-1===n?r&&g(`add ${e} in shallowCopy`):a.splice(n,1),t[e]=o[e]})),a.length&&r&&g(`Untouched keys: ${a.join(", ")}`),e.modified()},e.toJSON=function(){return e.getState()},e}const L={object:(e,t,n)=>function(){return{...t[n.name]}}};function D(e,t,n){n.forEach((n=>{if("object"==typeof n){const r=L[n.type];e[`get${M(n.name)}`]=r?r(e,t,n):()=>t[n.name]}else e[`get${M(n)}`]=()=>t[n]}))}const R={enum(e,t,n){const r=`_on${M(n.name)}Changed`;return o=>{if("string"==typeof o){if(void 0!==n.enum[o])return t[n.name]!==n.enum[o]&&(t[n.name]=n.enum[o],e.modified(),!0);throw h(`Set Enum with invalid argument ${n}, ${o}`),new RangeError("Set Enum with invalid string argument")}if("number"==typeof o){if(t[n.name]!==o){if(-1!==Object.keys(n.enum).map((e=>n.enum[e])).indexOf(o)){const a=t[n.name];return t[n.name]=o,t[r]?.(e,t,o,a),e.modified(),!0}throw h(`Set Enum outside numeric range ${n}, ${o}`),new RangeError("Set Enum outside numeric range")}return!1}throw h(`Set Enum with invalid argument (String/Number) ${n}, ${o}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(e,t,n){const r=`_on${M(n.name)}Changed`;return a=>{if(!o()(t[n.name],a)){const o=t[n.name];return t[n.name]=a,t[r]?.(e,t,a,o),e.modified(),!0}return!1}}};function j(e){if("object"==typeof e){const t=R[e.type];if(t)return(n,r)=>t(n,r,e);throw h(`No setter for field ${e}`),new TypeError("No setter for field")}return function(t,n){const r=`_on${M(e)}Changed`;return function(o){if(n.deleted)return h("instance deleted - cannot call any method"),!1;if(n[e]!==o){const a=n[e.name];return n[e]=o,n[r]?.(t,n,o,a),t.modified(),!0}return!1}}}function $(e,t,n){n.forEach((n=>{"object"==typeof n?e[`set${M(n.name)}`]=j(n)(e,t):e[`set${M(n)}`]=j(n)(e,t)}))}function _(e,t,n){D(e,t,n),$(e,t,n)}function z(e,t,n){n.forEach((n=>{e[`get${M(n)}`]=()=>t[n]?Array.from(t[n]):t[n],e[`get${M(n)}ByReference`]=()=>t[n]}))}function Y(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;n.forEach((n=>{if(t[n]&&r&&t[n].length!==r)throw new RangeError(`Invalid initial number of values for array (${n})`);const a=`_on${M(n)}Changed`;e[`set${M(n)}`]=function(){if(t.deleted)return h("instance deleted - cannot call any method"),!1;for(var i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];let l,c=s,f=!1;if(1===c.length&&(null==c[0]||c[0].length>=0)&&(c=c[0],f=!0),null==c)l=t[n]!==c;else{if(r&&c.length!==r){if(!(c.length<r&&void 0!==o))throw new RangeError(`Invalid number of values for array setter (${n})`);for(c=Array.from(c),f=!1;c.length<r;)c.push(o)}l=null==t[n]||t[n].length!==c.length;for(let e=0;!l&&e<c.length;++e)l=t[n][e]!==c[e];l&&f&&(c=Array.from(c))}if(l){const r=t[n.name];t[n]=c,t[a]?.(e,t,c,r),e.modified()}return l},e[`set${M(n)}From`]=e=>{const r=t[n];e.forEach(((e,t)=>{r[t]=e}))}}))}function F(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;z(e,t,n),Y(e,t,n,r,o)}function U(e,t,n){for(let e=0;e<n.length;e++){const r=n[e];void 0!==t[r]&&(t[`_${r}`]=t[r],delete t[r])}}function W(e,t,n,r){function o(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;t.deleted?h("instance deleted - cannot call any method"):r>=t.numberOfInputs?h(`algorithm ${e.getClassName()} only has ${t.numberOfInputs} input ports. To add more input ports, use addInputData()`):(t.inputData[r]!==n||t.inputConnection[r])&&(t.inputData[r]=n,t.inputConnection[r]=null,e.modified&&e.modified())}function i(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.deleted)h("instance deleted - cannot call any method");else{if(r>=t.numberOfInputs){let n=`algorithm ${e.getClassName()} only has `;return n+=`${t.numberOfInputs}`,n+=" input ports. To add more input ports, use addInputConnection()",void h(n)}t.inputData[r]=null,t.inputConnection[r]=n}}function s(){let e=t.numberOfInputs;for(;e&&!t.inputData[e-1]&&!t.inputConnection[e-1];)e--;return e===t.numberOfInputs&&t.numberOfInputs++,e}function u(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.deleted?(h("instance deleted - cannot call any method"),null):(e.shouldUpdate()&&e.update(),t.output[n])}if(t.inputData?t.inputData=t.inputData.map(a.A):t.inputData=[],t.inputConnection?t.inputConnection=t.inputConnection.map(a.A):t.inputConnection=[],t.output?t.output=t.output.map(a.A):t.output=[],t.inputArrayToProcess?t.inputArrayToProcess=t.inputArrayToProcess.map(a.A):t.inputArrayToProcess=[],t.numberOfInputs=n,e.shouldUpdate=()=>{const n=e.getMTime();let o=1/0,a=r;for(;a--;){if(!t.output[a]||t.output[a].isDeleted())return!0;const e=t.output[a].getMTime();if(e<n)return!0;e<o&&(o=e)}for(a=t.numberOfInputs;a--;)if(t.inputConnection[a]?.filter.shouldUpdate()||e.getInputData(a)?.getMTime()>o)return!0;return!1},t.numberOfInputs){let n=t.numberOfInputs;for(;n--;)t.inputData.push(null),t.inputConnection.push(null);e.setInputData=o,e.setInputConnection=i,e.addInputData=function(e){t.deleted?h("instance deleted - cannot call any method"):o(e,s())},e.addInputConnection=function(e){t.deleted?h("instance deleted - cannot call any method"):i(e,s())},e.getInputData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]&&(t.inputData[e]=t.inputConnection[e]()),t.inputData[e]},e.getInputConnection=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return t.inputConnection[e]}}r&&(e.getOutputData=u,e.getOutputPort=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const n=()=>u(t);return n.filter=e,n}),e.update=()=>{const n=[];if(t.numberOfInputs){let r=0;for(;r<t.numberOfInputs;)n[r]=e.getInputData(r),r++}e.shouldUpdate()&&e.requestData&&e.requestData(n,t.output)},e.getNumberOfInputPorts=()=>t.numberOfInputs,e.getNumberOfOutputPorts=()=>r||t.output.length,e.getInputArrayToProcess=e=>{const n=t.inputArrayToProcess[e],r=t.inputData[e];return n&&r?r[`get${n.fieldAssociation}`]().getArray(n.arrayName):null},e.setInputArrayToProcess=function(e,n,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"Scalars";for(;t.inputArrayToProcess.length<e;)t.inputArrayToProcess.push(null);t.inputArrayToProcess[e]={arrayName:n,fieldAssociation:r,attributeType:o}}}const B=Symbol("Event abort");function G(e,t,n){const r=[],o=e.delete;let a=1;function i(e){for(let t=0;t<r.length;++t){const[n]=r[t];if(n===e)return void r.splice(t,1)}}e[`invoke${M(n)}`]=function(){if(t.deleted)return void h("instance deleted - cannot call any method");const n=r.slice();for(let t=0;t<n.length;++t){const[,r,o]=n[t];if(r)if(o<0)setTimeout((()=>r.apply(e,arguments)),1-o);else{if(r.apply(e,arguments)===B)break}}},e[`on${M(n)}`]=function(e){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!e.apply)return console.error(`Invalid callback for event ${n}`),null;if(t.deleted)return h("instance deleted - cannot call any method"),null;const s=a++;return r.push([s,e,o]),r.sort(((e,t)=>t[2]-e[2])),function(e){return Object.freeze({unsubscribe:function(){i(e)}})}(s)},e.delete=()=>{o(),r.forEach((e=>{let[t]=e;return i(t)}))}}function H(e,t){const n=function(){const t={};return e(t,{},arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Object.freeze(t)};return t&&a.A.register(t,n),n}function V(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.filter((e=>!!e)).map((e=>e(...n)))}}function X(e){return e&&e.isA&&e.isA("vtkObject")}function q(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(X(e)){if(r.indexOf(e)>=0)return n;r.push(e);const o=t(e);void 0!==o&&n.push(o);const a=e.get();Object.keys(a).forEach((e=>{const o=a[e];Array.isArray(o)?o.forEach((e=>{q(e,t,n,r)})):q(o,t,n,r)}))}return n}function K(e,t,n){var r=this;let o;const a=function(){for(var a=arguments.length,i=new Array(a),s=0;s<a;s++)i[s]=arguments[s];const u=r,l=n&&!o;clearTimeout(o),o=setTimeout((()=>{o=null,n||e.apply(u,i)}),t),l&&e.apply(u,i)};return a.cancel=()=>clearTimeout(o),a}function J(e,t){let n=!1,r=null;function o(){n=!1,null!==r&&(a(...r),r=null)}function a(){for(var a=arguments.length,i=new Array(a),s=0;s<a;s++)i[s]=arguments[s];n?r=i:(n=!0,e(...i),setTimeout(o,t))}return a}function Z(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t.keystore=Object.assign(t.keystore||{},n),e.setKey=(e,n)=>{t.keystore[e]=n},e.getKey=e=>t.keystore[e],e.getAllKeys=()=>Object.keys(t.keystore),e.deleteKey=e=>delete t.keystore[e],e.clearKeystore=()=>e.getAllKeys().forEach((e=>delete t.keystore[e]))}let Q=1;const ee="__root__";function te(e,t){Z(e,t);const n=e.delete;t.proxyId=""+Q++,t.ui=JSON.parse(JSON.stringify(t.ui||[])),D(e,t,["proxyId","proxyGroup","proxyName"]),_(e,t,["proxyManager"]);const r={},o={};function a(e,t){o[t]||(o[t]=[]);const n=o[t];for(let t=0;t<e.length;t++)n.push(e[t].name),r[e[t].name]=e[t],e[t].children&&e[t].children.length&&a(e[t].children,e[t].name)}function i(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee;const r=[],a=t.proxyId,s=function(){return o[arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee]}(n)||[];for(let t=0;t<s.length;t++){const n=s[t],o=e[`get${M(n)}`],u={id:a,name:n,value:o?o():void 0},l=i(n);l.length&&(u.children=l),r.push(u)}return r}a(t.ui,ee),e.updateUI=n=>{t.ui=JSON.parse(JSON.stringify(n||[])),Object.keys(r).forEach((e=>delete r[e])),Object.keys(o).forEach((e=>delete o[e])),a(t.ui,ee),e.modified()},e.updateProxyProperty=(e,t)=>{const n=r[e];n?Object.assign(n,t):r[e]={...t}},e.activate=()=>{if(t.proxyManager){const n=`setActive${M(e.getProxyGroup().slice(0,-1))}`;t.proxyManager[n]&&t.proxyManager[n](e)}},t.propertyLinkSubscribers={},e.registerPropertyLinkForGC=(e,n)=>{n in t.propertyLinkSubscribers||(t.propertyLinkSubscribers[n]=[]),t.propertyLinkSubscribers[n].push(e)},e.gcPropertyLinks=n=>{const r=t.propertyLinkSubscribers[n]||[];for(;r.length;)r.pop().unbind(e)},t.propertyLinkMap={},e.getPropertyLink=function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t.propertyLinkMap[e])return t.propertyLinkMap[e];let r=null;const o=[];let a=0,i=!1;function s(n){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(i)return null;const u=[];let l=null;for(a=o.length;a--;){const e=o[a];e.instance===n?l=e:u.push(e)}if(!l)return null;const c=l.instance[`get${M(l.propertyName)}`]();if(!function(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}(c,r)||s){for(r=c,i=!0;u.length;){const e=u.pop();e.instance.set({[e.propertyName]:r})}i=!1}return t.propertyLinkMap[e].persistent&&(t.propertyLinkMap[e].value=c),c}function u(e,t){const n=[];for(a=o.length;a--;){const r=o[a];r.instance!==e||r.propertyName!==t&&void 0!==t||(r.subscription.unsubscribe(),n.push(a))}for(;n.length;)o.splice(n.pop(),1)}const l={bind:function(n,r){let a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=n.onModified(s),l=o[0];return o.push({instance:n,propertyName:r,subscription:i}),a&&(t.propertyLinkMap[e].persistent&&void 0!==t.propertyLinkMap[e].value?n.set({[r]:t.propertyLinkMap[e].value}):l&&s(l.instance,!0)),{unsubscribe:()=>u(n,r)}},unbind:u,unsubscribe:function(){for(;o.length;)o.pop().subscription.unsubscribe()},persistent:n};return t.propertyLinkMap[e]=l,l},e.listPropertyNames=()=>i().map((e=>e.name)),e.getPropertyByName=e=>i().find((t=>t.name===e)),e.getPropertyDomainByName=e=>(r[e]||{}).domain,e.getProxySection=()=>({id:t.proxyId,name:t.proxyGroup,ui:t.ui,properties:i()}),e.delete=()=>{const r=Object.keys(t.propertyLinkMap);let o=r.length;for(;o--;)t.propertyLinkMap[r[o]].unsubscribe();Object.keys(t.propertyLinkSubscribers).forEach(e.gcPropertyLinks),n()},e.getState=()=>null,w((function(){if(t.links)for(let n=0;n<t.links.length;n++){const{link:r,property:o,persistent:a,updateOnBind:i,type:s}=t.links[n];if("application"===s){const n=t.proxyManager.getPropertyLink(r,a);e.registerPropertyLinkForGC(n,"application"),n.bind(e,o,i)}}}))}function ne(e,t,n){const r=e.delete,o=[],a=Object.keys(n);let i=a.length;for(;i--;){const r=a[i],{modelKey:s,property:u,modified:l=!0}=n[r],c=M(u),f=M(r);e[`get${f}`]=t[s][`get${c}`],e[`set${f}`]=t[s][`set${c}`],l&&o.push(t[s].onModified(e.modified))}e.delete=()=>{for(;o.length;)o.pop().unsubscribe();r()}}function re(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};function o(e){const n=Object.keys(e);let r=n.length;for(;r--;){const o=n[r];t[o].set(e[o])}}t.this=e;const a=Object.keys(r);let i=a.length;for(;i--;){const s=a[i];t[s]=r[s];const u=n[s];e[`set${M(s)}`]=n=>{if(n!==t[s]){t[s]=n;o(u[n]),e.modified()}}}a.length&&D(e,t,a)}function oe(e){let t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n||t,pixelX:r,pixelY:o||r}}var ae={algo:W,capitalize:E,chain:V,debounce:K,enumToString:function(e,t){return Object.keys(e).find((n=>e[n]===t))},event:G,EVENT_ABORT:B,formatBytesToProperUnit:I,formatNumbersWithThousandSeparator:x,get:D,getArray:z,getCurrentGlobalMTime:function(){return s},getStateArrayMapFunc:k,isVtkObject:X,keystore:Z,measurePromiseExecution:S,moveToProtected:U,newInstance:H,newTypedArray:T,newTypedArrayFrom:O,normalizeWheel:oe,obj:P,proxy:te,proxyPropertyMapping:ne,proxyPropertyState:re,safeArrays:N,set:$,setArray:Y,setGet:_,setGetArray:F,setImmediate:w,setLoggerFunction:p,throttle:J,traverseInstanceTree:q,TYPED_ARRAYS:A,uncapitalize:C,VOID:u,vtkDebugMacro:g,vtkErrorMacro:h,vtkInfoMacro:m,vtkLogMacro:d,vtkOnceErrorMacro:v,vtkWarningMacro:y},ie=Object.freeze({__proto__:null,VOID:u,setLoggerFunction:p,vtkLogMacro:d,vtkInfoMacro:m,vtkDebugMacro:g,vtkErrorMacro:h,vtkWarningMacro:y,vtkOnceErrorMacro:v,TYPED_ARRAYS:A,newTypedArray:T,newTypedArrayFrom:O,capitalize:E,_capitalize:M,uncapitalize:C,formatBytesToProperUnit:I,formatNumbersWithThousandSeparator:x,setImmediateVTK:w,measurePromiseExecution:S,obj:P,get:D,set:$,setGet:_,getArray:z,setArray:Y,setGetArray:F,moveToProtected:U,algo:W,EVENT_ABORT:B,event:G,newInstance:H,chain:V,isVtkObject:X,traverseInstanceTree:q,debounce:K,throttle:J,keystore:Z,proxy:te,proxyPropertyMapping:ne,proxyPropertyState:re,normalizeWheel:oe,default:ae})},66388:(e,t,n)=>{"use strict";n.d(t,{A:()=>i,n:()=>o});var r=n(60224);const o=n.n(r)()(),a={vtkObject:()=>null};function i(e){if(null==e)return e;if(e.isA)return e;if(!e.vtkClass)return o.console&&o.console.error&&o.console.error("Invalid VTK object"),null;const t=a[e.vtkClass];if(!t)return o.console&&o.console.error&&o.console.error(`No vtk class found for Object of type ${e.vtkClass}`),null;const n={...e};Object.keys(n).forEach((e=>{n[e]&&"object"==typeof n[e]&&n[e].vtkClass&&(n[e]=i(n[e]))}));const r=t(n);return r&&r.modified&&r.modified(),r}i.register=function(e,t){a[e]=t}},64771:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},47705:(e,t,n)=>{"use strict";n.d(t,{ARRAY_TYPE:()=>o,EPSILON:()=>r,RANDOM:()=>a});var r=1e-6,o="undefined"!=typeof Float32Array?Float32Array:Array,a=Math.random;Math.PI;Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)})},44753:(e,t,n)=>{"use strict";n.d(t,{w0:()=>o,pB:()=>a,eR:()=>u});var r=n(47705),o=(n(99304),n(28806),n(10623)),a=n(20126);n(57535),n(63945);i=new r.ARRAY_TYPE(2),r.ARRAY_TYPE!=Float32Array&&(i[0]=0,i[1]=0),s=i;var i,s,u=n(52519);n(81254)},10623:(e,t,n)=>{"use strict";n.r(t),n.d(t,{add:()=>N,adjoint:()=>d,clone:()=>i,copy:()=>s,create:()=>o,determinant:()=>m,equals:()=>L,exactEquals:()=>P,frob:()=>x,fromMat2d:()=>O,fromMat4:()=>a,fromQuat:()=>E,fromRotation:()=>A,fromScaling:()=>T,fromTranslation:()=>v,fromValues:()=>u,identity:()=>c,invert:()=>p,mul:()=>D,multiply:()=>g,multiplyScalar:()=>w,multiplyScalarAndAdd:()=>S,normalFromMat4:()=>M,projection:()=>C,rotate:()=>y,scale:()=>b,set:()=>l,str:()=>I,sub:()=>R,subtract:()=>k,translate:()=>h,transpose:()=>f});var r=n(47705);function o(){var e=new r.ARRAY_TYPE(9);return r.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function a(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function i(e){var t=new r.ARRAY_TYPE(9);return 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}function s(e,t){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}function u(e,t,n,o,a,i,s,u,l){var c=new r.ARRAY_TYPE(9);return c[0]=e,c[1]=t,c[2]=n,c[3]=o,c[4]=a,c[5]=i,c[6]=s,c[7]=u,c[8]=l,c}function l(e,t,n,r,o,a,i,s,u,l){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=a,e[5]=i,e[6]=s,e[7]=u,e[8]=l,e}function c(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function f(e,t){if(e===t){var n=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=n,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e}function p(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],u=t[6],l=t[7],c=t[8],f=c*i-s*l,p=-c*a+s*u,d=l*a-i*u,m=n*f+r*p+o*d;return m?(m=1/m,e[0]=f*m,e[1]=(-c*r+o*l)*m,e[2]=(s*r-o*i)*m,e[3]=p*m,e[4]=(c*n-o*u)*m,e[5]=(-s*n+o*a)*m,e[6]=d*m,e[7]=(-l*n+r*u)*m,e[8]=(i*n-r*a)*m,e):null}function d(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],u=t[6],l=t[7],c=t[8];return e[0]=i*c-s*l,e[1]=o*l-r*c,e[2]=r*s-o*i,e[3]=s*u-a*c,e[4]=n*c-o*u,e[5]=o*a-n*s,e[6]=a*l-i*u,e[7]=r*u-n*l,e[8]=n*i-r*a,e}function m(e){var t=e[0],n=e[1],r=e[2],o=e[3],a=e[4],i=e[5],s=e[6],u=e[7],l=e[8];return t*(l*a-i*u)+n*(-l*o+i*s)+r*(u*o-a*s)}function g(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],u=t[5],l=t[6],c=t[7],f=t[8],p=n[0],d=n[1],m=n[2],g=n[3],h=n[4],y=n[5],b=n[6],v=n[7],A=n[8];return e[0]=p*r+d*i+m*l,e[1]=p*o+d*s+m*c,e[2]=p*a+d*u+m*f,e[3]=g*r+h*i+y*l,e[4]=g*o+h*s+y*c,e[5]=g*a+h*u+y*f,e[6]=b*r+v*i+A*l,e[7]=b*o+v*s+A*c,e[8]=b*a+v*u+A*f,e}function h(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],u=t[5],l=t[6],c=t[7],f=t[8],p=n[0],d=n[1];return e[0]=r,e[1]=o,e[2]=a,e[3]=i,e[4]=s,e[5]=u,e[6]=p*r+d*i+l,e[7]=p*o+d*s+c,e[8]=p*a+d*u+f,e}function y(e,t,n){var r=t[0],o=t[1],a=t[2],i=t[3],s=t[4],u=t[5],l=t[6],c=t[7],f=t[8],p=Math.sin(n),d=Math.cos(n);return e[0]=d*r+p*i,e[1]=d*o+p*s,e[2]=d*a+p*u,e[3]=d*i-p*r,e[4]=d*s-p*o,e[5]=d*u-p*a,e[6]=l,e[7]=c,e[8]=f,e}function b(e,t,n){var r=n[0],o=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function v(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e}function A(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[2]=0,e[3]=-n,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function T(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function O(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e}function E(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n+n,s=r+r,u=o+o,l=n*i,c=r*i,f=r*s,p=o*i,d=o*s,m=o*u,g=a*i,h=a*s,y=a*u;return e[0]=1-f-m,e[3]=c-y,e[6]=p+h,e[1]=c+y,e[4]=1-l-m,e[7]=d-g,e[2]=p-h,e[5]=d+g,e[8]=1-l-f,e}function M(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=t[4],s=t[5],u=t[6],l=t[7],c=t[8],f=t[9],p=t[10],d=t[11],m=t[12],g=t[13],h=t[14],y=t[15],b=n*s-r*i,v=n*u-o*i,A=n*l-a*i,T=r*u-o*s,O=r*l-a*s,E=o*l-a*u,M=c*g-f*m,C=c*h-p*m,I=c*y-d*m,x=f*h-p*g,N=f*y-d*g,k=p*y-d*h,w=b*k-v*N+A*x+T*I-O*C+E*M;return w?(w=1/w,e[0]=(s*k-u*N+l*x)*w,e[1]=(u*I-i*k-l*C)*w,e[2]=(i*N-s*I+l*M)*w,e[3]=(o*N-r*k-a*x)*w,e[4]=(n*k-o*I+a*C)*w,e[5]=(r*I-n*N-a*M)*w,e[6]=(g*E-h*O+y*T)*w,e[7]=(h*A-m*E-y*v)*w,e[8]=(m*O-g*A+y*b)*w,e):null}function C(e,t,n){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/n,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e}function I(e){return"mat3("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+")"}function x(e){return Math.hypot(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])}function N(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e}function k(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e}function w(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e}function S(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e[3]=t[3]+n[3]*r,e[4]=t[4]+n[4]*r,e[5]=t[5]+n[5]*r,e[6]=t[6]+n[6]*r,e[7]=t[7]+n[7]*r,e[8]=t[8]+n[8]*r,e}function P(e,t){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]}function L(e,t){var n=e[0],o=e[1],a=e[2],i=e[3],s=e[4],u=e[5],l=e[6],c=e[7],f=e[8],p=t[0],d=t[1],m=t[2],g=t[3],h=t[4],y=t[5],b=t[6],v=t[7],A=t[8];return Math.abs(n-p)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(o-d)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(d))&&Math.abs(a-m)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(i-g)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(g))&&Math.abs(s-h)<=r.EPSILON*Math.max(1,Math.abs(s),Math.abs(h))&&Math.abs(u-y)<=r.EPSILON*Math.max(1,Math.abs(u),Math.abs(y))&&Math.abs(l-b)<=r.EPSILON*Math.max(1,Math.abs(l),Math.abs(b))&&Math.abs(c-v)<=r.EPSILON*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(f-A)<=r.EPSILON*Math.max(1,Math.abs(f),Math.abs(A))}var D=g,R=k},57535:(e,t,n)=>{"use strict";n.d(t,{copy:()=>g,dot:()=>h,length:()=>y,squaredLength:()=>b});var r=n(47705),o=n(10623),a=n(52519),i=n(81254);function s(){var e=new r.ARRAY_TYPE(4);return r.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function u(e,t,n,o){var a,i,s,u,l,c=t[0],f=t[1],p=t[2],d=t[3],m=n[0],g=n[1],h=n[2],y=n[3];return(i=c*m+f*g+p*h+d*y)<0&&(i=-i,m=-m,g=-g,h=-h,y=-y),1-i>r.EPSILON?(a=Math.acos(i),s=Math.sin(a),u=Math.sin((1-o)*a)/s,l=Math.sin(o*a)/s):(u=1-o,l=o),e[0]=u*c+l*m,e[1]=u*f+l*g,e[2]=u*p+l*h,e[3]=u*d+l*y,e}i.clone,i.fromValues;var l,c,f,p,d,m,g=i.copy,h=(i.set,i.add,i.scale,i.dot),y=(i.lerp,i.length),b=i.squaredLength,v=i.normalize;i.exactEquals,i.equals,l=a.create(),c=a.fromValues(1,0,0),f=a.fromValues(0,1,0),p=s(),d=s(),m=o.create()},81254:(e,t,n)=>{"use strict";n.d(t,{add:()=>u,clone:()=>o,copy:()=>i,dot:()=>d,equals:()=>h,exactEquals:()=>g,fromValues:()=>a,length:()=>c,lerp:()=>m,normalize:()=>p,scale:()=>l,set:()=>s,squaredLength:()=>f});var r=n(47705);function o(e){var t=new r.ARRAY_TYPE(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function a(e,t,n,o){var a=new r.ARRAY_TYPE(4);return a[0]=e,a[1]=t,a[2]=n,a[3]=o,a}function i(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function s(e,t,n,r,o){return e[0]=t,e[1]=n,e[2]=r,e[3]=o,e}function u(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e}function l(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e}function c(e){var t=e[0],n=e[1],r=e[2],o=e[3];return Math.hypot(t,n,r,o)}function f(e){var t=e[0],n=e[1],r=e[2],o=e[3];return t*t+n*n+r*r+o*o}function p(e,t){var n=t[0],r=t[1],o=t[2],a=t[3],i=n*n+r*r+o*o+a*a;return i>0&&(i=1/Math.sqrt(i)),e[0]=n*i,e[1]=r*i,e[2]=o*i,e[3]=a*i,e}function d(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function m(e,t,n,r){var o=t[0],a=t[1],i=t[2],s=t[3];return e[0]=o+r*(n[0]-o),e[1]=a+r*(n[1]-a),e[2]=i+r*(n[2]-i),e[3]=s+r*(n[3]-s),e}function g(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function h(e,t){var n=e[0],o=e[1],a=e[2],i=e[3],s=t[0],u=t[1],l=t[2],c=t[3];return Math.abs(n-s)<=r.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(o-u)<=r.EPSILON*Math.max(1,Math.abs(o),Math.abs(u))&&Math.abs(a-l)<=r.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))&&Math.abs(i-c)<=r.EPSILON*Math.max(1,Math.abs(i),Math.abs(c))}var y,b;y=new r.ARRAY_TYPE(4),r.ARRAY_TYPE!=Float32Array&&(y[0]=0,y[1]=0,y[2]=0,y[3]=0),b=y},51093:(e,t,n)=>{var r=n(25434),o=n(25151),a=n(48377),i=n(52161),s=n(69871),u=n(56047),l=n(19439);l.alea=r,l.xor128=o,l.xorwow=a,l.xorshift7=i,l.xor4096=s,l.tychei=u,e.exports=l},99178:(e,t,n)=>{"use strict";n.d(t,{p:()=>c});const r=Symbol("Comlink.proxy"),o=Symbol("Comlink.endpoint"),a=Symbol("Comlink.releaseProxy"),i=Symbol("Comlink.finalizer"),s=Symbol("Comlink.thrown"),u=e=>"object"==typeof e&&null!==e||"function"==typeof e,l=new Map([["proxy",{canHandle:e=>u(e)&&e[r],serialize(e){const{port1:t,port2:n}=new MessageChannel;return c(e,t),[n,[n]]},deserialize(e){return e.start(),h(e,[],t);var t}}],["throw",{canHandle:e=>u(e)&&s in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function c(e,t=globalThis,n=["*"]){t.addEventListener("message",(function o(a){if(!a||!a.data)return;if(!function(e,t){for(const n of e){if(t===n||"*"===n)return!0;if(n instanceof RegExp&&n.test(t))return!0}return!1}(n,a.origin))return void console.warn(`Invalid origin '${a.origin}' for comlink proxy`);const{id:u,type:l,path:p}=Object.assign({path:[]},a.data),d=(a.data.argumentList||[]).map(A);let m;try{const t=p.slice(0,-1).reduce(((e,t)=>e[t]),e),n=p.reduce(((e,t)=>e[t]),e);switch(l){case"GET":m=n;break;case"SET":t[p.slice(-1)[0]]=A(a.data.value),m=!0;break;case"APPLY":m=n.apply(t,d);break;case"CONSTRUCT":m=function(e){return Object.assign(e,{[r]:!0})}(new n(...d));break;case"ENDPOINT":{const{port1:t,port2:n}=new MessageChannel;c(e,n),m=function(e,t){return b.set(e,t),e}(t,[t])}break;case"RELEASE":m=void 0;break;default:return}}catch(e){m={value:e,[s]:0}}Promise.resolve(m).catch((e=>({value:e,[s]:0}))).then((n=>{const[r,a]=v(n);t.postMessage(Object.assign(Object.assign({},r),{id:u}),a),"RELEASE"===l&&(t.removeEventListener("message",o),f(t),i in e&&"function"==typeof e[i]&&e[i]())})).catch((e=>{const[n,r]=v({value:new TypeError("Unserializable return value"),[s]:0});t.postMessage(Object.assign(Object.assign({},n),{id:u}),r)}))})),t.start&&t.start()}function f(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function p(e){if(e)throw new Error("Proxy has been released and is not useable")}function d(e){return T(e,{type:"RELEASE"}).then((()=>{f(e)}))}const m=new WeakMap,g="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const t=(m.get(e)||0)-1;m.set(e,t),0===t&&d(e)}));function h(e,t=[],n=function(){}){let r=!1;const i=new Proxy(n,{get(n,o){if(p(r),o===a)return()=>{!function(e){g&&g.unregister(e)}(i),d(e),r=!0};if("then"===o){if(0===t.length)return{then:()=>i};const n=T(e,{type:"GET",path:t.map((e=>e.toString()))}).then(A);return n.then.bind(n)}return h(e,[...t,o])},set(n,o,a){p(r);const[i,s]=v(a);return T(e,{type:"SET",path:[...t,o].map((e=>e.toString())),value:i},s).then(A)},apply(n,a,i){p(r);const s=t[t.length-1];if(s===o)return T(e,{type:"ENDPOINT"}).then(A);if("bind"===s)return h(e,t.slice(0,-1));const[u,l]=y(i);return T(e,{type:"APPLY",path:t.map((e=>e.toString())),argumentList:u},l).then(A)},construct(n,o){p(r);const[a,i]=y(o);return T(e,{type:"CONSTRUCT",path:t.map((e=>e.toString())),argumentList:a},i).then(A)}});return function(e,t){const n=(m.get(t)||0)+1;m.set(t,n),g&&g.register(e,t,e)}(i,e),i}function y(e){const t=e.map(v);return[t.map((e=>e[0])),(n=t.map((e=>e[1])),Array.prototype.concat.apply([],n))];var n}const b=new WeakMap;function v(e){for(const[t,n]of l)if(n.canHandle(e)){const[r,o]=n.serialize(e);return[{type:"HANDLER",name:t,value:r},o]}return[{type:"RAW",value:e},b.get(e)||[]]}function A(e){switch(e.type){case"HANDLER":return l.get(e.name).deserialize(e.value);case"RAW":return e.value}}function T(e,t,n){return new Promise((r=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");e.addEventListener("message",(function t(n){n.data&&n.data.id&&n.data.id===o&&(e.removeEventListener("message",t),r(n.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),n)}))}}}]);
//# sourceMappingURL=141.bundle.3cec6f9002d852630212.js.map